Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - chillyfeez

Pages: 1 2 »
1
Hello, interested parties!

This is a thread where I'll be documenting the progress of a new "side project." Hopefully this will eventually become the definitive SNES FFIV "everyone gets stored in the Shadow Party" mod.

At this point, it's all conceptual and theoretical, but I'm pretty sure that, with enough time, I can make this mod work exactly according to the plan I'll describe here.

The goal of this project is to make the following changes to the Vanilla FFIIUS ROM:
1) All characters except Cecil can be stored in the shadow party data. As a general rule, characters in the shadow party will not earn experience.

2) Shadow party data, which will occupy the same amount of space in SRAM as it does in Vanilla, will be divided into two distinct parts. Part 1 (0x80 bytes) will store two full character records. Characters stored in part 1 will earn experience. By default, these full records will be used to store Kain (when he is under Golbez's control) and Rydia (between the shipwreck and her return as a teenager). Part 2 (0xB0 bytes) will store a set of essential data for Kain, Rydia, Tellah, Edward, Rosa, Yang, Palom, Porom, Cid, Edge and FySoYa. Characters stored in this section will not gain experience. The tradeoff is that all characters can leave and rejoin the party without losing stat information.

3) The Namingway screen will be removed and replaced with a party switch system, which I am calling the PHS (after the system in FFVII)

4) Character equipment will not be stored in shadow party data, but a hacker using this mod will be able to choose whether all equipment is lost forever or added to the player's inventory (or the fat chocobo's inventory?) when a character is moved to the shadow.


I think this mod will be interesting enough on its own that FFIV fans might want to try it just for fun. The great part about it, though, is that it will be fully compatible with FF4kster, so it will easily lend itself to others' hacking projects.

A few preemptive answers to some possible questions...
Why can't I store Cecil?
Essentially, I had to draw the line somewhere. The reason it's so hard to make a mod that fully stores every character in the shadow party is that the game only has 320 bytes available for the shadow party. I need 128 of those bytes for the records that can gain experience (I wanted 192, actually, but again I had to draw the line), which leaves me with only 192 for the non-experience slots. Even using a little compression trick I thought up, I still need 16 bytes for each character slot, and 16 x 11 (the total number of non-Cecil characters) = 176. I still have 16 bytes leftover then that could be used for Cecil, but that leaves open the possibility to face Zeromus without the ability to use the Crystal, which would leave the player in a game breaking dead end.

So then why include records that can gain experience at all?
In the default game story, I think it's necessary that Kain and Rydia gain experience when they are away. Story-wise, they are off actually doing things (as opposed to, say, Rosa, who spends her time away from the party completely tied up). And also, they are gone long enough that if they didn't level up, their return would be anticlimactic. Kain has, by far, the longest period of time away from the party. You don't want him rejoining at level 13. Rydia needs to come back and immediately provide significant help defeating Golbez and his shadow dragon. In a perfect world, Yang would level up, too, but there isn't enough room, and at least he's only gone for one chapter of the story so he doesn't miss out on very much levelling.

What are these "essential stats" that are getting stored?
A large portion of the character record is completely static and easily retrievable from ROM. What will be stored is everything that is not, specifically: Level, Persistent Negative Statuses, Current HP, Max HP, Current MP, Max MP, Base Str, Base Agi, Base Vit, Base Wis, Base Will, and Exp. I could have opted to save space by not including Persistent Statuses, Current HP and Current MP, but then the PHS system could be used as a free Cabin (for everyone except Cecil) and I feel like that would be a major flaw. The choice not to store equipment also saves seven bytes per record.

But wait - I just counted, and that all adds up to 18 bytes, not 16 - what's up with that?
You're absolutely right. I devised a bit of a compression trick. It's not much, but it saves two bytes per record. The highest possible value for Current and Max HP is 9999, or 0x270F, or #00100111 00001111. The highest possible value for Current and Max MP is 999, or 0x03E7, or #00000011 11100111. So HP never uses the two most significant bits, and MP never uses the six most significant bits. By shifting Max HP left by two bits I can combine it with Max MP into three instead of four bytes, and likewise for Current HP and MP.

So what happens with the stored characters' equipment?
As I said, the hacker will have the option when a character "leaves" to either discard current equipment outright, or to move the equipment into the player's inventory. To me, there are some instances when it makes sense in the story just to discard the equipment - specifically when a character leaves against the party's will (e.g. - Kain gets hypnotized, party gets shipwrecked); and there are times when a departing character might be able to leave equipment with the party (Palom & Porom get stoned, Cid stays in the Dwarf kingdom, any time PHS is used). I'm pretty sure I can work it out that if the player's inventory is full, the "swap or discard" screen will kick in, though I haven't actually tried yet...

So you're hacking the Namingway screen... How's that gonna work?
Well, I don't exactly know just yet. I can tell you that the player will lose the option to change Cecil's name to "Shitty," but the tradeoff should be worth it. As for how I actually come around to hacking the screen... Well you, dear reader, get to see that develop right before your very eyes. You see, I have a concept of how it will all work, but I don't know enough about the SNES PPU to code the visuals yet. Squall is helping me figure that all out on this forum, so you can watch as I learn what I need to learn.

Stay tuned!

2
Final Fantasy IV Research & Development / NPC Priority?
« on: May 27, 2016, 12:37:07 PM »
You know how when two NPCs are standing on the same spot, the game has to choose which one is fully visible and which one is masked?
Anybody know his the decision is made?
Is there a way I can force a specific NPC to appear on top of the other?
Is it the order that they are on the list of the location's NPCs?
Does it depend on which one was in that spot first?
Something else?
 :hmm:

3
Final Fantasy IV Research & Development / Background Sound Effects
« on: May 23, 2016, 11:39:50 AM »
So I'm working on the Watery Pass in TfW and I stumbled upon some info that, as far as I know, hasn't been documented yet.

Ever notice that when you enter the Waterfall on the way to Octomamm, that first screen (before jumping down the waterfall) doesn't have music, but just a running water sound?

Turns out, the "music" byte for that map is set at 44. But, songs in FFIV are only numbered up to 37. So I isolated this byte and did some experimenting. Here's what I came up with...
Code: [Select]
38 through 3D - NOTHING
3E - PROPELLER SOUND (FADES IN)
3F - THREE GONGS, SHIP WHISTLE BLOWS (I THINK WHEN THE SHIP TAKES OFF FROM FABUL)
40 - A DISTANT CRASH SOUND
41 - A NOT-SO-DISTANT CRASH SOUND
42 - EARTHQUAKE
43 - PROLONGED FALLING SOUND (PERHAPS USED WHEN CID BOMBS THE ENTRANCE TO THE UNDERWORLD?)
44 - RUSHING WATER (WATERFALL)
45 - NOTHING
46 (and above?) - CRASHES GAME

Not a whole lot of useful stuff here, but maybe someone will be interested.

FF4kster doesn't have the ability to set these bytes above the last song (Ending 3), so you'd have to isolate and change the byte manually. For a shortcut to doing this, set an Execute breakpoint to 00/83EF, then enter the location whose music you want to change. 83EF will execute 12 (0C) times. You'll see the Y register increment by 1 each time. When Y = 0007, the byte being read is your music byte.

I imagine these sound effect "songs" can be called via event instructions, too, but doing so would likewise be impossible with FF4kster. Describing a similar shortcut to manually change these would be a bit more difficult, too, because of the way the game loads event instructions.

4
OK, so as I've discussed previously, there is a table of five-byte entries at 7CE00 (FCE00 in LoROM) that controls the details for monsters' special sizes (when size byte is set as 80 thru BF).
Here's what I know for sure:
Byte 0:
 Upper four bits: x-position
 Lower four bits: y-position
Byte 1:
 Lower six bits: pointer to actual rectangular size (in size table at 6FF5E)
Byte 2: Palette
Byte 3:
 Lower four bits: transition style (as detailed by avalanche here)
 Upper two bits: indicates which monster type in battle is affected by a transition command performed by that monster in battle
Byte 4: Tile arrangement pointer

So, the remaining mysteries here are...
- the upper two bits of byte 1
- bits 4 and 5 of byte 3

I don't really care much about those bits in byte 1. So far I haven't seen anything that references them.
What I am trying to figure out is the specific use of those two mystery bits in byte 3.
They do something, and it's graphical. That much I know. Near as I can tell, it has something to do with how the game treats the monster's rectangular size. That is, it doesn't affect the actual size itself, but it affects the position of the finger cursor when pointing to the monster, and it affects which tiles blink when the monster attacks or has magic cast on it.
In battles that feature multiple special-sized monsters, the different monsters have different values, but different forms of the same monster have the same value. So, none of the Octomamm forms have any of those two bits set; but Sandy, Cindy and Mindy are 00, 10 and 20, as are Baigan, Left Arm and Right Arm.
Finding out the exact nature of these two bits has become kind of important to me. I'm up to the Watery Pass in my hack, and I'm reimagining Octomamm in a way that really makes use of hacking the battle system. Basically, he's going to have six independent arms - three that use magic and three that use physical attacks - and they will constantly shuffle between seven different positions throughout the battle. The problem with all this is that, based on a lack of understanding of those two bits, their attack flash (and getting attacked by magic) sometimes does not make the entire tentacle flash. It's just an aesthetic thing, but it's really bugging me.
I doubt this is a thing that can be solved with just experimentation, though I'd welcome anyone who wants to try. It probably will require somebody watching a live disassembly of a read on that byte. I've tried that, but I haven't been able to figure out what I need to know.

Anyway, if anyone reads this and has any ideas or motivation to help - thanks!

5
Final Fantasy IV Research & Development / The Pseudorandom Array
« on: April 18, 2016, 05:51:14 PM »
I don't think I've ever seen it documented anywhere, but this is interesting and pretty useful for custom stuff.

At startup, the game copies 6/EE00 (in ROM w/o header, or 14/EE00 in LoROM) through 6/EEFF into 7E:1900-19FF in RAM.

These 100 bytes are the effective random number array that (I think) is used for all random number generations. There's a constantly rotating byte - 67A out of battle and 097 in battle - that gets loaded into X, then we load 1900,X into A to get our pseudorandom number.

Theoretically, the game could just load 14/EE00,X every time, but it takes one less byte each time to use the array in RAM. Still, seems like an odd way to occupy those hundred bytes of RAM...

6
Little discovery here.
I was trying to fix the little (sort of) oddity in TfW whereby the entire stock of Job Cards would be wiped out when using one.
Well, this was happening because I was using the "remove item from inventory" instruction, which removes all of one inventory instance of an item (so if you have 2 x 99 of item XX, you will lose 99 of them). The thing is, I was using that because I thought I had to, because otherwise the item wouldn't go away at all.
But here's the catch - in TfW, the Job Card replaces the Troia Pass. Turns out, there's a special case exception in the "Open Item Window Searching for XX" event instruction routine that skips over the part of the routine that reduces the inventory by one. You therefore get to keep your Troia pass for repeated use. It's also entirely possible to change which item has the special case exception, so maybe you want to keep the Legend sword instead, or (yay, cheating!) keep your Pink Tail. All you have to change is one byte.
In ROM without header:
00/6B3E    C9 EC   CMP #$EC; compare A to EC (Pass)
Just change that EC to the item # of whichever Item you want to keep upon use.

But wait - there's more!
Turns out we never really needed that single special case instruction for item EC at all, because a few opcodes later, we have this:
00/6B46   C9 ED  CMP #$ED; Compare A to ED (the next item after the Pass, whatever it is)
00/6B48   B0 18  BCS $18; If it is that or higher, skip the -1 portion if the routine

So all we have to do is change that ED to EC, and then that part of the routine includes the Pass, and we can comfortably change the routine to make an exception for a different item without losing the Pass.
Or, in my case, I can wedge in a subroutine jump where that Pass exception was!
 :shadow:

7
Is this true?
More generally speaking, if you have a spell that inflicts multiple status ailments, and attempt to cast it on a target that is immune to any one (but not all) of those ailments, will the spell fail every time?

8
Final Fantasy IV Research & Development / Monster defense percentages
« on: September 18, 2015, 04:40:35 PM »
Hey, has anybody ever noticed that when a monster's AI contains the "set defense" command, the percentage is written into the stat record? I always kind of assumed that monsters (without the bug fix) were doomed to no defense percentages, but apparently, there's this...

9
Well, what the heck, I'll put this up.
I'm trying to figure out how to make the dialogue window appear on the bottom half of the screen instead of the top. For most events, it would make sense, since the main character is always in the center (unless you make yourself invisible and use an NPC stand-in), and the tendency is to make the action occur north of the main character (for several reasons).
Unfortunately, it seems the dialogue window is the hardest of all to manipulate.
I've found this post from many years ago
http://slickproductions.org/forum/index.php?topic=1007.msg10152#msg10152
But the "Main Dialogue Window" referenced there must be something else entirely, because those offsets are not called at all when dialogue appears. (The addresses shown are ROM with header, and yes, I did try converting to LoROM - they're definitely not called)
Kinda too bad HHIPDragonFox isn't still around. He spoke in very difficult-to-understand terms, but if you look at his posts, he was into a lot of really cool stuff. Looks like he cracked five-digit damage display ages before I did.
Anyway, the problem is he never posted anything about the dialogue window.

Nor did Dragonsbrethren in this post:
http://slickproductions.org/forum/index.php?topic=88.0
Again, lots of window data, but not the primary dialogue window.

I also found the sprite map for the window frame, at $14/F6D6 (that's LoROM, it's 976D6 in ROM without header), but that information on its own doesn't help me change where on the screen those sprites are drawn.

So... Any graphics gurus out there reading this and have any insight?

10
Final Fantasy IV Research & Development / Making sense of the story
« on: June 03, 2015, 11:14:36 AM »
So I've been thinking about some of the nuances of the story lately... As I am working on a sequel, some of this is actually kind of important to what I'm doing, but also it's just fun to geek out and ask the questions nobody's asking because it involves reading into the story more than a normal person ever would.

So...

What's the deal with Golbez's backstory?
This thought was kind of inspired by what Pinkpuff and Grimoire were just discussing on the Unprecedented Crisis thread.
So, OK, I know Square established later that his mind was initially affected by Zemus when his parents died, but... Where did he go? How is it that he was able to work on becoming a super powerful sorcerer and a general of all of earth's evil over a period of seventeen years or so without anybody noticing? And he started out as just a kid. So did he just sit in a cave somewhere working on his dark magic and just stewing in his evil broth for a decade or so?

What's the significance of Eblan?
Out of all the societies sieged by Golbez's forces, they seem least likely to offer any real resistance in the early stages of his plot - they have no crystal, and are very isolated from the rest of civilization - yet they're the only one that is already completely obliterated when you first get there, and presumably for some time before the beginning of the game. I guess they were maybe viewed as a threat because of their proximity to Bab-il? But that doesn't add up, because when they were forced out of their stronghold, they went into hiding closer to the tower's entrance! Furthermore, threat my foot! They don't stand a chance against Rubicante, and the king and queen are abducted and turned into Lugae's science experiments.

And how about Lugae?
He's one of only two doctors ever seen in the game... How did he learn his trade? He's another one who it doesn't seem likely he could build all of that stuff up without anybody noticing. And where did he come from? He's not (originally) a monster, he's a human. So what kingdom do we presume he hails from? Maybe Troia, and that's how he learned to be a doctor?

How about KluYa?
If I have this story straight, he came to earth to help this savage little planet evolve and develop technology so that it could eventually be a place inhabitable by both earthlings and lunarians. And he's Cecil and Golbez's dad. So... Either Lunarians live REALLY LONG lives, or earthly civilization is only a few decades old.


Anyway, what are your thoughts?

Any other poorly a explained plot points you can think of? I'm sure there are lots...

11
Final Fantasy IV Research & Development / exit/smoke?
« on: May 11, 2015, 12:39:11 PM »
Something occurred to me just now...

For a loing while, we seemed to collectively think that running from battle was based on some amount of luck, or an invisible/misunderstood stat, or whatever. But it seems like - according to Grimoire's research - as long as one party member is ready to act and the battle allows retreat, running (with L/R) has guaranteed success.
So why, then, are there two spells that cost MP and are limited to particular casters devoted to a free skill that is usable by everybody?

Am I missing something?

 :edit:
Right - it's not always free. Sometimes costs GP.
Still, is that the only advantage to those spells?

12
Final Fantasy IV Research & Development / Japanese Title Screen
« on: March 08, 2015, 01:13:12 AM »
Does anybody know anything about the Japanese title screen?

Somebody over on RHDN just asked me about it... I don't really know anything about title screens, but I also haven't really looked into them (JCE3000GT created my custom title screen).

Specifically, he was asking if I knew anything about the animation. To be honest, I don't recall fully what's going on in the Japanese title screen, but I think it's a flashing crystal, which I presume is executed using a rotating palette. Shouldn't be that hard to figure out, but I figured I'd put it out here first to see if anyone has any insight into the matter.

Cheers!

13
Final Fantasy IV Research & Development / Command Stances
« on: February 08, 2015, 02:52:27 PM »
Alright, research on Command Stances and Poses complete!
As stated before, each stance is composed of 4 poses. The game will cycle through these four poses as long as the stance is held. The duration the stance is held depends, of course, on the purpose of the stance. So charging stance for Black magic if you're casting Meteo is a very long time, whereas for physical commands it can be very quick.

The table of Poses assigned to each stance is located (again, as stated previously) at $09/FD85 (ROM with header). Each entry is four bytes (one for each pose in the stance). The breakdown of what each value does is as follows:
Code: [Select]
00:Normal
01:Parry
02:Spread legs (as 1/2 of walking)
03:Crouch
04:Raise right arm (as 1/2 of right handed attack)
05:Extend left arm (as 1/2 of attack)
06:Raise left arm (as 1/2 of Left handed attack)
07:Take physical damage
08:Arms up (as cheering, etc)
09:Lay down (swoon)
0A:Chanting 1
0B:Chanting 2
0C-1D:glitchy stuff
1E:Disappear
1F-23:glitchy stuff
24:Special pose
25 and above:glitchy stuff

Accessing this table of poses are characters' stances, assigned both for charging and performing actions. By default, the game only uses stances 01-0F. Most other values call up data that is likely used for other things:
Code: [Select]
01:Resting
02:parry
03:Walking
04:crouching
05:right hand striking
06:left hand striking
07:getting hit
08:cheering
09:swoon
0a:chanting
0b:Charging (Chanting without motion)
0c:casting (raising arms, or whatever, no orbs)
od:raising left hand like to attack, but no motion
0e:"special" stance
0f:same
10:Resting
11-54:glitchy stuff, probably used for entirely separate purpose
55-5E:All FFs, presumably free to edit at will
5F and above: glitchy stuff, probably used for other purposes

You'll notice, though, that 55 through 5E ($09/FED5 through $09/FEFC in the table mentioned above) are empty and can be used to create custom stances. Also, stances 0E and 0F are both the special pose, and I don't think the game ever uses 0E.

Now, almost every command (except Twin) has a charging stance, and most commands have an action stance. Here is a chart that breaks down the offset of each stance for each command:
Code: [Select]
Command Charge Stance Offeset Default Action Stance Offset Default Notes
----- ------ -- ------ -- -----
Fight 0B7E60 02 * * Depends on weapon and, sometimes, handedness
Item 0B7E61 02 02C7B3 0C Same Action stance as Salve
White 0B7E62 0A 02C6D4 0C
Black 0B7E63 0A 02C6E1 0C Same Action stance as Recall, Ninja
Call 0B7E64 0A 02C71A 0F
DWave 0B7E65 0B 02C85F 0F
Jump 0B7E66 02 02C628/02C633/02C4CD 04/0C/0F Crouch/Jump/Land
Recall 0B7E67 02 02C6E1 0C Same Action stance as Black, Ninja
Sing 0B7E68 02 02C6C7 0B
Hide 0B7E69 02 02C5CB 0F
Salve 0B7E6A 02 02C7B3 0C Same Action Stance as Item
Pray 0B7E6B 0B 02C7F3 0C Same Action stance as Cover, Sneak
Aim 0B7E6C 02 02C88A/* 0F/* Uses Fight's Action stance after the "Aim" stance
Charge OB7E6D 0B N/A N/A Loads Fight into "Next Action" without changing graphic
Kick 0B7E6E 02 02C31D 0F
Gird 0B7E6F 02 N/A N/A No Action stance set
Twin N/A (00) N/A N/A Special Routine that sets "Black" for both twins
Boast 0B7E71 02 02C7AB 0F Same Action stance as Cry, Peep, SWave
Cry 0B7E72 02 02C7AB 0F Same Action stance as Boast, Peep, SWave
Cover 0B7E73 02 02C7F3 0C Same Action stance as Pray, Sneak
Peep 0B7E74 0B 02C7AB 0F Same Action stance as Boast, Cry, SWave
Crash 0B7E75 02 N/A N/A Crash occurs before Action stance is set
Dart 0B7E76 02 02C14C 0F
Sneak 0B7E77 02 02C7F3 0C Same Action stance as Pray, Cover
Ninja 0B7E78 0A 02C6E1 0C Same Action stance as Black, Recall
SWave 0B7E79 0B 02C7AB 0F Same Action stance as Boast, Cry, Peep
Change 0B7E7A 08 N/A N/A No Action stance set
Parry 0B7E7B 02 02C2A8 02
Show 0B7E7C 01 02c583 03 03 is "Walking," There is no other action stance here
Off 0B7E7D 02 N/A N/A No Action stance set

Note that some commands share the same action stance, so changing one will change the others as well.
There are too many variables that affect the action stance for Fight, so I didn't go into it at all. I don't imagine you'd really want to change any of those anyway - the results would look wrong.

I think that covers everything I was going to do with this topic. Does this all make sense?

14
In an effort to limit the amount of new topics I start, I'm creating this thread.

An index of all of the stuff I've posted in this forum that might be of use to other FFIV hackers,
or of interest to FFIV fans who might want to see some changes/updates to the game

Please note this is not complete yet

1) My hack - Final Fantasy II: A Threat from Within
This is a work in progress, but there is a playable demo attached to the first post

2) Other Mods These may not patch cleanly into already-altered ROMs, so beware!
Random Chocobo Encounters - Meet chocobos on the field in the Overworld in order to catch and ride them!
Summon Phoenix - Turns Odin into Phoenix (fire damage to enemies, revives fallen party members). Will patch cleanly, but overwrites some Odin Graphics, so the Odin battle will have to be changed somehow.
Shadow Mod - This is a mod that allows you to add and remove characters at will without losing their stats, experience, and equipment. All characters, pretty much whenever you want. But please read the whole post linked here, as there are some weird things that happen sometimes.
Scroll Through Targets with Y - Allows the player to scroll through all available targets in a battle by pressing the Y button

3) Patches Mods that will patch cleanly into already-edited ROMs
Monsters Level Up as You Do
A Pet Black Chocobo - This will let you keep your Black Chocobo, and not fly back to its home every time.
Press L to toggle running - Does exactly what it says
Press X to defer to the next ready character in battle - Ditto
ATB Meter - allows you to switch between viewing Max HP and Battle readiness during battle (option available in the Custom menu, replaces stereo/mono). WILL NOT PATCH CLEANLY WITH "Press X to Defer!"
Enhanced ATB - combines the two previous patches(without crashing)
User Options - Combines L-to-run, X-to-defer, and ATB meter
Break Damage Limit - allows attacks to register as high as 16383 per target instead of capping damage at 9999

4) How-Tos
Alter Summoned Monsters
Alter "Special" Monster Sizes
Hacking the Music
Change which Overworld Landscape features change with Flags (such as the mountains that appear outside of Mist when Rydia calls Titan)
Same as above, but faster!
Determine Overworld Monster Encounters by Event Flag (instead of by location on the map)
Make a fully functional, any item Salve command!
Change "Call" into a five character label in the Magic Menu
Change Charging and Action stances for battle commands
More to come!

15
Final Fantasy IV Research & Development / Random Chocobo Encounters
« on: May 27, 2014, 05:17:53 PM »
Yes - I am really planning on making this possible!

It's going to take a while, but I think I have all the necessary info.

The research I did on affecting which Encounter Set is picked based on event flags led me to wonder what else I can do just before a battle begins. It was surprisingly easy, but I found out that I can:
1) make an event call happen just before a battle, and
2) skip the battle entirely (which can be done based on various conditions in RAM, say, event flags...)

I don't have the whole thing worked out yet, but this should be enough knowledge to do it.

For a little proof of concept, try this code out (you may notice it starts out similarly to my "Encounter Set based on Flags" code):
Code: [Select]
$00/8994 4C 31 FD    JMP $FD31  [$00:FD31]  ;Jump to custom code
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$00/FD31 5A          PHY    ;Save Register Y, in case it's important                 
$00/FD32 A9 FB       LDA #$FB                ;Load FB ("Sight" event call) into A
$00/FD34 20 63 DF    JSR $DF63  [$00:DF63]    ;Jump to event execution subroutine
$00/FD37 A9 00       LDA #$00                ;Leftover from an earlier experiment, in which encounter set 00 was selected - of no importance here
$00/FD39 FA          PLX                     
$00/FD3A 7A          PLY                     
$00/FD3B 5A          PHY                      ;Get registers X and Y exactly where they would be if a battle was about to begin
$00/FD3C 4C B2 80    JMP $80B2  [$00:80B2]    ;Jump to exactly where you would be in code immediately after the end of the battle

Plug this into your ROM and walk around in the Overworld (must be on the Overworld map, no other encounters will be affected). Pretty soon, you'll see the map zoom out like you just casted sight, then press your A-button to zoom back in, then feel free to walk around some more! You'll never encounter any enemies in the Overworld, instead the game will just cast Sight. But, walk around in the Underworld, or in a cave, or wherever else, and battles will proceed as normal.
 :laugh:

So... The plan:
The instructions I'll be coding will look like this (in plain English):
1) Check to see if we're walking in Forest
2) If so, 50% chance the following happens
3) (via event) Engage battle with chocobo
4) (This is where I'll have to figure things out a bit still) Somehow, work in battle conditions that allow for a nonviolent end to this chocobo battle, and assuming this is done, set some otherwise unused event flag (using a custom command that will be used exclusively by the chocobo)
5) (after the chocobo battle ends) check if aforementioned event flag is set, if so, do the following
6) (via event) Mount chocobo
7) (and whether the chocobo was mounted or defeated) Skip the battle

There's still quite a bit of coding to get done here, but I can't see any reason why this won't work.

This will be complicated enough that I'll be posting a patch when it's all said and done, and I'll try to keep you posted on the progress.

Pages: 1 2 »