It would be much more friendly, for sure. Hmmm... How does a browser-based program sound to you? I could probably get it so it takes the ARD file itself, reads it, shows the files + edits, then can save a new ARD. It would require a recent browser, and not IE, but pros to it though are instant updates, like the current mapper, and I wouldn't have to rewrite the entirety of my tools. It'd also be much faster for me to write a "GUI" in browser-javascript then C#, too. :p What browser are you using?
Since most subtitles are also in the US version, you can just copy+paste them from there. Makes it easier, imo. If you wanted to, you could type it out though. You'd just skip to step 3 in that case, and type your text.
If you're editing an ARD file, you can have more or less hex values in it. My program handles that. I'm not the best at explaining, but once you have the extracted txt files for both the FM and US version: Set the String Mapper to "KH1 US". Copy the hex codes from the US ARD into the bottom box. The top box should auto-update, but if it doesn't press space in the hex box. (If it still doesn't update, you might need to update your browser, or if you're using Internet Explorer get any other browser :P) At this point, the top box should be readable. Change the mapper to "KH1 Final Mix English EVT". (Subtitles=EVt) Press space in the top String box. The hex box should change. Use these new hex codes in the FM hex .txt files. Again, make sure things line up. Sometimes the FM will have more lines then the US, which means some need to be translated instead of converted.
Yep. Btw, here's a list of world codes for the whole series: Spoiler Code: AL = Agrabah AW = Wonderland ([COLOR=#ff6600]A[/COLOR]lice in [COLOR=#ff6600]W[/COLOR]onderland) BB = Beast's Castle ([COLOR=#ff6600]B[/COLOR]eauty and [COLOR=#ff6600]B[/COLOR]east) CA = Port Royal ([COLOR=#ff6600]Ca[/COLOR]ptain Jack?) CD = [COLOR=#ff6600]C[/COLOR]astle of [COLOR=#ff6600]D[/COLOR]reams DC = [COLOR=#ff6600]D[/COLOR]isney [COLOR=#ff6600]C[/COLOR]astle/Disney Town DI = [COLOR=#ff6600]D[/COLOR]estiny [COLOR=#ff6600]I[/COLOR]slands DH = [COLOR=#ff6600]D[/COLOR]ive to the [COLOR=#ff6600]H[/COLOR]eart DP = Land of [COLOR=#ff6600]D[/COLOR]e[COLOR=#ff6600]p[/COLOR]arture EH = The World That Never Was ES = Realm of Darkness EW = [COLOR=#ff6600]E[/COLOR]nd of the [COLOR=#ff6600]W[/COLOR]orld EX = [COLOR=#ff6600]Ex[/COLOR]tra, multiple worlds GB = [COLOR=#ff6600]G[/COLOR]umi [COLOR=#ff6600]B[/COLOR]attle HB = [COLOR=#ff6600]H[/COLOR]ollow [COLOR=#ff6600]B[/COLOR]astion (KHII) HE = Olympus Coliseum ([COLOR=#ff6600]He[/COLOR]rcules) JB = [COLOR=#ff6600]J[/COLOR]ungle [COLOR=#ff6600]B[/COLOR]ook World (cut) KG = [COLOR=#ff6600]K[/COLOR]eyblade [COLOR=#ff6600]G[/COLOR]raveyard LK = Pride Lands ([COLOR=#ff6600]L[/COLOR]ion [COLOR=#ff6600]K[/COLOR]ing) LM = Atlantica ([COLOR=#ff6600]L[/COLOR]ittle [COLOR=#ff6600]M[/COLOR]ermaid) LS = Deep Space ([COLOR=#ff6600]L[/COLOR]ilo & [COLOR=#ff6600]S[/COLOR]titch) MU = The Land of Dragons ([COLOR=#ff6600]Mu[/COLOR]lan) NM = Halloween Town ([COLOR=#ff6600]N[/COLOR]ight[COLOR=#ff6600]m[/COLOR]are Before X-mas) PC = Hollow Bastion (KH) ([COLOR=#ff6600]P[/COLOR]rincess [COLOR=#ff6600]C[/COLOR]astle?) PI = Monstro ([COLOR=#ff6600]Pi[/COLOR]nocchio) PO = 100 Acre Wood ([COLOR=#ff6600]Po[/COLOR]oh) PP = Neverland ([COLOR=#ff6600]P[/COLOR]eter [COLOR=#ff6600]P[/COLOR]an) RG = [COLOR=#ff6600]R[/COLOR]adiant [COLOR=#ff6600]G[/COLOR]arden SB = Enchanted Dominion ([COLOR=#ff6600]S[/COLOR]leeping [COLOR=#ff6600]B[/COLOR]eauty) SU = [COLOR=#ff6600]Su[/COLOR]mmons SW = Dwarf Woodlands ([COLOR=#ff6600]S[/COLOR]now [COLOR=#ff6600]W[/COLOR]hite) TR = Space Paranoids ([COLOR=#ff6600]Tr[/COLOR]on) TT = [COLOR=#ff6600]T[/COLOR]wilight [COLOR=#ff6600]T[/COLOR]own TW = [COLOR=#ff6600]T[/COLOR]raverse To[COLOR=#ff6600]w[/COLOR]n TZ = Deep Jungle ([COLOR=#ff6600]T[/COLOR]ar[COLOR=#ff6600]z[/COLOR]an) VS = Mirage Arena ([COLOR=#ff6600]v[/COLOR]er[COLOR=#ff6600]s[/COLOR]us) WI = Timeless River XM = Christmas Town ([COLOR=#ff6600]X[/COLOR]-[COLOR=#ff6600]M[/COLOR]as) YT = Mysterious Tower ([COLOR=#ff6600]Y[/COLOR]en Sid's [COLOR=#ff6600]T[/COLOR]ower?) ZZ = Castle Oblivion
AL = Agrabah AW = Wonderland ([COLOR=#ff6600]A[/COLOR]lice in [COLOR=#ff6600]W[/COLOR]onderland) BB = Beast's Castle ([COLOR=#ff6600]B[/COLOR]eauty and [COLOR=#ff6600]B[/COLOR]east) CA = Port Royal ([COLOR=#ff6600]Ca[/COLOR]ptain Jack?) CD = [COLOR=#ff6600]C[/COLOR]astle of [COLOR=#ff6600]D[/COLOR]reams DC = [COLOR=#ff6600]D[/COLOR]isney [COLOR=#ff6600]C[/COLOR]astle/Disney Town DI = [COLOR=#ff6600]D[/COLOR]estiny [COLOR=#ff6600]I[/COLOR]slands DH = [COLOR=#ff6600]D[/COLOR]ive to the [COLOR=#ff6600]H[/COLOR]eart DP = Land of [COLOR=#ff6600]D[/COLOR]e[COLOR=#ff6600]p[/COLOR]arture EH = The World That Never Was ES = Realm of Darkness EW = [COLOR=#ff6600]E[/COLOR]nd of the [COLOR=#ff6600]W[/COLOR]orld EX = [COLOR=#ff6600]Ex[/COLOR]tra, multiple worlds GB = [COLOR=#ff6600]G[/COLOR]umi [COLOR=#ff6600]B[/COLOR]attle HB = [COLOR=#ff6600]H[/COLOR]ollow [COLOR=#ff6600]B[/COLOR]astion (KHII) HE = Olympus Coliseum ([COLOR=#ff6600]He[/COLOR]rcules) JB = [COLOR=#ff6600]J[/COLOR]ungle [COLOR=#ff6600]B[/COLOR]ook World (cut) KG = [COLOR=#ff6600]K[/COLOR]eyblade [COLOR=#ff6600]G[/COLOR]raveyard LK = Pride Lands ([COLOR=#ff6600]L[/COLOR]ion [COLOR=#ff6600]K[/COLOR]ing) LM = Atlantica ([COLOR=#ff6600]L[/COLOR]ittle [COLOR=#ff6600]M[/COLOR]ermaid) LS = Deep Space ([COLOR=#ff6600]L[/COLOR]ilo & [COLOR=#ff6600]S[/COLOR]titch) MU = The Land of Dragons ([COLOR=#ff6600]Mu[/COLOR]lan) NM = Halloween Town ([COLOR=#ff6600]N[/COLOR]ight[COLOR=#ff6600]m[/COLOR]are Before X-mas) PC = Hollow Bastion (KH) ([COLOR=#ff6600]P[/COLOR]rincess [COLOR=#ff6600]C[/COLOR]astle?) PI = Monstro ([COLOR=#ff6600]Pi[/COLOR]nocchio) PO = 100 Acre Wood ([COLOR=#ff6600]Po[/COLOR]oh) PP = Neverland ([COLOR=#ff6600]P[/COLOR]eter [COLOR=#ff6600]P[/COLOR]an) RG = [COLOR=#ff6600]R[/COLOR]adiant [COLOR=#ff6600]G[/COLOR]arden SB = Enchanted Dominion ([COLOR=#ff6600]S[/COLOR]leeping [COLOR=#ff6600]B[/COLOR]eauty) SU = [COLOR=#ff6600]Su[/COLOR]mmons SW = Dwarf Woodlands ([COLOR=#ff6600]S[/COLOR]now [COLOR=#ff6600]W[/COLOR]hite) TR = Space Paranoids ([COLOR=#ff6600]Tr[/COLOR]on) TT = [COLOR=#ff6600]T[/COLOR]wilight [COLOR=#ff6600]T[/COLOR]own TW = [COLOR=#ff6600]T[/COLOR]raverse To[COLOR=#ff6600]w[/COLOR]n TZ = Deep Jungle ([COLOR=#ff6600]T[/COLOR]ar[COLOR=#ff6600]z[/COLOR]an) VS = Mirage Arena ([COLOR=#ff6600]v[/COLOR]er[COLOR=#ff6600]s[/COLOR]us) WI = Timeless River XM = Christmas Town ([COLOR=#ff6600]X[/COLOR]-[COLOR=#ff6600]M[/COLOR]as) YT = Mysterious Tower ([COLOR=#ff6600]Y[/COLOR]en Sid's [COLOR=#ff6600]T[/COLOR]ower?) ZZ = Castle Oblivion
Does DropBox really notify on every change? lol It should be possible to make one, just have to figure out it's format. One of the things I'm looking at... And yes, ARDs can have text added or removed and the tool handles it. ;) 燃 is now 19 5E {燃} is now 1A C7 Ok, you got btltbl. Still interested in its format myself, though. :p Extracting from the US ISO... Should be as simple as taking IMGextract.exe, _HashPairs.log, and an English kh.iso and extraction like normal. Are you getting an error? The new ISO tool works fine atm, just de-hardcoding a few variables in it. Also thinking of making some sort of cache for the compression, since my method is quite slow. ><
Personally, I use wxHexEditor. It supports tagging sections, and showing live what a hex value is as various number types (uint8, uint16, etc). It also has a x86 disassembler in it, iirc (useless for us, though). Basically, it makes hacking easier for me. ;) Going to take a crack at the SLPS file?
The number of .txt files can be different for every ard, and they can be different numbers that are correct. That was one of the bugs in an older version. Pretty much, you just have to make a judgment call on it. What do you mean by "the numbers at the end are all bigger than the number of files that were dumped"?
0009d674.bin-0 looks like trash btw, you would probably want to delete that txt file.
We have this: https://docs.google.com/spreadsheet/ccc?key=0AvBCRWkclDn2dHBrLXVrTEJpT3FyMTRYOTNBNUxKSUE#gid=0 I can always add more files too. A common place to upload the completed files would be nice, though. Where anyone could upload them. No problem. As a heads up, it seems all the ards (most anyway) contain one table that's the same. It has strings like the dalmatians, "you got potion", and stuff like that. Afaik, it's the same in all files. Anyone have that translated already? Best if we can keep it consistent. Also, you can use the same method to extract the English text from the English version. Then it's just copy+paste, and making sure things still line up.
I think my tools are working well enough now, thus a release. ^^ Also: As always, if you find a bug or something either post it here or PM me. ;) Edit: Removed attached tools, please use these: http://crazycatz00.x10host.com/KH/files/app_ModelTextureEditor.7z.
To start from the complete beginning: Put "IMGextract.exe" and a KH1FM ISO named "kh.iso" in the same folder. Run IMGextract to extract the ISO into the "export" folder. If you have any pre-modified files, replace them now. For ARD files: Drag the .ard file onto "ARDread.exe" (original post), it will create multiple text files. IMPORTANT: Do not ever change the first line of these .txt files! Edit the hex codes as needed, using the String Mapper, etc, and put the new hex codes into the file (replacing the old ones). IMPORTANT: If you do not change a .txt file, delete it! Drag the .ard onto "ARDedit.exe". Near the end of it's output, you should see something like "Edited 6 string titles!"; that's how many files it replaced. You will have a new file with .new appended (ex. "lm14.ard"->"lm14.ard.new"). Rename this file to its original name, and replace the one in export with it. For "btltbl.bin", "SLPS_251.98", and other "unknown" files: Use a hex editor to find the string. Copy its hex codes into the String Mapper. Edit the hex codes as needed, using the String Mapper, etc. Copy the next hex codes back into the source file. IMPORTANT: The string (usually) must end in a 00 code. IMPORTANT: You (normally) can not put back more hex codes then you take out. If the string was "01 01 01 00", you can change it to "02 02 02 00" or "02 00 00 00" but not "02 02 02 02 00"! Put the modified file into the export folder. Once you have modified the files, run "IMGreplace.exe" in the same folder as "kh.iso" and "export". Follow the prompts until you get to "File to replace". Now enter each file-name in (without the export part, such as "menu.ard"). It will now replace the file. If it says the file is too big, and if you want to append it (yes/no question) press Y and do it (note this lowers the chance the mod will work, but is currently the only way). When you're done adding files, press enter to finish. Your "kh.iso" is now using the modded versions of those files. That 's basic from ISO -> new ISO guide. The string mapper should be easy enough to figure out. Also, 2 notes: I think there's a Message file editor floating around (I made one too, but no release); There's only 2 message files in the game: I translated one and the other seems unused. So that shouldn't be a problem. And 2: IMGreplace.exe works, but does create invalid ISOs. Don't distribute ISOs that have been edited by it (you probably shouldn't distribute any ISO, tbh). I have another program that can create a new, proper ISO with no (read: less) bugs.
I believe you are using the EVT font, while you're editing SYS font text. Try changing the game version. ;) @Edit: Ya, the 2 fonts have different mappings. SYS is used on most menus and such, and EVT is most subtitles (and the fancy Journal text). Do need to add the new ones you found though, so expect a1.94. Edit: a1.94 is live. And let it be known that I hate Japanese right now! Still want to learn it though....
19 00 changed to "{ム}". 1a c7 shows up as "■", right? That means I didn't have a clue what character it was, but there was something there. :p Fixed both, @ a1.93
Welp, now that the translation thread has something to do for a bit, I'm going to try getting started on a texture editor. ^^ I made this in the last ~1 hour, but I copied Noesis (mostly) so it should work. This will find and extract the textures from a .MLDS that's dragged onto it. The only difference from Noesis is that Noesis allows alpha (transparency) above 255, where I can't do that. I used the same method used in all other Square image formats, so it should work fine in the end. If anyone finds a model it crashes on or doesn't extract correctly, please send me the model name and, if possible, the correct texture files. ;) As for the images their-self, they're 8-bit indexed. That means each one can have up to 256 colors in it. And I already have code that can handle make 8-bit, so I don't think the editor part will be too hard.[DOUBLEPOST=1374860092][/DOUBLEPOST] View attachment 36377 Expect something later... Edit: Removed attached tools, please use these: http://crazycatz00.x10host.com/KH/files/app_ModelTextureEditor.7z.
し to 0x9B レ to 0x19 x09 Will be up in a few secs, check for a1.92 in the title. ;) (I'm just going to leave the script editor open for a bit.... :P)
That would be because I didn't know that was a character. Added, make sure the page title says v2.6a1.91. ;)
They're both the same letter? No distinction? I can change the 0x9B one to "{レ}", will that work for you?
Ya, you will need to change the pnatch name. As for things like widescreen, those could be put on by default. In fact, in my font archive there's a a "widescreen.delta" file which can do the widescreen part for you (with the batch file there too). 60fps would be easy to do too, iirc. :p Just note that each change will change the CRC, hence changing the pnatch name too. The SLPS file in my font archive doesn't have the widescreen patch on it, so if you added that, for example, it would change the pnatch name again. Also, I think these (widescreen\60fps\etc) should be optional patches applied by the user\player, not the translation mod. That's just my opinion, though. Doesn't seem like it will be too simple then. And afaik, no-one (outside of Square) knows the full model specs, so I wouldn't really recommend changing the model too much either. Don't need to break anything. I may be mistaken though, I never did get too far into model modding for either KH1\2. If we're lucky, we can just match up the texture's parts and stitch it together. Like, face goes here, hair here, etc. Really lucky if the UVs are he same, but if we're dealing with different numbers of textures I wouldn't count on it.
To join the bandwagon, cheat codes should still work fine. Yep, any changes to the fonts now will be backwards compatible. So text can be changed freely now. Just make sure everything lines up. ;) And the files for English Jiminy's Journal: http://crazycatz00.x10host.com/KH/files/mod_FinalMixEnglishFilesPartial.7z. These all seem to work fine for me, excluding one bug. (In the scores menu, some text is too far right and overlapping a dash; can't fix this in these files.) Can also use these files to make sure the fonts+ELF mod are applied correctly.
If it's just texture replacement, with NO difference in the model, it might not be too hard. The MDLS files are the one thing people actually tried to reverse engineer before. Assuming the models and UVs match, it should work. I might try that once I get these text tools out, since I can't Japanese. :p Old: Spoiler --- And this font does work! View attachment 36353 It uses (almost) the exact same codes as the US sysfont, with the only difference being the space. The space is a special character, as far as this game cares, and doesn't have a width in the table I'm editing. So our space for sysfont is 0xFF, and when I update my string mapper it will handle that for you. If I should ever manage to fix the space size, this workaround will continue to work fine as well. With this table, I was able to get it to work with the original US font too, so the characters look the exact same and have the exact same width. Some characters like "jgy" etc that go below the line did have to be raised a bit. And from a few tests, it seems the Latin characters work fine. ;) On a related note, this table is INSIDE the SLPS_251.98 ELF file. Things like hard-coded cheats (widescreen, etc) will need to be re-applied. EDIT: And here are the files: http://crazycatz00.x10host.com/KH/files/mod_FinalMixEnglishFonts.7z Updated sysfont.bin (now just the normal SLUS version), updated Kanji.knj (minor, should affect nothing for us), and added the modded SLPS_251.98. Also added a "Dev" folder, containing delta patches. (If you don't know, don't worry.) Updated my String Mapper, which does use 0xFF as space only on "Final Mix English SYS". Non-font stuff: Spoiler I also "fixed" a widescreen hack for this game. The version here works for everything except the black border fix, so I modded it to use the FM's values. Code: black borders fix part 1 086251AC 40181000 0A803002 0C004010 to 00000000 40181000 0A803002 0C004010 part 2 086245ac 100060AC 00000000 00000000 to 00000000 100060AC 00000000 00000000 or Code: //You have to figure the others yourself; I don't use pnatch widescreen patches and the pnatch for the SLUS versions probably won't work with the Final Mix //black border fix patch=1,EE,00104334,word,00000000 patch=1,EE,00104454,word,00000000 And a few random things I found while looking for the font table: A value that switches from Interlaced output to Progressive output. Videos force it back to interlaced constantly, but otherwise seems to stay whatever it is. [byte @ 004D8EC8] A set of values that can move the screen around [byte*3 @ 004D8ED4], and some that stretch (and change the resolution of) the screen [byte*5 @ 004D8EDA]. The timer for the demo video on the title screen. Freezing the value causes the video to never play, settings it to 1 (NEVER 0!) causes it to instantly play. [uint32 @ 00F2C6FC] A value that controls what the title screen is doing; its state, if you will. Can force it to reload, skip the splash screens, force memory card errors (useful for translating), force open menus, etc [byte @ 00F2C708] A few values that mess with the title screen, such as blurring the logo, fading images, and the glowing selector orb thingy's state. I have some basic documentation on some of these, PM if interested. I'm going to bed now.....
black borders fix part 1 086251AC 40181000 0A803002 0C004010 to 00000000 40181000 0A803002 0C004010 part 2 086245ac 100060AC 00000000 00000000 to 00000000 100060AC 00000000 00000000
//You have to figure the others yourself; I don't use pnatch widescreen patches and the pnatch for the SLUS versions probably won't work with the Final Mix //black border fix patch=1,EE,00104334,word,00000000 patch=1,EE,00104454,word,00000000