LeapFrog Pollux Platform: sdlDoom

Summary
This is a quick tutorial on getting sdlDoom up and running.

Prerequisites
Set Up Build Environment

Install libSDL 2.6.31 Kernel Frame Buffer

Software Needed
sdlDoom Sources

sdlDoom Wad File

You will also need the SDL libs/headers on your host PC

sdlDoom Preconfigured (git repo) Just compile.

Hardware Needed
Console Access

Configure and Compile
Download and extract the source files.

You'll need to fix some button mappings edit doomdef.h
 * 1) define KEY_ESCAPE 109 // 'home button'
 * 2) define KEY_ENTER 120 // 'brightness button'

To get sound working a bit better as there is a possible sample rate issue, edit i_sound.c and change line 56:
 * 1) define SAMPLERATE 44100

Make sure your Build Environment is set up and run the configure program then make. Change -j5 to reflect the number of cores on your cpu +1: ./configure make -j5

Copy the doom file to /usr/bin on your device

Copy the wad file to a folder on your device, somewhere like /LF/Bulk/doom on the Explorers or /Didj/doom on the Didj.

This will allow control for all things but shooting, to configure we need to make a config file.

Browse to the folder where you put the wad file and make a blank text file called doomconfig:
 * 1) echo > doomconfig

Run doom, using the following on the command line: doom -config doomconfig

Load a new game, run around and pick up something (not sure if this is entirely necessary), go to the menu and save the game, doomconfig should now be populated.

Edit doomconfig, change these 2 lines to the following: key_fire 97 key_use  98

Alternatively you can copy and paste the following into your doomconfig file replacing anything that's in there, A= fire, B=use, R should = strafe right, weapon switching doesn't currently work, nor does strafe left or backwards:

mouse_sensitivity	5 sfx_volume		15 music_volume		15 show_messages		1 key_right		174 key_left		172 key_up			173 key_down		175 key_strafeleft		99 key_straferight	114 key_fire		97 key_use 		98 key_strafe		184 key_speed		999 use_mouse		1 mouseb_fire		0 mouseb_strafe		1 mouseb_forward	       2 use_joystick		0 joyb_fire		0 joyb_strafe		1 joyb_use		3 joyb_speed		2 screenblocks		10 detaillevel		0 snd_channels		3 usegamma		0 chatmacro0		"No" chatmacro1		"I'm ready to kick butt!" chatmacro2		"I'm OK." chatmacro3		"I'm not looking too good!" chatmacro4		"Help!" chatmacro5		"You suck!" chatmacro6		"Next time, scumbag..." chatmacro7		"Come here!" chatmacro8		"I'll take care of it." chatmacro9		"Yes"

This will give you 'fire' on the A button and 'use' on the B button

Other buttons either don't work or don't work as expected if you try and change them via doomconfig, doomdef.h or m_misc.c (defaults get defined here if the config file isn't found), not sure why its behaving like this.