[Technical] [NES] Dai Kaijuu Deburas - Custom Script Insertion

Started by BlackPaladin, January 15, 2023, 05:34:14 PM

Previous topic - Next topic

BlackPaladin

Currently, I'm in need of a translator for the NES game, "Dai Kaijuu Deburas".  (For those unfamiliar, it's a strategy game where an army is defending the city against a giant monster, a Godzilla knock-up called "Deburas".  From what I've seen, it really does make you feel like you're in the middle of a kaiju film like Godzilla or King Kong.)

Anyway, after I identified (though not fully understood) all control codes littered throughout the script, I managed to perform a clean script dump of the game.  Now, I'm in need of someone to translate the script into English.  So if anyone wanna help out, let me know, and I'll share the script file for translation.

I may need someone to program a custom script inserter to account for the game's pointer system, but that's later down the line.

Edit:  Thanks to Lazermutt4l, the game's script has been translated.  (Thanks!)  Now comes the next part... the game's translated script needs to be inserted.  While it's possible to insert the script manually, it would be a very cumbersome process.  The pointer system uses a standard pointer table, but it splits the pointer table into two separate pointers.  (One table consists of the pointers' high-byte whereas there's a second table that contains the pointers' low-byte.  Therefore, using Atlas to insert the script back into the game may not be possible.)  Furthermore, there's a litany of control codes in the script itself.  I managed to identify all known control codes in the game's script but omitting any of them would be very risky.   What I was hoping is that someone can craft a custom insertion program for the game's script so that inserting the script would ease the process of insertion to some extent.  (Also, it wouldn't hurt if the ROM could be expanded.  I tried doing that in the past with "Moeru! Oniisan" for the NES and I couldn't figure it out.)

Lazermutt4

I can give it a shot. In doing some research on the game, I found a fansite that typed up the script + a lot of info, so that will help with some context.

Bunkai

Quote from: Lazermutt4 on January 15, 2023, 07:48:54 PMI can give it a shot. In doing some research on the game, I found a fan site that typed up the script + a lot of info, so that will help with some context.

Hey, I was just talking with him in the RHDN discord. The funny thing I found the same guide you wrote there lol. Anyways, if I can help ask me :D.

For now, I'll step aside in order to avoid miscommunication.
Curiosity leads to knowledge,
be curious.

BlackPaladin

Quote from: Lazermutt4 on January 15, 2023, 07:48:54 PMI can give it a shot. In doing some research on the game, I found a fansite that typed up the script + a lot of info, so that will help with some context.

Bunkai showed me that site as well.  Great minds think alike, I guess. :P

If you can come on Discord, you can come to the topic channel I set up there on Deburas.  We can talk there some more.  If not, I can send you the script files in a DM.  Thank you for volunteering, BTW.  :)

BlackPaladin

Translation has been taken care of.  (Thanks, Lazermutt4!)  Now comes the next step... inserting the script into the ROM.  *crosses fingers*

abw

Quote from: BlackPaladin on January 15, 2023, 05:34:14 PMThe pointer system uses a standard pointer table, but it splits the pointer table into two separate pointers.  (One table consists of the pointers' high-byte whereas there's a second table that contains the pointers' low-byte.  Therefore, using Atlas to insert the script back into the game may not be possible.) 
Just for the record, Atlas can totally handle this - instead of using #W16($addr) to write the pointer to $addr and $addr+1, you'll want to use #WHB($addr_hi) and #WLB($addr_lo) to write the high and low bytes of the pointer to wherever they need to go.

BlackPaladin

Quote from: abw on January 28, 2023, 01:35:57 PMJust for the record, Atlas can totally handle this - instead of using #W16($addr) to write the pointer to $addr and $addr+1, you'll want to use #WHB($addr_hi) and #WLB($addr_lo) to write the high and low bytes of the pointer to wherever they need to go.

I had no idea that was possible!  Thanks!  I'll try that out!