Steins Gate Automated Patch

  1. PlayStation Vita

The v1.0.0 release:. Translated phone UI. Translated UI elements across all menus. Translated contents of all menus (Settings, Clear screen, Load, Save, etc). Translated system messages. Translated PSP HOME menu. OPEN3.PMF was replaced by a different cutscene op2.bk2 from PC version.

X and O buttons were switched to resemble traditional Western control scheme on PSP. Replaced ICON0 and PIC1. Added a logo with credits. Fixed visual glitches in Tips. Fixed some typos and inconsistencies in game scripts. Fixed text overflow in most cases. I might've missed some thoughMD5 hash for files:.

Original ISO: 5ed76b04eac58b0e459bed06108eed74. Patched ISO v1.0.0: 482be2ba9ae33f04f5c1d4c7bf693318If you don't have the same hashes before and/or after, then it most likely won't work for you. The v0.9 release:. Translated story scripts. Translated DICT (tips). Translated phonebook.

PlayStation Vita

Translated phone messages/emails, backgrounds and songs. Translated backgrounds. Translated cutscenes.This doesn't apply to OPEN3.PMF, since there is no available replacement from the PC version of the game.(pretend that each item on the list has '(where applicable)' after it)MD5 hash for files:. Original ISO: 5ed76b04eac58b0e459bed06108eed74.

Patch

Patched ISO: e69601aac23407df77fec0If you don't have the same hashes before and/or after, then it most likely won't work for you.

Steins;Gate PSP translation patch &&Steins;Gate Hiyoku Renri no DarlingTranslation website:If you would like to help (the script is very similar to other version) just let me know.-Patch for Steins;Gate can be found on 10th post (Prologue chapter)It is still being work on but it would be great if you can test run and report any bugs you found.Since there are no available translation of Hiyoku renri no darling (AFAIK), I might be doing a machine translate instead. Lets see if I can make this work.Update:- New info on Steins;Gate Hiyoku Renri no Darling- Old images are hidden, to view them use link.-Update:- Apostrophe character issue is now fixed- Pointers position has been corrected- Dialogue name has been translated (incomplete)-Well, this game uses AFS - somewhat standard archieve for CRIware and their scripts reside in SCENE00.AFS, having.BIN extension.File structure. Click to expand.Yea if only we could find and shift these pointers to another address, everything would have been perfect.Anyway, I will just add the padding for shorter sentence and trim those extra bytes out.

Translation of the game prologue is done by the way, you are welcome try.Those spaces are padding.An incomplete sentence.In case you are wondering how it would looked like in general;Patching instruction (only prologue)1. Download xdelta.2. Get the translation patch3. Put clean iso, translation patch and xdelta to the same folder.4. Run xdelta -d -s CLEANISONAME.iso patch.xdelta OUTPUTISONAME.ISO5.

Be prepared to witness incomplete sentences!ーーーーー. Click to expand.Thanks for your suggestions. In fact, I have already tried inserting x00 as a padding but the game just advance to next sentence whenever it read this null character. Probably because this character is also part of ending sequence (%?%? And followed by null), so instead I put x20.

The ideal is to write ending sequence right at the end of the text and padding after null, I guess.However, these are just a quick fix but the real problem still remains. I have also upload raw file of this script in case anyone may have a look. The text is readable using shift-JIS charset starting from the address 7429.Otherwise, It would be great if anyone can give me some idea of how can these pointers be found, I'm pretty new to psp especially its programming by the way. It's an action script combined with some text, pretty basic and it's not 'at all' related to PSP, it's general Romhacking knowledge.By action script, I mean that the game will read the file from beginning to end while doing what every bytecode represents.And when it needs to read some text.Your pointer starts at 0x10E0.

The command to throw some text is 0x0670 apparently (you'll have to look backward, I'm thinking in Little Endian here so in the hex editor it'll show as 0x7006)after that, you can find the next pointers near 0xFFFF after the first pointer (which is just 0x7006, search in your hex editor, it's a 32bits value in Little Endian as well.)I think 0xFFFF is to clear the textbox before launching another sentence. Then there's more bytecode and the game throw another sentence.

(the bytecode inbetween is probably 'Deleting character on screen' 'load another one' 'play xxx voices' stuff like that) Then you have to increment the original command.next set of pointers start with 0x0671 (again, 0x7106 in your hex editor)and again those 0xFFFF to clear the text before each pointer.and you start over, 0x0672 / 0x0673 etc etcTook me 30sec to understand that, and 5min to write this lolEdit: Just to say, I try to get dragged into 'too' many projects while I clearly have no time. So no, it was a pleasure to give you those informations but I can't do much more for now. Because you'll clearly need a special program here. Or you'll get really bored trying to do it by hand (and by hand I DO NOT mean Hex editing) I meant using Atlas (which is a good insertor program) to write down each pointer by sentence, and it'll be a great idea btw if you can't program yourself, and it'll avoid problem when you'll go through editing or such since it'll automatize everything for you.You can fnd that program at Romhacking.net btw. @StorMyu; Many thanks! I was too focused on finding the address 7429 in hex and not its backward. I will try continue working on this now that I know these pointers.

The text insertion is done by program, I made it so that it detect the sentence between null and%?%? Then find the text to replace accordingly. But that was only the text part I prepared in advance.

Now I just have to make it memorise the address and editing these pointers. I will also try with the tool you suggested. Again, many thanks for your time!@Exiron; Thanks for your information. Actually, I watched that video before I started to think of making the translation port (just thinking may be I could play with it).

I will try and test with prologue first and see if it works. Also I might need your help regarding to the translation text if this really works.EDIT: Alrighty!

It works!The script can handle longer sentence now without affecting one another.Running this patched game on actual device.Also, in case anyone want to try this (please do, as I don't really have time to check line by line, usually just holding start and skip them -), you will need to apply first patch before this one.1. Download UMDGen and start it.2.

Load previously patched iso and select import file, replacing file structure with LBA.3. Save your ISO. Notice that the iso size will be smaller.4.

Download translation patch then placing this, xdelta and previous iso to the same folder.5. Run xdelta -d -s PATCHEDISONAME.iso patch.xdelta OUTPUTISONAME.ISO6. And let me know if there are any problems with the game.EDIT: You might notice that apostrophe(') is shown as?, caused by full width latin character, will fix this.EDIT: The game will freeze sometime after you meet Christina, this is caused by wrong pointer address. @StorMyu; Many thanks! I was too focused on finding the address 7429 in hex and not its backward.

I will try continue working on this now that I know these pointers. The text insertion is done by program, I made it so that it detect the sentence between null and%?%? Then find the text to replace accordingly. But that was only the text part I prepared in advance.

Now I just have to make it memorise the address and editing these pointers. I will also try with the tool you suggested. Again, many thanks for your time. Click to expand.Steins;Gate: Some names has been translated and I have decided to use ASCII for those (ss of Mayuri on the first post shows how it would look like).Only some names can be replaced right the way; 'まゆり' and 'Mayuri' both have the same byte size while '倫太郎' and 'Rintarou' wasn't. The latter requires address remapping thus it takes time.Steins;Gate's sequel; Sill working on it. Since there are some encryption involved, it can't be done the same way as the original. I have managed to replace its text though so it isn't impossible.

@StorMyu: Everything is working fine, I meant it takes time to manually remap pointers pointing to these name as I have not automated it yet. And yes, it is not really a problem once these pattern and can be programmatically recognised.@Coto: I am glad to see anyone interested in this series!

Since there is an English version released for iOS already, this will also be a replacement for android users;P (I can't promise you anything though)@Exiron: It is not really a project but thanks, I will let you know when I need help!However, I tend to prioritize doing Hiyoku renri no darling for now as it has more complex file structure and interesting header encryption. Its prequel will likely to be put on hold until I have finished playing around with it.

Posted :