[Translation Hack] Initial D - Gaiden (GB).

Started by Bunkai, April 19, 2022, 08:27:03 PM

Previous topic - Next topic

Bunkai

I decided to try my own documents and see what I can get.
{I need to explain better how to calculate the pointer table end.
However, thanks to the help from 343 and abridgewater in the RHDN discord
I got a proper dump}

All the info to make a translation for it is here.
[Besides most images seem uncompressed. If not all]

   Game rom: Initial D Gaiden (Japan) (SGB Enhanced)
   CRC-32: 6CC56612
       

Japanese Info on the game and menus
https://ameblo.jp/dorikin86/entry-12477025728.html


   Full script in txt
   https://pastebin.com/L5euGeir
   Menus texts are graphic assets.

Font + Address


Pointer Table + Address


Script text + Address


Proper dump proof



Batch link for the images
https://imgur.com/a/UJTcRvm

Table created by 343 and fixed by me
Sorry but you are not allowed to view spoiler contents.


Command.txt for a proper dump with cartographer
Sorry but you are not allowed to view spoiler contents.


Insertion test / proof


Reused the same font and copied the table with utf-8 format to check.
A new font will/should be made.

Atlas code for insertion,
Actual text will require pointer adjustment since it gives overflowed warnings.
But insertion works.
Sorry but you are not allowed to view spoiler contents.


All Graphic Assets:
Start with the font, and follow through.
Sorry but you are not allowed to view spoiler contents.

Last bank with Graphics: 0x34000
Curiosity leads to knowledge,
be curious.

Bunkai

#1
I was doing a second search to be sure i didn't leave any text and I found, in bank 0x1:

Credits, 2 Character Names' list, some JPN & ENG text menus.

* I believe one of this Character Names list is for the default name records.

Credits text + Address


Link with batch of screenshots for any new text found
https://imgur.com/a/PjSYGtD

The text on this post is undumped, the post will be updated when this text is dumped

This table works in a different way with more bytes, explanation in the spoiler:
Sorry but you are not allowed to view spoiler contents.




A couple more of graphic assets
https://imgur.com/a/Y2LS0Hr

PS: I have to review all graphic assets yet, but mainly English titles like "RECORDS" or "SOUND CHECK" are the only ones eluding my searchs.
Curiosity leads to knowledge,
be curious.

abridgewater

Quote from: Bunkai on May 16, 2022, 07:05:19 AM

We discussed this in the Discord, but I figured I'd summarize here for posterity:
cd e0 0c (at $44a3) disassembles as call $0ce0
At $0ce0 is e1 cd 05 0d e5 c9, which is
pop hl
call $0d05
push hl
ret

What we have is a code stream with inline literal strings.  The strings are variable-length, so either the length is loaded ahead of time or there's a terminator, and 65 is a good bet for the terminator, especially given the "Credits text" image.

From there, we see (at $44b6) a sequence 06 xx 0e yy cd e0 0c which appears a few times again further down.  This is
ld b, $xx
ld c, $yy
call $0ce0

and the values used strongly suggest display coordinates rather than a text length.

Sometimes there just aren't manipulable pointers.  Sometimes it's a matter of asm hacking no matter what.

Bunkai

#3
Currently examining the sound code

This is the i/o map:


This is the routine to load the wave pattern:


The game seems to use ASM code to initiate and update the sound channels, not literal strings
More to come
Curiosity leads to knowledge,
be curious.