1 (edited by devOut 2010-06-27 03:56:30)

Topic: Quake for the BB8 (Infocast)

Hello all.

I have posted the binaries/source for a BB8-compiled version of the Quake 1 code posted by ChumbyLurker.

His original post: http://forum.chumby.com/viewtopic.php?id=2955

Current BB8-compile hosting: http://sourceforge.net/projects/bb8apps/files/

InfoQuake-full.tar.gz        9.0 MB        -- Full dongle executables + data    
InfoQuake-small.tar.gz     414.2 KB        -- Provide your own data (id1 folder)
InfoQuake-src.tar.gz         12.8 MB        -- Source used for SDL / sdlquake

I've not been able to do extensive testing, so any feedback with issues would be welcomed. There is currently no touchscreen support, I've basically used a USB keyboard at this point. I've found that some keyboards do not jive well with my C1, but have not verified that this is also the case on the BB8 device.

Some information for the build:
The SDL source was taken directly from http://www.libsdl.org/download-1.2.php with no modifications made.
sdlquake was the version provided by ChumbyLurker with the switch_output code that he provided in another post incorporated to change the resolution to 640x480 on startup. This was just changes made to the vid_sdl.c file. The makefile was modified manually since no configure script was available and a pretty hack-ish "b.sh" was added to build the non-static library since I do not have a compilable ALSA library at this time to make the libasound.a required.

Switch_output: http://forum.chumby.com/viewtopic.php?id=4283


These were built on the gcc compiler that it natively available on the device.

Another note that people may find helpful is that with the limited amount of RAM on the device, you may get an error from GCC after it seems to hang on a file for several minutes. This error is caused by the optimizer having insufficient resources and can be worked around with using a swap file or reduce the optimizations ( -O3 vs -O1 and such ). The LD_LIBRARY_PATH setting within the debugchumby script may be a lazy workaround for how my app's currently compiled, but it has been quite a long night and I'm not even 100% sure that there isn't enough variance in devices to make non-static compiling a viable way to distribute apps.

Re: Quake for the BB8 (Infocast)

Nice work!

Re: Quake for the BB8 (Infocast)

I agree with Duane smile

If you're having trouble compiling things because you're running out of memory, there are a few things you can try:

  1. Make sure the control panel isn't running.  Run "stop_control_panel" to make sure

  2. Unload "bmm" by running "rmmod bmm".  The block memory manager reserves 12 megabytes of RAM for video playback.

  3. If all else fails, make a swap file!  "dd if=/dev/zero of=/mnt/storage/swap bs=1M count=256; mkswap /mnt/storage/swap; swapon /mnt/storage/swap"

Re: Quake for the BB8 (Infocast)

Thanks guys!

Yeah, I typically stop the control panel before attempting a compile along with things like the mDNS broadcasting daemons and such as reported with `top`. I had not tried bmm, though, so that could be worth a shot!

Thus far I've also had the SDL version of Doom compile without issue (there are a few key mappings that should really be sorted out before putting up a download, but sound and speed are 100%). Most of the gcc memory issues were with a few components of dosbox. I did manage to get that cross-compiled in my VM but there is a really weird mistranslation with the scancodes there that basically shifts the code up about 7 ("q" is the result from pressing the "u" key. It's the correct keymap that just appears to be offset). I've not worked on having the sound properly working in that because I would rather have the input working beforehand. I did get to at least have the shareware of "Night Raid" playing with the game's turret capable of shooting so I considered that a partial success. I have found a few more instances of apps like OpenRedalert that have problems on a module or two, but nothing major.

Also, you mentioned trying to find a way to determine what kind of device was at the end of a /dev/input/eventX node. I know that the post is several years old at this point and you may have came to the same (or a better) method since, but here goes:

EVIOCGBIT with ioctl

A really well done implementation of this is at: http://beagleboard.googlecode.com/files/evtest.c

I've also seen it in some SDL "is this a joystick?" test functions.

Re: Quake for the BB8 (Infocast)

I've played Quake on the Infocast, and it is really good (no crashes so far). @devout, cant you use a bind keys method to correct the keyboard issues, or even calibrate it somehow?