• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
March 29, 2024, 01:42:19 am

News:

Don't be hasty to start your own mod; all our FFT modding projects are greatly understaffed! Find out how you can help in the Recruitment section or our Discord!


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

1
Works in Progress / Re: Souls of Destiny January 4 2016
September 14, 2016, 05:46:02 pm
This project looks pretty damn neat. I'll be keeping an eye on this thread to see how it unfolds. :)
2
Sure dude, no problem.
3
I sent it to you in PM form in response to the PM you sent me. If you'd like to post it here, I'm sure people could tell you if I made any errors (Certainly Possible) For instance, I'm unsure if stat growth considers "variance" as I did, or if it is based on the RAW numbers with a variance of 0.
4
Quote from: nitwit on September 09, 2016, 08:53:14 pmHow should I deal with raw stats?

Tricky question. That's going to depend on your specific needs.

For myself, I've completely abandoned the default raw stats, in favor of a custom set of them which I'm using for everyone.
5
PSX FFT Hacking / Re: ASM Requests
September 09, 2016, 08:41:56 pm
Quote from: Emmy on September 08, 2016, 11:31:23 pm(Keep Algus from using all your Potions this way!)
That rat bastard! I have on several occasions killed him because he was an active detriment to the party. Contributing nothing useful, and using up all my items.
6
PSX FFT Hacking / Re: ASM Requests
September 08, 2016, 09:45:09 pm
Quote from: nitwit on September 07, 2016, 12:37:21 pmTurn off the join after battle flag, then use the guest slot hack.
And specify the stats you want them to have; yes.

Isn't that what I said?

You do that, and nobody is doing any tampering with "Guest" equipment or skills.
7
Wow, Xif, I clearly need to go through the tools forum again. I didn't realize this existed.

Though not quite what I was describing to nitwit, still very helpful for finding unused afflictions and duplicates.

I was talking to him about automatic sorting by category and automatically updating references to match the reorganized data. But with the data not automatically reorganized, this makes the edits much easier to do, for sure.
8
Quote from: nitwit on September 08, 2016, 01:04:10 pm
Abstraction hell is a thing.  Printing data I don't need right now is confusing.  Since I'm a programmer, if I need something later I can make it.

Eh. When I write some kind of tool I typically find it better to cover my bases than just do the bare minimum for what I need that instant. I've found it to be less work in the long run. But whatever works for you.

Quote from: nitwit on September 08, 2016, 01:04:10 pmOnce they are roughly on par with human abilities balancing them will be the same as balancing human abilities.
That's one approach I suppose.

Quote from: nitwit on September 08, 2016, 01:04:10 pmGetting the drivers for my Windows laptop (since I don't have an activation key) is more of a pain than writing a few loops, conditionals, and print statements.  I have wifi, usb 2.0, and ethernet.  I need to get usb 3.0 and a touchpad driver (so I can disable tap-click).  Still can't find the usb 3.0 driver, giving up on that.

I personally like to backup all the drivers on my machine long before I format reinstall, and if possible, I hunt down driver installers and save them.

Quote from: nitwit on September 08, 2016, 01:04:10 pmFor an editor?  Or something to present a text breakdown of your mod?
For in an editor, yes. For instance, in status afflictions, there are several identical copies of "inflict poison", and the order of the afflictions doesn't make any sense.
9
Quote from: nitwit on September 07, 2016, 09:26:58 pmWouldn't be terribly hard, but I'd have to find where most of the data is.  Besides I'm only interested in the things I mentioned thus far.
For now, maybe. Who's to say when you might need the rest of the data you're skipping because you don't need it just this instant?
And if you're not factoring in range and AoE and status effects and MP and CT and targeting restrictions when determining what kind of damage is reasonable? Well, your abilities are not going to come out very well balanced.

Quote from: nitwit on September 07, 2016, 09:26:58 pmProbably would be a good idea to specify in which files specific data tables and routines are located. Making a duplicate page would be lame, so I guess you could specify in which file each routine/table is located in the list of tables and routines.
For sure. would be good to know where all that stuff is located.

Quote from: nitwit on September 07, 2016, 09:26:58 pmWhat do you mean by reorganize?  Present it in a different manner?

I mean organize it differently for the purpose of modmaking. Many things (item properties, status afflictions, jobs, items, etc) are stored in a haphazard manner, which can make looking for a particular item a real pain in the ass. You could save things in a more rational order, such that you could scroll through them and find what you are looking for quickly and easily.

Quote from: nitwit on September 07, 2016, 09:26:58 pmMaybe someday Raven will teach us.

I'll just google it, if I ever actually need to do it.
10
Quote from: nitwit on September 07, 2016, 05:09:45 pm
You're probably right, but I don't/can't use excel and I never quite figured out how to create drop down lists and validation.  I'm more comfortable with printing formatted text.


Frankly, a CSV dump of the entire default contents of FFTPatcher would be handy. Both the PSX Dataset and the PSP Dataset. Useful for planning, useful for if you want to populate fields via formulas, useful if you want to reorganize the data in your patch without having to manually do all the adjustments.

I've not done much in the way of drop-down lists in excel either, but I have never needed to thus far.
11
In my opinion, your problem is much easier to solve with an excel sheet than a program.

It's quite a simple excel sheet to make.

Plot the values for the player jobs, plot the values for the monsters, compare and graph them visually so the progressions line up - not so difficult.

Though I'm not sure there's a hell of a lot to do with a blue mage to begin with.

Are there that many monster skills that aren't just reskinned versions of regular skills? What would your Blue Mage skill list look like? Most of the monster skills are basic damage attacks for example.

But anyways...

Just spit out a visual chart, your life will be much easier. Look at max/min/average stats for humans, WITH equipment. Look at max/min/average stats for monsters. Compare what you're making to that.

[Edit]
There are like 78 monster skills that aren't basic attacks (rough count).
Several of those are going to be repeats of skills in human jobs, or repeats with a name change and an insignificant tweak or two.
You get at most, 16 slots, but 8 would be more reasonable, I imagine.

The hard part, is picking the skill set for your blue mage.

I am, however, interested in those csv files. For abilities, you should also be grabbing Range, AoE, Vertical, CT, MP, and the flags. Those things are all important in balancing skills.
12
PSX FFT Hacking / Re: ASM Requests
September 07, 2016, 12:51:04 am
Quote from: nitwit on September 06, 2016, 01:05:59 amHow many character slots would that free up, at the expense of some slightly larger battle editing?

3 or 4 I think? Someone already made a hack that lets you use the guest slots for your own characters. Personally I never run out of slots anyways (unless I'm running around hatching eggs and most of my slots are full of unhatched eggs). It's a pain to keep everyone up to level, so I always just do 5 that are kept up to level + whatever special characters I'm lugging around for cutscenes.

Quote from: nitwit on September 06, 2016, 01:05:59 amAren't guests already present in the battles anyways?
Yes, but by default it loads their stats from your party roster, and then saves back to party roster, rather than recalculating them each fight.

If you were to skip the load & save (turn the flags off), and set their gear to Random, level to Party Level, and Job to whatever you want it to be, that's how I'd handle it. As an added bonus, your guests are now actually the same level as your PCs rather than underleveled and shitty (though their job/skill loadouts may still suck, depending on how you handle your skill JP/level JP/job requirements).
13
Assuming you aren't changing the formulas from vanilla, and you're just plugging in your own data, I'm pretty sure this is accurate, and doesn't require you to calculate any levels except the one you want to look at. Someone tell me if I'm wrong, and I'll correct it.

Stats
Modifier=16384
RAWBaseStat = PreRawBaseStat * Modifier.
StatGrowthPerLevel = RAWBaseStat / (GrowthMultiplier+1)
RawStat@Level = RawBaseStat + (StatGrowthPerLevel*(Level-1)) **This only works if every job has the same growth. If the growths vary, you have to do it one level at a time, based on what job you were when you got the levelup.
NakedStat@Level = RawStat@Level*Multiplier/(Modifier*100)

Typical Average Damage Formula
Damage=PA(Or MA)*WV
Though some are
PA*PA, or WV*WV, or PA*rand(1..WV), or PA*(WV+Y), or SP*WV, or what have you. Some also factor in Brave as a damage percentage modifier.

In my own hack I'm working on, I intend to have basically everything be based on some variation of (PA||MA||Min(PA,MA))*(N||WV||Y||WV+Y). But for Vanilla there's a wider range of formulas at use.

There's a nifty ASM someone already that lets you take that final damage number and apply a multiplier, which is good if you want to scale all your damage up or down without modifying the WVs or PAs you're using.

And if you want More *Useful* stats, you need to calculate some meta-stats.

For this you need to know what your other options are, and you'll likely want a spreadsheet for that, but you could populate a bunch of 2d arrays programmatically if you'd prefer.

These numbers are for same-level matchups. If you want stats for fighting higher or lower level opponents you'd need to run these formulas again with the numbers for the level matchups you're looking for.

%KillPerHit (Bad Attack v Good HP)
Worst%KillPerHit=AvgDamage[low]/AvgHP[high]
Med%KillPerHit=AvgDamage[med]/AvgHP[med]
Best%KillPerHit=AvgDamage[high]/AvgHP[low]

#HitsPerKill (Bad Attack v Good HP)
WorstHitsperKill=ROUNDUP(1/Worst%KillPerHit)
MedHitsperKill=ROUNDUP(1/Med%KillPerHit)
BestHitsperKill=ROUNDUP(1/Best%KillPerHit)

Avg%KillPerAttack (Bad Attack v Good HP)
Worst%KillPerAtk=AvgDamage[low]/AvgHP[high]*FinalHitChance
Med%KillPerAtk=AvgDamage[med]/AvgHP[med]*FinalHitChance
Best%KillPerHit=AvgDamage[high]/AvgHP[low]*FinalHitChance

Avg#TurnsPerKill (Bad Attack v Good HP)
WorstAtksPerKill=ROUNDUP(1/Worst%KillPerAtk)
MedAtksPerKill=ROUNDUP(1/Med%KillPerAtk)
BestAtksPerKill=ROUNDUP(1/Best%KillPerAtk)

As for FinalHitChance, it'll be a %. But I don't actually already know how to calculate that one.

Using the above, you could spit out (and graph) how many turns/hits it takes for a unit to kill or be killed by an enemy of the same level through raw damage. Very useful for calibrating damage output and defenses.
14
PSX FFT Hacking / Darkholme's ASM Hacks
September 06, 2016, 06:31:51 am
So far it's just the one.

It's a change-up of Glain's "Gear-Level Bugfix/More Selective Equipment" Very small change to his code, but one that makes it do the exact opposite of his hack.

The idea is that I want to have more tightly balanced weapons, and as a result, the weapons you have access to at level 1 should still be viable (though not optimal) even at level 99. As such, I want the NPCs to make use of it. Each job will also have access to a wider variety of weapon types that still make sense for the job.


  <Patch name="Random Unit Equipment Less Picky">
    <Description>
      Random unit equipment will now be way less picky.
      All valid items should be added to the potential list.
    </Description>
    <Location file="SCUS_942_21" offset="4D53C" mode="ASM">
      li      t7,0                  # ItemFound = false (initialize)
    </Location>
    <Location file="SCUS_942_21" offset="4D5F0" mode="ASM">
      nop
      li      t7,1                  # ItemFound = true
      addiu   t1,t1,1               # Increment list index
      nop
SKP:  move    t4,v1
      move    v1,t1
    </Location>
    <Location file="SCUS_942_21" offset="4D628" mode="ASM">
      addiu   s0,t1,1               # Length = list index + 1
      beq     t7,zero,0x5ce60       # If (no item found), skip
    </Location>
  </Patch>


Basically, Glain's hack fixes an error in the existing gear selection function, which was making the game think all items after the first category were whole new categories, rather than choosing from the best level-appropriate item out of each category.

My change to the main check in his hack should make it consider each allowable item individually, such that a level 40 character has the same odds of having an ice-brand as he does of having a broadsword, for projects such as Mine where the old items don't become worthless as you level up.

If you're looking to test it yourself, I also attached a .fftpatch that should let you see it in action quickly and easily.

Most of the time it works perfectly, but once in a while I'm getting items in invalid slots, like you can see in the attachments. Anybody have any idea what's causing this behavior?
15
New Project Ideas / FFT: Option Paralysis Edition
September 04, 2016, 05:38:22 pm
So, I'm sure many of you guys have seen me around the IRC asking random questions lately. Since I've been asked a couple times what I'm working on, I figured I'd start this post. I'll update it as I make progress.

Background
A few years back I started on a patch based on the idea of "no special characters". All the abilities named characters had would be from generic jobs. Special Jobs would be slotted into the job tree. Then the idea expanded a bit. Wanted more meaningful choices of ability in each skillset, rather than some skillsets having very few.
Then I dropped it for a long while; due to a combination of focusing on my other interests (tabletop RPGs) and life stuff.
Anyways. A few months back I decided to pick it back up. Pulled up my old notes, parsed through them, and took things in a new direction, while keeping the main idea from the old one.

Main Premise

  • Generics can accomplish any skillset a special character can.

  • All skills/items are potentially viable at all levels.

  • All actual skillsets should have 4-6 well varied options to choose from.

  • Much Tighter Job Balance - this will likely take some trial and error and testing.

  • Lift some design & balance ideas from D&D4e, for class roles determining stat loadouts and themed skillsets, and an explicit stat each job relies on (PA, MA, or MIN(PA/MA)).



Why?
I like FFT, but felt it lacked some things, and I want to play it without the things that annoy me. If, when it's done, someone else enjoys it too, all the better. This is obviously a much simpler project than Jot5, but it's a more complicated project than Rebirth, or 1.3.

So here's where the project plan currently is.

Planning/Design.
085% Done - Jobs - Heavily redesigned Job tree & skill lists.
085% Done - Stats - Core stat balance around drastically reduced stat growth, to maintain the relevance of the Items and Skills.
100% Done - Weapons and Armor - Items may be a bit less or more useful, but all items should be usable at all levels.
010% Done - Skills - Skills may be a bit less or more useful, but all skills should be usable at all levels. Additionally, each skillset should have 4-6 meaningfully different skills to choose from - so far I've done broad-strokes "what skills should be in what jobs" but have not redesigned or rebalanced any of those skills yet.
000% Done - Monsters - Haven't even looked at them yet.
000% Done - Battle Redesign - Haven't Started Yet

Implementation
000% Done - ASM - I have some preliminary notes on what I'll need, and some research stuff for R3000 I've been reading. Once I finish the rest of my planning, I should have a better idea of what I'll absolutely need vs stuff that would just be nice to have, so I can prioritize the tasks. Then I need to familiarize myself with MIPS R3000 ASM a bit more, and figure out how to do the parts unique to game hacking as my coding experience is all with from-scratch projects, and most of that is with things like C#/Java/PHP/SQL. I've done some ASM, but not since like, 2009, and not for MIPS R3000. This is going to be the most difficult task, and I'll break it down into subtasks once I have a better Idea of what I'm going to need to do.
000% Done - Patcher - No point in doing most of this yet, lots of small details may change. Hence the reason I'm designing stuff in autocalculating spreadsheets right now.
000% Done - TacText - Haven't even looked at this part yet.
000% Done - Battles - Haven't looked at this part yet either, but it should be fun, once I get to it.

Going to balance it as best I can during planning and using excel, but inevitably I'm going to run into stuff that isn't going to work out as intended; and I intend to tweak the balance after it's otherwise done.
16
PSX FFT Hacking / Re: ASM Requests
September 03, 2016, 11:48:41 pm
Not that I know of.

But they take up a slot in any battles they're present in, anyways.

The way *I* would do it, is have them never actually join as guests at all, and just make them friendly NPCs in battle with the gear they're supposed to have.
17
Oh. I remember people talking about it a few years back (probably 2011 or so), and then I thought nothing came of it.
18
FFTPatcher is now on GitHub.

Nice, about time!

I see some updates have been made, So, when is the next release going to be? And where are the compiled uploads on there like most other GitHub repos?

The newest one I've got a is 0.489
19
FFTPatcher lets you both see and edit this directly.
20
Back in the early 2000s, before ffhacktics was a thing, I used to hack the hell out of my PSX fft using a game shark.

I remember making several named NPCs recruitable (wiegraf), changing how moves work, etc.

It was a ton of work to come up with the codes, and a ton of work to enter them into the game shark.

Using patches is much better, and the game plays, looks, and runs way better on a PC anyways. If you want a PlayStation controller, you can use 4 dualshock 3s/4s with a $10 Bluetooth adapter and the proper drivers. If you want a dualshock 1/2, they have adapters for that.

Expecting people to share hacks as game shark codes is ridiculous. You can accomplish so much more, and share it infinitely easier using patches than you ever could using GameShark codes.