TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.19k stars 384 forks source link

(Genesis) Editing System Stack crashes BizHawk #2764

Closed getCursorsExe closed 3 years ago

getCursorsExe commented 3 years ago

image BizHawk doesn't even know how to properly handle this in Sonic 1 Prototype. This is caused by incrementing by 1 in address FDFA. After a few frames at some point after triggering this, BizHawk crashes "again" in the same way as #1760, because we see a loading icon over my cursor even though nothing is even loading. Is there an explaination for this crash?

Occurs in 2.6.2 or less.

YoshiRulz commented 3 years ago

What happens when you do this on Genplus-gx standalone in RetroArch or OpenEmu?

edit: they don't ship their own frontend; still would like to know whether this affects upstream

getCursorsExe commented 3 years ago

I can't do this, original Genesis Plus GX is exclusive to Nintendo Gamecube/Wii, and I don't know how to do the same thing in Libretro core.

vadosnaprimer commented 3 years ago

Try this (retroarch core) https://github.com/lab313ru/gpgx_debugger tho I couldn't find intructions in english.

getCursorsExe commented 3 years ago

These features such as VDP Register Debugger should be on BizHawk too.

nattthebear commented 3 years ago

If I'm reading this right you poked arbitrary memory and the game crashed? Possibly the core because that's something no real game would ever do?

I don't see any real issue here.

getCursorsExe commented 3 years ago

Well, no. It doesn't happen on upstream.

getCursorsExe commented 3 years ago

If you go to Special Stage in Sonic 1 Prototype and increment address FDFA, then at some point, we see some craziness and BizHawk crashes.

getCursorsExe commented 3 years ago

This is clearly an issue, because BizHawk crashes without any messages after messing with Sega Mega Drive's system stack.

YoshiRulz commented 3 years ago

Assuming this is a fatal error in GPGX' internals like #1760 was, recovering from it (i.e. showing an error dialog and returning to NullHawk) is not a good idea for technical reasons: see https://github.com/TASVideos/BizHawk/issues/1760#issuecomment-636516204. If upstream is unaffected then we probably just need to pull updates.

getCursorsExe commented 3 years ago

Similar crash also occurs in upstream, but we don't end up getting the same location as BizHawk that caused the crash, meaning that crash caused by messing with system stack only happens in BizHawk.

zeromus commented 3 years ago

doesn't matter. pushing emulators beyond the limits they were programmed for can cause any kind of wacky malfunction

getCursorsExe commented 3 years ago

Well, I managed to open EmuHawk in Microsoft Visual Studio 2019, I got this message after triggering the bug (sorry for Polish language): Program „[9296] EmuHawk262.exe” zakończył działanie z kodem -1073741819 (0xc0000005) 'Access violation'.

getCursorsExe commented 3 years ago

Wait, what? What BizHawk was trying to access that makes this crash happen!?

zeromus commented 3 years ago

Memory outside the allocated range. Which is exactly what you did. If an emulator crashes when you hack or debug a rom, then stop debugging or hacking the rom. We're not interested in bug reports or discussions about this. Stop posting about it or I'll lock the thread to force you to stop.

getCursorsExe commented 3 years ago

Okay, I will shut my mouth.