From Openmoko

Jump to: navigation, search

Gnuboy.png Gnuboy

An emulator for the handheld gaming all-time bestseller.

Package: no package yet
Tested on: Om 2008.8

Source Code released:


New Version Made by rohezal

There is a new version, with a high (but not very noteable) frameskip. At runs a very decent speed, almost full speed. Sound works and touchscreen works. Its avaible for the gamerunner distro and needs SDL 1.2. Sometimes it hangs but when you press the A Button (right upper corner in gamerunner) it will work flawlessly. Sometimes small sound skips appear but then don't appear often.

In second controll mode in gamerunner you can use savestates by pressing top right corne to save and left lower corner to load. Select is right lower corner.

Install Instructions: copy the content of gnuboy.tar to /usr/games/installed/ copy the content of gnuboy.png to /usr/games/menu/icons/ overwrite wmdrawerrc to menu/wmdrawer/wmdrawerrc copy the content of removethis.gnuboy.tar (.gnuboy folder) to /home/root/.gnuboy/ make a symlink to the gnuboy.rc config file (which should be located in /home/root/.gnuboy/) in /usr/games/installed/gnuboy/

cd /usr/games/installed/gnuboy/ ln -s /home/root/.gnuboy/gnuboy.rc gnuboy.rc

file gnuboy.rc should display: gnuboy.rc: symbolic link to `/home/root/.gnuboy/gnuboy.rc'


What works

When removing the illume keyboard and installing the matchbox-keyboard (See also: Switching_Keyboards) it's possible to use the matchbox keyboard as input method (tested only on 2007.2, please verify). You need to create a ~/.matchbox/keyboard.xml file:

mkdir /home/root/.matchbox
cp /usr/share/matchbox-keyboard/keyboard.xml ~/.matchbox/

PieterC created a profile to this file to change the layout to a game-boy lay-out (browsing the layouts can easily be done by pushing the > butten in the left bottom corner): add this to ~/.matchbox/keyboard.xml:

<layout id="GameBoy">
<space width="500"/>
<key>  <default display="b" action="s"/> </key> 
<key> <default display="a" action="d" /> </key> 
<space width="300"/>
<key> <default display="↑" action="up" /> </key>
<space width="4000" extended="true" />
<key> <default display=">" action="modifier:layout"/> </key>
<key fill="true"><default display="start" action="return"/> </key>
<key> <default display="slt" action="space" /> </key> 
<space width="500" extended="true"/> 
<key> <default display="←" action="left" />  </key>
<key> <default display="↓" action="down" /> </key>
<key> <default display="→" action="right" /> </key>

After untarring gnuboy to the openmoko, you can launch your favorite rom-file by running

./sdlgnuboy --fullscreen=0 --scale=2 pg.gbc

Some work has to be done...

Using the matchbox keyboard is clearly only a temporary solution: we need an input method that works out of the box. Since it uses sdl, we can check out the code of duke3d and simply port it into the put_events() function in the main.c. Some of us tried yet to implement this but no one succeeded to implement it, due to this[1] issue.

When trying to implement the touchscreen as an input device for gnuboy, we won't be able to do multi touching (strike 2 buttons at a time). Since this is mandatory to some games (mostly fighting games) on the gameboy (color), we micht not use the touchscreen for all events. I propose to use the accelerometers as up down left & right, and use the touchscreen as A, B, start & select.

External links that might be interesting

[2] - SDL touchscreen issue

[3] - the source of gnuboy as released in 2001 by Laguna

[4] - sourcecode of duke3d, to steal code from...

Personal tools