News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: [WIP] Wrecking Crew '98 (Super Famicom) Translation  (Read 83638 times)

NES Boy

  • Full Member
  • ***
  • Posts: 172
    • View Profile
Well, in light of the typos, I've done a different approach in presenting the game's text: with cropped and stitched in-game screenshots.

Here's the story intro:

Spoiler:
Unlike ShadowOne333, I didn't include the text on the billboard that appears during the scene where Mario comes across the building.

If anyone wants, I could do the same with the rest of the game's text. I could even get the text ShadowOne333 is missing.

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1627
    • View Profile
Well, in light of the typos, I've done a different approach in presenting the game's text: with cropped and stitched in-game screenshots.

Here's the story intro:

Spoiler:
Unlike ShadowOne333, I didn't include the text on the billboard that appears during the scene where Mario comes across the building.

If anyone wants, I could do the same with the rest of the game's text. I could even get the text ShadowOne333 is missing.

That'd be of great help if you could. Thanks!

Still, the main story text is still missing, I haven't located it yet in the ROM, and not having the decompressed graphics isn't helping either haha. I have to first find where and how to decompressed the main story font, and once I am able to do that, transcribe each letter/kanji to its HEX value to be able to find the story text in the ROMs data. That's; of course, hoping that it is stored as text and not as graphics.

mariosmentor

  • Jr. Member
  • **
  • Posts: 52
    • View Profile
Don't be so harsh on yourself. You're not wasting my time. :P
Translations are never exact, I know for a fact since I know three languages, and damn are they confusing with words haha.

Besides, that's why we are a community, to help each other out, be it in errors or slight mistakes we might end up doing. :D
Thanks. I really needed that. I'll continue translating the tutorials either later on today or tomorrow. It's hard to say for sure 'cuz my uncle's dying and Mom wants to say goodbye today. 'Til then, I can only suggest enjoying this cookie.  :cookie:

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1627
    • View Profile
Thanks. I really needed that. I'll continue translating the tutorials either later on today or tomorrow. It's hard to say for sure 'cuz my uncle's dying and Mom wants to say goodbye today. 'Til then, I can only suggest enjoying this cookie.  :cookie:
My condolences to your family.
And don't worry about making the translations fast enough, there's no rush. I still have to figure out the pointers for the tutorials to being the actual translation, and then there's the compressed graphics, so don't be on a hurry.
Cookie accepted!

mariosmentor

  • Jr. Member
  • **
  • Posts: 52
    • View Profile
Well, I have some really bad news. Due to Uncle Art's death, my family constantly arguing, and a lot of issues coming up with my translating, I'm afraid I have to pull out of this project. Sorry. (Proceeds to call myself a $%!&head.  :banghead:)

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1627
    • View Profile
My sincere condolences to both you and your family.
I hope you all get the strength required to overcome such a loss.
And don't worry about the project, focus on your family.

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1627
    • View Profile
Well I tried finding the pointer for the text block which begins at 038A82-0x039E8F, but for some reason I cannot seem to find it.
I tried using the same method I used for finding the pointers from EarthBound which follow the structure:

[A9 ZZ YY 85]

Which usually the last two pair of bytes in the address replace YYZZ, being in this case 8A 82, however there seems to be no set of bytes which match with it.
For example, here's one data bank I got from EarthBound and it's pointer:
Code: [Select]
Title Screen Text (Static) Palette
Pointer location: 0×3F692
Data in clean rom: [A9 7C AE 85 0E A9 E1 00 85 10]
Refers to location: 0xE1AE7C (0×21B07C)

As you can see, the address is in SNES Format (C00000+PC address). Here we have A9 ZZ YY 82 0E A9 XX 00 85 10.
Where XXYYZZ is the address in SNES format (0xE1AE7C).
EarthBound does have 4 kind of pointers like those, changing the 0E for 06, 0E, 0A, 12, so with this we could also perform a search for C38A82, or just take portions of the pointer to look for. Like A9 ZZ YY only, or maybe even A9 XX 00.
In this case A9 82 8A or A9 C3 00.
Wrecking Crew '98 seems to also be a HiRom, following the same kind of SNES format as EarthBound.

However, I still cannot seem to find any kind of match which has a similar structure to that of the pointers I'm used to.
There's also the possibility of a three-byte pointer, but I haven't found any so far.

If anyone is skilled enough with a debugger to pinpoint this pointer, that'd be of great help to start moving around the text and translate the tutorials already. xD

rainponcho

  • Sr. Member
  • ****
  • Posts: 275
    • View Profile
Here's a small start. Wrecking Crew '98 (Japan) - no-intro


Examining tutorial mode--
code c3:046b = where it reads script each byte
code c3:0423 = picks up 16-bit ptr here


So example:
(83)80cb ptr-16 ==> (83)8BDD text
ROM = 380cb ==> 38bdd

(83)8041 ptr-16 ==> (83)8A83 text

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1627
    • View Profile
Thank you so much, rainponcho!
So it's a three byte pointer using JSL instead of A9/85?
They might be handled through control codes then?

I found this in 0x038041:
[22 83 8A]

And in 0x380CB:
[22 DD 8B]

The text does being at 0x038A83 with [F6 09 09] and ends with [F3 04 F6 F2 0B F6 F4 1E F6 F5 01 F9 FF], continuing into 0x038BDD for the next section of the tutorial.

Here are the text blocks I've found so far for the tutorial section and its JSLs:

Code: [Select]
1) ハンドルの俥いかた : How to turn handles
0x038A83-0x38BDC
[22 83 8A] - At PC address 0x038041

2) ブ口ツクの壊しかた : How to break blocks
0x388DD-0x038CE7
[22 DD 8B] - At PC address 0x0380CB

3) バクダンの使いかた : How to use bombs
0x038CE8-0x038EB3
[22 E8 8C] - At PC address 0x03810B

4) パネルの使いかた : How to use panels
0x038EB4-0x039340
[22 B4 8E] - At PC address 0x0381BF

5) パネルの効果 : Panel Effects
0x039341-0x03970F
[22 41 93] - At PC address 0x03834F

6) パネルの連鎖 : Panel Chains
0x039710-0x039920
[22 10 97] - At PC address 0x0384BA

7) ゲームのルール : Game Rules
0x039921-0x039CB8
[22 21 99] - At PC address 0x038550

8) スぺシャル : Special
0x039CB9-0x039E8F
[22 B9 9C] - At PC address 0x0386BB

That seems to be everything for the text blocks for the tutorials.
« Last Edit: February 15, 2017, 01:24:48 pm by ShadowOne333 »

rainponcho

  • Sr. Member
  • ****
  • Posts: 275
    • View Profile
Re: [WIP/HELP] Wrecking Crew '98 (Super Famicom) Translation
« Reply #49 on: February 15, 2017, 11:05:35 pm »
Don't want to spend too much time on this (trying to get Wizardry Empire stuff fully done), but you definitely need more community help to move this further - the rest isn't novice material from what I went through.


16x16 decoded font. 2-bpp.
https://www.sendspace.com/file/92x65f

data rom offsets:
181efe - 182a21
182a21 - 183492
183492 - 183ebd
183ebd - 1844db

table:
d4:5b04 = 24-bit font ptr + 16-bit vram offset

code:
d4:087b = start decoder (raw copy, lz copy, rle copy)


note: If I somehow become the one to make an encoder / re-insert, I'd rather make a lazy "raw" version. Or make a special case that just copies the "useful" uncompressed tiles over. That font is massive, and you won't be using most of those tiles -- leaving lots of nice empty space to take an easy way out.


And if you're wondering about the menu sprites/tiles, that's another layer of pain finding it. They use a bitmask method: 0 = raw byte, 1 = rle byte. Every 8 bytes, $2118 send tiles over. Reset rle for next 8 bytes. I don't have this quite figured out but here's the next routines, if anyone else wants to run with it.

At least it's not hard to remap the ptrs if the new tiles don't fit.


Tutorial main menu
code ptr c0:5ee4; data c7:5198-6478??
code ptr c0:5ef1; data c5:47c2
==> code c0:0c51

code ptr c0:5efe
code ptr c0:5f0b
==> code c0:0d49 (...?)

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1627
    • View Profile
Re: [WIP/HELP] Wrecking Crew '98 (Super Famicom) Translation
« Reply #50 on: February 16, 2017, 11:44:30 am »
Oh wow rainponcho!
You managed to get the whole font out!
That's amazing.

I checked out the .bin files you uploaded, and it seems like they follow the exact same tile ID as the 8x16 font.
Check this as an example:



Can you see it?
They are arranged in the EXACT same way as the uncompressed font.
Also, I want to point this out too:



Both fonts share a 1:1 arrangement until they reach the uppercase letter "Y", after that they differ in the next 43 characters, but those are not as important, an updated TBL for the new characters specific to both menus and story text can be made.

What I was thinking is that, hopefully, since the 16x16 font already has a complete latin alphabet (without the Z), and if the hex data for both Story mode and menus is in a similar text block as the Tutorial text, maybe we can avoid screwing around with the compressed font and focus on solely finding the text blocks for those. That is, if the text for any of those is not compressed too, or handled as graphics themselves.

I'm not entirely sure if this is even feasible, I'm just mumbling random crap since I am not as knowledgeable in compression/decompression of graphics or text as others in here, I'm just giving a hopeful possibility.
What do you think?
« Last Edit: February 16, 2017, 11:50:38 am by ShadowOne333 »

rainponcho

  • Sr. Member
  • ****
  • Posts: 275
    • View Profile
Re: [WIP/HELP] Wrecking Crew '98 (Super Famicom) Translation
« Reply #51 on: February 16, 2017, 04:54:02 pm »
I'll try fishing around for some story text later today/tomorrow, to see how they're stored. You bring up an alternate interesting idea - use the same built-in 8x16 font for both tutorial and story modes.

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1627
    • View Profile
Re: [WIP/HELP] Wrecking Crew '98 (Super Famicom) Translation
« Reply #52 on: February 16, 2017, 05:08:44 pm »
I'll try fishing around for some story text later today/tomorrow, to see how they're stored. You bring up an alternate interesting idea - use the same built-in 8x16 font for both tutorial and story modes.
Well not the same built-in 8x16 font for everything, but I am assuming that both 8x16 and 16x16 fonts use the same kind of tile ID (Hex values) since almost 90% of both fonts are shared and even arranged in the same way.
If the Story/Menu text is stored similarly in the ROM's data, then we might be able to simply change the values from the Katakana/hiragana to the ones for the Latin alphabet of the same 16x16 font. All of this without the need to modify the compressed font. (Although there's still the few images with japanese in there like Bowser's and the control xD)

I'll modify the TBL I made previously to make one for the 16x16 font.
Hopefully that'll be of help when trying to find the text in the ROM's data.

rainponcho

  • Sr. Member
  • ****
  • Posts: 275
    • View Profile
Re: [WIP/HELP] Wrecking Crew '98 (Super Famicom) Translation
« Reply #53 on: February 16, 2017, 06:54:26 pm »
Sample: d4:5398 ptr1 ==> d4:2b7d text1

code d4:5bd3 = tile maps

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1627
    • View Profile
Re: [WIP/HELP] Wrecking Crew '98 (Super Famicom) Translation
« Reply #54 on: February 17, 2017, 10:25:48 am »
Sample: d4:5398 ptr1 ==> d4:2b7d text1

code d4:5bd3 = tile maps

What ROM address is D42B7D? Is it 0x142B7D? Is that where the text is stored?
I got a bit confused, sorry. :P

Also, I was about to post the modified TBL but found out that the HEX values are not 1:1 with the 8x16, but rather slightly changed. I completely forgot that 16x16 fonts take 2x2 bytes for each character.
For example, I believe I saw 2C 00 60 00 in 0x142B7D.
That begins with その, the very first two japanese characters from the very beginning of the Story mode.
And I believe I already know how the text format works for the story text.

For example:
[2C 00] tells the game to load the 16x16 character located at 2C from the first font.bin you shared the other day.
[2C 03] tells the game to load the 16x16 character located at 2C from the fourth (counting 00 as the first) font.bin you shared.

With that said, look at this:


Success!
Looks like my theory was correct, we can play around with the story text without having to edit the compressed font at all! :)
(Well, except for the other two I mentioned earlier :P)
Now I'll try to post the TBL for the story text, and gather all the text blocks from the story mode and try to post all the info in here.

Is the Menu text stored in a similar way, rainponcho?
I tried doing a search with that format for the menu texts but didn't get a proper match with the letters next to each other.
« Last Edit: February 17, 2017, 10:50:59 am by ShadowOne333 »

rainponcho

  • Sr. Member
  • ****
  • Posts: 275
    • View Profile
Re: [WIP/HELP] Wrecking Crew '98 (Super Famicom) Translation
« Reply #55 on: February 17, 2017, 10:54:09 am »
Menu text are stored as compressed 4-bpp sprite tiles.

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1627
    • View Profile
Re: [WIP/HELP] Wrecking Crew '98 (Super Famicom) Translation
« Reply #56 on: February 17, 2017, 11:09:28 am »
Menu text are stored as compressed 4-bpp sprite tiles.
Ah I see, that explains why I didn't find it.
Guess that adds it to the Bowser and Control layout images for compressed graphics.

In the meanwhile, here's the TBL specifically for the Story Text:
https://www.dropbox.com/s/yg3kfvgddpsedog/StoryMenuText.tbl?dl=0

One thing I noticed is that the game sometimes repeats 6203 a bunch of times (sometimes 6003 too) and then continues with the next block of text for the same cutscene. That shouldn't be of much worry though.

I will try to document all of the text blocks for the Story now, it might take a while. xD

rainponcho

  • Sr. Member
  • ****
  • Posts: 275
    • View Profile
Re: [WIP/HELP] Wrecking Crew '98 (Super Famicom) Translation
« Reply #57 on: February 17, 2017, 11:38:08 am »
At least you're making good progress! Didn't realize how long you had this project "active".

I can probably make a compressor tool for the sprite tiles - have an idea how to do this easily.

Repeating 62 03... sounds like a way to "line feed" via padding? I'm sure you'll figure out how it works. ;)

ShadowOne333

  • Hero Member
  • *****
  • Posts: 1627
    • View Profile
Re: [WIP/HELP] Wrecking Crew '98 (Super Famicom) Translation
« Reply #58 on: February 17, 2017, 12:00:32 pm »
At least you're making good progress! Didn't realize how long you had this project "active".

I can probably make a compressor tool for the sprite tiles - have an idea how to do this easily.

Repeating 62 03... sounds like a way to "line feed" via padding? I'm sure you'll figure out how it works. ;)
Thank you so much, rainponcho!
The de/compressor tool would mark the final step to have the game ready for a 100% translation!
Thanks to your awesome help a full translation of the game is now within our grasp!

Yeah I've been trying to get around translating this game for years now I believe, but thank to your incredible help and GHANMI's that I've been able to put stuff together to be able to translate it to the point we are now.
I am deeply grateful for all your help :)

And yes, I believe all of those 6203/6003 codes might be some sort of padding to jump to the next position and erase the current text. At least that's what I think so far :P

rainponcho

  • Sr. Member
  • ****
  • Posts: 275
    • View Profile
Re: [WIP/HELP] Wrecking Crew '98 (Super Famicom) Translation
« Reply #59 on: February 17, 2017, 02:17:45 pm »