• Welcome to Final Fantasy Hacktics. Please login or sign up.
 

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

61
The Lion War / Re: 2.0 Closed Beta Bug Reports
September 10, 2021, 10:56:58 am
As seen on Kori's stream: If you choose not to save Algus and he dies, his speech bubble that appears is empty. Completing the fight after that causes it to play the wrong dialogue, then jump to the windmill scene with Delita and Ramza. The dialogue gets a little funky afterwards in most scenes of this fight from what I've seen, but you can get past it still by making Algus live!


Fixed
-Elric
62
@Akashachi if you'd be willing to conduct and compile the interviews for the posts then you should totally go for it! I'm sure it'd be awesome!
63
So there are bugs related to units perma-dying, in the stream vod link that Nyzer posted above you can see at one point a Black Chocobo on the players team dying, turning into a crystal, and then that tile on all maps just becomes a hp/mp refill spot that never goes away.
Hopefully that's easy to scrub by checking on each of the players units battle stats between map changes, but I haven't tried it yet.

EDIT: So my tests continue, ChangeMap will change the units sprite, job, name, it's max stat values (like max HP), but I noticed that two of the units that overwrote enemies from the previous map had more HP than their max, and a Black Goblin that was in a slot previously taken up by Worker 8 had the Innocent status. So it seems like ChangeMap doesn't correctly adjust temporary stats
64
Quote from: Xifanie on August 25, 2021, 11:42:15 pmWon't this also affect the player's units though?
Or does changing map after the victory screen keep all permanent changes and restore their HP/MP/status/etc.?

What I do in this event is basically rely on the fact that the players data in Battle Stats is not overwritten on ChangeMap, all it does is write xFF to 0x0001 in their data. As long as you rewrite it to match your units position in the battle unit array (units stats table) and then AddUnit them back in, you're in business! As far as I can tell, it preserves everything for your units
65
Small Update: changing the variable for the current ENTD entry in memory (var x0032) and then using ChangeMap will cause the game to load up that new data into BattleStats! This means changing enemies between fights will be even easier than what I did in the example above.

I am eventually going to write a few extra instructions for the event to wipe units who are crystallized, treasured, and invite'd at the end of the fights to clear away any issues that cropped up as a result of that, and will post updated instructions for that when I do! So that people can reference it for their own mod work :)
66
Final Fantasy Tactics / Re: Battle Design and Concepts
August 17, 2021, 01:13:32 pm
(CONMAN join the Discord server if you aren't on it, people talk design stuff all the time!)

One type of encounter that I've only ever experienced once was actually in FFTA, in the fight against the second Totema. The first time I ever played through the game, I didn't really understand that I could protect myself from the charm ability the stationary crystals had, so what ended up happening was a pattern of fighting off a group of two or three of their attacks at a time until I had destroyed them, and then falling back to a safe corner where the rest couldn't attack me to regroup (heal up, raise dead allies, cure status effects). I think that that came about because the fight was against totally stationary enemies that had wicked strong offense (very high chance for charm ouch). That specific fight can easily be overcome once you know what to expect, but you could craft a similar fight that would be harder to cheese to create that play pattern that is totally different from what we're used to in Tactics games (where you can't really escape enemies on the field). It could of course also be designed to allow for multiple play patterns, bum rushing, lots of status prevention / healing, etc.

Quote from: CONMAN on August 16, 2021, 05:40:57 pmAvoid Gimmick bosses- The type that are near unbeatable with surprising status effect damage and chumps when you come back with adjusted equipment.  Also, bosses for whom one strategy is about the only way you can win.

This reminded me of a design question that I've thought about quite a bit. There are some games out there that give the player unbeatable situations, encounters where you are supposed to lose to advance the narrative, would FFT be an appropriate place to do that? Is that even ever a fun thing for players to experience? My concern is that A what happens when someone thinks they've just triggered a regular game over and just resets continuously and becomes frustrated because they can't 'win', or B that players then fall into a pattern of just giving up when they run into difficult fights (also can be frustrating when you find out you were supposed to win all along).
67
Hey all you Map Packers!

Here is a version of the PPF without any Attack.Out changes, and minimal FFTPatcher changes (just 1 edit to ENTD entry 110). This version of the map pack shouldn't have as many issues when patched on top of other mods, but it does not include the special event that I created for the pack!

This version, for example, is more compatible with TLW because it does not include some of the other changes. The only issues that may arise should not be game breaking. (Teta may be missing at Zeakden, there is one tile that you can place a unit on for the Sand Rats fight that will make them not spawn)
68
Spam / Re: Perls of the Chat.
August 04, 2021, 05:11:06 pm


brb adding this to post signature
69
I think that at some point in the future I'm going to do a deep dive into that video and try and figure out where things went wrong! A few notables are Ramza riding his chocobo ally at the start of one of the battles (oops, I wasn't thinking enough about walk commands in regards to that) and whatever happened to that one chocobo who couldn't be targeted and then turned one tile on all the maps into infinite crystal activations.

And no problem Nyzer! Definitely useful to have a reference for some of the newer instructions that are available to us now, and I thought this was the perfect opportunity!
70
If only I had had this while making the custom event for the map pack! (But alas, I was too lazy)
71
Tutorials and Learning / Re: Command Prompt FAQ
June 14, 2021, 10:23:55 pm
The new tool JuraviS also runs using command line commands! Nice write up
72
Hey everyone! All of you that caught Kori's most recent map making stream saw him play through an event / battle series that I created for the map pack. This battle series included 7 battles that the player party went through where they didn't recover HP/MP/Statuses/other stuff between battles, and although it looked to be about 9 event slots, it was actually only using 1. This post is to explain how the magic happens!

Here is the video for reference (Thank you ArmoredKori!)
Go subscribe to this man on Twitch ASAP.

Here is a link to the pastebin of the event.txt, which I will also be attaching below. Feel free to use it as reference for creating your own Battle Series events!

The Setup
Here are images showing how I set up the ENTD, World Map Conditionals for triggering the event, Attack.Out, and Event conditionals.
AttackOut1.png
I had to adjust the Orbonne event to make space for my event! I also moved the Orbonne event from its original spot (offset 4000) to its setup event slot (offset 2000).

AttackOut2.png
Just one slot?? That's right!

ENTD.png
As you can see, all units except for Worker 7 are set not to be present at all. This meant for me that every time I ChangeMap'd and the ENTD data was reloaded, I only had to RemoveUnit Worker 7 and could AddUnit in the enemies I wanted for the fight.

Event Conditionals1.png
Again, I had to modify Orbonne's event conditionals to make space for my event. RIP Vanilla, everyone please use TLW as a base (or make a totally custom mod) instead.

Event Conditionals2.png
I appended my new events conditionals to the end of Vanilla's list. You can see how I got the event to be called over and over again, each time the player wins the fight the event is called again. In the event you can see that I only tell it to go back to the world map if the player beats every fight or if they refuse the challenge.

World Conditionals.png
The world conditionals. This fight is only available in Chapters 2 and 3 because I can control Ramza with his unit ID 02 in those chapters, and I didn't want to put in the effort to check what his unit id was and swap it in if you tried it in chapters 1 or 4 (where his unit id is 01 and 03 respectively). The variable I am using for the check here is actually what background the shops are currently set to!

The Same Event Multiple Times
If you've opened up the event.txt you'll see that it starts with a switch statement.

//Var x0070 will be used to track what part of the event to run
Switch(x70)
Case(x0001) //PART 2
JumpForward(x02)
Break()
Case(x0002) //PART 3
JumpForward(x03)
Break()
Case(x0003) //PART 4
JumpForward(x04)
Break()
Case(x0004) //PART 5
JumpForward(x05)
Break()
Case(x0005) //PART 6
JumpForward(x06)
Break()
Case(x0006) //PART 7
JumpForward(x07)
Break()
Case(x0007) //PART 8 (FINAL)
JumpForward(x08)
Break()
Default() //First part no jump, run part 1 below
Break()
EndSwitch()

Every time this event starts, this Switch checks Var x70, if its value matches a Case, it will run that section. Each of those sections has a JumpForward that brings it to the appropriate part of the event. At the end of every 'PART' of the event, I use JumpForward(x01) to go to ForwardTarget(x01), which is right before the end of the event so I can skip over the parts we haven't gotten to yet. This allows us to create an event that is itself its own Pre-battle, Mid-battle, and Post-Battle events. At the end I use the PostEvent(x80,x0000) command to bring the player back to the world map.

A single event can be quite large, this event has a ton of instructions in it but only uses 5952 bytes out of a possible 8192. If you wanted to create an even longer battle series you could write events that have better looping logic to save space, or use more than one event slot. I just wanted to show that if you really wanted to, you could significantly reduce the amount of space required for multiple events (so don't ever say that FFT doesn't give you enough space!). SOMETIMES using a little more space to keep yourself organized might be the best way to go, especially because condensing things down to this level can make it confusing. Be mindful of why you would do something like this  :lol:

Bringing The Team Back
When you load in your party into an event with a battle formation screen and then ChangeMap, they are wiped away like the units in the ENTD that are not flagged Always / Randomly present. I tried AddUnit-ing them back in, but that presented a strange graphical glitch: Units would take hits from enemies and not react, and no damage would show up even though their health would actually change, unless they had taken a turn first. I discovered the fix for this by looking around in pSX's memory editor, here is the excerpt from the event.txt where I talk about it:

//Battle Stats x0001 has to be the same as what it was at the start of the event,
//otherwise when units are hit before they get their turn they will not react
//(But still take damage). This is just a graphical glitch, but an important one to take care of to make things looks good
//It gets set to FF on ChangeMap, so it must be assigned
SET(x0070,x0010)
UnitAddress(x02,x71)
SaveAddress(x70,x0001,x71,001)
SET(x0070,x0011)
UnitAddress(x78,x71)
SaveAddress(x70,x0001,x71,001)
SET(x0070,x0012)
UnitAddress(x79,x71)
SaveAddress(x70,x0001,x71,001)
SET(x0070,x0013)
UnitAddress(x7A,x71)
SaveAddress(x70,x0001,x71,001)
SET(x0070,x0014)
UnitAddress(x7B,x71)
SaveAddress(x70,x0001,x71,001)

I run this code block every time I ChangeMap. I believe that the numbers are correlated to the fact that in battle stats the player party are stored in those slots (The 16th (0x10) to the 20th (0x14)). The event will still run fine if the player brings less than the full party.

Bringing the Enemies Back
ChangeMap seems to reset ENTD data to a certain point, when I AddUnit enemies in that have previously been defeated / crystal / treasure'd after a ChangeMap, they appear with full HP and MP. I have to do more testing to see what happens with things such as Inviting an enemy and broken gear.

Wrap Up
Thank you to ArmoredKori for creating the Map Pack and inspiring me to do this event for you! It was fun :)
If anyone has any questions about anything I've done here in the event, that I talked about here or otherwise, please respond to this topic or message me on Discord! I hope that we can work out all the kinks of the battle series system and have it included in lots of mods in the future  :o
73
There are indeed flags for the treasures, check this out. https://ffhacktics.com/wiki/Variables#Treasures
I've never used ALMA so I'm not sure, but with good event editing / ASMing skills I'm sure you could make good use out of them somehow.
74
Spam / Re: Perls of the Chat.
May 27, 2021, 12:14:27 am
All credit to Kokojo for creating this gem.
75
PSX FFT Hacking / Re: Interesting Mod
April 06, 2021, 12:58:23 pm
Quote from: CONMAN on April 06, 2021, 11:59:05 amI'm actually wondering if the Sin I was talking about is actually a manipulation of an "evtchr" image like we already use here.

That was my guess! Since there is an editor somewhere to modify how large EVTCHR images can be. They're doing a lot of really fun stuff in this mod it looks like, I hope somebody manages to find it.
76
Help! / Re: Resource.zip Issue
April 06, 2021, 09:31:33 am
Let's make sure you're doing the process correctly! Here's a step by step.

Assuming FFTPatcher v0.493 Beta v6
Open FFTPatcher
Click File -> Generate Resources.zip
Make sure to generate the file in the same directory as FFTPatcher (and keep it there)
Open the zip -> Click on the PSP folder (If that's the version you are editing)
Say you want to edit SkillSets.xml, if you don't have something that knows how to edit xml's, export the file, change it in notepad, and import it back into the same folder it was in in the zip file without changing the name. If you do have something that can edit xml's, just double click on the file in the zip and edit it there, and save.
Close and open FFTPatcher again, your changes should be present.

Make sure you are preserving the formatting of the file while editing the entries. Here is an excerpt from the PSP's SkillSets.xml

  <SkillSet byte="05" name="Fundaments"/>
  <SkillSet byte="06" name="Items"/>
  <SkillSet byte="07" name="Arts of War"/>

Let's say you want to edit Fundaments to Witchcraft (idk), the file now looks like this

  <SkillSet byte="05" name="Witchcraft"/>
  <SkillSet byte="06" name="Items"/>
  <SkillSet byte="07" name="Arts of War"/>

Hope this helps!
77
Help! / Re: Patching w OpenEmu (Mac)
April 03, 2021, 10:31:29 pm
It is possible that it's an issue of compatibility between the emulator and CCP. It's known not to play well with certain versions of ePSXe and anything that isn't pSXfin on windows, lord only knows what happens with it on emulators on mac. Good luck though!
78
Help! / Re: Patching w OpenEmu (Mac)
April 03, 2021, 09:51:01 pm
I'm not sure if this will fix the issue (might just be the emulator? I'm not sure!), but you could try patching with this instead https://www.marcrobledo.com/RomPatcher.js/ and see if you get something that is playable.

Also welcome back!
79
War of the Lions Hacking / Re: Names in FFTPatcher
April 03, 2021, 11:26:42 am
The FFTPatcher suite comes with a tool called FFTacText which can change text (including unit names).
80
Help! / Re: Transaltion issues
March 23, 2021, 01:34:13 pm
So for each character you want to replace, take a look at this reference: https://ffhacktics.com/wiki/Font

You can see the excel sheet asks for the Character ID and Character Width (both provided to you on the wiki page I linked). Put in the correct info for the character you want to replace. So if you want to replace the capital A, ID is 0A and Width is 6. Next draw the new character in the box by filling in the squares with the correct numbers (1 is darkest, then 2, then 3, then blank). Copy everything in the blue box and save it to a .xml file with some name (say, Areplacement.xml), put that XML file in the same folder as other FFTOrgASM hacks and apply it, then in game you should see that A has been changed to whatever you changed it to.
You'll create separate hacks for each letter, and then you'll have to edit the text in game with these replacements in mind.

Hope that explanation makes sense to you!