I've got PrBoom running near perfect, so hopefully this will help.
I linked /root/.prboom to /mnt/card/games/doom (where I have my configs and wads).
rm -rf /root/.prboom && ln -s /mnt/card/games/doom /root/.prboom
The contents of that are:
doom.wad
doom2.wad
dpad.cfg
irkeyboard.cfg
prbmsav0.dsg
prbmsav1.dsg
prbmsav2.dsg
prboom.cfg
prboom.wad
servers.list
tranmap.dat
Most of that being save games and custom script stuff.
I've got my prboom.desktop file pointing at opie-sh-prboom.sh, which is:
#!/bin/sh
#Set additional files
test -e /root/.prboom/dpad.cfg || touch /root/.prboom/dpad.cfg
test -e /root/.prboom/irkeyboard.cfg || touch /root/.prboom/irkeyboard.cfg
test -e /root/.prboom/servers.list || touch /root/.prboom/servers.list
#Input method
opie-sh -m -t Input -M "Select Input Device" -g -0 "IR Keyboard" -1 D-Pad
RETURNCODE=$?
case $RETURNCODE in
0) INPUT="-config /root/.prboom/irkeyboard.cfg";;
1) INPUT="-config /root/.prboom/dpad.cfg";;
esac
if [ "$INPUT" = "" ]; then exit; fi
#Choose Game Version
opie-sh -m -t "Game" -M "Choose game" -g -0 Doom -1 DoomII
RETURNCODE=$?
case $RETURNCODE in
0)IWAD=doom.wad;;
1)IWAD=doom2.wad;;
esac
#Enable Singleplayer/Multiplayer Menu
opie-sh -m -t "Players" -M "Choose gametype" -g -0 Single -1 Multi
RETURNCODE=$?
case $RETURNCODE in
0) NET="";;
1) SERVER=` opie-sh -i -t "Server" -g -E -l -F \
/root/.prboom/servers.list `; if [ "$SERVER" = "" ]; then exit; fi; \
NET="-net $SERVER";;
esac
SDL_QT_INVERT_ROTATION=1 prboom -height 240 -iwad $IWAD $INPUT $NET
So, when I click on PrBoom from the Games menu, I get to choose:
IR Keyboard or Zaurus Dpad
Doom 1 or Doom 2
Singleplayer or Multiplayer
Ir Keyboard and the Dpad each has its own config.
Multiplayer brings you to a menu where you put in the server IP address.
The one problem with this (and it's PrBooms fault, not this script) is that if there is no network server listening at that address, it'll just sit there waiting.
Multiplayer is beautiful though.
There are a lot of lines to cancel everything if the cancel button is pressed.
I flip the screen to line up the IR port with the keyboard.