Post Reply 
SaGa Frontier Battle Script Opcodes
03-29-2017, 10:33 AM (This post was last modified: 03-29-2017 10:33 AM by Neptuneknight.)
Post: #21
RE: SaGa Frontier Battle Script Opcodes
Been busy with work and what not, but here's an update.

There's an opcode for modifying an Enemy or PC's STATS on the fly. I've seen this used to tone down a monster's stats (like for example Shuzer during Red's intro battle with him). Then I've seen it used to get monster's stats to the Max (MBlackIII battle in the second division).
Code:
69 AA BB CC DD EE FF GG HH II - Modifies the battle stats of entity AA (Permanently)?
BB - STR
CC - QUI
DD - INT
EE - WILL
FF - PSY
GG - VIT
HH - CHA
II -  ???

Then there's another opcode for modifying the Enemy or PC Equipment while in battle. I have to double check if it's permanent. This is mainly done for bosses. Many bosses have this opcode in their script. Their stats may appear altered from what is stored in the game's data as a result of this.
Code:
3B AA BB CC DD EE FF GG HH II - Modifies the equipment of entity AA
BB - Equipment Slot 1
CC - Equipment Slot 2
DD - Equipment Slot 3
EE - Equipment Slot 4
FF - Equipment Slot 5
GG - Equipment Slot 6
HH - Equipment Slot 7
II -  Equipment Slot 8

I noticed that Princess Lion's script has this command. It basically equips her with the Golden Lion Sword, an ArmorVest, and the LASTRING.
Code:
3B 80 2D 82 76 FF FF FF FF FF
Isn't she supposed to be a mystic? Why the heck is she having an Armorvest instead of the MysticMail? For Enemies, only slots 1 through 4 are used. For PC's, you can modify slots 1-8. I have yet to test about slots 9 and 10. Reminds me about Zaraktheus' discussing about the game treating High Rank Mystics (and any other Mystics) as humans.

Then there's this Opcode for editing/modifying targets. It lets you modify which entity is targettable or not, and what can you target it with. You can get an entity to only be targetted by healing spells, or only by attacks, or any combination of what you can think of.
Code:
34 AA BB CC DD EE - Entity AA has the following enabled/disabled:  
34 80 01 00 00 01 - Party has all attacking abilities disabled (blackened)
34 XX 01 00 00 01 - Disables Entity XX from being attacked
34 XX 01 00 00 02 - Disables attacking turn for entity XX
34 XX 01 00 00 03 - Disables Entity XX from taking any actions in battle
34 XX 01 00 00 04 - Disables HP Damage for entity XX
34 XX 01 00 00 05 - Disables Entity XX from being targeted by attacks & healing spells/items
34 XX 01 00 00 06 - Disables Entity XX from being targeted by attacks, from displaying damage after being attacked, and from selecting attacks. Still allows for selecting target for healing.
34 XX 01 00 00 07 - Disables Entity XX from being targeted by attacks, from displaying damage after being attacked, from selecting attacks, and from being targeted for healing.
[code]
Orlouge's portrait/monsters that appear and disappear around him remind me of an instance of when this is used. I haven't tested this thoroughly.

The opcode for inflicting status effects on an entity is 6A. There's many effects to be documented, and I can't find an example of the VitalityRune anywhere. I've seen sleep, venom, stone, palsy, mess.
[code]
6A VV WW XX YY ZZ - VV is the Entity. WW XX specifies the byte location for the stat effects. YY ZZ are a pair that give the status effects. Example is below:
6A 00 01 05 00 20 - Entity 00 is affected with Sleep
6A 00 01 05 00 40 - Entity 00 is affected with Palsy
6A 00 00 0A 04 00 – Used in the Blue Vs. Rouge Duel (Reviva Effect?)
6A 80 00 0A 04 00 – Used in the Blue Vs. Rouge Duel (Reviva Effect?)

And this is the code that is involved with increasing the HP loop based on something. I assume it's modified based on the battle rank that you are.
Code:
34 80 01 00 08 00
38 00 01 10 20 00 00 70
38 03 01 10 01 10 20 00
Not sure what it all means, I assume you are taking a variable and modifying it somewhere?
Find all posts by this user
Quote this message in a reply
03-29-2017, 02:45 PM (This post was last modified: 03-29-2017 02:46 PM by Neptuneknight.)
Post: #22
RE: SaGa Frontier Battle Script Opcodes
See anything interesting in the below picture?

Capture

THere's only so many monsters with big sprites that you can accomodate in battle. In general, the maximum number of monsters is 5. Depending on the mold and size, you can accomodate medium and small sized monsters. Big monsters like Bat Knight or Spriggan you can only accomodate one per battle.
Find all posts by this user
Quote this message in a reply
03-29-2017, 11:30 PM
Post: #23
RE: SaGa Frontier Battle Script Opcodes
I get a 502 error when I attempt to view that image (by grabbing the jpeg from the page source code because it doesn't appear in the page when it loads). What's wrong with imgur?

The limit has a lot to do with PS1 VRAM. I don't remember if there is information on VRAM at Qhimm, but they would know and it's worth making a topic - it's such general knowledge that you're guaranteed a reply provided you word it like, "What are the specs for PS1 VRAM?" and then provide the size of the sprite or sprites you're dealing with.

Was that all the information from the messages? And did you update the first post?
Find all posts by this user
Quote this message in a reply
04-02-2017, 08:44 PM (This post was last modified: 04-02-2017 08:46 PM by Neptuneknight.)
Post: #24
RE: SaGa Frontier Battle Script Opcodes
I've come across two new opcodes which I have no idea what they do:

The first is used in the MBlackIII Battle, at the beginning. So far i've only seen it be used in this battle.

Code:
14 00 00 00 28 00

I am tempted to say it involves Party Member in Slot 00 (RED?) and involves sprite ID 28 (Alkaiser). I tried changing several numbers (the 00 before the 28, then the 28, then the 00's after the 28) and I did not see any visible results.

The other one is also used on this battle. Not sure if any other battles use it.
Code:
48 00 00 10 01 10
First shot at it I think it edits/modifies/changes/clears some internal variable 1000.

Any thoughts/ideas?
Find all posts by this user
Quote this message in a reply
04-03-2017, 01:00 AM
Post: #25
RE: SaGa Frontier Battle Script Opcodes
Code:
14 00 00 00 28 00
It can't involve Slot 00 unless the game forces red to be in Slot 00. Unlikely, given that I think battle slot placement depends on field menu slot placement.

More likely it's some sort of conditional "proceed with following code if one of these things is present", where each byte represents any of a number of things... but even that is iffy, because 00 is Lute's sprite. You could try changing the 28 to represent some other characters in the party or not in the party to see how it changes the flow of the battle.

Given that MBlackIII takes place I think in MBlack Base where Red is morphed - and Alkaiser is guaranteed to be in the party - it's probably a targeting priority opcode. There are five parameter bytes too; but that doesn't mean much as Alkaiser is in the fourth parameter. If it is a targeting byte, I imagine that the first parameter is the target of least priority and the last one is the target of most priority.

...

Code:
48 00 00 10 01 10
Your guess is as good as mine, but I would set it to different values to see if something happens after a certain number of rounds just to be sure.

On the other hand you do know where the battle variables are stored, so you could fool around with it and see if it reads or writes something to those fields.
Find all posts by this user
Quote this message in a reply
04-05-2017, 11:54 PM (This post was last modified: 04-06-2017 12:05 AM by Neptuneknight.)
Post: #26
RE: SaGa Frontier Battle Script Opcodes
You mentioned something in the other thread (Monster Data?) about the battle script overwriting the monster's learned abilities. You and Zaraktheus were both correct.

Here's the Battle Script:
Code:
0A FF 22 00 54 00
10 1A
12 00 04 00
0E 07 FC FD 09 FF
02 1F 1F 00 00 00
1F 01 00 02
1F 01 00 10
00 FF
21 FF 00 01 52 00
22 03 00 50 09 00 28 00 – 5000 is the Scenario Battle Counter, 0009 is the value
22 00 01 90 00 00 12 00 -  9001 is the RNG
58 80 93 00 FF FF FF FF FF FF - Chop
20 FF 0E 00
58 80 E9 00 FF FF FF FF FF FF - Elfshot
20 FF 24 00
22 00 01 90 00 00 12 00 - 9001 is the RNG
58 80 95 00 FF FF FF FF FF FF - Claw
20 FF 0E 00
58 80 AB 00 FF FF FF FF FF FF - Feint
00 FF

And here are Zaraktheus' notes on this battle:

Zaraktheus Wrote:The Absorbable Abilities for each Enemy found by JusticeZero are from the B_MDATA files on the CD. The values in those files are the defaults for each Enemy, but they're not binding. They're usually accurate, but certain Scripted Encounters can overwrite the default Absorbable Abilities (and various other data) for certain Enemies.

The Foxy Sisters battle is one such Scripted Encounter, but the way it works is rather unusual. Other default-overwriting Scripted Encounters that I've seen use the same set of overwrites every time, but the Foxy Sisters battle uses one of 4 sets of overwrites, depending on two variables.

Each "set" in the Foxy Sisters battle actually consists of only 1 Absorbable Ability, always in Slot 1, with all other Slots empty (which is why you always get that Ability, regardless of save-stating).

The two variables that determine which Ability is available are:

1: Your Scenario Battle Counter (SBC).
2: A random number from 0 to 1 (so a 50% chance of each).

The Scenario Battle Counter is what it probably sounds like: the game secretly keeps track of the number of battles you've fought since beginning the Scenario, and that number is used here. Remember that the SBC is different from your BRP, since (among other things) BRP doesn't always increase after each battle, but SBC does. Also, SBC is the number of battles you've already completed, not counting the current one, so if e.g. you're fighting the Foxy Sisters for the third time, SBC will be 2, since you've only completed two battles.

Which Ability is available in a given instance of the Foxy Sisters battle is determined as follows:

SBC = Scenario Battle Counter.
Rand = random number from 0 to 1.

IF SBC <= 8,
AND Rand = 0,
THEN Ability = Chop.

IF SBC <= 8,
AND Rand = 1,
THEN Ability = ElfShot.

IF SBC >= 9,
AND Rand = 0,
THEN Ability = Claw.

IF SBC >= 9,
AND Rand = 1,
THEN Ability = Feint.

So for the first 9 battles, there will be a 50% chance each time for Chop, and a 50% chance for ElfShot. From the 10th battle on, that becomes a 50% chance each time for Claw, and a 50% chance for Feint.

That means that in order to get all 4 Abilities, you must fight the Foxy Sisters a minimum of 11 times, and it may take a few more than that if you get unlucky. It's also possible (though extremely unlikely unless you don't Absorb after every battle) to completely miss out on either Chop or ElfShot here, if you randomly get the other one all 9 times.

Of concern only to save-staters, there's also an issue with the RNG as it is used here. Like any computer RNG, it's only pseudo-random. It uses a seed number, and the same seed always produces the same output "random" number. The number only becomes functionally random when the RNG has the opportunity to go through a variable number of cycles before being called. This RNG only cycles primarily during battle, and it only starts up very shortly before it's called here. There apparently isn't enough variation in the amount of time that can be taken between those two points, and as a result, the RNG always goes through the same predictable number of cycles, so whatever seed you had before starting the fight will always produce the same "random" result here, no matter how many times you load-state back to before the battle.

To get around this, simply hit square on the map screen to enter the Menus. Each time you enter the Menus, the RNG cycles, so you'll get a new seed, which will lead to a new "random" result for the Ability.

This shows that opcode 58 then overwrites the monster's specific learned abilities. Thank you MysticLord! Wish Zaraktheus was still around. He'd be having a blast with this, and we could get our questions answered on those RAM variables.
Find all posts by this user
Quote this message in a reply
04-06-2017, 02:34 AM (This post was last modified: 06-20-2017 12:33 PM by MysticLord.)
Post: #27
RE: SaGa Frontier Battle Script Opcodes
He got married, can't say I blame him. He almost certainly unraveled everything you have now and more. His perfectionism (can't publish unless ITS PERFECT) is why we had to start from scratch.

Code:
58 80 E9 00 FF FF FF FF FF FF
Some thoughts:
* Any time you see FF FF ... FF FF, something weird is happening and you should fuck around with the FF to see what's happening.
* Same goes for endianness in words (two bytes, for the PS1).
* You can learn a lot just by memorizing the various digits for abilities, items, sprites, PCs, and so on. You could probably have guessed that without reading Zarak's posts on the subject just by looking at the 4 pairs of words, the repeating FF FF words, and endianness.
* I wonder what that 80 does? Looks like a bit flag to me. Try turning it off? Try turning on other bits? Pretty simple to test in this case, but make sure you put something other than FF in all the other slots for some of your testing in case 80 toggles what ability absorption slots get replaced. On the other hand, SF isn't even remotely optimized for space, so maybe this is just a minor fuck-up on their part (which is easily extensible for us - 7 bits all for us).

Tell me when you have a definitive list of all battle opcodes you have ever encountered and their lengths. When you do, I can build a battle script (de)compiler.

It's possible that 2nd Division implemented opcodes that weren't used - seems right up their alley, splurge on tools so you can be cheap and lazy on programming later - but we won't know for sure even with testing until the entire battle system (MOUT/BATTLE.OUT) is reverse-engineered.

Though if there is a list of pointers somewhere in BATTLE.OUT to each battle opcode, that will at least tell us how many there are and if any are null. Null ones will point to a nop (00 00 00 00) or something similarly pointless. Knowing our luck thus far with lack of space optimizations, they will all point to different nops, thereby giving us a shitload of potential free space for the future. Repoint them to the same nop (if possible) and we free up a ton of room.

https://en.wikipedia.org/wiki/NOP
https://stackoverflow.com/questions/2092...embly-mips

I had some other thoughts, but I forgot them.
Find all posts by this user
Quote this message in a reply
04-06-2017, 12:48 PM
Post: #28
RE: SaGa Frontier Battle Script Opcodes
(04-06-2017 02:34 AM)MysticLord Wrote:  He got married, can't say I blame him. He almost certainly unraveled everything you have now and more. His perfectionism (can't publish unless ITS PERFECT) is why we had to start from scratch.

Did his significant other ban him from doing SF research? This must have taken a long time to research, then tend to the questions on the forums. He always made the statement that he had no understanding to how the scripted event worked neither of the battle script opcodes. He just had access to a debugger. But his knowledge about things is very uncanny. Almost like you say, as if he knew about all the inner workings.

(04-06-2017 02:34 AM)MysticLord Wrote:  
Code:
58 80 E9 00 FF FF FF FF FF FF
Some thoughts:
* Any time you see FF FF ... FF FF, something weird is happening and you should fuck around with the FF to see what's happening.
* Same goes for endianness in words (two bytes, for the PS1).
* You can learn a lot just by memorizing the various digits for abilities, items, sprites, PCs, and so on. You could probably have guessed that without reading Zarak's posts on the subject just by looking at the 4 pairs of words, the repeating FF FF words, and endianness.
* I wonder what that 80 does? Looks like a bit flag to me. Try turning it off? Try turning on other bits? Pretty simple to test in this case, but make sure you put something other than FF in all the other slots for some of your testing in case 80 toggles what ability absorption slots get replaced. On the other hand, SF isn't even remotely optimized for space, so maybe this is just a minor fuck-up on their part (which is easily extensible for us - 7 bits all for us).

The 80 indicates monster slot #1 in battle. Battle allows a maximum of 5 slots for monsters. To refer to them, the game uses either 80, 81, 82, 83 or 84. Same for PC's. From what I've observed the FF is used for "leave as is or don't change". In the case of that opcode, it looks like you could overwrite up to 4 abilities.

I have a notepad with all the skills and their hex numbers handy, so that when I look at battle scripts I compare suspicious bytes to either the item list of the skills list. Most of what I do initially is first guess. Later on if there's enough time I go ahead and test and mess with the bytes/opcodes.

(04-06-2017 02:34 AM)MysticLord Wrote:  Tell me when you have a definitive list of all battle opcodes you have ever encountered and their lengths. When you do, I can build a battle script (de)compiler.

It's possible that 2nd Division implemented opcodes that weren't used - seems right up their alley, spurge on tools so you can be cheap and lazy on programming later - but we won't know for sure even with testing until the entire battle system (MOUT/BATTLE.OUT) is reverse-engineered.

I agree 100%. There may be opcodes we will never know about unless someone comes in with PSX ASM experience. What I am learning is from examples in battle scripts - and although I feel like I've learned a LOT, there's even much more to discover.It's going to be two years soon since I started fooling around with this game. And I'm sure there's a couple more years left still between this and the Scenario Script System.

(04-06-2017 02:34 AM)MysticLord Wrote:  Though if there is a list of pointers somewhere in BATTLE.OUT to each battle opcode, that will at least tell us how many there are and if any are null. Null ones will point to a nop (00 00 00 00) or something similarly pointless. Knowing our luck thus far with lack of space optimizations, they will all point to different nops, thereby giving us a shitload of potential free space for the future. Repoint them to the same nop (if possible) and we free up a ton of room.

https://en.wikipedia.org/wiki/NOP
https://stackoverflow.com/questions/2092...embly-mips

I had some other thoughts, but I forgot them.

I briefly looked over that BATTLE.OUT file. It is filled with LOTS of pointers.
the EVENT.BIN is loaded from within the code. I've seen the custom battle messages like "HP Raised" or "INT Raised". I've also seen the Death messages. But most of it still eludes me.
Find all posts by this user
Quote this message in a reply
04-06-2017, 07:06 PM (This post was last modified: 04-06-2017 07:12 PM by MysticLord.)
Post: #29
RE: SaGa Frontier Battle Script Opcodes
(04-06-2017 12:48 PM)Neptuneknight Wrote:  Did his significant other ban him from doing SF research? This must have taken a long time to research, then tend to the questions on the forums. He always made the statement that he had no understanding to how the scripted event worked neither of the battle script opcodes. He just had access to a debugger. But his knowledge about things is very uncanny. Almost like you say, as if he knew about all the inner workings.
Haha I think she did. Can't say I blame her, it takes days to debug and document a single routine.

Yeah he was lying. Though he did read pretty good Japanese, with babelfish/google-translate assistance, so I think he's Chinese.

(04-06-2017 12:48 PM)Neptuneknight Wrote:  The 80 indicates monster slot #1 in battle. Battle allows a maximum of 5 slots for monsters. To refer to them, the game uses either 80, 81, 82, 83 or 84. Same for PC's. From what I've observed the FF is used for "leave as is or don't change". In the case of that opcode, it looks like you could overwrite up to 4 abilities.

I have a notepad with all the skills and their hex numbers handy, so that when I look at battle scripts I compare suspicious bytes to either the item list of the skills list. Most of what I do initially is first guess. Later on if there's enough time I go ahead and test and mess with the bytes/opcodes.
Note that FF 01 is Defense, so I think we can assume that FF FF is null ability. If you look at the monster ability bytes for some monsters that only have 2 or 3 absorbable abilities, the other ones will be null. There are probably checks in the battle and post-battle coding to pass over an ability absorb that is null. Hence the null is built into (implemented by) the conditionals, not some aspect of the FF FF word itself.

(04-06-2017 12:48 PM)Neptuneknight Wrote:  I agree 100%. There may be opcodes we will never know about unless someone comes in with PSX ASM experience. What I am learning is from examples in battle scripts - and although I feel like I've learned a LOT, there's even much more to discover. It's going to be two years soon since I started fooling around with this game. And I'm sure there's a couple more years left still between this and the Scenario Script System.
Once you have something that people can play with AND you have a lot of openly accessible documents of any degree of completion things have a way of happening fast.

If Zaraktheus had just dumped his incomplete notes when we had almost two dozen people sitting around waiting for something to do, we would have almost everything except the goddamn editor already.

[Image: yC0RGID.png]

(04-06-2017 12:48 PM)Neptuneknight Wrote:  I briefly looked over that BATTLE.OUT file. It is filled with LOTS of pointers.
the EVENT.BIN is loaded from within the code. I've seen the custom battle messages like "HP Raised" or "INT Raised". I've also seen the Death messages. But most of it still eludes me.
Most important are the pointer tables. With them we can delimit everything done in battle - they are often broken into logical blocks - and we can break the work up into different pieces. Can you guess how that would be useful for documentation?

How did you find out that EVENT.BIN is loaded from within BATTLE.OUT?
Find all posts by this user
Quote this message in a reply
04-08-2017, 12:55 PM (This post was last modified: 04-08-2017 12:58 PM by Neptuneknight.)
Post: #30
RE: SaGa Frontier Battle Script Opcodes
(04-06-2017 07:06 PM)MysticLord Wrote:  Once you have something that people can play with AND you have a lot of openly accessible documents of any degree of completion things have a way of happening fast.

If Zaraktheus had just dumped his incomplete notes when we had almost two dozen people sitting around waiting for something to do, we would have almost everything except the goddamn editor already.
[Image: yC0RGID.png]

LOL at the picture. You all must have been determined to get things done way back when. Seems like Zaraktheus was a the one man running the whole show. Reminds me of a project that I am working for at work in which there's one designer running the show. Very frustrating when you're someone that is a "let's get it done fast" and the main person running the show is a perfectionist. I feel sorry for you all, especially now that the Bio Lab has disappeared.

(04-06-2017 07:06 PM)MysticLord Wrote:  Most important are the pointer tables. With them we can delimit everything done in battle - they are often broken into logical blocks - and we can break the work up into different pieces. Can you guess how that would be useful for documentation?

How did you find out that EVENT.BIN is loaded from within BATTLE.OUT?

The pointers start with something like

BC 74 18 80
CC 74 18 80
DC 74 18 80
...

Which makes no sense. If you reverse it it points to 80 18 74 BC, but the file overall length is 7E24F bytes. Still eludes me.
And for the battle event BIN files, see the picture below.

See the picture below.
[Image: PYnNKP0.jpg]
Find all posts by this user
Quote this message in a reply
04-08-2017, 05:23 PM (This post was last modified: 04-08-2017 10:52 PM by MysticLord.)
Post: #31
RE: SaGa Frontier Battle Script Opcodes
(04-08-2017 12:55 PM)Neptuneknight Wrote:  LOL at the picture. You all must have been determined to get things done way back when. Seems like Zaraktheus was a the one man running the whole show. Reminds me of a project that I am working for at work in which there's one designer running the show. Very frustrating when you're someone that is a "let's get it done fast" and the main person running the show is a perfectionist. I feel sorry for you all, especially now that the Bio Lab has disappeared.
Well that's how it rolls. Nothing I can do about it. I imagine being married to him can be very frustrating. Waiting for him to get some game BS perfect before he can move on to your house or life or family (so he can get that perfect) must drive a woman fucking nuts.

(04-08-2017 12:55 PM)Neptuneknight Wrote:  The pointers start with something like

BC 74 18 80
CC 74 18 80
DC 74 18 80
...

Which makes no sense. If you reverse it it points to 80 18 74 BC, but the file overall length is 7E24F bytes. Still eludes me.
I'm guessing those are RAM addresses. Remember that the code isn't executed on a disc, or within a file on the disc. Must be loaded into primary memory first.

EDIT

I would check Zarak's gameshark codes - which are for the most part RAM addresses - to get an idea of what sort of routine each pointer delimits.

/EDIT

(04-08-2017 12:55 PM)Neptuneknight Wrote:  And for the battle event BIN files, see the picture below.

See the picture below.
[Image: PYnNKP0.jpg]
Weird how old-timey C compilers would mix together pointer tables, data tables, and what is either leftover printf(...) strings or some sort of event function call.
Find all posts by this user
Quote this message in a reply
04-11-2017, 09:37 PM
Post: #32
RE: SaGa Frontier Battle Script Opcodes
(04-06-2017 02:34 AM)MysticLord Wrote:  
Code:
58 80 E9 00 FF FF FF FF FF FF

If this is the code for rewriting monster learnable abilities in battle, would the same work for MECS? Or do you think there'll be a set opcode for doing this specifically for MECS?

Do any battles come to mind in which this could be implemented for T260G?
Find all posts by this user
Quote this message in a reply
04-11-2017, 09:43 PM (This post was last modified: 04-12-2017 02:32 AM by MysticLord.)
Post: #33
RE: SaGa Frontier Battle Script Opcodes
I don't see why it wouldn't. I think that mec-type monsters have the absorbable abilities in the same monster data slots as those of other slots. Remember that monsters don't have the opportunity to absorb from mec types - the differentiation between the two is in the conditionals in the post-battle routines.

EDIT

I'm not sure on what the conditionals predicate. It could be a range of monsters, but I think there's an actual bit or byte somewhere in monster data that determines it. I think this because I vaguely remember there being one and because I remember that the monster digits aren't in an order that would make such a conditional extremely easy.

/EDIT

If you want to check, look up the digit for one of the mec type monsters, open the corresponding monster data file, and navigate through the pointers to the correct position in that file for monster absorbs.

There are several scripted battles for T260 in his quest you could check, when they are still in Junk - the battle arena.
Find all posts by this user
Quote this message in a reply
05-16-2017, 10:37 PM
Post: #34
RE: SaGa Frontier Battle Script Opcodes
I'd like to pick your brain a little, mysticlord.

I've been meddling with the 37 opcode, which writes a certain value to a certain RAM byte/address.

Code:
37 00 0B 10 00 C0
37 00 01 C0 0B 10

The first line is used with the BlueVSRouge duel. With testing and what not, the first line grabs the contents of C0 (which is char 00's current JP, Asellus in my case), and stores it into 100B. The second line sets the value stored in 100B to the contents of C0 for character 01. In my case, char 01 in battle is mesarthim. So now mesarthim's current JP value matches Asellus'.

I'd like to tinker with values so that I can assign the current LP value of asellus, say, to mesarthim. Is there a map of the character data as it is loaded for battle? That would help a lot. What do you think?
Find all posts by this user
Quote this message in a reply
05-17-2017, 01:44 PM
Post: #35
RE: SaGa Frontier Battle Script Opcodes
http://sf.data.project.tripod.com/Eroneous_Waylay.html

http://sf.data.project.tripod.com/Eroneo...status.txt

Is this it?
Find all posts by this user
Quote this message in a reply
Post Reply 


Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  BATTLE.OUT File Neptuneknight 20 1,176 08-27-2017 02:43 AM
Last Post: MysticLord
  SaGa Frontier Game Data and Resources Neptuneknight 12 1,530 05-27-2017 11:58 AM
Last Post: JCE3000GT
  Japanese Scripted Battle Events Neptuneknight 1 281 03-26-2017 11:52 PM
Last Post: MysticLord
  SaGa Frontier Game Dialogue Dump Neptuneknight 7 448 01-06-2017 01:35 AM
Last Post: MysticLord
  SaGa Frontier Tools for Internal Use Neptuneknight 7 489 01-05-2017 12:14 PM
Last Post: MysticLord
  SnakeOil - SaGa Frontier Data Editor MysticLord 4 977 12-31-2016 11:30 PM
Last Post: MysticLord
  In-Battle Status Blocks - RAM MysticLord 0 267 12-31-2016 08:40 PM
Last Post: MysticLord
  Saga Frontier Monster Script Data Viewer GUI Neptuneknight 8 639 12-31-2016 05:33 PM
Last Post: MysticLord
  SaGa Frontier Scenario Scripting System (SSS) Neptuneknight 1 616 07-26-2016 05:33 AM
Last Post: MysticLord

Forum Jump:


User(s) browsing this thread: 1 Guest(s)