BizHawk icon indicating copy to clipboard operation
BizHawk copied to clipboard

SGB Gambatte crash at samplesEmitted = TICKSINFRAME (at line 25)

Open getCursorsExe opened this issue 3 years ago • 2 comments

Pokemon - Red Version (USA, Europe).Gambatte.QuickSave9.zip Make sure you also have these cheats enabled: image BizHawk should crash at line 25 in Gambatte.IEmulator.cs. It bypasses the BizHawk's crash handler, so no crash log.

getCursorsExe avatar Dec 26 '22 11:12 getCursorsExe

This crashes at the following line: https://github.com/TASEmulators/BizHawk/blob/d788e603fd6e534bbf2e7dac23d4d1d81be33ed3/src/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/Gambatte.IMemoryDomains.cs#L48

Stacktrace from gambatte:

gambatte::PPU::update (this=0x1bf1c2838b8, cc=218103920) at D:/GitHub/gambatte-core/libgambatte/src/video/ppu.cpp:1899
1899                            p_.nextCallPtr->f(p_);
(gdb) bt
#0  gambatte::PPU::update (this=0x1bf1c2838b8, cc=218103920)
    at D:/GitHub/gambatte-core/libgambatte/src/video/ppu.cpp:1899
#1  0x00007ff857dcbe79 in gambatte::LCD::update (this=0x1bf1c2838b8, cycleCounter=218103920)
    at D:/GitHub/gambatte-core/libgambatte/src/video.cpp:924
#2  0x00007ff857dcafe0 in gambatte::LCD::oamChange (this=0x1bf1c2838b8, oamram=0x1bf1c283610 "", cc=218103920)
    at D:/GitHub/gambatte-core/libgambatte/src/video.cpp:533
#3  0x00007ff857db9381 in gambatte::Memory::endOamDma (this=0x1bf1c2027f0, cc=218103920)
    at D:/GitHub/gambatte-core/libgambatte/src/memory.cpp:625
#4  0x00007ff857db90a0 in gambatte::Memory::updateOamDma (this=0x1bf1c2027f0, cc=1385662972)
    at D:/GitHub/gambatte-core/libgambatte/src/memory.cpp:578
#5  0x00007ff857dbbe4d in gambatte::Memory::nontrivial_write (this=0x1bf1c2027f0, p=56, data=201, cc=1385662972)
    at D:/GitHub/gambatte-core/libgambatte/src/memory.cpp:1366
#6  0x00007ff857e1e687 in gambatte::Memory::write<true, false> (this=0x1bf1c2027f0, p=56, data=201, cc=1385662972)
    at D:/GitHub/gambatte-core/libgambatte/src/memory.h:222
#7  0x00007ff857df751f in gambatte::CPU::externalWrite (this=0x1bf1c2027f0, addr=56, val=201 '\311')
    at D:/GitHub/gambatte-core/libgambatte/src/cpu.h:148
#8  0x00007ff857db38f1 in gambatte::GB::externalWrite (this=0x1bf7a99f080, addr=56, val=201 '\311')
    at D:/GitHub/gambatte-core/libgambatte/src/gambatte.cpp:462
#9  0x00007ff857df141c in (anonymous namespace)::gambatte_cpuwrite (g=0x1bf7a99f080, addr=56, val=201 '\311')
    at D:/GitHub/gambatte-core/libgambatte/src/cinterface.cpp:254

Morilli avatar Jun 23 '24 19:06 Morilli

I would guess this is just an issue of side effects occurring outside of the main cpu loop, which gambatte's code never really fully accounted for, so usually it works, sometimes it doesn't.

CasualPokePlayer avatar Jun 24 '24 08:06 CasualPokePlayer