Author Topic: Limit Breaking  (Read 20593 times)

Phyltre

  • *
  • Posts: 84
    • View Profile
Limit Breaking
« on: 2005-10-05 15:27:12 »
How hard would it be to move the maximum health past 9999, or maximum damage?  I know it would be easy to make MP go past 999 since hp-mp switch does that.

Obviously it might change the game dynamic, but for really high-level characters (the only time you'd see a difference in gameplay anyway) it would balance out.  You might have more health, but damage coming to you wouldn't be limited to 9999 packets, either.  I'm one of those people who likes to build really powerful characters, and it's always bothered me that just about every final fantasy game has been stoppered at 9999.  It's possible to break the limit in FFX, but only with a lot of work and it's after you've done most everything.

Breaking 99 as a level cap would be cool, too, although it'd just be cosmetic to document character growth past traditional barriers.  I don't suppose we'd want to change the 255 values, because that's the maximum value in that number system.

Skillster/RedSarg99

  • *
  • Posts: 2286
  • Loving every Final Fantasy
    • View Profile
Limit Breaking
« Reply #1 on: 2005-10-06 12:11:14 »
would be interesting, considering 9999 is 270F is Hex but must be about 39 occurances of FF to reach 9999.
Might either need real time memory patching or something easier

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Limit Breaking
« Reply #2 on: 2005-10-06 15:59:54 »
HP/MP variables in save file are capped at 0xFFFF so it won't be possible (for now) to break that limit like it was done in FFX.

Phyltre

  • *
  • Posts: 84
    • View Profile
Limit Breaking
« Reply #3 on: 2005-10-06 17:46:26 »
Quote from: dziugo
HP/MP variables in save file are capped at 0xFFFF so it won't be possible (for now) to break that limit like it was done in FFX.


So health is saved to a single line of code in the save file?

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Limit Breaking
« Reply #4 on: 2005-10-06 18:12:28 »
Quote from: Phyltre
Quote from: dziugo
HP/MP variables in save file are capped at 0xFFFF so it won't be possible (for now) to break that limit like it was done in FFX.
So health is saved to a single line of code in the save file?
Yup. It's stored as a Word (2 Bytes). I've managed to remove the cap on health (don't have the save-game with a character/spell powerful enough to do 9999 dmg so it's only health for now) and make it appear correctly in menu/battle. Now the cap is 32767 (since that value is signed, it's the maximum value). I'll post some screenshots soon... Probably...

dziugo

Skillster/RedSarg99

  • *
  • Posts: 2286
  • Loving every Final Fantasy
    • View Profile
Limit Breaking
« Reply #5 on: 2005-10-06 20:04:48 »
wow, of course the fonts etc will need to be realigned or resized to fit the increased HP
Shouldnt be too hard since the saint has to resize textures for his highresolution patch

Phyltre

  • *
  • Posts: 84
    • View Profile
Limit Breaking
« Reply #6 on: 2005-10-06 21:37:41 »
Quote from: dziugo
Quote from: Phyltre
Quote from: dziugo
HP/MP variables in save file are capped at 0xFFFF so it won't be possible (for now) to break that limit like it was done in FFX.
So health is saved to a single line of code in the save file?
Yup. It's stored as a Word (2 Bytes). I've managed to remove the cap on health (don't have the save-game with a character/spell powerful enough to do 9999 dmg so it's only health for now) and make it appear correctly in menu/battle. Now the cap is 32767 (since that value is signed, it's the maximum value). I'll post some screenshots soon... Probably...

dziugo


That's great!  You have no idea how much of a wish-fulfillment this is to me in terms of the FF universe!  If I wanted to allow my game to do the same thing, how much data would you need to upload?  I mean, can you make a patch for this?

(off-topic)Heh, I'm surprised that I'm understanding what you're saying.  The only experience I've had with hex/etc. in game code was when I made my own Gameshark cheats with the N64 back in the day.  It was complicated and took hours per code!  But I can remember putting the Arwing into a constant barrel-roll on Starfox64 (and making each wing indestructible), and permanently giving Link 255 hearts in Zelda: OOT.  Ah, those were the days.   In fact, I remember making the clip-size on the rocket launcher in Goldeneye 64 infinite, which meant it never reloaded, which made it a rocket-launcher machine gun...

The Gameshark let you isolate a line of code by using value searches or on/off delimiters.  I think I had to perform 50 of those for the rocket launcher, and maybe 95 for the Arwing barrel roll.  Each search took several minutes, so...(/offtopic)

Skillster/RedSarg99

  • *
  • Posts: 2286
  • Loving every Final Fantasy
    • View Profile
Limit Breaking
« Reply #7 on: 2005-10-07 12:09:12 »
did you patch the exe file to do this, or hack the memory in real time?
and what did you do to increase FF FF to 32000

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Limit Breaking
« Reply #8 on: 2005-10-07 12:59:23 »
Quote from: The Skillster
did you patch the exe file to do this, or hack the memory in real time?
Patched the exe and changed the HP when playing.
Quote from: The Skillster
and what did you do to increase FF FF to 32000
Hmm... 30000 < 0xFFFF (when comparing as unsigned vars). If that was the question of course...

dziugo

Skillster/RedSarg99

  • *
  • Posts: 2286
  • Loving every Final Fantasy
    • View Profile
Limit Breaking
« Reply #9 on: 2005-10-08 00:09:09 »
sorry I was assuming it was FF and FF, nevermind would be too hard to explain
so is it 0xFFFF and not 0xff and 0xff right after it?

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Limit Breaking
« Reply #10 on: 2005-10-08 09:53:14 »
You're right. It is FF and FF right after it, but it's still the one variable. When PC need to get that var it gets the second FF (actually that's not how it works, but lets pretend that it is :)), multiplies it with 0x100 (256) and adds it to the first byte. In memory those are two seperate bytes, but when you think of it as of variable, it's just FFFF. It's just easier to say "Variable is set to 0xFFFF" than "Variable consists of 0xFF and 0xFF where the second one holds the 0x100-part of the value" and that's what I'm doing (I'm just lazy).

As for the modification... I think I know how to remove the HP-cap and dmg-cap for characters, and dmg-cap for monsters, but... it looks like it is messed up when leveling-up, and when monsters attack other monsters (angry chocobo :P).

If I don't change the level-up HP-cap, it won't allow you to get past the 9999-barrier (can it be done without materia?), and when I set it to 32767 it looks like you get more HP on lvl-up. So it will make the game easier...

I think I'll just post some screenshots and that's it...

dziugo

MaTiAz

  • *
  • Posts: 31
    • View Profile
Limit Breaking
« Reply #11 on: 2005-10-08 11:41:25 »
Directly patching FF7 save files will make the game crash. I tried to make clouds HP above 270F (9999) and the game didn't like it :D

So some EXE patching is needed too... Hope that dziugo will help us with it :D

hay

  • *
  • Posts: 211
  • If I had a buggy, I'd cross the southern desert
    • View Profile
Limit Breaking
« Reply #12 on: 2005-10-08 13:16:18 »
yeah, that would be nice to break those limits...
maybe someday bahamut zero will be at least usefull ;]
dziugo sure will help! polacy to zdolne bestie :D

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Limit Breaking
« Reply #13 on: 2005-10-08 13:37:46 »
Some screenies:

From battle:
Link1
Link2
Link3

And from menu:
Link4
I took some time and moved those numbers a little bit.

So it works. I have to track down one more procedure which is responsible for writing the amount of damage done, but I hope it won't be a problem.

Quote from: hay
polacy to zdolne bestie :D
8)

dziugo

Phyltre

  • *
  • Posts: 84
    • View Profile
Limit Breaking
« Reply #14 on: 2005-10-08 18:14:38 »
Quote from: dziugo
Some screenies:

From battle:
Link1
Link2
Link3

And from menu:
Link4
I took some time and moved those numbers a little bit.

So it works. I have to track down one more procedure which is responsible for writing the amount of damage done, but I hope it won't be a problem.

Quote from: hay
polacy to zdolne bestie :D
8)

dziugo



If you get tired of trying to work out some of the problems, I'd be more than happy to look at it.  If you'd tell me what you're using to edit the .exe resources and how you're opening the save files (possibly we could add the code to Jenova to make things simple) I could probably work from there.  I just spend about four hours making a simple mod to Half-Life 2,and actually got it to work, so I may have a knack for this sort of thing.  It'd be interesting to find out.

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Limit Breaking
« Reply #15 on: 2005-10-08 20:45:16 »
For now it requires only messing a little bit with code. I use ollydbg to do it, but any jit debugger will do. Also, I don't modify the save files. All is done by memory editing (I don't know if ff7 would crash when loading modifed save-game though... will need to check that too).

I'll post some info in Tech-Related soon, and ask some1 to take care of it (guess you're interested?).

dziugo

chuachongchee

  • *
  • Posts: 13
    • View Profile
Limit Breaking
« Reply #16 on: 2005-10-09 11:25:46 »
how bout solving the crash after the crater movie in disc 2??  :lol:

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Limit Breaking
« Reply #17 on: 2005-10-09 12:14:44 »
Quote from: chuachongchee
how bout solving the crash after the crater movie in disc 2??  :lol:
I was looking for someone to help me and solve this problem. What I need is a person who is experiencing any FMV-lockup and is willing to waste some time providing me info about it. It would require running a program (my program) on that "unlucky" machine.

By a lockup I mean a problem when a FMV is supposed to be played but it isn't. Characters just stay there blinking their eyes waiting for a pizza guy to come...

Interested? Willing to help? PM me.

dziugo

Skillster/RedSarg99

  • *
  • Posts: 2286
  • Loving every Final Fantasy
    • View Profile
Limit Breaking
« Reply #18 on: 2005-10-10 09:33:17 »
exactly which movie is that? the one when you see the weapons escaping from the crater?
Also good news from looking at those screen shots.
But those characters are level >50? Did you add some HP plus materia? or do they gain too much hp on each level up?

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Limit Breaking
« Reply #19 on: 2005-10-10 12:23:38 »
Characters are about 45-50 level with pumped-up HP (just changed thei HP while playing the game). Code needs to be modified only in few places, but to make it look good when displaying, some tweaking is necessary... Topic in Tech-Related (maybe today?) will explain everything...

dziugo

Kiggles

  • *
  • Posts: 29
    • View Profile
Limit Breaking
« Reply #20 on: 2005-10-10 12:30:29 »
Great proof of concept. Good luck working out the bugs, and discovering any peculiar issues.

Once all the technical issues behind this hacking are ironed out, would it be possible to include the hack as an object atribute which we could apply to a blank materia that already exists in the code? I understand that is worlds more difficult (for the sake of hacking) than rebalancing the game in compensation (if necessary), but it would be a mighty snazzy bonus item to collect. In that respect, it wouldn't be necessary to rebalance even the optional bosses, since there are already plenty of materia combos which can make Emerald/Ruby esspecially easy.

Anyway, again. Great job. Can't wait to see some DAMAGE numbers that exceed 9999. :D

Skillster/RedSarg99

  • *
  • Posts: 2286
  • Loving every Final Fantasy
    • View Profile
Limit Breaking
« Reply #21 on: 2005-10-10 12:34:32 »
dziugo: I meant did you actually manually change the players HP to be 23000 or did they level up and then their max HP went up too high?

Kiggles: adding materia into the game... i dont see it being too hard, since if I remember materia are like items - they have attributes attached to them, so fire has magic and fire element tagged to it to make it magic materia with a fire element?

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Limit Breaking
« Reply #22 on: 2005-10-10 12:49:04 »
Quote from: Kiggles
(...)would it be possible to include the hack as an object atribute which we could apply to a blank materia that already exists in the code?(...)
Some extra materia which gets rid of 9999 cap? If it's not what you ment, please rewrite it in polish :P.

Quote from: Kiggles
Can't wait to see some DAMAGE numbers that exceed 9999. :D
Actually (dziugo slowly points at the damage in first screenshot) this is 12500. It's just not displayed correctly. Guess I've forgotten to say about that...

Quote from: The Skillster
I meant (1)did you actually manually change the players HP to be 23000 or (2)did they level up and then their max HP went up too high?
(1)

dziugo

Kiggles

  • *
  • Posts: 29
    • View Profile
Limit Breaking
« Reply #23 on: 2005-10-10 12:52:38 »
Aye, associated a hacked object modifier to a blank materia value wouldn't be too difficult, but I was wondering more about setting the break HP hack as an object modifier itself.

Either way, getting the kinks worked out and a nice new set of numbers it the font should take a priority. I was just proposing an idea how to make the hack feel more like a natural part of the existing game mechanics. :) HP Plus materias being required to pass 10K, with default HP growth and a univesal 10K+ HP limit is probably all anyone needs, though.

dziugo

  • *
  • Posts: 1470
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Limit Breaking
« Reply #24 on: 2005-10-11 19:34:13 »
Ok... Finally found that little procedure responsible for writing the amount of damage done...

Misc
Link1
Link2

And I'm going to write that little post in TechRelated right now...

dziugo