[WIP] Custom Game Settings (FF7)

  • Thread starter Thread starter Wutai Clan
  • Start date Start date
Status
Not open for further replies.
What's it do? Does it crash, do you get any kind of errors, etc,. ?

The only thing I can think of, is my hooking lib might not be getting compiled into the .dll.. (This would be the same as having a missing .dll, etc,.)

That or a YAMP patch is conflicting. ?
 
It just not starting...
...
...
...
CRAP!
I just realized that I used my AVgr's executable (which has modified limits/shops) when testing. Maybe that?
 
It just not starting...
...
...
...
CRAP!
I just realized that I used my AVgr's executable (which has modified limits/shops) when testing. Maybe that?
Just not starting? That's odd, for Win7. (Do you have error reporting disabled or something.)

That .exe could be an issue, if you have an original backup somewhere, just test it out. (The other .dll files might cause issues too.)
 
Yeah, I tried with original executable, but I have some mods :

- Menu Reconstruction
- Yamp patches
- etc...

Will try with th original 1.02 exe

Edit : Nope >:(
 
Last edited:
Yeah, I tried with original executable, but I have some mods :

- Menu Reconstruction
- Yamp patches
- etc...

Will try with th original 1.02 exe

Edit : Nope >:(
Hmm, must be an issue with the hooking library(?) I'm using, I'll see what I can do before I get a real release up. (This was just a test release anyways, to find, and fix issues like this one.)

Can any C++ programmers verify this, I'm using a .lib\.h library, does that need shipped with the .dll in order to function correctly, or should it be getting compiled into the .dll.. ?
 
Last edited:
I don't really like using messengers.

I don't think there the is much that can be done anyways. (Will probably require another release, and code updates to fix the issue.)

Btw, is there a GameSettings.log file in your FF7 directory? (If so paste it's contents here, that might help me figure out where it's going wrong.)
 
No. BTW, where is GameSettings.ini ??
It's only been a few days, it takes time to hack, program, etc,.

It doesn't exist yet, to answer your question.

Anyways, I may PM you in the next couple days, with some debug versions to test out. (I'll try a couple things, there are a number of possible culprits, the hooking library, the console logging window, could even be an issue with some of my hooks themselves.)

----

Edit: One last question, are you using load_library to load that multi loader thing you were talking about? If so, try just replacing that, I don't think Aali's driver supports multiple load_library calls..

load_library = somelib.dll
load_library = GameSettings.dll

Won't work.. (Unless he fixed this.)

load_library = GameSettings.dll <- Just one..

If it still doesn't work, then the problem is more than likely on my end.
 
Last edited:
I have tested this by loading this directly from Aali's Driver (with the load library function) and the multi DLL and i have tried injecting the DLL myself and all 3 ways have failed, in Aali's driver i just get the error
ERROR: Failed to load library GameSettings.dll

Also i have VC++ 2005,2008,2010 redist's installed already

Edit: One last question, are you using load_library to load that multi loader thing you were talking about? If so, try just replacing that, I don't think Aali's driver supports multiple load_library calls..
I posted the Multi loader for DLL's because Aali's driver doesn't support loading more then 1 DLL but by using the DLL in the post below you can load as many DLL's as you want (well i havent tested how many you can load but i have loaded over 4 successfully)
https://www.ff7catalog.com/posts/135818/


EDIT1:-
OK i found the problem, i installed "Visual Studio Express 2010" (its the free version of visual studio) and then your DLL ran fine, so then i deleted every single folder installed by Visual Studio 1 by 1 until the DLL stopped working again, then i narrowed it down further by deleting 1 file at a time and i figured out exactly which files are the needed to run this
msvcp100d.dll
msvcr100d.dll
if the above 2 DLL's are in the system32 folder or the games folder your DLL works fine (providing you have VC++ redist 2010 as well). Hope that helps.

EDIT2:-
Just tried this with the multi DLL and it works fine with it.
 
Last edited:
Thanks Kranmer. :D

That helped me solve the issue, the problem is, I released a .dll compiled in debug mode, which apparently dynamically links to the runtime files, so the next version will be compiled in release mode, which should solve that issue. :)

I'll try to get a newer release up soon.

---

It may be a bit, I want to try to clean up the release a bit, make a readme, get the .ini implemented, and a few options done, that way it will start resembling the final product I have in mind. (I also have to do a few things to comply with the license on the hooking lib I'm using, I may just write my own, and avoid the issue altogether.)

I still have a number of issues I need to work around to get the restorative items hacked, so despite these being a feature planned for early release, they are getting pushed back while I decode stuff further. (Can these be edited with Wall Market, or any other tool, I don't really know what's currently possible\impossible via the current tools. Any info on what can't be done, that you would like to do, may help with the feature set of this tool.)

(I also need to find the battle mode functions that match the field\world functions I've been finding, a lot of stuff only works in field\world mode right now.)

Anyways, I'll try to get that release up soon, but keep in mind, there is a lot that needs to be done first. The early alpha release was just to work out the kinks in the actual release process, and it seems we have. (Thanks for testing it out, etc, all I wanted to know, was if it would work outside my system.)
 
Last edited:
I still have a number of issues I need to work around to get the restorative items hacked, so despite these being a feature planned for early release, they are getting pushed back while I decode stuff further. (Can these be edited with Wall Market, or any other tool, I don't really know what's currently possible\impossible via the current tools. Any info on what can't be done, that you would like to do, may help with the feature set of this tool.)
What exactly are you needing? WM might be able to do it.
 
What exactly are you needing? WM might be able to do it.
I just wanted to know if Wall Market can already do what I'm trying to do, change the amount of hp\mp items(potions\ether) can restore. I also wanted to know what sorts of things aren't possible that you guys would like to be able to do easily. (ie, things that normally require hacking, and require YAMP\.exe hacks, etc,.)

Here is that post I PM'd you about.. (Though, after re-reading it, I think I found the function I needed.)
https://www.ff7catalog.com/threads/6483/

Also, I see talks about the USO code, any info on that, where I might find refs in the .exe would be nice, I may be able to make it work again.
 
Last edited:
I just wanted to know if Wall Market can already do what I'm trying to do, change the amount of hp\mp items(potions\ether) can restore. I also wanted to know what sorts of things aren't possible that you guys would like to be able to do easily. (ie, things that normally require hacking, and require YAMP\.exe hacks, etc,.)
Wall Market can edit all items & magics (as well as the commands, materias, initial data and equipment), but their in-battle effects only. Sadly, as far as I know, no one found how to edit their field / triangle menu data, yet. If you could find out how to do this, that would make a lot of people happy, myself included :)

As for requests, I sure do have a few. Modifying the out of battle item and magic effects would indeed be great, as would be altering the different algorithms the game uses to calculate damage and stuff. I'd also like the PHS to be always available - not only at save points. Mmm... ...I'm sure I'd have more but they're not coming to mind at the moment.

Great project ! =)
 
Wall Market can edit all items & magics (as well as the commands, materias, initial data and equipment), but their in-battle effects only. Sadly, as far as I know, no one found how to edit their field / triangle menu data, yet. If you could find out how to do this, that would make a lot of people happy, myself included :)

As for requests, I sure do have a few. Modifying the out of battle item and magic effects would indeed be great, as would be altering the different algorithms the game uses to calculate damage and stuff. I'd also like the PHS to be always available - not only at save points. Mmm... ...I'm sure I'd have more but they're not coming to mind at the moment.

Great project ! =)
Alright, sounds good, that's the kind of stuff I'm working on right now. :)

I should be able to pull off most of your request, we'll see, but it all sounds doable. (Damage calculations etc, are probably going to be hard to find. But the rest shouldn't be too bad.)
 
Kinda sick, so my brain isn't working too well right now. :(

Anyways, if someone working on a trainer for ff7 can donate some known memory addresses it would speed up the process of finding the related .exe functions. (I need v1.02 addresses, anything you have will be good. Though I really need battle codes, codes for random battles, save anywhere, PHS always enabled, etc,.)

I can find these myself, however, it can take varied amounts of time to find them, some take minutes, some can take hours, some even longer, it depends on what you are trying to find.

--

Edit: Found a few things today, nothing really useful, it's looking bad for a number of things, going to be a lot harder than I had hoped. (Still possible though.)

Here is what I've found today.. (That might actually be useful. ?)

ItemAddStatus [DWORD status], this controls what status type get's added when you use an item (item menu) on a character. (Or, what happens when you use an item on a character. ie, I can make a potion act like an Ether, etc,.)

MagicMenuCast [DWORD effect], this controls what magic effect is cast from the magic menu. (I can probably make Cure, cast Esuna, etc,. Not sure how this will be useful.)

Both seem to get their target from elsewhere, not really sure where yet. (Probably the menu cursor, but I won't know for sure till I decode more stuff.)

Everything else I found was useless, I'm going to have create a ton of custom functions to make up for the way they coded the game, which means it's going to take a lot of extra time debugging, and figuring out the games data structures, so I can directly manipulate the data.
 
Last edited:
Anyways, if someone working on a trainer for ff7 can donate some known memory addresses it would speed up the process of finding the related .exe functions. (I need v1.02 addresses, anything you have will be good. Though I really need battle codes, codes for random battles, save anywhere, PHS always enabled, etc,.)
Well i am not currently working on my trainer due to being busy on other projects but i did make a trainer which can be gotten here (its for version 1.02 of FF7 as well)
https://www.ff7catalog.com/threads/6679/
Take a look at the options on that trainer and tell me if there are any of the address's you want and i will give you the address (also i do have some options i haven't added to the trainer like "Load Anywhere In Field" etc so even if its not on the trainer i may have the address)
 
Well i am not currently working on my trainer due to being busy on other projects but i did make a trainer which can be gotten here (its for version 1.02 of FF7 as well)
https://www.ff7catalog.com/threads/6679/
Take a look at the options on that trainer and tell me if there are any of the address's you want and i will give you the address (also i do have some options i haven't added to the trainer like "Load Anywhere In Field" etc so even if its not on the trainer i may have the address)
Awesome, I appreciate it. :)

Full menu (save+phs+materia)
No Random Battles
Constant Random Battles
Hours played timer always 0
Teleport (Any location, I just want to see how the game handles moving the characters.)
Character Switching stuff(Slot1=Barrett + Vincent to Sephiroth). (I may be able to do something cool with this.)
Game Menu Anytime(Should help me decode the menu's a bit more.)

Those should be good, and give me a bit to decode, but feel free to provide any\all the other data.

I'm trying to decode the .exe, so the more data I have, the more I can see how it all fits together, etc,.
 
Last edited:
OK Wutai Clan here you go
Code: [Select]
Code:
Full In-Game menu00DC08F8 = FF FFNo Random Battles00DBCAD9 = 0Constant Random Battles00DBCAD9 = FFInf/Max Gil00DC08B4 = FF B4 34 7FSet Game Played Time To 000DC08B8 = 00 00----------------------------------------------------TELEPORT/INSTANT BATTLE/RENAME/PHS/SHOP/IN-GAME MENU/MINI-GAME anywhere00CC0D89 = 00 = Normal Field01 = Fade to black (use this for teleport plus the next 2 bytes)02 = Battle swirl (use this for instant battle plus the next 2 bytes)03 = UNKNOWN04 = Makes screen flash but somtimes plays movies05 = Plays Ending Movie and Credits06 = Rename Screen07 = PHS08 = Weapon Shop09 = In-Game Menu (use this to get out of shop or phs or rename screen)0A = UNKNOWN0B = UNKNOWN0C = MiniGameYou can find a list of teleport locations and values inside the zip which can be downloaded herehttps://www.ff7catalog.com/posts/124343/----------------------------------------------------Character slot 100DC0230 =00 = Cloud01 = Barrett02 = Tifa03 = Aeris04 = Red XIII05 = Yuffie06 = Cait Sith07 = Vincent08 = Cid09 = Young Cloud (only while activated or if used before Kalm Flashback)0A = Sephiroth (only while activated or if used before Kalm Flashback)FF = BlankCharacter slot 200DC0231 = SAME AS ABOVECharacter slot 300DC0232 = SAME AS ABOVE----------------------------------------------------Activate character instead of the following character (use this to replace different characters with sephiroth or young cloud)Cloud00DBFD8C =Barrett00DBFE10 = Tifa00DBFE94 = Aries00DBFF18 = Red XIII00DBFF9C = Yuffie00DC0020 = Cait Sith00DC00A4 = Vincent00DC0128 = Cid00DC01AC = 09 = Young Cloud0A = Sepiroth----------------------------------------------------Sephiroth Instead of Vincent CodeSephiroth In Slot300DC0232 = 0AActivate Sephiroth Instead of Vincent00DC0128 = 0ASephiroth's Name00DC0136 = 01 41 33 45 50 48 49 52 4F 54 48 FF----------------------------------------------------
That covers the things i think you where after, if you need anything else let me know (even if i don't have it i may be able to help).
Also a small request if i may, when this is complete would you be able to send me the Source to have a look at ? i don't really know much C++ but your project does interest me (also feel free to say no, i know how precious source code is to lots of programmers) Or if you could make it open source that would be even better.
 
Last edited:
OK Wutai Clan here you go
Code: [Select]
Code:
Full In-Game menu00DC08F8 = FF FFNo Random Battles00DBCAD9 = 0Constant Random Battles00DBCAD9 = FFInf/Max Gil00DC08B4 = FF B4 34 7FSet Game Played Time To 000DC08B8 = 00 00----------------------------------------------------TELEPORT/INSTANT BATTLE/RENAME/PHS/SHOP/IN-GAME MENU/MINI-GAME anywhere00CC0D89 = 00 = Normal Field01 = Fade to black (use this for teleport plus the next 2 bytes)02 = Battle swirl (use this for instant battle plus the next 2 bytes)03 = UNKNOWN04 = Makes screen flash but somtimes plays movies05 = Plays Ending Movie and Credits06 = Rename Screen07 = PHS08 = Weapon Shop09 = In-Game Menu (use this to get out of shop or phs or rename screen)0A = UNKNOWN0B = UNKNOWN0C = MiniGameYou can find a list of teleport locations and values inside the zip which can be downloaded herehttps://www.ff7catalog.com/posts/124343/----------------------------------------------------Character slot 100DC0230 =00 = Cloud01 = Barrett02 = Tifa03 = Aeris04 = Red XIII05 = Yuffie06 = Cait Sith07 = Vincent08 = Cid09 = Young Cloud (only while activated or if used before Kalm Flashback)0A = Sephiroth (only while activated or if used before Kalm Flashback)FF = BlankCharacter slot 200DC0231 = SAME AS ABOVECharacter slot 300DC0232 = SAME AS ABOVE----------------------------------------------------Activate character instead of the following character (use this to replace different characters with sephiroth or young cloud)Cloud00DBFD8C =Barrett00DBFE10 = Tifa00DBFE94 = Aries00DBFF18 = Red XIII00DBFF9C = Yuffie00DC0020 = Cait Sith00DC00A4 = Vincent00DC0128 = Cid00DC01AC = 09 = Young Cloud0A = Sepiroth----------------------------------------------------Sephiroth Instead of Vincent CodeSephiroth In Slot300DC0232 = 0AActivate Sephiroth Instead of Vincent00DC0128 = 0ASephiroth's Name00DC0136 = 01 41 33 45 50 48 49 52 4F 54 48 FF----------------------------------------------------
That covers the things i think you where after, if you need anything else let me know (even if i don't have it i may be able to help).
Also a small request if i may, when this is complete would you be able to send me the Source to have a look at ? i don't really know much C++ but your project does interest me (also feel free to say no, i know how precious source code is to lots of programmers) Or if you could make it open source that would be even better.
Thanks a lot, I appreciate it. :)

On the topic of the source code, yeah, I'm going to open source it, I know how hard it is to find info on doing this stuff, it's taken me forever to learn, due to how stingy ppl are with this info.

I can even explain the basics, it's simple really.

There are lot's of ways to decode the .exe, however, in cases like this one, the easiest, is simply using a tool like MHS v6.1 to find pointers(like the ones you are supplying), then you can use MHS to see what functions access the value. (ie, right click value, select find what writes to this address), then you will just have to play the game a bit, and do things that change the value, and MHS will keep a list of all the functions that wrote to the value.

Then, it's just a matter of using something like IDA Pro to comment the ASM, just write down little notes as you decode things, eventually, it starts becoming clear, you can start seeing how things go together, etc,. (Lot's of trial and error, lot's of re-commenting, as you realize your initial assumptions were wrong, etc,.)

Beyond that, I'm still learning myself, decoding data structures, etc, are going to be a learning experience. :)

Now, there is a lot to learn to be able to actually do this, but you seem to know your way around ASM, and can obviously handle hacking memory, so, you should have no problems figuring it out. If you do have a question, feel free to ask, I'm not stingy at all.
 
Status
Not open for further replies.
Back
Top