Qhimm.com Forums

Final Fantasy 8 => FF8 Tools => Topic started by: Shard on 2015-12-21 23:23:18

Title: [PSX/PC] DelingScript
Post by: Shard on 2015-12-21 23:23:18
So, I'm making a tool primarily for my use in editing FF8 field scripts that will transform the assembly-like instructions from Deling into a more workable format. I'll be uploading unfinished versions to get feedback and bug reports.

DelingScript v0.3 (http://www.mediafire.com/file/bw9bkp47dwv4zfr/DelingScript.7z/file)

Instructions
Run the jar file, put the Deling assembly code on the right, click the left arrow.

Lines with _ before them have no conversion yet. Someday they all will. Right now over half the opcodes are supported.

Current features:

Planned features:

It's in early development, so post any features or suggestions you want to see out of it. ALso post any bugs you find, because we all want it to be bug free when it's done.
Title: Re: FF8 Scripting Language
Post by: Halfer on 2015-12-22 00:04:47
That's actually pretty handy, since there are already a lot of info about OPcodes, maybe you should add like a hover thing on the codes that also tells what parameters needs to be added. That would fasten workflow while writing new scripts! :)
Title: Re: FF8 Scripting Language
Post by: Sega Chief on 2015-12-22 14:56:01
Translated Op Codes for the FF8 field editor would be great; would be very interested in testing/using it. Is there a compiled list of the translated OpCodes for FF8's field script kept anywhere? I looked at the Wiki, but it seems a bit vague with a lot of them.
Title: Re: FF8 Scripting Language
Post by: paul on 2015-12-22 17:47:45
I had a project that was going to be used for QGears like this:

https://github.com/paulsapps/SUDM

Getting the decompilation step correct is quite difficult though.
Title: Re: FF8 Scripting Language
Post by: Shard on 2015-12-22 18:10:25
Translated Op Codes for the FF8 field editor would be great; would be very interested in testing/using it. Is there a compiled list of the translated OpCodes for FF8's field script kept anywhere? I looked at the Wiki, but it seems a bit vague with a lot of them.
Was it this one? (http://wiki.qhimm.com/view/FF8/Field/Script/Opcodes) That's the most complete list of them. I was able to document about half of them before I lost my mind.
Title: Re: FF8 Scripting Language
Post by: ficedula on 2015-12-22 22:18:30
Coincidentally, I'm working on something similar for FF7. It's progressing fairly well; it'll turn this:

Code: [Select]
UC Disabled=1 //0x0
MENU2 Disabled=1 //0x2
PTURA PartyID=0, Speed=15, Direction=2 //0x4
IFSW BankValue1=2, BankValue2=0, Value1=0, Value2=999, Comparison=2, Offset=16 //0x8 --> 1f
WINDOW WindowID=1, X=67, Y=137, Width=233, Height=73 //0x10
MESSAGE WindowID=1, DialogueID=121 //0x1a
JMPF Offset=14 //0x1d --> 2c
WINDOW WindowID=1, X=39, Y=153, Width=261, Height=57 //0x1f
MESSAGE WindowID=1, DialogueID=120 //0x29
UC Disabled=0 //0x2c
MENU2 Disabled=0 //0x2e
TURNGEN BankRotation=0, Rotation=164, Direction=2, Steps=15, Calculation=2 //0x30

Into this:

Code: [Select]
string sMyoldmanwas = "“My old man was a miner, but\n he couldn't go to work after monsters \n started appearing in the Mythril Mines.”{New Scr}“Now all he does is sit around\n getting drunk in the bar…”";
string sMydadstill = "“My dad still just sits at the\n bar drinking, even though\n he knows Meteor's coming!”{New Scr}“It's sad. Even though he's an adult,\n he just doesn't want to see\n the world as it really is.\n I dunno what to do.”";

EnableMenuAndMove(False);
TurnToPartyMember(0, 15);
if (PPV > 999) {
ShowMessage(67, 137, 233, 73, sMydadstill);
} else {
ShowMessage(39, 153, 261, 57, sMyoldmanwas);
}
EnableMenuAndMove(True);
TurnSmooth(164, Closest, 15);

It'll extract nested if's and while loops from the instructions; I just really need to finish processing all the various opcodes. Shouldn't take too long, since the code structure is the tricky part, and that's mostly done.
Title: First non-working version
Post by: Shard on 2015-12-23 18:13:28
Ok, I've "finished" the assembly -> script translation part. Anyone who's curious is free to take a look at it and give suggestions. Especially feature suggestions. This is a very, very early version so it's going to be kinda rubbush :P

DelingScript v0.1 (http://www.mediafire.com/download/dcj82qllyxgna2a/DelingScript.zip)

Run the jar file, put the Deling assembly code on the right, click the left arrow.

Oh, and the lines with _ before them mean I haven't converted those yet. Eventually every opcode will be supported. That's just temporary.
Title: Re: [FF8] DelingScript
Post by: Shard on 2016-01-26 00:26:34
V0.3 is out. It will convert both ways, and comments in the script are supported. ("//" style)

Not all functions get converted nicely yet. They still work but they look ugly.

I'm mainly looking for bugs at this point. If you convert something back and forth, it should be functionally identical to how it started. If you find a piece of assembly that doesn't convert to how it functionally started, please post the assembly.
Title: Re: [PSX/PC] DelingScript
Post by: gledson999 on 2019-05-12 20:39:03
@Shard can you upload again? The link is off
Title: Re: [PSX/PC] DelingScript
Post by: brucy on 2019-05-30 08:12:27
the link for the version 0.3 is dead , please reupload it
Title: Re: [PSX/PC] DelingScript
Post by: Shard on 2019-05-30 16:03:47
Thanks for letting me know. I'll reupload it the next chance I get.
Title: Re: [PSX/PC] DelingScript
Post by: Shard on 2019-06-17 15:17:48
I updated the link. Apparently all my mediafire links changed.
Title: Re: [PSX/PC] DelingScript
Post by: EditorMaster on 2021-11-20 15:35:55
I cannot edit file game iso like Makou Reactor Tool, I wonder when will make this is tool like Makou Reactor ?