Editing Bizarro Sephiroth and Seraph Sephiroth with Scenester

  • Thread starter Thread starter The Black-caped Man
  • Start date Start date
Status
Not open for further replies.
T

The Black-caped Man

Guest
I have been working with Scenester and Scene Reader to update my FF7 a bit(I wanted to create my own hardcore mode) but somethings weird:
1) Bizarro Sephiroth's HP CANT be edited. I guess this is cause scenester says he got 60.000 points. This comes out when adding all Hp of the parts together(Torso: 40k, Core 10k, Right/Left Element 4k each and Headpart 2k=60k). I wanted to ask if someone knows how to boost his Hp massively.
2) Why the hell cant Seraph Sephiroth's HP be boosted up? He has 80k from the start but no matter what i try it stays at 80k. I know that you can boost him by defeating Jenova Synthesis with KOTR(+80k) and by leveling up to Lvl 99(+30k for each char at lvl 99) which ends up in 400k. That would be enough but at Lvl 99 he is FAR too easy even if I boost ALL of hist stats to 255. Pls someone tell me how to boost Bizarro and Seraph with Scenester(or by hex editing if you give me a tutorial)
3) I noticed that attacks like Ultima Beam, Stigma and Deen cant be boosted much with Scenester: For example the Mg of my Bizarro Sephiroth is at 255 and Stigma only does about 2,4k dmg(which is an improvement of 800 points). I guess I will have to hex edit to further boost them so could someone pls explain me what exactly I should hex edit cause I'm quite a noob in hex editing.
4) Further I wanted to know how I can change the status effects that some attacks bring along: For example Super Nova CAN inflict confusion and silence but at a low rate. I wanted to know what I must do to make it inflict more status effects(like poison, blind, berserk) at a rate of 100%.
5) Further I wanted to know how I can change the effects and stats of weapons and armors(I know I have to edit the kernel.bin files and I even know that kernel5 is for weapons, 6 is for armors and 7 for materia or so, cant remember exactly but i will check it at qhimm wikipedia)
6) Also pls tell me how to make certain attacks target all party members(For example I want Pale Horse to be an all-target spell like in Saint Dragons video on youtube)
7) At last it would be so kind if someone tells me how to exchange entire attacks. I'd like to eradicate Seraph Sephiroths stupid fly up and fly down abilities and give some bosses some other attacks(like Ultima Weapon should have Ultima!)

So if I have to hex edit to achieve my goals pls tell me what and where I must change values.
THX for responding (I know i posted this in technical related too but i didnt know where it fits sry for that)
 
Check out the wiki (as you have). There is pretty much all the info. Bizarro's and Safer's HP is set in the AI script, as well as Jenova's arms. When editing with hex editor, editing the AI is a tediouis thing. Jenova's arms and Bizarro's HP is set by 2 bytes while Safer's is set by 3. Safer is ok but the other's are limites too 65535, 'cause onlt 2 bytes decides theier HP. Howerver you could change the oppcode so it'll read 3 bytes instead of 2.

If you download a hex editor the AI script is located at 0xE80. The 6 1st bytes are just pointers to where the different AI's begin after E80. The 1st enemy's AI script is always located 6 bytes after the start, counting the 1st as 0, thus 00 06 (0600 as it is read in the hex editor. Memory works this way). All the enemies AI you are looking for are always the 1st one starting at 0xE86.

The 1st section of every enemies AI are also pointers. Each pointer here are always, also, 2 bytes long. There are also always 16 pointers but 0xFFFF means no section. Most of the pointers will probably be 0xFFFF cause an enemy usually don't have more that 3 sections. The 1st pointer points to where the enemies setup is. It's always the 1st pointer and is always located at 0xE86 for the 1st enemy in the scene, and thats the section you want to edit. The setup pointer is always 0x0020 (or 20 00 as it reads in the hex editor).

And the start of the actual AI script is fr the 1st enemy always at 0xEA6. For Bizarro, Jenova and Safer this is the setup section, and it's here the HP is decided. In scene 234 (one of Bizarro's scenes) the main body's HP is decided at 0xF36. In a hex editor it would read: 61 40 9C. 61 indicates that 2 bytes are pushed to the stack of the AI script. In the case 0x9C40 (40000). You understand that is HP would be max 0xFFFF (65535). If you change the opcode to 62 it will push 3 bytes, thus allowing you to further increase his HP (max 0xFFFFFF or 16777215). HOWEVER if you change the oppcode (61 -> 62) you'll have to insert a byte. And that pretty much messes up the whole AI for all enemies in that scene. If you don't know what you're doing you shouldn't do this. I managed to do this, so if you want my files and edit 'em I can give them to you if you wish.

Safer HP calculation is a bit more complicated. It stores a temp variable: 320000. That variable changes value depending on how many characters are at lvl 99. Then Safer's HP is set to that value + the Jenova bonus if you used KOTR on her. But it's this value that you wan't to change. It's located at 0xEEC. And it already pushes 3 bytes so don't worry (62 pushes 3 bytes remember). You want to increase it to increase his HP of course (I changed it to 0x27100, or 00 71 02 as it reads in the scene).

The attacks are a bit easier to handle since they are always stored at the same place in each scene. The 1st attack begins at 0x4C0. All attacks are 28 bytes long and there are 32 attacks max. Here are a brief explenation, but most of it should be covered in the wiki.
Code: [Select]
Code:
2 of Safer's attacks:AC: AccuracyIA: Impact animation (usually only for physical)TA: Target AnimationMP: MP costCA: Camera movement???TG: TargetID: Attack's ID (usually only used for spells)TD: Type damage. 11 = physical 22 = magicalPW: Attack power. The one you want to alter to increase damage.RT: Restore type.SE: Status effect. 3F = 100% cause status 7F = 100% remove status.AD: Additional targets??NU: Number of times the attack is used in 1 commandST: Status AfflictionsEL: ElementSP: Special (reflectable, unblockable etch).AC|IA|TA>---<MP--|-----CA----------|TG|ID|TD|PW|RT|SE|AT|NU|----ST-----|-EL--|-SP--> FF 0B 00 FF 00 00 E2 00 FF FF FF FF 01 FF 11 18 FF 3F FF FF 00 00 00 06 00 04 FF FF (Physical Wing Attack. Has no name)FF FF 00 FF 00 00 FF FF FF FF FF FF 05 75 22 19 FF FF FF FF FF FF FF FF 00 00 FF FF Deen
 
Last edited:
Ok I understand most of what you say but somehow I cant find the data you sent me about Wing attack and Deen. They simply do not exist in my kernel file( I know that on qhimm wiki it starts with 1 so I opened Kernel1.bin instead of Kernel2. BTW since I am a bit nooby in Hex editing how do I locate the attacks? How should I know which bytes stand for which attack? I know that this is nooby but everyone must start at 0 knowledge. I tried to locate the bytes you sent me but in Kernel1(where the attack data should be stored) I cant find them. Oh and you said you integrated a third byte at Bizarros HP. Could you send me your code and tell me where I must replace the old one pls? thx godly
 
He, he. You have to look in the Scene. Safer's data is, as you know, in scene 232. It doesn't exist in the kernel. In the kernel all the attacks you can use is (Magic, Summons and E-Skills). The attack data starts at offset 0x4C0 in each scene. Or in other words byte nr. 1216 counting the 1st as 0. If you manage to make your hex editor read 28 bytes pr. line it's much easier to edit the attacks, 'cause each attack is 28 bytes long. Depending on the hex-editor it may not be possible though. Finding offset 0x4C0 shouldn't take too long, 'cause there are usually an address line in the editor (which u prop knew :D).

And I'm currently visting my parrents for Christmas :P. So basically I can't share anything, 'cause I didn't bring it. Sorry... However, if you want to try to insert a byte in the ID, you must increase all the pointers by 1 in Bizarro's pointer section, which I describes above (the length for the pointer section is the 1st section for each enemy's AI. It's always 16 x 2 bytes long, and it points to the offset to each section, counting from the beginning of the pointer section (phew)).

There aren't other enemies in the "Bizarro scenes" so you don't have to worry 'bout the AI offset pointers in the beginning (at 0xE80). But if there were, you'd have to increase those with 1 as well.

This is the easy part. The tedious part is to locate every "goto" opcode in the set-up section of Bizarro's AI. The parameters of those have to be increased by 1 as well. those opcodes are usually 70-72 and have 2 bytes as parameter, to indicate where in the section it'll jump to. If you have M4v3R's Scene editor v1.3.0 there is a AI viewer, which explains the opcodes.
 
OMG to you i must seem as the biggest noob youve ever seen thx a lot i found the data. :-D
Ok but pls also tell me how do I notice which bytes stand for which attack.
 
No worries! As you know the attack names are also stored in the scene. And it comes after the data. Between the names and the attack data are the attack IDs, which you shouldn't bother with. The names are actually readable in a hex-editor (if you can see ASCII signs as well), or you could just view the attack names in a scene editor (ex Hojo). The important thing is that the attack names are stored in the same order as the attack data. Safer's wing attack doesn't have any name, thus the 0xFF padding. If I remember correctly, Deen is the 1st attack with a name. If you know the order of which the names are lined up, the attack data is lined up the same way. The attack IDs as well.

Other ways of recognizing an attack is knowing the exact effect of the attack. Some attacks are just animation for instance, and will not ave any power or element etch (usually only 0xFF and 0x00 bytes). Attack that cause status effects will, of course, have data in the "Status" section of the attack.
 
God sent you to teach noobs like me THX THX THX

Ok I now know how to increase attack dmg and how to make attacks cause status disorders at a chance of 100% and I already tried it works thx.

However I still got some questions:
1)For example I wanted to make Pale Horse become an all-target spell (like in saint dragons vid) so I looked at some other all-target spells AT(additional target) value. I chose Heartless Angel and it said 00 so I changed Pale-Horses value from FF to 00 as well but the game crashed when Sephy tried to perform it. Do I have to change the target or the additional target value? And to what? 05 like Deen?
2) I wanted to make it so that Safer can perform his Wing attack twice and that it says:"Havoc Wing" when its performed(like from Kefka^^) but the NU value of Wing attack is FF. I checked out Jenova Birth's Laser attack since she can perform it up to three times but however laser's NU value is FF too........and I cant figure out how to make the game say: Havoc Wing. I guess its in the Kernel27(according to qhimm wiki Battle and Battle-screen text) but qhimm wiki has no description of it yet.
 
Last edited:
Oh and btw why is Bizarros HP only determined by two bytes? just wanna know it.
Oh yeah and how do I change enemy attack names(and animations)?
I read the Release of Hojo thread where you said that when I rename a spell with Teioh
it goes for enemy spells as well. However I'd like to make Safer cast Big Guard at the start
of the battle with the Big Guard animation but I want to give that spell another name
and I will make it cast Barrier, MBarrier, Haste and invincibility on him( I know how to add the status effects now thx to you)
Oh btw could you tell me if theres a list where the status effects and their bytes are on? I dont know which numbers stand for
which status effects and trying out takes too long
 
Last edited:
If you want an attack to target all, change the value in TG (see above) to 0x07.

To make the game print anything when Safer use his wing, you must insert a string in the AI script. 0x93 is the opcode. Then write the desired string and finish with 0xFF. It should appear right before he uses "wing" in the AI. I don't remember it's ID, but it was the 1st attack in the list was it not? Just check that ID in the ID list below the attack data. Lets call that ID XX XX. Now search for 61 XX XX 92 and you should find it. Most of the attacks in the game are tied to the animation (not the attack animation but the body animation) when the name is displayed. Palmer's attacks uses the string command to display it's name (mako gun or something) so you could look there to see how it's done. But keep in mind if you insert bytes (and a string requires lots of bytes) in the AI you have to update to goto parameters and the pointers as well. In other words it is tedious work with a hex editor.

Attacks you share with the enemy can be changed in Kernel2 yes. All others must be changed in the scene.

The ID in the attack data (see above) decides the animation for spells. But it doesn't simply help to change the ID for Wall to make the Big Guard effect. In fact it doesn't matter what you do to the attack data. You have to change the attack ID in the enemy data, the attack IDs after the attack data and in the AI script. This goes for all spells you share with the enemies. But for all other attacks you can simply change the ID in the attack data. I don't remember the ID for Wall but for Big Guard it is 0x4C. To find the ID for Wall simply check it where the Wall data is (in attack data). Let's call Wall's ID XX. Search for XX 00 in the enemy data and right after the attack data as well. In the AI search for 60 XX 92 (it should be an ctr+f function in the hex-editor). Now change all the XX values with 4C and voila! He uses Big Guard instead of Wall.

I don't have any list here. Try searching for "scene edit", "hardcore mod" or something smart. It should be somewhere.

EDIT: Marry Christmas btw :D!!
 
again big big thx for your advices :-D

I now have nearly everything I wanted except for the Havoc Wing display(Im too tired of changing all the pointers and everything) and the Bizarro Torso having over 65535HP. So when you return pls send me your Bizarro HP data I would really appreciate that.
Oh and could you tell me if it's easy to exchange entire attacks? For example if I would want to delete Safers Dispel spell and insert some attack instead? Or is it possible to even ADD new attacks(For example to make Bizarro use Ultima or Comet 2)? Do I just have to add the 28 bytes at the end of the attack data?(I guess not) At last I would like to know if its possible to delete safers stupid fly up/fly down abilities(again I guess not)

Merry X-mas
 
You can do whatever you want, if you have the knowledge and patience that is. Most of when and how the attacks are executed is decided in the AI. To add an attack, you don't have to insert any bytes at all in the enemy data, attack data etch. Depending on how you want to use them, you might want to insert bytes in the AI. Lets say ID 1 is XX 00 and ID 2 is XX XX (examples). When ID 1 is executed it will (in most cases) be like this in the AI: 60 XX 92 (00 not included), and for the 2nd: 61 XX XX 92. The target is always decided before the execution, but sometimes the attack is stored as a temp. variable. In the last 3 fight that won't occur (I think :P), thus always having the same structure as in my examples. All the spells you share with the enemy (magic and e-skills) has the 1st structure: 60 XX 92, and the rest the 2nd: 61 XX XX 92. As you see if you want to switch an unique attack with a "shared" spell you have to insert a byte and 60 -> 61. But it's easier to switch the unique with a "shared": 61 XX XX 92 --> 61 XX 00 92.

If you want to switch an attack with your own, just overwrite the 28 bytes after the last attack in the attack data as you want the attack to be, though this isn't necessary if it is a "shared" spell (magic and e-skills). Just in case though you should do it anyway. I do lol. Then you have to add an unique ID in the enemy data and in the ID list after the attack data. If you want the attack to be a "shared" type you must know the exact ID instead of making up one. So It'll be a XX 00 type ID.
In the enemy data you have to add (overwrite a 0xFF byte. Only in the AI is it possible to insert bytes without messing up the scene) a body animation to the attack as well. This isn't hard at all. Most enemies have 2-3 body animation. The body animation has just 1 byte and is tied to the corresponding attack in the same order as they are stored. The most common IDs here are 0x03 and 0x04. The 1st is often tied to a physical, or the most common body animation etch. I think 0x03 is tied to Safer's "wing" (rusty memory), and that Deen and Pale Horse is tied to 0x04. As you see Safer has many body animation (he should have 0x0D, 0x0C etch too).

I read your reply in my topic. Never thought of that lol. Thank you I'll check it out when I return home and send you those files  :-D.
 
Ok although I should know them some things somehow confuse me a bit (pls help me the 100th time^^):
You said in order to interchange attacks (like Wall with Big Guard) I have to change the ID in the ENEMY DATA, RIGHT AFTER THE ATTACK and in the AI. I found Wall's ID in the AI(its at 1069)but where exactly are the other places? What do you mean with "enemy data" and "right after the attack data? I know that after the attack data there are thousands of FFs and eventually some numbers come again. I found Wall's ID there somewhere and exchanged it with 4C(for Big Guard) but as the battle starts the game crashed. From where to where does the enemy data reach and where is exactly is "after the attack data"?
BTW are the attack IDs the ID values in your list at the beginning of the thread? I just wonder cause you said Big Guard is 4C. I checked scene 24 where an enemy thats able to cast big guard is located an there it says 04 :?. And where do I have to add the body animation for new attacks?

Ok I now know these things:
In order to add new attacks I have to overwrite the first 28 FF bytes after the last attack, then in the "enemy data" I have to add an ID and a body animation. Where can I see where the body animations are? and where do I have to add the ID?

I know this will sound meganooby to you but if I can get my ideal FF7 game with it its worth it^^ :-D
 
Enemy data comes before the attack data. Then the attack ID list.

If you look in the wiki (scene info) find the 'Data file format' table (click here lol). You'll see the 1st enemy data is at offset 0x298. And there is a format explanation table further down. At offset 0x38 of each Enemy data there are 16 unknown bytes (as you see). Followed by 32 bytes which are attack IDs (It's says 16 on the wiki. Dunno why?). Those 16 unknown bytes are the "body animation IDs".

If you look back at the 'Data file format' table, you'll see at offset 0x840 there are 32 bytes with attack IDs, which are right after the attack data section. THESE IDs MUST MATCH THOSE IN THE ENEMY DATA!! [/important] If there are more than 1 enemy in the scene, the IDs will be in order according to what ID is 1st in the 1st enemy and so on, to the last enemy's last attack ID. It's also in order with the attack data and the attack names. In other words, all the attacks always follows the same order in all those sections. I can't say 100% sure 0x4C is the ID for Big Guard but I'm pretty sure. If It says '4C 00' for the ID in the enemy data, '4C 00' in the attack ID list (after the attack data) and '60 4C 92' in the AI all places where the attack is executed, it should work.

The ID for Wall could be stored another place as well. In the enemy data table (on wiki) you'll see there are additional 8 unknown bytes at offset 0x94. These are attack ID for attacks used in the manipulation menu, and the 1st ID here is used in 'Berserk' status. You might want to change these accordingly to how you changed the IDs, but these aren't necessarily in the same order (Safer can't be maniped or berserked though).

The ID in the attack data for enemy skills doesn't match the actual attack ID. But for magics it does. I think ID 0x00 04 (or 04 00 as read in a hex editor) is Life or something. I know 0x00 = cure, 0x01 = Cure 2 etch.
 
ok I know youre tired of all my thankings but thx thx thx^^(Now I got it)

Unfortunately I have a new question: Why is it not possible to make Wall(or Big Guard doesnt matter) cause additional status affections?
I finally found a list with all the values and I wanted Safers Wall spell to cause Barrier, MBarrier, Mirror, Regen and Invincibility on him. The code should be 00 80 17 01 if I am right on this(pls correct me if not). I changed the code but it didnt work.
Do I have to change the entire effect of Wall in the Kernel.bin1? If so I already tried that but unfortunately ff7dec is not able to compress my decrompressed kernel files again(I created another thread for this in the game tweaking section).
What do I have to do to make Wall(or Big Guard) cast Barrier, MBarrier, Mirror, Regen and Invicibility(oh yeah and peerless, whatever that is I wanted to try out^^)on Safer Sephiroth in Scene 232?
 
That is correct. For all "shared" spells (you know what i mean right? magics e-skills) it doesn't matter what you do to it in the attack data in the scene. The effect will be the same. Do it in the kernel. keep in mind that Big Guard will have the same effect on you as well.
That code looks correct, but I haven't anything to look it up with. Not 100% sure.
 
Ok I changed the Wall effect in the Kernel and finally I was able to recompress the Kernels to KERNEL.bin again. It worked perfectly, now Wall has the effect of Barrier, MBarrier, Mirror, Regen and Invicibility. To prevent the game from being to easy I just wont use Wall anymore I do it with Big Guard, so Safer is the only one to cast the ultimate barrier.

Am I right with this: To add a new attack(lets say I give Safer Comet2) I must:

- Check the ID of Comet2(which I should find at King Behemoth) and copy the 28 Bytes of Comet2 and overwrite the first 28 Bytes after the last attack of Safer.
- Add the ID of Comet2 at the end of the attack ID list(which the table at wiki showed me)after the attack data.
- Add the ID of Comet2 in the enemy data after the last attack ID(which are after the body animation section right?), lets say its 8B, then I write 8B 00 right?
- Add a body animation after the last body animation of Safer(I think the spell animation of Safer, meaning Shadowflare, Wall, etc must be 05 so do I just have to write 05 after the last body animation byte?)
EDIT: And yeah I know what you mean with shared spells^^ :-D
 
Last edited:
Sounds right. Keep in mind that you mustn't insert bytes just overwrite. And he will not use it if you don't add it in the AI. But if you don't want to mess with AI I suggest you just swap Comet2 in with another attack. Change the ID for comet2 with another one. In Enemy Data, ID list and in the AI all the places the attack you want to swap is executed (search for the ID followed by 92).
 
OK so I overwrite the attack ID of(lets say his silly Dispel spell) with Comet2 in the enemy data's attack ID list, in the attack data I overwrite the complete 28 bytes of Dispel with those of Comet2, in the attack ID list after the attack data I overwrite the 2 dispel bytes too with Comet2's ID followed by 00 and in the AI I search for 60 XX(stands for dispel) 92 and exchange XX with Comet 2 is this all right?
So the body animation will be the one that the game had for displ right?
 
Last edited:
Great! It works! I owe you one :-)

EDIT: Oh F***!

Ok i successfully exchanged one of bizarros sephrioth shocks with ultima that worked perfectly.
I tried Comet2 in place of Seraphs Dispel and did it exactly the same way. When he tries
to perform it it says: Seraph-Sephiroth ran outta MP!!! And that although we know that
Seraph has infinite Mp. I thought ok after the next break I'll give him a turbo ether.
I did and again it said he ran outta MP! Whats going on here? pls help me out
 
Last edited:
Status
Not open for further replies.
Back
Top