Aslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=1801.0;prev_next=preve:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexed25.htmldelayedslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=1801.0e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexed25.html.zx%g^ЋxOKtext/htmlISO-8859-1gzip8:xHTue, 10 Mar 2020 04:18:05 GMT0 0P%g^x Saving (Almost) Anywhere

Author Topic: Saving (Almost) Anywhere  (Read 755 times)

Bahamut ZERO

  • Cagnazzo
  • *
  • Posts: 347
  • Gender: Male
  • If ye're takin a beatin, hop in de back row!
    • View Profile
Saving (Almost) Anywhere
« on: February 17, 2016, 01:29:52 PM »

I've been sidetracked with something that has been most fascinating to me, as I didn't think simply playing around in FF4kster's Tileset editor would basically achieve want I want to do - save anywhere.

Well, technically I still can't save anywhere, since for some reason a  transfer trigger tile won't trigger if you step on it from a Save Point. I'd love to know the cause of that but so far the process has been like this:



-Make all walkable tiles into save points, except for water, stairs, rugs, and hidden path tiles (like walls that you can walk behind, etc). This is mostly to workaround the fact that transfer triggers won't trigger if you step on them from a save point tile. Also, in the case of stairs and hidden paths, it saves me from wasting graphics or map space (since a huge majority of transfer have stairs or hidden path walls in houses and such).

-Look for doubles of tiles/tiles that could be turned into duplicates of tile.
For instance:all trees in my project use the same one bottom half, so I can make a duplicate tile for the grass and the road that AREN'T savepoints. Most tilesets I've noticed usually have a duplicate of the ground tile (usually set as Layer 2 tiles, which honestly I don't quite know the purpose of), free space (the House tileset, for instance, has a shit ton of blue stair looking tiles that I don't recall are ever used for anything) or some tile I can sacfrice to make a duplicate (like one of the cracked floor tiles in the Castle Interior tileset).


-Place duplicate, non-save point tiles around transfer triggers and events. This allows events and transfers to work properly at the cost of some free space (in my case it's more than covered since I deleted the Serpent Road maps as they're useless to me in my project). It's not a major space hog though, since you only need to place the duplicates in front of those trigger tiles (which at most is 4 if the trigger is in an open area; most of the time transfer trigger tiles are in a corner of some sort, usually needing 1 or 2 duplicate tiles).
 
So far the tilesets I've set up to save (basically) anywhere are:

Town Exterior & Interior
Castle Exterior & Interior
Mountains

I'm gonna do it to the Caves Tileset today, and I'm planning on setting up at least the town portion of the Feymarch for this as well. I'm undecided on whether or not to give the Tower Tileset this treatment. the Sealed Cave and Final Area tilesets won't be getting this treatment, since it would kill the challenge of those areas completely imo.


So what do you guys think about this?
I update my graphics thread on almost a daily basis, so keep an eye out for new stuff!

chillyfeez

  • FF4 Hacker
  • *
  • Posts: 1,285
  • Gender: Male
  • Go ahead, ask me about Angel Feathers!
    • View Profile
Re: Saving (Almost) Anywhere
« Reply #1 on: February 17, 2016, 04:23:40 PM »
I'm thinking the transfer tiles (and even trigger tiles, too, I'd guess) don't work because of the automatic "this is a save point" event that runs when you step on a save point. Typically, if you step onto a trigger tile from a trigger tile, the second trigger doesn't trigger.

That being said, I bet it'd be possible to zero in on whatever the game looks for to determine if something is a save tile, and adjust the ASM so that it always comes back true, thus making all tiles everywhere save-able...

chillyfeez

  • FF4 Hacker
  • *
  • Posts: 1,285
  • Gender: Male
  • Go ahead, ask me about Angel Feathers!
    • View Profile
Re: Saving (Almost) Anywhere
« Reply #2 on: February 18, 2016, 11:17:27 AM »
OK, BZ I gotcha here...

So, for all intents and purposes, the game uses byte 7E:1A02 in RAM to signify that the player is standing on a save point. When on a save point, it reads 08. When not, it reads 00.
This value is read anytime you open the menu (to determine if "Save" should be white or gray), anytime you try to select "Save" (to determine if you get the save screen or not), every time you open the item menu (to determine if tents and cabins should be white or gray) and every time you try to select a tent or cabin (to determine whether to run the tent/cabin event or not).

So, all we have to do is manipulate those checks so that they always return "true."

SAVE ANYWHERE
In ROM without header, 00/8937 should read "D0." Change that to "80" to make it so "Save" is always white.
In ROM without header, 00/CB5E should also read "D0." Change that to "80" to make the save option always functions!
Now you'll be able to save anywhere as long as you have control. This, however, only affects the ability to save, not to sleep. IMHO, that's kinda nice, because it allows save points to maintain their significance, they simply become "rest points."
If you want to be able to tent/cabin anywhere, though...

TENT/CABIN ANYWHERE
In ROM without header, 00/A257-A258 should read "F0 29." Change that to "EA EA" to make tents and cabins always appear white.
In ROM without header, 00/A830 should read "D0." Change that to "80" to make it so tents and cabins are always usable!

Of course, if you make it so the player can rest and save whenever, wherever, then the save point completely loses its function. However, the save point could then be used to do something else if you wanted. It will still run the "this is a save point" event (event 118 in FF4kster) whenever you step on it. You could change event 118 to be something else entirely that always runs when you step on it. Maybe you want to make it a "restore point," like the screen flashes and the player is automatically healed without using a tent at all. For the purposes of FU Remix (wouldn't work in a serious-tone hack), you could make the player do a little dance every time they step on a tile set as a save point, thus triggering random little dances wherever you want. Or whatever, the possibilities are endless, I guess.

 :cycle:

Bahamut ZERO

  • Cagnazzo
  • *
  • Posts: 347
  • Gender: Male
  • If ye're takin a beatin, hop in de back row!
    • View Profile
Re: Saving (Almost) Anywhere
« Reply #3 on: February 18, 2016, 05:01:28 PM »
Oh WOW! Thank you so much!!  :happy:


Now I can save (literally) everywhere! I'm going to leave the Tent/Cabin alone so the save points still have some use (and plus it just feels so damn perfect not being able to pitch a tent anywhere haha).

Now i don't have to waste space making duplicate tiles, and I can set a conditional branch in the save point so that once you progress far enough into the game, it gives you the option to change characters with a Yes/No box (Yes = transfer to map used for party changing, No = event ends so you can use Tents/Cabins).


I update my graphics thread on almost a daily basis, so keep an eye out for new stuff!

Gedankenschild

  • Vargas
  • *
  • Posts: 101
  • Gender: Male
    • View Profile
Re: Saving (Almost) Anywhere
« Reply #4 on: February 19, 2016, 11:15:01 PM »
Well done, chillyfeez! :cookie:
You've got to be kidding me with that Dynasty Warriors registration question??!!
I barely know such a series exists...