[FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)

  • Thread starter Thread starter Mcindus
  • Start date Start date
Status
Not open for further replies.
If you have no instructions error or not loading DLLs, you did not follow the instructions. Especially the part where it tells you to edit settings.ini to match. There's a WorkingFolder= line that currently breaks DLL loading. Delete the text after the = or remove the line entirely to make your ini match like the OP.

Works fine here following all instructions and without Hard.dll (Currently using FF8 Requiem instead). Obviously, if you were already at 9999 before you loaded the mod, you would stay at that at least until a level up or stat change since it appears to just adjust the variable and cap to allow larger values and doesn't call any kind of recalculation at save load.
 
Last edited:
I am the author of the dll files. The reason something might not work is due to version discrepancies and because it was poorly coded. These were put together before the Steam release and I stopped playing FF8 shortly after to work on other projects. I no longer have the source files, but I can show you how they work.


Damage.dll:
Code: [Select]
Code:
510620C8 | 81 C1 FF FF 00 00        | add ecx,FFFF                            |
Hard.dll (pseudocode):
Code: [Select]
Code:
ReturnType CallingConvention FunctionHook(VariableType VariableName, ...){    VariableName *= Multiplier;    return OriginalFunction(VariableName);}
HP.dll:
Code: [Select]
Code:
510620C8 | 81 FA FF 7F 00 00        | cmp edx,7FFF                            |510620CE | 7E 05                    | jle hp.510620D5                         |510620D0 | BA FF 7F 00 00           | mov edx,7FFF                            |
Magic.dll:
Code: [Select]
Code:
0F7120C8 | 32 C9                    | xor cl,cl                               |


I will modify the post with updated patches for Steam BuildID: 296320 as I rediscover them.


Break Damage Limit:
Code: [Select]
Code:
FF8_EN.exe+91137 | 81 C1 0F 27 00 00        | add ecx,270F                            | add ecx, 0xffff
Break HP Limit:
Code: [Select]
Code:
GFFF8_EN.exe+95E6D | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffffFF8_EN.exe+95E75 | BA 0F 27 00 00           | mov edx,270F                            | mov edx, 0xffffPartyFF8_EN.exe+95A1A | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffffFF8_EN.exe+95A22 | BA 0F 27 00 00           | mov edx,270F                            | mov edx, 0xffff
Limitless Magic (does not break Double/Triple and works in Battle/Field):
Code: [Select]
Code:
BattleFF8_EN.exe+86B0C | FE C9                    | dec cl                                  | nopFieldFF8_EN.exe+F3027 | FE CB                    | dec bl                                  | nop
Save Anywhere - Address (set value to 1 and freeze):
Code: [Select]
Code:
FF8_EN.exe+18FEA89
Save Anywhere - Patch:
Code: [Select]
Code:
Save PointFF8_EN.exe+1221CF | 8A 88 D1 00 00 00        | mov cl,byte ptr ds:[eax+D1]             | mov cl, 1FF8_EN.exe+1221D7 | 80 C9 01                 | or cl,1                                 | nopFF8_EN.exe+1221E6 | 80 E1 FE                 | and cl,FE                               | nopLoading ZoneFF8_EN.exe+12BE1D | 8A 90 D1 00 00 00        | mov dl,byte ptr ds:[eax+D1]             | mov dl, 1FF8_EN.exe+12BE2D | 80 E2 FC                 | and dl,FC                               | nop
 
Last edited:
I am the author of the dll files. The reason something might not work is due to version discrepancies and because it was poorly coded. These were put together before the Steam release and I stopped playing FF8 shortly after to work on other projects. I no longer have the source files, but I can show you how they work.


Damage.dll:
Code: [Select]
Code:
510620C8 | 81 C1 FF FF 00 00        | add ecx,FFFF                            |
Hard.dll (pseudocode):
Code: [Select]
Code:
ReturnType CallingConvention FunctionHook(VariableType VariableName, ...){    VariableName *= Multiplier;    return OriginalFunction(VariableName);}
HP.dll:
Code: [Select]
Code:
510620C8 | 81 FA FF 7F 00 00        | cmp edx,7FFF                            |510620CE | 7E 05                    | jle hp.510620D5                         |510620D0 | BA FF 7F 00 00           | mov edx,7FFF                            |
Magic.dll:
Code: [Select]
Code:
0F7120C8 | 32 C9                    | xor cl,cl                               |


I will modify the post with updated patches for Steam BuildID: 296320 as I rediscover them.


Break Damage Limit:
Code: [Select]
Code:
FF8_EN.exe+91137 | 81 C1 0F 27 00 00        | add ecx,270F                            | add ecx, 0xffff
Break HP Limit:
Code: [Select]
Code:
GFFF8_EN.exe+95E6D | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffffFF8_EN.exe+95E75 | BA 0F 27 00 00           | mov edx,270F                            | mov edx, 0xffffPartyFF8_EN.exe+95A1A | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffffFF8_EN.exe+95A22 | BA 0F 27 00 00           | mov edx,270F                            | mov edx, 0xffff
Limitless Magic (does not break Double/Triple and works in Battle/Field):
Code: [Select]
Code:
BattleFF8_EN.exe+86B0C | FE C9                    | dec cl                                  | nopFieldFF8_EN.exe+F3027 | FE CB                    | dec bl                                  | nop
Save Anywhere - Address (set value to 1 and freeze):
Code: [Select]
Code:
FF8_EN.exe+18FEA89
Save Anywhere - Patch:
Code: [Select]
Code:
Save PointFF8_EN.exe+1221CF | 8A 88 D1 00 00 00        | mov cl,byte ptr ds:[eax+D1]             | mov cl, 1FF8_EN.exe+1221D7 | 80 C9 01                 | or cl,1                                 | nopFF8_EN.exe+1221E6 | 80 E1 FE                 | and cl,FE                               | nopLoading ZoneFF8_EN.exe+12BE1D | 8A 90 D1 00 00 00        | mov dl,byte ptr ds:[eax+D1]             | mov dl, 1FF8_EN.exe+12BE2D | 80 E2 FC                 | and dl,FC                               | nop
YES!!!  Welcome back :)  I'm glad you're working on this project.  Have you seen the editing tools available for FF8 now?  You might be able to utilize them in conjunction with your mods.

I hope this works!  There are many people trying to make the game more difficult, but as you know - it's an ongoing struggle to balance FF8 properly without everyone always exploiting the heck out of it. lol.
 
I'll soon be releasing my own DLL which automatically adds the ability to use text file byte change instructions without need for injection (part of RaW).  So you don't need to mess about with dlls.
 
As we patiently wait for DLPB to finish his new ddraw.dll for FF8, I present everyone with an "easy" way to implement these add-on's! 
I fixed old compatibility issues and streamlined the process.

Right now, I'm using dll injection from the old files still - and as soon as someone can help me figure out how to translate gaastly's hex instructions into HEXT, we won't have to use the .dll's anymore.

Until then - try the new "Hard Launcher" HERE
 
Hey

what does this new add-on launcher do anyways
It adds the Add-On's listed in the main post: Hard.dll, Damage.dll, HP.dll, Magic.dll, and Publish.dll

To find out what they do, either read the main post or the instructions that come with the mod.
 
To be clear the magic.dll hasnt been updated with gaaasstly fixes to double and triple spell right?
 
To be clear the magic.dll hasnt been updated with gaaasstly fixes to double and triple spell right?
correct.  Actually, if someone could help me translate gaastly's hex changes into hext instructions for (From DLPB's Hext Tools), we could update the mod with a better method of injection.  this would allow us to update and/or edit the mods without messing around with .dll's

I don't really have time to learn how to translate it myself right now, as i'm working 70 hour weeks
 
Translation is extremely easy.  The syntax is pretty much as simple as it can be. There is a full help file in Hext Tools  download and it wouldn't take you long at all to work it out.  Most instructions are simple ones:

Address = byte sequence separated by spaces
Address = byte - colon - number of times to repeat byte.

You are right that no dll is needed.  This will be made even easier when next version of raw comes out for ff8... since I am building HextLaunch into the ddraw.dll itself.
 
Translation is extremely easy.  The syntax is pretty much as simple as it can be. There is a full help file in Hext Tools  download and it wouldn't take you long at all to work it out.  Most instructions are simple ones:

Address = byte sequence separated by spaces
Address = byte - colon - number of times to repeat byte.

You are right that no dll is needed.  This will be made even easier when next version of raw comes out for ff8... since I am building HextLaunch into the ddraw.dll itself.
Oh, I'm very familiar with Hext Tools and all of the help files.  I've read them over and over again and quite thoroughly.  Unfortunately, I know absolute shite about hex and don't know any syntax for anything other than some rusty 16 year old GW Basic floating around in my noggin somewhere.  So looking at someone's beautiful hex code for some cool change to FF8 and then trying to implement it myself are two very drastically different things.
I need to learn some basics about hex, and I just don't have a lot of time right now to do so.

When you make your new ddraw.dll, is there any chance you can make a proxy .dll call in an .ini file or something somewhere that let's us rename a .dll that should be loaded into the parent directory, and have it load proxy-wise through ddraw.dll?  (This is how the program ENB works.  It uses d3d9.dll, and since most other injectors/overlays also do, it lets you rename any dll and loads it in proxy through ENB, such as ReShade.  very very handy.)
 
That's already how the new ddraw works (not released yet) - as well as ff7 version I still haven't released. HextLaunch will then be obsolete for FF7 and FF8.
Still, most of these dlls definitely aren't needed.  If someone can get me what hex values are being changed, I can see how difficult this translation to Hext is going to be.
 
That's already how the new ddraw works (not released yet) - as well as ff7 version I still haven't released. HextLaunch will then be obsolete for FF7 and FF8.
Still, most of these dlls definitely aren't needed.  If someone can get me what hex values are being changed, I can see how difficult this translation to Hext is going to be.
gaastly posted his code earlier in the thread under the 'spoilers' here, but i think the ones on the bottom are the ones we want.

I am the author of the dll files. The reason something might not work is due to version discrepancies and because it was poorly coded. These were put together before the Steam release and I stopped playing FF8 shortly after to work on other projects. I no longer have the source files, but I can show you how they work.


Damage.dll:
Code: [Select]
Code:
510620C8 | 81 C1 FF FF 00 00        | add ecx,FFFF                            |
Hard.dll (pseudocode):
Code: [Select]
Code:
ReturnType CallingConvention FunctionHook(VariableType VariableName, ...){    VariableName *= Multiplier;    return OriginalFunction(VariableName);}
HP.dll:
Code: [Select]
Code:
510620C8 | 81 FA FF 7F 00 00        | cmp edx,7FFF                            |510620CE | 7E 05                    | jle hp.510620D5                         |510620D0 | BA FF 7F 00 00           | mov edx,7FFF                            |
Magic.dll:
Code: [Select]
Code:
0F7120C8 | 32 C9                    | xor cl,cl                               |


I will modify the post with updated patches for Steam BuildID: 296320 as I rediscover them.


Break Damage Limit:
Code: [Select]
Code:
FF8_EN.exe+91137 | 81 C1 0F 27 00 00        | add ecx,270F                            | add ecx, 0xffff
Break HP Limit:
Code: [Select]
Code:
GFFF8_EN.exe+95E6D | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffffFF8_EN.exe+95E75 | BA 0F 27 00 00           | mov edx,270F                            | mov edx, 0xffffPartyFF8_EN.exe+95A1A | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffffFF8_EN.exe+95A22 | BA 0F 27 00 00           | mov edx,270F                            | mov edx, 0xffff
Limitless Magic (does not break Double/Triple and works in Battle/Field):
Code: [Select]
Code:
BattleFF8_EN.exe+86B0C | FE C9                    | dec cl                                  | nopFieldFF8_EN.exe+F3027 | FE CB                    | dec bl                                  | nop
Save Anywhere - Address (set value to 1 and freeze):
Code: [Select]
Code:
FF8_EN.exe+18FEA89
Save Anywhere - Patch:
Code: [Select]
Code:
Save PointFF8_EN.exe+1221CF | 8A 88 D1 00 00 00        | mov cl,byte ptr ds:[eax+D1]             | mov cl, 1FF8_EN.exe+1221D7 | 80 C9 01                 | or cl,1                                 | nopFF8_EN.exe+1221E6 | 80 E1 FE                 | and cl,FE                               | nopLoading ZoneFF8_EN.exe+12BE1D | 8A 90 D1 00 00 00        | mov dl,byte ptr ds:[eax+D1]             | mov dl, 1FF8_EN.exe+12BE2D | 80 E2 FC                 | and dl,FC                               | nop
 
The only thing that has kept me from playing ff8 again is waiting for an explanation on how to use gastlys updated limitless magic changes without the other "Hacks". I have been lurking this thread like a hawk haha.
 
Hard Mode and Add-on's Launcher
Difficulty Mod and other Add-on's for FF8 on STEAM
Now All Languages Supported!
Mod Updated with easier process!

These mods use HextLaunch from DLPB's Tools
And they will until he finishes his new version of ddraw.dll for FF8 :)

I compiled some old mods for those of you using the STEAM version of FF8

Add-on's:
Hard.dll: Makes the game generally more difficult:
-   Decreases the player's melee damage by a factor of 1.5
-   Increases the level of enemies by a factor of 1.1
-   Increases the melee damage of enemies by a factor of 1.1
    (this does not effect magic damage)
Damage.dll
-   Max damage increased to 65k instead of 9999; affects your group and opponents too.
HP.dll
-   Max hp cap increased to 32k from 9999
Magic.dll
-   You won't lose magic from your inventory when you cast it in battle.
    (Negates Double and Triple effects. I don't use this one.)
Publish.dll
-   Removes the Square Enix splash logo on Startup

DOWNLOADS: Only pick one!
Hard Launcher (English)
Hard Launcher (Spanish)
Hard Launcher (French)
Hard Launcher (German)
Hard Launcher (Italian)


Instructions:

1.   Move "HL_Files" and "FF8_Hard_Launcher" into your parent FF8 directory.
     (steamapps/common/FINAL FANTASY VIII)
2.   Launch the game from the new "Hard" Launcher
3.   The command window will let you know if .dll injection was done correctly
     (there is also a HextLaunch.txt log file)

*If you're using RaW, you can move the RaW.dll into /HL_Files/DLL_in as well to resolve possible issues
**If you use any Tonberry mods, do not move any of the Tonberry .dll's into this location - it will render Tonberry useless.

======================================================
If you choose, you may remove the Magic.dll and Publish.dll Add-On's with no glitches
======================================================

Original thread for 2000 PC version:
Go HERE to use these Add-ons with Aali's Driver.

Thanks to JeMaCheHi for trying so hard to get the mod to work and helping me figure out where I went wrong!

Thanks to DLPB for his Hext Tools!  Go HERE to support him!
fuck this crap , sorry for be so rude , but this comment is useful to show to everyone that the masochistic gamers can't just come in our " territory " and ruin even the cheating and modding side of gaming ( that usually don't catch their attention ), and spoil even that to us , i said all that because as you all noticed , whatever the masochistic ( competitive ) gamers are interested in , become completely set for their predilections and for their predilections only , but this isn't right , there still are and there will always exist gamers who love to cheat and to mod their games to become omnipotent , so don't forget about us , is ok to satisfy even the needs of those masochistic gamers , but this doesn't autorize them to prevent us to get help and support ( as always happened ) to get the various almighty settings and mods , not that they are doing something directly , but as you can notice , whatever someone try to post something about mods and hacks to become omnipotent , they immediately complain , like it's their own business , well is not their business , is not like from now on , none can still be interested in mods and hacks to become omnipotent
 
I am the author of the dll files. The reason something might not work is due to version discrepancies and because it was poorly coded. These were put together before the Steam release and I stopped playing FF8 shortly after to work on other projects. I no longer have the source files, but I can show you how they work.


Damage.dll:
Code: [Select]
Code:
510620C8 | 81 C1 FF FF 00 00        | add ecx,FFFF                            |
Hard.dll (pseudocode):
Code: [Select]
Code:
ReturnType CallingConvention FunctionHook(VariableType VariableName, ...){    VariableName *= Multiplier;    return OriginalFunction(VariableName);}
HP.dll:
Code: [Select]
Code:
510620C8 | 81 FA FF 7F 00 00        | cmp edx,7FFF                            |510620CE | 7E 05                    | jle hp.510620D5                         |510620D0 | BA FF 7F 00 00           | mov edx,7FFF                            |
Magic.dll:
Code: [Select]
Code:
0F7120C8 | 32 C9                    | xor cl,cl                               |


I will modify the post with updated patches for Steam BuildID: 296320 as I rediscover them.


Break Damage Limit:
Code: [Select]
Code:
FF8_EN.exe+91137 | 81 C1 0F 27 00 00        | add ecx,270F                            | add ecx, 0xffff
Break HP Limit:
Code: [Select]
Code:
GFFF8_EN.exe+95E6D | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffffFF8_EN.exe+95E75 | BA 0F 27 00 00           | mov edx,270F                            | mov edx, 0xffffPartyFF8_EN.exe+95A1A | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffffFF8_EN.exe+95A22 | BA 0F 27 00 00           | mov edx,270F                            | mov edx, 0xffff
Limitless Magic (does not break Double/Triple and works in Battle/Field):
Code: [Select]
Code:
BattleFF8_EN.exe+86B0C | FE C9                    | dec cl                                  | nopFieldFF8_EN.exe+F3027 | FE CB                    | dec bl                                  | nop
Save Anywhere - Address (set value to 1 and freeze):
Code: [Select]
Code:
FF8_EN.exe+18FEA89
Save Anywhere - Patch:
Code: [Select]
Code:
Save PointFF8_EN.exe+1221CF | 8A 88 D1 00 00 00        | mov cl,byte ptr ds:[eax+D1]             | mov cl, 1FF8_EN.exe+1221D7 | 80 C9 01                 | or cl,1                                 | nopFF8_EN.exe+1221E6 | 80 E1 FE                 | and cl,FE                               | nopLoading ZoneFF8_EN.exe+12BE1D | 8A 90 D1 00 00 00        | mov dl,byte ptr ds:[eax+D1]             | mov dl, 1FF8_EN.exe+12BE2D | 80 E2 FC                 | and dl,FC                               | nop

I have hex edited before when modding Pokemon games back in the day the instructions were pretty simple it would be like go to this address and change like 1D 2D 3D to 4D 4D 4D for example but I am not familiar enough with it to understand what this means

FF8_EN.exe+86B0C | FE C9                    | dec cl                                  | nop

I open up the FF8_EN.exe go to 86B0C location and it highlights over FE C9 from there the instructions I am usually given would be change the numbers "1D 2D 3D to 4D 4D 4D example" which is easy as hell however I am totally clue less as to this part here " | dec cl                                  | nop"

If anyone is willing to explain what exactly I am supposed to do with that information I would be very grateful! This is the last thing I need to set up for my FF8! playthrough.
 
You don't need that information.  It's simply the machine code translated into human readable operations.

dec cl (decrease cl by 1. cl is part of ecx.  It's the lower 8 bit of the 32 bit ecx register)
nop (no operation. This has code 90, which you've obviously missed above).

On its own that tells you nothing.  But like I say you don't need to know it.  You only need the address and the hex values.  I can certainly look into sorting some hext files from the info already sent.
 
Last edited:
You don't need that information.  It's simply the machine code translated into human readable operations.

dec cl (decrease cl by 1. cl is part of ecx.  It's the lower 8 bit of the 32 bit ecx register)
nop (no operation. This has code 90, which you've obviously missed above).

On its own that tells you nothing.  But like I say you don't need to know it.  You only need the address and the hex values.  I can certainly look into sorting some hext files from the info already sent.
Haha yes I definitely missed the mark on that one, im not very experienced with stuff like this but I like to try and figure stuff out as I go along.

If you can get some hext files ready it would be absolutely amazing! I look at this thread like everyday waiting to use limitless magic aha.
 
You don't need that information.  It's simply the machine code translated into human readable operations.

dec cl (decrease cl by 1. cl is part of ecx.  It's the lower 8 bit of the 32 bit ecx register)
nop (no operation. This has code 90, which you've obviously missed above).

On its own that tells you nothing.  But like I say you don't need to know it.  You only need the address and the hex values.  I can certainly look into sorting some hext files from the info already sent.

still you should tell him that information , is just scandalous that an hacker suggest someone to prefer ignorance
 
I have hex edited before when modding Pokemon games back in the day the instructions were pretty simple it would be like go to this address and change like 1D 2D 3D to 4D 4D 4D for example but I am not familiar enough with it to understand what this means

FF8_EN.exe+86B0C | FE C9                    | dec cl                                  | nop

I open up the FF8_EN.exe go to 86B0C location and it highlights over FE C9 from there the instructions I am usually given would be change the numbers "1D 2D 3D to 4D 4D 4D example" which is easy as hell however I am totally clue less as to this part here " | dec cl                                  | nop"

If anyone is willing to explain what exactly I am supposed to do with that information I would be very grateful! This is the last thing I need to set up for my FF8! playthrough.

i am not an hacker but is often do that to my exe for final fantasy 8 , and apply that change will forever prevent some reaction ( like the decreasing of the magics once you use them in battle or in the menu ) to trigger , that's all , but i don't know exactly what kind of limitation or subtraction will permanently null that function , for that we should ask to the hackers here , but hey , as you can see from their replies they like to keep people ignorant , i just hope that sooner or later they will also need the same kind of help that you are requiring now and only get this same obstructionism instead
 
Status
Not open for further replies.
Back
Top