• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
April 18, 2024, 07:02:14 pm

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen, RetroArch, and Duckstation are recommended for playing/testing, pSX is recommended for debugging.


ASM Hack - units gain +130 JP per Battle

Started by Eldiran, October 26, 2015, 12:06:02 am

Eldiran

October 26, 2015, 12:06:02 am Last Edit: October 26, 2015, 12:11:43 am by Eldiran
Thought I'd do something to calm my nerves before my game releases... so I dusted off this old hack I made 2 years ago. I was sick of having to conk my units over the head to gain JP, so I made this to just give all units a flat 130 JP for every battle they participate in. I never properly posted it, so here it is:

Here's the XML for FFTorgASM:
<Patch name="JP + 130 per Battle">
    <Description>Adds 130 JP to current job of all units at the start of battle. Exists in Move/Jump +X Calculation subroutine (see wiki).

Code takes place inside SCUS at 5e950

Huge thanks to Choto!
</Description>
    <Location file="SCUS_942_21" offset="4D0F4">
547A0108 <!-- j 0x0005e950 -->
    </Location>
    <Location file="SCUS_942_21" offset="4f150">
03008290
4A000324
13000624
22104300
22184600
02006004
2800A394
21100000
FEFF4004
20104200
DC004524
2128A400
0000A294
82006324
82004224
0000A2A4
2800A3A4
3E720108
2A008294
   </Location>
  </Patch>


I did an entire playthrough with this code on with no issues. It also plays well with other hacks (I had plenty of them on for that same playthrough). Hope someone finds it useful!

And, as the XML says, huge thanks to Choto for helping me back when I was making it! : )

Choto

Oh my gosh congrats! And thanks for posting. I'm gonna add this to the default hacks in the next FFTPatcher to be released soon. Glad I could help :)

Lockeadon

anything that cuts down on grinding is great!! how did you come up with that specific #? i can see this being really popular

Eldiran

@Choto: Cool! Thanks for adding it : )

@Lockeadon: I hope so, it really made my playthrough way more enjoyable! The number was just trial and error until I found one that felt right.

Personally I prefer more than 130, but I also used a code to set all other JP gains to 3, to really kill the motivation to hit myself.

I think I have some notes somewhere that says what part of the code is the JP value. If anyone wants me to dig them up so they can use a different #, let me know.

Lockeadon

lol @ hitting yourself. an additional way to curb that motivation would be making 'useful' actions give more than 'just for grinding' ones. by which i mean, smacking an ally could grant 2 or 3 jp, where smacking an enemy could grant significantly more, and killing blows could grant even more. or healing undamaged units could give significantly less than healing units that actually need it. it would also make grinding effectively not so mindless.

Choto

I think the jp lines are these:

82006324
82004224

0x82 = 130 decimal.. so that's my guess. I'll make it a variable when I put it in patcher so it's adjustable

Eldiran

Quote from: Choto on November 16, 2015, 07:20:45 am
I think the jp lines are these:

82006324
82004224

0x82 = 130 decimal.. so that's my guess. I'll make it a variable when I put it in patcher so it's adjustable


Good idea! I found my notes, and can confirm those are the correct lines.

Quote from: Lockeadon on November 16, 2015, 01:17:51 am
lol @ hitting yourself. an additional way to curb that motivation would be making 'useful' actions give more than 'just for grinding' ones. by which i mean, smacking an ally could grant 2 or 3 jp, where smacking an enemy could grant significantly more, and killing blows could grant even more. or healing undamaged units could give significantly less than healing units that actually need it. it would also make grinding effectively not so mindless.


Yeah, that would be great! (Unfortunately, it's also way beyond my ability to code...)

Lockeadon

mine too lol, maybe someone will pick it up

Xifanie

Funny you say that, because that hack sounds really simple, and you just coded an entire game :v. I might be able to build the skills to do that? But I have serious motivational issues that makes the whole thing impossible for me.

Also, units healed at max HP already don't earn any JP/Exp. It's pretty simple: if something changed with the caster or the target, Exp/JP is earned. Even reapplying the same status, because the clocktics remaining will be refreshed. For example, a mage casting protect on herself and an adjacent mime... the mime won't gain Exp/JP because the clocktics left are still at max.
  • Modding version: PSX
Love what you're seeing? https://supportus.ffhacktics.com/ 💜 it's really appreciated

Anything is possible as long as it is within the hardware's limits. (ie. disc space, RAM, Video RAM, processor, etc.)
<R999> My target market is not FFT mod players
<Raijinili> remember that? it was awful

Eldiran

Quote from: Xifanie on November 17, 2015, 12:05:02 am
Funny you say that, because that hack sounds really simple, and you just coded an entire game :v. I might be able to build the skills to do that? But I have serious motivational issues that makes the whole thing impossible for me.

Also, units healed at max HP already don't earn any JP/Exp. It's pretty simple: if something changed with the caster or the target, Exp/JP is earned. Even reapplying the same status, because the clocktics remaining will be refreshed. For example, a mage casting protect on herself and an adjacent mime... the mime won't gain Exp/JP because the clocktics left are still at max.


Hahah, well, doing stuff in assembly, worrying about how many lines you can use, is leagues harder for me than puttering around in C# : P

Good point about the JP gain. I also lack the motivation to make such a code- even if I had such a code I'd still prefer minimal/no JP per action, since I might still be tempted to do a little Speed Break abuse.

Choto

What game did you code in C# Eldiran? I'd like to learn more about what goes into it as I've been doing a lot of C# stuff the past couple years

Jumza

http://ffhacktics.com/smf/index.php?topic=11081.0

I think this is what they're talking about :)
Great job doing an entire game Eldiran, I'm hoping to buy it soon myself!
  • Modding version: PSX
Nyzer: Alma teleports out of her own possessed body.
Raijinili: Remember that you're telling a modding community that the game they love could use some fixing.

Eldiran

@Jumza: Yep, that's the one : )  Thanks! Hope you enjoy it!

@Choto: I used C# and XNA, which is sort of a bad idea nowadays. XNA is on its last legs, since it's not supported by Microsoft anymore. There's no telling if Windows 11 or 12 will be the OS that XNA doesn't work on. I expect MonoGame, which is basically XNA with better compatibility and continuing updates, would be a good alternative.

I love C# though. Way better than C++ unless you need a highly optimized game.

I started making it about 2 years ago, when it wasn't as blatantly unwise to use XNA. A lot of that time was spent on the engine, so my next game should be doable in 6-12 months. I highly recommend NOT making your own engine if you can help it. I couldn't avoid it because I wanted tactical combat and destructible terrain - stuff RPGMaker couldn't handle 2 years ago.

Angel

C# is better than C++ unless you actually care about performance. To get C# to perform as efficiently as C++ requires so much effort that you should just stick to C++ instead. Not everyone has the horsepower to run frivolous C# and Java code, so best to use it for programs so small that they hardly matter. Performance is very important to me, as I am currently stuck using a computer too slow to run snes9x until my main computer is fixed.

- From someone who cannot even browse imgur thanks to their shitty and uselessly slow Javascript, much less anything written entirely in Java or C#.
  • Modding version: PSX
* Angel should quit being a lazy bitch
<@Elric> I agree to that as well

nyanyame nyanyajuu nyanyado no nyarabide nyakunyaku inyanyaku nyanyahan nyanyadai nyannyaku nyarabete nyaganyagame
At the end of the day, are we not all trapped inside lemons?

Eldiran

Quote from: Toshiko on November 27, 2015, 04:28:01 pm
C# is better than C++ unless you actually care about performance. To get C# to perform as efficiently as C++ requires so much effort that you should just stick to C++ instead. Not everyone has the horsepower to run frivolous C# and Java code, so best to use it for programs so small that they hardly matter.


Yeah, absolutely agreed. There's a good reason C++ is the 'professional' programming language.

Since I'm making tile-based 2D games, I only need a fraction of the optimization, so C# is perfect for me. Even as bad as I am at coding, and using C#, my sprite-based game can run on old Windows XP laptops.

LastingDawn

Hello Eldiran. I see you've made an interesting little hack here. With Choto's DQ/Classic FF "Inn" hack I was thinking of ways to make FFT into a more classical RPG, in some respects. I did a little digging and found that if you nullify "0018d700: a0a40000 sb r4,0x0000(r5)      Store Earned Experience"
You skip both Experience routines for both JP and Exp. I'd love to try and incorporate this with an Exp. gain in the same way you used JP, but I'm not sure how logical it is to start the battle at a Level Up instead of at the end of battle.
"Moment's anger can revert to joy,
sadness can be turned to delight.
A nation destroyed cannot be restored,
the dead brought back to life."

Art of War

Beta & Gretchen Forever!!!!

Tony75

  • Modding version: WotL