SegFault with Aëdemphia in ShowPicture #485

Closed
BlisterB opened this Issue May 18, 2015 · 9 comments

Projects

None yet

3 participants

@BlisterB
Member

Hello guys :) !
Hmm I've hesitated to create that issue because Aëdemphia is an heavy-french game using Cherry Patchs.
But at the title screen, Easy RPG crashs with a segmentation fault, this could be a serious bug.
You have to push enter at the beginning to start the "real" title screen, "démarrer" and "passer l'introduction" to have the segmentation fault (I've got it just after the first enter push one time).

Here is a link to download it (1GB :/) :
http://www.aedemphia-rpg.net/download/Aedemphia.rar

Some screenshots to motivate you xp :
http://www.aedemphia-rpg.net/screenshots.html

NB : Aëdemphia uses Cherry Patches, so I don't expect to play the game for now, but it uses advanced features (it plays .MPG etc.) of RPG Maker, it could be interesting to compare RPG Maker interpretation and the Easy RPG Player one.

@Ghabry
Member
Ghabry commented May 18, 2015

The images have wrong metadata, but that is not critical.
Otherwise the log is useless, sorry :(. Can you provide a real stacktrace?
And Player won't play videos by now. Not a high priority feature.

@BlisterB
Member

No problem, here's the crash report :

Process:               easyrpg-player [549]
Path:                  /Users/USER/Downloads/*/easyrpg-player
Identifier:            easyrpg-player
Version:               0
Code Type:             X86-64 (Native)
Parent Process:        bash [542]
Responsible:           iTerm [537]
User ID:               501

Date/Time:             2015-05-18 11:51:36.401 +0200
OS Version:            Mac OS X 10.10.3 (14D136)
Report Version:        11
Anonymous UUID:        58675858-6C36-FD67-C52A-3E0846618403


Time Awake Since Boot: 1800 seconds

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       EXC_I386_GPFLT

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_platform.dylib        0x00007fff8a889044 _platform_memmove$VARIANT$Unknown + 164
1   libc++.1.dylib                  0x00007fff90ded592 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::assign(char const*, unsigned long) + 130
2   libc++.1.dylib                  0x00007fff90ded358 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 46
3   easyrpg-player                  0x000000010cd6e15b Game_Picture::Show(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) + 59
4   easyrpg-player                  0x000000010cd381bb Game_Interpreter_Map::CommandShowPicture(RPG::EventCommand const&) + 1099
5   easyrpg-player                  0x000000010cd3574c Game_Interpreter_Map::ExecuteCommand() + 4044
6   easyrpg-player                  0x000000010cd2a5e9 Game_Interpreter::Update() + 1737
7   easyrpg-player                  0x000000010cd26cf1 Game_Event::Update() + 257
8   easyrpg-player                  0x000000010cd4a879 Game_Map::Update() + 809
9   easyrpg-player                  0x000000010ce32a1a Scene_Map::Update() + 106
10  easyrpg-player                  0x000000010cdbce3f Player::Update(bool) + 639
11  easyrpg-player                  0x000000010ce1c07f Scene::MainFunction() + 223
12  easyrpg-player                  0x000000010cdbc89c Player::MainLoop() + 44
13  easyrpg-player                  0x000000010cdbc746 Player::Run() + 230
14  easyrpg-player                  0x000000010cc30f01 main + 49
15  libdyld.dylib                   0x00007fff918a95c9 start + 1

Thread 1:: SDLTimer
0   libsystem_kernel.dylib          0x00007fff8daa2136 __psynch_cvwait + 10
1   libSDL2-2.0.0.dylib             0x000000010e918884 SDL_CondWaitTimeout_REAL + 141
2   libSDL2-2.0.0.dylib             0x000000010e9184df SDL_SemWaitTimeout_REAL + 75
3   libSDL2-2.0.0.dylib             0x000000010e8dfbec SDL_TimerThread + 84
4   libSDL2-2.0.0.dylib             0x000000010e8df83a SDL_RunThread + 60
5   libSDL2-2.0.0.dylib             0x000000010e918263 RunThread + 9
6   libsystem_pthread.dylib         0x00007fff9480a268 _pthread_body + 131
7   libsystem_pthread.dylib         0x00007fff9480a1e5 _pthread_start + 176
8   libsystem_pthread.dylib         0x00007fff9480841d thread_start + 13

Thread 2:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib          0x00007fff8daa3232 kevent64 + 10
1   libdispatch.dylib               0x00007fff9166ca6a _dispatch_mgr_thread + 52

Thread 3:: com.apple.audio.IOThread.client
0   libsystem_kernel.dylib          0x00007fff8da9d4de mach_msg_trap + 10
1   libsystem_kernel.dylib          0x00007fff8da9c64f mach_msg + 55
2   com.apple.audio.CoreAudio       0x00007fff8fd6757e HALB_MachPort::SendMessageWithReply(unsigned int, unsigned int, unsigned int, unsigned int, mach_msg_header_t*, bool, unsigned int) + 98
3   com.apple.audio.CoreAudio       0x00007fff8fd6750c HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 42
4   com.apple.audio.CoreAudio       0x00007fff8fd65aa9 HALC_ProxyIOContext::IOWorkLoop() + 965
5   com.apple.audio.CoreAudio       0x00007fff8fd65612 HALC_ProxyIOContext::IOThreadEntry(void*) + 88
6   com.apple.audio.CoreAudio       0x00007fff8fd654e3 HALB_IOThread::Entry(void*) + 157
7   libsystem_pthread.dylib         0x00007fff9480a268 _pthread_body + 131
8   libsystem_pthread.dylib         0x00007fff9480a1e5 _pthread_start + 176
9   libsystem_pthread.dylib         0x00007fff9480841d thread_start + 13

Thread 4:
0   libsystem_kernel.dylib          0x00007fff8da9d4de mach_msg_trap + 10
1   libsystem_kernel.dylib          0x00007fff8da9c64f mach_msg + 55
2   com.apple.CoreFoundation        0x00007fff9389aeb4 __CFRunLoopServiceMachPort + 212
3   com.apple.CoreFoundation        0x00007fff9389a37b __CFRunLoopRun + 1371
4   com.apple.CoreFoundation        0x00007fff93899bd8 CFRunLoopRunSpecific + 296
5   com.apple.AppKit                0x00007fff91a8c66b _NSEventThread + 137
6   libsystem_pthread.dylib         0x00007fff9480a268 _pthread_body + 131
7   libsystem_pthread.dylib         0x00007fff9480a1e5 _pthread_start + 176
8   libsystem_pthread.dylib         0x00007fff9480841d thread_start + 13

Thread 5:
0   libsystem_kernel.dylib          0x00007fff8daa294a __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9480840d start_wqthread + 13

Thread 6:
0   libsystem_kernel.dylib          0x00007fff8daa294a __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9480840d start_wqthread + 13

Thread 7:
0   libsystem_kernel.dylib          0x00007fff8daa294a __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9480840d start_wqthread + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0xf738d8db884cee9f  rbx: 0x0000000000000010  rcx: 0x6572746974726365  rdx: 0x0000000000000008
  rdi: 0xf738d8db884cee9f  rsi: 0x00007f988406ba39  rbp: 0x00007fff52fcea30  rsp: 0x00007fff52fcea30
   r8: 0x36656c6c69726274   r9: 0x000000010cd24a01  r10: 0x0000000000000000  r11: 0xf738594304463466
  r12: 0x0000000000000000  r13: 0x0000000000000000  r14: 0x00007f9884611728  r15: 0xf738d8db884cee9f
  rip: 0x00007fff8a889044  rfl: 0x0000000000010212  cr2: 0x00000001000550fe

Logical CPU:     2
Error Code:      0x00000000
Trap Number:     13



@Ghabry
Member
Ghabry commented May 18, 2015

Okay I have never seen before a crash in Game_Picture::Show. Needs extra debugging.

It's better to track each crash individual I guess. Renamed this one to "SegFault in ShowPicture"

@Ghabry Ghabry changed the title from Segmentation Fault with Aëdemphia to Segmentation Fault with Aëdemphia in ShowPicture May 18, 2015
@Ghabry Ghabry changed the title from Segmentation Fault with Aëdemphia in ShowPicture to SegFault with Aëdemphia in ShowPicture May 18, 2015
@fdelapena
Member

My gdb backtrace:

Program received signal SIGSEGV, Segmentation fault.
std::string::empty (this=0x3e76b28)
    at /usr/src/debug/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/basic_string.h:822
822       { return this->size() == 0; }
#0  std::string::empty (this=0x3e76b28)
    at /usr/src/debug/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/basic_string.h:822
No locals.
#1  0x000000000055ce32 in Game_Picture::Update (this=0x2a9c6a0)
    at src/game_picture.cpp:175
No locals.
#2  0x000000000050c6de in Game_Screen::Update (this=0x3e8bf80)
    at src/game_screen.cpp:317
        it = {px = , pn = {pi_ = }}
#3  0x0000000000455ecf in Scene_Map::Update (this=0x3fbfb40)
    at src/scene_map.cpp:116
No locals.
#4  0x000000000043af95 in Player::Update (update_scene=true)
    at src/player.cpp:252
        framerate_interval = 16.666666666666668
        cur_time = 6413
#5  0x0000000000453178 in Scene::MainFunction (this=0x3fbfb40)
    at src/scene.cpp:96
        init = true
        __PRETTY_FUNCTION__ = "virtual void Scene::MainFunction()"
#6  0x000000000043ac7c in Player::MainLoop () at src/player.cpp:180
No locals.
#7  0x000000000043abdc in Player::Run () at src/player.cpp:175
No locals.
#8  0x00000000004316b5 in main (argc=2, argv=0x7fffffffdff8)
    at src/platform/sdl_main.cpp:31
No locals.
@fdelapena fdelapena removed the Emulation label May 19, 2015
This was referenced May 21, 2015
@Ghabry Ghabry closed this in d332e2e Aug 28, 2015
@Ghabry
Member
Ghabry commented Sep 1, 2015

@BlisterBoy
Did you already continued playing? ;)

Do you know which other patches this game used besides AEP and PicPointer?

@BlisterB
Member
BlisterB commented Sep 4, 2015

Yep ! Great improvements ^^ !
This games uses Cherry Patches : Batteraep is the only wich seems to not be supports for the moment.

What I noticed :

  • Music (.mp3) are not played (don't know why), the log says "Warning: Couldn't load Titre BGM.
    Unrecognized music format"
  • The main map of the first village is reaally laggy (7 to 20 fps), but the other are fine (I'm on Mac OS)
  • Cutscene in .MPG are not player (but that's normal)
  • The log contains a lot of
    "Debug: iCCP: known incorrect sRGB profile"
    "Debug: Image size error in: Picture/xxx"

But this is a great improvement !

@fdelapena
Member

Music (.mp3) are not played (don't know why), the log says "Warning: Couldn't load Titre BGM. Unrecognized music format"

I guess you used the static build. It is not being built with libmad (MP3 library) yet. I'll try to fix it later, it needed some patches and the build was done in a hurry.

The log contains a lot of "Debug: iCCP: known incorrect sRGB profile"

This is a libpng warning about broken embedded color profile chunks, usually from multiple Photoshop versions and other software which encoders violate the PNG specification.

"Debug: Image size error in: Picture/xxx"

This one is a bit annoying, it is being generated when a picture is not using standard dimensions in the expected range, but they are supported anyways. An unpatched RPG Maker editor usually discards them from the import window.

The main map of the first village is reaally laggy (7 to 20 fps), but the other are fine (I'm on Mac OS)

Is using screen tone + semiopaque zoomed picture effects? then thist might be normal. In case of a big picture or with a large zoom is a known performance issue (#57). Also, screen tone operations are not hardware accelerated.

@BlisterB
Member
BlisterB commented Sep 4, 2015

This is a libpng warning about broken embedded color profile chunks, usually from multiple Photoshop versions and other software which encoders violate the PNG specification.

Ok ! I'm not surprised for this one, Aëdemphia is 100% custom/photoshopped ressources.

This one is a bit annoying, it is being generated when a picture is not using standard dimensions in the expected range, but they are supported anyways. An unpatched RPG Maker editor usually discards them from the import window.

I don't know for your communities but in french community everybody just drag and drop files in the project folder, we use to have no limit in pictures dimensions, I didn't know for this point before starting to work on Easy RPG. Maybe it's a limitation to cancel ?
(We had the chance to have awesome RPG Editor pimped to cancel a lot of restrictions and support some music formats etc.)

Is using screen tone + semiopaque zoomed picture effects? then thist might be normal. In case of a big picture or with a large zoom is a known performance issue (#57). Also, screen tone operations are not hardware accelerated.

Yep you are right ! Aëdemphia does an extensive use of those things ^^. The RPG Maker Player has really bad performances issues (the new official version are REALLY bad on a lot of things !!) but this is part of the rare cases when it has better performances than Easy RPG.

@BlisterB
Member
BlisterB commented Sep 5, 2015

So I had a discussion with Aëdemphia's creator and he sais me that he uses this patch :
http://cherrytree.at/cms/lang/en/download/?did=19

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment