Dolphin, the GameCube and Wii emulator - Forums

Full Version: DDL for latest source tarball?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4
(03-31-2013, 09:52 PM)bl0 Wrote: [ -> ]Speaking of Cg, how are you going to link a NetBSD binary against a Linux library? Is it possible?
NetBSD has Linux binary emulation, among other platforms. It can run Linux compiled applications natively. Some of the applications i have installed and use regularly are Skype, GoogleEarth, Kerkythea, Acrobat Reader, and Opera. If you search for "COMPAT_" here:

http://netbsd.gw.com/cgi-bin/man-cgi?options+.amd64+NetBSD-current

you can see all the platforms that are supported WRT binary emulation. It used to be many more platforms, like Darwin and IRIX. That code wasn't maintained, was bitrotting, and thus got removed. Such is the way of open source.
(04-05-2013, 11:55 PM)bl0 Wrote: [ -> ]I've looked into this. It's a problem with gcc on OSes which don't have _POSIX_TIMEOUTS, including NetBSD. It was fixed in gcc 4.7 which is also in pkgsrc.
Would definitely be good to document that requirement on gcc>=4.7.
(04-05-2013, 11:55 PM)bl0 Wrote: [ -> ]First, this doesn't do what you want. It calls
find_path(SOIL_INCLUDE SOIL.h SOIL/SOIL.h)
The short syntax is
find_path(<VAR> name1 [path1 path2 ...])
See cmake docs.
Second, a change to CMakeLists.txt is not enough. Dolphin source files do "#include <SOIL/SOIL.h>".
Hmm, well my patch there works and any modification based on that documentation doesn't seem to find SOIL. What are your suggestions? Also, there's just one Dolphin source file that references the SOIL include directly (Source/Core/VideoCommon/Src/HiresTextures.cpp). Would be good to not hardcode that include path too, but replace it based on which location is found during configure.
(04-05-2013, 11:55 PM)bl0 Wrote: [ -> ]It searches for libCg.so too. (It only checks for presence of the library files, it doesn't test if the library is usable.)
I'm not seeing the test for libCg.so in the build scripts. Where is this happening?

So, better news! Build makes it to 93%:

http://filebin.ca/f97H2FWBQkB/bnew.txt

but fails here:

[ 93%] Building CXX object Source/Core/Core/CMakeFiles/core.dir/Src/HW/BBA-TAP/TAP_Unix.cpp.o
/usr/pkgsrc/dev/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/HW/BBA-TAP/TAP_Unix.cpp: In function 'void ReadThreadHandler(CEXIETHERNET*)':
/usr/pkgsrc/dev/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/HW/BBA-TAP/TAP_Unix.cpp:126:13: error: 'class CEXIETHERNET' has no member named 'fd'
/usr/pkgsrc/dev/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/HW/BBA-TAP/TAP_Unix.cpp:131:3: error: 'class CEXIETHERNET' has no member named 'fd'
/usr/pkgsrc/dev/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/HW/BBA-TAP/TAP_Unix.cpp:131:3: error: 'class CEXIETHERNET' has no member named 'fd'
/usr/pkgsrc/dev/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/HW/BBA-TAP/TAP_Unix.cpp:136:20: error: 'class CEXIETHERNET' has no member named 'fd'
/usr/pkgsrc/dev/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/HW/BBA-TAP/TAP_Unix.cpp:139:30: error: 'class CEXIETHERNET' has no member named 'fd'
/usr/pkgsrc/dev/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/HW/BBA-TAP/TAP_Unix.cpp:144:18: error: 'class CEXIETHERNET' has no member named 'readEnabled'
gmake[2]: *** [Source/Core/Core/CMakeFiles/core.dir/Src/HW/BBA-TAP/TAP_Unix.cpp.o] Error 1
gmake[1]: *** [Source/Core/Core/CMakeFiles/core.dir/all] Error 2
gmake: *** [all] Error 2
*** Error code 2

Seems like that tunneling part is very Linux-specific. The tunnel device is /dev/tun* on the *BSDs, for example. The whole interesting part of the networking includes is wrapped in an #if __linux__ block. Sad I couldn't find CEXIETHERNET in FXR, so i'm not sure exactly what that code wants.
(05-02-2013, 12:49 AM)bl0 Wrote: [ -> ]I thought you lost interest in Dolphin Smile

Whaaaaaaat? No way! GTFO. Dolphin is too cool of an idea to abandon and have wanted to get it running since the 3.0 release. I've just been working on other things on my TODO list.

(05-02-2013, 12:49 AM)bl0 Wrote: [ -> ]Your modified version does not search for the second name, only the first.
In my opinion this is a non-issue. Dolphin comes with Externals/SOIL which is used if SOIL is not found on the system. I don't know what you're trying to accomplish. If you want to do as you said and search for the header file in two locations, here are some hints. Extra arguments to check_lib (except QUIET and REQUIRED) are passed to find_path so you can use find_path options in check_lib. Have a look at PATH_SUFFIXES option. The return value stored in SOIL_INCLUDE is the absolute directory path. You can add it to include directories and remove the directory name from the #include in the cpp file. Another way is to replace check_lib with calls to find_library and find_file. find_file is similar to find_path but it returns full path to the file. I'm new to CMake so there may be better ways.

I just ripped out a patch I made for another package and modified it for SOIL. Detection works fine now. Patch here:

http://pkgsrc-wip.cvs.sourceforge.net/viewvc/pkgsrc-wip/wip/dolphin/patches/patch-CMakeLists.txt?revision=1.2&view=markup

The idea is that:

  1. generally, it's better to build with whatever version of the dependency is on the system (unless you have some super cool code to make your package work that upstream won't commit for whatever reason and you're maintaining it separately) and if that version isn't good enough, fail (or in this case, fall back to bundled versions);
  2. perhaps, one day you can not bundle externals, point people at a list of dependencies and tell them to install everything before proceeding. I would imagine it's nightmarish to have to maintain all that stuff in your source tree. Makes for a much smaller distfile too.

The Cg detection was failing on this end, because the headers weren't being buildlinked. I'm not sure why that wasn't happening, but I'll look into it later. Here's some other things that need to be documented:

  1. requires ffmpeg>=1.0
  2. requires portaudio>=19

The portaudio check was failing, because it needs libportaudio2 which I packaged just to test with dolphin. Mic support now works. You can add NetBSD to this patch too:

http://svnweb.freebsd.org/ports/head/emulators/dolphin-emu-devel/files/patch-Source-Core-Common-Src-MemArena.cpp?revision=304577&view=markup

Anyway, it builds and installs fine (I can give you that full build log if you like). Fails here on execution, though:

Code:
40:49:805 /usr/pkgsrc/stable/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/CoreParameter.cpp:330 W[BOOT]: bootrom file /usr/pkg/share/dolphin-emu/sys/GC/USA/IPL.bin not found - using HLE.
40:49:832 /usr/pkgsrc/stable/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/HW/EXI_DeviceMemoryCard.cpp:104 W[EXI]: No memory card found. Will create new.
40:50:095 /usr/pkgsrc/stable/wip/dolphin/work/dolphin-3.5/Source/Core/Common/Src/FileUtil.cpp:100 W[COMMON]: IsDirectory: stat failed on /home/me/.dolphin-emu/Shaders/: No such file or directory
Failed to initialize GEM. Falling back to classic.
40:50:136 /usr/pkgsrc/stable/wip/dolphin/work/dolphin-3.5/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp:464 N[Video]: glX-Version 1.2
40:50:136 /usr/pkgsrc/stable/wip/dolphin/work/dolphin-3.5/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.cpp:486 N[Video]: Got double buffered visual!
40:50:639 /usr/pkgsrc/stable/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/Boot/Boot.cpp:197 N[BOOT]: Booting my_super_cool_test_rom.iso
40:50:784 /usr/pkgsrc/stable/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/HLE/HLE_OS.cpp:52 N[OSREPORT]: 81200500->81300000| Apploader Initialized. $Revision: 31 $.
40:50:784 /usr/pkgsrc/stable/wip/dolphin/work/dolphin-3.5/Source/Core/Core/Src/HLE/HLE_OS.cpp:52 N[OSREPORT]: 8120051c->81300000| This Apploader built Sep 5 2002 05:58:53
40:51:813 /usr/pkgsrc/stable/wip/dolphin/work/dolphin-3.5/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp:304 E[Video]: GPU: ERROR: Need GL_EXT_framebufer_object for multiple render targets.
GPU: Does your video card support OpenGL 2.x?
Segmentation fault (core dumped)

A small, black backgrounded window with the title "GPU" opens and then it dies. Progress though.
Pages: 1 2 3 4