New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Forcing GBP-mode via game hack non-functional on mGBA. #520

Closed
vaguerant opened this Issue Feb 10, 2017 · 2 comments

Comments

Projects
None yet
3 participants
@vaguerant

vaguerant commented Feb 10, 2017

First off, I've confirmed this as working on hardware twice over; while the hack is amateurish, it's not the problem.

I created a simple hack (one instruction changed) for Super Mario Advance 4: Super Mario Bros. 3 (tested on USA Rev 1 and the Wii U VC edition) which nops the branch over some Game Boy Player behavior so that I can run this ROM on GBA/DS hardware and other emulators with the improved GBP-palette, without having to trigger mGBA's included Game Boy Player support.

However, while this patch works on hardware (DS Lite and, ironically, Game Boy Player tested) and other emulators (no$gba and VBA-M tested), on mGBA the patch results in some unexpected behavior.

With the GBP override turned off in mGBA, the game fails to run with the GBP palette in spite of the patch, and freezes on the "Mario Start!"/"Luigi Start!" screen when attempting to start a level. There's no apparent way to get in-game or play anything.

With the GBP override turned on in mGBA, everything seems to work just fine (although it defeats the purpose of hacking the ROM in the first place).

@ShadowOne333

This comment has been minimized.

Show comment
Hide comment
@ShadowOne333

ShadowOne333 Feb 14, 2017

Thanks for referencing the issue I posted, Vague Rant, and thanks for making this patch too :)

ShadowOne333 commented Feb 14, 2017

Thanks for referencing the issue I posted, Vague Rant, and thanks for making this patch too :)

@endrift

This comment has been minimized.

Show comment
Hide comment
@endrift

endrift Jul 8, 2017

Member

Game was trying to trigger a transfer from the non-existent GB Player and then got very confused when the data that came back was bad. Since it was using an external clock when nothing was hooked up it shouldn't have gotten an IRQ, as the external clock never ticks. Making that IRQ not fire fixes the issue.

Member

endrift commented Jul 8, 2017

Game was trying to trigger a transfer from the non-existent GB Player and then got very confused when the data that came back was bad. Since it was using an external clock when nothing was hooked up it shouldn't have gotten an IRQ, as the external clock never ticks. Making that IRQ not fire fixes the issue.

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