Qhimm.com Forums

Miscellaneous Forums => General Discussion => Topic started by: Maki on 2019-02-28 12:09:40

Title: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-02-28 12:09:40

What?
OpenVIII is made in MonoGame and aims to recreate 1:1 experience of FFVIII

Why?
I don't know

Show it!
https://youtu.be/Fo5Q0qOCsU4
PS> I forgot to show FMV support, but it's there (just without audio  :x )

open-source, you say?
yes, https://github.com/MaKiPL/OpenVIII

OpenVIII not only is going to play VIII as vanilla, but also would leave an open doors for modders. It's going to be extremely easy to import own OBJ, FBX models into the game, uses 4K textures and whatever you want. I'll make sure to create a mod tool so you would just import your model from 3D modelling tool and that's all.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sega Chief on 2019-02-28 14:51:15
That's really amazing, biggest turn off for me with the PC version is that it looks and sounds worse than the original PS1 game (granted there are texture/background mods, but I prefer that 'real' PS1 aesthetic if that makes sense). An opensource FF8 would be super useful for modding, the restrictions on adding new enemies and field models/scripts are pretty tough to work around.

Downloaded the repository & installed monogame (think I need some other stuff for video/audio). Having a dig through it at the moment.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: obesebear on 2019-02-28 16:27:14
You should probably contact Square Enix and see how much money they're willing to give you for it.  Awesome job!
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-02-28 18:44:02
(think I need some other stuff for video/audio).

all needed dll's are in root catalogue: AForge.Video.FFMPEG.dll; AForge.Video.dll; DirectMidiNet.dll and NAudio.dll

You should probably contact Square Enix and see how much money they're willing to give you for it.  Awesome job!

SE hates VIII for some reason

Anyway, I'm really afraid of animations- I haven't done any single type of skeletal animation directly from code other than vertex morphing. I have no single idea how I'm supposed to work with bones/skin and animation frames
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Yagami Light on 2019-02-28 22:22:05
Get better soon Maki, the amount you have done already just by yourself is impressive, even though its based on the pc version which has lots of graphical bugs and sound issues compared to ps1, it shouldn't be too hard to replace those with better versions since its open source. Possibilities are endless still sad you have put more effort in this than Square Enix has done since the original release.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: obesebear on 2019-03-01 02:19:31
Didn't qhimm make some program for models/animations?  If nothing else I'm fairly positive noesis creator Mr adults has models and animations implemented into his program
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Kaldarasha on 2019-03-01 09:33:42
Get better soon Maki, the amount you have done already just by yourself is impressive, even though its based on the pc version which has lots of graphical bugs and sound issues compared to ps1, it shouldn't be too hard to replace those with better versions since its open source. Possibilities are endless still sad you have put more effort in this than Square Enix has done since the original release.

The sound issue will be there even if you use the PSX source. Problem is that the sound has instructions for SPU of the PSX. Without a way to interpret the functions to PC, it won't matter which source you choose. Though, I would probably aim the project as 32bitRPG-Maker, which luckily works with FF8. One thing is actually a demand for such an RPG maker, the other is of course to be safe for the layers of SE.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-03-05 17:02:08
I have refactored the code and posted full guide for both Windows and Linux development. On Linux it's not possible to hear any music due to DirectX 6 DirectMusic component not natively supported by Linux.

https://github.com/MaKiPL/OpenVIII/blob/master/README.md#getting-started-windows
https://github.com/MaKiPL/OpenVIII/blob/master/README.md#getting-started-linuxmono-tested-on-ubuntu
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-07 16:48:00
I got the code and I'm looking at it. :D I got it to run no problem. I'm kinda new to C# and don't know much about reverse engineering.  Maybe if I can come up with something that helps. Just looking at the code and getting ideas. I have the steam version and the psx version.

Maybe this should have it's own spot under "Project forums" with q-gears.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Yagami Light on 2019-03-07 16:58:15
So I downloaded everything changed the line in memory file and saved it, pressed 'build ff8', says it succeeded but when I click the exe nothing happens.

Is the memory line correct am I missing something?

public const string FF8DIR = @"D:\Program Files (x86)\Steam\steamapps\common\FINAL FANTASY VIII\Data\lang-en\"; //Work
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-03-07 17:55:33
So I downloaded everything changed the line in memory file and saved it, pressed 'build ff8', says it succeeded but when I click the exe nothing happens.

Is the memory line correct am I missing something?

public const string FF8DIR = @"D:\Program Files (x86)\Steam\steamapps\common\FINAL FANTASY VIII\Data\lang-en\"; //Work

This is weird, never heard of this issue. Normally you should see either some exception or program crash. Try to run debugging and see if there's something there, something that may help me locate the issue.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Yagami Light on 2019-03-07 18:38:10
Ok I've run the debugger theres 29 warnings but first thing that pops up is

Exception Unhandled: System.IO.DirectoryNotFoundException: 'Could not find a part of the path 'C:\media\griever\Data\SteamLibrary\steamapps\common\FINAL FANTASY VIII\Data\Music\dmusic'.'

I do have the music mod installed could that be the issue?
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-03-07 19:25:37
Ok I've run the debugger theres 29 warnings but first thing that pops up is

Exception Unhandled: System.IO.DirectoryNotFoundException: 'Could not find a part of the path 'C:\media\griever\Data\SteamLibrary\steamapps\common\FINAL FANTASY VIII\Data\Music\dmusic'.'

I do have the music mod installed could that be the issue?

which system are you working one? Please make sure to pull the newest configuration, you'll be able to switch between Debug and DebugLinux, because you are using a Linux configuration for path. It should point to your FF8 installation folder. Make sure you typed correct path into Memory.cs at line ~65. I don't quite remember. It's in-dev build, so there's no easy config here, sorry!
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-07 19:27:19
Could be if any files are missing from the music mod being installed.
Just looking it tries to load /Music/dmusic/FF8.dls and gets later on .sgt files.

It doesn't like it if the FF8.dls is missing. I just renamed mine and it errored. So check to make sure those files are there.

What mod are you using?
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Yagami Light on 2019-03-07 19:34:09
I'm using the Roses and Wine mod, I'm on windows so I dont know why its showing the linux path, I'll keep having a look


EDIT: Ok downloaded the newest version and everything works fine thanks
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-07 20:03:12
I installed Roses and Wine W07 full with installer and it renamed dmusic to dmusic_backup so I guess just need to add a if statement to check both folders? For me everything was still working just the music didn't play.
Contents for dmusic:
Code: [Select]
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
chocoworld.sgt
FF8.dls
list.txt
XGdefault.sgt
Xgon.sgt
Contents for dmusic_backup
Code: [Select]
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
list.txt
XGdefault.sgt
Xgon.sgt
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Yagami Light on 2019-03-07 21:21:51
I'm not too bothered about the music, but what are the controls? I've pressed every key on my keyboard and cant get the menu to show
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-07 22:32:40
space bar gets past the overture

arrow keys move around menu

enter selects

when in the battle screen controller or mouse and keyboard wasd can be used to move around. Though mouse is hella sensitive.

Escape exits the program

unsure what button leaves the field or battle screens.

For fun I've been messing with adding controller support to the menus. Unsure if Maki would like me to commit my code to github. It's mostly functional. I had to check for double inputs because it was putting inputs into the next menu before it loaded. :P Maybe I broke the delay check. Though it's 100ms maybe I just am too slow to let go of the button. It gets my brain working if nothing else.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Yagami Light on 2019-03-07 23:25:02
That would be cool, I tried space bar and it just exits as soon as I press it then exception unhandled pops up System.NullReferenceException: 'Object reference not set to an instance of an object.'

EDIT: Ok uninstalling the music mod fixes all the issues
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-03-08 10:01:15
Unsure if Maki would like me to commit my code to github.

sure I do- feel free to commit any code you think is needed. This is in-dev prototype, so everything goes in. The code would be rewritten to support config like in original FF8, so don't worry about controls and/or gamepad support
I installed Roses and Wine W07 full with installer and it renamed dmusic to dmusic_backup so I guess just need to add a if statement to check both folders?
Yep, exactly.


EDIT: Ok uninstalling the music mod fixes all the issues
Phew!
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-11 07:20:46
Well I was fiddling with Naudio and managed to get the Overture ogg file to play. I'm unsure about the portability. I'm gonna D/L ubuntu and install in vm. To see if it works. Looks like I need to make a helper class to enable looping. Just wanna see if it works in linux first before i put more effort into it :P

Man Virtualbox is going slow. I think it's the hard drive slowing it down. I didn't wanna use my ssd space, but it's maxing out my hard drive speed lol.

Maybe it's because I was only giving it 1 core and 1gb of ram. it was probably chocking it's self going in and out of the virtual memory/swap.

Yep that fixed it. I sat here for like an hour watching apt-get stuck on something lol

I was thinking that the instructions line "apt-get install mono" should be changed to a link for https://www.monodevelop.com/download/#fndtn-download-lin (https://www.monodevelop.com/download/#fndtn-download-lin) at least for me mono isn't a package. after adding the repository the package it told me to install was mono-devel.

Maybe need to add "sudo apt-get install monodevelop" to instructions
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-11 19:10:16
I got some audio playing in linux but it's all distorted for some reason. I am loading the entire ogg into a byte array to add to a sound effect. I heard something but it's noisey, lots of static.

Okay after much time. I found the answer on a form for what i thought was the problem and issue solved.
https://stackoverflow.com/questions/31957211/how-to-convert-an-array-of-int16-sound-samples-to-a-byte-array-to-use-in-monogam/42151979#42151979 (https://stackoverflow.com/questions/31957211/how-to-convert-an-array-of-int16-sound-samples-to-a-byte-array-to-use-in-monogam/42151979#42151979)

I'm unsure what the other sounds format is but i might run the bytes through this function and see if the distortion goes away for those.

I didn't know WaveFormatConversionStream.CreatePcmStream() was there. I just attempted to stick it in but it didn't like the vorbis source. So i guess we stick with the current version for now.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-03-12 19:10:46
I got some audio playing in linux but it's all distorted for some reason.

It's expected behaviour- I am not converting ADPCM to PCM stream due to NAudio compatibility issues with Linux- instead I'm forcing to play compressed sound.
I'll be moving to FFMpeg soon- that will solve this problem

I am loading the entire ogg into a byte array to add to a sound effect.

Vorbis OGG is also a compression format, just like adpcm. They both need conversion to basic stream, which FFMpeg will be capable of this.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-12 21:09:30
It's expected behaviour- I am not converting ADPCM to PCM stream due to NAudio compatibility issues with Linux- instead I'm forcing to play compressed sound.
I realized all this after a while. I spent a lot of time trying too google a way to convert the adpcm to pcm. Just kept finding the function that you already were using in windows. I actually thought I fixed it by removing waveout from the equation. Till I went to check again last night and i then realized I was looking at the wrong function as the problem.  I was thinking of comparing the bytes of the pre and post converted audio. *shrugs*.
Quote
Vorbis OGG is also a compression format, just like adpcm. They both need conversion to basic stream, which FFMpeg will be capable of this.
Naudio.Vorbis uncompesses the audio to a 32-bit float WaveStream. I found a function to convert it to 16 bit. So the ogg music is playing and looping in Windows and Linux.
Quote
I'll be moving to FFMpeg soon- that will solve this problem
Sounds good. I was thinking of finishing up the ogg music playing stuff. It works like the directmusic stuff. So I was going to setup my code to mirror what you have there.
I'm sorry for these posts. I was figuring things out as I went. I shoulda came back and edited more as I figured things out.

--- edit---
For some reason the loop is not working correctly at least not on all the files... I'm 99% sure my code is correct but on '512 The Loser.ogg' it's obvious that STARTLOOP is being ignored. So it is looping the whole sound effect. So I look forward to ffmpeg.

symbolNames in module-field_debug doesn't seem to be working. Just a black screen. i'm getting string[1] with a lot of 0 values. On testbl3 it gives a out of range exception on the line of
Code: [Select]
epe[i].labelASM = symbolNames[epe[i].label];"C:\\ff8\\Data\\eng\\FIELD\\mapdata\\te\\testbl3\\testbl3.sy" I guess this is supposed to be a bunch of strings. It's many 0 and 255 values instead. I was getting a lot of index out of range errors when it was trying parse it.
I uncommented statupscript and started seeing images. with some exceptions which might be why it was commented :P

I'm looking at the diffs in github's app might try to commit tonight.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-13 02:39:18
For some reason the loop is not working correctly at least not on all the files... I'm 99% sure my code is correct but on '512 The Loser.ogg' it's obvious that STARTLOOP is being ignored. So it is looping the whole sound effect. So I look forward to ffmpeg.

<

Are you sure?  LOOPSTART should be absent when you don't want a loop.  LOOPSTART=0 will loop from start.

I just found the reason OpenAL is ignoring LOOPSTART and LOOPLENGTH. Monogame has a variable to set for LOOPSTART but it just doesn't do anything. Though if I set LOOPLENGTH it throws an exception. heh.
https://github.com/MonoGame/MonoGame/issues/5186 (https://github.com/MonoGame/MonoGame/issues/5186)



--edit--
there was a commit to attempt to fix. now I'm wondering if it's using openal. or if the commit is live in the version i'm using.
https://github.com/MonoGame/MonoGame/commit/b749c4568edd73fde7e25a4c829d759a8ff5db9d (https://github.com/MonoGame/MonoGame/commit/b749c4568edd73fde7e25a4c829d759a8ff5db9d)

--edit--
I think all opengl projects default to using openal for audio via these functions. The function where I set the LOOPSTART -> http://www.monogame.net/documentation/?page=M_Microsoft_Xna_Framework_Audio_SoundEffect__ctor (http://www.monogame.net/documentation/?page=M_Microsoft_Xna_Framework_Audio_SoundEffect__ctor)
I'm done messing with this for now.  :P

--
just going to fiddle. I was thinking I might be able to do the ingame menus just need to learn how more of the things these classes work.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-14 14:55:24
I started messing with ffmpeg last night. I found some src for the goal i think in c++.
Mainly just was trying to add audio to the video player you made to see how good it would work.
I am stuck on one line of the c++ that I can't seem to find the correct cast for one of the variables.
I don't know if the lines below this will work till I get this line functional.
code i'm referencing.
https://github.com/gavv/snippets/blob/master/decode_play/ffmpeg_decode.cpp (https://github.com/gavv/snippets/blob/master/decode_play/ffmpeg_decode.cpp)
line i'm having trouble with.
Code: [Select]
       // convert input frame to output buffer
        int got_samples = swr_convert(
            swr_ctx,
            &buffer, out_samples,
            (const uint8_t **)frame->data, frame->nb_samples);
frame->data is the issue. it's throwing an error cannot cast byte_ptrArray8 to byte **.
I'm using ffmpeg.autogen from the NuGet. And the newest ffmpeg 32bit dlls.

Gonna take a break and watch some anime.

--- edit
Code: [Select]
#define AV_NUM_DATA_POINTERS   8
uint8_t * data [AV_NUM_DATA_POINTERS]// pointer to the picture/channel planes.
https://www.ffmpeg.org/doxygen/2.6/structAVFrame.html (https://www.ffmpeg.org/doxygen/2.6/structAVFrame.html)
https://www.ffmpeg.org/doxygen/3.0/frame_8h.html (https://www.ffmpeg.org/doxygen/3.0/frame_8h.html)
if i were to make it in c#, i think it would look like
Code: [Select]
byte*[] data = new byte*[8]; so I did make one of those and copied that data one byte at a time to it. But then I couldn't make byte*[] into byte**;
*shugs*
------
I might of got past this part.. there is a extended_data variable. Which I think is the same thing but it's a byte** instead of the other.

So now it's just getting all this data into a form i can play it back.
----
PROGRESS!! :D sound at last!

Sound is playing but it's not in the correct format so it's sounding like garbage :P. So I just need to get the code working that converts the sound to 16bit pcm.

i might be celebrating too early after converting and it still sound bad i'll know :P
====
well I think I was just getting random garbage to play.
swr_convert is returing a -22 didn't notice it at first. I found the errorcode function and turns out that is invalid argument. So I don't think it likes extended data.
I sware i tried using fixed before... It still isn't working but i am sending data.
Code: [Select]
byte*[] a = frame->data;
                int frame_count=0;
                fixed (byte** b = a)
                {
                    frame_count = ffmpeg.swr_convert(swr, (byte**)&buffer, frame->nb_samples, b, frame->nb_samples);
                    if (frame_count < 0)
                        throw new Exception($"{frame_count} - {averror(frame_count)}");
                }
------
I got rid of that error finally. I guess I had a issue with my swr context. Or the channel_layout was 0. I changed both. :P
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-18 14:25:41
I guess we could ignore the last post now. I made a class to deal with ffmpeg stuff. It's using the newer API. I still need to finish audio. I redid the current video functionality that Aforge did, with color corrected I think. At least for me the video had Red and Blue switched. Some issues with linux that should be able to be worked out per the FFmpeg.Autogen github. So now I will go back to audio and try to get that going. After I look at some Java for a friend.

Audio should be a drop in the bucket now as the video code is known good. I just need to tell it give me the audio and tada, I hope.

I've committed everything locally. I think I need permission on Github to submit to you. It should probably go in it's own branch to prevent messing anything you are working on.

For fun: I added the squaresoft logo to the front of overture. The intro movie to new game.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-03-18 14:39:25
I've committed everything locally. I think I need permission on Github to submit to you. It should probably go in it's own branch to prevent messing anything you are working on.

You can fork the repository and create a pull request:
https://github.com/MaKiPL/OpenVIII/pulls
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-18 21:36:52
There a pull request :D

I just noticed there might a issue if RaW isn't installed. I forgot to check if the folder existed.
 I just did a commit to fix on my fork. Do I do another pull request or just wait till I've done more?

I'm gonna eat dinner. then mess with the ffmpeg audio some.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-19 07:28:05
Okay Testing with eyes_on_me.wav is successful. Reads it without resample and with.

tested video.
So sound is working, as in is not distorted but it is ending prematurely
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-03-19 10:24:38
Great job! I have merged the commits. Everything looks great. I'll make sure to add you as an collaborator soon
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-19 22:47:39
I feel like I'm missing something on this ffmpeg audio resampler. Decided to try posting to https://stackoverflow.com/questions/55250865/ffmpeg-swr-convert-audio-to-raw-16-bit-pcm-to-be-used-with-xna-soundeffect-au (https://stackoverflow.com/questions/55250865/ffmpeg-swr-convert-audio-to-raw-16-bit-pcm-to-be-used-with-xna-soundeffect-au) I haven't posted on stackoverflow since 2013. lol

I followed someone's code and made a audio converter but depending on what you asked it to make it would work or not. And I didn't know why. :P I was thinking if i could make it work it'd help with my issues over on this project. Like disc00_30h.avi to mp3 worked fine. But ogg skipped ahead every few seconds and wav does the same thing my code was doing-- plays 18 seconds and stops.

I'll keep fiddling. Maybe someone will have an answer on stackoverflow or I'll figure it out :P

Just fixed the code for the little audio converter so wav is working in that, after fixing that ogg is playing fine now too. I should be able to take parts of this and put them in my class and it work after that. Though this is setup to write the files to the drive and it uses the deprecated api.

I'm not sure I thought decoding and resampling would be good enough for playback. Maybe I do actually need to encode it.

I kinda wish we could do one frame of audio at a time like we do with video. I think it would work if we could queue up samples. Right now the approach I'm doing is process it all load it all into ram and play. This adds some lag to the start of video playback.
---
Did two tests with using the audio converter to take disc03_06h.avi to wav and s16le (signed 16 bit le pcm) both of those files played in sound effect. so I'll continue adding the encoder to the class.

---
update today. I got a partial success today. It's outputting wave files. But there's something wrong with them and sound effect will not load the files. I think it could be because I am mixing API's
per ffmpeg documentation the new api should not be used with old. So either I'm decoding the files incorrectly because this resample/encode code should be correct. Or it's not working because of the two apis conflicting. So i'm gonna do some more tests. using the code in a separate program that just only does this one thing update the code.

---
update
so I updated the audio converter app to the new api. I think the issue is my decoder code is faulty. I kinda rewrote that in the audio converter app when i updated the api. so back to porting code over. to the project. and hopefully the bugs go away. :P
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-21 01:46:23
Sounds kinda. Currently the code is messy. It writes a <filename>.pcm to your %temp% folder. Then reads it into MemoryStream->SoundEffect. And it plays. I did notice our fps counter might need tweaked. The intro movie video was about 10 or so seconds behind the audio. Now that I have code that works I can tweak it to remove the need for a file. I am thinking for the fps I can maybe store the current framenumber and total frames. Using that I can see if we are behind or ahead and adjust via some math.

---
Update sound is work 100% reads the raw audio right into the memory and plays it.
Fixed the sync issue. I made a function that starts a StopWatch right before playing the audio. Then before it draws the frame it checks for Correct frame or Ahead a frame. And added a frame skip bool that checks if the player is Behind. The stopwatch is reset when stopaudio is called.

Though somewhere in this unsafe code is memory leak(s). I been trying to track some of them down. I added right and left to the movie player in debug mode. So while a movie is playing I can switch to the next or prev movie. And I noticed the memory usage go up as I was holding down the arrow. to the point it would throw an exception around 1gb.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Yagami Light on 2019-03-23 08:50:11
I'd recommend increasing the movement speed on the world map segment, takes too long to explore.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-03-23 09:18:25
I'd recommend increasing the movement speed on the world map segment, takes too long to explore.
Maybe I could add the plus and minus keys as a throttle.

Sent from my Pixel XL using Tapatalk

Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-04-01 12:04:30
(https://i.postimg.cc/NMJ8FKf4/jjpg.jpg)
Good news. We got the monsters more-or-less working:
(https://i.postimg.cc/dQRk5kKS/ezgif-com-optimize.gif)
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-04-01 13:54:49
I updated my fork to be current and saw monsters on the battle screen lol

I just did a small update to add speed controls per Yagami Light's request. For the FPS camera in worldmap and battlemap.

+,-,*
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Yagami Light on 2019-04-01 14:31:16
Monsters looks so cool, I downloaded the new version but I get exception skipping to main menu

System.BadImageFormatException: 'Could not load file or assembly 'DirectMidiNet, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.'
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-04-01 15:05:58
Monsters looks so cool, I downloaded the new version but I get exception skipping to main menu

System.BadImageFormatException: 'Could not load file or assembly 'DirectMidiNet, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.'
Make sure you are on 32 bit. Midi doesn't work on 64 bit
----------
I just updated, to add a flag for 64 bit so we can quarantine the code that doesn't work in 64bit. So shouldn't get the exception anymore, just won't have midi if not on 32 bit.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Yagami Light on 2019-04-03 18:43:35
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.'
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-04-03 19:43:53
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]
#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
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-04-03 22:51:26
one thing you could do with that D:/out.dat is change it to use
Code: [Select]
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:
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-04-15 21:55:32
finally!
(https://cdn.discordapp.com/attachments/552838120895283210/567459065588875264/unknown.png)

and once again- big shoutout to amazing people contributing to project. You're doing extremely good job, I'm impressed!
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-04-15 22:23:51
Nice :D
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: hay on 2019-04-16 20:54:39
Cool idea.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-01 02:46:26
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]
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.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-01 18:07:40
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.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-02 01:40:11
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]
[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
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-02 05:31:26
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]
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.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-02 11:49:54
Here's the disk tree (spoiler instead of code to keep the base message short)
Spoiler: show

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
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-02 12:55:26
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?
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-02 13:40:58
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:
Spoiler: show

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."
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-02 14:26:49
Looks like to get the movies you need to use http://mirex.mypage.sk/index.php?selected=1 < unmass tool referenced in http://forums.qhimm.com/index.php?topic=4114.msg55983#msg55983. 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
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-02 16:24:44
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?
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-02 17:52:02
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
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-02 18:30:35
Maki has https://github.com/MaKiPL/FF8-Rinoa-s-Toolset that might open the pak files. yes under Tools>Movie Extractor .PAK
Success!! Though there's nothing to suggest what the extracted filenames should be, just a sequential ID number of the movie within the PAK file.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-02 18:41:02
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.

Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-02 19:07:10
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 ;)
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-02 19:31:17
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.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-03 03:46:16
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.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-03 09:40:55
The warnings are just wip code. Like I recently uncommented a large struct in saves that I haven't implement yet. Because it's hundreds of variables. Black screen should be a movie playing the squaresoft logo then the overture starts playing. Then main menu. You can press enter to skip parts. I'm going to work. Have a good day.

Sent from my Pixel XL using Tapatalk

Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-04 01:10:18
Ok... seems there really is a problem with my build beyond missing movies.  Behind the black box was an "FF8 has stopped working" error box.  Info inside it:
Code: [Select]
Problem signature:
  Problem Event Name: CLR20r3
  Problem Signature 01: FF8.exe
  Problem Signature 02: 1.0.0.0
  Problem Signature 03: 5ccbb555
  Problem Signature 04: FF8
  Problem Signature 05: 1.0.0.0
  Problem Signature 06: 5ccbb555
  Problem Signature 07: 8
  Problem Signature 08: 7e
  Problem Signature 09: System.Exception
  OS Version: 6.1.7601.2.1.0.256.48
  Locale ID: 1033
  Additional Information 1: 0a9e
  Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
  Additional Information 3: 0a9e
  Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

Read our privacy statement online:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
  C:\Windows\system32\en-US\erofflps.txt

Hopefully there's something in there to tell whether I have a build setting wrong, or if it's another CD vs. Steam issue.  In the meanwhile, I used Rinoa's TS to map out the BIK movies (there are no CAM), and came up with this:
Disk 1
Spoiler: show
1   Intro to Balamb Garden
2   Meeting Quistis
3   Meeting Zell
4   Skiffs attacking Dollet
5   Meeting Selphie
6   Dollet sat dish activation
7   ATM crushes the happy car
8   ATM trashes the town, ‘til Quistis puts it down
9   Squall and Rinoa meet
10   Come dance with me, you’ll love it!
11   Insertion of Timber Owls’ train cars
12   Separating with the President’s car
13   TV station fade-out
14   Someone knocked over the camera
15   Intro to Galbadia Garden
16   Meeting Irvine
17   Escalator up to Galbadia town square
18   Meeting Edea
19   Edea approaches the podium
20   Edea’s fast zoom-out to town square
21   Stone lizards are real lizards, didn’ja know?
22   The parade begins
23   The parade continues
24   Seifer’s on that float!!
25   The clock tower rises
26   Trapping Edea
27   Sending the signal
28   Squall attacks…
29   … and Seifer’s waiting
30   Sub-Zero wins.  Flawless victory.
31   Opening movie

Disk 2
Spoiler: show
1   Moving prison cell canisters
2   View of the desert prison
3   Retracting the walkways
4   Gooooiiinnggg down!
5   Fire ze missiles!
6   Missile launchers go boom
7   The base also goes boom
8   Missiles in the cloudy sky
9   Missile wing, skim the seas
10   BalGard controls activate
11   BalGard energizes
12   The missiles miss, BalGard survives
13   The missiles hit… Redo from save?
14   BalGard gliding over the plains, without Rinoa
15   BalGard gliding over the plains, with Rinoa
16   BalGard runs over Ma Dincht’s
17   BalGard takes to the seas
18   Time for an ocean rest
19   Meeting the White SeeD ship
20   Crashing into FH
21   Mirrored coliseum
22   GalGard spotted
23   Galbadians scare off Bambi
24   Galbadian lawnmower
25   ShinRa motorcycles, hasshin!!!
26   Glancing blows to the gardens, Rinoa falls down
27   GalGard grinds the side
28   GalGard lines up for another pass
29   GalGard lined up and crashing in
30   ShinRa mobile infantry, launch!
31   GalGard really needs to learn how to drive
32   BalGard counter-crashes
33   Someone deploys the emergency slide
34   Squall rescues Rinoa

Disk 3
Spoiler: show
1   Esthar becomes visible
2   Taking the panel tram into Esthar
3   Esthar rent-a-car
4   Returning Esthar’s car
5   Magic carpet ride
6   Now arriving at gate…
7   Capsule arrives at…
8   Railguns shoot us into space
9   Orbit achieved
10   Catching capsules
11   Sir… the moon!!!
12   Spysat takes more pics
13   Pandora visits town
14   Pandora lines up for activation
15   Lunar cry begins
16   Adel awakens
17   Escape the station!
18   Rinoa’s foggin’ the glass
19   Getting sleepy…
20   How about I take a nap?
21   Is that going to be my wedding ring?
22   Skroob agrees, nothing like Perri-Air
23   The cry in full effect
24   Squall and Rinoa see the Ragnarok
25   Ragnarok tumbling
26   Boarding Ragnarok
27   You will not turn my girl into a popsicle
28   Ragnarok gunning for Pandora
29   Full speed ahead, Ragnaroks
30   All weapons, keep firing!
31   The cry has landed
32   Pretty blue globe, monsters move in

Disk 4 (which I think is missing a ton, most notably the "Game Victory" and closing credits FMVs)
Spoiler: show
1   Seifer introduces Rinoa to Adel
2   Time compression aquarium
3   Ultimecia’s castle
4   Meeting Ultimecia?
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-04 02:28:02
I read that there was low res and high res movies. I wonder if some videos only have the low res versions on the disc.  at least from what i see of the first 3 discs things look pretty similar to the steam version. The cam data might not be needed as we currently aren't using it.

I might put that list into the code to make it easier to tell which movie is what. :)

Now for some stabs in the dark since I'm unsure why it's not working I'm gonna list some ideas.

One thing I was wondering is if you had all the required libraries installed. I assumed you did or else it wouldn't let you build I think. If you goto Tools > NuGet Package Manager >  Manage NuGet Packages for solution. You should have:
Code: [Select]
FFmpeg.AutoGen v4.1.0.4
MonoGame.Framework.DesktopGL v3.7.1.189
MonoGame.Framework.DesktopGL.Core v3.7.0.7
MonoGame.Framework.OpenGL v3.7.1.189
NAudio v1.8.5
NAudio.Vorbis v1.0.0
NVorbis v0.8.6

Maybe you could put a breakpoint in Game1.cs maybe at the start of Initialize(). Just see to if the code fails right at the start or if it stops at a certain point. I'd step over stuff at first to see how far you get than step into a function it crashes on. Assuming it lets ya.

https://stackoverflow.com/questions/4052770/deciphering-the-net-clr20r3-exception-parameters-p1-p10 has some info how to read those CLR20r3 messages. I am unsure if I can run the command on my FF8.exe or if i'd need your build to see the issue.

Might be worth trying to Build -> Clean Solution.

lol it's late i should get going.

Maybe Maki will have some ideas when they get back.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-04 02:57:14
Quote from: Sebanisu
I read that there was low res and high res movies. I wonder if some videos only have the low res versions on the disc.  at least from what i see of the first 3 discs things look pretty similar to the steam version. The cam data might not be needed as we currently aren't using it.
Rinoa's Toolset just lists a ton of ID+offset+length, and has buttons to extract either the high res or low res.  Only four videos are listed in the disk4.pak file, so something must be different about it compared to the other three that's confusing the extractor.

Quote from: Sebanisu
One thing I was wondering is if you had all the required libraries installed. I assumed you did or else it wouldn't let you build I think. If you goto Tools > NuGet Package Manager >  Manage NuGet Packages for solution. You should have:
Code: [Select]
FFmpeg.AutoGen v4.1.0.4
MonoGame.Framework.DesktopGL v3.7.1.189
MonoGame.Framework.DesktopGL.Core v3.7.0.7
MonoGame.Framework.OpenGL v3.7.1.189
NAudio v1.8.5
NAudio.Vorbis v1.0.0
NVorbis v0.8.6
All libraries and versions match.  Any way to make sure I didn't forget to include some piece of VS itself?  I just mashed the options that seemed to make the most sense, so it's entirely possible that something did get left out at the IDE level rather than the imported libraries.

Quote from: Sebanisu
Maybe you could put a breakpoint in Game1.cs maybe at the start of Initialize(). Just see to if the code fails right at the start or if it stops at a certain point. I'd step over stuff at first to see how far you get than step into a function it crashes on. Assuming it lets ya.
You'll have to feed me the code... I remember what a breakpoint is/does (we used them in my M6800 assembly class), but I have no idea how to insert them with C# (which hadn't been invented yet)

Quote from: Sebanisu
lol it's late i should get going.
Indeed... I've been told I'm taking the littles to some sort of kite flying thing tomorrow.  Hopefully there'll at least be some degree of wind...
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-05-04 08:57:15
what really confuses me is why you receive such generic-looking error on debug builds
A few questions:
Which operating system are you on?
You mention VS, which version you use?

C# is perfect for debugging due to JIT technology. I'll show you some instructions for VS2017:
First choose valid build configuration for your operating system:
(https://content.screencast.com/users/MarcinGomulak/folders/Snagit/media/95447705-9bc5-44b4-9e2b-139757d3a91d/05.04.2019-10.38.png)
Naturally I'm on Windows so I'm choosing WindowsDebug


(https://content.screencast.com/users/MarcinGomulak/folders/Snagit/media/fbd07db3-5836-4893-b924-89d94dd52c55/05.04.2019-10.44.png)
Now, there is one remaining option: x86 and x64 (green arrow). There's no much difference other than that x64 does NOT use the crappy direct DirectSound wrapper (I mean wrapper is cool, but whole DirectSound is NO-NO as of today). For maximum stability I recommend choosing x64.
Now simply hit "Run" (red arrow) and before the game will shit itself the code will show exactly why, where and what's wrong

The same behaviour applies to MonoDevelop. Choosing build to DebugLinux, choosing either x86/x64 (doesn't matter here, DirectSound is disabled anyway on Linux) and hitting 'Debug...' or something like this, don't really remember now
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-04 09:07:12
Oh to make a breakpoint you need to click the area to the left of a line number. If you did it right a red circle will show up. Then the debugger will stop there when it is about to run that line.

Sent from my Pixel XL using Tapatalk

Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-04 13:50:05
Quote from: Maki
what really confuses me is why you receive such generic-looking error on debug builds
A few questions:
Which operating system are you on?
You mention VS, which version you use?
OS - Win7 Pro x64 inside Virtualbox 6.0.6 (video "card" is VBoxVGA... the new VBoxSVGA, while supposedly better, doesn't support OpenGL 2 at all, and hasn't been very good with DirectX either)
VS 2017 Community

Quote from: Maki
I'll show you some instructions for VS2017
Your screenshots made it obvious... I'm still a noob when it comes to IDEs and was doing it all wrong ;)  I had been hitting \Build\Build Solution, then taking the (supposedly successful) results and dropping those in my FF8 folder.  Hitting 'Start' within VS is a bit more useful... the crash (even without breakpoint) appears to be happening in ArchiveWorker.cs line 25, looking for C:\Games\FF8\Data\Data\menu.fi. https://imgur.com/a/F2fNjBK (https://imgur.com/a/F2fNjBK)

Edit:  Here's my file structure after extracting all the movies:
Spoiler: show
Folder PATH listing
Volume serial number is 20FB-C599
C:\Games
|   newtree.txt
|   
+---FF8
    |   app.log
    |   binkw32.dll
    |   Chocobo.exe
    |   eax.dll
    |   EAXUnified.exe
    |   ff7_opengl.cfg
    |   ff7_opengl.fgd
    |   ff7_opengl.reg
    |   FF8.exe
    |   FF8Config.exe
    |   ff8input.cfg
    |   ff8_opengl.cfg
    |   FF8_Patch12.txt
    |   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
    |           
    +---direct
    |   +---battle
    |   +---char
    |   +---chocobo
    |   +---coaster
    |   +---condor
    |   +---cr
    |   +---disc
    |   +---flevel
    |   +---high
    |   +---magic
    |   +---menu
    |   +---midi
    |   +---moviecam
    |   +---snowboard
    |   +---sub
    |   +---world
    +---mods
    +---movies
    |   +---disc01
    |   |       01.bik
    |   |       02.bik
    |   |       03.bik
    |   |       04.bik
    |   |       05.bik
    |   |       06.bik
    |   |       07.bik
    |   |       08.bik
    |   |       09.bik
    |   |       10.bik
    |   |       11.bik
    |   |       12.bik
    |   |       13.bik
    |   |       14.bik
    |   |       15.bik
    |   |       16.bik
    |   |       17.bik
    |   |       18.bik
    |   |       19.bik
    |   |       20.bik
    |   |       21.bik
    |   |       22.bik
    |   |       23.bik
    |   |       24.bik
    |   |       25.bik
    |   |       26.bik
    |   |       27.bik
    |   |       28.bik
    |   |       29.bik
    |   |       30.bik
    |   |       31.bik
    |   |       
    |   +---disc02
    |   |       01.bik
    |   |       02.bik
    |   |       03.bik
    |   |       04.bik
    |   |       05.bik
    |   |       06.bik
    |   |       07.bik
    |   |       08.bik
    |   |       09.bik
    |   |       10.bik
    |   |       11.bik
    |   |       12.bik
    |   |       13.bik
    |   |       14.bik
    |   |       15.bik
    |   |       16.bik
    |   |       17.bik
    |   |       18.bik
    |   |       19.bik
    |   |       20.bik
    |   |       21.bik
    |   |       22.bik
    |   |       23.bik
    |   |       24.bik
    |   |       25.bik
    |   |       26.bik
    |   |       27.bik
    |   |       28.bik
    |   |       29.bik
    |   |       30.bik
    |   |       31.bik
    |   |       32.bik
    |   |       33.bik
    |   |       34.bik
    |   |       
    |   +---disc03
    |   |       01.bik
    |   |       02.bik
    |   |       03.bik
    |   |       04.bik
    |   |       05.bik
    |   |       06.bik
    |   |       07.bik
    |   |       08.bik
    |   |       09.bik
    |   |       10.bik
    |   |       11.bik
    |   |       12.bik
    |   |       13.bik
    |   |       14.bik
    |   |       15.bik
    |   |       16.bik
    |   |       17.bik
    |   |       18.bik
    |   |       19.bik
    |   |       20.bik
    |   |       21.bik
    |   |       22.bik
    |   |       23.bik
    |   |       24.bik
    |   |       25.bik
    |   |       26.bik
    |   |       27.bik
    |   |       28.bik
    |   |       29.bik
    |   |       30.bik
    |   |       31.bik
    |   |       32.bik
    |   |       
    |   +---disc04
    |           01.bik
    |           02.bik
    |           03.bik
    |           04.bik
    |           
    +---plugins
    |       ff7music.fgp
    |       ffmpeg_movies.fgp
    |       vgmstream_music.fgp
    |       
    +---Save
    |   +---Slot1
    |   |       save01
    |   |       
    |   +---Slot2
    +---shaders
            bloom2.post
            main.frag
            main.vert
            yuv.frag
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-04 16:27:33
Remember I altered the main directory to the ff8 folder since it's failing to find something in data\data check your windows location cs to make sure the location you added didn't end with data. If you hadn't added anything maybe, I forgot to remove data from the registry reading part.

What is you running the VM in? This will run on Linux if you want to copy the files out of your VM and use monodevelop to compile it.

Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-04 16:33:39
Yep it was me, line 37 in windows location cs file. I forgot to remove ,"data" from that line.

Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-04 16:34:17
-- Duplicate post-- was having mobile data issues.

Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-04 18:43:37
Quote from: Sebanisu
What is you running the VM in?
The host OS is Win10 Pro x64, currently on build 1809.  I generally play older games within a VM rather than with "compatibility mode"... just seems to work out better having things run on an OS contemporary with their release.  My first couple attempts at FF7 plus 7th Heaven were... educational(?)... and having snapshots to revert back to saved a lot of headache compared to trying to manually clean out the registry.


Quote from: Sebanisu
Yep it was my line 37 in windows location cs file. I forgot to remove ,"data" from that line.
I see
Code: [Select]
String dataPath = Path.Combine(installLocation, "Data"); //no lang-en on cd version. at that location... not sure if I can just null out the 'Data' portion, or if that'll make the Path.Combine function choke.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-04 19:15:11
Remember I altered the main directory to the ff8 folder since it's failing to find something in data\data check your windows location cs to make sure the location you added didn't end with data.
I also forgot to put C:\Games\FF8 back in at line 50 after doing a fresh clone, so oops on both of us.  Anyways, put that back in, and new error @line 122 of Strings.cs : Access to the path 'd:\MNGRPdump.txt' is denied.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-04 20:16:29
You can comment out the dump lines. They are for debugging. They are located in memory.cs in the init() method. I checked if d: existed but didn't check if it was writeable. It's probably your CD drive. Heh. Those lines basically export all the strings so I can make sure things are processing correctly. Comment by putting // in front of those lines. I'll tweak stuff when I am home.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-05 01:31:17
I made the changes we talked about today. Pull the new code and see if you can get farther now.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-05 02:18:28
Definite progress... Even without putting in the manual hard-coding of C:\Games\FF8, the intro began to play (sans sound) and I got to the main menu.  Upon choosing the 'Open VIII debug tools' option, I got an unhandled exception in DirtyEncoder.cs, line 67.
Code: [Select]
System.NullReferenceException: 'Object reference not set to an instance of an object.' value was null.
Identical errors (in other locations) if I attempt to start a new game or load a saved one.  I knew those options wouldn't work, but thought it might be helpful in figuring out why the debug won't load.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-05 02:31:59
That's odd. Can you see what is on the stack when it gives the exception? https://docs.microsoft.com/en-us/visualstudio/debugger/how-to-use-the-call-stack-window?view=vs-2019 the idea is something is sending null to the dirtyencoder and it's throwing an error. So I need to make the encoder handle null better and I need to know what is sending null to it. The stack shows all the commands being executed in a first in, last out order. So it'll show what lines started this chain of events. I have a few ideas of what it could be. Just desire more info.

Sent from my Pixel XL using Tapatalk

Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-05 02:51:25
I think this is what you asked for: https://imgur.com/E7psnHq
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-05 03:06:45
I think this is what you asked for: https://imgur.com/E7psnHq
Yep. I'll work on it tomorrow night.


Did a small fix before work. I forced the values in that area to send null to it and got the same exception and added a null check to length. So it returns 0 instead of throwing an error.

I was wondering, some of those lines of text have a : with something after it. the ones that were sending null will have nothing after the :. Which ones is it?

Anyhow have a good day.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-06 02:20:40
I was wondering, some of those lines of text have a : with something after it. the ones that were sending null will have nothing after the :. Which ones is it?
I honestly don't understand the question since there's no : punctuation in my screenshot :(

Unrelated noob question: In VS 2017, if I want to download all the latest changes being made, but not attempt uploading, is 'Sync' the correct button to press?  I've been nuking the entire repo and cloning from fresh (inefficient, but at least it ensures I don't screw up anything!)
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-06 02:27:55
You were getting the exception when going to the Debug menu inside the running OpenVIII is what i meant. I kinda wanted to know what was missing maybe a screenshot.

When you goto Sync there's Fetch and Pull. Fetch checks for updates and Pull gets the newest code. I think, I have been using the GitHub gui. And sometimes don't pay attention to what the words on the buttons are.  :P
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-06 02:33:01
Ok... either I did it wrong (again), or Maki broke something earlier today?  Got this error just after attempting a fresh run to test out your null->0 changes:
Code: [Select]
1>------ Build started: Project: FF8, Configuration: Debug x64 ------
1>  C:/Users/Simplisafe/Source/Repos/MaKiPL/OpenVIII/FF8/Content/Shadow.png
1>C:/Users/Simplisafe/Source/Repos/MaKiPL/OpenVIII/FF8/Content/Shadow.png : error : Importer 'TextureImporter' had unexpected failure!
1>  System.DllNotFoundException: Unable to load DLL 'FreeImage': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
1>     at FreeImageAPI.FreeImage.GetFileType(String filename, Int32 size)
1>     at FreeImageAPI.FreeImage.LoadEx(String filename, FREE_IMAGE_LOAD_FLAGS flags, FREE_IMAGE_FORMAT& format)
1>     at Microsoft.Xna.Framework.Content.Pipeline.TextureImporter.Import(String filename, ContentImporterContext context)
1>     at Microsoft.Xna.Framework.Content.Pipeline.ContentImporter`1.Microsoft.Xna.Framework.Content.Pipeline.IContentImporter.Import(String filename, ContentImporterContext context)
1>     at MonoGame.Framework.Content.Pipeline.Builder.PipelineManager.ProcessContent(PipelineBuildEvent pipelineEvent)
1>C:\Program Files (x86)\MSBuild\MonoGame\v3.0\MonoGame.Content.Builder.targets(84,5): error MSB3073: The command ""C:\Program Files (x86)\MSBuild\MonoGame\v3.0\Tools\MGCB.exe" /quiet /platform:DesktopGL /@:"C:\Users\Simplisafe\Source\Repos\MaKiPL\OpenVIII\FF8\Content\Content.mgcb" /outputDir:"bin\DesktopGL\Content" /intermediateDir:"obj\DesktopGL\Content"" exited with code 1.
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-06 02:55:23
Looks like if i'm reading this correctly the FreeImage.dll is in a c++ redistributable pack. https://www.microsoft.com/en-us/download/details.aspx?id=40784  http://community.monogame.net/t/monogame-noob-unable-to-load-freeimage/6255

Monogame probably used it for windows and uses something else on linux. It's because maki is loading a png for putting a shadow under characters. If you installed a texture pack for high res menu graphics it would probably had the same error.

Might need to add this to the readme if it works for you.

Though it does seem linux is broken :P I fixed the linux bug on my fork, but in the middle of building a ingame menus so no need to commit right now :)
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-05-06 16:11:00
Adding the 2013 re-dist got me through the build fail and into the debug menu.  Just got a note that Maki committed a bunch of stuff, so I'll refresh my local repo. Question I should have asked earlier... is there a slack/IRC/discus/whatever so I don't keep spamming the thread?  I'll work on a new Windows (and maybe OpenSuSE since I also use that at home) "Getting started" late tonight or sometime tomorrow so other folks hopefully won't have as steep a curve to get started.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-05-06 16:32:19
There is a room on the discord. You could also comment on an issue on github. I made one related to getting  the CD version working after you posted.

Sent from my Pixel XL using Tapatalk

Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-06-13 14:02:17
some videos!
https://www.youtube.com/watch?v=DRxIvJI1pqE
https://www.youtube.com/watch?v=J9v_CpdkkPY
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Yagami Light on 2019-06-13 19:02:49
The smooth high fps animations look really good, looking forward to seeing more in the future
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Kaldarasha on 2019-07-09 18:11:51
https://www.pro-linux.de/news/1/27233/openviii-final-fantasy-viii-f%C3%83%C2%BCr-linux.html

Now the project.becomes more and more popular, though that article is in German.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-10 19:47:41
SE hates VIII for some reason
[/quote]

because they are damn morons, trust me , there isn't any other reason, but aside of this , can you share your program with us ? with this program we could also modify the spawn conditions and locations of the monsters, in that way we can fight even the bosses like they are normal monsters
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: LordUrQuan on 2019-09-10 19:53:48
O-VIII is nowhere near ready for that.  Right now, it's not much more than a way to view the world map, battle scenes, and menus.  Long ways off before it's something people can actually play the game with, or create mods for.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-10 20:00:13
O-VIII is nowhere near ready for that.  Right now, it's not much more than a way to view the world map, battle scenes, and menus.  Long ways off before it's something people can actually play the game with, or create mods for.

ok, so it is still a prototype, i hope it will be solved as soon as possible
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: gunner_1207 on 2019-09-10 20:12:42
good things come to those who wait, it is an exciting project
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-10 20:18:44
good things come to those who wait, it is an exciting project

yes, like i said i hope it is released soon, final fantasy 9 already have that mod to change the location and so the spawn condition of the monsters , this chapter really waited too much for this , with the possibiltiy to change the location of the bosses we can finally avoid to create thousand saves in order to be able to fight again and again a specific monster like we have to do now
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-09-10 20:34:46
What exactly you want to do, Rick? Change world map encounters, change field encounters, change monster to fight, change how many monsters you fight?
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-10 20:39:13
What exactly you want to do, Rick? Change world map encounters, change field encounters, change monster to fight, change how many monsters you fight?

i will explain for good now: like what you can do with hadesworkshop (a general editor for final fantasy 9 created by trilititi), i want to put all the bosses and the other kind of "one time only-fight" monsters in a piece of the worldmap , for example , i would place all the bosses in the island closest to hell , so with that modification , you will meet only the bosses in that island, and you will encounter them again and again like they are normal monsters
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-09-10 20:55:51
You could d/l the source code and poke around maybe the answer you seek is in there somewhere. But *shrugs*. Maki's been working on this a long time and I started working on it like 6 months ago. And it's a long process :P Who knows how much longer things will take.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-10 21:06:37
You could d/l the source code and poke around maybe the answer you seek is in there somewhere. But *shrugs*. Maki's been working on this a long time and I started working on it like 6 months ago. And it's a long process :P Who knows how much longer things will take.

i see, but the fact that there is already the possibility to inject the program in to the game is already a great step foward, what else is remaining to do ?
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-09-10 22:17:35
It's not injection. This is a whole new engine. And there is a chart on the GitHub page. But alot is not done. I've been working on menus for a while.

Sent from my Pixel XL using Tapatalk

Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-10 22:24:41
It's not injection. This is a whole new engine. And there is a chart on the GitHub page. But alot is not done. I've been working on menus for a while.

Sent from my Pixel XL using Tapatalk

yes i noticed that list of elements contained in the various archivies and the percentage of discoveries about them
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-09-11 09:17:35
yes i noticed that list of elements contained in the various archivies and the percentage of discoveries about them
That's.. not what it means
Anyway, to answer your question- various battle formations are called 'encounters'. There are about 1500 encounters. That means that there are 1500 data entries where you set battle ground (background), where you set active enemies you fight, additional stuff. Now everything uses that ~1500 entries. No matter if you are on worldmap and get into battle or you are on field and get into battle or you run into script battle- it always plays a battle with given index to the 'encounter' data.
The encounters data- the core battle information is in file "scene.out" file in battle.fs

You have to grab archive unpacking tool- if it's remaster, then you would need zzzTool + Deling for unpacking battle.fs- then you would need to use a tool called "Ifrit". If you have steam or PC version from 2000/2013 then skip the 'zzz' part.

zzztool: http://forums.qhimm.com/index.php?topic=19209.0
deling: http://forums.qhimm.com/index.php?topic=13050.0
ifrit: http://forums.qhimm.com/index.php?topic=8741.0

that is for editing the core encounter. If you want to edit which exactly encounter index is played at given worldmap segment, then use Rinoa's toolset: http://forums.qhimm.com/index.php?topic=17064.0
from there unpack wmset.obj, edit the encounters on worldmap, repack, and then again put into battle.fs and zzz if remaster
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-11 11:09:07
That's.. not what it means
Anyway, to answer your question- various battle formations are called 'encounters'. There are about 1500 encounters. That means that there are 1500 data entries where you set battle ground (background), where you set active enemies you fight, additional stuff. Now everything uses that ~1500 entries. No matter if you are on worldmap and get into battle or you are on field and get into battle or you run into script battle- it always plays a battle with given index to the 'encounter' data.
The encounters data- the core battle information is in file "scene.out" file in battle.fs

You have to grab archive unpacking tool- if it's remaster, then you would need zzzTool + Deling for unpacking battle.fs- then you would need to use a tool called "Ifrit". If you have steam or PC version from 2000/2013 then skip the 'zzz' part.

zzztool: http://forums.qhimm.com/index.php?topic=19209.0
deling: http://forums.qhimm.com/index.php?topic=13050.0
ifrit: http://forums.qhimm.com/index.php?topic=8741.0

that is for editing the core encounter. If you want to edit which exactly encounter index is played at given worldmap segment, then use Rinoa's toolset: http://forums.qhimm.com/index.php?topic=17064.0
from there unpack wmset.obj, edit the encounters on worldmap, repack, and then again put into battle.fs and zzz if remaster

i think rinoa's toolset is what i may need, but are you sure that with this i can for example , put omega weapon in the island closest to hell and so encounter it while i walk there? in any case now i will try this procedure , thanks
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-11 11:58:35
also i found the wmset.obj in the "world" archivie , but rinoa's tool set can't open it , it look for the wmx obj , are you really sure that the data of the enemies locations in the world map are in the file you mentioned? and more i watch the options , more that rinoa's toolset don't look like it can do what i want , that program is to mod the textures, not the location of the monsters in the world map , so if i understood correctly please tell me so i will wait untill this new program is ready
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-11 12:18:50
not only that , rinoa's toolset seem only meant to let you watch the textures and the pieces of world map , but you can't actually do anything
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-11 12:21:19
also just in case i will explain again what i want to do: you noticed when you walk in the world map and at some point you start a random battle ? well my interest is to make sure that for example in the island of balamb , instead of meet the lesmazor , i meet the wendigo
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-11 12:31:21
that toolset are only for the graphical modding , it doesn't have nothing that allow to change the location of the enemies in the worldmap , but if i am wrong then please elaborate more the explanation because that program is anything but not intuitive
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-09-11 12:33:20
that program is anything but not intuitive
Yeah- that's why it's archived and no longer developed. I answered on e-mail. I'll record video tutorial for you later this day.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-11 12:41:47
Yeah- that's why it's archived and no longer developed. I answered on e-mail. I'll record video tutorial for you later this day.

ok then , i can't reply directly though the email because the fucking outlook don't even let me veryfy my account , and since i can't verify it , i can't reply from there , so i can tell you from here that i am waiting for that video tutorial so everyone will be able to solve that problem
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-11 13:05:44
but i am curious about something: none forced you to create such a complicate program that forced you to forget about it, then why you make it so complicate ? it would be better for you and everyone else if you make it simple to use
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-11 19:54:12
@Maki hi , so you publisced the video tutorial somewere ? did you read my private messages ?
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: -Ric- on 2019-09-11 20:32:22
Dude...
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: gunner_1207 on 2019-09-11 20:34:20
lol i know right
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-11 20:34:39
Dude...

what ?
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: greator on 2019-09-11 21:06:56
calm down dude. Also try not to double post, you even quadruple posting. Edit your previous post and say what you want to say there, in one post.

One more thing, you are trying to EDIT the existing game. This is not the place (although Maki is nice enough to help you), this thread is for discussion of MAKING the open source game engine. If you have question or a problem, just create a new thread.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-11 21:56:36
Yeah- that's why it's archived and no longer developed. I answered on e-mail. I'll record video tutorial for you later this day.

even if my email can send messages, you can still send me the link for that  video from there
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: greator on 2019-09-12 08:11:05
(https://i.ibb.co/qd1RCVh/Screenshot-20190912-154055.jpg) (https://ibb.co/qd1RCVh)

Did you send me this email? Wow.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: obesebear on 2019-09-12 15:48:51
Rick, bro, you gotta chill out with all the double posting.  It's ridiculous.  If you have something new to say and no one has responded to your original post, you need to edit it, not make a new one.   
Further violations of the forum rules will result in much harsher punishment.
You've been warned.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-12 19:27:24
if none even care to reply then i have no choice but to write another message,  and it isn't double posting because is not the same message, it is a new one, instead of expect ignored people to just suck it up, care to give an answer to what people say or ask , it would solve the problem , unlike what would do an edited previous message that would be ignored
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: -Ric- on 2019-09-12 20:44:24
if none even care to reply then i have no choice but to write another message,  and it isn't double posting because is not the same message, it is a new one, instead of expect ignored people to just suck it up, care to give an answer to what people say or ask , it would solve the problem , unlike what would do an edited previous message that would be ignored

Have you considered that maybe there's a reason why no one is replying to you? No one owes you a response.
What you have been posting about isn't easily doable. There doesn't appear to be a program that you can just open, edit encounters with 2 clicks, save and done. You're going to have to do proper research if you want to get that done this badly.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-12 20:50:25
Have you considered that maybe there's a reason why no one is replying to you? No one owes you a response.
What you have been posting about isn't easily doable. There doesn't appear to be a program that you can just open, edit encounters with 2 clicks, save and done. You're going to have to do proper research if you want to get that done this badly.

what you said mean literally nothing, and whatever you say it already have an answer in my previous comment
Title: .
Post by: d1474796 on 2019-09-12 21:16:16
.
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-12 21:34:52
rick, i'm no staff member, but i think that if you continue with that behaviour, your future here is not exactly bright...

oh don't worry , as long as everyone reply to each other even only to say that they don't have an answer i won't have any need to repeat myself
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Maki on 2019-09-13 08:47:09
@rick - focus now

1. Open Rinoa's toolset and click on this option on image
(https://i.postimg.cc/vmTVQ5nd/tex1.jpg)
2. You are going to open the wmsetus.obj file- on the image you can see the Remaster folder. If it's 2013 steam version, then you would have less files, but still "wmsetus.obj" will be there (I still don't know which version you have :) )
(https://i.postimg.cc/W4yJttmq/tex2.jpg)
3. Whoah! So many new options just became available! and... what!? what is that!? A world map encounters!?
(https://i.postimg.cc/Gtw8JN5c/tex3.jpg)
4. Just open the worldmap encounters and voila! You can edit the encounter in last column
(https://i.postimg.cc/5yBHP3h8/tex4.jpg)
5. Remember to use 'compile and save' option- not close the window. Want to know which encounter is which monster? We got it!
http://wiki.ffrtt.ru/index.php/FF8/Encounter_Codes
Whoah! A whole list!
Want to know which region you are editing? Use 2: World map regions
It's really simple! Just click on the map and the region ID will update! Whoah! you can even edit it and the colours will change immidiately!
(https://i.postimg.cc/J7NGCpFk/tex5.jpg)
6. Now after all editing use the "recompile and save" and you are done! The wmsetus.obj has been edited perfectly!
(https://i.postimg.cc/ZY7XnSXt/tex6.jpg)

and... don't be mean- I saw your post before you edited it ;)
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-13 09:25:40
@Maki i was mad , and thanks for the explanation :D ,  this mod solve many problems , but if the region ID is the second on the left in that colum , what are the ID on the left, for example , in case of the island closest to hell that have 15 as region is , what is the meaning of that ID 576 ? also this procedure will also make the monsters fightable over and over again like normal monsters ? in any case i am testing it just now , it works perfectly , i can finally stop to create countless save blocks only to fight again a certain monster or a boss that normally allow only one fight , thanks again :D , this also solve the problem of the missing debug mode in the pc version since the possibility to fight any monster wherever you want was something that you could do with it , but this is even better because you can decide were to place the monsters
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: rick on 2019-09-14 21:49:37
and what are the controls to actually change the color of the highlited regions ?
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Covarr on 2019-09-14 22:22:22
rick, when obesebear, a forum administrator, tells you to stop double posting, that doesn't mean argue or make excuses, and it sure as heck doesn't mean do it again. Enjoy a brief vacation from posting privileges. ~Covarr
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: greator on 2019-09-23 19:41:19
Thank you admin. Finally some peace in this tread.

Anyway I hope Maki have some update for this engine
Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Sebanisu on 2019-09-24 00:23:59
If ya check GitHub or discord little updates are posted periodically.

Sent from my Pixel XL using Tapatalk

Title: Re: OpenVIII - an open-source Final Fantasy VIII engine implementation
Post by: Kandy_Man on 2021-01-26 08:49:30
Is this project still alive?  I was so excited to see the game potentially running at 60fps and all the tweaks that would come along with a project like this, but it seems the repo is getting updated less and less frequently :/