Author Topic: increasing exp FF7  (Read 10230 times)

EvilStar

  • Guest
increasing exp FF7
« on: 2011-02-08 06:13:49 »
i haven't seen anything that has to do with this i was wanting to increase the exp gain to like x5 nothing major just make the game a lil more enjoyable to me is it possible if so how can i do this?

nfitc1

  • *
  • Posts: 3008
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: increasing exp FF7
« Reply #1 on: 2011-02-08 12:17:02 »
You could figure out where the Exp Plus Materia writes its data to and figure out where that's populated in the first place. That would be the only thing I think you could do to the engine of the game. Otherwise you would just have to go through each enemy and increase the exp they give.

Furzball

  • *
  • Posts: 612
  • Furzball happens...
    • View Profile
Re: increasing exp FF7
« Reply #2 on: 2011-02-08 17:32:32 »
As NFITC1 said. This also depends on the version of the game you're using. PS version is simple with a gameshark. However in the PC version, if I remember correctly the effects system works across weapons, armor, accessories, spells, enemy attacks, etc. If you can find Exp+ and tie it into weapons, armor, and accessories. Or you can go into enemy data and just 5x the amount of experience they are supposed to give you. It'll be similar with AP, gil and items. Lemme see. what was that program to edit enemy data?

Tenko Kuugen

  • Public Enemy
  • *
  • Posts: 1416
    • View Profile
    • Twitter
Re: increasing exp FF7
« Reply #3 on: 2011-02-08 18:17:11 »
As NFITC1 said. This also depends on the version of the game you're using. PS version is simple with a gameshark. However in the PC version, if I remember correctly the effects system works across weapons, armor, accessories, spells, enemy attacks, etc. If you can find Exp+ and tie it into weapons, armor, and accessories. Or you can go into enemy data and just 5x the amount of experience they are supposed to give you. It'll be similar with AP, gil and items. Lemme see. what was that program to edit enemy data?

Hojo

Bosola

  • Fire hazard!
  • *
  • Posts: 1749
    • View Profile
    • My YouTube Channel
Re: increasing exp FF7
« Reply #4 on: 2011-02-08 19:56:36 »
You could figure out where the Exp Plus Materia writes its data to and figure out where that's populated in the first place. That would be the only thing I think you could do to the engine of the game. Otherwise you would just have to go through each enemy and increase the exp they give.

For the PSX NTSC version,

Code: [Select]
800694f8 [][]          Init with 0. Add materia exp modifier (Exp Plus) (0x18 0x20). Limit to 0x64. Limit to 0x20.
As you know, a Level 2 Exp Plus materia grants a +100% experience boost. 0x64 is about three times 0x20, so if your code writes 0x64 to address 800694FB, you should be able to roughly quadruple Experience gain.

An easier way, though, would be to just quarter the Exp. requirements for each level by playing with the character 'Exp needed' curves in WallMarket.

nfitc1

  • *
  • Posts: 3008
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: increasing exp FF7
« Reply #5 on: 2011-02-08 20:25:37 »
As NFITC1 said. This also depends on the version of the game you're using. PS version is simple with a gameshark. However in the PC version, if I remember correctly the effects system works across weapons, armor, accessories, spells, enemy attacks, etc. If you can find Exp+ and tie it into weapons, armor, and accessories. Or you can go into enemy data and just 5x the amount of experience they are supposed to give you. It'll be similar with AP, gil and items. Lemme see. what was that program to edit enemy data?

Hojo

When I'm done with it, PrC will too. ;)

You could figure out where the Exp Plus Materia writes its data to and figure out where that's populated in the first place. That would be the only thing I think you could do to the engine of the game. Otherwise you would just have to go through each enemy and increase the exp they give.

For the PSX NTSC version,

Code: [Select]
800694f8 [][]          Init with 0. Add materia exp modifier (Exp Plus) (0x18 0x20). Limit to 0x64. Limit to 0x20.
As you know, a Level 2 Exp Plus materia grants a +100% experience boost. 0x64 is about three times 0x20, so if your code writes 0x64 to address 800694FB, you should be able to roughly quadruple Experience gain.

An easier way, though, would be to just quarter the Exp. requirements for each level by playing with the character 'Exp needed' curves in WallMarket.

For the PC version, the address that Exp Plus modifies is 0xC068AC. The value there is capped at 64h (which can be increased if the right bytes are manipulated). Base at 20h, a level 1 Exp Plus adds 18h to that which is 150%. Then it adds 20h for 200% exp so 64h would be 325% exp (Do exp pluses stack?). But it only takes effect when equipping materia. Then some address somewhere gets modified in the active character data I'm not sure WHERE in the active data this goes to. It looks like it goes to the first byte, but that doesn't reflect the rest of my information. It's odd and I'm still looking into it.

Playing with the exp curves would certainly make every exp worth a lot more. You could theoretically get to level 99 on as little as 31851 exp! At that range though, Cloud would achieve level 27 after the battle with the two MPs.  :-o

Bosola

  • Fire hazard!
  • *
  • Posts: 1749
    • View Profile
    • My YouTube Channel
Re: increasing exp FF7
« Reply #6 on: 2011-02-08 20:54:18 »
It only takes effect when equipping materia.

Ah. This explains a lot; playing in these areas (specifically, trying to draft a GS code that enables auto-phoenix), I find I still need certain materia equipped to establish the functionality I want.

Quote
Then some address somewhere gets modified in the active character data I'm not sure WHERE in the active data this goes to.

Wait, an address in the character data is changed to the first byte of the character data?

Strange...
« Last Edit: 2011-02-08 20:57:38 by Bosola »

nfitc1

  • *
  • Posts: 3008
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: increasing exp FF7
« Reply #7 on: 2011-02-08 21:38:16 »
Wait, an address in the character data is changed to the first byte of the character data?

Strange...

No. The Active Character Data I'm talking about spans 1088 bytes. Somewhere in those 1088 bytes is an experience multiplier. It LOOKS like it's the first byte of the character data, but I don't think that's the case since that should be the character ID.

EDIT:
OK, I found out what happens here in the PC code. There's a memory address at 0x99E2C0 where the collective exp of all enemies goes into. Starting at 0x43170A the pseudo-code goes a little like this:
(per_character)
Code: [Select]
[0x99E2C0] * {CharData[0]} >> 16 = Exp_gained
So the value at CharData[0]/16 is the amount of exp bonus that char gets.
The multiplier code is at:

Code: [Select]
0x431781    imul    ecx, eax
So if this is changed to

Code: [Select]
0x431781    imul    ecx, {some constant}
then that would guarantee a static multiplier for all characters. I think this is all it would take to multiply it permanently. I believe that's a change at
0x030B81 (in the ff7.exe) from
0F AF C8
to
6B C9 {constant}
Someone feel free to give this a try. I would, but I don't have the video drivers working on my new Win7 system.
« Last Edit: 2011-02-09 00:34:08 by NFITC1 »

EvilStar

  • Guest
Re: increasing exp FF7
« Reply #8 on: 2011-02-09 03:10:51 »
thanks for everyone's interest in this topic and NFITC1 that's great work thanks ill test it tomarrow

nfitc1

  • *
  • Posts: 3008
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Re: increasing exp FF7
« Reply #9 on: 2011-02-09 15:31:32 »
thanks for everyone's interest in this topic and NFITC1 that's great work thanks ill test it tomarrow

Don't thank me until it works. I tried something similar about removing the stat capping and it behaved unpredictably. I'm not sure if this is the only place that this will work.

Also, remember that that constant times the battle exp is going to get bit shifted 4 to the right (divided by 16) so it won't do any good to make the constant higher than F0h. This will also override any Exp Plus Materia you have.