Qhimm.com Forums
Final Fantasy 8 => Gameplay => Releases => Topic started by: gaaasstly on 2017-09-20 23:10:03
-
Steam BuildID: 296320 (FF8_EN.exe)
I put the absolute minimum effort into this program because I was not sure if something like it already existed. If it garners enough support, I may continue the project.
What is Training Center?
In its current state, it is a battle simulator.
What does it do?
(Re)Play any battle with the current party (untested).
Can I switch/customize my party?
Not yet, but that is the long term goal.
Can I play as a monster?
Maybe one day.
How do I use it?
Start FF8_EN.exe and load a save file
Start FF8_TrainingCenter.exe
Enter a number in the edit box
Check the Check1 checkbox
Go to B-Garden- Training Center location and encounter!
Comments
I do not have time to catalog each battle right now which is why the UI is practically non-existent.
VT
https://www.virustotal.com/#/file/074de361c9ab329f2e71adb28b4878da29735ae58e041754ed299bab7d42e299/detection (https://www.virustotal.com/#/file/074de361c9ab329f2e71adb28b4878da29735ae58e041754ed299bab7d42e299/detection)
Download
https://drive.google.com/open?id=0Bx_SMFEky68FSWZ3eHIwcWpzTXc (https://drive.google.com/open?id=0Bx_SMFEky68FSWZ3eHIwcWpzTXc)
-
Just to make addition to this. I was working on FF8 engine commandline. You can just type BATTLE (id) and it forces it anywhere you are, although it's abandoned project and has to be compiled by yourself:
https://github.com/MaKiPL/AdelWhisperer
code for battle:
const int _BATTLE = 0x5230C0;
ENTRY = 0x0188C810;
void BATTLE(int encounter)
{
byte* b = (byte*)(ENTRY + 0x184); //MOV AL, [EDX+184h] (MOVSX ECX, AL)
*b = 9;
UINT16* moviepo = (UINT16*)(ENTRY + *b * 4 - 4); //stack pointer
*moviepo = (UINT16)(encounter & 0xFFFF);
moviepo = (UINT16*)(ENTRY + *b * 4);
*moviepo = 0x0000;
signed int(*Func)(int a1) = ((signed int(*)(int))(_BATTLE + _entry));
int result = Func(ENTRY);
printf("\nBATTLE returned: %d\n", result);
}
Entry is dynamic, so you might want to check the code for entry search code