Penguim Adventure (SMS) doesn't work
Closed this issue · 15 comments
MiSTer SMS core simply gets locked in the SEGA logo screen when loading this:
@gyurco is this game supposed to work after your MSX mapper logic fix? I've tried it and it didn't seem to work.
No, it's not related.
Is Korean-only game supposed to run on non-korean console?
The game doesn't work because of its unimplemented mapper logic. Should work on any console type.
Hello everyone. Long time no see.
What gyurco did will probably work, but some other games may start with F3C3 and will make a mess.
A1A2 is nop:nop-like and is used as a marker for the korean mapper; but some games have not been patched in the field.
So let me quote some old messages (2019/5/6) from the atari forum ::
"- most SMSMSX games need the OSD parameter "no bios"
- some of them need a patch :
F-1 Spirit : adr $0000 is : F3 C3 E4 00 00 00 should be : 41 42 F3 C3 E4 00
Knightmare II : adr $0000 is : F3 C3 A5 00 00 00 s/b : 41 42 F3 C3 A5 00
Nemesis2 : adr $0000 is F3 C3 E9 00 00 00 s/b : 41 42 F3 C3 E9 00
Penguin Adv : adr $0000 is F3 C3 A6 00 00 00 s/b : 41 42 F3 C3 A6 00
These are dual compatible MSX/SMS games, and they are supposed to start with the two-bytes "AB" which are quite alike NOPs in z80.
That's the way they (but who is "they" ?) choose to recognize these games, but in real life, not all of them had this modification.
At the end, the choice could be to recognize all these dual-compatible games with a separate extension, or finish the job by modifying the roms.
I should add : only about 10 roms are involved by this SMS/MSX special korean mapper."
To play safe, I would patch the game rom and revert #94, but it's just my 2-cents.
I've added some measures against triggering the mapper accidentally. I've tested several games which starts with F3C3 (like Xenon2, Rambo3, several others) and seems to work. Of course if it causes problems, then another approach might needed.
Just tested the game against commit d3e7c99 and it works now. BIOS must be disabled in the OSD.
The question is not if it works, but does it break something?
Maybe further no-go for the MSX mapper can be the BIOS enabled state - use only if the BIOS is disabled (as you must do it anyway, because the games are not turning it off by themselves).
During my test I don't see any side effect with this change.
Thanks !
@gyurco
For some reason the last core doesn't compile on my machine, but I ran this one liner on my collection :
for F in *.sms; do HE=$(hexdump -n 2 "$F" |head -n 1 | grep "c3f3"); test "$HE" != "" && echo $F; done
to get this list of games that may be affected and should be checked, if someone has the courage to do so =>
A/As Aventuras da TV Colosso (B).sms
A/Asterix and the Secret Mission (E) [!].sms
A/Ayrton Senna's Super Monaco GP II (E) [!].sms
B/Baku Baku Animals (B) [!].sms
B/Battlemaniacs (B) [!].sms
B/Bram Stoker's Dracula (E) [!].sms
B/Bram Stoker's Dracula (E) [T+Bra_TransCenter].sms
G/Ghouls 'n Ghosts (UE) [T+Bra_Guto].sms
G/Ghouls 'n Ghosts (UE) [T+Bra][p1][!].sms
G/GP Rider (U) [!].sms
J/James Bond 007 - The Duel (B) [b1].sms
J/James Bond 007 - The Duel (B) [!].sms
J/Jungle Book, The (UE) [b1].sms
J/Jungle Book, The (UE) [!].sms
J/Jungle Book, The (UE) [T+Bra_Emubrazil].sms
J/Jungle Book, The (UE) [T+Bra][p1][!].sms
L/Lemmings (E) [!].sms
L/Lemmings (Prototype) [!].sms
L/Lion King, The (E) [!].sms
M/Ms. Pac-man (E) [!].sms
P/Pit Fighter (B).sms
R/Rambo III (UE) [!].sms
R/Robocop versus The Terminator (UE) [!].sms
S/Shooting Gallery (UE) [!].sms
S/Smurfs Travel the World, The (E) (M4) [!].sms
T/Terminator, The (E) [!].sms
T/Three Dragon Story, The (K).sms
X/Xenon 2 (E) (Image Works) [!].sms
X/Xenon 2 (E) (Virgin) [b1].sms
X/Xenon 2 (E) (Virgin) [!].sms
X/X-Men - Mojo World (B) [!].sms
I’ve tested with a couple of games and it seems to break some of them, such as: Bram Stoker’s Deacula, James Bond 007 The Duel and The Lion King. I didn’t go through all of the games in the list and also I’ve tested only to the point I’m able to move the character.
Given this breaks compatibility of other games I vote for reverting this commit and just patching the games as suggested by @theflynn49
I didn't test those games.
Yes it is better to revert but maybe a good solution can be found other software emulator like Meka can handle those mapper's.
https://github.com/ocornut/meka/blob/f0461551e1507d26ebc0eaa69b9ee061c428b8c4/meka/srcs/mappers.h#L75
I’ve tested with a couple of games and it seems to break some of them, such as: Bram Stoker’s Deacula, James Bond 007 The Duel and The Lion King. I didn’t go through all of the games in the list and also I’ve tested only to the point I’m able to move the character.
Yepp, they're writing to 0x0000 and 0x0001 for some reason (bug?). Then I'm not against reverting it.
I will just patch the game now. Thanks for looking into this @gyurco