What's new
Just wondering, has anyone seen if the socketed rom has the data on it making it easy to swap the translation?

I honestly doubting this as its probably on one or more of the non socketed roms on the cart.
to run this you need a net-boot or CF card setup, you're not going to swap the socketed rom and get this running.
You can also change one of the roms with the code Kuze made. Not sure how easy that would be and which chip could be used for that... If it's in the eprom it's clear if not, you'll need to find a suitable SMD.
 
Just wondering, has anyone seen if the socketed rom has the data on it making it easy to swap the translation?

I honestly doubting this as its probably on one or more of the non socketed roms on the cart.
to run this you need a net-boot or CF card setup, you're not going to swap the socketed rom and get this running.
You can also change one of the roms with the code Kuze made. Not sure how easy that would be and which chip could be used for that... If it's in the eprom it's clear if not, you'll need to find a suitable SMD.
I believe we confirmed earlier that the code wasn't in the eprom portion. While true that you could replace one of the SMDs it's probably more work than it's worth. Especially since there's a lot more work to be done on this IMO.

I'm stilling trying to track down the Japanese Dreamcast image to see if I can isolate where the keyboard map is, stats page, and if I can define the top text in the pop ups.

I do have an original disk, just no way to rip it.
 
While Kuze made some amazing progress with the dictionary files I'm not considering this project done until
1. the keyboard mapping matches a USA layout instead of JP layout
2. the top text in the word bubbles is used (particularly for the boss battles where reading the question is necessary).
3. the remaining ancillary text has been translated, meaning the instructions on how to kill the bosses, the score screen text, attract mode text etc...

so I started comparing files between the USA and JP Dreamcast versions. first of all the USA game has a whole bunch of files that aren't present in the jp version, not quite sure what that's about but there doesn't seem to be anything in the jp version that isn't also in the usa version, which is good.

the following files are different:
0GDTEX.PVR
1ST_READ.BIN
BOSS.AFS
ETC.AFS
EVT.AFS
POLTEX.AFS
PRG.AFS
VOC_ORG.AFS
WORD.AFS

everything else checks out to be identical bit for bit.

Sorting through the files that have differences that my first order was to find something that looked like a keyboard map and I think I've found exactly that.

the PRG.AFS file splits out into 2 .bin files game.bin and test.bin

in the USA game.bin file around offset 00069210 I found what looks to be a keyboard map

in the JP game.bin it's around 00068150

I haven't been able to find anything in the NAOMI ROM that matches this unfortunately


interesting aside... the test.bin file in the Dreamcast games looks like it has text from the arcade service menu.
 
Could anybody post the complete ROM bin file for download?
I would love to try this.
 
Any progress? I just picked up the Naomi cart. I had the import dreamcast version years ago and enjoyed it. I didn't mind the Japanese words and found it more challenging as i needed to rely on raw keyboard skill instead of muscle memory. But the Q/A breaks the game for gaijin :(
 
Any progress? I just picked up the Naomi cart. I had the import dreamcast version years ago and enjoyed it. I didn't mind the Japanese words and found it more challenging as i needed to rely on raw keyboard skill instead of muscle memory. But the Q/A breaks the game for gaijin :(
Unfortunately no :( I had asked MetalliC for advice about figuring out the top text problem as well as the keyboard mapping and this was his advice:
MetalliC said:
make memory dumps during gameplay from Dreamcast and Naomi, disassemble them and study and compare code. quite long, complicated and expected to be boring task.
This is well outside my knowledge base and I've yet to dedicate the time to sitting down and trying to figure it out. It also doesn't help that my PC isn't powerful enough to run DC/NAOMI emulation so getting memory dumps during gameplay will be problematic.

---------------

What I can speculate about these issues...
Top word Problem:
The original Japanese version used Kanji/Katakana for the top text and Romaji for the bottom text so I'd suspect that it stored both sets of text in the WORD.AFS file and would reference one location for the top text and a different location for the bottom text. the English version uses the same text so it likely references the same location for both. Since we just swapped out the WORD.AFS file I'd assume that the top text location is either unused or non-existant.... so fixing it would mean one of two options.

1. identify the bits that are referencing the top and bottom text locations and modify it so that they reference the same locations in word.afs... finding this would be very difficult as MetalliC had stated but I'd suspect implementing the change would be very simple.

2. Figure out the formatting of both the Japanese and English word.afs file and and then modify the English file to follow the Japanese format, duplicating the words for the both the top and bottom text so that the game finds both locations. This is probably an easier solution to discover, however implementing the solution would be a lot more difficult as it would require modifying every word record in the word.afs file (might even require a simple program to generate a new file).


Keyboard Layout Problem:
getting the keyboard to map keys to the proper English locations
1. identify the bits that "map" each key to a character and then modify the map to the US/English standard. Difficult to discover a solution, but easier to implement.

2. figure out the keyboard protocol and build a hardware re-mapper that goes between the keyboard and the NAOMI. easier to discover a solution but much more difficult to implement. One benefit here is we could likely build a generic keyboard port that would allow us to use normal keyboards, not just the Dreamcast ones.
 
Anyone know if it's possible to have red blood? There is no option on JP BIOS, and the setting on USA BIOS has no effect.
 
Sorry to revive such an old topic but this translation patch intrigued me and the information is directly relevant to the old effort here so I started poking at Naomi bin files this morning and well....

25pc0sg.png


I figured out how to access the filesystem on Naomi rom .bin files :D

It's actually not hard at all and you should theoretically be able to overwrite it but I haven't tried that yet. The skinny of it is you will search the bin of the rom you want to use for "CD001" as they use ISO9660 filesystem just like Dreamcast does. You'll end up finding something that looks like this (note this was me still poking everything so ignore that I'm in ic1 YOU MUST USE THE NETBOOT .BIN FILE TO DO THIS):
59a1KL4.png


Now grab any random iso file off the internet and search it for "CD001". Select the 01 before 4344303031 along with all the hex in the iso to the very end of it. Delete all of this, select 014344303031 to the very end of your Naomi bin file, copy, paste into the iso and you now have a mountable image of Naomi files. I'd assume you can create an iso and do the reverse to inject files back into a game but I haven't tested this yet. I do plan to play with this a bit and see if I can fix the bugs in the english patch of this game but no promises there.
 
Please don't apologize for bumping this thread. This project is still very much not complete and still very relevant (to me at least).

For reference these are the things that still need to be fixed:
While Kuze made some amazing progress with the dictionary files I'm not considering this project done until
1. the keyboard mapping matches a USA layout instead of JP layout
2. the top text in the word bubbles is used (particularly for the boss battles where reading the question is necessary).
3. the remaining ancillary text has been translated, meaning the instructions on how to kill the bosses, the score screen text, attract mode text etc...
I believe some of the swapped files in the early levels are incomplete as well. some of the 2-3 letter word bubbles at the very beginning of the game still appear in Japanese.
 
After poking around in the mounted iso it seems there's problems still with the TOC as the word files are not being mounted... will have to dig deeper into making a proper header

Oh, well this is interesting.. so the data's in the iso so it should be there right? WRONG

sambookpro:rom sampson$ grep -e "CD001" *
Binary file epr-23021a.ic22 matches
Binary file mpr-23001.ic1 matches
Binary file mpr-23009.ic9 matches
Binary file mpr-23014.ic14s matches
Binary file mpr-23015.ic15s matches
Binary file mpr-23020.ic20s matches

There's multiple ISO9660 images within the roms so you have to hand-build each one. I noticed this because the TOC after doing the above method was 0x4878 sectors which when multiplied by 2048 block size results in 37994496 bytes which is not enough to cover the 170MB or so of data within the game. It seems each track would have to be hand-made from the individual ICs, modified, re-injected and then build a new .bin file
 
Last edited:
Sorry to revive such an old topic but this translation patch intrigued me and the information is directly relevant to the old effort here so I started poking at Naomi bin files this morning and well....

25pc0sg.png


I figured out how to access the filesystem on Naomi rom .bin files :D

It's actually not hard at all and you should theoretically be able to overwrite it but I haven't tried that yet. The skinny of it is you will search the bin of the rom you want to use for "CD001" as they use ISO9660 filesystem just like Dreamcast does. You'll end up finding something that looks like this (note this was me still poking everything so ignore that I'm in ic1 YOU MUST USE THE NETBOOT .BIN FILE TO DO THIS):
59a1KL4.png


Now grab any random iso file off the internet and search it for "CD001". Select the 01 before 4344303031 along with all the hex in the iso to the very end of it. Delete all of this, select 014344303031 to the very end of your Naomi bin file, copy, paste into the iso and you now have a mountable image of Naomi files. I'd assume you can create an iso and do the reverse to inject files back into a game but I haven't tested this yet. I do plan to play with this a bit and see if I can fix the bugs in the english patch of this game but no promises there.
Yeah that's how I ended up replacing the Japanese text with the English from the Dreamcast version. I used 'mkisofs' to create a ISO which I injected back into the netboot ROM. Unfortunately the 'word' BIN files do not match up exactly between Naomi and Dreamcast, so there is some stuff still untranslated and other stuff (not sure what) that causes occasional crashes - more often on real hardware than on emulators. One of the major gameplay issues IMO is the multiple choice sections, which you currently have to guess the answer for.

An example of the word files not matching up between releases, from my notes:

Code:
BIN Ranges Missing From NAOMI ROM (Only present on Dreamcast versions)
SE01L183.bin -> SE01L196.bin 
SE04L186.bin -> SE04L200.bin
SE05L143.bin -> SE05L166.bin 
SE06L132.bin -> SE06L145.bin
SE07L101.bin -> SE07L202.bin (There are no SE07****.bin files)
Originally when I was first looking at this I hadn't discovered the internal ISO file(s) within the NAOMI ROM and I was manually injecting each BIN file with a hex editor. May not be useful at this point since you can just replace the whole ISO that holds the BINs, but here is an incomplete list of offsets from my notes:


Code:
Offsets for BIN files in Naomi ROM: 
0A540000 - start of S000L010.bin?
0A542000 - start of S000L020.bin
0A547000 - start of S000L030.bin?
0A553800 - start of S000L040.bin
0A55D000 - start of S000L050.bin
0A569000 - start of S000L060.bin
0A575800 - start of S000L070.bin
0A57F000 - start of S000L080.bin
0A585000 - start of S000L090.bin
0A589000 - start of S000L100.bin
0A58F800 - start of S000L110.bin
0A596000 - start of S000L120.bin
0A599800 - start of S000L130.bin
0A59D000 - start of S000L140.bin
0A59E800 - start of S000L150.bin
0A5A0000 - start of S000L160.bin
0A5A1000 - start of S000L170.bin
0A5A2000 - start of S000L180.bin
0A5A2800 - start of S000L190.bin
0A5A3000 - start of S000L200.bin
0A5A3800 - start of SB01L101.bin
0A5A4000 - start of SB01L201.bin
0A5A4800 - start of SB01L202.bin
0A5A5000 - start of SB01L301.bin
0A5A5800 - start of SE00L101.bin
0A5A6000 - start of SE00L102.bin
0A5A6800 - start of SE00L103.bin
0A5A7000 - start of SE00L104.bin
0A5A7800 - start of SE00L105.bin
0A5A8000 - start of SE00L106.bin
0A5A8800 - start of SE00L107.bin
0A5A9000 - start of SE00L108.bin
0A5A9800 - start of SE00L109.bin
0A5AA000 - start of SE01L101.bin
0A5AA800 - start of SE01L102.bin
0A5AB000 - start of SE01L103.bin
0A5AB800 - start of SE01L104.bin
0A5AC000 - start of SE01L105.bin
0A5AC800 - start of SE01L106.bin
0A5AD000 - start of SE01L107.bin
0A5AD800 - start of SE01L108.bin
0A5AE000 - start of SE01L109.bin
0A5AE800 - start of SE01L110.bin
0A5AF000 - start of SE01L111.bin
0A5AF800 - start of SE01L112.bin
0A5B0000 - start of SE01L113.bin
0A5B0800 - start of SE01L114.bin
0A5B1000 - start of SE01L115.bin
0A5B1800 - start of SE01L116.bin
0A5B2000 - start of SE01L117.bin
0A5B2800 - start of SE01L118.bin
0A5B3000 - start of SE01L119.bin
0A5B3800 - start of SE01L120.bin
0A5B4000 - start of SE01L121.bin
0A5B4800 - start of SE01L122.bin
0A5B5000 - start of SE01L123.bin
0A5B5800 - start of SE01L124.bin
0A5B6000 - start of SE01L125.bin
0A5B6800 - start of SE01L126.bin
0A5B7000 - start of SE01L127.bin
0A5B7800 - start of SE01L128.bin
0A5B8000 - start of SE01L129.bin
0A5B8800 - start of SE01L130.bin
0A5B9000 - start of SE01L131.bin
0A5B9800 - start of SE01L132.bin
0A5BA000 - start of SE01L133.bin
0A5BA800 - start of SE01L134.bin
0A5BB000 - start of SE01L135.bin
0A5BB800 - start of SE01L136.bin
0A5BC000 - start of SE01L137.bin
0A5BC800 - start of SE01L138.bin
0A5BD000 - start of SE01L139.bin
0A5BD800 - start of SE01L140.bin
0A5BE000 - start of SE01L141.bin
0A5BE800 - start of SE01L142.bin
0A5BF000 - start of SE01L143.bin
0A5BF800 - start of SE01L144.bin
0A5C0000 - start of SE01L145.bin
0A5C0800 - start of SE01L146.bin
0A5C1000 - start of SE01L147.bin
0A5C1800 - start of SE01L148.bin
0A5C2000 - start of SE01L149.bin
0A5C2800 - start of SE01L150.bin
0A5C3000 - start of SE01L151.bin
0A5C3800 - start of SE01L152.bin
0A5C4000 - start of SE01L153.bin
0A5C4800 - start of SE01L154.bin
0A5C5000 - start of SE01L155.bin
0A5C5800 - start of SE01L156.bin
0A5C6000 - start of SE01L157.bin
0A5C6800 - start of SE01L158.bin
0A5C7000 - start of SE01L159.bin
0A5C7800 - start of SE01L160.bin
0A5C8000 - start of SE01L161.bin
0A5C8800 - start of SE01L162.bin
0A5C9000 - start of SE01L163.bin
0A5C9800 - start of SE01L164.bin
0A5CA000 - start of SE01L165.bin
0A5CA800 - start of SE01L166.bin
0A5CB000 - start of SE01L167.bin
0A5CB800 - start of SE01L168.bin
0A5CC000 - start of SE01L169.bin
0A5CC800 - start of SE01L170.bin
0A5CD000 - start of SE01L171.bin
0A5CD800 - start of SE01L172.bin
0A5CE000 - start of SE01L173.bin
0A5CE800 - start of SE01L174.bin
0A5CF000 - start of SE01L175.bin
0A5CF800 - start of SE01L176.bin
0A5D0000 - start of SE01L177.bin
0A5D0800 - start of SE01L178.bin
0A5D1000 - start of SE01L179.bin
0A5D1800 - start of SE01L180.bin
0A5D2000 - start of SE01L181.bin
0A5D2800 - start of SE01L182.bin
0A5D3000 - start of SE02L101.bin
0A5D3800 - start of SE03L101.bin
0A5D4000 - start of SE04L101.bin
0A5D4800 - start of SE04L102.bin
0A5D5000 - start of SE04L103.bin
0A5D5800 - start of SE04L104.bin
0A5D6000 - start of SE04L105.bin
0A5D6800 - start of SE04L106.bin
0A5D7000 - start of SE04L107.bin
0A5D7800 - start of SE04L108.bin
0A5D8000 - start of SE04L109.bin
0A5D8800 - start of SE04L110.bin
0A5D9000 - start of SE04L112.bin
0A5D9800 - start of SE04L113.bin
0A5DA000 - start of SE04L114.bin
0A5DA800 - start of SE04L115.bin
0A5DB000 - start of SE04L116.bin
0A5DB800 - start of SE04L117.bin
0A5DC000 - start of SE04L118.bin
0A5DC800 - start of SE04L119.bin
0A5DD000 - start of SE04L120.bin
0A5DD800 - start of SE04L121.bin
0A5DE000 - start of SE04L122.bin
0A5DE800 - start of SE04L123.bin
0A5DF000 - start of SE04L124.bin
0A5DF800 - start of SE04L125.bin
0A5E0000 - start of SE04L126.bin
0A5E0800 - start of SE04L128.bin
0A5E1000 - start of SE04L129.bin
0A5E1800 - start of SE04L130.bin
0A5E2000 - start of SE04L131.bin
0A5E2800 - start of SE04L132.bin
0A5E3000 - start of SE04L133.bin
0A5E3800 - start of SE04L134.bin
0A5E4000 - start of SE04L135.bin
0A5E4800 - start of SE04L136.bin
0A5E5000 - start of SE04L137.bin
0A5E5800 - start of SE04L138.bin
...
0A5ED800 - start of SE04L154.bin
...
0A5F0800 - start of SE04L160.bin
...
0A5F4000 - start of SE04L167.bin
...
0A5F6800 - start of SE04L172.bin
...
0A5FA000 - start of SE04L179.bin
...
0A5FC800 - start of SE04L185.bin
...
0A604000 - start of SE05L112.bin
...
0A60F000 - start of SE05L133.bin
...
0A612800 - start of SE05L140.bin
0A613000 - start of SE05L141.bin
...
0A614800 - start of SE06L103.bin
0A615000 - start of SE06L104.bin
0A615800 - start of SE06L105.bin
...
0A616800 - start of SE06L107.bin
...
0A618800 - start of SE06L111.bin
0A619800 - start of SE06L113.bin
0A61B000 - start of SE06L116.bin
0A61C000 - start of SE06L118.bin
0A61D000 - start of SE06L112.bin
0A61D800 - start of SE06L121.bin
0A61E000 - start of SE06L122.bin
0A61F000 - start of SE06L124.bin
0A621000 - start of SE06L128.bin

0A627000 - start of Z000L010.bin
0A627800 - start of Z000L020.bin 
0A628000 - start of Z000L030.bin
0A628800 - start of Z000L040.bin
0A629000 - start of Z000L050.bin
0A629800 - start of Z000L060.bin
0A62A000 - start of Z000L070.bin
0A62A800 - start of Z000L080.bin
0A62B000 - start of Z000L090.bin
0A62B800 - start of Z000L100.bin
0A62C000 - start of Z000L110.bin
0A62C800 - start of Z000L120.bin
0A62D000 - start of Z000L130.bin
0A62D800 - start of Z000L140.bin
0A62E000 - start of Z000L150.bin
0A62E800 - start of Z000L160.bin
0A62F000 - start of Z000L170.bin
0A62F800 - start of Z000L180.bin
0A630000 - start of Z000L190.bin
0A630800 - start of Z000L200.bin
0A631000 - start of ZB01L101.bin
0A631800 - start of ZB01L201.bin
0A632000 - start of ZB01L202.bin
0A632800 - start of ZB01L301.bin
...
0A633000 - start of ZE00L109.bin
I thought the KEY_EP files might be related to keyboard layout, but I tried swapping them around at one point and didn't have any luck.

Cool to see that someone else is having a look at this game!
 
Keep in mind that Typing of the Dead is a Cart game so it doesn't follow the normal ISO structure of GDROM games. the image that's out there for use in Netbooting is the result of converting the ROM dumps to a net-bootable file.
 
Sorry to revive such an old topic but this translation patch intrigued me and the information is directly relevant to the old effort here so I started poking at Naomi bin files this morning and well....

25pc0sg.png


I figured out how to access the filesystem on Naomi rom .bin files :D

It's actually not hard at all and you should theoretically be able to overwrite it but I haven't tried that yet. The skinny of it is you will search the bin of the rom you want to use for "CD001" as they use ISO9660 filesystem just like Dreamcast does. You'll end up finding something that looks like this (note this was me still poking everything so ignore that I'm in ic1 YOU MUST USE THE NETBOOT .BIN FILE TO DO THIS):
59a1KL4.png


Now grab any random iso file off the internet and search it for "CD001". Select the 01 before 4344303031 along with all the hex in the iso to the very end of it. Delete all of this, select 014344303031 to the very end of your Naomi bin file, copy, paste into the iso and you now have a mountable image of Naomi files. I'd assume you can create an iso and do the reverse to inject files back into a game but I haven't tested this yet. I do plan to play with this a bit and see if I can fix the bugs in the english patch of this game but no promises there.
Yeah that's how I ended up replacing the Japanese text with the English from the Dreamcast version. I used 'mkisofs' to create a ISO which I injected back into the netboot ROM. Unfortunately the 'word' BIN files do not match up exactly between Naomi and Dreamcast, so there is some stuff still untranslated and other stuff (not sure what) that causes occasional crashes - more often on real hardware than on emulators. One of the major gameplay issues IMO is the multiple choice sections, which you currently have to guess the answer for.
An example of the word files not matching up between releases, from my notes:

Code:
BIN Ranges Missing From NAOMI ROM (Only present on Dreamcast versions)
SE01L183.bin -> SE01L196.bin 
SE04L186.bin -> SE04L200.bin
SE05L143.bin -> SE05L166.bin 
SE06L132.bin -> SE06L145.bin
SE07L101.bin -> SE07L202.bin (There are no SE07****.bin files)
Originally when I was first looking at this I hadn't discovered the internal ISO file(s) within the NAOMI ROM and I was manually injecting each BIN file with a hex editor. May not be useful at this point since you can just replace the whole ISO that holds the BINs, but here is an incomplete list of offsets from my notes:


Code:
Offsets for BIN files in Naomi ROM: 
0A540000 - start of S000L010.bin?
0A542000 - start of S000L020.bin
0A547000 - start of S000L030.bin?
0A553800 - start of S000L040.bin
0A55D000 - start of S000L050.bin
0A569000 - start of S000L060.bin
0A575800 - start of S000L070.bin
0A57F000 - start of S000L080.bin
0A585000 - start of S000L090.bin
0A589000 - start of S000L100.bin
0A58F800 - start of S000L110.bin
0A596000 - start of S000L120.bin
0A599800 - start of S000L130.bin
0A59D000 - start of S000L140.bin
0A59E800 - start of S000L150.bin
0A5A0000 - start of S000L160.bin
0A5A1000 - start of S000L170.bin
0A5A2000 - start of S000L180.bin
0A5A2800 - start of S000L190.bin
0A5A3000 - start of S000L200.bin
0A5A3800 - start of SB01L101.bin
0A5A4000 - start of SB01L201.bin
0A5A4800 - start of SB01L202.bin
0A5A5000 - start of SB01L301.bin
0A5A5800 - start of SE00L101.bin
0A5A6000 - start of SE00L102.bin
0A5A6800 - start of SE00L103.bin
0A5A7000 - start of SE00L104.bin
0A5A7800 - start of SE00L105.bin
0A5A8000 - start of SE00L106.bin
0A5A8800 - start of SE00L107.bin
0A5A9000 - start of SE00L108.bin
0A5A9800 - start of SE00L109.bin
0A5AA000 - start of SE01L101.bin
0A5AA800 - start of SE01L102.bin
0A5AB000 - start of SE01L103.bin
0A5AB800 - start of SE01L104.bin
0A5AC000 - start of SE01L105.bin
0A5AC800 - start of SE01L106.bin
0A5AD000 - start of SE01L107.bin
0A5AD800 - start of SE01L108.bin
0A5AE000 - start of SE01L109.bin
0A5AE800 - start of SE01L110.bin
0A5AF000 - start of SE01L111.bin
0A5AF800 - start of SE01L112.bin
0A5B0000 - start of SE01L113.bin
0A5B0800 - start of SE01L114.bin
0A5B1000 - start of SE01L115.bin
0A5B1800 - start of SE01L116.bin
0A5B2000 - start of SE01L117.bin
0A5B2800 - start of SE01L118.bin
0A5B3000 - start of SE01L119.bin
0A5B3800 - start of SE01L120.bin
0A5B4000 - start of SE01L121.bin
0A5B4800 - start of SE01L122.bin
0A5B5000 - start of SE01L123.bin
0A5B5800 - start of SE01L124.bin
0A5B6000 - start of SE01L125.bin
0A5B6800 - start of SE01L126.bin
0A5B7000 - start of SE01L127.bin
0A5B7800 - start of SE01L128.bin
0A5B8000 - start of SE01L129.bin
0A5B8800 - start of SE01L130.bin
0A5B9000 - start of SE01L131.bin
0A5B9800 - start of SE01L132.bin
0A5BA000 - start of SE01L133.bin
0A5BA800 - start of SE01L134.bin
0A5BB000 - start of SE01L135.bin
0A5BB800 - start of SE01L136.bin
0A5BC000 - start of SE01L137.bin
0A5BC800 - start of SE01L138.bin
0A5BD000 - start of SE01L139.bin
0A5BD800 - start of SE01L140.bin
0A5BE000 - start of SE01L141.bin
0A5BE800 - start of SE01L142.bin
0A5BF000 - start of SE01L143.bin
0A5BF800 - start of SE01L144.bin
0A5C0000 - start of SE01L145.bin
0A5C0800 - start of SE01L146.bin
0A5C1000 - start of SE01L147.bin
0A5C1800 - start of SE01L148.bin
0A5C2000 - start of SE01L149.bin
0A5C2800 - start of SE01L150.bin
0A5C3000 - start of SE01L151.bin
0A5C3800 - start of SE01L152.bin
0A5C4000 - start of SE01L153.bin
0A5C4800 - start of SE01L154.bin
0A5C5000 - start of SE01L155.bin
0A5C5800 - start of SE01L156.bin
0A5C6000 - start of SE01L157.bin
0A5C6800 - start of SE01L158.bin
0A5C7000 - start of SE01L159.bin
0A5C7800 - start of SE01L160.bin
0A5C8000 - start of SE01L161.bin
0A5C8800 - start of SE01L162.bin
0A5C9000 - start of SE01L163.bin
0A5C9800 - start of SE01L164.bin
0A5CA000 - start of SE01L165.bin
0A5CA800 - start of SE01L166.bin
0A5CB000 - start of SE01L167.bin
0A5CB800 - start of SE01L168.bin
0A5CC000 - start of SE01L169.bin
0A5CC800 - start of SE01L170.bin
0A5CD000 - start of SE01L171.bin
0A5CD800 - start of SE01L172.bin
0A5CE000 - start of SE01L173.bin
0A5CE800 - start of SE01L174.bin
0A5CF000 - start of SE01L175.bin
0A5CF800 - start of SE01L176.bin
0A5D0000 - start of SE01L177.bin
0A5D0800 - start of SE01L178.bin
0A5D1000 - start of SE01L179.bin
0A5D1800 - start of SE01L180.bin
0A5D2000 - start of SE01L181.bin
0A5D2800 - start of SE01L182.bin
0A5D3000 - start of SE02L101.bin
0A5D3800 - start of SE03L101.bin
0A5D4000 - start of SE04L101.bin
0A5D4800 - start of SE04L102.bin
0A5D5000 - start of SE04L103.bin
0A5D5800 - start of SE04L104.bin
0A5D6000 - start of SE04L105.bin
0A5D6800 - start of SE04L106.bin
0A5D7000 - start of SE04L107.bin
0A5D7800 - start of SE04L108.bin
0A5D8000 - start of SE04L109.bin
0A5D8800 - start of SE04L110.bin
0A5D9000 - start of SE04L112.bin
0A5D9800 - start of SE04L113.bin
0A5DA000 - start of SE04L114.bin
0A5DA800 - start of SE04L115.bin
0A5DB000 - start of SE04L116.bin
0A5DB800 - start of SE04L117.bin
0A5DC000 - start of SE04L118.bin
0A5DC800 - start of SE04L119.bin
0A5DD000 - start of SE04L120.bin
0A5DD800 - start of SE04L121.bin
0A5DE000 - start of SE04L122.bin
0A5DE800 - start of SE04L123.bin
0A5DF000 - start of SE04L124.bin
0A5DF800 - start of SE04L125.bin
0A5E0000 - start of SE04L126.bin
0A5E0800 - start of SE04L128.bin
0A5E1000 - start of SE04L129.bin
0A5E1800 - start of SE04L130.bin
0A5E2000 - start of SE04L131.bin
0A5E2800 - start of SE04L132.bin
0A5E3000 - start of SE04L133.bin
0A5E3800 - start of SE04L134.bin
0A5E4000 - start of SE04L135.bin
0A5E4800 - start of SE04L136.bin
0A5E5000 - start of SE04L137.bin
0A5E5800 - start of SE04L138.bin
...
0A5ED800 - start of SE04L154.bin
...
0A5F0800 - start of SE04L160.bin
...
0A5F4000 - start of SE04L167.bin
...
0A5F6800 - start of SE04L172.bin
...
0A5FA000 - start of SE04L179.bin
...
0A5FC800 - start of SE04L185.bin
...
0A604000 - start of SE05L112.bin
...
0A60F000 - start of SE05L133.bin
...
0A612800 - start of SE05L140.bin
0A613000 - start of SE05L141.bin
...
0A614800 - start of SE06L103.bin
0A615000 - start of SE06L104.bin
0A615800 - start of SE06L105.bin
...
0A616800 - start of SE06L107.bin
...
0A618800 - start of SE06L111.bin
0A619800 - start of SE06L113.bin
0A61B000 - start of SE06L116.bin
0A61C000 - start of SE06L118.bin
0A61D000 - start of SE06L112.bin
0A61D800 - start of SE06L121.bin
0A61E000 - start of SE06L122.bin
0A61F000 - start of SE06L124.bin
0A621000 - start of SE06L128.bin

0A627000 - start of Z000L010.bin
0A627800 - start of Z000L020.bin 
0A628000 - start of Z000L030.bin
0A628800 - start of Z000L040.bin
0A629000 - start of Z000L050.bin
0A629800 - start of Z000L060.bin
0A62A000 - start of Z000L070.bin
0A62A800 - start of Z000L080.bin
0A62B000 - start of Z000L090.bin
0A62B800 - start of Z000L100.bin
0A62C000 - start of Z000L110.bin
0A62C800 - start of Z000L120.bin
0A62D000 - start of Z000L130.bin
0A62D800 - start of Z000L140.bin
0A62E000 - start of Z000L150.bin
0A62E800 - start of Z000L160.bin
0A62F000 - start of Z000L170.bin
0A62F800 - start of Z000L180.bin
0A630000 - start of Z000L190.bin
0A630800 - start of Z000L200.bin
0A631000 - start of ZB01L101.bin
0A631800 - start of ZB01L201.bin
0A632000 - start of ZB01L202.bin
0A632800 - start of ZB01L301.bin
...
0A633000 - start of ZE00L109.bin
I thought the KEY_EP files might be related to keyboard layout, but I tried swapping them around at one point and didn't have any luck.

Cool to see that someone else is having a look at this game!
Are there tools available that work with ic22? I can see that a TOC of files is defined here for the game and then ic20s has an ISO9660 filesystem for at least the files you mention here. If you can modify ic22 theoretically you should be able to inject the missing files.
 
Last edited:
Sorry to revive such an old topic but this translation patch intrigued me and the information is directly relevant to the old effort here so I started poking at Naomi bin files this morning and well....

25pc0sg.png


I figured out how to access the filesystem on Naomi rom .bin files :D

It's actually not hard at all and you should theoretically be able to overwrite it but I haven't tried that yet. The skinny of it is you will search the bin of the rom you want to use for "CD001" as they use ISO9660 filesystem just like Dreamcast does. You'll end up finding something that looks like this (note this was me still poking everything so ignore that I'm in ic1 YOU MUST USE THE NETBOOT .BIN FILE TO DO THIS):
59a1KL4.png


Now grab any random iso file off the internet and search it for "CD001". Select the 01 before 4344303031 along with all the hex in the iso to the very end of it. Delete all of this, select 014344303031 to the very end of your Naomi bin file, copy, paste into the iso and you now have a mountable image of Naomi files. I'd assume you can create an iso and do the reverse to inject files back into a game but I haven't tested this yet. I do plan to play with this a bit and see if I can fix the bugs in the english patch of this game but no promises there.
Yeah that's how I ended up replacing the Japanese text with the English from the Dreamcast version. I used 'mkisofs' to create a ISO which I injected back into the netboot ROM. Unfortunately the 'word' BIN files do not match up exactly between Naomi and Dreamcast, so there is some stuff still untranslated and other stuff (not sure what) that causes occasional crashes - more often on real hardware than on emulators. One of the major gameplay issues IMO is the multiple choice sections, which you currently have to guess the answer for.An example of the word files not matching up between releases, from my notes:

Code:
BIN Ranges Missing From NAOMI ROM (Only present on Dreamcast versions)
SE01L183.bin -> SE01L196.bin 
SE04L186.bin -> SE04L200.bin
SE05L143.bin -> SE05L166.bin 
SE06L132.bin -> SE06L145.bin
SE07L101.bin -> SE07L202.bin (There are no SE07****.bin files)
Originally when I was first looking at this I hadn't discovered the internal ISO file(s) within the NAOMI ROM and I was manually injecting each BIN file with a hex editor. May not be useful at this point since you can just replace the whole ISO that holds the BINs, but here is an incomplete list of offsets from my notes:


Code:
Offsets for BIN files in Naomi ROM: 
0A540000 - start of S000L010.bin?
0A542000 - start of S000L020.bin
0A547000 - start of S000L030.bin?
0A553800 - start of S000L040.bin
0A55D000 - start of S000L050.bin
0A569000 - start of S000L060.bin
0A575800 - start of S000L070.bin
0A57F000 - start of S000L080.bin
0A585000 - start of S000L090.bin
0A589000 - start of S000L100.bin
0A58F800 - start of S000L110.bin
0A596000 - start of S000L120.bin
0A599800 - start of S000L130.bin
0A59D000 - start of S000L140.bin
0A59E800 - start of S000L150.bin
0A5A0000 - start of S000L160.bin
0A5A1000 - start of S000L170.bin
0A5A2000 - start of S000L180.bin
0A5A2800 - start of S000L190.bin
0A5A3000 - start of S000L200.bin
0A5A3800 - start of SB01L101.bin
0A5A4000 - start of SB01L201.bin
0A5A4800 - start of SB01L202.bin
0A5A5000 - start of SB01L301.bin
0A5A5800 - start of SE00L101.bin
0A5A6000 - start of SE00L102.bin
0A5A6800 - start of SE00L103.bin
0A5A7000 - start of SE00L104.bin
0A5A7800 - start of SE00L105.bin
0A5A8000 - start of SE00L106.bin
0A5A8800 - start of SE00L107.bin
0A5A9000 - start of SE00L108.bin
0A5A9800 - start of SE00L109.bin
0A5AA000 - start of SE01L101.bin
0A5AA800 - start of SE01L102.bin
0A5AB000 - start of SE01L103.bin
0A5AB800 - start of SE01L104.bin
0A5AC000 - start of SE01L105.bin
0A5AC800 - start of SE01L106.bin
0A5AD000 - start of SE01L107.bin
0A5AD800 - start of SE01L108.bin
0A5AE000 - start of SE01L109.bin
0A5AE800 - start of SE01L110.bin
0A5AF000 - start of SE01L111.bin
0A5AF800 - start of SE01L112.bin
0A5B0000 - start of SE01L113.bin
0A5B0800 - start of SE01L114.bin
0A5B1000 - start of SE01L115.bin
0A5B1800 - start of SE01L116.bin
0A5B2000 - start of SE01L117.bin
0A5B2800 - start of SE01L118.bin
0A5B3000 - start of SE01L119.bin
0A5B3800 - start of SE01L120.bin
0A5B4000 - start of SE01L121.bin
0A5B4800 - start of SE01L122.bin
0A5B5000 - start of SE01L123.bin
0A5B5800 - start of SE01L124.bin
0A5B6000 - start of SE01L125.bin
0A5B6800 - start of SE01L126.bin
0A5B7000 - start of SE01L127.bin
0A5B7800 - start of SE01L128.bin
0A5B8000 - start of SE01L129.bin
0A5B8800 - start of SE01L130.bin
0A5B9000 - start of SE01L131.bin
0A5B9800 - start of SE01L132.bin
0A5BA000 - start of SE01L133.bin
0A5BA800 - start of SE01L134.bin
0A5BB000 - start of SE01L135.bin
0A5BB800 - start of SE01L136.bin
0A5BC000 - start of SE01L137.bin
0A5BC800 - start of SE01L138.bin
0A5BD000 - start of SE01L139.bin
0A5BD800 - start of SE01L140.bin
0A5BE000 - start of SE01L141.bin
0A5BE800 - start of SE01L142.bin
0A5BF000 - start of SE01L143.bin
0A5BF800 - start of SE01L144.bin
0A5C0000 - start of SE01L145.bin
0A5C0800 - start of SE01L146.bin
0A5C1000 - start of SE01L147.bin
0A5C1800 - start of SE01L148.bin
0A5C2000 - start of SE01L149.bin
0A5C2800 - start of SE01L150.bin
0A5C3000 - start of SE01L151.bin
0A5C3800 - start of SE01L152.bin
0A5C4000 - start of SE01L153.bin
0A5C4800 - start of SE01L154.bin
0A5C5000 - start of SE01L155.bin
0A5C5800 - start of SE01L156.bin
0A5C6000 - start of SE01L157.bin
0A5C6800 - start of SE01L158.bin
0A5C7000 - start of SE01L159.bin
0A5C7800 - start of SE01L160.bin
0A5C8000 - start of SE01L161.bin
0A5C8800 - start of SE01L162.bin
0A5C9000 - start of SE01L163.bin
0A5C9800 - start of SE01L164.bin
0A5CA000 - start of SE01L165.bin
0A5CA800 - start of SE01L166.bin
0A5CB000 - start of SE01L167.bin
0A5CB800 - start of SE01L168.bin
0A5CC000 - start of SE01L169.bin
0A5CC800 - start of SE01L170.bin
0A5CD000 - start of SE01L171.bin
0A5CD800 - start of SE01L172.bin
0A5CE000 - start of SE01L173.bin
0A5CE800 - start of SE01L174.bin
0A5CF000 - start of SE01L175.bin
0A5CF800 - start of SE01L176.bin
0A5D0000 - start of SE01L177.bin
0A5D0800 - start of SE01L178.bin
0A5D1000 - start of SE01L179.bin
0A5D1800 - start of SE01L180.bin
0A5D2000 - start of SE01L181.bin
0A5D2800 - start of SE01L182.bin
0A5D3000 - start of SE02L101.bin
0A5D3800 - start of SE03L101.bin
0A5D4000 - start of SE04L101.bin
0A5D4800 - start of SE04L102.bin
0A5D5000 - start of SE04L103.bin
0A5D5800 - start of SE04L104.bin
0A5D6000 - start of SE04L105.bin
0A5D6800 - start of SE04L106.bin
0A5D7000 - start of SE04L107.bin
0A5D7800 - start of SE04L108.bin
0A5D8000 - start of SE04L109.bin
0A5D8800 - start of SE04L110.bin
0A5D9000 - start of SE04L112.bin
0A5D9800 - start of SE04L113.bin
0A5DA000 - start of SE04L114.bin
0A5DA800 - start of SE04L115.bin
0A5DB000 - start of SE04L116.bin
0A5DB800 - start of SE04L117.bin
0A5DC000 - start of SE04L118.bin
0A5DC800 - start of SE04L119.bin
0A5DD000 - start of SE04L120.bin
0A5DD800 - start of SE04L121.bin
0A5DE000 - start of SE04L122.bin
0A5DE800 - start of SE04L123.bin
0A5DF000 - start of SE04L124.bin
0A5DF800 - start of SE04L125.bin
0A5E0000 - start of SE04L126.bin
0A5E0800 - start of SE04L128.bin
0A5E1000 - start of SE04L129.bin
0A5E1800 - start of SE04L130.bin
0A5E2000 - start of SE04L131.bin
0A5E2800 - start of SE04L132.bin
0A5E3000 - start of SE04L133.bin
0A5E3800 - start of SE04L134.bin
0A5E4000 - start of SE04L135.bin
0A5E4800 - start of SE04L136.bin
0A5E5000 - start of SE04L137.bin
0A5E5800 - start of SE04L138.bin
...
0A5ED800 - start of SE04L154.bin
...
0A5F0800 - start of SE04L160.bin
...
0A5F4000 - start of SE04L167.bin
...
0A5F6800 - start of SE04L172.bin
...
0A5FA000 - start of SE04L179.bin
...
0A5FC800 - start of SE04L185.bin
...
0A604000 - start of SE05L112.bin
...
0A60F000 - start of SE05L133.bin
...
0A612800 - start of SE05L140.bin
0A613000 - start of SE05L141.bin
...
0A614800 - start of SE06L103.bin
0A615000 - start of SE06L104.bin
0A615800 - start of SE06L105.bin
...
0A616800 - start of SE06L107.bin
...
0A618800 - start of SE06L111.bin
0A619800 - start of SE06L113.bin
0A61B000 - start of SE06L116.bin
0A61C000 - start of SE06L118.bin
0A61D000 - start of SE06L112.bin
0A61D800 - start of SE06L121.bin
0A61E000 - start of SE06L122.bin
0A61F000 - start of SE06L124.bin
0A621000 - start of SE06L128.bin

0A627000 - start of Z000L010.bin
0A627800 - start of Z000L020.bin 
0A628000 - start of Z000L030.bin
0A628800 - start of Z000L040.bin
0A629000 - start of Z000L050.bin
0A629800 - start of Z000L060.bin
0A62A000 - start of Z000L070.bin
0A62A800 - start of Z000L080.bin
0A62B000 - start of Z000L090.bin
0A62B800 - start of Z000L100.bin
0A62C000 - start of Z000L110.bin
0A62C800 - start of Z000L120.bin
0A62D000 - start of Z000L130.bin
0A62D800 - start of Z000L140.bin
0A62E000 - start of Z000L150.bin
0A62E800 - start of Z000L160.bin
0A62F000 - start of Z000L170.bin
0A62F800 - start of Z000L180.bin
0A630000 - start of Z000L190.bin
0A630800 - start of Z000L200.bin
0A631000 - start of ZB01L101.bin
0A631800 - start of ZB01L201.bin
0A632000 - start of ZB01L202.bin
0A632800 - start of ZB01L301.bin
...
0A633000 - start of ZE00L109.bin
I thought the KEY_EP files might be related to keyboard layout, but I tried swapping them around at one point and didn't have any luck.

Cool to see that someone else is having a look at this game!
Are there tools available that work with ic22? I can see that a TOC of files is defined here for the game and then ic22 has an ISO9660 filesystem for at least the files you mention here. If you can modify ic22 theoretically you should be able to inject the missing files.
I just worked directly with the netboot image, which has all the IC## files merged together to one large file.
 
Back
Top