MaKiPL / OpenVIII-monogame

Open source Final Fantasy VIII engine implementation in C# working on Windows and Linux (Android and iOS planned too!) [Monogame]
MIT License
645 stars 59 forks source link

iOS / macOS #171

Open ghost opened 4 years ago

ghost commented 4 years ago

I noticed you wanted to do mobile ports, has anyone worked on a macOS port first? Didn't see anything but it's completely possible I missed someone's pr for iOS or macOS.

Sebanisu commented 4 years ago

It should compile on mac. Much like linux. You'd need to use the command line or hardcode the path to the ff8 files. But I don't have a system to try it on. I don't think Maki has a mac around either. We're currently playing around with the idea of switching engines. I'm experimenting on c++. Maki was fiddling with unity.

ghost commented 4 years ago

Ok I'm going to try to take a look at it and see where I can get. I had just graduated with a 2yr degree in computer science and if I had to rate my skills, at an intern skill level, but with the lock down meaning I can't really job hunt, if you come up with some tasks appropriate to an intern level of skill I'd love to start helping in whatever engine.

ghost commented 4 years ago

Well I ran the OpenGL Linux project, added a MacOSGameLocationProvider and got it to compile, but I'm getting some kind of runtime exception and unfortunately VS is not giving me a call stack but stopping execution and loading a copy of ExceptionServicesCommon.cs. I'm going to keep trying to figure it out, but any ideas would be appreciated.

Sebanisu commented 4 years ago

It might be throwing because it cannot find the game files. The class uses some kinda exception collector that the coder made. I am not sure if that class needs altered to work on Mac.

Sebanisu commented 4 years ago

You may need to step threw the code with the debugger. It should not take long as it's early in the process.

ghost commented 4 years ago

Just found the call stack, it's an error having to do with libdl it looks like to me. I'm going to look at that a bit then try a manual step through if that doesn't work.

Unhandled Exception: System.DllNotFoundException: libdl.so.2 assembly:<unknown assembly> type:<unknown type> member:(null) at (wrapper managed-to-native) FFmpeg.AutoGen.Native.LinuxNativeMethods.dlopen(string,int) at FFmpeg.AutoGen.Native.LibraryLoader.LoadNativeLibrary (System.String libraryName) [0x00037] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.Native.LibraryLoader.LoadNativeLibrary (System.String path, System.String libraryName, System.Int32 version) [0x00014] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg.LoadLibrary (System.String libraryName) [0x00040] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg+<>c__DisplayClass5_0.<.cctor>b__0 (System.String name) [0x00036] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg+<>c.<LoadLibrary>b__14_0 (System.String x) [0x00005] in <7d2de336d2224661a63fb9739dc76a92>:0 at System.Collections.Generic.List1[T].ForEach (System.Action1[T] action) [0x0001e] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-10/external/bockbuild/builds/mono-x64/external/corefx/src/Common/src/CoreLib/System/Collections/Generic/List.cs:578 at FFmpeg.AutoGen.ffmpeg.LoadLibrary (System.String libraryName) [0x0000b] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg+<>c__DisplayClass5_0.<.cctor>b__0 (System.String name) [0x00036] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg+<>c.<.cctor>b__5_78 (FFmpeg.AutoGen.AVPacket* pkt) [0x00005] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg.av_packet_unref (FFmpeg.AutoGen.AVPacket* pkt) [0x00000] in <7d2de336d2224661a63fb9739dc76a92>:0 at OpenVIII.AV.FfccVariableGroup.Dispose (System.Boolean disposing) [0x000c5] in /Users/jeremiahkorreck/RiderProjects/OpenVIII-monogame/Core/AV/FfccVariableGroup.cs:122 at OpenVIII.AV.FfccVariableGroup.Finalize () [0x00002] in /Users/jeremiahkorreck/RiderProjects/OpenVIII-monogame/Core/AV/FfccVariableGroup.cs:56 [ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: libdl.so.2 assembly:<unknown assembly> type:<unknown type> member:(null) at (wrapper managed-to-native) FFmpeg.AutoGen.Native.LinuxNativeMethods.dlopen(string,int) at FFmpeg.AutoGen.Native.LibraryLoader.LoadNativeLibrary (System.String libraryName) [0x00037] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.Native.LibraryLoader.LoadNativeLibrary (System.String path, System.String libraryName, System.Int32 version) [0x00014] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg.LoadLibrary (System.String libraryName) [0x00040] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg+<>c__DisplayClass5_0.<.cctor>b__0 (System.String name) [0x00036] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg+<>c.<LoadLibrary>b__14_0 (System.String x) [0x00005] in <7d2de336d2224661a63fb9739dc76a92>:0 at System.Collections.Generic.List1[T].ForEach (System.Action1[T] action) [0x0001e] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-10/external/bockbuild/builds/mono-x64/external/corefx/src/Common/src/CoreLib/System/Collections/Generic/List.cs:578 at FFmpeg.AutoGen.ffmpeg.LoadLibrary (System.String libraryName) [0x0000b] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg+<>c__DisplayClass5_0.<.cctor>b__0 (System.String name) [0x00036] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg+<>c.<.cctor>b__5_78 (FFmpeg.AutoGen.AVPacket* pkt) [0x00005] in <7d2de336d2224661a63fb9739dc76a92>:0 at FFmpeg.AutoGen.ffmpeg.av_packet_unref (FFmpeg.AutoGen.AVPacket* pkt) [0x00000] in <7d2de336d2224661a63fb9739dc76a92>:0 at OpenVIII.AV.FfccVariableGroup.Dispose (System.Boolean disposing) [0x000c5] in /Users/jeremiahkorreck/RiderProjects/OpenVIII-monogame/Core/AV/FfccVariableGroup.cs:122 at OpenVIII.AV.FfccVariableGroup.Finalize () [0x00002] in /Users/jeremiahkorreck/RiderProjects/OpenVIII-monogame/Core/AV/FfccVariableGroup.cs:56 AL lib: (EE) alc_cleanup: 1 device not closed

Sebanisu commented 4 years ago

https://github.com/Ruslan-B/FFmpeg.AutoGen I guess ffmpeg.autogen cannot find ffmpeg? It took me a bit of trail and error to get it to work on Linux. The site has a link for ffmpeg via homebrew.