meleu / RetroArch-problematic-cheevos

A place to put the savestates of games with cheevos problems when running in RetroArch and no problems in official emulators.
6 stars 10 forks source link

Problem with Super Mario Land on RetroArch #43

Open steffeN-92 opened 5 years ago

steffeN-92 commented 5 years ago

Hello together,

I have an issue with one cheevo only like this: https://retroachievements.org/achievement/1144

It works on both ROMs (1x original and 1x Rev A) on RAVBA and RALibretro. Only RetroArch doesn't want to unlock it after collecting mushroom powerup as Small Mario.

I already posted comment on forum like: https://retroachievements.org/viewtopic.php?t=111&o=45 "Better use RAVBA or RALibretro (Game Boy) for all cheevos because RetroArch (Gambatte) and Rasberry PI have most issue. Some cheevos don't want to unlock."

Well, it's unfortunately that someone opened ticket because he doesn't read comment on forum like: https://retroachievements.org/ticketmanager.php?i=19153

Even if I can't fix it. :(

Thoooreau commented 5 years ago

I changed the code so it is now compatible with RetroArch too. I'm only using 0xc--- and 0xd--- addresses instead of 0xf--- addresses.

This is the previous code: 0xHf190=40.1._0xHff99=1_d0xHff99=0SR:0xHffb3=1_R:0xHffb3=4_R:0xHffb3=5_R:0xHffb3=15_R:0xHc0a4=2_R:0xHc0a4=3

meleu commented 5 years ago

@Thoooreau can we close this issue (meaning "there's nothing wrong with RetroArch") or the achievement is only working because of your "workaround"?

Thoooreau commented 5 years ago

It's only working because of my "workaround".

The previous code I posted above was working in RAVBA and RAlibretro, but not on RetroArch. I changed the code so it wouldn't use any 0xf--- addresses or any alts. That made it work everywhere (RetroArch, RAVBA and RAlibretro). Still, I think we should investigate why the previous code didn't work in RetroArch only.

ghost commented 5 years ago

$E000-$FDFF is an echo RAM for main memory. most emu do not use it(as these addresses are noted as DO NOT USE), nor it is even exposed as memmap. VBA based kinda works 'coz it echoes write to these addreses as well.

leiradel commented 5 years ago

This can be fixed in the core's side by adding the echo RAM to the core's memory map: https://github.com/libretro/gambatte-libretro/blob/master/libgambatte/libretro/libretro.cpp#L1003