øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=123;area=showposts;start=1305e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexfb9b-2.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=123e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexfb9b-2.html.zx:òg^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈÀK‚ØOKtext/htmlISO-8859-1gzip0|Ö‚ØÿÿÿÿÿÿÿÿTue, 10 Mar 2020 20:18:25 GMT0ó°° ®0®P®€§²ð®9òg^ÿÿÿÿÿÿÿÿ7<‚Ø Show Posts - Grimoire LD

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.


Messages - Grimoire LD

1306
Final Fantasy IV Research & Development / Re: Shadow Party Stats
« on: September 04, 2013, 10:50:50 PM »
102F is related to escaping. The data there is modified when using Porom's Cry command. My thought is that it is some type of internal "Luck" stat, that is used when determining whether the party can escape, and maybe other times.

The data from 102D-F is calculated during the equipment initialization, so it could be immunities for the other statuses; however, those statuses don't really need immunities (Barrier, Wall, image, jumping, hiding, etc.). Also, the values don't really seem to support this. At the beginning of the game, the values for Cecil at 102D-E are 02 and 14, which would imply immunity to Stop, image high, and Wall. Since we know this isn't true, it must be something else.

They could be related to the other equipment bits. Since they're buggy it's difficult to test. However, the 102D-F data comes from within the character stats; the bits that control metallic/throwable/etc. are stored within the equipment data, meaning they are calculated from the equipment. It's unlikely that equipment data would be stored within the character stat data. This is why I think those three bytes may be some internal "Luck" stat, or something to that effect.


Absolutely ancient, but still here's a required Bump!

I've figured out what the 102D-F (or at least one of the bytes) do. Phoenix was right on the mark. It's kind of like a "luck" stat. 102D Definitely is. What 102D actually appears to be is the chance to Critical Hit.

It appears to be Value = Chance to Critical Hit - And it may be just a plain 100 (setting it to 64 seems to almost always guarantee a critical hit) rather than based off of 255. Now oddly this test was done with the Dummied Crystal Sword copy, which would mean that Logically I should have No Crit chance, but setting that to 64 and FF produced critical hits a plenty.

So Value = Chance to Critical Hit x Attack Multipliers. At least it appears that way and a Critical Hit seems to be recorded differently for each hit whether it was a Critical Hit or not. (not graphically speaking however)

NOTE: All Shadow Party people come back with the same critical hit stat, including Adult Rydia (who should have none due to being equipped with a Property 1 Weapon)

Dark Knight Cecil - 02 (14 0A)
Kain - 02 (14 0A)
Rydia - 01 (28 0A) - (So from the very start Rydia is given less of a chance to Critical Hit... hah.)
Tellah - 01 (1E 0A)
Edward - 02 (1E 0A)
Rosa - 02 (3C 0A)
Yang - 01 (Wha?!) (32 0A)
Palom - 01 (1E 0A)
Porom - 01 (1E 0A)
Paladin Cecil - 03 (I thought as much) (1E 01) - (01? Hmm...)
Cid - 05 (Whoa.) (23 14) - (Very different values from everyone thus far. I wonder what they mean...)
Edge - 08 (Well, I guess he's the king of crits then.) (19 19)
FuSoYa - 00 (Eh?) (00 32)

And there you have it. Edge will crit more than anyone else and it seems that FuSoYa cannot naturally get a critical hit Ever. To my knowledge some of this flies in the face of conventional knowledge. Exactly how does Property 1 make it so you can't critical hit then?

Well I figured out the first byte, let's see if I can soon figure out the second.

 :edit: Here's a peculiarity.

Cecil clearly has a 02 14 but in battle (and indeed viewing his initial battle records) this stat is shown as 04 19, hmm...

Ah hah... part of it is weapon based... each weapon may have its own Critical Hit Modifier...

 :edit: 2 Shadow - x2 +05 (Yes, you're reading that right. The Shadow Blade gives x2 to your current Critical Hit Modifier, tested with Critical Hit at 2, then at 5. At 2 it rises to 4, and 5 it rises to A. The second value seems to be a static +5 though.

Darkness - x2 +10

Black - x2 + 15

Note: It seems that the second value increases in comparison to its base attack power. Meaning that this value will be (Character Innate + Half of the weapon's Attack Power). I still have yet to reason out what this does...

Ah! I see! What it actually does is decide the amount of extra damage a weapon will deal when it Critically Hits. Setting the value to FF made that abundantly clear. That surprisingly means that Rosa has the best Innate damage with Critical Hits, oddly enough, with Cid in a close second and of all people Rydia in a distant third.

I should probably start from the beginning...

Now to see if all weapons do is double the chance for Critical Hits of if there's more to it...

Nothing - x1
Claws    - x2
Rods      - x2
Staffs     - x2
Dark Swords - x2
Light Swords - x2
Swords  - x2
Spears  - x2
Ninja Swords - x2
Knives - x2
Whips   -x2 (though they should not be able to cause Critical Hits due to Property 1, they still add the normal x2 which is inherent to all weapons so far)
Axes - x2
Throwing Weapons - x2
Boomerangs -x2
Harps - x2
Hammers - x2
Bows&Arrows x3 (Quite a shock!)
(Quite Possibly the game penalizes dual wielders by taking away their Crit Bonus from a normal weapon.)

Well aside from the discovery about the bows that felt like a waste so...

The critical hit bonus is basically double of what is shown above.

And confirmed! Characters who equip two weapons Lose their Critical Bonus when dual wielding! While quite significant for Edge, Yang barely seems like he will be able to score any critical hit in the first place.

Now all that remains is that final byte... it never appears to change and seems unique for some characters.

1307
So in a bit of experimentation I was trying to prepare some sort of Solo Dungeon mod and thought to start with Rydia. To make it really work I'll have to wait until a graphics editor is out or find out how class sprite assignments work. (Since I plan for the choice between 3 different variant of a take on Summoner)

In the midst of this I tried a lot of shadow slot changing and I noticed something very special that I never saw before. Rydia is the only character in the game to change class (Cecil's character is erased and a new one is added for the Dark Knight. The only connection the two seem to have is you can't use Cover if the Dark Knight is in the party, bizarrely enough.)

Every other character has their class from start to finish. Rydia's class changes to use her new graphic. An interesting way to go about it. I grew suspicious when I saw there was no automated fashion this is done, at least according to the editor so I took a look around and quickly found the answer.

In LoRom - HiRom....

0x0E5B7 - C9 11 (CMP 11) - Compare Adult Rydia's ID (Somehow) if this is read...
0x0E5BB - A9 0B (LDA 0B) - Load 0B (Adult Rydia's Class) into...
0x0E5BD - 99 01 10 (STA 7E1001) - 7E1001 - Rydia's Information.

In ROM at...

0x067B7 - C9 11 (CMP 11) - Compare Adult Rydia's ID (Somehow) if this is read...
0x067BB - A9 0B (LDA 0B) - Load 0B (Adult Rydia's Class) into...
0x067BD - 99 01 10 (STA 7E1001) - 7E1001 - Rydia's Information.

The uses for this could be interesting, in case you didn't want Rydia to return in an aged fashion or wanted to use the assignment of byte to somewhere else. Or want another character to change their class. But it does solve to me how the game switches a class in the middle of the character's existence.

1308
Final Fantasy IV Research & Development / Re: What is known about vehicles?
« on: September 04, 2013, 12:59:44 PM »
I expected these to be ordinary entrances and exits, rather naive of me. Great work finding these though! To change where you can land and surface in the Underworld/Overworld will allow the modder the chance to change the landscape to a greater extent!

1309
Always a joy to re-read that wonderful guide. But oy... so many glitches one has to watch out for. It's a shame that no SNES version fixes the Slow Petrify and Count bugs.

1310
That's not a bad idea. Also do you happen to know if the Gradual Petrify and Doom Bugs are fixed in any other SNES version of FFIV? If we could figure out how to fix that, it opens up more options for the player to use.

1311
Alright, so I figured out a work around to get the game to work with Active ATB from the start.

I put a write on the Initial Color of Menu's and after a minute or so of holding "run" saw that it escaped its loop to... end up 3 bytes from it's initial starting point. But this is all that I ended up needing.

In LoRom/HiRom...

0x19B2B - A2 00 30 (LDX 0030)- Default Window Color for new files.
0x19B2E - 8E AA 16 (STX 16AA)- Where to store default colors.

In ROM...

0x9D2B - A2 00 30 (LDX 0030)- Default Window Color for new files.
0x9D2E - 8E AA 16 (STX 16AA)- Where to store default colors.

With this you can... well change the starting file to any color you like But more importantly for my purposes I switched its function.

I change 8EAA16 to 8EBD16 - Making it change the value at 7EBD16 causing Active ATB to activate. The only downside is that the game starts with a black menu instead of a blue one. A small price to pay and can be easily changed. Besides, Black always appealed to me more, haha.

 :edit: I had no idea there was a choosable formula based on physical attack power! I swear I never saw that in any earlier version of the editor. Great find, considering all named abilities don't use it!

 :edit: 2: How interesting. Though it is clearly based on Physical Power, Magical Defense is the stat taken into consideration.

 :edit: 3: Element, whether it be of weapon or set by the ability itself, is not taken into consideration.

 :edit: 4: Spell power does nothing to the power of this formula.

1312
I thought to add some of my miscellaneous and not very ground breaking findings here since there's no other real topic.

We all know that we can switch the first effect of Sing's effect to actually Do Something, but the game will still give the message "Nothing Happened" for the Song's effect. Now we obviously can't change that because it's used by a lot of other things but we can now change which battle message its referring to in order to fix that annoyance.

In LoRom/HiRom

0x3E9017 - A9 00 (LDA 00) - Stores message 00 for the first instance of Sing's effects.
0x3E901C - A9 00 (LDA 00) - Seems to be necessary to change both, otherwise both are considered 00 regardless of what they actually are.

In ROM at...

01EB17 - A9 00 (LDA 00) - Stores message 00 for the first instance of Sing's effects.
01EB1C - A9 00 (LDA 00) - Seems to be necessary to change both, otherwise both are considered 00 regardless of what they actually are.

1313
Oh no, it's just the Active Time Battle being set to... well Active instead of Wait as it is by default in FFII US with no way to change it. I recall that Dragonsbrethren ported the menu from FFIV Easytype over to our FFII and the ATB type was there to change... I think.

Also interesting idea you have with your TAAY, mine is set quite a bit further in the future and the complications that would rise from such arrangements as hinted at in the ending of FFIV:TAY.

 :edit: It seems event flags are stored from 1280 to 12DF - Meaning there should be 95 Event Flags, that is of course if they aren't stored in a bit fashion.

One of the CMP 04's must be in regards to when you first enter the Underworld. Whenever you clear that flag you can reboard the Airship but it will continually take you to the crash scene.

1314
Final Fantasy IV Research & Development / Re: What is known about vehicles?
« on: September 03, 2013, 12:20:32 AM »
Hmm, the Event Flag is 49 (30 or 31 in Hex) but I've taken a look and I've come up empty as well. There are several CMP for the Enterprise, but nothing of much value as far as I can make out.

1315
If you haven't yet tried TAY you should watch an LP of it if you have the time. HCBailly made a fantastic FFIV TAY LP, his favorite game of all time is FFIV and for the most part treats FFIV-TAY with the respect it deserves. Though since you're making such a story I imagine you've likely at least read the plot outline.

I am pretty sure Dragonsbrethren had to have found this some time in the past but I've located the ATB byte for FF2 US in RAM (For real this time!) at...

7E16BE - Enables ATB by changing the value there to 01.

Unfortunately I can't find this in ROM, though it should exist somewhere...



1316
Final Fantasy IV Research & Development / Re: Changing details of Dark Wave
« on: September 02, 2013, 10:07:07 PM »
Heh, old habits die hard I suppose...

Now the around that area is pretty messy, but I'll grab it and see if you can't figure something out... starting from what I think is the relevant portion... though a warning, it is very long.

Code: [Select]
$03/E76F 85 CA STA $CA    [$00:00CA] A:0000 X:0000 Y:0000 P:envMxdiZc
$03/E771 A5 C7 LDA $C7    [$00:00C7] A:0000 X:0000 Y:0000 P:envMxdiZc
$03/E773 AA TAX A:0006 X:0000 Y:0000 P:envMxdizc
$03/E774 BD 40 35 LDA $3540,x[$7E:3546] A:0006 X:0006 Y:0000 P:envMxdizc
$03/E777 D0 68 BNE $68    [$E7E1] A:0000 X:0006 Y:0000 P:envMxdiZc
$03/E779 A5 C7 LDA $C7    [$00:00C7] A:0000 X:0006 Y:0000 P:envMxdiZc
$03/E77B 20 89 84 JSR $8489  [$03:8489] A:0006 X:0006 Y:0000 P:envMxdizc

$03/8489 8D 2F 35 STA $352F  [$7E:352F] A:0006 X:0006 Y:0000 P:envMxdizc
$03/848C 85 DF STA $DF    [$00:00DF] A:0006 X:0006 Y:0000 P:envMxdizc
$03/848E A9 80 LDA #$80 A:0006 X:0006 Y:0000 P:envMxdizc - (Looks to be where the game grabs the 80 for Dark Wave)
$03/8490 85 E1 STA $E1    [$00:00E1] A:0080 X:0006 Y:0000 P:eNvMxdizc
$03/8492 20 E0 83 JSR $83E0  [$03:83E0] A:0080 X:0006 Y:0000 P:eNvMxdizc

$03/83E0 64 E0 STZ $E0    [$00:00E0] A:0080 X:0006 Y:0000 P:eNvMxdizc
$03/83E2 64 E2 STZ $E2    [$00:00E2] A:0080 X:0006 Y:0000 P:eNvMxdizc
$03/83E4 C2 20 REP #$20 A:0080 X:0006 Y:0000 P:eNvMxdizc
$03/83E6 A2 10 00 LDX #$0010 A:0080 X:0006 Y:0000 P:eNvmxdizc
$03/83E9 64 E3 STZ $E3    [$00:00E3] A:0080 X:0010 Y:0000 P:envmxdizc
$03/83EB 9C 4D 39 STZ $394D  [$7E:394D] A:0080 X:0010 Y:0000 P:envmxdizc
$03/83EE 66 E1 ROR $E1    [$00:00E1] A:0080 X:0010 Y:0000 P:envmxdizc
$03/83F0 90 09 BCC $09    [$83FB] A:0080 X:0010 Y:0000 P:envmxdizc
$03/83FB 6E 4D 39 ROR $394D  [$7E:394D] A:0080 X:0010 Y:0000 P:envmxdizc
$03/83FE 66 E3 ROR $E3    [$00:00E3] A:0080 X:0010 Y:0000 P:envmxdiZc
$03/8400 CA DEX A:0080 X:0010 Y:0000 P:envmxdiZc
$03/8401 D0 EB BNE $EB    [$83EE] A:0080 X:000F Y:0000 P:envmxdizc
$03/83EE 66 E1 ROR $E1    [$00:00E1] A:0080 X:000F Y:0000 P:envmxdizc
$03/83F0 90 09 BCC $09    [$83FB] A:0080 X:000F Y:0000 P:envmxdizc
(Data decrementing, skipping...)

$03/8403 7B TDC A:0006 X:0000 Y:0000 P:envmxdiZc
$03/8404 E2 20 SEP #$20 A:0000 X:0000 Y:0000 P:envmxdiZc
$03/8406 60 RTS A:0000 X:0000 Y:0000 P:envMxdiZc
-------------------
$03/8495 A6 E3 LDX $E3    [$00:00E3] A:0000 X:0000 Y:0000 P:envMxdiZc
$03/8497 86 A6 STX $A6    [$00:00A6] A:0000 X:0300 Y:0000 P:envMxdizc
$03/8499 AD 2F 35 LDA $352F  [$7E:352F] A:0000 X:0300 Y:0000 P:envMxdizc
$03/849C 85 DF STA $DF    [$00:00DF] A:0006 X:0300 Y:0000 P:envMxdizc
$03/849E A9 15 LDA #$15 A:0006 X:0300 Y:0000 P:envMxdizc
$03/84A0 85 E1 STA $E1    [$00:00E1] A:0015 X:0300 Y:0000 P:envMxdizc
$03/84A2 20 E0 83 JSR $83E0  [$03:83E0] A:0015 X:0300 Y:0000 P:envMxdizc

$03/83E0 64 E0 STZ $E0    [$00:00E0] A:0015 X:0300 Y:0000 P:envMxdizc
$03/83E2 64 E2 STZ $E2    [$00:00E2] A:0015 X:0300 Y:0000 P:envMxdizc
$03/83E4 C2 20 REP #$20 A:0015 X:0300 Y:0000 P:envMxdizc
$03/83E6 A2 10 00 LDX #$0010 A:0015 X:0300 Y:0000 P:envmxdizc
$03/83E9 64 E3 STZ $E3    [$00:00E3] A:0015 X:0010 Y:0000 P:envmxdizc
$03/83EB 9C 4D 39 STZ $394D  [$7E:394D] A:0015 X:0010 Y:0000 P:envmxdizc
$03/83EE 66 E1 ROR $E1    [$00:00E1] A:0015 X:0010 Y:0000 P:envmxdizc
$03/83F0 90 09 BCC $09    [$83FB] A:0015 X:0010 Y:0000 P:envmxdizC
$03/83F2 18 CLC A:0015 X:0010 Y:0000 P:envmxdizC
$03/83F3 A5 DF LDA $DF    [$00:00DF] A:0015 X:0010 Y:0000 P:envmxdizc
$03/83F5 6D 4D 39 ADC $394D  [$7E:394D] A:0006 X:0010 Y:0000 P:envmxdizc
(As above, it loops a timer or something... skipping)
---------------------

$03/8401 D0 EB BNE $EB    [$83EE] A:0007 X:0000 Y:0000 P:envmxdiZc
$03/8403 7B TDC A:0007 X:0000 Y:0000 P:envmxdiZc
$03/8404 E2 20 SEP #$20 A:0000 X:0000 Y:0000 P:envmxdiZc
$03/8406 60 RTS A:0000 X:0000 Y:0000 P:envMxdiZc
$03/84A5 A6 E3 LDX $E3    [$00:00E3] A:0000 X:0000 Y:0000 P:envMxdiZc
$03/84A7 8E 30 35 STX $3530  [$7E:3530] A:0000 X:007E Y:0000 P:envMxdizc
$03/84AA AD 2F 35 LDA $352F  [$7E:352F] A:0000 X:007E Y:0000 P:envMxdizc
$03/84AD 85 DF STA $DF    [$00:00DF] A:0006 X:007E Y:0000 P:envMxdizc
$03/84AF A9 37 LDA #$37 A:0006 X:007E Y:0000 P:envMxdizc
$03/84B1 85 E1 STA $E1    [$00:00E1] A:0037 X:007E Y:0000 P:envMxdizc
$03/84B3 20 E0 83 JSR $83E0  [$03:83E0] A:0037 X:007E Y:0000 P:envMxdizc

(Repeat of Data we've seen before it's jumping to the exact same place)

$03/84B6 A6 E3 LDX $E3    [$00:00E3] A:0000 X:0000 Y:0000 P:envMxdiZc
$03/84B8 8E 32 35 STX $3532  [$7E:3532] A:0000 X:014A Y:0000 P:envMxdizc
$03/84BB AD 2F 35 LDA $352F  [$7E:352F] A:0000 X:014A Y:0000 P:envMxdizc
$03/84BE 85 DF STA $DF    [$00:00DF] A:0006 X:014A Y:0000 P:envMxdizc
$03/84C0 A9 1C LDA #$1C A:0006 X:014A Y:0000 P:envMxdizc
$03/84C2 85 E1 STA $E1    [$00:00E1] A:001C X:014A Y:0000 P:envMxdizc
$03/84C4 20 E0 83 JSR $83E0  [$03:83E0] A:001C X:014A Y:0000 P:envMxdizc

(As above)

$03/84C7 A6 E3 LDX $E3    [$00:00E3] A:0000 X:0000 Y:0000 P:envMxdiZc
$03/84C9 8E 34 35 STX $3534  [$7E:3534] A:0000 X:00A8 Y:0000 P:envMxdizc
$03/84CC AD 2F 35 LDA $352F  [$7E:352F] A:0000 X:00A8 Y:0000 P:envMxdizc
$03/84CF AA TAX A:0006 X:00A8 Y:0000 P:envMxdizc
$03/84D0 8E 3D 39 STX $393D  [$7E:393D] A:0006 X:0006 Y:0000 P:envMxdizc
$03/84D3 A2 20 01 LDX #$0120 A:0006 X:0006 Y:0000 P:envMxdizc
$03/84D6 8E 3F 39 STX $393F  [$7E:393F] A:0006 X:0120 Y:0000 P:envMxdizc
$03/84D9 20 B9 83 JSR $83B9  [$03:83B9] A:0006 X:0120 Y:0000 P:envMxdizc

$03/83B9 C2 20 REP #$20 A:0006 X:0120 Y:0000 P:envMxdizc
$03/83BB A2 10 00 LDX #$0010 A:0006 X:0120 Y:0000 P:envmxdizc
$03/83BE 9C 41 39 STZ $3941  [$7E:3941] A:0006 X:0010 Y:0000 P:envmxdizc
$03/83C1 9C 43 39 STZ $3943  [$7E:3943] A:0006 X:0010 Y:0000 P:envmxdizc
$03/83C4 6E 3F 39 ROR $393F  [$7E:393F] A:0006 X:0010 Y:0000 P:envmxdizc
$03/83C7 90 0A BCC $0A    [$83D3] A:0006 X:0010 Y:0000 P:envmxdizc
$03/83D3 6E 43 39 ROR $3943  [$7E:3943] A:0006 X:0010 Y:0000 P:envmxdizc
$03/83D6 6E 41 39 ROR $3941  [$7E:3941] A:0006 X:0010 Y:0000 P:envmxdiZc
$03/83D9 CA DEX A:0006 X:0010 Y:0000 P:envmxdiZc
$03/83DA D0 E8 BNE $E8    [$83C4] A:0006 X:000F Y:0000 P:envmxdizc
$03/83C4 6E 3F 39 ROR $393F  [$7E:393F] A:0006 X:000F Y:0000 P:envmxdizc
$03/83C7 90 0A BCC $0A    [$83D3] A:0006 X:000F Y:0000 P:envmxdizc
(Repeated data, ignored...)

$03/83DC 7B TDC A:0006 X:0000 Y:0000 P:envmxdiZc
$03/83DD E2 20 SEP #$20 A:0000 X:0000 Y:0000 P:envmxdiZc
$03/83DF 60 RTS A:0000 X:0000 Y:0000 P:envMxdiZc

$03/84DC AE 41 39 LDX $3941  [$7E:3941] A:0000 X:0000 Y:0000 P:envMxdiZc
$03/84DF 8E 36 35 STX $3536  [$7E:3536] A:0000 X:06C0 Y:0000 P:envMxdizc
$03/84E2 60 RTS A:0000 X:06C0 Y:0000 P:envMxdizc

$03/E77E A6 A6 LDX $A6    [$00:00A6] A:0000 X:06C0 Y:0000 P:envMxdizc - (Back into the main subroutine)

$03/E780 BD 03 20 LDA $2003,x[$7E:2303] A:0000 X:0300 Y:0000 P:envMxdizc
$03/E783 29 C0 AND #$C0 A:0000 X:0300 Y:0000 P:envMxdiZc
$03/E785 D0 5A BNE $5A    [$E7E1] A:0000 X:0300 Y:0000 P:envMxdiZc
$03/E787 BD 05 20 LDA $2005,x[$7E:2305] A:0000 X:0300 Y:0000 P:envMxdiZc - (Looking at Monster's status?)

$03/E78A 29 02 AND #$02 A:0000 X:0300 Y:0000 P:envMxdiZc
$03/E78C D0 53 BNE $53    [$E7E1] A:0000 X:0300 Y:0000 P:envMxdiZc
$03/E78E BD 06 20 LDA $2006,x[$7E:2306] A:0000 X:0300 Y:0000 P:envMxdiZc - (Looking at third byte of Monster status?)

$03/E791 30 4E BMI $4E    [$E7E1] A:0000 X:0300 Y:0000 P:envMxdiZc
$03/E793 BD 40 20 LDA $2040,x[$7E:2340] A:0000 X:0300 Y:0000 P:envMxdiZc - (Look at Monster's Creature Type)

$03/E796 29 48 AND #$48 A:0080 X:0300 Y:0000 P:eNvMxdizc
$03/E798 D0 47 BNE $47    [$E7E1] A:0000 X:0300 Y:0000 P:envMxdiZc
$03/E79A A5 C1 LDA $C1    [$00:00C1] A:0000 X:0300 Y:0000 P:envMxdiZc
$03/E79C F0 0D BEQ $0D    [$E7AB] A:0001 X:0300 Y:0000 P:envMxdizc
$03/E79E BD 40 20 LDA $2040,x[$7E:2340] A:0001 X:0300 Y:0000 P:envMxdizc
$03/E7A1 10 08 BPL $08    [$E7AB] A:0080 X:0300 Y:0000 P:eNvMxdizc
$03/E7A3 46 CA LSR $CA    [$00:00CA] A:0080 X:0300 Y:0000 P:eNvMxdizc
$03/E7A5 66 C9 ROR $C9    [$00:00C9] A:0080 X:0300 Y:0000 P:envMxdiZc
$03/E7A7 46 CA LSR $CA    [$00:00CA] A:0080 X:0300 Y:0000 P:envMxdizC
$03/E7AB A5 C1 LDA $C1    [$00:00C1] A:0080 X:0300 Y:0000 P:envMxdizc
$03/E7AD D0 20 BNE $20    [$E7CF] A:0001 X:0300 Y:0000 P:envMxdizc
$03/E7CF A6 C9 LDX $C9    [$00:00C9] A:0001 X:0300 Y:0000 P:envMxdizc
$03/E7D1 F0 F7 BEQ $F7    [$E7CA] A:0001 X:0006 Y:0000 P:envMxdizc
$03/E7D3 A5 C7 LDA $C7    [$00:00C7] A:0001 X:0006 Y:0000 P:envMxdizc
$03/E7D5 0A ASL A A:0006 X:0006 Y:0000 P:envMxdizc
$03/E7D6 AA TAX A:000C X:0006 Y:0000 P:envMxdizc
$03/E7D7 A5 C9 LDA $C9    [$00:00C9] A:000C X:000C Y:0000 P:envMxdizc
$03/E7D9 9D D4 34 STA $34D4,x[$7E:34E0] A:0006 X:000C Y:0000 P:envMxdizc

$03/E7DC A5 CA LDA $CA    [$00:00CA] A:0006 X:000C Y:0000 P:envMxdizc
$03/E7DE 9D D5 34 STA $34D5,x[$7E:34E1] A:0000 X:000C Y:0000 P:envMxdiZc
$03/E7E1 E6 C7 INC $C7    [$00:00C7] A:0000 X:000C Y:0000 P:envMxdiZc
$03/E7E3 A5 C7 LDA $C7    [$00:00C7] A:0000 X:000C Y:0000 P:envMxdizc
$03/E7E5 C5 C3 CMP $C3    [$00:00C3] A:0007 X:000C Y:0000 P:envMxdizc
$03/E7E7 F0 03 BEQ $03    [$E7EC] A:0007 X:000C Y:0000 P:eNvMxdizc
$03/E7E9 4C 5B E7 JMP $E75B  [$03:E75B] A:0007 X:000C Y:0000 P:eNvMxdizc
$03/E75B 7B TDC A:0007 X:000C Y:0000 P:eNvMxdizc
$03/E75C AA TAX A:0000 X:000C Y:0000 P:envMxdiZc
$03/E75D A5 C5 LDA $C5    [$00:00C5] A:0000 X:0000 Y:0000 P:envMxdiZc
$03/E75F 20 79 83 JSR $8379  [$03:8379] A:000F X:0000 Y:0000 P:envMxdizc

And I think by this point we have left the proper subroutine... I could be wrong though.

I saw only one addition of 80 throughout that entire thing and it's in a spot that seems to be accessed by a lot of battle matters. 80 looks to be the Undead byte if the Zombie's Monster data is anything to go off of.

And here's the thing that really gets me... if I try to change the Creature Look up type as shown above nothing appears to happen, but if I change the 80 to something else (that doesn't make the game go strange) then Dark Wave's Zombie resistance is gone. I am really quite confused by this. I found this by placing a breakpoint on the Monster's creature type and to see what accessed it.

1317
Final Fantasy IV Research & Development / Re: Changing details of Dark Wave
« on: September 02, 2013, 08:42:30 PM »
Alright, I think I found what we're looking for, but it's another unfortunate piece of news...

In RAM....

0x03848E - A9 80 - LDA 80 - This appears to be the "Creature Type check" byte. It's not actually a 1, but a low number from 1-9 it appears. It seems to be separated into bits. 8X = HP Damage (Changing that gets Really weird, really fast), 0 = Undead byte apparently, since it seems to be bit 0 according to Yousei's old notes. Now the problem is that changing this byte to other things may not cause the desired result. It's a very good possibility that this 80 is used for other things and possibly many other things as seeing when its changed in specific manners attacking monsters will die on the spot.

In this case the smart thing to do would be to take the JMP to 038489 (JSR 8489) and somehow reroute it to another LDA 80 (or what have you) that will return using the same measures. But I somewhat doubt that could be done without writing custom code unfortunately and finding spare space for it because  I believe this 80 is just matching it against the monster's type and deciding damage from there.

1318
Final Fantasy IV Research & Development / Re: Item effects outside of battle
« on: September 02, 2013, 06:14:29 PM »
Here's something I thought was interesting. Instead of using the #DEC (Decrement) command as they normally do with some things in FFIV to minus specific value by 1, the instruction in the Salve Subroutine has a full E9 01, which means SBC 01, so you could make the Salve command say take 2 or 3 of the chosen item instead of 1, in case you wanted to split something that you think might be too good for just one (Phoenix Down's per instance...)

In RAM at...

0x03E30A C901 - CMP 01 - Is there one item?
0x03E312 E901 - SUB 01 - Remove one item.

In ROM at...

0x01E50A C901 - CMP 01 - Is there one item?
0x01E512 E901 - SUB 01 - Remove one item.

1319
Final Fantasy IV Research & Development / Re: Changing details of Dark Wave
« on: September 02, 2013, 06:04:11 PM »
I haven't taken a good look, but in theory it should be around the Dark Wave specialty sections of RAM, likely close to the HP decrease routine. I'm not sure what the data looks like in pure hex, but seeing it on a monster should give me some idea.

1320
A small update. While it seems difficult to get multi-targetted life spells to work under ordinary circumstances using Edward's Salve command to use Phoenix Downs works Perfectly. All fallen characters are revived at the same time. The only issue appears to be that it takes the Vitality of the closest fallen character to the top of the list. But that's a minor manner.

Though I think I'm starting to understand why that is somewhat difficult... Magic, by-and-large targets the living and Only the living, therefore when you put a live target into the targetting range of any Spell (not command apparently) the game will assume that is only the ones who are alive are being cast upon. Asura's Life spell is the exception to this.