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.
No, the one on the world map is spelt with an er instead of ar and he's in scene58. I only found out myself half an hour ago.
 
No, the one on the world map is spelt with an er instead of ar and he's in scene58. I only found out myself half an hour ago.
So hes the one on the world map then, hes that one. So wheres the one in corel prison :S Just a thought you can only go in the prison at Corel on Disc 1 yeah? you can't access Cactuar Island untill disc 2. what if its the same one but because you can't access it on disc 1? You would never know because you can't get on the Island untill disc 2. I Might test this and spawn the highwind on disc 1 with gameshark codes and see if i get my modded beast of a cactuar on the Island. Also what code edits the enemys size or is that unknown?
 
The Cactuar in Corel Prison (about whom I'd completely forgotten) is also much weaker than the one on the World Map.

The one in this video is definitely the one from scene58, and I'd imagine that the size increase might have something to do with Cait Sith's "Transform" attack, since he starts off normal size and then gets bigger, but maybe not.  gjoerulv did something similar with the Cactuer, maybe you could ask him how he did it?
 
The Cactuar in Corel Prison (about whom I'd completely forgotten) is also much weaker than the one on the World Map.

The one in this video is definitely the one from scene58, and I'd imagine that the size increase might have something to do with Cait Sith's "Transform" attack, since he starts off normal size and then gets bigger, but maybe not.  gjoerulv did something similar with the Cactuer, maybe you could ask him how he did it?
I found the other Cactuar its in scene 65 so that clears that up. You think Gjoeruly would mind if i asked him?
 
Ok thanks ill ask him if giving him transform doesn't work although im sure it will. Do you have a list of the Battle IDs or know where i can get 1? Also im gonna start work on rescripting Sephiroth soon i think i now have a vague idea what im doing after looking at wiki. Im just not sure for certain where sephiroths General Counter bit is. i know its located at offset  0x04 General Counter but im not certain which byte controls clouds counter attack, and i just wanna say dude thanks for helping me and answering all my questions.
 
Would that I could find a list of formation IDs! I had to search for battle opcodes in meteor  :-o

Have a look at Sephiroth's AI with scene edit. It's not perfect and it doesn't let you edit AI (that still has to be done with a hex editor :cry:), but it's useful for finding things like this.
 
Would that I could find a list of formation IDs! I had to search for battle opcodes in meteor  :-o

Have a look at Sephiroth's AI with scene edit. It's not perfect and it doesn't let you edit AI (that still has to be done with a hex editor :cry:), but it's useful for finding things like this.
Wow...... This has saved me loads of time! Do i just edit it in wordpad or whatever then dump it back in? Also how do you find the opcodes for the battles on the world map in meteor? I can view the field files after splitting and all the dialog and maps. will the battle IDs be the same for both the PSX and PC version im guessing so.
 
You still have to edit everything manually with a hex editor like you did before, I'm afraid. That includes changing all the pointers as well (which is a pain).

Meteor can't do anything with the world map; AFAIK very little is known about how the world map works.
 
You still have to edit everything manually with a hex editor like you did before, I'm afraid. That includes changing all the pointers as well (which is a pain).

Meteor can't do anything with the world map; AFAIK very little is known about how the world map works.
Ah well maybe one day. Yeah editing them manually is hard work but very rewarding if you get the result you want im hoping to have him using 1 more attack than ususal and him not dying when cloud counter attacks or removing the counter attack altogether. I heard theres a glitch with Sephiroth that you can't change his HP im guessing this because its scripted to be that much.
 
Sorry to double post again but i found this too funny not to post. Well i guess this is what i get for just playing around with stuff i know nothing about. Tried to change Sephiroths general counter and well look what happened! Not what i wanted to see!
 
ooooopswq4.png


good job i backed it up haha.
IT'S MISSINGNO!  :-o
 
Sorry to double post again but i found this too funny not to post. Well i guess this is what i get for just playing around with stuff i know nothing about. Tried to change Sephiroths general counter and well look what happened! Not what i wanted to see!
 
ooooopswq4.png


good job i backed it up haha.
IT'S MISSINGNO!  :-o
LMFAO hes back oh noes! I actually

Anyway My good friend Hotdog made an amazing discover today which i think has helped us all he found the opcodes for the battles without meaning to!
Recently He found a Gameshark cheat code site for ff7 thought nothing of it. But today hotdog discovered something this list is the battle opcodes! http://viper.shadowflareindustries.com/index.php?doc=ff7enemieshtml hows this work? Well you see for example i will use safer sephiroth he has 2  battles i don't know why look at the code on the left its 039C   Safer Sephiroth Big deal right well guess what Safer Sephiroth-battle ( 00, 9C, 03 ) im sure you will get the idea how it works now and if this has been discovered before sorry i didn't know. So now we have the list thanks to Viper for these codes!
 
Last edited:
I have a question about Sephiroths script how do i know which part or code is used for clouds counter when Sephiroth uses cut. I know it will be located in the general counter part aswell which helps is it this byte and offset that controls whether or not cloud counters Sephiroths cut or not?  (0x001E | 60.PushByte(00) post battle i think) im guessing its this, what can i do to change it?
 
Actually it's in Sephiroth's Main Script.

Code: [Select]
Code:
0x0000 | 12.PushValue(0000)0x0003 | 02.LoadAddr(2060)0x0006 | 90.SetAddr0x0007 | 12.PushValue(0020)0x000A | 02.LoadAddr(2050)0x000D | 01.LoadAddr(4060)0x0010 | 80.MaskSet0x0011 | 60.PushByte(10)0x0013 | 40.IfEqual0x0014 | 90.SetAddr0x0015 | 12.PushValue(2070)0x0018 | 02.LoadAddr(0020)0x001B | 90.SetAddr0x001C | 60.PushByte(20)0x001E | 61.PushWord(03BF)0x0021 | 92.RunCmd1:0x0022 | 12.PushValue(2060)0x0025 | 02.LoadAddr(0020)0x0028 | 90.SetAddr2:0x0029 | 12.PushValue(2070)0x002C | 02.LoadAddr(0000)0x002F | 90.SetAddr3:0x0030 | 60.PushByte(01)0x0032 | 60.PushByte(00)0x0034 | 92.RunCmd0x0035 | 73.ScriptEnd
This section that I've isolated says
1. set self mask to opponent
2. choose target as self
3. opponent attack self

His death counter will then activate, ending the battle. If you do 0 damage (almost not possible), then his general counter will activate, ending the battle.
 
OH I SEE NOW! thanks alot man im pretty sure i now know what im doing :wink: Also i tried stealing form him and that ended the battle lol
 
Sorry to bother you again but i have a new problem. I added some script to sephirioth and like i expected the file got bigger so i cut down some of the padding. The file says its smaller (6 kb) however when i use scenereader to put it all back it says in Cdmage the file will be trundicated. Is there anyway around this as i thought deleting some of the padding added by the script i added would of worked? Also this IS sephiroths script right? I'm sure it is, if not I'm clueless.

http://www.imagenerd.com/show.php?_img=seps_script-VPD3r.png


EDIT: Problem solved!!! I have to delete the exact amount of FF from the bytes i added no more no less hopefully have a vid of the new final battle soon.
 
Last edited:
Sorry to triple post but i have some news on sephiroth. I have managed to do 2 things i wanted to do 1 make it so he dies like a regular enemy which is good and make it so he doesn't use cut. I'm now in the process of wanting to give him Ultima and Deen. Gjoerulv (sorry if i spelt your name wrong) has been helping me alot with this so big thanks goes out to him and everyone else who's helped me thus far. I have a new problem and i know exactly why it is i think, the headers are wrong again. I thought i got how you worked them out but i guess not. Anyway back to the sephiroth script i have it so i want to cast either deen or ultima at random but it doesn't work he just does nothing just like Cactuar did. So thought id post what Ive done so far and see if anyone can tell me if I'm doing the right things or not. I will produce a video of what i have done so far if it is requested :)

http://www.imagenerd.com/uploads/sepsai-9QzOy.png

http://www.imagenerd.com/uploads/sephelp2-i3xdi.png

This is all confusing stuff to me but I'm gonna do it.
 
Last edited:
#1. Do not multi-post unless the topic you're posting in is NOT on the first page of topics.

#2. That first image isn't even showing the same scene. If that's OK then don't worry about it, but I thought you wanted to change the final 1-1 battle. If that's the case it'll need to be in the same scene.


Yes your headers are wrong. You need each section to point to the byte AFTER the previous section's 73h.

20 00 50 00 91 00 5B 00 FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF A4 00

Your script is all wrong too. You've got a jump in there to script address 0x8601?! You also have an absolute jump back to the beginning of the script. Basically, your jumps are all wrong.
Jumps are, unlike the header, script-relative addresses stored in Big-Endian (Most significant [greatest] value last). It's better for you to write all the script out and see the actual addresses within the script. Those are the addresses you'll want to jump to.
ex:
Init Script:
0x00: 12 60 20
0x03: 10 A0 20
...
Main Script:
0x00 12 70 20
0x03 10 A0 20
0x06 60 01
0x08 80

These are the addresses you'll want to jump to. Not "jump this many bytes ahead" or "jump to this address within the collective script". You can't jump scripts and do not create a loop you can't get out of. You put that "Jump to beginning" in your init script. Bad idea. The battle will never get farther than Sephiroth performing something over and over. That is assuming, of course, that it gets past that "JZ 0x8601".
I don't really have the time at the moment to attempt to correct it. Just know for now that it's wrong.
 
#1. Do not multi-post unless the topic you're posting in is NOT on the first page of topics.

#2. That first image isn't even showing the same scene. If that's OK then don't worry about it, but I thought you wanted to change the final 1-1 battle. If that's the case it'll need to be in the same scene.


Yes your headers are wrong. You need each section to point to the byte AFTER the previous section's 73h.

20 00 50 00 91 00 5B 00 FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF A4 00

Your script is all wrong too. You've got a jump in there to script address 0x8601?! You also have an absolute jump back to the beginning of the script. Basically, your jumps are all wrong.
Jumps are, unlike the header, script-relative addresses stored in Big-Endian (Most significant [greatest] value last). It's better for you to write all the script out and see the actual addresses within the script. Those are the addresses you'll want to jump to.
ex:
Init Script:
0x00: 12 60 20
0x03: 10 A0 20
...
Main Script:
0x00 12 70 20
0x03 10 A0 20
0x06 60 01
0x08 80

These are the addresses you'll want to jump to. Not "jump this many bytes ahead" or "jump to this address within the collective script". You can't jump scripts and do not create a loop you can't get out of. You put that "Jump to beginning" in your init script. Bad idea. The battle will never get farther than Sephiroth performing something over and over. That is assuming, of course, that it gets past that "JZ 0x8601".
I don't really have the time at the moment to attempt to correct it. Just know for now that it's wrong.
Thanks for all this help NFITIC1 and sorry about posting multiple times i won't do it again. I got really confused with the "86 01" bit i thought i had to put the offset where the attack ID was but now i know thats definitely not the case lol. I see this is gonna be one of those things that takes months to grasp, All i get now is a black screen no battle i can't understand why though should i quit trying and try something else? Just a bit dishearted by all this thought i really had it  :|
 
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.

And you really shouldn't getting into loops. Unless you have some mechanic that checks if the loop should end you should try it. But this loop wasn't supposed to be was it? :P

ok enough of that.

1st as I see in the 2nd picture you shouldn't insert ultima between Cut and Done-in. Insert it at the end. Otherwise Ultima will get data from Done-in and Done-in will get data from ultima. Always store the attacks in the same order in attack data, attack IDs and attack names.

2nd why does the AI start at another offset at edited one?

3rd offset 0x1218 in the edited one needs to be A0h, not 0Ah. 20A0h flopped is A020h. (20 A0 -> A0 20)

There are other issues (where does setup end for instance).

Here is some image help:
5555-wfnzn.jpg


7777-A1NO7.jpg
 
Status
Not open for further replies.
Back
Top