øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=278;area=showposts;start=750e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index2b34.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=278e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index2b34.html.zxÏåg^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ0P.OKtext/htmlISO-8859-1gzip8:ÖÿÿÿÿÿÿÿÿTue, 10 Mar 2020 19:25:26 GMT0ó°° ®0®P®€§²ð®Îåg^ÿÿÿÿÿÿÿÿ, 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

751
It gets cut off after "current flag," but it should read "current flag plus [whatever number you selected]."
In the actual AI, selecting anything below 80 there sets the event flag to whatever it is plus that value. Over 80 sets the flag to that value minus 80.
Does that help?

752
Has anybody else played the android FFIV:TAY?

The graphical style seems to be based on that of the DS remake of FFIV (polygons instead of sprites), whereas every screenshot I've seen before of any version looks more like it's mimicking SNES (or GBA).

While I do loves me some retro gaming, I can appreciate when SquareEnix puts the effort into revamping old favorites, but I find it hard to believe they did it solely for the mobile market (which I imagine is still pretty small vs the console market for the FF series).

753
Ah, I hadn't noticed that! That is very helpful!

754
Final Fantasy IV Research & Development / Re: The Drawing Board
« on: August 11, 2014, 09:00:25 PM »
I might need you to explain it a bit before we can go any further here.

Specifically, examples that explain where each of the variables come from within a given example.
For instance: let's say I want to calculate Rydia's Agi at Lv. 42.
I assume that the necessary info would be her starting level (1) and her starting Agi score (4). Then all of your fancy maths come into play... I think I kind of need you to, now that you've figured all of this out, teach me how to use it.
I definitely want to eventually implement all of this, but you'll have to guide me for a bit (with the math, I can handle the ASM part).

A couple of other things I should put out there. Even once I do understand it all enough to start coding, I have a couple of other things on my agenda it will have to contend with.
I promised myself I would work on finishing the next chapter in my hack once I was done with the Shadow Mod (as in, the chapter I was talking about finishing before I started working on the Shadow Mod) I'm very close (relatively), and I don't want to leave it hanging.
Also, I just discovered that TAY is available in the Play Store, meaning I finally own a device that will enable me to play it, so I do intend on spending some of my free time with that as well.

Please don't interpret all this as me brushing you aside, though. I don't want to understate the importance (at least to the world of FFIVhacking) of the potential that is unlocked by what you've done here, and I'm just the kind of nerd to take the next step with it. But I am a bit exhausted, too.

755
By the time I got this put together yesterday, I was happy to be finally "done," but , yes, there will be a "skip shadow exp division" patch.
As I recall, the exp division was a subroutine, so I just have to find where I put that jump and blank it out.
Possibly this afternoon, I'll be compiling disassemblies of everything in the patch, at which point I will undoubtedly find said jump. So whenever I get there, I'll put the patch together.

You were already my hero, so I guess now we're even.

756
... Yeah... Tellah and Recall. Unfortunately, this hack does not allow Tellah to "lose" Recall. I may be able to put that back in at some point, but it's not a big enough concern at the moment.

I got the imp spell in a test run, too! Those jerks...

Yeah, I'm equal parts looking forward to and dreading LordGarmonde finishing his stat algorithms. It should help circumnavigate whatever weirdness is going on in the level up routine that causes the issues in my shadow hack, but will of course require a full rewrite of the level up routine.

757
Oh, yeah, I did forget to include disassembles.
Well, I'll have to compile.
All of the purely custom code is in the 4/B000s (LoROM, that's the 2/3000s in ROM), but there are also some modifications made to some already a existing routines, such as exp awarding.

758
It's alive!



IT'S ALIIIIIIVE!

*whew*
Ok, at long last, here it is!
Is it perfect?
No... there are a few oddities that will be discussed below.
Is it really cool?
Well, I think so, but judge for yourself.

First of all, what's attached:
-ShadowMod.ips - This is the Mod, and nothing else
-ShadowTest.ips - This is the same thing, except the town of Baron has Cid standing right at the entrance. Talk to him, and you will hear the "cure" sound, then open your menu and you will see Edge has been added to your party. Talk to Cid again and you'll here the "Thunder" sound, and Edge is gone - added to the shadow.
You can change which character is added/deleted from the party by editing the events in Ff4kster (the events changed here are "Behemoth Battle 51" and "Behemoth Battle 52"). The Mod is, for the most part, compatible with Ff4kster, but, beware that there are not as many Actors as there used to be, since adding and removing always adds and removes the same actor. This leads me to...
-actors.dat - replace the actors.dat config file in Ff4kster with this one in order to make sure you're adding/removing the right actors. Only the valid choices will appear as character's names, all other choices are marked "empty" and should be left alone.
Also, I say this is "compatible with Ff4kster," but this assertion is not fully tested. If I were you, I would avoid editing "Characters" or "Actors," as this mod does make specific references to those sets of data, and I don't know how changing them would affect how it all works (changing initial equipment should be safe, though).

Now, what else is important to say?

Ah, yes - This mod only implements the ability to smoothly add and remove all characters to and from the Shadow. I did NOT go through every event in the game and correct all instances of adding and removing characters. You'll have to do that yourself.

Once a character is first added to the party, s/he will continue to divide and receive experience thereafter. So, by the end of the game, all experience will be divided by 13 and every character will receive this amount, whether in the main party or not. Making a patch to undo this division among the shadow would be easy enough, making a patch to avoid awarding experience to the shadow party, not so much.

As mentioned previously, Child Rydia and Adult Rydia share the same shadow data. Adult Rydia will not load correctly unless Child Rydia has been added and removed at least once. Adding both to the party at the same time will cause confusion and/or glitches and is therefore not advisable.

Equipment is saved and loaded. So, when Adult Rydia comes back, for instance, she will be equipped with whatever Child Rydia had equipped when she was removed (instead of the whip and whatever else she normally comes with). The same goes for Kain, Rosa, &c... any character who normally did use the shadow and came back with new equipment, now will not.

Finally, and this is the least happy part of this story, while I did finally get TNLs to calculate correctly, the leveling up system is not perfect. A couple of characters - as I recall, P. Cecil and FuSoYa - will have trouble leveling up completely if they gain a ton of experience in the shadow. For example, if you get P. Cecil enough experience to level up to 99 while he's in the shadow, then add him back to the party, he may only level up to 32 or so. If you remove and add him again, he will level up further, but it usually takes about for or five adds and removes before he comes out right. I don't know why this happens, but it has something to do with the game's regularly programmed level up routine, so I can't really fix it.
A few other characters similarly will only level up to 98 instead of 99 (I think DK Cecil, Tellah, possibly one or two more). Those characters will, however, reach 99 after one battle (even with 3 Imps).

I think that's all there is to say here. If you discover any weirdness that I may have missed, feel free to let me know. I promised myself that I'd take a break from the Shadow hack for a while by the time I got to this point, but I'm not against the idea of making big corrections down the road if there is a need.

Have fun!

 :edit:
It's come to my attention that this mod and User Options are not compatible. While I don't plan on going back and checking for the compatibility of all of my mods, I do acknowledge that these two may be those of most value and interest to ROM hackers with larger projects in mind. In light of that, I've developed a patch that will ensure compatibility between the two. Bear in mind that I can only guarantee this will work on a ROM that has no other custom code inserted (edited with FF4kster should be fine, though) beforehand.

Follow the steps in this order:
1) Apply User Options (this will work with versions 2.2 and later)
2) Apply the Shadow Mod
3) Download and apply the patch below, "UO-Shadow Fix.ips"

759
Also, Happy Birthday chillyfeez!  :happy:

Thanks! I was hoping, with a day off today, my birthday present to myself could be finally finishing this patch, but alas, alas...

Out of curiosity how Does the TNL work? Does it look at your current Exp. and see if it matches or is above it then loads the next TNL? Or does it look at things in a more dynamic fashion and go down as it tries to reach less than 000000 to reach the next level?

Well, more like the first choice there, but it's much more stupid than that. I don't know exactly how the game interprets the data, but this is how it all looks:
The TNL that appears in the character's current record is the value that current experience needed to be to achieve current level.
Upon level up, the TNL value from that level's data is added to the value currently in the TNL portion of the character's record.

SO... in order to determine if a character is supposed to level up, the game must look at the current TNL data, add the next level's TNL data to that, then compare the result to current exp. If current exp is equal or higher, the level and stats are increased.

For (a simple) example:
Rydia starts at level 1, at which point her exp and TNL are both 000000.
After acquiring 44 (2C) exp, she levels up to level 2, at which point her TNL reads 00002C.
Her TNL value for level 3 is 004C, so, add that to 00002C to get 000078 (120). That's how much exp she needs to get to level 3, and when she does, her TNL will read 000078.
I can easily, off the top of my head, devise a handful of less stupid ways they could have made this work, but whattaya gonna do?

760
Well, I think I figured out a way to account for this, though I'm SURE it's not how they intended, but I've watched the level up routine step-by-step, and I cannot for the life of me understand how it's making the determination.
If you look at level-up data - specifically the TNL bytes - you can see the places where the game would be adding an extra 01 to the upper byte, because the values look like:
DD86
EC8B
FC3A
0C97
So, I'll just tell the code to compare the current TNL value with the previous one, and if the current one is lower, I'll increase some place-holding RAM byte by 01, then add the value of that byte to the upper byte of TNL. Total pain in the ass, but it should work. And I'm operating under the assumption that once I get this fixed, I should be all done with this patch, though I won't rule out the possibility that I'm wrong about that.
This all would be so much easier if they had just figured out some workable formulas like LordGarmonde's trying to do.
Oh well, onward.

761
Final Fantasy IV Research & Development / Re: Screen tint numbers
« on: August 08, 2014, 03:31:03 PM »
Copied right off of FF4Tools:
Code: [Select]
F9 xx            Toggle screen tint xx

                         fast/slow transition
                         0F/1F = normal tint
                         2F/3F = teal
                         4F/5F = purple
                         6F/7F = blue
                         8F/9F = yellow
                         AF/BF = green
                         CF/DF = red
                         EF/FF = black

762
Final Fantasy IV Research & Development / Re: The Drawing Board
« on: August 08, 2014, 03:27:53 PM »
now if only we could escape TNL and we'd be golden...
Don't get me started...

763
OK, I'm still trying to get this to work.
I finally know why it's not working, and it's because I'm still not figuring TNL right.
Does anybody know exactly how the game interprets TNL data?
I know it uses the two bytes in the Level-up table, and adds them to the previous (3-byte) TNL for the character in question, but... it looks like it somehow determines (at a different point for each character?) to add an extra 01 to the highest TNL byte (that is, when 2 bytes becomes too small to represent the amount to add to the previous value, aka when adding more than 0xFFFF), then at level 70, it adds the two bytes to the upper two bytes instead of adding them to the lower two bytes. That's easy enough, but it's that middle step that I can't figure out.  How does the game know that it should start adding the extra 01 to the upper byte?
Anybody have any insight on this?
 :shadow:  :yabin:

764
Final Fantasy IV Research & Development / Re: The Drawing Board
« on: August 08, 2014, 09:27:52 AM »
That's pretty ingenious.
Kind of hilarious to consider that the original game developers, whose job it is (was) to think about everything they do in mathematical terms, and who were literally limited by the physical space required to house a MB of data within a game cartridge, decided to represent essentially the same stat progression in a table that is around a thousand bytes long.

765
Once again, my clerical skills are... Not to be trusted.
 :blush: