mgba-emu / mgba

mGBA Game Boy Advance Emulator
https://mgba.io/
Mozilla Public License 2.0
5.38k stars 744 forks source link

Mega Man Battle Network 4 romhack brief animation freeze only in mGBA #3200

Open GittallioB2k opened 2 weeks ago

GittallioB2k commented 2 weeks ago

System Information

mgba-qt: 0.10.3 & mGBA libretro core: 0.10-dev

Operating System: Debian GNU/Linux 12

CPU/GPU: 10th gen Intel Core i7, Intel UHD Graphics 630

Summary

There is a romhack^1 for Mega Man Battle Network 4 that acts as a bugfix patch to correct some small issues with the game. The changes are relatively minor, saves and savestates are transferable between the clean rom and the patched game.

A specific attack move has a noticeable animation delay during which the graphics are frozen when using the romhack in mGBA, which does not happen on hardware or other emulators.

Description

Whenever the battle chip (attack move) "CircGun" is used, a moving cursor will appear on the enemy field (right-hand side of the screen) that will stop and fire once the A button is pressed again. On mGBA there is a 3 second graphics freeze before the cursor appears when using this attack. Note that although the graphics visually freeze, the BGM will continue playing without any interruption or glitching.

Only the patched version of the game using the romhack in conjunction with mGBA will exhibit this issue. The issue does not happen with the gpSP core or native hardware (agb_firm on 3DS via VC injection or open_agb_firm) using the romhack. It happens for mGBA both in the native Qt client as well as in RetroArch via the libretro core. The clean rom behaves correctly in mGBA.

The romhack issue with mGBA affects both editions of Mega Man Battle Network 4: "Red Sun" and "Blue Moon".

Video recordings

Clean Rom Romhack
MMBN4RS_CircGun_cleanrom.webm MMBN4RS_CircGun_romhack.webm

Each video shows the use of the mentioned attack move based on the attached savestate. Button A is pressed once on the "OK" button to enter battle and then again shortly after the "Battle Start!" banner to initiate the attack move. On the romhack with mGBA (right video) the graphics will freeze directly after the screen dims and the "CircGun2 100" text appears indicating the attack. On the clean rom (left video) no such delay is visible.

Savestate

Please find a savestate[^2] attached below for "Mega Man Battle Network 4: Red Sun (US)". It is a state saved directly before the screen captures were recorded. The state works for both the clean rom and the romhack.

Savestate:

Savestate as PNG

[^2]: Note that state is based on a savegame which was played entirely on the romhack right from the start. It happens to be compatible with the clean rom as well.