Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - Wonder Boy in Monster Land version analysis

Reply to topic
Author Message
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8643
  • Location: Paris, France
Reply with quote
Wonder Boy in Monster Land version analysis
Post Posted: Mon Mar 08, 2004 4:13 pm
Ok, I finally took the time to redump my different Wonder Boy in Monster Land cartridges, to solve the problem with the three ROM we have.

I think that part of the confusion in the two threads below (BFC, Maxim, me) was due to the fact that Maxim's picture is not in the same order as the labelling by MEKA.

So, let me sum everythings up:


MEKA.NAM: 522ECFED1D0DF8A2 , CRC32: 8cbef0c1
Wonder Boy in Monster Land
Previously known in MEKA as version [A].
This is the correct dump from all export cartridges I could find: European version, USA version, and also the cartridge with the "Super Wonder Boy Super Monster Land" label.
In Japanese mode, shows Japanese title "Super Wonder Boy Monster World".


MEKA.NAM: D805179D29845F63 , CRC32: b1da6a30
Super Wonder Boy Monster World (J)
Previously known in MEKA as version [C].
This is the correct dump from Japanese cartridges.
In Export mode, shows a temporary title that never made it to the west: "Super Wonder Boy Monster Land". English dialog in this version is not very good and it the text was rewritten for the Export version.
As far as I know, and despite what Maxim said (I think he was confused also by the different order in picture and MEKA), this ROM is yet unreleased. Can you confirm that, people? I could release it now that the whole thing is clear.


MEKA.NAM: 5F37D2F71D0F086D , CRC32: 7522cf0a
Wonder Boy in Monster Land [Hack]
Previously known in MEKA as version [B].
I couldn't find a dump of this in any of my cartridge.
This hack does two things:
- Force the game to run in Japanese mode, showing the "Super Wonder Boy Monster World" title, and with an harder difficulty level.
- The LEFT+RIGHT+Button2 combination on joypad 1 simulate pressing PAUSE. This however cannot be reproduced very easily, as a standard SMS joypad by definition cannot be pressed both left and right. A broken joypad, a different joypad or two joypads plugged on the same port may be able to do that.
(Note: MEKA automatically remove simultaneous presses of opposite direction. I will eventually add a flag to remove this feature)

Evidence that it is a hack:
- Header is the same as the original export version, but the checksum was not modified, so it is incorrect.
- Forcing Japanese mode was done by placing three NOP instructions on the country detection call. Developper with access to the original code could have re-assembled the program instead.
- The way the LEFT+RIGHT+B2 combination support was programmed is an obvious hack into a game that you cannot re-assemble easily: the input check was added into a modified interrupt routine.

Disassembly:

Original game:
00000001: LD SP,C07Fh

Hack:
00000001: LD SP,C07Eh

The top of stack was lowered down by 1 byte to allow storage of a variable.

Original game interrupt routine:
00000038: JP 0100h

Hacked interrupt routine:

00000038: F5 PUSH AF
00000039: 3E 55 LD A,55h ; port[$3F] = $55
0000003B: D3 3F OUTA (3Fh)
0000003D: 3A 7F C0 LD A,(C07Fh) ; if (ram[$7F] == $D3) // $D3 = 11010011
00000040: FE D3 CP D3h ; jp $004D
00000042: 28 09 JR Z,+09h ----
00000044: DB DC INA (DCh) | ; A = port[$DC]
00000046: FE D3 CP D3h | ; if (A != $D3)
00000048: 20 03 JR NZ,+03h -->| ; jp $004D
|
0000004A: CD 66 00 CALL 0066h | ; else call pause handler!
|
0000004D: DB DC INA (DCh) <--- ; ram[$7F] = port[$DC]
0000004F: 32 7F C0 LD (C07Fh),A
00000052: 3E FF LD A,FFh ; port[$3F] = $FF
00000054: D3 3F OUTA (3Fh)
00000056: F1 POP AF

00000057: C3 00 01 JP 0100h ; call original routine

Studying the code tells that it read joypad inputs on each interrupt. Whenever LEFT+RIGHT+B2 are pressed and if they were not pressed previously, the PAUSE handler (address 0066h) is called.
It uses byte at address C07Fh as a storage, as it was made available previously.

And finally:
Original game initialization:
000000BD: CALL 0184h       ; call country check

Hacked game initialization:
000000BD: NOP NOP NOP      ; does nothing


Voila.

The joypad combination mentionned above isn't close to being official. I think it is rather the work of a Wonder Boy in Monster Land enthusiast who wanted to be able to PAUSE without jumping on his SMS and play in the harder difficulty mode. But then, it's difficult to be sure. I'd say 90% chance it is not official.

Maxim's picture:


The top one is the Japanese cartridge dump (ROM unreleased). The middle one is the Export cartridge dump. The bottom one is the hacked Export one.
  View user's profile Send private message Visit poster's website
BFC
  • Guest
Reply with quote
Post Posted: Mon Mar 08, 2004 5:08 pm
Thank you very much for the news! Just as I thought :) Can you please release the dump with crc b1da6a30 now? Thanks!
 
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14652
  • Location: London
Reply with quote
Post Posted: Tue Mar 09, 2004 8:49 am
Quote
> I think that part of the confusion in the two threads below (BFC, Maxim, me) was due to the fact that Maxim's picture is not in the same order as the labelling by MEKA.

Well, it's an old picture (Jan 2003) and I think the naming might have changed since then :)

I was sent the Japanese dump by Mike G who found it on the internet somewhere (ie. he didn't dump it himself). So it is out there, apparently. I think it deserves an official release anyway (the translation is a lot more fun).

Hey, here's some of the post I made back then:


OK, I must be bored. Here's the notable differences between the two scripts:

WBML: Hey brave man, listen carefully. The country's fate depends on you. Your mission is to destroy the vicious dragon and restore peace. Take the sword and potion with you. I will see you again.

SWBSML: Listen to me carefully, oh one of great courage. The country's fate depends on you. Your mission is to destroy the vicious dragon and restore peace. Take the sword and potion with you. I will see you again.

[Was "oh one of great courage" too much?]

WBML: What is my hobby? Golf/Singing/Reading
SWBSML: What is my hobby recently? Golf/Karaoke singing/Reading

[Stupid Westerners don't know what karaoke is... yet. Plus strained translation fixed.]

WBML: Question: How do I stay in shape? Jogging/Embroidering/Baseball
SWBSML: Question: What is the method by which I get rid of stress? Jogging/Embroidering/Alcohol

[Whooooo! Alcohol as stress relief! Teach that to the kids! Explains why embroidery is suggested as a way to "stay in shape".]

WBML: Sphinx likes green diamonds./Sphinx has new shoes.
SWMSML: The sphinx often visits our bar./Recently earthquakes occur in the morning.

[Matching hints - earthquakes = jogging?]

WBML: Which game have I been playing recently?
After Burner/Fantasy Zone/Missile Defense
SWMSML: What is the game that recently I'm most interested in?
After Burner/Fantasy Zone/Missile Defense

[Strained translation fixed]

WBML: Sphinx took a ride he'll never forget./Sphinx has strange glasses.
SWMSML: I hear that the sphinx easily become sick when riding in a vehicle./The sphinx often wears strange glasses.

[Sphinx, the mean evil lord of the pyramid, gets carsick?]

WBML: The battle is over. We never knew that the dragon was a robot. Did it come from another planet? At last, peace has been restored to this country. The people will live happily. However, don't be off guard as even more dreadful things may be awaiting you. Goodbye, Monster Land. See you again.

SWBSML: The battle is over. We never knew that the dragon was a robot. Did it come from another planet? At last, peace has been restored to this country. The people will live happily ever after. However, don't be off guard as even more dreadful things may be awaiting you. Goodbye, Monsterland. We will meet again.

[Minor differences; plus, the SWBSML version seems to have incorrect formatting (the known-good WBML one uses a different byte for spaces just for the end; the SWBSML doesn't) so maybe when you complete that one the ending is corrupted or it crashes?]


The rest of the post... well, I was wrong. (Post 14031, for the record.)

Maxim
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8643
  • Location: Paris, France
Reply with quote
Post Posted: Tue Mar 09, 2004 9:26 am
Quote
> I was sent the Japanese dump by Mike G who found it on the internet
> somewhere (ie. he didn't dump it himself). So it is out there, apparently.
> I think it deserves an official release anyway (the translation is a lot
> more fun).

MikeG and me once bought several Japanese games from a same seller, who sent them all to MikeG because he was living near. That Wonder Boy was part of the lot and as I remember, MikeG redumped all cartridges then. So he likely got it here.

Quote
> Hey, here's some of the post I made back then:
[...]

Nice. I'll have it released soon.

Which remind me that the sphinx is very confusing in the arcade version.
It sometimes ask you a question, then shows:
DON'T EAT PIZZA
And you can select between the three words. It is still not clear for me.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14652
  • Location: London
Reply with quote
Bootleg
Post Posted: Tue Mar 09, 2004 11:22 am
Quote
> So he likely got it here.

Ah. OK, I'll hold on to it then. Isn't it in the "Good" rom set?

Quote
> Which remind me that the sphinx is very confusing in the arcade version.
> It sometimes ask you a question, then shows:
> DON'T EAT PIZZA
> And you can select between the three words. It is still not clear for me.

Google for "don't eat pizza" "wonder boy" and nothing comes up. Try "don't eat pizza" "wonderboy" and... here we have a forum post that suggests that "some romsets screw up". There is elsewhere mention of bootleg romsets which may explain the bug, or it may just be a bug in the game.

Maxim
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8643
  • Location: Paris, France
Reply with quote
Re: Bootleg
Post Posted: Tue Mar 09, 2004 12:13 pm
Quote
> > So he likely got it here.

> Ah. OK, I'll hold on to it then. Isn't it in the "Good" rom set?

No!

[...]
Quote
> > Which remind me that the sphinx is very confusing in the arcade version.
> > It sometimes ask you a question, then shows:
> > DON'T EAT PIZZA
> > And you can select between the three words. It is still not clear for me.

> Google for "don't eat pizza" "wonder boy" and nothing comes up. Try "don't eat pizza" "wonderboy" and... here we have a forum post that suggests that "some romsets screw up". There is elsewhere mention of bootleg romsets which may explain the bug, or it may just be a bug in the game.

Mine is definitively a bootleg. Thanks for the link, it explains it all. I was always confused by that.
I played the SMS version again yesterday and noticed how the gameplay and timing were different. For exemple, you cannot get items "too early" after they appears in the SMS version, while you can in the Arcade version.

The game is full of glitches (eg: sometimes some sprites palette gets screwed up after entering a door), I saw the same glitches in arcades in Japan as well, so it is either the bootleg version they had or all versions of this game include bugs.

PS: About the "Wonder Boy" keywords, it seems that everyones call it "Wonderboy". That's also why I thought about the possibility of adding custom keywords to the new database system.
  View user's profile Send private message Visit poster's website
  • Joined: 10 Jun 2006
  • Posts: 29
Reply with quote
Where can you find that hack and can you turn the hourglass timer off?
Post Posted: Thu Jun 21, 2012 10:57 pm
Where can one download this hack with increased difficulty level? The one that still has English text, obviously.

Also, is there a hack of this game where the hourglass timer is stopped or a Pro Action Replay code or something to do that? The reason I ask is because I love this game but I always hate it when any game needlessly times you. Games like most Mario games and Castlevania games and whatnot are fun but are given a degree of annoyingness because of these death timers that don't make any sense. I mean, what, is it that Mario and Luigi die if they go without eating pasta for three or four minutes or so? Actually, we often call the death timers in Mario games their "pasta timer" for this reason. Ha ha... But seriously, it's annoying.

Thankfully there are usually Game Genie codes to freeze these timers so that you can just enjoy the games without feeling needlessly rushed. I know it's supposed to be "part of the challenge", but I just find it annoying, especially because it has no basis in reality whatsoever, which makes it feel so much like I'm just playing a video game, which I am, but I prefer video games to not seem so much like "just a game". It's one thing if there's an actual in-game reason for a timer of some sort in a certain part of a game, like when the base is going to explode in five minutes at the end of Zillion or something like that, because that actually fits into the story of the game.

Anyway, sorry this ended up being so long, but if anyone can direct me to a hack of Wonder Boy In Monster Land where the hourglass timer is stopped, preferably one of the original version for nostalgia's sake and one like that of the version that's hacked to have a higher difficulty level since the game has become way too easy for me, or a Pro Action Replay code to stop the timer or something, I would appreciate it so very much.
  View user's profile Send private message
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8643
  • Location: Paris, France
Reply with quote
Post Posted: Fri Jun 22, 2012 12:24 am
You can try downloading the latest version of MEKA and use the Cheat Finder. The timer value is likely ever decrementing, so if you keep "reducing" with a <= operator you should find the value easily.
http://smspower.org/forums/viewtopic.php?p=71180#71180
  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!