øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=278;area=showposts;start=270e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexe1d2-2.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=278e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexe1d2-2.html.zxÀåg^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈàW÷OKtext/htmlISO-8859-1gzip@øÕW÷ÿÿÿÿÿÿÿÿTue, 10 Mar 2020 19:25:11 GMT0ó°° ®0®P®€§²ð®¿åg^ÿÿÿÿÿÿÿÿD!W÷ Show Posts - chillyfeez

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 - chillyfeez

271
I think I worked this out!

So, the original assembly does this:
Code: [Select]
$03/D54F AD 2B 27    LDA $272B  [$7E:272B]   ;Load target's status immunity 1
$03/D552 2D A3 28    AND $28A3  [$7E:28A3]   ;AND immunity 1 with status to inflict 1
$03/D555 D0 06       BNE $06    [$D55D]      ;If any immunity matches any status to inflict, fail any further operations
$03/D557 AD 2C 27    LDA $272C  [$7E:272C]   ;Load target's status immunity 2
$03/D55A 2D A4 28    AND $28A4  [$7E:28A4]   ;AND immunity 2 with status to inflict 2
$03/D55D D0 53       BNE $53    [$D5B2]      ;fail pending any matches
$03/D55F AD 03 27    LDA $2703  [$7E:2703]   ;Load target's status byte 1
$03/D562 05 AE       ORA $AE    [$00:00AE]   ;add in all applicable statuses to inflict
$03/D564 8D 03 27    STA $2703  [$7E:2703]   ;store in target's status byte 1
$03/D567 AD 04 27    LDA $2704  [$7E:2704]   
$03/D56A 05 AD       ORA $AD    [$00:00AD]   
$03/D56C 8D 04 27    STA $2704  [$7E:2704]   ;perform same operation with status 2

Obviously, the problem with this is that any immunity to any applicable status will fail the whole routine.

So I replaced that chunk of code with this (which is the same exact length thanks to some extreme variable storing on the part of the original developers):
Code: [Select]
$03/D54F AD 2B 27    LDA $272B  [$00:272B]   ;Load Target's Status Immunity Byte 1
$03/D552 49 FF       EOR #$FF                ;Perform Exclusive OR (this turns "on" all bits that are "off" and turns "off" all bits that are "on"), thus turning "status Immunity" into "status vulnerability"
$03/D554 25 AE       AND $AE    [$00:06AE]   ;AND status vulnerability 1 with status to inflict 1 (leaving only the vulnerable statuses to inflict)
$03/D556 85 AE       STA $AE    [$00:06AE]   ;Store the result into status to inflict 1
$03/D558 AD 2C 27    LDA $272C  [$00:272C]   ;
$03/D55B 49 FF       EOR #$FF                ;
$03/D55D 25 AD       AND $AD    [$00:06AD]   ;
$03/D55F 85 AD       STA $AD    [$00:06AD]   ;Perform the same operation with status immunity 2 and status to inflict 2
$03/D561 A5 AC       LDA $AC    [$00:06AC]   ;Load target's current status 1 (already stored here earlier in the routine)
$03/D563 05 AE       ORA $AE    [$00:06AE]   ;add in all applicable statuses to inflict (1)
$03/D565 8D 03 27    STA $2703  [$00:2703]   ;Store in target's current status 1
$03/D568 A5 AB       LDA $AB    [$00:06AB]   ;
$03/D56A 05 AD       ORA $AD    [$00:06AD]   ;
$03/D56C 8D 04 27    STA $2704  [$00:2704]   ;Perform same operation with status 2

And there you have it! I tested it out, having a monster use Breath on a party that had two completely vulnerable, one with Blind immunity and one with Mute immunity. All statuses applied to all targets with the exception of those that they were immune to.

Looking at the code, i can see one possible drawback to this fix - this will force the game to consider any execution of this routine "successful," thus it will always dispel Berserk status (which the original one does upon any successful hit), even if it doesn't inflict any new statuses. But I think I can live with that.

Thoughts?

272
Final Fantasy IV Research & Development / Re: Japanese Title Screen
« on: December 01, 2015, 02:42:13 PM »
Well, just for Namingway, but my understanding is that the save point desync isn't an issue with regular User Options. Am I wrong?
Namingway uses a special hybrid of User Options that I never released to the general public that is more like "hold B to dash" than the toggle in User Options.

273
Aww, bummer, well then maybe a universal fix isn't in the cards, but it's definitely getting changed in TfW.

274
I have an idea how it can be fixed, and I think you noted that there are 19 bytes in that routine that are completely unneeded, right? That should be plenty.

275
The same thing happens with physical attacks that inflict multiple status ailments.
Oh, for cryin' out loud...

276
Delving into Grimoire's notes here, it appears as though that is how the routine is written...
Well, that's ridiculous.
I definitely need to change that.

277
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?

278
Final Fantasy IV Research & Development / Re: Japanese Title Screen
« on: November 26, 2015, 11:49:40 PM »
OK, to give us a complete control group, I just downloaded a fresh ffiv 1.1 ROM (from doperoms), a fresh Namingway edition patch (from rhdn), and the desync fix patch (from a couple posts above here) onto my tablet, which had none of the above.
I patched Namingway onto the clean ROM and played a new game up to the first save point (in the watery pass).
I tested it out to make sure the desync would occur when dashing onto the save point. It did, specifically when approaching from above and from the right.
Then I saved, stopped the game, and applied the desync fix patch.
Then I loaded my game, tested it again, and the fix worked. I must have dashed onto the save point twenty times at least, and not one desync.

279
Final Fantasy IV Research & Development / Re: Japanese Title Screen
« on: November 26, 2015, 10:54:06 PM »
Um... It would definitely be completely impossible for the file linked here to turn a clean ROM into Namingway Edition on its own. This patch is literally only 28 bytes long and only changes ten bytes of the ROM.
For the sake of comparison, your Namingway Edition patch is 241,309 bytes long...

280
Final Fantasy IV Research & Development / Re: Japanese Title Screen
« on: November 26, 2015, 02:29:19 PM »
Rodimus, try this for Namingway Edition. Hope it helps...

281
Quote
Sucks to hear that the trumpet wouldn't make a good substitute. I was about to suggest perhaps having two trumpet tracks at relative octaves to try to imitate the sound you're looking for.
Might be worth a try. As it is, I have exactly one unused track, and having two tracks play the same music in different octaves uses minimal ROM space.

282
It'd take some doing, but what about death status? At least in the SNES version, there are a ton of things that ref the bit,  but it's definitely redundant, since you can technically just ref HP instead. Likewise for "critical," now that I think about it... And probably easier as it's not referenced in nearly as many places.

Here's another thought... I don't know what the GBA RAM looks like, but SNES ffiv has a HUGE block of completely unused RAM in the late 7E's. In the NSES version, the critical bit could very easily be relocated to that block, as it's only referenced in battle, which would leave the normal bit available for protect or shell. Of course if GBA uses less RAM, or actually uses more of the RAM it uses, then that's a moot point.

283
Re: the black chocobo on the one tile-wide strip - you have to wait until he goes all the way south. There's one tile south of the bridge you're coming from. when he gets there you can walk past. You can also push him along as he moves north - NPCs walk faster if you push them. Just make sure to get out of his way as he heads south again so he can make it to that one important tile.

Re: the instrument at :35 and :57 - I think that's the harp I was talking about in my last post. I really wish ffiv had a French horn...

284
...huh. I wonder if I could have made my life, like, 1000 times easier if I had known that when I was researching the game's music engine.

I think the inspirations for this song were the ice cavern in ffix and the cave/dungeon music from FFT. I was originally worried that it wasn't interesting enough. It doesn't sound much like what I originally composed in midi, because ffiv's instrument samples are terrible. I think it came out interesting enough, though. The timpani is my favorite part, I think. I don't know about the harp part (the really quiet one). That was originally composed as a French horn, which ffiv doesn't even have. Thought I could maybe substitute trumpet, but that sounds terrible.

Anyway, there you have it...

285
Here's a patch that replaces the Main Title Theme (Crystal Room music) with the new song, so it will play right on startup. That's not what I'll be replacing in TfW - it's just for demo purposes.
Apply to an unheadered 1.1 ROM.
If it's possible to save to an spc file, that is not something I've learned how to do.
 :blush: