• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
October 16, 2021, 11:54:10 pm

News:

Please use .png instead of .bmp when uploading unfinished sprites to the forum!


Pre-Battle Menu

Started by Nyzer, May 24, 2021, 12:13:01 pm

Nyzer

https://youtu.be/nl2EhpmYKJA

This is mostly just a proof of concept for now, but it's a functional proof of concept. If anyone wants to take it and give it a try in their own mod, feel free!

Note that you will have to set up the Transition event in some way, and change the SET(x0055,x????) command in the Randoms - Victory to point at it; I recommend merging it with any other existing event that goes back to the world map when it ends. I haven't set it up to do that here myself.

I should mention up front that these event commands will make use of Variables 0x25, 0x2B, 0x3A, 0x3B, 0x3C, and 0x3D. It seems really unlikely that anyone will have used these variables for any sort of long term storage in their game, but hey.
  • Modding version: PSX & WotL
  • Discord username: Nyzer

Timbo

This is really clever. The ability to redeploy and revisit the formation screen is absolutely a fabulous quality of life hack.

Rerolling enemies is probably too meta but being able to flee might make for an interesting alternative to Smart Encounters, especially if it costs money.

Lots of very clever ideas here.
  • Modding version: PSX
  • Discord username: Timbo

Nyzer

I didn't set it to cost money offhand, mostly because going that far for a proof of concept when I have other things to get wrapped up for Jot5 was a bit much.

Not that making it cost money itself would have been a big time loss, but it's more pinning down the hows and whys of the concept. How much money, does the cost increase with subsequent flee successes, decrease when fleeing isn't attempted, etc. etc. etc. I simply don't have the idea pinned down.

But that's definitely one of the things I kind of want to do with it!

If anyone has any ideas they want to bring up about that, or any other possible features that might be good to have here, feel free to mention them! A lot of stuff, such as viewing a unit's status screen, is likely not possible, but who knows - I didn't even think of just setting up a jump to formation for some time, and I'd actually planned out a concept of using EVTCHR to cycle through one-frame sprites for on-field redeployment, only ditching that idea after finding out some of the limits of the LoadENTD related commands, and how Battle and World stats don't match up enough to manually load units from formation. Lots of great ideas have only come about because of discussion.
  • Modding version: PSX & WotL
  • Discord username: Nyzer

Orkney

That's already pretty awesome ! I've no idea of what kind of stuff is doable or not.

But maybe,  reroll enemies harder (or easier) :
- Harder : adding some unchecked random enemies (or all the random)
- Easier : deleting one of the enemies

Maybe choosing the ENTD fight ? (location south 1 south 2 etc...)

  • Modding version: PSX

Timbo

I have an idea. It probably doesn't work but who knows.

First what are the limitations of rerolling enemies? Can it be used to load different ENTDs for the same map? If not that could you reroll the same ENTD until it gives you different randomly  appearing enemy configurations?

Could this be used to create like an arena or a colloseum where the player gets to choose the battles on certain maps?
  • Modding version: PSX
  • Discord username: Timbo

Pride

You could load any ENTD in the game with instructions upgrade 1.31; I'm not sure how nyzer has the event set up but I don't see a reason why it wouldn't work.
  • Modding version: PSX
Check out my ASM thread. Who doesn't like hax?

Nyzer

You absolutely could. In fact, I'm pretty sure I manually save the current ENTD's ID into a variable and then put it back in the ENTD slot in between the redeployment in order to get back to the same fight.

It's more a matter of "this is beyond the scope of the project", and "fuck me I'm not doing 0x1000 bytes manually checking for ENTDs just to make sure I'm using other ENTDs that are valid with this map, because that kind of shit sucked when I did it for the treasure wheel".

=============

So here's a feature that'll be added in to the View Map option later, thanks to discussion on Discord: the ability to see the spots where Move-Find Items are.

https://ffhacktics.com/wiki/Data/Table_Locations

800f5ba8 - current loaded map (set at f385c)


800f5e74 - Move-Find Item Data (and Traps)
 0x00 - X/Y Coordinate (Y + X * 16, up to 15 each)
              Upper Nibble - 0x?X - X Coordinate
              Lower Nibble - 0xX? - Y Coordinate
 0x01 - Trap
 0x80 - No Activation
 0x40 - Unknown
 0x20 - Always Trap
 0x10 - Disable Trap
 0x08 - Steel Needle
 0x04 - Sleeping Gas
 0x02 - Deathtrap
 0x01 - Degenerator
 0x02 - Rare Item ID
 0x03 - Common Item ID

 0x04-0x0f - same as above, but for locations 2-4

80059414 -  Move-Find item items found flags (4 bits each, 0x40 bytes total)
 - http://ffhacktics.com/wiki/Variables#Propositions_.2F_Jobs
0xF0 - ??
0x0F - At the main gate of igros



The short version is, I can check the current map, use that to determine which map we're on, pull all the X/Y data for each individual Move-Find Item, and even check to see which items have and haven't already been found.

But this is definitely a "coming later" feature, since I've still got Jot5 work to do.
  • Modding version: PSX & WotL
  • Discord username: Nyzer

nitwit

Quote from: Nyzer on June 02, 2021, 12:22:18 amSo here's a feature that'll be added in to the View Map option later, thanks to discussion on Discord: the ability to see the spots where Move-Find Items are.

https://ffhacktics.com/wiki/Data/Table_Locations

800f5ba8 - current loaded map (set at f385c)


800f5e74 - Move-Find Item Data (and Traps)
 0x00 - X/Y Coordinate (Y + X * 16, up to 15 each)
              Upper Nibble - 0x?X - X Coordinate
              Lower Nibble - 0xX? - Y Coordinate
 0x01 - Trap
 0x80 - No Activation
 0x40 - Unknown
 0x20 - Always Trap
 0x10 - Disable Trap
 0x08 - Steel Needle
 0x04 - Sleeping Gas
 0x02 - Deathtrap
 0x01 - Degenerator
 0x02 - Rare Item ID
 0x03 - Common Item ID

 0x04-0x0f - same as above, but for locations 2-4

80059414 -  Move-Find item items found flags (4 bits each, 0x40 bytes total)
 - http://ffhacktics.com/wiki/Variables#Propositions_.2F_Jobs
0xF0 - ??
0x0F - At the main gate of igros

The short version is, I can check the current map, use that to determine which map we're on, pull all the X/Y data for each individual Move-Find Item, and even check to see which items have and haven't already been found.

But this is definitely a "coming later" feature, since I've still got Jot5 work to do.
I don't want to distract you from this or Jot5 (did you ever figure out why it doesn't work as an eboot on the PSP?), or go way off topic, but this is great especially if a hack alters item locations.

Only way it would be better is with a hack that randomizes treasures and traps so they appear on any tile you can legally move on at random in each new battle in the same location, and perhaps have a sparkle in the air above them or something. Maybe the sparkle could be tied to a 3 or 4 AoE passive effect on thieves or Move Find-Item. Beneficial traps would be very nice too, as would flagging certain rare item traps so they only give items to the player. Though you could just make it obvious where items are by making the traps always trigger. Just my 2 cents, don't consider it a request or anything.

Feel free to move this to your hacking thread if you feel it's too off topic.
  • Modding version: PSX

Nyzer

Quote from: nitwit on June 03, 2021, 02:28:38 amdid you ever figure out why it doesn't work as an eboot on the PSP?

I either wasn't aware of or don't remember this, but I'd expect it's related to early ASM issues that should be fixed in the rerelease, since Jot5 should be playable on modded PSX consoles in the future.

Quote from: nitwit on June 03, 2021, 02:28:38 amOnly way it would be better is with a hack that randomizes treasures and traps so they appear on any tile you can legally move on at random in each new battle in the same location, and perhaps have a sparkle in the air above them or something. Maybe the sparkle could be tied to a 3 or 4 AoE passive effect on thieves or Move Find-Item. Beneficial traps would be very nice too, as would flagging certain rare item traps so they only give items to the player. Though you could just make it obvious where items are by making the traps always trigger. Just my 2 cents, don't consider it a request or anything.

That's a really interesting idea. I don't know if there's any way to have an always-displayed sprite of some kind on the map - it might be doable with ghostunits, but I haven't checked, though I will once I get around to this feature - but it's theoretically possible to alter the traps and items due to this. I think there are multiple sets of data for the locations, though, so they'd most likely all have to be changed together, and it's certainly not something that would be included with this set of commands (unless someone else did it).

Folks could certainly do something interesting/trollish by using maps for specific fights and just moving all four locations to a vital chokepoint, then setting them all to empty with always activating traps.
  • Modding version: PSX & WotL
  • Discord username: Nyzer

nitwit

Quote from: Nyzer on June 03, 2021, 09:27:03 amI either wasn't aware of or don't remember this, but I'd expect it's related to early ASM issues that should be fixed in the rerelease, since Jot5 should be playable on modded PSX consoles in the future.
Looking forward to playing it when you rerelease it!

Quote from: Nyzer on June 03, 2021, 09:27:03 amThat's a really interesting idea. I don't know if there's any way to have an always-displayed sprite of some kind on the map - it might be doable with ghostunits, but I haven't checked, though I will once I get around to this feature - but it's theoretically possible to alter the traps and items due to this. I think there are multiple sets of data for the locations, though, so they'd most likely all have to be changed together, and it's certainly not something that would be included with this set of commands (unless someone else did it).

Folks could certainly do something interesting/trollish by using maps for specific fights and just moving all four locations to a vital chokepoint, then setting them all to empty with always activating traps.
Now that I think about it, simply highlighting the tile similarly to attack targeting or movement - but with a different color when in x squares of a treasure/trap - is a better idea.

https://ffhacktics.com/wiki/Data/Table_Locations

I thought you were mistaken, but it looks like there are either multiple copies of the move-find item data or it's temporarily stored in various places.

There are also the found item flags for each battlefield, which must be part of save data since they can't be found again. Randomizing move-find item data and and renewing them after each battle frees up that space. Something to consider if a hack needs a few hundred extra bytes in save data and you have the means to use those bytes.

While I'm only interested in randomizing them and their traps and maybe getting a support skill that lets players see them (or an option for this hypothetical hack which ensures only player characters can find items), manipulating battlefield traps, weather, and lighting makes for a more flavorful geomancer.

Again, it's not a big deal as I can currently change their coordinates, alter traps, and rebalance items so it doesn't matter if enemies get them on my own. Don't consider this a request, just a possible solution that may fit your needs in the future.
  • Modding version: PSX

RetroTypes

Quote from: nitwit on June 04, 2021, 05:33:42 amNow that I think about it, simply highlighting the tile similarly to attack targeting or movement - but with a different color when in x squares of a treasure/trap - is a better idea.

https://ffhacktics.com/wiki/Data/Table_Locations

I thought you were mistaken, but it looks like there are either multiple copies of the move-find item data or it's temporarily stored in various places.

There are also the found item flags for each battlefield, which must be part of save data since they can't be found again. Randomizing move-find item data and and renewing them after each battle frees up that space. Something to consider if a hack needs a few hundred extra bytes in save data and you have the means to use those bytes.

While I'm only interested in randomizing them and their traps and maybe getting a support skill that lets players see them (or an option for this hypothetical hack which ensures only player characters can find items), manipulating battlefield traps, weather, and lighting makes for a more flavorful geomancer.

Again, it's not a big deal as I can currently change their coordinates, alter traps, and rebalance items so it doesn't matter if enemies get them on my own. Don't consider this a request, just a possible solution that may fit your needs in the future.

Something to consider, should we ever fully decrypt the zodiac.bin, is that a small effect like a twinkling light would probably fit in the limited space left on that image, which seems to be always loaded during battles. We'd just need to figure out how it does palettes? Though a new color when highlighting the tile is also a great idea, but teleport would make that a little too easy perhaps, since it highlights every tile on the map.

Also, I'm fairly certain whether an item has been found or not is stored as a variable with other things (https://ffhacktics.com/wiki/Variables#Move-Find_Items)
  • Modding version: PSX

Valkirst

I'm absolutely blown away!
  • Modding version: PSX
Completed Sprites
  • Discord username: Valkirst

Heisho

This is simply just too beautiful. Nyzer you are the man.
  • Modding version: PSX
Grrr, arwg, hiss, and some other zombie noises...
  • Discord username: Heisho