Being a emulation/simulation fan, I recently moved my interest from nes and snes(zsnes and snes9x) to n64 (nintendo 64). On searching the net I found that the only relatively active open source project currently for n64 emulation is mupen64 released sometime last year.
I downloaded the source and binary versions. Initially trying it on FC6, I found issues with both the mupen64 which I compiled and later also with the binary version directly downloaded. After some breaking the head and some trial and error, this is what I had to do to get Mupen64 running on FC6 using a ATI 3D acceleration driver (i.e the ATI’s drivers and not the one from Xorg). Also what I noticed is that the Mupen64 works BETTER | PROPERLY once I use the ATI s driver instead of the XOrg s driver.
- **Fixing the SELinux issue with plugin**
- chcon -t textrel_shlib_t /pathto/mupen64-0.5/plugins/*so
- **Fixing AIGLX and Composite issue with ATI driver(Cas I use ATI drivers)**
Current ATI accelerator drivers don’t support AIGLX/Composite along with DRI. So One is
required to disable AIGLX and Composite features in X Server, if one wants to get OpenGL
acceleration in Mupen64 graphics plugins. This is _essential_ if one wants good speed
during emulation.
#** Put the following into your /etc/X11/xorg.conf **
Section "ServerFlags"
Option "AIGLX" "off"
EndSection
Section "DRI"
Group 0
Mode 0666
EndSection
Section "Extensions"
Option "Composite" "off"
EndSection
- ** Make Mupen64 use ATI (Your 3D H/W based) libGL instead of MesaGL s **
The ati h/w based libGL doesn’t install into /usr/lib/, but rather installs into /usr/lib/ati-fglrx.
This creates problem because the MesaGL’s libGL is under /usr/lib and by default any
program will pick this up instead of your h/w accelerated libGL. I THINK FC6 (livna guys)
should fix this at the package level. However On trying to fix it by forcing mupen64 to use
the proper libGL using /etc/ld.so.conf.d/prgname logic, it failed. I didn’t try breaking my
head as it was already 3 or 4 am in the morning and I still had games to try. So I worked
around this by creating a symbollic link to hw based libGL in the mupen64 directory and
using LD_LIBRARY_PATH to force the use of proper libGL as shown below.- cd /pathto/mupen64
- ln -s /usr/lib/ati-fglrx/libGL.so.1.2 libGL.so.1
- export LD_LIBRARY_PATH=.
- ./mupen64 (NOTE: Now you should be happily running mupen64 in FC6 with acceleration)
If you have taken care of the 3 issues mentioned above, Now you should be able to happily enjoy running Mupen64 on FC6 with 3D acceleration for graphics. Enjoy.