Translating Shin Megami Tensei: Devil Summoner: Soul Hackers

Hi! So I'm brand-new to this scene, but last summer I spent a couple months as a first attempt at reverse engineering the PSX version (more nostalgia for me, and I have a lot more MIPS experience). Nice work on the variable-width font - I'm stumped at how you did that, outside of rewriting the print functions entirely. I attacked it differently - I reworked Megaflan's code for the PSX files, then wrote Python scripts that realigned the text to the smaller column count - though this makes new dialogue pages half the time, and I still have text run-over when a choice is asked.

I think I stopped at the same spot you did - did you ever find where the game addresses into the mini-font and draws the battle HUD? In fact, could we compare notes on this?
We didnt rewrite the entire print function, just part of it. When it goes to print a character, we copy it to a specific tile, keeping track of the starting column to begin the draw at, then we send the tile to the draw function. If a tile boundary is crossed, then 2 tile draws occur.
 
Hi! So I'm brand-new to this scene, but last summer I spent a couple months as a first attempt at reverse engineering the PSX version (more nostalgia for me, and I have a lot more MIPS experience). Nice work on the variable-width font - I'm stumped at how you did that, outside of rewriting the print functions entirely. I attacked it differently - I reworked Megaflan's code for the PSX files, then wrote Python scripts that realigned the text to the smaller column count - though this makes new dialogue pages half the time, and I still have text run-over when a choice is asked.

I think I stopped at the same spot you did - did you ever find where the game addresses into the mini-font and draws the battle HUD? In fact, could we compare notes on this?
Mr.Conan is the one that came up with the VWF system. Currently I'm not using it as it requires deleting the Japanese font which makes it harder to pinpoint where there's still untranslated text. My main focus lately has just been reworking the name entry screen, making sure I have all the text in the right spots, as well as dealing with sorting out what text is new in the 3DS and PSX ports vs the Original Saturn version. Once I have confidence I've gotten all the text in the right spots I'll turn my attention back to the VWF system.

So far I think there's at least 3-4 different text routines that will need to be adjusted. There's the main event one, the one for Paradigm X, the one for battles, and the one for menus.

For the fonts for the battle HUD, as far as I can tell on Saturn that's all stored in the A_FONT16.BIN file as 1bpp 16x16 characters. The 8x16 fonts are stored in 16x16 tiles with 2 styles per character. The smaller 8x8 stuff appears to be stored in a similar fashion:

SoulHackersFont.PNG


Keep in mind this may not be how the PS1 font is done.
 
Mr.Conan is the one that came up with the VWF system. Currently I'm not using it as it requires deleting the Japanese font which makes it harder to pinpoint where there's still untranslated text. My main focus lately has just been reworking the name entry screen, making sure I have all the text in the right spots, as well as dealing with sorting out what text is new in the 3DS and PSX ports vs the Original Saturn version. Once I have confidence I've gotten all the text in the right spots I'll turn my attention back to the VWF system.

So far I think there's at least 3-4 different text routines that will need to be adjusted. There's the main event one, the one for Paradigm X, the one for battles, and the one for menus.

For the fonts for the battle HUD, as far as I can tell on Saturn that's all stored in the A_FONT16.BIN file as 1bpp 16x16 characters. The 8x16 fonts are stored in 16x16 tiles with 2 styles per character. The smaller 8x8 stuff appears to be stored in a similar fashion:



Keep in mind this may not be how the PS1 font is done.
Looks similar to the PS1 (this rip is missing the first row and all the kanji beneath:
a_font16_psx_cut.png

I can confirm the menus are cool with ASCII, though there's text everywhere. Each executable file's .data section has yet more text.

As an update, I finally picked this back up. After a lot of reverse engineering, I fixed the rendering of ASCII text in the party names in the battle HUD. Of course Japanese text is now broken, but hey. Still limited to 8 characters, but I'm not sure how hard I want to try to fix that yet. I'll have to see how much space gets allocated for the "to draw" buffer for each name, and compress the letters by a couple pixels or more. Tbh, "Leanan S" isn't the worst abbreviation. Urabe's name is still in kana in the .data section of DVL_BAT1.BIN, hence the brokenness.
Screenshot from 2024-03-27 01-28-43.png



Here's a dump of what I have done on the PSX (attached):

In-dungeon NPC dialogue (none of the in-dungeon game text like "item found!" yet)
Item names, demon names, descriptions
Location names (including the overhead reminders in-dungeon)
Overworld map text and dialogue.
SOME demon negotiation dialogue. I thought it was all contained in one file, but I think more (hopefully the rest) is in DVL_BAT1.BIN.

I think I have just about all of the dedicated text files translated now, fitted using my janky Python script for now.
Not looking forward to hacking every string in the executables, even with Ghidra's help.
But I think aside from name input, the actual code hacking is done!
 

Attachments

  • Screenshot from 2024-03-27 01-09-43.png
    Screenshot from 2024-03-27 01-09-43.png
    358.5 KB · Views: 0
  • Screenshot from 2024-03-27 01-08-23.png
    Screenshot from 2024-03-27 01-08-23.png
    398.7 KB · Views: 0
  • Screenshot from 2024-03-26 22-41-32.png
    Screenshot from 2024-03-26 22-41-32.png
    356.4 KB · Views: 0
  • Screenshot from 2024-03-26 22-40-30.png
    Screenshot from 2024-03-26 22-40-30.png
    149.8 KB · Views: 0
  • Screenshot from 2024-03-26 22-39-27.png
    Screenshot from 2024-03-26 22-39-27.png
    292.4 KB · Views: 0
  • Screenshot from 2024-03-26 22-22-38.png
    Screenshot from 2024-03-26 22-22-38.png
    434.6 KB · Views: 0
  • Screenshot from 2024-03-26 22-22-35.png
    Screenshot from 2024-03-26 22-22-35.png
    466.3 KB · Views: 0
  • Screenshot from 2024-03-26 22-22-23.png
    Screenshot from 2024-03-26 22-22-23.png
    424.5 KB · Views: 0
  • Screenshot from 2024-03-26 22-22-17.png
    Screenshot from 2024-03-26 22-22-17.png
    424.5 KB · Views: 0
  • Screenshot from 2024-03-27 01-09-47.png
    Screenshot from 2024-03-27 01-09-47.png
    321.9 KB · Views: 0
Mr.Conan is the one that came up with the VWF system. Currently I'm not using it as it requires deleting the Japanese font which makes it harder to pinpoint where there's still untranslated text. My main focus lately has just been reworking the name entry screen, making sure I have all the text in the right spots, as well as dealing with sorting out what text is new in the 3DS and PSX ports vs the Original Saturn version. Once I have confidence I've gotten all the text in the right spots I'll turn my attention back to the VWF system.

So far I think there's at least 3-4 different text routines that will need to be adjusted. There's the main event one, the one for Paradigm X, the one for battles, and the one for menus.

For the fonts for the battle HUD, as far as I can tell on Saturn that's all stored in the A_FONT16.BIN file as 1bpp 16x16 characters. The 8x16 fonts are stored in 16x16 tiles with 2 styles per character. The smaller 8x8 stuff appears to be stored in a similar fashion:

View attachment 9515

Keep in mind this may not be how the PS1 font is done.
Hey...I also love this and what you doing. Ive been around online forums and such all my life but post like 2008 I really havnt been.

I have been following the fan translation scene for many years, however I lost all my originalbstuff looong ago and have been struggling but Ive gotten a few consoles anyway and everdrives as I have no money for crazy costing games I never post 2010 paid more than 100 somthing for...but thats neither here nor there.

I saw how an attemt at translating the version I personally prefer being the PS1 both for its extra content...one of my favorites being the Digest Mode as I play many games on and off and I really appreciate being able to put a game down and if you forget what took place it gives you a refresher so its easier to get back into it, but also as you can use the pocketstation with it as well.

Ive been hoping someone would try to translate it again(by scratch perferably) for PSX as I feel its a superior version.
Why did you choose the "lesser of the 2" Trekkies?
Id think the PSX would be more appealing eapecially as that lower quality DS version has much more in coommon with the PSX release than the Saturn original? Just curious?

I recentily got the origonal PSX release with Persona 2 Tsumi Demo complete, as well as the Atlus x Famitsu- Devil Summoner Soul Hackers no subete Revision guide-book as well.

The guide says its compatible with sega saturn version as well. I was lurking reading a bit of this as I havnt had any sega hardware/software in a decade and a half thanks to greedy flipping resellers.
Just today however, I won/bought a Fenrir inatalled/updated saturn with unique translucent green case etc and Video card.
I lucked out honestly as somehow my 1 second and someone elses 1 bid was at the same time but I won it.

So, I joinined here as I'll soon have something sega related I can use. And one of my fav consoles as well.

So, I will be following you/this, and if you need it, I will gladly help with my guide.

I do wish the translation wasnt coming from a localization but as im not doing as, I guess it is what it is.


Also, @mashburn4077 same to you, and I really hope you are able to get the PSX version Translated.

Thanks guys and thrilled to see someone picking this back up after I feel the original attempt should not have been canceled in 2015.

Alright best of luck all...take care guys ✌️☮️
 
Yooo this is badass! what's the progress of this so far? Also does anyone know the progress of PSP Devil Summoner english patch progress?
 
Keep up the good work! It seems you'll have lots of people eager to try it out when you release it! I myself decided to finally get into the Shin Megami series, its been on my radar forever but havent dug in till recently and have been devouring the series (and sub series).

And I agree: sega systems in general dont get the love they deserve! They have tons of amazing games, many of which the western audiences never got to see. And many of their later consoles never got to see their full potential used till long after sega left the console wars. Theres a reason they were the only console able to compete toe to toe with nintendo for nearly two decades before sony or xbox stepped in.
 
  1. It's the original version.
  2. I'm far more familiar with the Saturn's hardware and working with it's games than I am with the PS1.
  3. I like the Saturn.
Hi!
I've a question:
How you unpacked saturn rom? I used bchunk at mac/linux, mount image and when trying to do anything get error like Input output error. And next question is:
Is events.bin equal to Persona 2 events.bin format? I mean can i unpack it like p2is/ep file, and is data gzipped by default in soul haxkers after unpacking events.bin?
thanks!
 
Hi!
I've a question:
How you unpacked saturn rom? I used bchunk at mac/linux, mount image and when trying to do anything get error like Input output error. And next question is:
Is events.bin equal to Persona 2 events.bin format? I mean can i unpack it like p2is/ep file, and is data gzipped by default in soul haxkers after unpacking events.bin?
thanks!
I have no idea if it's similar to what Persona 2 uses. There doesn't appear to be any compression going on with gzip or anything like that. The files just have headers and look up tables in the binary that tell the game where each file and chunk are.
 
Last edited:
I have no idea if it's similar to what Personal 2 uses. There doesn't appear to be any compression going on with gzip or anything like that. The files just have headers and look up tables in the binary that tell the game where each file and chunk are.
Yeah, im already extracted multiple files. They're similar with format and control codes for dialogs, but not equal
And files compression methods are very simple if compare to P2(fonts, for example, stored in simple BMP's which are going at order as in file, not like in P2 in different sectors at multiple files)
 
Yeah, im already extracted multiple files. They're similar with format and control codes for dialogs, but not equal
And files compression methods are very simple if compare to P2(fonts, for example, stored in simple BMP's which are going at order as in file, not like in P2 in different sectors at multiple files)
What are you trying to do that you need to extract stuff?
 
When I hear about a translation of Devil Summoner: Soul Hackers, I always think of the cancelled PlayStation translation from Gemini.

Either way, im glad this game is being translated, both versions as well too.

Hopefully someday the Saturn version of the first Devil Summoner gets a translation as well. ^^
 
Back
Top