Question about the final battle of the game (1 on 1 with sephiroth) vid added

  • Thread starter Thread starter ff7rules
  • Start date Start date
Status
Not open for further replies.
Hey man thanks for these pics really helped me out. Ive just literally been playing around tonight in hex editor and managed to do something pretty funny. Sephiroth uses cut on cloud. Cloud then counter attacks himself the script isn't finished yet though so i was just testing it really see if the headers worked and such. Heres what i have so far Only thing I'm not sure about is IfZeroGoTo bit but ill post a video of cloud owning himself tommorrow. Its 4 am and I'm tired  :lol: thats how decicated i am to this.

Oh yeah and......

 
I think the problem might have been that you jumped to the the offset in the scene as a whole, not starting counting at the beginning of the section. The 1st byte of each section must be treated as offset 0x0000 when calculating a jump. If you understand this it's pretty obvious you where miles of with 0x8601. No AI is that long. The jump can't find the location 0x8601.
That was just me been a rtard i didn't actually realize i had done that until i looked tonight. I added Ultima right after Done-In but haven't got sephy to use it yet I'm looking forward to what strange animation he will have when he uses it. He might just use cut. He might break dance he might just stand there i don't mind long as its a good fight.

http://www.imagenerd.com/uploads/sepscriptwip-p8vgU.png

I'm sure ill have done something wrong but hopefully it won't be as critical as last time :-P

If the headers are wrong it might of been because i was tired either that or I'm dumb. I now know its after 73 then the 12 which you read from the offset like Gjoerulv showed in his pics. sorry if i didn't explain that very well.
 
Last edited:
You're missing 4 bytes. The 1st pointer must always point to offset 0x0020. Insert FF FF FF FF before AC 00. As it is now your setup starts at 0x0027 which should be main. The header is always 32 bytes long (or 20h). As it is now, the bytes from 0x1C to 0x26 are useless.

The inside jump doesn't make any sense, It simply jumps to the next byte. Now Seph may cast Ultima (1/8 chance), attack Cloud and then Cloud will attack himself lol. You need to swap the bytes at 0x66 and 0x67 to 12 70 20 (not 12 20 70), then Cloud will attack Sephiroth again.

If you make the AI exactly like in my pics you won't have any probs I hope.
 
You're missing 4 bytes. The 1st pointer must always point to offset 0x0020. Insert FF FF FF FF before AC 00. As it is now your setup starts at 0x0027 which should be main. The header is always 32 bytes long (or 20h). As it is now, the bytes from 0x1C to 0x26 are useless.

The inside jump doesn't make any sense, It simply jumps to the next byte. Now Seph may cast Ultima (1/8 chance), attack Cloud and then Cloud will attack himself lol. You need to swap the bytes at 0x66 and 0x67 to 12 70 20 (not 12 20 70), then Cloud will attack Sephiroth again.

If you make the AI exactly like in my pics you won't have any probs I hope.
I copied everything you did from the pic you showed me just to see if it would work and i get the same result as before sephy does nothing just stands there. Maybe hes not meant to cast magic  :lol: At least he doesn't die in one hit now lol. Also in SceneEdit i can't view his script its just blank  :?
 
Last edited:
Make sure the pointers at offset 0xE80 are correct. You know, where the whole AI section of the scene starts.
You could send me that scene and I'll look into it. Oh and you should add Sephiroth's 0x402C = 1h in the setup. I forgot that. And, just for fun, you could try the other body animation on the new attacks. The 04h one; see if anything happens.
 
I have no idea how to add his other body animations for his magic attacks but heres the file of what Ive done so far http://www.megaupload.com/?d=O9J0T9UZ If i made any mistakes could you let me know i just wanna learn everything i can thanks man. EDIT: changed the link it was the wrong version.

How does the headers work at 0xE80 in what way are they connected with the AI?

06 00 6C 03 FF FF 20 00 7F 01 FF FF 2B 03 FF FF
 Thats what i have
 
Last edited:
For some reason post repeated twice  :? ill edit this 1 when i next reply unless theres away to delete it?
 
Last edited:
Those three Words (byte-pairs) are pointers to the header of the monsters' AI scripts. The first one should always be 06 00 and the second one will point to the address of the next monsters' AI relative to 0xE80. So if second script starts at 0x1200 and there's not a third monster then these three Words will be:
06 00 80 04 FF FF because E80 + 480 = 1200 (in hex of course). Make sure they're pointing to the beginning of the monster's AI header too (the first byte of the init script even if that monster doesn't have an init script).
 
Ah i see now its like how many bytes it needs to jump to get to that start of the AI? 0000 = Start of headers for that enemy like in Gjoerulvs pic? If thats so how the hell do you work out E80 + 480 = 1200 does E80 have a special number or something or do you literally have to count how many bytes seprates em?
 
0xE80 is always the address of those pointers in each scene. So the first enemy's AI always starts at 0xE86. These are going to be absolutes.
 
ok, quick feedback on the scene. You did not add the attacks (Deen and Ultima) to Sephiroth's data, but you did add some extra IDs to the attack ID list and names including Deen which was already there, so I removed 'em. Deen was also added at the end of Attack data (which I also removed). You don't have to add an attack to the lists if it's already there.
I added 04h at offset 0x38A and 0x38B to tie an animation to the attacks. Look at 0x39C - 0x39F to see the attack ID I added there. (talking offset now I mean the scene as a whole, not just the AI). The animation added are the same as Sephy's done in lol, but You can change 'em back to 03h to use the Cut animation (offset  0x38A and 0x38B).

The pointers at 0xE80 was correct but Sephiroth's header was again messed up. The header is always 32 bytes long, or 20h, and need to start where those main pointers point at (the ones at 0xE80). I think you thought correctly, but the sections start offsets was all mess up because of the extra bytes at the start.

Here is the scene http://www.megaupload.com/?d=R18YZX32
 
ok, quick feedback on the scene. You did not add the attacks (Deen and Ultima) to Sephiroth's data, but you did add some extra IDs to the attack ID list and names including Deen which was already there, so I removed 'em. Deen was also added at the end of Attack data (which I also removed). You don't have to add an attack to the lists if it's already there.
I added 04h at offset 0x38A and 0x38B to tie an animation to the attacks. Look at 0x39C - 0x39F to see the attack ID I added there. (talking offset now I mean the scene as a whole, not just the AI). The animation added are the same as Sephy's done in lol, but You can change 'em back to 03h to use the Cut animation (offset  0x38A and 0x38B).

The pointers at 0xE80 was correct but Sephiroth's header was again messed up. The header is always 32 bytes long, or 20h, and need to start where those main pointers point at (the ones at 0xE80). I think you thought correctly, but the sections start offsets was all mess up because of the extra bytes at the start.

Here is the scene http://www.megaupload.com/?d=R18YZX32
Thanks NFITC1 for that info i had no idea that was the case. GJ i tried that scene out and well something really werid happened i either attack sephiroth with braver then he cut me twice then he like does his done in animation but drops his sword and flys away (no joke) Then i get Game Over ill have alook at it now see if i can figure out whats wrong thanks for doing having alook at it i guess its still trial and error for me still oh well :)
 
Last edited:
lol would love to see a video of it!

But you know there is an extra scripts starting at 0xC80. This may f**** up the battle if you want it normally.
 
Video coming up! ill edit it in when its uploaded

EDIT Video is uploaded waiting for it to process.
 
Vids done

EDIT: After looking at the scene in Hex editor I'm really confused. It looks like you deleted all the other headers except the 1 to tell it to go to done-In animation?
As far as i can see heres how it goes

Use cut if attacked or wait an amount of time to use cut anyway
after cut use done- in then game over instead of end the battle. Is it just done- in = end of the battle no matter what? i will try changing it to cut and let you know what happens.

EDIT: Some bad news I'm afraid i now know whats happening after changing done-in casting magic to cut i see whats going on. I had 20 fights in a row 6 of them Sephiroth just died the other 4 he used cut over and over again. But then he did actual damage and killed me in one swoop I'm guessing that damage was "Deen"(hit me for 1565) and another time hit me for alot more(Ultima). So that's it folks sephiroth can only use the damage value in his cut. No magic animations since cut is classed as a "cut" attack if i was to change this might i get a different result? I will try now.

Out of luck sephiroths Cut is not a cut attack.

Thinking what about the other sephiroth the one from the flashback would replacing the two be hard?

Well with what i got to work with heres a vid
 
Last edited:
Yeah, he doesn't have casting animation, does he? Unfortunately I don't know much about animating these figures so I couldn't answer this, but wouldn't it be possible to "borrow" the skeleton from the Sephiroth in the flashback to make a casting animation?

Other than that the video looks great. Sephiroth seems a good challenge when 1-1.

Personal opinion; You should add the following to Sephiroth's Death Counter script:

12 60 20
02 20 00
90
12 70 20
02 00 00
90
60 14
61 86 00
92

That will force Cloud to use Omnislash when Sephiroth's HP are 0. :D Then he can perform his normal dying animation. Well, I guess the only set-back to this is that Cloud MIGHT do two Omnislashes in a row. One via a command by the player, the other forced by Sephiroth's Main Script...
 
Yeah, he doesn't have casting animation, does he? Unfortunately I don't know much about animating these figures so I couldn't answer this, but wouldn't it be possible to "borrow" the skeleton from the Sephiroth in the flashback to make a casting animation?

Other than that the video looks great. Sephiroth seems a good challenge when 1-1.

Personal opinion; You should add the following to Sephiroth's Death Counter script:

12 60 20
02 20 00
90
12 70 20
02 00 00
90
60 14
61 86 00
92

That will force Cloud to use Omnislash when Sephiroth's HP are 0. :D Then he can perform his normal dying animation. Well, I guess the only set-back to this is that Cloud MIGHT do two Omnislashes in a row. One via a command by the player, the other forced by Sephiroth's Main Script...
Thanks for this idea! Im definetly gonna add this as he has the same HP as Ruby Weapon anyway so it wouldn't matter if he did two limit breaks. Also i think it would make the fight all the more epic if i added a dialog box just before he uses the last omnislash. But i dunno what he could say i don't wanna ruin the whole moment by saying something cloud wouldn't say or sephiroth wouldn't say remember he returns in advent children so could refer to that? If people think this is a silly idea i won't do it im gonna add what you said to do now though NFITC1 thanks.  :wink: If its possible to "borrow" the flashbacks animation for casting magic im all for it if someone knows how to pull this off.

I tried the script you posted the battle works but when hes at 0 HP i got Data Error sceen 925 code 32 i might know why this is though ill edit this post if what i try works.
 
Last edited:
This would work like NFITC1 posted if you have stored Cloud as 0x20 and Sephira as 0x00 (and 86 is Omni. Haven't checked but I guess he got controll). It's like this by default but if you used my suggestion then I removed that part where the variables are made. You could bring it back in the setup part though.


12.(0000)
02.(2060)
90. <- Seph is 0x0000
12.(0020)
02.(2050)
01.(4060)
80.
60.(10) <- I guess this is Cloud from the AND-ed bank
40.l
90. <- Cloud is 0x0020


As much HP as ruby? IMO that's a bit much. You could add a part that makes him use an attack that drains damage dealt when his HP is low.

This one checks if Current Hp is under MAX HP/XX*YY. (if not GOTO offset 0xZZZZ)
02.(2060)
03.(4160)
80.
02.(2060)
03.(4180)
80.
60.(XX)
33.
60.(YY)
32.
43.
70.(ZZZZ)
As target is stored in Setup we don't need to set it (Cloud id the only option anyway. By default it isn't set though)
60.(20)
61.(The attack ID)
92.
72.(goto end of script)
 
This would work like NFITC1 posted if you have stored Cloud as 0x20 and Sephira as 0x00 (and 86 is Omni. Haven't checked but I guess he got controll). It's like this by default but if you used my suggestion then I removed that part where the variables are made. You could bring it back in the setup part though.


12.(0000)
02.(2060)
90. <- Seph is 0x0000
12.(0020)
02.(2050)
01.(4060)
80.
60.(10) <- I guess this is Cloud from the AND-ed bank
40.l
90. <- Cloud is 0x0020


As much HP as ruby? IMO that's a bit much. You could add a part that makes him use an attack that drains damage dealt when his HP is low.

This one checks if Current Hp is under MAX HP/XX*YY. (if not GOTO offset 0xZZZZ)
02.(2060)
03.(4160)
80.
02.(2060)
03.(4180)
80.
60.(XX)
33.
60.(YY)
32.
43.
70.(ZZZZ)
As target is stored in Setup we don't need to set it (Cloud id the only option anyway. By default it isn't set though)
60.(20)
61.(The attack ID)
92.
72.(goto end of script)
Thanks for posting this im gonna try it now and the reason i gave him as much HP as ruby was because of omnislash as it can deal a hell of alot of damage so i figured that but i might make it lower.
 
This is where you should be changing things:

scene82ja1.png


If you do this, beating the first formation (against Guard Scorion) will take you to formation 01 6c (Air Buster).

Hi im new here. I'm currently modding my FF7 psx version. And I don't know how you guys can decipher the hex code. How do you guys know what & where to change?
 
Last edited:
See here. It takes a while to work out what you're doing with hex editors, but it's not too hard.  :wink:

However, there isn't much need for them any more (at least when editing enemies); there are a few things that no program can do in the scene.bin file yet, but most things can be done with Proud Clod (read the help file for AI editing) and Hojo.
 
I'm currently modding my FF7 psx version.
==

#1 @Kudistos Megistos, so after you edit whatever it is do, what do you do after that? how can you take your edited work and merge back to scene.bin? 

#2 @Kudisto Megistos & ff7rules, i want to know how you guys can replace the first scorpion boss for another boss of your pick? I've tried using the proud clod program, to edit the enemy formation. Am I doing this right? Because for some reason, the game screen gets glitchy, errored, and frozed.

http://img199.imageshack.us/img199/6576/71287934.jpg


#3 I really want to mod my own enemy "encounter" but it seems like it's not as easy as changing a few hex numbers.


btw, i'm reading the link you recommended (Kudistos Megistos).
 
Status
Not open for further replies.
Back
Top