News: 11 March 2016 - Forum Rules

Author Topic: Finding and disabling overlays on Virtual Console.  (Read 2870 times)

Vague Rant

  • Jr. Member
  • **
  • Posts: 47
  • Deceptively cute
    • View Profile
Finding and disabling overlays on Virtual Console.
« on: June 29, 2013, 07:00:22 am »
After translating the menu for the Virtual Console release of Starblade, I was interested to see what other System 22 titles were available on Wii. This led me to Cyber Sled, a dual-stick, arena-based combat sim. Translating the menu was about as simple as it was for Starblade:

I then came upon a problem, however, in that Cyber Sled includes a large amount of Japanese text in-game. I thought I'd investigate the original arcade ROM and compare the differences between the Japanese and World releases, but then discovered that the Japanese game was in English all along:

As such, I have to assume the Wii version in fact added the Japanese. Next step, compare the differences between the original arcade versions and the ROM bundled on Wii ... except that they seem to have very little in common. Perhaps one, the other or both are encrypted? I don't know.

What I do know is that the ROM provided on Wii is (slightly less than) 3MB larger than the original arcade version. At least part of this is a save state: the Wii version launches right into the title screen, skipping the self-tests and such. However, I also began to suspect that some of this extra data might be overlays that drop Japanese text over the actual in-game English. Here's why:

This is roughly the same shot as the above, but this time on the Wii. Note the pathetically half-hearted black backgrounds on the Japanese text, which I've come to assume is there because Namco are literally "covering up" the English text with these Japanese overlays.

Purely as an experiment, I tried lopping off a large chunk from the end of the ROM, which I thought looked like graphics. I did manage to get the save state loading to fail, so the game launched into its usual arcade self-tests, which was kind of cool. It didn't really get me any closer to playing in English, though.

As you may be able to guess from my methods, my hacking ability could be described as amateurish at best. I have no real, practical ideas about how to progress from here. I don't even really have a good reason to believe the overlays I'm looking for are bundled into the ROM; there just doesn't really seem to be anything else big enough to contain them.

I understand this is a pretty niche area, so I'm not expecting any hands-on help, but if anyone has any ideas on how I might find what I'm looking for (or even if my guesswork sounds plausible), they'd be greatly appreciated.
I've got nothing to say, but it's OK.


  • Hero Member
  • *****
  • Posts: 565
    • View Profile
Re: Finding and disabling overlays on Virtual Console.
« Reply #1 on: June 29, 2013, 01:46:07 pm »
I know this sounds silly, but the text overlay could be a separate file within whatever archive/WAD is being run by the emulator.  All the console and arcade titles are basically run by a custom emulator, and these provide a function to do overlays or full resource replacement.

I've seen this in a few other virtual console cases, in particular some newly localized games from their old systems.  The ROM itself isn't altered, but a file(s) is provided that does resource replacement.  A good example is 'Sin and Punishment', which is running a japanese N64 ROM in an emulator with translation overlay.  They also use the same system as a cheap way of 'updating' graphics.

If this is the case, you should have the emulator, whatever game code it runs, then a localization folder (or files or file) that replaces resources with new ones.

Vague Rant

  • Jr. Member
  • **
  • Posts: 47
  • Deceptively cute
    • View Profile
Re: Finding and disabling overlays on Virtual Console.
« Reply #2 on: June 30, 2013, 05:14:52 am »
I did originally start out by looking for the overlays as an external file, but none of the other files seemed like they'd be big enough to hold the new graphics. Wherever they are, I'm reasonably sure they're somewhere in, which is the whole emulator/ROM core to the package--the rest is extraneous details like the manual, home menu, strap warnings, etc. Within, we have the following:

Code: [Select]
  LogoVCA_backA8.tpl  //  The little "ARCADE GAME" graphic that fills in the 16:9 area (original game is 4:3)
  VCA_Pic_tpl_LZ.bin  //  The instructional graphic seen on startup ("explanation"?)
  MES_COM_JP_DAT_LZ.bin  //  Popup notices like "Are you sure you want to quit?"
  Title00_bin_LZ.bin  // The Cyber Sled ROMset with a save state appended to the end (and maybe more?)
SaveData // The graphics used on the Wii save management screen
  dialog // This sounded promising, but the files in here just handle the display for popup windows
  keyconfig // Key config screen
  pausemenu // Pause menu
  screenpos // Screen position/display settings
  startmenu // The main menu
Sound // The two files in here have "se" in their names, probably just the little cursor sliding sounds and such in the menu
  Title00_JP_VACM_LZ.bin // The only other major strings file along with MES, above--menu text and such
  Title00_VABS_LZ.bin // No idea, but it's 68 bytes uncompressed
  Title00_VADF_LZ.bin // No idea, 404 bytes uncompressed
  Title00_VADS_LZ.bin // No idea, 124 bytes uncompressed
  Title00_VAKY_LZ.bin // Seems to be where Wii controls are mapped to arcade, has strings like BTN1-3, COIN, START
  Title00_VAPM_LZ.bin // No idea, 476 bytes uncompressed
  Title00_VASM_LZ.bin // Looks similar to the above, also 476 bytes

This leaves me feeling that the modified graphics must either be appended to the ROM like the save state, or otherwise that they've legitimately been patched into the game and replaced the English text entirely. For reference, I did look at all those mystery files to see if I could find any SHIFT-JIS text or similar, but none of them look like text at all.

EDIT: OK, I've been trying to catalogue the format of the ROM included in the VC package. There's a decent chunk I have been able to identify against MAME's database:

Code: [Select]
0x200000: cy1-snd0.8j // Different to MAME's by a few bytes. Different revision? Bad dump?

0x420000: null bytes
0x520000: cy1-voi0.12b
0x5A0000: cy1-voi1.12c
0x620000: cy1-voi2.12d
0x6A0000: cy1-voi3.12e
0x720000: cy1-obj0.5s
0x7A0000: cy1-obj1.5x
0x820000: cy1-obj2.3s
0x8A0000: cy1-obj3.3x
0x920000: cy1-obj4.4s
0x9A0000: cy1-obj5.4x
0xA20000: cy1-obj6.2s
0xAA0000: cy1-obj7.2x

That's 7MB identified, from a little over 16MB. Not counting the full meg of nothing and snd0, these are byte-for-byte the same as MAME's ROMs. I'm not sure how much of the file is the save state, and so far the rest of the file hasn't looked much like the MAME ROMs at all. I'm not sure why that is, again it might be that one or the other (Wii or MAME) decrypts some content at run-time. Anyway, I'll keep working at the ROM, hopefully I can find something that's different from the original.

EDIT2: I have no understanding of what this means, but looking at the namco21 source, all the files I've been able to find are read in though ROM_LOAD(), while the rest are read in via ROM_LOAD16_BYTE() and ROM_LOAD32_BYTE(). Again, no idea what any of that means, it just seems relevant that the files I've found are read differently to those I haven't.
« Last Edit: June 30, 2013, 09:53:52 am by Vague Rant »
I've got nothing to say, but it's OK.