Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - titeguy3

Pages: 1 ... 45 46 47 48 49 [50]
1226
I got sick and tired of having to manually edit all of the Jump points in an AI Script after modifying something and having to frequently look up the hex values for stuff, so I decided to write myself a little Assembler so that I can code directly in assembly and use labels and quantifiers instead of having to put in raw hex values.

It's nothing flashy, but it works pretty well. I've tested it against Sephiroth's Pre-Battle script and it matched perfectly.

Here's what the input file looked like:

Code: [Select]
; Sepher Sephiroth's Pre-Battle AI Script
;Label Opcode Argument
PUSH12 Self ;This is a quantifier, There's a total of 124 of them built in. Typing "self" is the same as 2060
PUSH10 402C
MASK
PUSH01 01
STRA
PUSH 00
PUSH02 0268
GLOB
PUSH13 0020
PSHA01 GlobalAddress ;This is another one, this one stands for x2010
STRA
PUSH01 00
PUSH01 5B
GLOB
PUSH13 0040
PSHA01 GlobalAddress
STRA
PUSH01 00
PUSH02 026C
GLOB
PSHA01 GlobalAddress
PUSH01 01
EQU
JMP0 jump1 ;This is a Label, it stores the address of any other instruction, so long as it's labeled with an identical label
PUSH13 0060
PUSH03 013880 ;Note: when dealing with PUSH and PSHA, specifying a type (e.g. PUSH03) is optional--PSHA defaults to PSHA00, and PUSH defaults to opcodes 60, 61, or 62 depending on the argument size.
STRA
JUMP jump2
jump1 PUSH13 0060
PUSH 00 ;See? not necessary
STRA
jump2 PUSH13 0000
PUSH 4E200 ;Trailing zeros are also not necessary
STRA
PUSH13 0000
PSHA03 0000
PUSH01 08
PSHA03 0020
SUB
PUSH02 7530
MUL
SUB
STRA
push12 SELF ;Case insensitivity ftw
PUSH13 mhp
MASK
PSHA03 0000
PSHA03 0060
ADD
STRA
PUSH12 SELF
PUSH13 HP
MASK
PSHA02 SELF
PSHA03 MHP
MASK
PSHA03 0040
PUSH01 #100 ;you can also enter decimal values like this
MUL
SUB
STRA
PSHA02 SELF
PSHA03 MHP
MASK
PSHA02 SELF
PSHA03 HP
MASK
DEBUG 02 HP = %d / %d
PUSH13 0000
PSHA02 SELF
PSHA01 ATTACKPOWER
MASK
PSHA03 0020
PUSH01 02
MUL
ADD
STRA
PUSH12 SELF
PUSH11 ATTACKPOWER
MASK
PSHA03 0000
STRA
PUSH13 0000
PSHA02 SELF
PSHA02 PHYSDEFENSE
MASK
PSHA03 0020
PUSH01 14
MUL
ADD
STRA
PUSH12 SELF
PUSH12 ATTACKPOWER
MASK
PSHA03 0000
STRA
PUSH13 0000
PSHA02 SELF
PSHA01 MAGICPOWER
MASK
PSHA03 0020
PUSH01 05
MUL
ADD
STRA
PUSH12 SELF
PUSH11 MAGICPOWER
MASK
PSHA03 0000
STRA
PUSH13 0000
PSHA02 SELF
PSHA02 MAGDEFENSE
MASK
PSHA03 0020
PUSH01 10
MUL
ADD
STRA
PUSH12 SELF
PUSH12 MAGDEFENSE
MASK
PSHA03 0000
STRA
PSHA02 SELF
PSHA02 MAGDEFENSE
MASK
PSHA02 SELF
PSHA01 MAGICPOWER
MASK
PSHA02 SELF
PSHA02 PHYSDEFENSE
MASK
PSHA02 SELF
PSHA01 ATTACKPOWER
MASK
DEBUG 04 AT %d DF %d ATM %d DFM %d
PUSH12 TARGETMASK
PUSH02 SELF
STRA
PUSH01 20
PUSH02 0368 ;"x" attack
ATTK
PUSH01 20
PUSH02 014F ;"Appear" attack
ATTK
END

And this was the output file:

Code: [Select]
12 2060
10 402C
80
60 01
90
60 00
61 0268
95
13 0020
01 2010
90
60 00
60 5B
95
13 0040
01 2010
90
60 00
61 026C
95
01 2010
60 01
40
70 003D
13 0060
62 013880
90
72 0043
13 0060
60 00
90
13 0000
62 04E200
90
13 0000
03 0000
60 08
03 0020
31
61 7530
32
31
90
12 2060
13 4180
80
03 0000
03 0060
30
90
12 2060
13 4160
80
02 2060
03 4180
80
03 0040
60 64
32
31
90
02 2060
03 4180
80
02 2060
03 4160
80
A0 02 HP = %d / %d
13 0000
02 2060
01 4068
80
03 0020
60 02
32
30
90
12 2060
11 4068
80
03 0000
90
13 0000
02 2060
02 4100
80
03 0020
60 14
32
30
90
12 2060
12 4068
80
03 0000
90
13 0000
02 2060
01 4070
80
03 0020
60 05
32
30
90
12 2060
11 4070
80
03 0000
90
13 0000
02 2060
02 4110
80
03 0020
60 10
32
30
90
12 2060
12 4110
80
03 0000
90
02 2060
02 4110
80
02 2060
01 4070
80
02 2060
02 4100
80
02 2060
01 4068
80
A0 04 AT %d DF %d ATM %d DFM %d
12 2070
61 2060
90
60 20
61 0368
92
60 20
61 014F
92
73

You can see a screenshot of it in action here:


Told ya, the interface isn't exactly flashy but it gets the job done.

You can download it and try it out here

If you find any bugs, be sure to tell me, send me a screenshot or a copy of the error message and the input file and I'll try to fix it and get another version up.

Edit: FF7 Script Code Assembler is now v1.1! The max number of labels allowed is now 50 (from 10) and it no longer crashes when you exceed that. Note also that the max label size is 15 characters. The TBIT opcode has also been fixed.

1227
Ahhh....I wondered where "Shinra Explodes" was...

1228
That's interesting, you gave him hooves. He kinda looks like a satyr now (think Phil from Disney Hercules).

Nice work, can't wait to see the finished product! :wink:

1229
What kind of debug info does FF7Music display? It should show some kind of error message....

1230
FF7 Tools / Official Proud Clod 1.0 Topic
« on: 2009-07-14 08:00:32 »
Rad to the...power of......sick? O_o ?

It's a geekologie reference, check it out.

Easy answer: don't. The AI editing was meant to be done entirely with the keyboard. Just press Enter to make a new cell. That works fine.

Well I'll be damned. I didn't know that worked. I always assumed you had to click on something for it to gain focus of the keyboard, and click = fail. Thanks. I can make progress again now.

1231
while you're redoing them, you might wanna consider editing the Makou Reactor song...there's way too much silence in the beginning.

btw, I LOVED the way you did Vincent's theme. It's my fav song in the game, and your version is the best I've heard.

1232
Archive / Re: Aeris model wip
« on: 2009-07-14 07:34:44 »
Hrm... it looks like she's got a butt...
Only problem is that it's waaay too low....
and that her hips are way too high.

Scaling some of the corners up and down (butt and hips, respectively) would make it look spot on though. Very good if you just made this from scratch. I probably couldn't do any better, I'm no good at modeling anything that isn't blueprinted out for me.

1233
I know this is an old topic but...

Does anyone know then, how it's possible for Safer Sephi to use the "Wall" animation? I tweaked his "Wall" Attack and found that even if I changed it's properties, the attack stayed the same (was the attack HARD CODED into the game?). Only when I completely changed the Attack ID did my modifications work, but then the animation changed and I can't seem to get it to be Big Guard or Wall or anything useful.  Wierd, huh? Give it a whirl yourself and and see what happens.

EDIT: btw, the link seems to be down.

1234
FF7 Tools / Official Proud Clod 1.0 Topic
« on: 2009-07-13 03:17:36 »
2) I've been playing around with ProudClod and WallMarket, adding and changing spells (for instance, so far, I've successfully added the spells Holy, Drain, Blind, and Horology), but it takes so much time because there's no reference that lets me know what animation indexes do what. At first I just plugged in random animation indeces, until I realized that, as a general rule:

Player Spells = Enemy Spells + 4E

so for instance if you want to convert an enemy's attack animation into a magic spell, you add 4E to it, and voila! It works!

But now that I'm trying to change enemy spells around I find out that Enemy Spells, Enemy Skills, Magic, and Item animations all work differently!!! I'd greatly appreciate it if there were a way to dump animation Indexes with some kind of graphic or name or just any identifier at all associated with it at all so that it's easy to know which animations do what without having to go into the game and test them out one by one, and also the offsets used in certain cases (i.e. 4E for most enemies--assuming cure is the first animation).

See this

3) Does anybody know a way to modify enemy names and drop, steal, or morph items? That'd be great.

Use Hojo

EDIT: Thanks!  :lol:

really have to get more used to these formatting tags....

1235
AMAZING. I couldn't agree more that this is what the OST should have sounded like (the official one was barely distinguishable from the MIDI tracks). Hell, I'm even considering replacing some of my OCR tracks for this! Awesome job, mad props!

1236
FF7 Tools / Official Proud Clod 1.0 Topic
« on: 2009-07-12 23:19:40 »
Hey guys, I've been sneaking around this forum for a while now but I never really had anything to contribute until now. I've been working on sort of a "Player's cut" version of FFVII, by fixing bugs, updating models, updating the soundtrack, making a simple .exe installer that covers all bases, etc...

I've been using ProudClod and Wallmarket recently (which are both "RAD to the power of SICK" btw :wink:), and so far, I've updated Safer Sephi's AI, effectively making him not so much of a pushover, fixed the Adamantaimai Big Guard glitch, retranslated the dialogue during the Guard Scorpion boss battle, and added/changed a few spells and materia, and so far, I've had a few problems.

1) Firstly (as Zack Fair mentioned) Proud Clod (I haven't tried this in Wallmarket) still (as of 1.2.0) doesn't let you write scripts for the AI in a section that currently has no code (i.e. modifying the General Counter script in Safer Sephiroth's AI). It gives you the error:

System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.Collections.ArrayList.get_Item(Int32 index)
   at System.Windows.Forms.DataGridViewSelectedCellCollection.get_Item(Int32 index)
   at ProudClod.Form2.EditCharAI_DoubleClick(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnDoubleClick(EventArgs e)
   at System.Windows.Forms.DataGridView.OnDoubleClick(EventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.DataGridView.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

...when I double click to create a new cell. This error actually happens pretty much all the time, not just exclusively in this case. It makes it kind of difficult to code the scripts without things f*ing up, but the main inconvenience is that I can't add code under new conditions, which is important if I'd want to change somebody's AI around.

2) I've been playing around with ProudClod and WallMarket, adding and changing spells (for instance, so far, I've successfully added the spells Holy, Drain, Blind, and Horology), but it takes so much time because there's no reference that lets me know what animation indexes do what. At first I just plugged in random animation indeces, until I realized that, as a general rule:

Player Spells = Enemy Spells + 4E

so for instance if you want to convert an enemy's attack animation into a magic spell, you add 4E to it, and voila! It works!

But now that I'm trying to change enemy spells around I find out that Enemy Spells, Enemy Skills, Magic, and Item animations all work differently!!! I'd greatly appreciate it if there were a way to dump animation Indexes with some kind of graphic or name or just any identifier at all associated with it at all so that it's easy to know which animations do what without having to go into the game and test them out one by one, and also the offsets used in certain cases (i.e. 4E for most enemies--assuming cure is the first animation).

3) Does anybody know a way to modify enemy names and drop, steal, or morph items? That'd be great.

Lastly, a million thanks to everybody here for keeping the spirit of FFVII alive and kicking. Screw Square-Enix, if they refuse to make a remake, we'll just make our own! :-D

Pages: 1 ... 45 46 47 48 49 [50]