News: 11 March 2016 - Forum Rules

Author Topic: Want to make a difficulty mod for Final Fantasy I (PSP ver.) but total newbie..  (Read 1299 times)

fourteenth_domino

  • Jr. Member
  • **
  • Posts: 2
    • View Profile
So basically, I want to create a mod that restores the PSP version's overall difficulty curve to something closer to the NES or Origins versions. Similar to Jeff Ludwig's Mod of Balance for the GBA version, but a lot less extensive (mainly due to my limited ability). I've always hoped somebody would eventually make something like this, but after 14 years, no such mod exists for this version. So... I thought maybe I'd try to take it into my own hands. Could be a fun project, and hopefully others would enjoy it. If it weren't for the nerfed difficulty, I feel this would otherwise be the "ultimate" version of FF1, so I'd like to take a stab at making this reality.

The changes I want to make:

-Increase the amount of experience needed for each level up.
-Increase shop prices.
-Make Ethers and Phoenix Downs significantly rarer and/or more expensive.
-I'd keep the MP system, but maybe slow Max MP growth (or have spells cost more MP) to be more in line with the limited casts of the NES/PSX version.
-Maybe adjust some of the more overpowered weapons/items (i.e. the ones that let you cast Flare).
-Adjust boss HP (mostly raise them- this is the one area where I'd take a bit of personal liberty. I always felt that, even in the NES/PSX versions, a lot of boss fights were a tad underwhelming and ended too quickly.)

But for as much thought I've put into this, this brings me to my main issue... I have no experience with hacking, programming, etc., whatsoever. I have a basic understanding of how hexadecimal works, and I consider myself decent at learning new technical concepts, programs, etc. But alas, I'm just not there yet.

I know everyone's gotta start somewhere, but is this something one person could learn to do with some trial and effort? Or am I setting myself up for disappointment? I feel like the changes I want to make are mostly just swapping static numbers; no complex class rebalancing or anything like that, so in theory it SHOULD be a "simpler" project compared to massive ROM hacks. But again, with my background knowledge being almost zero, I worry I'm getting myself excited for a project that might wind up being unrealistic for me.

What do you guys think? Anyone have any guidance, input, or even interested in helping out with this? I did indeed look through the "Getting Started" material, but I'm still feeling pretty overwhelmed on where I'd even begin. I have PPSSPP and I know there's some debugging/disassembly/etc tools within the emulator, that I think I'm supposed to use. I guess I just need a few nudges in the right direction to get my bearings straight.

Thanks in advance!

FAST6191

  • Hero Member
  • *****
  • Posts: 3279
    • View Profile
Somewhere between "yes and no" and "it depends".

Some of those might well be things you find a static number for and can fine tune from there, other things can and demonstrably have been in far simpler/older games been buried deep in the code (various games have max HP as a combination of level, various stats, armour and whatever else rather than just another stat like it might be in some other games).

I would probably bet on most of those being on the harder end compared to the normal sorts of cheat making and balancing stuff but not out of range of a determined newcomer. It won't however be gentle cheat making/save editing stats type deal and instead you will probably want to get your hands dirty with a debugger.

You will want to start by learning to make cheats. https://web.archive.org/web/20080309104350/http://etk.scener.org/?op=tutorial being my usual link (for the GBA but same for just about everything) as most of those will benefit from it. After that you will want to learn some tracing, which I am not sure what PPSSPP has these days.

In order then.

1) Sometimes it will be a value in memory or in a table somewhere. Other times it will be mathematically generated somewhere along the line, and maybe change between character/class. If you find the experience counter then involved with that somewhere on level up will be the max HP and where it calculates or reads the next level from.
2) This is more likely to be a table somewhere. Assuming you don't want to come the other way and reduce drop rates from monsters. Find your money value and then set a breakpoint to see what takes from it. From there you likely have your table. Can do this with any item really and then in most games you will have the format it uses (usually either a very long table of values or each item has its own value field along with all its other stats -- think column of a spreadsheet vs row of a spreadsheet if you were writing out everything for a FAQ).
3) Don't know offhand if they are drops in this version or dungeon pickups. For the former then you might have a drop rate for monsters, and for pickups then assuming simple hardness does not become a thing you get to learn map editing.
4) Depends upon the game. Some will be simple here is my weapon, here are its atk, def, special, value and associated abilities, others will be baked into the code. Usually in games if it is a simple other effect it will be an associated ability value list where anything more complex or unique tends to be buried in code but no guarantees of anything in all this.
5) This you might be able to dodge having to play disassembler/tracer for. If you can find the stats in memory then you might be able to search it back through the game to find the base table (assuming it is not compressed). Start by maybe finding the enemy HP.

A lot of things here you might also be able to effect a similar take on with cheats. If the game has a step counter or timer somewhere in it then you might well be able to use the PSP cheat codes do things like if step counter is greater than then remove some gold/experience/whatever you like. That will also mean you see real results quite quickly.

MysticLord

  • Full Member
  • ***
  • Posts: 208
    • View Profile
First place to look is in the Games section on the main page.
https://www.romhacking.net/games/1885/

Doesn't look like there's anything for your game.

Do you know if there's a way to extract files from the PSP disc image, or their structure?

Assuming there's no compression, it's often very easy to find data (like the item data, or spell data, or what have you) with just a hex editor and plenty of lateral thinking.

Here's a good guide on save state hacking, which is a good first step along with making cheat codes.

https://fantasyanime.com/save-state-hacking

Rabite890

  • Jr. Member
  • **
  • Posts: 44
  • Rabite was here
    • View Profile
An alternate suggestion would be to use the editor for the GBA version to work with that version. It's advanced enough for you to do most of what you want to do. And it's simple enough that you can figure it out pretty easily. Plus I've already released patches to skip cutscenes if you want to use them.
« Last Edit: March 19, 2021, 05:38:48 am by Rabite890 »

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 7203
  • *sigh* A changed avatar. Big deal.
    • View Profile
-I'd keep the MP system, but maybe slow Max MP growth (or have spells cost more MP) to be more in line with the limited casts of the NES/PSX version.
I wouldn't aim quite for an exact match on that. I think the NES/PS1 (Original) was far too stingy with its limited casts, making magic barely usable. I can't recall if GBA/PSP fixed Cure spells so they grow stronger based on stats, but when you had to additionally use multiple of your limited Cure casts to get a decent heal, that's a problem.
"My watch says 30 chickens" Google, 2018

Rabite890

  • Jr. Member
  • **
  • Posts: 44
  • Rabite was here
    • View Profile
I wouldn't aim quite for an exact match on that. I think the NES/PS1 (Original) was far too stingy with its limited casts, making magic barely usable. I can't recall if GBA/PSP fixed Cure spells so they grow stronger based on stats, but when you had to additionally use multiple of your limited Cure casts to get a decent heal, that's a problem.

INT and Luck factor heavily into healing. With 0 luck (on the target) you have no variability in how much a spell heals, with 99 luck (again on the target), there's a MASSIVE amount of variability. The same happens with magic damage, but it's a bit more odd.

The big problem with limiting MP is that there's normal MP gains and big MP gains (like HP). So you can remove guaranteed big MP gains, but you'll still get them. The better way to deal with this is to increase MP costs within reason and adjust magic power. Also get rid of the spell casting abilities of equipment (which OP already said they intend to do).

fourteenth_domino

  • Jr. Member
  • **
  • Posts: 2
    • View Profile
Thanks to everyone who responded!

I taught myself a little more about hex editing, and read through Jeff Ludwig's hacking notes for the GBA version, which wound up being a godsend. I've located most of the data I need to edit, now it's just a matter of 1) Deciding exactly how much I want to adjust things, and 2) Actually doing it!

I debated over how to adjust the experience curve. In Origins' Easy Mode, the amount of experience needed to reach any given level is approximately 30-40% of what it was in the NES version/Origins Normal Mode. In the GBA and PSP versions, the amount is FURTHER halved (exactly) from Easy Mode, meaning only about 15-20% of the original's experience requirement. In other words, levels are gained at a whopping 5-6 times faster in this version compared to the original. (Example: to reach level 20, the amount of experience you need is 96,332 original vs. 32,452 Origins Easy vs. 16,226 GBA/PSP. To put this in perspective, gaining 16,226 in the original version would only have you at level 11. Or to think of it the opposite way, gaining 96,332 in the GBA/PSP version would put you at level 35!)

I think ultimately, I'm going to revert the experience curve to the original NES amounts (and continue accordingly for levels 51-99, which of course weren't present in that version). I considered maybe making the required experience a little less, but then I think about how the extra dungeons play into this. I think all the extra experience gained in those dungeons, assuming you play most of them throughout the course of the main game*, is enough to take the edge of some of the grindy-ness of the original version, while still maintaining its overall challenge.

(*This brings me to another thing I want to figure out- when is the ideal time to play each bonus dungeon? It's been a while since I've done a full playthrough, but I recall the pacing being awkward. If you played them too early, you gained so much experience, you made the main game even easier. But if you saved them till the near the end/post-game, most of the dungeons save for the superbosses were a breeze by that point. Anyone have thoughts on this?)

Now that I have a better idea of how healing items are programmed, I'm thinking about how to adjust Ethers (and Turbo/Dry Ethers). Besides increasing their price and/or limiting their availability (especially early-game), I'm also considering decreasing their potency. If I recall, regular Ether heals 50 MP and Turbo Ether heals 150. I'm thinking about dropping those down to, say 35 and 100 respectively (I'd keep Dry Ether as a full-heal, but again, see about lessening how many there are). I haven't thought much yet about how to adjust MP overall, but if I do it will likely be in the form of slightly increasing required MP for spell cast, rather than messing with any of the growth. But then again, maybe decreasing Ether potency won't make that necessary.

And as I said before, I definitely want to beef up those boss fights! I understand the GBA/PSP version already did increase all boss HP (in a sorta-attempt to balance out all the ways the game was made easier?), but it wasn't nearly enough. At the very least, I'll probably double their HP, maybe even triple in some cases. Maybe I'll buff some of their stats too- I want the bosses to be genuinely more challenging, not just take longer due to more HP.

Anyways, thanks again to all of you, and I welcome any input or advice you may have, or anything else I should take into consideration. Ideally I'd like to have a basic version of this patch done within the next couple of months or so (assuming life doesn't get in the way).