OpenVIII - an open-source Final Fantasy VIII engine implementation

  • Thread starter Thread starter makipl
  • Start date Start date
Status
Not open for further replies.
Ok now I get exception error when I try enter any of the battle encounters

System.UnauthorizedAccessException: 'Access to the path 'D:\out.dat' is denied.'
in debug_battleDat.cs delete line starting at 607:
Code: [Select]
Code:
#if _WINDOWS            MakiExtended.DumpBuffer(buffer, "D:/out.dat");#endif

though if you want to only play and watch the monsters I recommend grabbing this commit:
https://github.com/MaKiPL/OpenVIII/commit/c346872fa630d29a1c17a2af5ecb8be5616c3a41
as it's the one from GIF
 
Last edited:
one thing you could do with that D:/out.dat is change it to use Code: [Select]
Code:
Path.Combine(Path.GetTempPath(), "out.dat")
then your dat file would be at %temp%\out.dat and it wouldn't error if someone didn't have a D:
 
Last edited:
finally!
unknown.png


and once again- big shoutout to amazing people contributing to project. You're doing extremely good job, I'm impressed!
 
Would love to toss in my hat as a test/build helper with the original CD release, just need a little hand getting started since it's been 20 years since I did any real programming (and back then, it was with ladder logic-driven SLC5 and Micrologix PLC devices), and since then I've only toyed around a little with Eclipse+Java and NiagaraAX.  The readme is pretty straight-forward, but I'm getting errors on my first build attempt.  Pointers obviously appreciated.

FF8DIR - I actually found this on line 141 of Memory.cs.  Hopefully Code: [Select]
Code:
public static string FF8DIR => @"C:\Games\FF8\Data\";
is the correct path for a disk release that was installed to C:\Games\FF8?

In Ffcc.cs, I get "CS0211 Cannot take the address of the given expression" at line 1054, and "CS0459 Cannot take the address of a read-only local variable" at line 1232.
 
GameLocation class detects the location of the steam version of game. You are probably right to override it for disc version. maybe there is a registry entry we could use to detect the disc version as well.
Though line memory 141 should be:
public static string FF8DIR => @"C:\Games\FF8\Data\lang-en";

Everything goes from the lang-en directory when it's looking for stuff.
That is odd. the ffcc line 1232 is related to sound file and ogg music play. I'm surprised it got this far with the files missing. :P


Instead of touching memory.cs 141. goto WindowsGameLocationProvider.cs line 36. Add the disc version install directory to the list. it checks there before checking the registry for the steam version.

I updated the readme on the github to refer to new location of the game file arrays.
 
Last edited:
maybe there is a registry entry we could use to detect the disc version as well.
These keys were created during install on Win7 Pro x64:
Code: [Select]
Code:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Square Soft, Inc\FINAL FANTASY VIII\1.00]"MidiOptions"=dword:00000000"InstallOptions"=dword:000000ff"SoundOptions"=dword:00000000"DataDrive"="c:""MIDIGUID"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00"SoundGUID"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00"GraphicsGUID"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00"AppPath"="C:\\Games\\FF8""Graphics"=dword:00000000[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\FF8.exe]"Path"="C:\\Games\\FF8"@="C:\\Games\\FF8\\FF8.exe"[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\FF8.exe]"Path"="C:\\Games\\FF8"@="C:\\Games\\FF8\\FF8.exe"
Though line memory 141 should be:
public static string FF8DIR => @"C:\Games\FF8\Data\lang-en";

Everything goes from the lang-en directory when it's looking for stuff.
..\Data\lang-en doesn't exist on a CD install.  There's \Data\Music, \Data\Sound, and \Data\a_bunch_of_FI_FL_and_FS_files

That is odd. the ffcc line 1232 is related to sound file and ogg music play. I'm surprised it got this far with the files missing. :P
Well, I sussed from Kaldarasha that PC'00 and Steam were pretty different from each other, that's why I'm here :D

Instead of touching memory.cs 141. goto WindowsGameLocationProvider.cs line 36. Add the disc version install directory to the list. it checks there before checking the registry for the steam version.
Did that... new build errors, both in Module_main_menu_Loading.cs, "The parameter modifier 'ref' cannot be used with 'this'" at lines 16 and 22.

Edit:  Should probably make sure I'm using the right settings... target framework .NET 4.6, platform target x86, language version C#7.0
 
Last edited:
Edit:  Should probably make sure I'm using the right settings... target framework .NET 4.6, platform target x86, language version C#7.0
Looks correct. x86 is only required for the midi library though maki is working on replacing that and then it should run on both just fine. I usually test on x64 and the code for midi is just disabled.

Registry bits look easy to add. I went ahead and did it. Though I can't test it on here.

I think if there is no lang-en directory might need to compare steam version paths to your paths. On steam version all the FI FL and FS files are in the lang-en. Everything else is in data and the ff8 folder. Maybe we should be changing default path to data and check for lang-en if exists instead of what we are doing now. :P

if you want you could post a dir tree of your ff8 directory and we can compare :)

here is mine: in powershell/cmd i typed in tree /f > foo.txt
Code: [Select]
Code:
C:\Program Files (x86)\Steam\steamapps\common\FINAL FANTASY VIII│   AF3DN.P│   AF4DN.P│   avcodec-53.dll│   avformat-53.dll│   avutil-51.dll│   bass.dll│   binkw32.dll│   Chocobo_EN.exe│   Chocobo_EN.exe.manifest│   ddraw.dll│   eax.dll│   FF8.ico│   FF8_EN.exe│   FF8_EN.exe.manifest│   FF8_Launcher.exe│   firewall_entry.vdf│   lang.dat│   libeay32.dll│   libssl32.dll│   manual.pdf│   phonon4.dll│   QtCore4.dll│   QtGui4.dll│   QtNetwork4.dll│   QtWebKit4.dll│   QtXml4.dll│   QtXmlPatterns4.dll│   ssleay32.dll│   steam_api.dll│   strings.dat│   ├───Data│   │   res.dat│   │   │   ├───disk│   │       Disk1│   │       Disk2│   │       Disk3│   │       Disk4│   │       │   ├───lang-en│   │   │   battle.fi│   │   │   battle.fl│   │   │   battle.fs│   │   │   field.fi│   │   │   field.fl│   │   │   field.fs│   │   │   magic.fi│   │   │   magic.fl│   │   │   magic.fs│   │   │   main.fi│   │   │   main.fl│   │   │   main.fs│   │   │   menu.fi│   │   │   menu.fl│   │   │   menu.fs│   │   │   world.fi│   │   │   world.fl│   │   │   world.fs│   │   │   │   │   └───movies│   │           disc03_05h.avi│   │           │   ├───movies│   │       disc00_00.cam│   │       disc00_00h.avi│   │       disc00_01.cam│   │       disc00_01h.avi│   │       disc00_02.cam│   │       disc00_02h.avi│   │       disc00_03.cam│   │       disc00_03h.avi│   │       disc00_04.cam│   │       disc00_04h.avi│   │       disc00_05.cam│   │       disc00_05h.avi│   │       disc00_06.cam│   │       disc00_06h.avi│   │       disc00_07.cam│   │       disc00_07h.avi│   │       disc00_08.cam│   │       disc00_08h.avi│   │       disc00_09.cam│   │       disc00_09h.avi│   │       disc00_10.cam│   │       disc00_10h.avi│   │       disc00_11.cam│   │       disc00_11h.avi│   │       disc00_12.cam│   │       disc00_12h.avi│   │       disc00_13.cam│   │       disc00_13h.avi│   │       disc00_14.cam│   │       disc00_14h.avi│   │       disc00_15.cam│   │       disc00_15h.avi│   │       disc00_16.cam│   │       disc00_16h.avi│   │       disc00_17.cam│   │       disc00_17h.avi│   │       disc00_18.cam│   │       disc00_18h.avi│   │       disc00_19.cam│   │       disc00_19h.avi│   │       disc00_20.cam│   │       disc00_20h.avi│   │       disc00_21.cam│   │       disc00_21h.avi│   │       disc00_22.cam│   │       disc00_22h.avi│   │       disc00_23.cam│   │       disc00_23h.avi│   │       disc00_24.cam│   │       disc00_24h.avi│   │       disc00_25.cam│   │       disc00_25h.avi│   │       disc00_26.cam│   │       disc00_26h.avi│   │       disc00_27.cam│   │       disc00_27h.avi│   │       disc00_28.cam│   │       disc00_28h.avi│   │       disc00_29.cam│   │       disc00_29h.avi│   │       disc00_30.cam│   │       disc00_30h.avi│   │       disc01_00.cam│   │       disc01_00h.avi│   │       disc01_01.cam│   │       disc01_01h.avi│   │       disc01_02.cam│   │       disc01_02h.avi│   │       disc01_03.cam│   │       disc01_03h.avi│   │       disc01_04.cam│   │       disc01_04h.avi│   │       disc01_05.cam│   │       disc01_05h.avi│   │       disc01_06.cam│   │       disc01_06h.avi│   │       disc01_07.cam│   │       disc01_07h.avi│   │       disc01_08.cam│   │       disc01_08h.avi│   │       disc01_09.cam│   │       disc01_09h.avi│   │       disc01_10.cam│   │       disc01_10h.avi│   │       disc01_11.cam│   │       disc01_11h.avi│   │       disc01_12.cam│   │       disc01_12h.avi│   │       disc01_13.cam│   │       disc01_13h.avi│   │       disc01_14.cam│   │       disc01_14h.avi│   │       disc01_15.cam│   │       disc01_15h.avi│   │       disc01_16.cam│   │       disc01_16h.avi│   │       disc01_17.cam│   │       disc01_17h.avi│   │       disc01_18.cam│   │       disc01_18h.avi│   │       disc01_19.cam│   │       disc01_19h.avi│   │       disc01_20.cam│   │       disc01_20h.avi│   │       disc01_21.cam│   │       disc01_21h.avi│   │       disc01_22.cam│   │       disc01_22h.avi│   │       disc01_23.cam│   │       disc01_23h.avi│   │       disc01_24.cam│   │       disc01_24h.avi│   │       disc01_25.cam│   │       disc01_25h.avi│   │       disc01_26.cam│   │       disc01_26h.avi│   │       disc01_27.cam│   │       disc01_27h.avi│   │       disc01_28.cam│   │       disc01_28h.avi│   │       disc01_29.cam│   │       disc01_29h.avi│   │       disc01_30.cam│   │       disc01_30h.avi│   │       disc01_31.cam│   │       disc01_31h.avi│   │       disc01_32.cam│   │       disc01_32h.avi│   │       disc01_33.cam│   │       disc01_33h.avi│   │       disc02_00.cam│   │       disc02_00h.avi│   │       disc02_01.cam│   │       disc02_01h.avi│   │       disc02_02.cam│   │       disc02_02h.avi│   │       disc02_03.cam│   │       disc02_03h.avi│   │       disc02_04.cam│   │       disc02_04h.avi│   │       disc02_05.cam│   │       disc02_05h.avi│   │       disc02_06.cam│   │       disc02_06h.avi│   │       disc02_07.cam│   │       disc02_07h.avi│   │       disc02_08.cam│   │       disc02_08h.avi│   │       disc02_09.cam│   │       disc02_09h.avi│   │       disc02_10.cam│   │       disc02_10h.avi│   │       disc02_11.cam│   │       disc02_11h.avi│   │       disc02_12.cam│   │       disc02_12h.avi│   │       disc02_13.cam│   │       disc02_13h.avi│   │       disc02_14.cam│   │       disc02_14h.avi│   │       disc02_15.cam│   │       disc02_15h.avi│   │       disc02_16.cam│   │       disc02_16h.avi│   │       disc02_17.cam│   │       disc02_17h.avi│   │       disc02_18.cam│   │       disc02_18h.avi│   │       disc02_19.cam│   │       disc02_19h.avi│   │       disc02_20.cam│   │       disc02_20h.avi│   │       disc02_21.cam│   │       disc02_21h.avi│   │       disc02_22.cam│   │       disc02_22h.avi│   │       disc02_23.cam│   │       disc02_23h.avi│   │       disc02_24.cam│   │       disc02_24h.avi│   │       disc02_25.cam│   │       disc02_25h.avi│   │       disc02_26.cam│   │       disc02_26h.avi│   │       disc02_27.cam│   │       disc02_27h.avi│   │       disc02_28.cam│   │       disc02_28h.avi│   │       disc02_29.cam│   │       disc02_29h.avi│   │       disc02_30.cam│   │       disc02_30h.avi│   │       disc02_31.cam│   │       disc02_31h.avi│   │       disc03_00.cam│   │       disc03_00h.avi│   │       disc03_01.cam│   │       disc03_01h.avi│   │       disc03_02.cam│   │       disc03_02h.avi│   │       disc03_03.cam│   │       disc03_03h.avi│   │       disc03_04.cam│   │       disc03_04h.avi│   │       disc03_05.cam│   │       disc03_06.cam│   │       disc03_06h.avi│   │       disc04_00h.avi│   │       │   ├───Music│   │   │   eyes_on_me.wav│   │   │   eyes_on_me_BACKUP.wav│   │   │   │   │   ├───dmusic│   │   │       000s-lose.sgt│   │   │       001s-win.sgt│   │   │       001xg-win.sgt│   │   │       004s-run.sgt│   │   │       005s-battle.sgt│   │   │       005xg-Battle.sgt│   │   │       007s-end.sgt│   │   │       008s-antena.sgt│   │   │       009s-waiting.sgt│   │   │       012s-kani.sgt│   │   │       013s-battle2.sgt│   │   │       013xg-Battle2.sgt│   │   │       014s-Parade2.sgt│   │   │       015s-fuan2.sgt│   │   │       016s-march2.sgt│   │   │       017s-joriku.sgt│   │   │       018s-julia.sgt│   │   │       019s-waltz.sgt│   │   │       020s-friend.sgt│   │   │       021s-dangeon.sgt│   │   │       022s-pianosol.sgt│   │   │       023s-Parade.sgt│   │   │       024s-march1.sgt│   │   │       025s-himitsu.sgt│   │   │       026s-garden.sgt│   │   │       027s-fuan.sgt│   │   │       028s-polka2.sgt│   │   │       029s-anthem.sgt│   │   │       035s-m7f5.sgt│   │   │       036s-majo.sgt│   │   │       041s-field.sgt│   │   │       042s-guitar.sgt│   │   │       043a-concert-tap.sgt│   │   │       043b-concert-flute.sgt│   │   │       043c-concert-fiddle.sgt│   │   │       043d-concert-aguitar.sgt│   │   │       043e-concert-sax.sgt│   │   │       043f-concert-piano.sgt│   │   │       043g-concert-eguitar.sgt│   │   │       043h-concert-ebass.sgt│   │   │       046s-resistan.sgt│   │   │       047s-kaiso.sgt│   │   │       047xg-Kaiso.sgt│   │   │       048s-horizon.sgt│   │   │       049s-master.sgt│   │   │       051s-rinoa.sgt│   │   │       052s-travia.sgt│   │   │       053s-antena2.sgt│   │   │       054s-truth.sgt│   │   │       055s-jail.sgt│   │   │       056s-gargarde.sgt│   │   │       057s-timber.sgt│   │   │       058s-garbadia.sgt│   │   │       059s-pinch.sgt│   │   │       060s-scene1.sgt│   │   │       061s-pub.sgt│   │   │       062s-bat3.sgt│   │   │       063s-stage.sgt│   │   │       064s-choco.sgt│   │   │       065s-white.sgt│   │   │       066s-majomv.sgt│   │   │       067s-musho.sgt│   │   │       068s-missile.sgt│   │   │       069s-enzetu.sgt│   │   │       070s-card.sgt│   │   │       071s-gomon.sgt│   │   │       072s-soto.sgt│   │   │       073s-majobat.sgt│   │   │       075s-Gar3.sgt│   │   │       076s-Bossbat2.sgt│   │   │       077s-lasdun.sgt│   │   │       078s-gafly.sgt│   │   │       079s-demo.sgt│   │   │       080s-spy.sgt│   │   │       081s-mods.sgt│   │   │       082s-salt.sgt│   │   │       083s-alien.sgt│   │   │       084s-sekichu.sgt│   │   │       085s-esta.sgt│   │   │       086s-moonmv.sgt│   │   │       089s-hikutei.sgt│   │   │       090s-bossbat1.sgt│   │   │       091s-rag1.sgt│   │   │       092s-rag2.sgt│   │   │       093s-lasboss.sgt│   │   │       096s-keisho.sgt│   │   │       097s-ashuku.sgt│   │   │       099-joriku2.sgt│   │   │       chocoworld.sgt│   │   │       FF8.dls│   │   │       XGdefault.sgt│   │   │       Xgon.sgt│   │   │       │   │   │       │   │   └───stream│   │           003-combat.wav│   │           006-funsui.wav│   │           010-ante.wav│   │           011-wind.wav│   │           030-Flangchorus.wav│   │           031-dubchorus.wav│   │           032-Solochorus.wav│   │           033-Femalechorus.wav│   │           034-chorus.wav│   │           037-reet.wav│   │           038-soyo.wav│   │           039-rouka.wav│   │           040-night.wav│   │           044-sea.wav│   │           074-train.wav│   │           086-mdmotor.wav│   │           087-mdmotor.wav│   │           094-laswhite.wav│   │           095-lasbl.wav│   │           │   └───Sound│           audio.dat│           audio.fmt│           ├───licenses│       ffmpeg_license_LGPLv2.1.txt│       libogg_license_BSD.txt│       libvorbis_license_BSD.txt│       libvpx_license_BSD.txt│       Qt_license_LGPLv2.1.txt│       ├───plugins│   ├───designer│   │       qwebview.dll│   │       │   └───imageformats│           qgif4.dll│           qico4.dll│           qjpeg4.dll│           qmng4.dll│           qsvg4.dll│           qtiff4.dll│           └───shaders        pixel.hlsl        vert.hlsl
I think first step is making sure it's finding all the required files. Might need to debug line by line in ffcc as i couldn't cause the error to happen over here. Or can just comment out the sound playback parts till we figure out the issue.
 
Here's the disk tree (spoiler instead of code to keep the base message short)

Folder PATH listing
Volume serial number is 20FB-C599
C:.
|   tree.txt
|   
+---FF8
    |   binkw32.dll
    |   Chocobo.exe
    |   FF8.exe
    |   FF8Config.exe
    |   ff8input.cfg
    |   publish.pak
    |   Readme.txt
    |   Uninst.isu
    |   
    +---Data
    |   |   battle.fi
    |   |   battle.fl
    |   |   battle.fs
    |   |   field.fi
    |   |   field.fl
    |   |   field.fs
    |   |   magic.fi
    |   |   magic.fl
    |   |   magic.fs
    |   |   main.fi
    |   |   main.fl
    |   |   main.fs
    |   |   menu.fi
    |   |   menu.fl
    |   |   menu.fs
    |   |   world.fi
    |   |   world.fl
    |   |   world.fs
    |   |   
    |   +---Music
    |   |   +---dmusic
    |   |   |       000s-lose.sgt
    |   |   |       001s-win.sgt
    |   |   |       001xg-win.sgt
    |   |   |       004s-run.sgt
    |   |   |       005s-battle.sgt
    |   |   |       005xg-Battle.sgt
    |   |   |       007s-end.sgt
    |   |   |       008s-antena.sgt
    |   |   |       009s-waiting.sgt
    |   |   |       012s-kani.sgt
    |   |   |       013s-battle2.sgt
    |   |   |       013xg-Battle2.sgt
    |   |   |       014s-Parade2.sgt
    |   |   |       015s-fuan2.sgt
    |   |   |       016s-march2.sgt
    |   |   |       017s-joriku.sgt
    |   |   |       018s-julia.sgt
    |   |   |       019s-waltz.sgt
    |   |   |       020s-friend.sgt
    |   |   |       021s-dangeon.sgt
    |   |   |       022s-pianosol.sgt
    |   |   |       023s-Parade.sgt
    |   |   |       024s-march1.sgt
    |   |   |       025s-himitsu.sgt
    |   |   |       026s-garden.sgt
    |   |   |       027s-fuan.sgt
    |   |   |       028s-polka2.sgt
    |   |   |       029s-anthem.sgt
    |   |   |       035s-m7f5.sgt
    |   |   |       036s-majo.sgt
    |   |   |       041s-field.sgt
    |   |   |       042s-guitar.sgt
    |   |   |       043a-concert-tap.sgt
    |   |   |       043b-concert-flute.sgt
    |   |   |       043c-concert-fiddle.sgt
    |   |   |       043d-concert-aguitar.sgt
    |   |   |       043e-concert-sax.sgt
    |   |   |       043f-concert-piano.sgt
    |   |   |       043g-concert-eguitar.sgt
    |   |   |       043h-concert-ebass.sgt
    |   |   |       046s-resistan.sgt
    |   |   |       047s-kaiso.sgt
    |   |   |       047xg-Kaiso.sgt
    |   |   |       048s-horizon.sgt
    |   |   |       049s-master.sgt
    |   |   |       051s-rinoa.sgt
    |   |   |       052s-travia.sgt
    |   |   |       053s-antena2.sgt
    |   |   |       054s-truth.sgt
    |   |   |       055s-jail.sgt
    |   |   |       056s-gargarde.sgt
    |   |   |       057s-timber.sgt
    |   |   |       058s-garbadia.sgt
    |   |   |       059s-pinch.sgt
    |   |   |       060s-scene1.sgt
    |   |   |       061s-pub.sgt
    |   |   |       062s-bat3.sgt
    |   |   |       063s-stage.sgt
    |   |   |       064s-choco.sgt
    |   |   |       065s-white.sgt
    |   |   |       066s-majomv.sgt
    |   |   |       067s-musho.sgt
    |   |   |       068s-missile.sgt
    |   |   |       069s-enzetu.sgt
    |   |   |       070s-card.sgt
    |   |   |       071s-gomon.sgt
    |   |   |       072s-soto.sgt
    |   |   |       073s-majobat.sgt
    |   |   |       075s-Gar3.sgt
    |   |   |       076s-Bossbat2.sgt
    |   |   |       077s-lasdun.sgt
    |   |   |       078s-gafly.sgt
    |   |   |       079s-demo.sgt
    |   |   |       080s-spy.sgt
    |   |   |       081s-mods.sgt
    |   |   |       082s-salt.sgt
    |   |   |       083s-alien.sgt
    |   |   |       084s-sekichu.sgt
    |   |   |       085s-esta.sgt
    |   |   |       086s-moonmv.sgt
    |   |   |       089s-hikutei.sgt
    |   |   |       090s-bossbat1.sgt
    |   |   |       091s-rag1.sgt
    |   |   |       092s-rag2.sgt
    |   |   |       093s-lasboss.sgt
    |   |   |       096s-keisho.sgt
    |   |   |       097s-ashuku.sgt
    |   |   |       099-joriku2.sgt
    |   |   |       chocoworld.sgt
    |   |   |       FF8.dls
    |   |   |       XGdefault.sgt
    |   |   |       Xgon.sgt
    |   |   |       
    |   |   +---stream
    |   |           003-combat.wav
    |   |           006-funsui.wav
    |   |           010-ante.wav
    |   |           011-wind.wav
    |   |           030-Flangchorus.wav
    |   |           031-dubchorus.wav
    |   |           032-Solochorus.wav
    |   |           033-Femalechorus.wav
    |   |           034-chorus.wav
    |   |           037-reet.wav
    |   |           038-soyo.wav
    |   |           039-rouka.wav
    |   |           040-night.wav
    |   |           044-sea.wav
    |   |           074-train.wav
    |   |           086-mdmotor.wav
    |   |           087-mdmotor.wav
    |   |           094-laswhite.wav
    |   |           095-lasbl.wav
    |   |           
    |   +---Sound
    |           audio.dat
    |           audio.fmt
    |           
    +---Save
        +---Slot1
        +---Slot2
 
What? They keep the saves in the ff8 folder? Is that really where they write to? I was going to ask about that anyway because steam saves it in my documents. I also was hoping to get a sample save file to see how it's different from the steam version. Main reason that confuses me is program files would be write protected so you'd need to play in admin mode if you installed it there. :P

Did you not do a full install? looks like the movies are missing. I think it'll be required. I think on FF7 98 cd you had an option to install everything to the hard drive. If not we'll need logic to check the cds for the movies and we currently scan the folder for the movies we don't have a hard coded list. :P I guess you could add your cd as a folder to scan. Though you'd need to rerun scan every time you do a disc swap. I did a recent change to make it so if movies don't exist it should just skip playback.

At least the FI FL FS files are there sound files and music files. So we will need to change the paths for everything. So it can find them correctly. I'm thinking to change the main directory to the FF8 folder. Instead of lang-en. Then in the part where the FI FL FS files are defined I'd check for the lang-en exists.

Did you want me to work on the changes or did you want to do them and do a pull request?
 
Last edited:
What? They keep the saves in the ff8 folder? is that really where they write to? I was going to ask about that anyway because steam saves it in my documents. I also was hoping to get a sample save file to see how it's different from the steam version.
A-yup... I'll Google Drive a save straight off the opening movie later today (EDIT: https://drive.google.com/open?id=1vc08Yy0P4RS54QrTJtGAD2VYpbmPs7W0).  I don't think the format is all that different, at least as far as spells are concerned, because I'm able to hack in plenty of them with Hyne.

Did you not do a full install? looks like the movies are missing. I think it'll be required. I think on FF7 98 cd you had an option to install everything to the hard drive. If not we'll need logic to check the cds for the movies and we currently scan the folder for the movies we don't have a hard coded list. :P I guess you could add your cd as a folder to scan. Though you'd need to rerun scan every time you do a disc swap. I did a recent change to make it so if movies don't exist it should just skip playback.
Yes, full install (FF8 Program Files 303424K, Optional Game Data 287392K).  Movies are probably only on the CDs (a different copy protection mechanism from FF7?).  Also keep in mind that in 2000, OEM hard drives from companies like Dell and Gateway were only in the double-digit gigabyte range, so space was still something of a luxury.  These are the contents of disk 1:

Directory of D:\

11/16/1999  07:30 AM       411,254,120 disc1.pak
11/17/1999  07:33 AM                 2 Disk1
11/22/1999  01:02 PM            32,400 field.fi
11/22/1999  12:40 PM           122,271 field.fl
11/22/1999  01:01 PM       294,122,967 field.fs


Did you want me to work on the changes or did you want to do them and do a pull request?
You'll have to be the code wizard... I haven't touched any flavor of C since undergrad 20+ years ago, so while I can navigate build tools, as well as read and (sometimes) understand what's taking place, useful code isn't going to be streaming from my keyboard :(

Second edit: Curiously, the game kept crashing to desktop until after I had dropped aali's driver in place.  I don't think the driver itself was the solution, but rather that EAX.DLL was missing from the FF8 folder despite the installer having claimed that it was successfully loaded.  I didn't notice this on my first install because I just drop aali by habit, and things "just worked."
 
Last edited:
Looks like to get the movies you need to use http://mirex.mypage.sk/index.php?selected=1 < unmass tool referenced in https://www.ff7catalog.com/posts/35997/. And the videos aren't in avi/mkv form. it's possible FFMPEG can still play it back won't know till we try. I think they said they are BIK files. I'd see about unmassing the pak files for the videos and putting them in your ff8\movies along with and cam files that might be there too. We might eventually add support for the PAK format natively but I'm unsure where to start on that.
per https://trac.ffmpeg.org/ticket/3266 BIK files should be recognized by ffmpeg.

To summarize unmass PAK files. Put BIK and CAM files into ff8\movies. I'll need to make the code scan for them as well.

I'll work on updating the the code. You might have to pull from my fork to test before we update the master. I'll post when I've done the changes. I might have to run an errand today. And I work Friday - Sunday. So hopefully we can get it working today. :P
 
No luck on that... unmass reads the FI files, but not the PAK (complains about unknown file format).  Dragon unpacker isn't doing any better... going to poke around Google and see what else may exist... In the meanwhile, which branch/repo should I be following for your edits?
 
I went ahead and did a pull request as the changes shouldn't of broken anything. So you should be able to download the new code. And give it a try.

If you can't get the movies right away it shouldn't matter. The code should skip that part if it doesn't see them.

The save files are the same in both versions. So just added the location to scan. Though it checks the steam save folder first and only checks the other if it can't find it.

I'll try to read more about the pak files. one site said they might be zip or rar files. might try renaming them to see if you can open them that way.

Maki has https://github.com/MaKiPL/FF8-Rinoa-s-Toolset that might open the pak files. yes under Tools>Movie Extractor .PAK
 
Last edited:
Well the steam version has disc00_00h.avi where disc00 is disc 1. As long as it's in the same order it should work. As we don't care what the names are we just care about what order they are in the directory. I can make the code search subfolders if you want. then you can put the movies unpacked from disc1 into disc00 folder instead of renaming all the files. :)


I just did that quick change. if you wanna download the change.

There might be an issue where some videos are on more than one disc. Where on the steam version we only have one copy of each video. Might take some fiddling to figure out which ones are duplicates.
 
Last edited:
Well the steam version has disc00_00h.avi where disc00 is disc 1. As long as it's in the same order it should work. As we don't care what the names are we just care about what order they are in the directory. I can make the code search subfolders if you want. then you can put the movies unpacked from disc1 into disc00 folder instead of renaming all the files. :)
Should probably do whatever will make it easiest in the long-term for any modders and upscalers who follow behind us. You and Maki are the brains of the outfit ;)
 
I've only been working on the "easier" stuff. :P Maki started this project. Him and Albeoris are doing the more complex stuff.

I don't know if i was clear on my last post but you should be able to put the movie files in ff8\movies\disc00, 01, 02, and 03. Though like I said there will be probably be duplicates. If everything's working you should be able to see the videos play on the debug screen. Eventually we can make a list of the movies that need to be pulled from each disc and which ones we don't need.
 
After many contortions getting my home system set up, I have what I *think* is a successful build?
C:\Users\Raistlin\Source\Repos\MaKiPL\OpenVIII\FF8\bin\x64\Debug\FF8.exe   451KB

Except it doesn't actually do anything besides create a black box in the center of my screen, even after plopping it (and all those support files) right on top of the original install.  The only things I saw pass by in the build window were a ton of variables never being used, a handful of unreachable code segments, and some warnings about function obsolescence.
 
Status
Not open for further replies.
Back
Top