News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Project II: Final Fantasy IV v2.42  (Read 192516 times)

chillyfeez

  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #460 on: February 11, 2015, 10:57:43 am »
What do you mean the game gets out of sync?  Like how the character moves per pixel just decides to go off track or is there something else that goes awry?

Ok, when you press the d-pad, there are approximately 8.783 billion different things the game checks for before you actually see Cecil move one space (that's a rough estimate  ;) ) - what terrain is in that direction, if that terrain is walkable, whether there is an obstacle, if that obstacle is mobile, if there is an event/warp trigger, whether a battle might occur, the probability of that battle... All of those things are stored in different locations in RAM, and are refreshed every step you take. Though the refreshes happen in the blink of an eye to you and me, they do not occur simultaneously with one another, nor do they occur simultaneously with the screen refresh that is responsible for making it look like Cecil actually just moved. When you change speeds mid-move, some of those pieces of information get refreshed more quickly than others, and more noticeably, more quickly than the screen refresh. Thus you might look like you're standing next to the Baron town Training Room, but the obstacle check thinks you're standing two spaces away from it, and the exit point check thinks you're  in the wrong place, too, etc.
Games that actually have a B button dash must go about all of this business in a drastically different way than FFIV - something different is going on in the game engine that accounts for the possibility of changing speeds while moving. Presumably, they reference a different Byte in RAM that toggles on and off depending of the set speed, but does not toggle until a full step has been taken. Unfortunately, I don't know exactly everything that goes on when a step is taken, which means it is impossible for me to pinpoint a location in the ROM that occurs after all of those checks take place, and I really know nothing about how SNES processes graphics, so I certainly don't know how the screen refresh actually works to be able to time that along with everything else. I found a line of code that runs when you are stationary but not when you are moving, which enabled the toggle to occur flawlessly (even that took some trial and error - jump back a few pages in this thread to see what I mean), but that I think is the best I can do here... Or at least I have too many other things I want to accomplish that are more important to me at the moment..
Ongoing project: "Final Fantasy IV: A Threat From Within"

Latest Demo

TheZunar123

  • Full Member
  • ***
  • Posts: 242
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #461 on: February 11, 2015, 02:51:17 pm »
To sum up what Chillyfeez just said in a way non-nerds can understand, basically this glitch is what happens: http://youtu.be/jDjoHzfXo1M
Speedrunner and Let's Player.
www.youtube.com/ZunarSR

Rodimus Primal

  • Hero Member
  • *****
  • Posts: 1045
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #462 on: February 11, 2015, 03:44:47 pm »
To sum up what Chillyfeez just said in a way non-nerds can understand, basically this glitch is what happens: http://youtu.be/jDjoHzfXo1M

Which in order to fix it currently, it can only be enabled when standing still.

I wonder if that's the key to making a toggle into a hold to use. You have to stand still before holding to dash, and if you let go you have to stop running to switch back to walking...

chillyfeez

  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #463 on: February 11, 2015, 06:06:45 pm »
To sum up what Chillyfeez just said in a way non-nerds can understand, basically this glitch is what happens: http://youtu.be/jDjoHzfXo1M
Are there non-nerds paying attention to this thread about a 20 year old role playing video game on this forum dedicated to what is essentially interactive fan fiction?  ;)

Which in order to fix it currently, it can only be enabled when standing still.

I wonder if that's the key to making a toggle into a hold to use. You have to stand still before holding to dash, and if you let go you have to stop running to switch back to walking...
I actually did try that in a non released (and now lost in time) version. I didn't really like the flow of it, so I decided to stick with the toggle.

I don't want to get anyone's hopes up... It's probably going to result in more failure, but somewhere along the lines of typing these recent diatribes, I did have an idea of a way to make "hold to dash" work. I started researching it this morning but I ran out of time before I had to get ready for work.
At this point, it's only based on a theory about parts of the code I haven't even explored fully yet... And if it doesn't work - which it probably won't - then I promised myself I will officially stop trying to do this, but the toggle is an admittedly imperfect solution to the dash problem, specifically because of how it makes events look kinda weird. So anyway, I'm reopening the book on this one last time, but I'm not too confident I'll finally crack it.
Ongoing project: "Final Fantasy IV: A Threat From Within"

Latest Demo

justin3009

  • Hero Member
  • *****
  • Posts: 1617
  • Welp
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #464 on: February 11, 2015, 06:43:31 pm »
That is REALLY odd.  I wonder how the run code was implemented and where exactly in the code it was placed.  It might just need the code to be shuffled somewhere else to fix the problem but I wouldn't know since I haven't checked this games innards out.
'We have to find some way to incorporate the general civilians in the plot.'

'We'll kill off children in the Juuban district with an infection where they cough up blood and are found hanging themselves from cherry blossom trees.'

Grimoire LD

  • Sr. Member
  • ****
  • Posts: 406
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #465 on: February 11, 2015, 07:59:51 pm »
That is REALLY odd.  I wonder how the run code was implemented and where exactly in the code it was placed.  It might just need the code to be shuffled somewhere else to fix the problem but I wouldn't know since I haven't checked this games innards out.

Run was only ever meant to be used in events and was never purposed for ordinary gameplay. This is probably why it is fairly unstable in a basic "press B to dash" meaning and toggling is exactly what the event does. Without a fairly extensive rewrite of a Lot of things, I think toggling is probably the closest we will be able to get. I would love to be wrong though.

February 11, 2015, 11:42:20 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Seems I stumbled upon an easy way to display class names to make them 8 character's long...



No squishy tiles, nothing odd like that. There is a Ton of unused space for Job names so you won't need to worry about overflowing it at all.

Would this be a matter of interest in this project?

This would give enough room for...

Summoner
Engineer
Guardian (FuSoYa refers to himself in this capacity as the Guardian of the Sleeping Lunarians. It makes more sense to me than just using his Race. All-Mage never sat well with me and reminded me too much of All-Magic from FFT's PSX translation on the Shrine Knights.


0x91E5 in a Headered Rom

Load 07 into A. Just change that to a 08.

Ah right! And before I forget I came across a glitch in Project II/Namingway...

The change to Porom's Cry decreases Magic Defense Rate by 1/2 of Porom's Will.

Reasonable enough... until your remember that Magic Defense Rate is just a fancy way of saying "Evasion" which is not re-activated in Project II (and is only activated in the DS version of all places) therefore Porom's Cry does.. nothing... again.

What you would want it to modify is the Enemy Magic Defense Base. Which is the raw numbers of damage it blocks between each casting.
« Last Edit: February 11, 2015, 11:49:32 pm by Grimoire LD »

vivify93

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 1085
  • Guardian of Mystery
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #466 on: February 12, 2015, 03:08:46 am »
Dude, sweet! I realize now that I don't think Rydia can become a Summoner in Vanilla due to the five-letter limit for command names, but I know Rodimus would be interested in this for sure. Come to think of it, it'd also be nice for Vanilla to make Cecil a D.Knight, expand Rosa's class to W.Wizard, turn Chief Cid into a proper Engineer, and make Fusoya and Omnimage or Arcanist. (Though I actually rather like the Guardian suggestion!)

One thing though, what does "Load 07 into A" mean?

Edit - Here's a look at some of my notes.
Code: [Select]
12345678
D.Knight (Changed from DKnight)
Dragoon
Caller (Can't be changed due to five-letter command limit and I am not looking to expand command names)
Sage
Bard
W.Wizard (Changed from Wh.Wiz.)
Monk
W.Mage (Changed from Wh.Mage; while Wht.Mage would fit comfortably, this is done for consistency with Cecil and Rosa)
B.Mage (Changed from Bl.Mage; while Blk.Mage would fit comfortably, this is done for consistency with Cecil and Rosa)
Engineer (Changed from Chief) *1
Ninja
Guardian (Changed from All-Mage; may possibly become Arcanist or Omnimage?) *2

*1 Change references of the twin engineers calling Cid "Boss" to calling him Chief for consistency
*2 If Guardian is decided upon, change Fusoya's introduction to "Lunarian Guardian Fusoya joined!"?

Reasons for not staying with Lunarian in Vanilla:

1. It's his race, not his class
2. Only monsters get their race as a class in FF; Fusoya is not a monster
3. Lunarian as a class mistakenly identifies all lunarians as super magic-wielding mega-combatants, which is false
4. Fusoya is too cool to not have his own unique class title

So what do you guys think? What should Fusoya's job be called in Vanilla? We have eight letters to work with.
« Last Edit: February 12, 2015, 03:27:11 am by vivify93 »
All my life I've tried to fight what history has given me.

Grimoire LD

  • Sr. Member
  • ****
  • Posts: 406
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #467 on: February 12, 2015, 07:00:03 am »
Dude, sweet! I realize now that I don't think Rydia can become a Summoner in Vanilla due to the five-letter limit for command names, but I know Rodimus would be interested in this for sure. Come to think of it, it'd also be nice for Vanilla to make Cecil a D.Knight, expand Rosa's class to W.Wizard, turn Chief Cid into a proper Engineer, and make Fusoya and Omnimage or Arcanist. (Though I actually rather like the Guardian suggestion!)

One thing though, what does "Load 07 into A" mean?

Edit - Here's a look at some of my notes.
Code: [Select]
12345678
D.Knight (Changed from DKnight)
Dragoon
Caller (Can't be changed due to five-letter command limit and I am not looking to expand command names)
Sage
Bard
W.Wizard (Changed from Wh.Wiz.)
Monk
W.Mage (Changed from Wh.Mage; while Wht.Mage would fit comfortably, this is done for consistency with Cecil and Rosa)
B.Mage (Changed from Bl.Mage; while Blk.Mage would fit comfortably, this is done for consistency with Cecil and Rosa)
Engineer (Changed from Chief) *1
Ninja
Guardian (Changed from All-Mage; may possibly become Arcanist or Omnimage?) *2

*1 Change references of the twin engineers calling Cid "Boss" to calling him Chief for consistency
*2 If Guardian is decided upon, change Fusoya's introduction to "Lunarian Guardian Fusoya joined!"?

Reasons for not staying with Lunarian in Vanilla:

1. It's his race, not his class
2. Only monsters get their race as a class in FF; Fusoya is not a monster
3. Lunarian as a class mistakenly identifies all lunarians as super magic-wielding mega-combatants, which is false
4. Fusoya is too cool to not have his own unique class title

So what do you guys think? What should Fusoya's job be called in Vanilla? We have eight letters to work with.

Ah Load 07 into A, just means the amount of characters the game should allocate to class names in this case. Changing that from A907 to A908 increases it to 08 and uses all available space.


The name of Omnimage actually would work as well as Guardian as a reference to FFIV DS's Omnicast which you get from FuSoYa when he leaves the party. I would be against Arcanist due to its close relation to Summoners in FFXIV and FuSoYa not having that great of an MP Pool to be considered close to the idea of an Arcanist from FFTA2.

vivify93

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 1085
  • Guardian of Mystery
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #468 on: February 12, 2015, 08:30:24 am »
How does this work??? I am so confused. I changed Cecil from a DKnight to a D.Knight and Kain became a "tDragoon". Certain things are displaying OK but others not so much.
All my life I've tried to fight what history has given me.

chillyfeez

  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #469 on: February 12, 2015, 08:48:26 am »
How does this work??? I am so confused. I changed Cecil from a DKnight to a D.Knight and Kain became a "tDragoon". Certain things are displaying OK but others not so much.
Hm. Is there a pointer to the beginning of each class's name? Or maybe the class ID is normally multiplied by 7 and now needs to be multiplied by 8...
Ongoing project: "Final Fantasy IV: A Threat From Within"

Latest Demo

vivify93

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 1085
  • Guardian of Mystery
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #470 on: February 12, 2015, 09:46:27 am »
I honestly have no idea how any of this works! I just do what people tell me if I need to do it. Most of the bug fixes were either easy (The Sealed Cave skip fix was remedied just by disabling the Warp OK bit in Giott's throne room.) or someone else told me how to do it. (The Adamant Armor bugs.)

Wish I could help you. :(
« Last Edit: February 12, 2015, 09:51:39 am by vivify93 »
All my life I've tried to fight what history has given me.

Rodimus Primal

  • Hero Member
  • *****
  • Posts: 1045
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #471 on: February 13, 2015, 10:41:58 am »
It would be nice to have straight letters used in the class name. Pointers always seem to be an issue. I used squish tiles to make it work the best I could. As for the class IDs, that's how I thought things were named in the game but I think its most likely directly pointing to a location.

chillyfeez

  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #472 on: February 13, 2015, 12:57:13 pm »
Well, folks, bad news/good news...

First the bad:
As you know, I tried again to make "Hold B to Dash" work...
I cannot. make. it. work.
It just doesn't ever stop getting out of sync. I have tried making it check at the beginning of the step, I have tried making it check at the end of the step, I have tried to look for other places in the code that are conditional upon being in between steps. I just can't find a place to put my custom code that won't cause the game to get out of sync. I'm sorry. :banghead:

As I mentioned before, I can make it so that holding B is required (instead of a pure toggle), as long as you're ok with Dash only being turned on/off if you are not moving. I can release a patch for that if there is any interest in that. What's nice about that is that it won't make events look weird, because you're presumably always going to be walking when the event starts, so... yeah.

Anyway... now the good news:
I figured out the missing pieces to making Class names 8 characters.
Step-by-step instructions follow. I can explain what's going on here if anyone wants, but to make things easier, I'm just going to explain what you need to do.

(all offsets indicated here assume ROM with header)

1 ) Open your ROM in a hex editor

2 ) Jump to offset $00/91D5. It should read:
Code: [Select]
85 46 0A 85 45 0A 65 45 65 46
3 ) Change it to read:
Code: [Select]
0A 0A 0A EA EA EA EA EA EA EA
4 ) Jump to $01/1F42

5 ) Change the one byte there from C6 to D4

6 ) Jump to $07/A964. This is the beginning of Class names.

7 ) Give each class an 8-character name. Use spaces (FF) at the end of each class that is less than 8 characters to fill out the rest (For example, "Monk[space][space][space][space]"). Be sure to follow the same order and don't skip any, lest your characters end up with the wrong class!

8 ) You may notice by the end that you've begun to overwrite command names. You'll have to rewrite them, too. No, you can't make them more than 5 characters long, because we don't know how to make the command window in battle bigger  ;) Begin re-writing command names with "Fight" starting at $07/A9D4. They should be rewritten exactly as they were, just with a new starting point.

9 ) Save changes.

Ta-da!
 :thumbsup:
« Last Edit: February 13, 2015, 01:14:38 pm by chillyfeez »
Ongoing project: "Final Fantasy IV: A Threat From Within"

Latest Demo

Chrysologus

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #473 on: February 13, 2015, 01:22:43 pm »
Quote
As I mentioned before, I can make it so that holding B is required (instead of a pure toggle), as long as you're ok with Dash only being turned on/off if you are not moving. I can release a patch for that if there is any interest in that. What's nice about that is that it won't make events look weird, because you're presumably always going to be walking when the event starts, so... yeah.
That is a decisive improvement!

chillyfeez

  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #474 on: February 13, 2015, 02:02:48 pm »
That is a decisive improvement!
Well, I disagree. For the most part, it makes it feel... more like a hack IMHO - like it's obvious that's not how the game was programmed. Doesn't feel natural.
But I'm not doing this just for me, so I hear ya.
I'll get a patch out sometime soon.
Ongoing project: "Final Fantasy IV: A Threat From Within"

Latest Demo

vivify93

  • Submission Reviewer
  • Hero Member
  • *****
  • Posts: 1085
  • Guardian of Mystery
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #475 on: February 13, 2015, 04:33:07 pm »
Awesome. Thanks so much for the job title tutorial, chillyfeez. This will break compatibility for altering command names with FF4kster, right? Just checking before I make the changes.
All my life I've tried to fight what history has given me.

Rodimus Primal

  • Hero Member
  • *****
  • Posts: 1045
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #476 on: February 13, 2015, 04:50:49 pm »
Well, I disagree. For the most part, it makes it feel... more like a hack IMHO - like it's obvious that's not how the game was programmed. Doesn't feel natural.
But I'm not doing this just for me, so I hear ya.
I'll get a patch out sometime soon.

That would be cool. If you do, it would have to be something that will work over either Vanilla or Namingway since User Options is already implemented.

Also, I rewrote the Battle Command for Call into Summon as per your instructions so this wouldn't this mess with their pointers if we expanded the Job Classes?

chillyfeez

  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #477 on: February 13, 2015, 06:09:03 pm »
Awesome. Thanks so much for the job title tutorial, chillyfeez. This will break compatibility for altering command names with FF4kster, right? Just checking before I make the changes.
Yes, absolutely right. Furthermore, command names will no longer look right in FF4kster, because the program will still start looking where the command names used to begin.
Good call.

That would be cool. If you do, it would have to be something that will work over either Vanilla or Namingway since User Options is already implemented.

Yep. I'll likely make a separate patch and package it into a User Options update, it'll be something that can patch cleanly over any hack that already has UO2.2.

Quote
Also, I rewrote the Battle Command for Call into Summon as per your instructions so this wouldn't this mess with their pointers if we expanded the Job Classes?

The only renaming for Call I posted was for the Non-battle spell list, which would be unaffected by the class name thing. So the only thing you should have to worry about is the stuff about command names mentioned above.
Ongoing project: "Final Fantasy IV: A Threat From Within"

Latest Demo

Cavery210

  • Jr. Member
  • **
  • Posts: 70
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #478 on: February 15, 2015, 10:50:23 am »
Some potential graphics for Namingway Edition: https://docs.google.com/document/d/1xxEMi9UrI9soRyemDFTIvYWTUcAbxTvCD6VhFy1HlMs/edit
This is for Ninjutsu, Darkside, and the ra, ga and ja things for spells.
Examples:
Fira
Figa
Thun
Boltra or Thunra
Boltga or Thunga
Blizrd using the li tile.
Icera or Blizra
Icega or Blizga
Cura
Curaga
Curaja

February 15, 2015, 02:07:29 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Also Milon's counter when you cast Fire spells isn't working. He should say "You'll turn into zombies with this!" and use an attack that inflicts curse on the whole party.
« Last Edit: February 15, 2015, 02:07:29 pm by Cavery210 »

Chrysologus

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: Project II: Final Fantasy IV
« Reply #479 on: February 15, 2015, 02:44:46 pm »
Quote
Fira
Figa
Thun
Boltra or Thunra
Boltga or Thunga
Blizrd using the li tile.
Icera or Blizra
Icega or Blizga
Cura
Curaga
Curaja
I made suggestions like that once . . . and was shut down hard.  ;)

February 15, 2015, 02:45:40 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Quote
Also Milon's counter when you cast Fire spells isn't working. He should say "You'll turn into zombies with this!" and use an attack that inflicts curse on the whole party.
That must be from the DS version. They changed the bosses so that classic players wouldn't know how to beat them.