|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
Author | Message |
---|---|
|
Wonder Boy in Monster World oddity
Posted: Wed Mar 24, 2004 9:24 am
|
Wonder Boy in Monster World does a "IN a,(00h)" when displaying the SEGA splash screen.
This seems to be a rather odd way of determining whether the game is running on an SMS1 or 2, since according to Charles MacDonald's documentation, this read should return the last byte of the instruction which read the port (00h) on an SMS1, and return FFh on an SMS2. The game then tests a bit of the data read, and if it is set, adds a "TM" to the SEGA screen. What is this all about? Does anyone have any idea why they only want to show the TM symbol on an SMS2? |
|
Sylvain
|
Posted: Wed Mar 24, 2004 11:25 am |
I'd say because the TM symbol already appeared on the ROM logo screen on the SMS1, while it's not present on the SMS2 logo screen ?
|
|
|
Posted: Wed Mar 24, 2004 4:31 pm |
Can you provide more details? When you say "SEGA splash screen", are you referring to the BIOS start-up screen? If so which emulator and BIOS version are you using? Are you running the game in Japanese or Export mode? I can't find any instance where that game accesses port $00. Do you have a PC for the IN a,(00h) instruction? Thanks. -- Eric R. Quinn |
|
|
Posted: Wed Mar 24, 2004 6:34 pm |
No, after the BIOS screen, the game displays "SEGA" on a light blue background.
The IN instruction is at PC=719h. Here is a disassembly of that area: 719 in a,($00) 71B bit 6,a 71D jr z,$072b 71F ld hl,$821b 722 ld de,$3ae5 725 ld bc,$0004 728 call $0345 72B ... The call to 0345 displays the "TM" part. Here are two screen shots to clarify: When IN returns 00h: When IN returns FFh: |
|
|
Re: Wonder Boy in Monster World oddity (Fixed Images)
Posted: Wed Mar 24, 2004 6:35 pm
|
|
|
|
Re: Wonder Boy in Monster World oddity (Fixed Images)
Posted: Thu Mar 25, 2004 12:04 am
|
Thanks for the update. I was using the wrong ROM. (I still get confused about all the Wonder Boy games and their variations.) As for the reason for the "TM" part, here's a theory: Reading port $00 is equivalent to reading port $3E. Port $3E is the memory control port and is write-only. However, if it could be read, then bit 6 (which is the bit being tested) would indicate whether the cartridge ROM was enabled or disabled. Perhaps, this game was designed to run either in a stand-alone cartridge or as a built-in game. In the case of a built-in game, bit 6 would be set and the "TM" would be displayed. For a cartridge, no "TM" would be necessary (perhaps because a SEGA start-up BIOS screen would already have been displayed.) I really don't know, but it might explain why only bit 6 is tested. -- Eric R. Quinn |
|
|
Posted: Tue Jul 06, 2010 6:53 am |
Sorry to bump such an old topic, but I have another theory on what's happening here.
There's a version of Genesis "Sonic the Hedgehog" which contains code to detect whether it is running on a Japanese or export system, and only display "TM" in the latter case. Perhaps this is what Wonder Boy in Monster World is trying (unsuccessfully) to do? To find out, I'd like to see what happens when reading port 0x00 on Japanese machines. Does anyone know? Alternatively, is anyone able to run the game on a Japanese system and see what happens? To clarify, the game in question is "Wonder Boy in Monster World" (ROM CRC32: 7d7ce80b), title screen shown here: Immediately before the title screen, one or other of the screens below will be displayed, depending on the value of bit 6 read from port 0x00: |
|
|
Posted: Tue Jul 06, 2010 9:17 am |
It's GG code.
On the GG, bit 6 of port $00 is set for export, reset for Japan (see http://www.smspower.org/Development/RegionDetection). Also, the GG has no BIOS splash screen so it's typically the case that GG games show a SEGA splash and SMS ones don't (although there are exceptions, as we can see). I think it is not at all unusual to find GG games that show a TM on their SEGA screen or not depending on the console region. This is just copy-pasta coding. |
|
|
Posted: Tue Jul 06, 2010 10:27 am |
Well, that concisely solves this 6-year-old question! By changing the file extension of the ROM, we can see that on the GG the code does what I suspected: "TM" is displayed on export systems but not Japanese ones. |
|
|
Posted: Tue Jul 06, 2010 11:09 am |
There is a Wiki entry about it:
http://www.smspower.org/Development/WonderBoyInMonsterWorld-SMS If you want to complete. |
|
|
Posted: Tue Jul 06, 2010 11:11 am |
Having tested several GG games, it seems you are correct. In particular, "Wonder Boy [B].gg" displays the exact splash screen pictured above (albeit with a palette change) - in this case, the region detection works correctly. Interestingly, "Wonder Boy [A].gg" does not seem to perform the region detection - it never displays "TM". So, now that we know that this code is intended for the GG, can anyone confirm its actual behaviour on the SMS? Does the game really show "TM" on an (export) SMS2 but not on an (export) SMS1? |
|
|
Posted: Tue Jul 06, 2010 12:26 pm |
I'd expect it to work as Charles' doc says.
I've made it so the site links to these development pages from the main game page, to increase discoverability... |
|
|
Posted: Wed Jul 07, 2010 11:44 am |
For the record, most Mega Drive games check for the system's region before showing (or not) the "TM" alongside the initial SEGA logo. | |