Hacking Sword Art Online: Infinity Moment [PSP]

Kelebek

Well-Known Member
Member
Joined
May 25, 2012
Messages
165
Trophies
0
XP
156
Country
Ok so I think I'm ready to give this out, hopefully it won't just break. This is mainly for StorMyu and Sporky I suppose, but I'm gonna put it here for anyone interested: http://pastebin.com/sSzzMP6P - For python 2.7, usage is "script.py <filename> -e" to decompile, and "script.py <filename> -i" to recompile.

This is a script that decompiles and recompiles (although not perfectly) the game's script files. I've put a loooad of comments all throughout it to try and explain, hopefully make it clearer to make your own tools based off it. Be aware though, removing code does not work, so don't remove lines from the decompiled script, because I couldn't get removing to work properly. You can add and edit as much as you want though. It has automatic new-lining and splitting of strings. As strings are limited to basically 80 characters, although it's sort of like 78, the code will automatically split your strings. Keep single strings to one line. The automatic newlining (and lack of manual splitting) and splitting of strings will probably fuck you over in terms of actually making the text presentable, so I don't really advise this to be used for actually translating the game in its current state. If you wanted to do that though, you can just disable all the newlining and etc pretty easily, and then just newline/make new strings yourself. You'd just need to always be aware of line lengths and the string size limits though.

Ok so for actual editing, editing strings or any variables is straight forward, just change them. Strings need to be inside " " (and only one set).

To add code, add your lines so that the curly brace { starts the line, take the line number out of it, otherwise things will break. Added lines need to start with that {. Here's an example:

VM0Pl47.jpg

So you can see there, on the left is the original code that I modified manually. You see I added 3 jumps after the play-voice line, and also needed to add that "name goes here" line because it's required by the msgbox-name function. I change that line from msgbox to msgbox-name, so I had to set the name there as well. I also set the line after the name to be 3e6 instead of 1, because again, that's what's used for the msgbox-name function for the character name.

On the right you see the compiled, and then decompiled again script. You see all the strings split as they needed to, to stay within the string size limits, and you see that it added all the required parameters as well.

Most importantly though (for an adding point of view anyway, which is pretty much required with these tight string sizes), look at the jumps. Check the blocks I had them jumping to in the original script. They jumped to block 41e (the { get-string "40_0100_001_0" } line), block 420 the call-voice line, and 422 the バカッバカッバカッ line. Compare that with the script on the right, and note how they still match up, even after adding all those lines. That's important. StorMyu and anyone else who's going to play with these files or make tools, you really have to make sure you fix those jumps, otherwise you'll end up with the game jumping to the wrong place in the script. Could be an invalid location and just crash the game, or even more subtle in maybe you end up skipping over some code that sets a game flag, and then the game becomes impossible to finish or something. So, just make sure those are fixed.

And so back in game, we get the expected output, as the script on the right indicates. I had to take those jumps out of course, otherwise we'd just jump straight over our edited lines:

aGVsEYW.jpg


PRTHd1R.jpg


vRdw57R.jpg

And etc etc.

I haven't checked all the opcodes, so I can't be 100% sure they're right. The trend I saw from all the ones I was able to actually hit in the game, had 1 dword variable if below 0x22, and just the opcode if 0x22 or above. But I didn't actually specifically check all the ones I have listed.

I'm unsure on the jumps as well, I have 0x1a - 0x1e as jumps, ruled 0x1f out, and I don't think I hit 0x1b in the game. So check those if possible Stormyu. As well as most of all the others. Pretty confident that 1a is a jmp, and 1b - 1e are conditional jumps, but I don't know the conditions.

So yeah, that's about it. \o/

EDIT: Added a couple more opcodes, all scripts in the script folder now decompile (apart from _def). You can decompile a whole folder using "script.py <foldername> -dumpall" and recompile a whole folder with "script.py <foldername> -compall"
 

diablo4

New Member
Newbie
Joined
Apr 28, 2014
Messages
2
Trophies
0
Age
38
Location
Jiménez, Chihuahua
XP
53
Country
Mexico
Quick question diablo4.
You plan on translating it to Spanish from the japanese ?
Sorry for my late reply, I've been very busy although my work is in a cyber-coffe I hadn't the chance to connect and check here. My japanese knowledge goes nearly zero, so what I wish is you to give me what you translated to make an english-spanish translation. I hope I explain well and clearly because my actual english is a crap but... what can I do? :J
 

cloud1250000

Well-Known Member
Newcomer
Joined
Dec 18, 2008
Messages
81
Trophies
0
XP
209
Country
Canada
Ok so I think I'm ready to give this out, hopefully it won't just break. This is mainly for StorMyu and Sporky I suppose, but I'm gonna put it here for anyone interested: http://pastebin.com/mE3wKYSR - For python 2.7, usage is "script.py <filename> -e" to decompile, and "script.py <filename> -i" to recompile.

This is a script that decompiles and recompiles (although not perfectly) the game's script files. I've put a loooad of comments all throughout it to try and explain, hopefully make it clearer to make your own tools based off it. Be aware though, removing code does not work, so don't remove lines from the decompiled script, because I couldn't get removing to work properly. You can add and edit as much as you want though. It has automatic new-lining and splitting of strings. As strings are limited to basically 80 characters, although it's sort of like 78, the code will automatically split your strings. Keep single strings to one line. The automatic newlining (and lack of manual splitting) and splitting of strings will probably fuck you over in terms of actually making the text presentable, so I don't really advise this to be used for actually translating the game in its current state. If you wanted to do that though, you can just disable all the newlining and etc pretty easily, and then just newline/make new strings yourself. You'd just need to always be aware of line lengths and the string size limits though.

Ok so for actual editing, editing strings or any variables is straight forward, just change them. Strings need to be inside " " (and only one set).

To add code, add your lines so that the curly brace { starts the line, take the line number out of it, otherwise things will break. Added lines need to start with that {. Here's an example:

VM0Pl47.jpg

So you can see there, on the left is the original code that I modified manually. You see I added 3 jumps after the play-voice line, and also needed to add that "name goes here" line because it's required by the msgbox-name function. I change that line from msgbox to msgbox-name, so I had to set the name there as well. I also set the line after the name to be 3e6 instead of 1, because again, that's what's used for the msgbox-name function for the character name.

On the right you see the compiled, and then decompiled again script. You see all the strings split as they needed to, to stay within the string size limits, and you see that it added all the required parameters as well.

Most importantly though (for an adding point of view anyway, which is pretty much required with these tight string sizes), look at the jumps. Check the blocks I had them jumping to in the original script. They jumped to block 41e (the { get-string "40_0100_001_0" } line), block 420 the call-voice line, and 422 the バカッバカッバカッ line. Compare that with the script on the right, and note how they still match up, even after adding all those lines. That's important. StorMyu and anyone else who's going to play with these files or make tools, you really have to make sure you fix those jumps, otherwise you'll end up with the game jumping to the wrong place in the script. Could be an invalid location and just crash the game, or even more subtle in maybe you end up skipping over some code that sets a game flag, and then the game becomes impossible to finish or something. So, just make sure those are fixed.

And so back in game, we get the expected output, as the script on the right indicates. I had to take those jumps out of course, otherwise we'd just jump straight over our edited lines:

aGVsEYW.jpg


PRTHd1R.jpg


vRdw57R.jpg

And etc etc.

I haven't checked all the opcodes, so I can't be 100% sure they're right. The trend I saw from all the ones I was able to actually hit in the game, had 1 dword variable if below 0x22, and just the opcode if 0x22 or above. But I didn't actually specifically check all the ones I have listed.

I'm unsure on the jumps as well, I have 0x1a - 0x1e as jumps, ruled 0x1f out, and I don't think I hit 0x1b in the game. So check those if possible Stormyu. As well as most of all the others. Pretty confident that 1a is a jmp, and 1b - 1e are conditional jumps, but I don't know the conditions.

So yeah, that's about it. \o/

Really nice. Good work :)
 

TheDave7365

Active Member
Newcomer
Joined
Mar 5, 2014
Messages
29
Trophies
0
Age
27
Location
Sydney, Australia
XP
50
Country
Uhm hello guys im new here and im one of SAO's biggest fan. im so happy that the translation is still on-going (am i right?) :D anyway im just saying to all translators and others staffs that working on this game to make it possible to the people like me who cant understand jap that much to play this game a Very Big THUMBS UP and wishing this to be a successful patch.

PS: sorry for my english :D i suck at english XD

PSS: uhm even if its not complete yet can i have a sample patch even if its not fully complete :D (sorry for this part of message im just so desperately wanting this game for a looooong loooong time)

PSS: I miss my Asuna Waifu <3

oh for the love of god, will people PLEASE read the previous comments!!! they are not giving out alphas and betas!!!! yes im devo too but thats the way it is. dont post unless you've read the comments!!!!!!!!!! im sure im a bigger SAO fan than most and i still respect their decision. the devs don't want to be clustered with bug reports and update requests. let them do it in their own time, i mean their doing this out of their good will. just have patience. and Shishi, if you think im over reacting, actually read the past comments and see how annoying this is getting.
 

Shishi

New Member
Newbie
Joined
May 5, 2014
Messages
4
Trophies
0
Age
27
Location
Manila, Philippines
XP
41
Country
oh for the love of god, will people PLEASE read the previous comments!!! they are not giving out alphas and betas!!!! yes im devo too but thats the way it is. dont post unless you've read the comments!!!!!!!!!! im sure im a bigger SAO fan than most and i still respect their decision. the devs don't want to be clustered with bug reports and update requests. let them do it in their own time, i mean their doing this out of their good will. just have patience. and Shishi, if you think im over reacting, actually read the past comments and see how annoying this is getting.

haha peace bro im just saying if i could :D well looks like i cant so its ok im just waiting anyway xD no need to be scream it out :D im new here so at the least you could do is to guide me but well i admit my mistake for not ready the whole 49 pages of the comment :D im just too exited anyway so meh gome!
 

TheDave7365

Active Member
Newcomer
Joined
Mar 5, 2014
Messages
29
Trophies
0
Age
27
Location
Sydney, Australia
XP
50
Country
haha peace bro im just saying if i could :D well looks like i cant so its ok im just waiting anyway xD no need to be scream it out :D im new here so at the least you could do is to guide me but well i admit my mistake for not ready the whole 49 pages of the comment :D im just too exited anyway so meh gome!

my apologies... i wasn't in a good mood at that time.... i need to keep my emotions of the internet. no hard feelings?
 

Kalker3

Well-Known Member
Member
Joined
Apr 5, 2013
Messages
406
Trophies
1
Age
26
XP
319
Country
France
In his defense, I only added the second line after Shishi asked about the partial patch thing, but yeah, I didn't think I needed to be that specific.
 

Shishi

New Member
Newbie
Joined
May 5, 2014
Messages
4
Trophies
0
Age
27
Location
Manila, Philippines
XP
41
Country
my apologies... i wasn't in a good mood at that time.... i need to keep my emotions of the internet. no hard feelings?

haha its ok bro i know that there are a lot of problems in this world. and yuh sorry too i still did a mistake so we're only even. :D btw guys is there a english guide in the net for sao infinity moments? you know where they help you for understanding the game a little bit? cuz i always see patch here patch there in google. even if i search "english guide on Sao infinity moments" in the search bar. :(
 

XaneTenshi

Well-Known Member
Member
Joined
Nov 24, 2013
Messages
506
Trophies
0
Age
34
XP
1,124
Country
Denmark
Sure there is. Here you go. http://yomikaeru.blogspot.com.es/ This blog contains several things regarding the game, but most importantly, it has most of the story scenes translated, so you'll have an idea of what's going on. It's not the best translation ever but it gets the point across. Also, the blog http://saoimguide.blogspot.dk/ contains info about the more technical aspects of the game. For one, It helped me to understand some of the battle mechanics and also gives alot of info on the different skills in the game. It also contains guides on the quests for the first couple of floors just to get you started.

Your welcomeB-)
 
  • Like
Reactions: TheDave7365

Shishi

New Member
Newbie
Joined
May 5, 2014
Messages
4
Trophies
0
Age
27
Location
Manila, Philippines
XP
41
Country
Sure there is. Here you go. http://yomikaeru.blogspot.com.es/ This blog contains several things regarding the game, but most importantly, it has most of the story scenes translated, so you'll have an idea of what's going on. It's not the best translation ever but it gets the point across. Also, the blog http://saoimguide.blogspot.dk/ contains info about the more technical aspects of the game. For one, It helped me to understand some of the battle mechanics and also gives alot of info on the different skills in the game. It also contains guides on the quests for the first couple of floors just to get you started.

Your welcomeB-)

thanks man :D
 

iSupercell

Member
Newcomer
Joined
Jan 4, 2014
Messages
13
Trophies
0
Location
Canada
Website
isupercell.tumblr.com
XP
64
Country
Canada
SAOHF is going strong. Just dropping by to say that SAOHF is getting a digital release in Europe and Australia in July 2014. "On top of the Hollow Fragment episode, thisnew SAO game will feature Sword Art Online: Infinity Moment -originally released in Japan for the PlayStation®Portable. Infinity Moment will benefit from all the PlayStation®Vita power as he it will get enhanced HD graphics!" People who live in Europe and Australia will be able to get SAOHF if they have a PS Vita.
 

jag272

Well-Known Member
Newcomer
Joined
Jan 15, 2014
Messages
54
Trophies
0
Age
36
XP
190
Country
Ahhh thats good news, wont have to do any nonsense trying to access the US digital download then. Now just to find a cheap deal for a vita.
 

TheDave7365

Active Member
Newcomer
Joined
Mar 5, 2014
Messages
29
Trophies
0
Age
27
Location
Sydney, Australia
XP
50
Country
SAOHF is going strong. Just dropping by to say that SAOHF is getting a digital release in Europe and Australia in July 2014. "On top of the Hollow Fragment episode, thisnew SAO game will feature Sword Art Online: Infinity Moment -originally released in Japan for the PlayStation®Portable. Infinity Moment will benefit from all the PlayStation®Vita power as he it will get enhanced HD graphics!" People who live in Europe and Australia will be able to get SAOHF if they have a PS Vita.

will we have access to the DLC's???
 

Sporky McForkinspoon

Well-Known Member
Member
Joined
Jul 4, 2013
Messages
545
Trophies
0
XP
509
Country
United States
We're also still waiting to some extent to see whether or not it is worth it to continue making our own translation rather than porting Hollow Fragment's official translation.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan
    I rather enjoy a life of taking it easy. I haven't reached that life yet though.
  • BigOnYa
    BakerMan @ BakerMan: knuckles vs broly could also be a good one tbh +1