SourMesen / Mesen

Mesen is a cross-platform (Windows & Linux) NES/Famicom emulator built in C++ and C#
https://www.mesen.ca
GNU General Public License v3.0
1.26k stars 320 forks source link

Some sprites not showing up in Akumajou Special - Boku Dracula-Kun English Translation #47

Closed kevzor closed 8 years ago

kevzor commented 8 years ago

Some platforms are not showing up in the translated rom of Akumajou Special - Boku Dracula-Kun. I've attached some screenshots. The first one is with an untranslated ROM in Mesen, where the platforms show up fine. akumajou special - boku dracula-kun japan _000

The second is with a translated ROM in Mesen. No platforms for some reason. akumajou special - boku dracula-kun japan en by vice v1 04 i m kid dracula _000

The third and final screenshot is with the translated ROM in FCEUX. The platforms show up just fine. akumajou special - boku dracula-kun japan en by vice v1 04 i m kid dracula -1

I've tried downloading different pre-patched ROMs and patching the ROM myself, but I cannot get it working in Mesen.

SourMesen commented 8 years ago

Thanks for the report. FCEUX is not very accurate in general (especially when using the old ppu, which is the default setting). It is likely the translation would also not work correctly on a real NES. I can't test this at the moment because I'm away on vacation, but I suspect you would get the same problem with other emulators such as puNES, nestopia or nintendulator.

dragon2snow commented 8 years ago

this rom working real fc

SourMesen commented 8 years ago

After investigating a bit, this looks like it is normal, and just the result of the iNES format being imprecise. Both roms are set to mapper 23, but the original game is actually a VRC4 game - Mesen knows this because it contains a database of known games. However, the patched ROM isn't part of the database, so it runs based on guesses and ends up using VRC2 behavior, which causes incorrect mirroring to be used in this case (and produces the missing platform bug)

The best solution would be to modify the rom file to be a NES 2.0 file with the proper headers to tell Mesen that the rom is a VRC4 game, despite not being in the game database.

I'll keep this bug opened for the moment, in case I can think of a more general solution to fix this.

SourMesen commented 8 years ago

Changed the VRC2/4 logic for mirroring to hopefully make it compatible with more games when the emulator has to guess which board the game uses (7f43628). This particular ROM should now run properly in Mesen.