Installing and Configuring SNES9x and SNES9express on Fedora Core 7 KDE
My Specs
--------
Microsoft Sidewinder Plug n Play gamepad (/dev/input/js0)
Megaworld usb 2 axis 8 button gamepad (/dev/input/js1)
Sound Blaster X-Fi Extreme Audio (/dev/dsp)
----
INSTALL
Use yum to install *snes*
Installs snes9x (the backend) and snes9express (the frontend).
RUNNING SNES9EXPRESS
MUST run snes9express (and snes9x) as a normal user, not ROOT. If you normally login as root you can use the kde menu editor (kmenuedit) to run snes9express as a normal user permanently.
PERMISSIONS
You must make an audio group.
You must add the normal user to the audio group.
Must give audio group permissions over the sound and joysticks:
Give the audio group read/write permissions over /dev/dsp and /dev/input/js0 and js1.
HOWEVER, if you do it manually the permissions get reset to the default at restart by udev. To get past this problem you must set the permissions in /etc/security/console.perms.d/50-default.perms
Find and change the following parts in /etc/security/console.perms.d/50-default.perms thusly:
Parts BEFORE
<console> 0600 <sound> 0600 root
<console> 0600 <joystick> 0600 root
Parts AFTER
<console> 0660 <sound> 0660 root.audio
<console> 0660 <joystick> 0660 root.audio
Add the normal user to the audio.
Permissions stick after restart.
SNES9EXPRESS PROFILE
Make sure the snes9express default profile says:
Current: -joydev1 /dev/input/js0 -joydev2 /dev/input/js1 <nameofsomegame>
Do this by deleing anything in the snes9express profiles and then setting the paths to the joysticks (gamepads) in Preferences. Then go and save the profile, set it as the default, never ever **** with it, and then tell snes9express to always start using the default profile at startup.
To Make It Look Nice:
Change the video settings:
tvmode is 2xSAI
Scale On
Hi Res On
Then save the profile if it looks like the below: (go ahead, **** with it)
-scale -hires -y4 -joydev1 /dev/input/js0 -joydev2 /dev/input/js1 <nameofsomegame>
SNES9X.CONF
by default goes in: /home/<user>/.snes96_snapshots.
You can probably change this location in the snes9express Preferences.
My snes9x.conf file is set to worky with my controllers.
To set the snes9x.conf I had to copy the default snes9x.conf.default from
/usr/share/doc/snes9x-1.51/ to /home/<user>/.snes96_snapshots. Then I had to use snes9express's controller interface to find the button mappings and copy them into snes9x.conf. Never set button mappings in the snes9express interface. I also set Port2 from none to Pad2. Don't know if that mattered.
SAMPLE snes9x.conf
-----------
[CPU]
Cycles = 100
DisableIRQ = FALSE
[Controls]
ClearAll = FALSE
Joystick = TRUE
JustifierMaster = TRUE
MP5Master = TRUE
MouseMaster = TRUE
Port1 = pad1
Port2 = pad2
SuperscopeMaster = TRUE
Mouse1Crosshair = 1 White/Black
Mouse2Crosshair = 1 White/Black
SuperscopeCrosshair = 2 White/Black
Justifier1Crosshair = 4 Blue/Black
Justifier2Crosshair = 4 MagicPink/Black
-------
THIS EMPTY SECION IS ALL DEFAULT SETTINGS
-------
[Unix/X11 Controls]
EnableJoystick = TRUE
Joydev0 = /dev/input/js1
J00:Axis0 = Joypad1 Axis Left/Right T=50%
J00:Axis1 = Joypad1 Axis Up/Down T=50%
J00:B1 = Joypad1 A
J00:B0 = Joypad1 B
J00:B3 = Joypad1 X
J00:B2 = Joypad1 Y
J00:B4 = Joypad1 L
J00:B5 = Joypad1 R
J00:B8 = Joypad1 Select
J00:B9 = Joypad1 Start
J01:Axis0 = Joypad2 Axis Left/Right T=50%
J01:Axis1 = Joypad2 Axis Up/Down T=50%
J01:B2 = Joypad2 A
J01:B0 = Joypad2 B
J01:B3 = Joypad2 X
J01:B1 = Joypad2 Y
J01:B4 = Joypad2 L
J01:B6 = Joypad2 R
J01:B8 = Joypad2 Select
J01:B9 = Joypad2 Start
-------
THE REST OF SNES9X.CONF IS ALL DEFAULT
-------