Disclaimer
This project is under a specific open-source license, which implies that the sourcecode must always be made available with any modified binaries and should not be used in any commercial activity.
You might want to compile the sourcecode yourself from current SVN for various reasons:
- to test the current build before it is officially released
- to implement your own features.
However, I would appreciate if you respect the following points:
- current SVN build should always be considered as unstable and work in progress: you are free to compile the current source code but don't complain about bugs and don't make any public binary distribution from this. You can always get the last stable code from the tagged versions.
- you can modify the sourcecode as you want but in order to keep this project clean and structured, I would ask you to keep ANY private build for yourself and to avoid public distribution of derivative works. If you think the modification you made should be implemented in an official release, please contact me: I would eventually include them and obviously give all the credits to you.
How to Compile ?
First, you will have to download and install the following tools/libraries:
- from here, the last version of DevkitPPC. Windows user should directly run the Automated Installer. During installation, make sure you get libogc and libfat libraries installed as well. They should be installed in C:/devkitpro/libogc/
- from here, the following libraries: zlib, libpng & libtremor. Make sure you pick the precompiled PPC versions and extract them in C:/devkitpro/portlibs/ppc/. You should have the following directories once extracted:
- /devkitpro/portlibs/ppc/include
- /devkitpro/portlibs/ppc/include/tremor
- /devkitpro/portlibs/ppc/lib
Once you are done, if you haven't one yet, install a SVN client and get the current genplus-gx source code from SVN.
Finally, go into genplus-gx/trunk/ and run compile_all.bat.
The DevkitPro download page provides all the precompiled libraries and include files required to compile the current source code of Genesis Plus GX. However, you could also get the current source code of the libraries, compile them yourself and install as specified (generally make then make install).
The following libraries are required:
- libogc
- libfat
- libtremor: OGG music file support
- libpng: PNG image file support
- zlib: ZIP compressed file support
Thanks eke-eke. Great work. If people are struggling to use svn checkout, then I suggest installing svn-1.4.6-setup.exe from http://subversion.tigris.org/servlets/ProjectDocumentView?documentID=41686&showInfo=true . This is a command line svn client which means the command prompt will understand svn commands. Now you can just type, into a cmd window, the svn checkout command from the source/checkout page.
As said above, pick the PPC precompiled version i.e tremor-lowmem-ppc.tar.bz2
And for Mac OS X? How do I do it? Thanks!
You install devkitPPC for Mac OSX (I never did that myself so don't ask me more details)
http://sourceforge.net/projects/devkitpro/files/devkitPPC/devkitPPC_r21-osx.tar.bz2/download
I found this page that might answer your questions, should not be really more complicated than installation on windiws. http://wiibrew.org/wiki/Devkitppc_setup_%28Mac_OS_X%29
The rest of the steps is identical.
I'm unable to compile the Wii version (build 490), as I get the following error.
linking ... genplus_wii.elf main.o: In function `main': main.c:(.text.main+0x5c): undefined reference to `di_check_ahbprot' collect2: ld returned 1 exit status make1?: [/c/genplus-gx-read-only/genplus_wii.elf] Error 1 make: build_wii? Error 2
The Cube version compiles without any problem.
You need to get the latest libogc from SVN. It adds some required functions and won't compile otherwise
Hey eva001, like ekeeke31 mentioned, you can get the latest libogc SVN source from here: https://devkitpro.svn.sourceforge.net/svnroot/devkitpro/trunk/libogc Then make, make install, and you're ready to go! ;)
A little rant;
It seems some people have trouble understanding the bold statement here and continue to post compiled SVN builds on their "news" websites for whatever reasons.
Some precisions:
() No, 1.4.0 is not ready yet, I'm still polishing some stuff regarding the Cheat and ROM Browser interface and I need time for that. I don't care if some people think it's good enough to release it, I personally think it's not.
() The "change log" included in those news is useless and incomplete, it doesn't reflect all the changes that have been made since the last official release but only a very minor change between 2 revisions. How is that useful to anyone ? I know 95% of user only care about the new "cool GUI" but when you spent so much time trying to get perfect emulation, it's a little bit irritating to see incorrect infos being spread with your work.
() There isn't any documentation included with those builds and the currently available user manual is now outdated. This means that user have to figure themselves what to do and what options do. Even if the emulator interface is much of the time self-explanatory, I don't think any serious project should be released without proper documentation. This also avoid stupid questions or invalid issues report.
As of now, my current code, which includes some improvement to the emulator, is still not committed to the public SVN and it will probably remains like that until the official release and later ones, if there are. It's sad for the majority of people who just like to respectfully follow the progress of this project but it's the only way I've found to keep a little bit of control on what I think should be distributed to end users and what should not.
Sorry for the rant.
It's understandable. It's your project after all, and it's a shame people have to ruin a good thing by going against your (completely reasonable) wishes. =/
The current SVN build is excellent as it is. I'm definitely looking forward to the improvements in the upcoming official release.
More testers! :D
Isn't that one of the main points of the whole "public project" thing?
By limiting the number of potential testers, I'm also limiting the delay for the official release. Every time someone is reporting an issue on the current build, invalid or not, it's time lost in understanding, reproducing and eventually fixing the issue.
Also I doubt that promoting an incomplete and not well documented build would bring many interesting issue reports at that stage.
I am not able to compile on Linux. Is that possible? I am just trying because I look the Issues ( I had problems with libfat and USB) and you recommend to compile the emulator. I do not know when 1.4 gonna be released, so I give it a try. Maybe it should had more releases? I can see you like to do the things perfect, but I think it could had a 1.3.15 : compiled with new version of libfat. (this comment is just to illustrate, you could do a release every 6 months or when a group of things change)
I followed the instalation steps, but what I get when I try to compile is: I am on rev 503
[lucas@blueberry genplus-gx-read-only]$ make -f Makefile.wii genesis.c In file included from /home/lucas/genplus-gx-read-only/source/genesis.c:24: /home/lucas/genplus-gx-read-only/source/shared.h:6:18: warning: zlib.h: No such file or directory In file included from /home/lucas/genplus-gx-read-only/source/gx/osd.h:16,
/home/lucas/genplus-gx-read-only/source/gx/utils/oggplayer.h:33:33: error: tremor/ivorbiscodec.h: No such file or directory /home/lucas/genplus-gx-read-only/source/gx/utils/oggplayer.h:34:32: error: tremor/ivorbisfile.h: No such file or directory make1?: [genesis.o] Erro 1 make: build_wii? Erro 2I looked at source/gx/utils/oggplayer.h and saw this: #include "tremor/ivorbiscodec.h" #include "tremor/ivorbisfile.h"
shouldn't be: #include <tremor/ivorbiscodec.h> #include <tremor/ivorbisfile.h> ?
well, this indicates that I do not have some libraries, but this code compile and run just fine:
[lucas@blueberry ~]$ cat libstest.c #include <zlib.h> #include <stdio.h> #include <tremor/ivorbiscodec.h> #include <tremor/ivorbisfile.h>
int main(){ printf("libs are here"); } [lucas@blueberry ~]$ gcc libstest.c [lucas@blueberry ~]$ ./a.out zlib is here [lucas@blueberry ~]$
Sorry the long post, but I was afraid to be misunderstood if I did not tell everything. thanks for your attetion
Do you have the following libraries installed in /devkitpro/portlibs/ppc/:
-zlib -libpng -libtremor
?
If not, read this page again, everything is explained.
sorry, I put the files in /devkitpro/portlibs/ . I created the ppc directory and everything worked just fine. Sorry for the stupid mistake. Maybe you could let an updated meta.xml and a icon.png to put with the compiled file. Thanks for the great work, the new GUI is just awesome =)
Why do I need ppc libraries to compile genesis gx for my amd64 linux distro?
You are mistaken, there is no x86 linux version to compile on this site, only Wii/Gamecube versions are available, as stated on the main page. You might want to look for SSNES which is a multi-platform (Linux, Windows) emulator frontend and now has support for Genesis Plus GX codebase.
hi ekeeke SSNES now is name in RetroArch? he have wii port ? i was try to Compiling but no working for me :/