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
Fix YS (japanese version)Posted: Tue Nov 19, 2019 9:32 am
i was searching if someone already fixed the japanese version of YS (to work on genesis/megadrive for example) ?
As many of you already know it's using a "trick" for its status bar (bit 0 in VDP reg 2 which change the name table adr in VRAM), and the game is only working correctly in a SMS 1.
The euro/us version doesn't do this trick and work properly in SMS1, 2 and MD.
I've found the reg 2 writes ( 0xF8(jap) instead of 0xF9(euro/us) ), but do not really understand/find the changes in VRAM adr...
||Posted: Tue Nov 19, 2019 9:39 am|
|I think you need to reimplement a bunch of code to “fix” it, but that could be copied from the export version. What’s the use to do this? I guess to play in Japanese on a Mega Drive or later Master System?|
||Posted: Tue Nov 19, 2019 9:42 am|
||Posted: Wed Nov 20, 2019 3:03 am|
I've got a little information on that here:
When you set bit 0 in register #2 the VDP fetches the name table data from rows 0-7 when displaying rows 16-23, so the screen looks like this:
Screen rows 0-7 : Read name table rows 0-7
Screen rows 8-F : Read name table rows 8-F
Screen rows 10-17 : Read name table rows 0-7
I haven't looked at the game but I assume the idea is that they define a second name table for the status area and write the status information into rows 0-7 of it (not 10-17), and then write F9 to force those first 8 rows to be shown for the last 8 rows of the display.
I guess this is convenient because they only need to store enough VRAM data for a 32x8 name table instead of the full 32x24 table. For example maybe it has something like this:
2000-21FF : 32x8 name table for status area rows 0-7
3800-3BFF : 32x24 name table for regular game screen
I just made those addresses up though, as I'm not sure what the game really sets them to.