Author Topic: Unused/useless variables safe to use in savemap? (PSX)  (Read 27262 times)

Roden

  • *
  • Posts: 125
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #50 on: 2014-10-27 06:07:53 »
If you're just setting HP to a certain amount for specific enemies then that's probably the easiest thing. If Enemy ID = #### would probably do the trick; actually, if that works then you might not even need the globalvar thing after all (unless they're only to get more HP after a certain criteria is fulfilled on the field).

Here's that OpCode list: http://www.mediafire.com/view/umiqacyau66u9c9/opcode_list.txt
Thanks, that list is awesome. Yeah it would definitely be via field criteria so I need the variable.

I've been trying to code it  (while looking at Proud Clod AI to get some ideas), but having some problems:

For example, if I set this command at the top of the If statement:  "AllOpponentMask.HP <- 82"  like so:

AllOpponentMask.HP <- 82
If ( (LocalVar:01C0 == 0) )
{
   LocalVar:0000 <- 80
   TempGlobal <- &GlobalVar(0000)
   Unknown(2018) <- GlobalAddress
   If ( (GlobalAddress > 50) )
   {
      Self.HP <- 82     //just ignore this test one obviously
      LocalVar:01C0 <- 0
   }
   SCRIPT END

It works fine and guard scorpion dies quickly. But if its inside the If statement it doesn't work, only the display message works. If I put self.hp = 255, for example, works fine outside if statement, but inside it doesn't work. Is it something to do with Unknown(2018)? Or have I screwed up a line somewhere? Seems odd only the display message works..

Of course this script is just for testing, I will want to use a global variable not hardcoded value, I assume that will let me drop in a higher value 16 bit number rather than 255?

sithlord48

  • *
  • Posts: 1632
  • Dark Lord of the Savegame
    • View Profile
    • Blackchocobo
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #51 on: 2014-10-27 12:18:06 »
Quote from: Roden
I will want to use a global variable not hardcoded value, I assume that will let me drop in a higher value 16 bit number rather than 255?
then you better put two bytes together to make it 16 bit in size. ;)

Roden

  • *
  • Posts: 125
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #52 on: 2014-10-27 13:27:07 »
then you better put two bytes together to make it 16 bit in size. ;)
Well I haven't got to that part yet, I'm just trying to get the If statement working for that assignment statement first. Maybe I screwed up something in-between the lines or something, as when I was removing the multiplication symbol from Sega Chief's code, I might of took something necessary out, even though the decompiler still reads it OK. That might explain why the display message part works OK as its just one line (93) hard to screw that up :P

Sega Chief

  • *
  • Posts: 4086
  • These guys is sick
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #53 on: 2014-10-27 15:46:18 »
It might be the method being used to adjust HP. One thing you should do is have an English scene.bin you can open up and have a look at the AI in; I learned a lot from looking at the default game's enemy AI and how they work. So for HP, I looked at how Bizarro and Safer determine and adjust their HP before the battle starts (because it rises/drops depending on previous battles, player level, etc.)

This is a portion from a test group I had for adjusting enemy stats; I can confirm this works in the scene.bin, but the enemy is applying this to itself (which is why it uses Self.) so you'd need to use a different mask.

Code: [Select]
13 01A0
61 2710
90
12 2060
13 4180
80
03 01A0
90
12 2060
13 4160
80
02 2060
03 4180
80
90

Which looks like this:
LocalVar:01A0 <- 10000
Self.MHP <- LocalVar:01A0
Self.HP <- Self.MHP

Thing to note there is that we're using 61 instead of 60 for the number being pushed into 01A0. We can't put a number like that into [1][80] because it's a one-byte address (and we can't get battle to read [2], which is where 2-byte stuff is read from). For stats like Strength and Magic Attack, you can apparently just push a value in directly but enemies I've seen do it this way for HP. What we need to do now is change the mask so that it applies to the enemy. There's two ways to try, but one I've not tested yet:

Code: [Select]
Enemy ID
12 0100
02 2050
02 4120
80
60 16 [Scorp's Enemy ID]
40
90

By Bit (untested)
12 0100
60 03
87
90

With that loaded into the 0100 variable, you'd then replace the 2060s in this code with 0100 for:
LocalVar:01A0 <- 10000
LocalVar:0100.MHP <- LocalVar:01A0
LocalVar:0100.HP <- LocalVar:0100.MHP

Ideally, if the second one works (Bit) then it could be applied to any single enemy. Give it a whirl and see what happens; but if it doesn't work inside the IF thing then there must be something wrong with the way I set it up originally. You could perhaps get rid of the top IF bit because pre-battle only runs once so that part is now obsolete.

Roden

  • *
  • Posts: 125
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #54 on: 2014-10-27 16:03:48 »
It might be the method being used to adjust HP. One thing you should do is have an English scene.bin you can open up and have a look at the AI in; I learned a lot from looking at the default game's enemy AI and how they work. So for HP, I looked at how Bizarro and Safer determine and adjust their HP before the battle starts (because it rises/drops depending on previous battles, player level, etc.)

This is a portion from a test group I had for adjusting enemy stats; I can confirm this works in the scene.bin, but the enemy is applying this to itself (which is why it uses Self.) so you'd need to use a different mask.

Code: [Select]
13 01A0
61 2710
90
12 2060
13 4180
80
03 01A0
90
12 2060
13 4160
80
02 2060
03 4180
80
90

Which looks like this:
LocalVar:01A0 <- 10000
Self.MHP <- LocalVar:01A0
Self.HP <- Self.MHP

Thing to note there is that we're using 61 instead of 60 for the number being pushed into 01A0. We can't put a number like that into [1][80] because it's a one-byte address (and we can't get battle to read [2], which is where 2-byte stuff is read from). For stats like Strength and Magic Attack, you can apparently just push a value in directly but enemies I've seen do it this way for HP. What we need to do now is change the mask so that it applies to the enemy. There's two ways to try, but one I've not tested yet:

Code: [Select]
Enemy ID
12 0100
02 2050
02 4120
80
60 16 [Scorp's Enemy ID]
40
90

By Bit (untested)
12 0100
60 03
87
90

With that loaded into the 0100 variable, you'd then replace the 2060s in this code with 0100 for:
LocalVar:01A0 <- 10000
LocalVar:0100.MHP <- LocalVar:01A0
LocalVar:0100.HP <- LocalVar:0100.MHP

Ideally, if the second one works (Bit) then it could be applied to any single enemy. Give it a whirl and see what happens; but if it doesn't work inside the IF thing then there must be something wrong with the way I set it up originally. You could perhaps get rid of the top IF bit because pre-battle only runs once so that part is now obsolete.
Thanks for the code, many cool things to learn from trying this out! I'll do it shortly.

And yes, I'm already looking through scene.bin. I'll also just mention again that the Guard Scorpion's HP WAS lowered when I didn't use your If statement, does this still fall under "It might be the method being used to adjust HP?" would it need to be different method just because its in that if statement?

Sega Chief

  • *
  • Posts: 4086
  • These guys is sick
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #55 on: 2014-10-27 17:27:45 »
I'm not sure. I usually copy the game's layout for doing things to avoid potential issues popping up so it's worth a shot (but it's probably something to do with the If). It's also handy for learning how to put values into variables and then pushing the variable into different things; gives you more control over what happens. You also want to adjust MaxHP which is treated as a separate value from CurrentHP, otherwise things like General Counters (a lot of which operate based on what % of HP a boss has left) will be out of whack. And you especially want to do it if you're setting CurrentHP higher than it was originally.

Roden

  • *
  • Posts: 125
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #56 on: 2014-10-27 20:47:16 »
Yep, I was just playing with HP only and not MaxHP so I could get the basics down first.

I can report gladly that all the code above works (as I thought it would). Excellent! While I understand Enemy ID, I'm not sure I quite understand what is Bit 3? Is it monsters from the area you are fighting in or something? How does it only affect Guard Scorpion?

This is my code (setting HP to 5):

LocalVar:01A0 <- 5
LocalVar:0100 <- FlagBit(3)
LocalVar:0100.HP <- LocalVar:01A0
SCRIPT END

Now for the big test, throw it into an if statement haha. I haven't had any luck with this at all previously. Maybe with the enemy ID located in a variable it can work this time :)

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #57 on: 2014-10-27 20:49:48 »
There are 8 bits in a byte.

Any one of those 8 bits, numbered 0-7 can be turned on.  Bit 3 is the 4th bit.  0000X000
Before you tackle this stuff you will need to understand the basics of programming.
« Last Edit: 2014-10-27 20:52:00 by DLPB »

Sega Chief

  • *
  • Posts: 4086
  • These guys is sick
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #58 on: 2014-10-27 21:11:07 »
I forgot to say about the bit thing. For Jenova BIRTH's AI, she puts Flagbit 0, 1, and 2 into three separate variables and these have her attack each separate party member during a 'wave' of laser or w-laser. Later, I saw something in another AI where it targeted other enemies using bit 3, 4, etc. My hunch is that from 3 onwards it's enemies, problem is there can be 6 enemies on the field which is one too many for a byte. I'm trying to track down that enemy again so I can have a closer look at it.

Edit: Found it, was in Elena's Death Script

Code: [Select]
02 21A0
60 00
40
70 00C6
12 21A0
60 01
90
93 Reno “Let's call it a day.”
12 2070
02 2060
90
60 20
61 0164
92
12 0000
60 04
87
90
12 0000
10 4020
80
60 00
90
12 0000
10 4023
80
60 00
90
12 0000
10 4022
80
60 00
90
12 0000
10 4024
80
60 00
90
12 0000
60 05
87
90
12 0000
10 4020
80
60 00
90
12 0000
10 4023
80
60 00
90
12 0000
10 4022
80
60 00
90
12 0000
10 4024
80
60 00
90
12 0000
60 06
87
90
12 0000
10 4020
80
60 00
90
12 0000
10 4023
80
60 00
90
12 0000
10 4022
80
60 00
90
12 0000
10 4024
80
60 00
90

0x000 If ( (Unknown(21A0) == 0) )
0x000 {
0x009 Unknown(21A0) <- 1
0x00F Display String: "Reno “Let's call it a day.”"
0x02C TargetMask <- Self
0x033 Perform("(Report)"[0164], EnemyAttack)
0x039 LocalVar:0000 <- FlagBit(4)
0x040 LocalVar:0000.Flag:Unknown(00000001) <- 0 (Cure)
0x04A LocalVar:0000.Flag:Enabled? <- 0 (Cure)
0x054 LocalVar:0000.Flag:Unknown(00000004) <- 0 (Cure)
0x05E LocalVar:0000.Flag:MainScriptActive <- 0 (Cure)
0x068 LocalVar:0000 <- FlagBit(5)
0x06F LocalVar:0000.Flag:Unknown(00000001) <- 0 (Cure)
0x079 LocalVar:0000.Flag:Enabled? <- 0 (Cure)
0x083 LocalVar:0000.Flag:Unknown(00000004) <- 0 (Cure)
0x08D LocalVar:0000.Flag:MainScriptActive <- 0 (Cure)
0x097 LocalVar:0000 <- FlagBit(6)
0x09E LocalVar:0000.Flag:Unknown(00000001) <- 0 (Cure)
0x0A8 LocalVar:0000.Flag:Enabled? <- 0 (Cure)
0x0B2 LocalVar:0000.Flag:Unknown(00000004) <- 0 (Cure)
0x0BC LocalVar:0000.Flag:MainScriptActive <- 0 (Cure)
0x0C6SCRIPT END

From the look of it, it pushes FlagBits into the variable and then uses that to target them for disabling their Main script so that the battle ends when one 'dies'. Thing is, it looks like it starts from 4 and not 3. Not sure why, but I do know that player characters are 0, 1, and 2. I assumed 3 would be next. Try replacing the 3 with a 4 if it doesn't work. I remember reading that there's another actor, something to handle camera, but that's just a guess for why it jumps from 2 to 4 here (although Elena did originally have two placements on the field to handle her Row jumping; maybe it's a left-over?)
« Last Edit: 2014-10-27 21:23:23 by Sega Chief »

Roden

  • *
  • Posts: 125
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #59 on: 2014-10-27 21:29:09 »
I'm using bit flags in my mods already (said it in my first post here), just asking how it relates to this battle script.

Actually, I may have made a mistake in testing "by bit" by using wrong ISO, it doesn't seem to function now. But the enemy ID one works fine though, I'll see if I can retune it by checking out what Safer Sephiroth does.

Edit: Ah, right, I'll try using bit 4 in a moment to see if that has any affect.

Edit 2: Excellent, I got the If statement working with this code (modified from Sega Chief's original code)

LocalVar:01A0 <- 5
LocalVar:0000 <- 80
TempGlobal <- &GlobalVar(0000)
If ( (GlobalAddress > 50) )
{
   LocalVar:0100 <-  (ActiveMask.EnemyID == 22)
   LocalVar:0100.HP <- LocalVar:01A0
   Display String: "test"
}
SCRIPT END
« Last Edit: 2014-10-27 21:41:30 by Roden »

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #60 on: 2014-10-27 21:47:18 »
OK, now I need to contribute here. :)

I forgot to say about the bit thing. For Jenova BIRTH's AI, she puts Flagbit 0, 1, and 2 into three separate variables and these have her attack each separate party member during a 'wave' of laser or w-laser. Later, I saw something in another AI where it targeted other enemies using bit 3, 4, etc. My hunch is that from 3 onwards it's enemies, problem is there can be 6 enemies on the field which is one too many for a byte.

Flagbit is just the command for turn on bit X. OpCode 87 turns on bit pop0 of a 32 bit value. Since the last push was the value 4, that's the byte that's turned on:
Code: [Select]
00000000 00000000 00000000 00010000This gets stored as a word value because the "LDA" command was issued via 12 which tells the STOR command to read it as a two-byte value.

Further, 0-2 are player characters (0 is top, 2 is bottom in the menu)
"actor" 3 doesn't really exist and shouldn't/can't be manipulated in this way.
4-9 are indeed enemies 0-5 as indicated in Proud Clod's formation menu. It's a little unsafe to refer to them this way, but so is referring to them by IDs in the case of multiple instances.
Other values can't be "MASK"ed by command 80 and are ignored.

Finally, 4020, 4023 and 4022 are, in no particular order (mostly because I'm still not sure which is which), "ATB running/can counter attack," "Targetable," and "Active". Only turning off Active will flag this as "defeated", but there are other reasons for turning off the others as well. Mostly camera related.

Sega Chief

  • *
  • Posts: 4086
  • These guys is sick
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #61 on: 2014-10-27 22:29:43 »
Cheers for the info, NFITC1. Is there a safer way to refer to enemies, though? Only other thing I can think of just now is Active Formation which Bizarro uses when getting the stats of it's different parts sorted out.

Roden

  • *
  • Posts: 125
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #62 on: 2014-10-27 22:39:42 »
I was planning to pass value from bank1 var 81 (via field scripting) to refer to enemy ID (I tested it with regular variable and it works, so I assume that would work). Most bosses aren't multiple parts..and there could be special exceptions for them. Though I'm not sure 1 byte is enough to refer to all enemy IDs?

Sega Chief

  • *
  • Posts: 4086
  • These guys is sick
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #63 on: 2014-10-27 23:04:18 »
Past a certain point, it won't be big enough anymore. Once you reach Guardian in the Underwater Reactor, that's when it goes past 255 (in the actual formation, his left hand is FF/255 and his right hand is 0100/256).

I was thinking from the field you set the variable to 1 when you need it On and to 0 when you need it Off.
01 2010
60 32 (change to 60 01)
44 (change this to a 40)

Then it'll be If ( (GlobalAddress = 1) ) and you can toggle it on and off for those certain boss enemies you want to buff, if that's the goal.

Roden

  • *
  • Posts: 125
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #64 on: 2014-10-27 23:59:24 »
Past a certain point, it won't be big enough anymore. Once you reach Guardian in the Underwater Reactor, that's when it goes past 255 (in the actual formation, his left hand is FF/255 and his right hand is 0100/256).

I was thinking from the field you set the variable to 1 when you need it On and to 0 when you need it Off.
01 2010
60 32 (change to 60 01)
44 (change this to a 40)

Then it'll be If ( (GlobalAddress = 1) ) and you can toggle it on and off for those certain boss enemies you want to buff, if that's the goal.
Hmm, seems quite simple, how about this instead?

var 80 and 81 - add them together in script to get enemy ID
-  add secondary if statements, if encounter Guardian, etc, then affect ALL enemy IDs in battle (maybe lose some flexbility though)
var 82 - A MAX HP value to set (same as HP)
var 83 - multipliers for stat combos/MP (allowed 255 combinations right? maybe you could even include a combo for random encounters which simply sets HP multipler for all enemy bitflags)
If all four vars are active, turn on the script for next encounter?

Lol, would this actually work?

Edit: Not asking you to give code example, I think I know enough now to experiment at least (thanks to you)  ;D
Edit 2: Just remembered only 1 byte for var 82.. maybe can merge HP multiplier into var 83 and have one var free for something else?
« Last Edit: 2014-10-28 00:01:31 by Roden »

Sega Chief

  • *
  • Posts: 4086
  • These guys is sick
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #65 on: 2014-10-28 01:01:11 »
So long as you don't put a number above 255 into 80, 81, 82, or 83. And try not to let the code get too long, you might have kernel problems and end up with the wrong encounters loading up. And be careful with multiplying stats; that can quickly get out of hand. It's better to fine-tune stats manually, enemy by enemy, but I guess that's not an option if the scene.bin can't be edited.

To be honest, the simpler you can make it the easier you'll be making it on yourself.

nfitc1

  • *
  • Posts: 3011
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #66 on: 2014-10-28 02:19:24 »
Is there a safer way to refer to enemies, though?

Not really. All I mean is there's no error-checking involved so I'm not keen with that method. Pairing with enemy ID will make it better when you have combinations with different numbers of enemies.
Say you have a enemy party of two bandersnatches, a griffin, and a Jabberwockies (just say). Now Bandersnatches are bitter enemies with griffin, but friendly to jabberwockies. So you want them to heal jabberwockies and randomly hinder griffins. If you have different formations of these three enemies then you'd want the Bandersnatch AI to refer to them by ID because their formation positions aren't fixed.

However, if you have a fixed formation, like a boss fight, where you know exactly where all the pieces are in the formation then it's perfectly reasonable to refer to them by formation ID. One advantage to something like this is for Boss minions/bits/options (whatever you want to call them) that have identical enemy IDs, but need to be handled individually. The other is it makes the AI shorter by, maybe, one byte per reference. No Boss AI even comes close to filling its scene's allotted AI space. In fact, I think the only scene that DOES come close to filling it is the one that contains Eligor.

Also, refer to Ultima Weapon's AI for how to store multi-byte values.

Roden

  • *
  • Posts: 125
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #67 on: 2014-10-28 03:53:57 »
Yeah I'll keep it short and sweet. I think it will be fun.. and will give me flexibility in the field having power over those stats. Actually, it looks like the only things I can't change is morph/steal/item drops (don't see them on opcode list, unless its unknown?).  I was expecting only to be able to change HP values at the most  :lol:  Oh, modding FF7 is awesome!

I looked at the Kernel sizes for the Japanese version its just under 20kb by default, while the US one is 22kb by default. Does the script section have a specific limit or is it a overall kernel limit you're talking about (I'm not planning on making many significant changes to it other than scripts)? I've seen people saying around 27kb is maximum? I pasted in 200 lines of opcodes/argument numbers in a text file and it came up at around 1.6kb. Not sure how much it would be in the kernel, but I hope that's alright..

Sega Chief

  • *
  • Posts: 4086
  • These guys is sick
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #68 on: 2014-10-28 14:10:55 »
Not really. All I mean is there's no error-checking involved so I'm not keen with that method. Pairing with enemy ID will make it better when you have combinations with different numbers of enemies.
Say you have a enemy party of two bandersnatches, a griffin, and a Jabberwockies (just say). Now Bandersnatches are bitter enemies with griffin, but friendly to jabberwockies. So you want them to heal jabberwockies and randomly hinder griffins. If you have different formations of these three enemies then you'd want the Bandersnatch AI to refer to them by ID because their formation positions aren't fixed.

However, if you have a fixed formation, like a boss fight, where you know exactly where all the pieces are in the formation then it's perfectly reasonable to refer to them by formation ID. One advantage to something like this is for Boss minions/bits/options (whatever you want to call them) that have identical enemy IDs, but need to be handled individually. The other is it makes the AI shorter by, maybe, one byte per reference. No Boss AI even comes close to filling its scene's allotted AI space. In fact, I think the only scene that DOES come close to filling it is the one that contains Eligor.

Also, refer to Ultima Weapon's AI for how to store multi-byte values.

Gotcha, I was worried there was a memory problem with using ID or FlagBit. I clean forgot about Ultimate Weapon and it's HP though, that'd definitely be the place to look for applying a big HP value.

Yeah I'll keep it short and sweet. I think it will be fun.. and will give me flexibility in the field having power over those stats. Actually, it looks like the only things I can't change is morph/steal/item drops (don't see them on opcode list, unless its unknown?).  I was expecting only to be able to change HP values at the most  :lol:  Oh, modding FF7 is awesome!

I looked at the Kernel sizes for the Japanese version its just under 20kb by default, while the US one is 22kb by default. Does the script section have a specific limit or is it a overall kernel limit you're talking about (I'm not planning on making many significant changes to it other than scripts)? I've seen people saying around 27kb is maximum? I pasted in 200 lines of opcodes/argument numbers in a text file and it came up at around 1.6kb. Not sure how much it would be in the kernel, but I hope that's alright..

I think the best thing to do is make regular back-ups and test often. Fight encounters in three different parts of the game to be safe and keep on the look out for the wrong encounters loading in. But like NFITC1 suggested, check out Ultimate Weapon's HP too:

Code: [Select]
60 00
60 5B
95
13 0000
01 2010
90
60 00
60 5C
95
13 0020
01 2010
90
60 00
60 5D
95
13 0040
01 2010
90
12 2060
13 4160
80
03 0000
62 010000
32
03 0020
61 0100
32
30
03 0040
30
90
12 2060
10 402C
80
60 01
90
11 00A0
60 03
81
60 03
34
30
90
13 0080
02 2060
03 4160
80
90

0x000TempGlobal <- &GlobalVar(005B)
0x005LocalVar:0000 <- GlobalAddress
0x00CTempGlobal <- &GlobalVar(005C)
0x011LocalVar:0020 <- GlobalAddress
0x018TempGlobal <- &GlobalVar(005D)
0x01DLocalVar:0040 <- GlobalAddress
0x024Self.HP <- LocalVar:0000 * 65536 + LocalVar:0020 * 256 + LocalVar:0040
0x040Self.Flag:DeathImmune? <- 1
0x04ALocalVar:00A0 <- 3 + Random MOD 3
0x055LocalVar:0080 <- Self.HP
0x060SCRIPT END

Seeing it there, it pushes three variables into three separate LocalVars and then combines them all into an equation to find current HP. The stuff starting from 0x040 is other stuff to handle his attacks, when he flies off, etc.

Roden

  • *
  • Posts: 125
    • View Profile
Re: Unused/useless variables safe to use in savemap? (PSX)
« Reply #69 on: 2014-10-28 15:46:02 »
Yeah I did check that out along with Safer Sephiroth's AI. That part doesn't seem too complicated but makes me think of a good question.. whose pre-battle AI goes first? If I change Ultimate Weapon's HP in Cloud's pre-battle AI, would that affect Ultimate Weapon? I'm assuming my one would kick in first (as the first character/bitflag?), and then Ultimate Weapon's HP would go back to normal (unless I also change scene.bin).