shiiion / dolphin

Dolphin fork intended to give Metroid Prime Trilogy mouselook controls
Other
466 stars 43 forks source link

Rebase prime-hack off newer upstream dolphin #147

Closed dmccombs closed 9 months ago

dmccombs commented 10 months ago

Would it be possible to update prime-hack to use a more recent version of dolphin? Specifically one that includes this fix from June 30th that corrects build failures on systems with mbedtls 3.x. Thanks!

jtfen86 commented 10 months ago

I'd like this too please

Perisys1312 commented 9 months ago

This seems to be vital for arch linux support under the AUR package and manual building.

vyuuui commented 9 months ago

In an effort to clean up commit history along with rebasing, I'll be switching the main branch of this project to primehack-master soon. That branch should currently compile. I'll leave the old master branch up for historic reasons

Perisys1312 commented 9 months ago

Building unfortunately still errors when it reaches GBACore.cpp, throwing this.

/run/media/2TB/Downloads/dolphin-emu-primehack-git/src/dolphin/Source/Core/Core/HW/GBACore.cpp: In member function ‘HW::GBA::CoreInfo HW::GBA::Core::GetCoreInfo() const’:
/run/media/2TB/Downloads/dolphin-emu-primehack-git/src/dolphin/Source/Core/Core/HW/GBACore.cpp:308:11: error: ‘struct mCore’ has no member named ‘currentVideoSize’
  308 |   m_core->currentVideoSize(m_core, &info.width, &info.height);
      |           ^~~~~~~~~~~~~~~~
/run/media/2TB/Downloads/dolphin-emu-primehack-git/src/dolphin/Source/Core/Core/HW/GBACore.cpp: In member function ‘void HW::GBA::Core::SetVideoBuffer()’:
/run/media/2TB/Downloads/dolphin-emu-primehack-git/src/dolphin/Source/Core/Core/HW/GBACore.cpp:395:11: error: ‘struct mCore’ has no member named ‘currentVideoSize’
  395 |   m_core->currentVideoSize(m_core, &width, &height);
      |           ^~~~~~~~~~~~~~~~
make[2]: *** [Source/Core/Core/CMakeFiles/core.dir/build.make:4626: Source/Core/Core/CMakeFiles/core.dir/HW/GBACore.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1173: Source/Core/Core/CMakeFiles/core.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
make: Leaving directory '/run/media/2TB/Downloads/dolphin-emu-primehack-git/src/dolphin/build'
==> ERROR: A failure occurred in build().
    Aborting...
vyuuui commented 9 months ago

If you're reattempting a build from the AUR package, I'm not sure how it deals with submodules. Clean them up with

git submodule update --recursive --init
git submodule foreach git reset --hard HEAD
Perisys1312 commented 9 months ago

Here's a reattempted build on the source code with manual build instructions, using both commands you suggested for maximum good measure.

/run/media/2TB/Downloads/dolphin/Source/Core/Core/HW/GBACore.cpp: In member function ‘HW::GBA::CoreInfo HW::GBA::Core::GetCoreInfo() const’:
/run/media/2TB/Downloads/dolphin/Source/Core/Core/HW/GBACore.cpp:308:11: error: ‘struct mCore’ has no member named ‘currentVideoSize’
  308 |   m_core->currentVideoSize(m_core, &info.width, &info.height);
      |           ^~~~~~~~~~~~~~~~
/run/media/2TB/Downloads/dolphin/Source/Core/Core/HW/GBACore.cpp: In member function ‘void HW::GBA::Core::SetVideoBuffer()’:
/run/media/2TB/Downloads/dolphin/Source/Core/Core/HW/GBACore.cpp:395:11: error: ‘struct mCore’ has no member named ‘currentVideoSize’
  395 |   m_core->currentVideoSize(m_core, &width, &height);
      |           ^~~~~~~~~~~~~~~~
[ 77%] Building CXX object Source/Core/Core/CMakeFiles/core.dir/HW/WiimoteReal/IOhidapi.cpp.o
[ 77%] Building CXX object Source/Core/Core/CMakeFiles/core.dir/MemoryWatcher.cpp.o
make[2]: *** [Source/Core/Core/CMakeFiles/core.dir/build.make:4626: Source/Core/Core/CMakeFiles/core.dir/HW/GBACore.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:1173: Source/Core/Core/CMakeFiles/core.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

I'm honestly not sure what's causing this.

vyuuui commented 9 months ago

You might have a bad version of mGBA installed, disable building with system mGBA. The version from externals is building fine (from what I can tell)

Perisys1312 commented 9 months ago

How do I do that, because google doesn't seem to be helping me in finding out.

Perisys1312 commented 9 months ago

Scratch that last post, updating libmgba to its AUR git package allowed it to build properly there, however I get a further issue that I can't seem to extrapolate shown here. Same build instructions I've been testing on.

[ 78%] Linking CXX executable ../../../Binaries/dolphin-emu-nogui
[ 78%] Linking CXX executable ../../../Binaries/dolphin-tool
/sbin/ld: ../DiscIO/CMakeFiles/discio.dir/CompressedBlob.cpp.o: undefined reference to symbol 'deflateInit_'
/sbin/ld: /usr/lib/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [Source/Core/DolphinNoGUI/CMakeFiles/dolphin-nogui.dir/build.make:231: Binaries/dolphin-emu-nogui] Error 1
make[1]: *** [CMakeFiles/Makefile2:1546: Source/Core/DolphinNoGUI/CMakeFiles/dolphin-nogui.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/sbin/ld: ../DiscIO/CMakeFiles/discio.dir/CompressedBlob.cpp.o: undefined reference to symbol 'deflateInit_'
/sbin/ld: /usr/lib/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [Source/Core/DolphinTool/CMakeFiles/dolphin-tool.dir/build.make:231: Binaries/dolphin-tool] Error 1
make[1]: *** [CMakeFiles/Makefile2:1588: Source/Core/DolphinTool/CMakeFiles/dolphin-tool.dir/all] Error 2
[ 78%] Built target dolphin-emu_autogen
make: *** [Makefile:156: all] Error 2
vyuuui commented 9 months ago

Current version of dolphin doesn't like the system version of zlib for arch. You can disable system packages from the cmake configuration (from the build steps):

cmake .. <other arguments> -DUSE_SYSTEM_ZLIB=false

this can also be done for any other libraries where you'd prefer to use the dolphin-packaged form.