|
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 |
---|---|
|
M404 Prototype BIOS - "MASTER SYSTEM" text
Posted: Wed Aug 11, 2010 10:10 am
|
The bumper screen of the M404 Prototype BIOS shows the text "MASTER SYSTEM" in a 16x12 pixel font. Has this text been spotted anywhere else?
The exact tile data for the text exists within several other ROMs: Hang On / Safari Hunt [BIOS].sms Choplifter [Proto].sms Choplifter.sms Hang On / Safari Hunt.sms Marksman Shooting / Trap Shooting / Safari Hunt.sms Marksman Shooting & Trap Shooting.sms My Hero.sms TransBot.sms In fact, the last 2 contain not only the tile data but also, immediately before it, appropriate name table data. Do any of the above ROMs actually display this text? |
|
|
Posted: Wed Aug 11, 2010 11:11 am |
Good find :)
Image for reference: I'd guess that they were planning to have an equivalent for the "Sega Mark III" flash? Maybe for export systems, or maybe only for Japanese Master Systems? Is it near the Mark III tile data? I'm pretty sure it's not shown. Edit: Did you you search across all known ROMs to make your list? For reference, the hex sequence is:
and it's uncompressed 1bpp. |
|
|
Posted: Wed Aug 11, 2010 12:12 pm |
Exactly what I was thinking :)
I'm leaning towards this being for export systems, since it appears in Transbot but not Astro Flash.
The only game on the list to display "Sega Mark III" is Choplifter. The two sets of tile data are far apart here: offsets of approximately $13d80 and $1dc00 in the 128KB ROM.
All the ROMs I've got, which is almost all known ones - there are a few I've not yet managed to find.
For completeness, the name table data for the text is: In the BIOS:
In TransBot and My Hero:
Note that the two sets of name table data are identical apart from: - The use of a different tile index for a blank - The name table entries in the BIOS have bit 11 ("Use Sprite Palette") set |
|
|
Posted: Wed Aug 11, 2010 12:50 pm |
Choplifter has an entry point for displaying the Master System logo at $0023. I can't see anything that would lead to this.
Patch ROM[1F3] = 23,00 and it will replace the Mark III logo. There may be a "cleaner" patch... Just in case nobody knew, I made a tool for searching for hex sequences. |
|
|
Posted: Wed Aug 11, 2010 1:39 pm |
Even if it's not "clean", it's very simple. Good work! Interestingly, the code at $0023 is not present in the Choplifter prototype. |
|
|
Posted: Wed Aug 11, 2010 9:01 pm Last edited by RetroSpark on Thu Aug 12, 2010 6:58 am; edited 3 times in total |
I don't know whether there's a cleaner patch for Choplifter, but there's a perfectly clean one for TransBot.
Even though TransBot does not show a "Sega Mark III" flash, all the code is there to show "MASTER SYSTEM" - it's just jumped over in the shipped ROM. To get the logo to show, all that is needed is to nullify the jump: ROM[$275] = 00 This is the result, shown for a few seconds before the title screen appears: EDIT: I've expanded on this on the development page for TransBot. |
|
|
Posted: Wed Aug 11, 2010 10:47 pm |
It seems that Choplifter and TransBot are the best ROMs for demonstrating this. As I tested the others on the list, things got slowly worse and worse...
"Marksman Shooting / Trap Shooting / Safari Hunt" can be made to display the logo (in white on black) by changing a jump to a call: ROM[55b] = cd. In this case though, there is no delay before the title screen. An equivalent patch for "Marksman Shooting & Trap Shooting" is ROM[4f3] = cd, but this time not only is there no delay, but the palette is almost certainly incorrect as well. Similarly, a patch for "Hang On / Safari Hunt" (and the matching BIOS) is ROM[4cc] = cd, but this time you can't even see the logo unless you manually halt the machine and fiddle with the VDP registers. Finally, "My Hero" doesn't seem to reference the name table data at all. |
|
|
Posted: Tue Dec 20, 2011 2:35 am |
This is the code at $00023: 0023: 3A FF FF LD A,(FFFFh)
0026: F5 PUSH AF 0027: 3E 04 LD A,04h 0029: 32 FF FF LD (FFFFh),A 002C: CD 00 BD CALL BD00h 002F: F1 POP AF 0030: 32 FF FF LD (FFFFh),A 0033: C9 RET As you can see, this is simply a thin wrapper which handles mapping. The function at $13d00 does the actual work of writing the "Master System" tiles and name table data to VRAM.
Now, this is the code around $001f3: 01E9: 3A FF FF LD A,(FFFFh)
01EC: F5 PUSH AF 01ED: 3E 07 LD A,07h 01EF: 32 FF FF LD (FFFFh),A 01F2: CD 06 80 CALL 8006h 01F5: F1 POP AF 01F6: 32 FF FF LD (FFFFh),A This area already contains logic to handle mapping. It calls a function at $1c006, which simply writes the "Sega Mark III" name table data to VRAM. Thus the function at $13d00 is the direct "Master System" equivalent of that at $1c006. A cleaner patch to display the "Master System" logo is therefore to change the code which calls $1c006 to call $13d00, bypassing the wrapper at $00023 altogether: ROM[1ee] = 04; ROM[1f3] = 00,bd.
The wrapper code at $00023 is also not present in the (recently released) second Choplifter prototype. I wonder why it was added for the final version? However, the function at $13d00 does exist in both protos and the cleaner patch works in both, although it needs to be adjusted because the code is at a different address: ROM[1ff] = 04; ROM[204] = 00,bd. |
|
|
Posted: Mon Dec 26, 2011 7:08 am |
Awesome stuff, keep it up! | |