Author Topic: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)  (Read 101784 times)

Zara9

  • *
  • Posts: 559
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #25 on: 2017-08-25 22:54:29 »
Hey

what does this new add-on launcher do anyways

Mcindus

  • *
  • Posts: 929
  • Artist, Modder, Musician.
    • View Profile
    • Lunatic Pandora
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #26 on: 2017-08-25 22:57:54 »
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.

Godlift

  • *
  • Posts: 48
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #27 on: 2017-08-26 16:27:21 »
To be clear the magic.dll hasnt been updated with gaaasstly fixes to double and triple spell right?

Mcindus

  • *
  • Posts: 929
  • Artist, Modder, Musician.
    • View Profile
    • Lunatic Pandora
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #28 on: 2017-08-30 01:49:20 »
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

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #29 on: 2017-09-07 18:15:04 »
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.

Mcindus

  • *
  • Posts: 929
  • Artist, Modder, Musician.
    • View Profile
    • Lunatic Pandora
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #30 on: 2017-09-08 23:09:30 »
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.)

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #31 on: 2017-09-08 23:34:43 »
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.

Mcindus

  • *
  • Posts: 929
  • Artist, Modder, Musician.
    • View Profile
    • Lunatic Pandora
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #32 on: 2017-09-09 19:21:33 »
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.

Spoiler: show
Damage.dll:
Code: [Select]
510620C8 | 81 C1 FF FF 00 00        | add ecx,FFFF                            |
Hard.dll (pseudocode):
Code: [Select]
ReturnType CallingConvention FunctionHook(VariableType VariableName, ...)
{
    VariableName *= Multiplier;
    return OriginalFunction(VariableName);
}

HP.dll:
Code: [Select]
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]
0F7120C8 | 32 C9                    | xor cl,cl                               |


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

Spoiler: show
Break Damage Limit:
Code: [Select]
FF8_EN.exe+91137 | 81 C1 0F 27 00 00        | add ecx,270F                            | add ecx, 0xffff
Break HP Limit:
Code: [Select]
GF

FF8_EN.exe+95E6D | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffff
FF8_EN.exe+95E75 | BA 0F 27 00 00           | mov edx,270F                            | mov edx, 0xffff

Party

FF8_EN.exe+95A1A | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffff
FF8_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]
Battle

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

Field

FF8_EN.exe+F3027 | FE CB                    | dec bl                                  | nop

Save Anywhere - Address (set value to 1 and freeze):
Code: [Select]
FF8_EN.exe+18FEA89
Save Anywhere - Patch:
Code: [Select]
Save Point

FF8_EN.exe+1221CF | 8A 88 D1 00 00 00        | mov cl,byte ptr ds:[eax+D1]             | mov cl, 1
FF8_EN.exe+1221D7 | 80 C9 01                 | or cl,1                                 | nop
FF8_EN.exe+1221E6 | 80 E1 FE                 | and cl,FE                               | nop

Loading Zone

FF8_EN.exe+12BE1D | 8A 90 D1 00 00 00        | mov dl,byte ptr ds:[eax+D1]             | mov dl, 1
FF8_EN.exe+12BE2D | 80 E2 FC                 | and dl,FC                               | nop


Godlift

  • *
  • Posts: 48
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #33 on: 2017-09-09 20:36:30 »
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.

march

  • *
  • Posts: 30
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #34 on: 2017-09-09 21:35:41 »
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

Godlift

  • *
  • Posts: 48
    • View Profile
Re: [FF8PC-Steam] Add-on DLLs (2014-07-11)
« Reply #35 on: 2017-09-10 14:42:24 »
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.

Spoiler: show
Damage.dll:
Code: [Select]
510620C8 | 81 C1 FF FF 00 00        | add ecx,FFFF                            |
Hard.dll (pseudocode):
Code: [Select]
ReturnType CallingConvention FunctionHook(VariableType VariableName, ...)
{
    VariableName *= Multiplier;
    return OriginalFunction(VariableName);
}

HP.dll:
Code: [Select]
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]
0F7120C8 | 32 C9                    | xor cl,cl                               |


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

Spoiler: show
Break Damage Limit:
Code: [Select]
FF8_EN.exe+91137 | 81 C1 0F 27 00 00        | add ecx,270F                            | add ecx, 0xffff
Break HP Limit:
Code: [Select]
GF

FF8_EN.exe+95E6D | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffff
FF8_EN.exe+95E75 | BA 0F 27 00 00           | mov edx,270F                            | mov edx, 0xffff

Party

FF8_EN.exe+95A1A | 81 FA 0F 27 00 00        | cmp edx,270F                            | cmp edx, 0xffff
FF8_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]
Battle

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

Field

FF8_EN.exe+F3027 | FE CB                    | dec bl                                  | nop

Save Anywhere - Address (set value to 1 and freeze):
Code: [Select]
FF8_EN.exe+18FEA89
Save Anywhere - Patch:
Code: [Select]
Save Point

FF8_EN.exe+1221CF | 8A 88 D1 00 00 00        | mov cl,byte ptr ds:[eax+D1]             | mov cl, 1
FF8_EN.exe+1221D7 | 80 C9 01                 | or cl,1                                 | nop
FF8_EN.exe+1221E6 | 80 E1 FE                 | and cl,FE                               | nop

Loading Zone

FF8_EN.exe+12BE1D | 8A 90 D1 00 00 00        | mov dl,byte ptr ds:[eax+D1]             | mov dl, 1
FF8_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.

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #36 on: 2017-09-10 16:09:58 »
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 Edit: 2017-09-10 16:13:22 by DLPB »

Godlift

  • *
  • Posts: 48
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #37 on: 2017-09-10 19:12:07 »
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.

march

  • *
  • Posts: 30
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #38 on: 2017-09-10 19:39:13 »
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

march

  • *
  • Posts: 30
    • View Profile
Re: [FF8PC-Steam] Add-on DLLs (2014-07-11)
« Reply #39 on: 2017-09-10 19:43:04 »

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

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #40 on: 2017-09-10 21:32:57 »

still you should tell him that information , is just scandalous that an hacker suggest someone to prefer ignorance

I did no such thing.
You want me to start teaching assembly here?  Are you for real?  :P Assuming this person wants to know the finer details, the entire Internet is there with information and tutorials.   And, btw, I DID tell him what those instructions meant. Not that it would do him ANY good.
« Last Edit: 2017-09-10 21:51:57 by DLPB »

march

  • *
  • Posts: 30
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #41 on: 2017-09-10 22:27:17 »
I did no such thing.
You want me to start teaching assembly here?  Are you for real?  :P Assuming this person wants to know the finer details, the entire Internet is there with information and tutorials.   And, btw, I DID tell him what those instructions meant. Not that it would do him ANY good.

all you said is that he didn't need to know what that can do , also , it can't do any good ? you mean that modification will cause the game to crash ? or i just your opinion about the result that he want to obtain ? -.-

gaaasstly

  • *
  • Posts: 39
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #42 on: 2017-09-12 14:08:22 »
It would be easier to use a program like Cheat Engine, but you can translate the instructions here.

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #43 on: 2017-09-12 15:47:42 »
Cheat Engine is more difficult than HextLaunch - and it has the disadvantage of having to be loaded up every single time you start the game (unless you want to hard code change the exe).    Plus editing it is more messing.

Mcindus

  • *
  • Posts: 929
  • Artist, Modder, Musician.
    • View Profile
    • Lunatic Pandora
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #44 on: 2017-09-12 16:24:03 »
Cheat Engine is more difficult than HextLaunch - and it has the disadvantage of having to be loaded up every single time you start the game (unless you want to hard code change the exe).    Plus editing it is more messing.

In application, I agree with DLPB.  HextLaunch and HextEdit are much more convenient to me than CheatEngine... especially since each mod can be placed individually within it's own .txt file and added/removed with extreme ease.  It might be easier for an experienced programmer/engineer type to use CheatEngine in that way, but I find the HextTools to be -really- functional for modders and the average user to be able to choose which mod they would like to run, and to be able to run it automatically on game-launch.  Not only that, but Hext Tools are extremely low resource, and don't interfere with my other injectors such as GeDoSaTo, ReShade, RaW, and Tonberry.

gaaasstly

  • *
  • Posts: 39
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #45 on: 2017-09-12 18:15:38 »
Cheat Engine is about as simple as it gets; create a script and enable/disable it. It won't interfere with any mods you have installed.

Code: [Select]
[ENABLE]
FF8_EN.exe+86B0C:
nop
nop

[DISABLE]
FF8_EN.exe+86B0C:
dec cl

The only time I use a dll anymore is to hook functions (which can be done in CE, but is much more effort than it is worth) and even then I do not use a proxy like ddraw.dll.
« Last Edit: 2017-09-12 18:21:15 by gaaasstly »

Mcindus

  • *
  • Posts: 929
  • Artist, Modder, Musician.
    • View Profile
    • Lunatic Pandora
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #46 on: 2017-09-12 22:07:08 »
Well,
Cheat Engine is about as simple as it gets; create a script and enable/disable it. It won't interfere with any mods you have installed.

Code: [Select]
[ENABLE]
FF8_EN.exe+86B0C:
nop
nop

[DISABLE]
FF8_EN.exe+86B0C:
dec cl

The only time I use a dll anymore is to hook functions (which can be done in CE, but is much more effort than it is worth) and even then I do not use a proxy like ddraw.dll.

The UV Fix for the textures that Maki created is only currently available in Hext - and I don't want to have to run HextLaunch -and- CheatEngine, when they function the same way - and if I get all the codes I want, I can then patch my .exe with HextEdit and not have to worry about any co-launchers when I run the game.
I don't see why so resistant to hext format?

ddraw.dll is only in use in RaW right now, and not in the HextTools.  HextLaunch is an .exe that allows injection of Hex and .dll's -  and HextEdit is an .exe Hex patcher.

DLPB_

  • Banned
  • *
  • Posts: 11006
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #47 on: 2017-09-12 22:41:56 »
And soon Hext files will be loadable by RaW, meaning no HextLaunch program needed.

Also

Code: [Select]
[ENABLE]
FF8_EN.exe+86B0C:
nop
nop

[DISABLE]
FF8_EN.exe+86B0C:
dec cl

is not easy for a novice.  And it doesn't use hex values... so if you were doing a comparison of exes to create a list of hex changes - they'd be worthless there?  In Hext, they can be pasted right in.
« Last Edit: 2017-09-12 22:44:06 by DLPB »

gaaasstly

  • *
  • Posts: 39
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #48 on: 2017-09-13 20:49:08 »
You can use 'db 90 90' in place of 'nop nop', etc.

Godlift

  • *
  • Posts: 48
    • View Profile
Re: [FF8PC-Steam] Hard Mode and Add-on's Launcher (2017-08-25)
« Reply #49 on: 2017-09-13 21:06:57 »
You can use 'db 90 90' in place of 'nop nop', etc.

What hex addresses would need to be changed? If you are able to post them here then Mcindus would be able to improve the magic.dll and a lot more people would really be able to enjoy ff8.
I know that the main complaint I hear for FF8 is drawing magic and if you can help by posting the address(s) and the changes then this could easily become a staple in most peoples play through for ff8!