2006-02-21 11:54:53 +00:00
|
|
|
\subsection{\label{ref:Chip8emulator}Chip{}-8 Emulator}
|
2006-03-11 07:52:11 +00:00
|
|
|
Chip8 is a kind of assembly language for a long-gone architecture.
|
|
|
|
This plugin runs games written using the chip8 instructions.
|
2006-06-28 17:23:48 +00:00
|
|
|
To start a game open a \fname{.ch8} file in the \setting{File Browser}
|
2006-02-21 11:54:53 +00:00
|
|
|
|
|
|
|
There are lots of tiny Chip8 games (usually only about 256 bytes to a
|
|
|
|
couple of KB) which were made popular by the HP48
|
|
|
|
calculator's emulator for them. The original Chip8 had
|
|
|
|
64x32 pixel graphics, and the new superchip emulator supports 128x64
|
2006-03-11 07:52:11 +00:00
|
|
|
graphics.
|
|
|
|
|
|
|
|
The only problem is that they are based on a 4x4 keyboard, but since most
|
2006-02-21 11:54:53 +00:00
|
|
|
games do not use all of the buttons, this can easily be worked around.
|
|
|
|
|
2007-01-07 17:23:57 +00:00
|
|
|
To do this, one may put a \fname{.c8k} file with the same name as the
|
2006-06-28 17:23:48 +00:00
|
|
|
original program which contains new key mappings (for \fname{BLINKY.ch8}, one
|
|
|
|
writes a \fname{BLINKY.c8k} file). That \fname{.c8k} file contains 16
|
|
|
|
characters describing the mapping from the Chip8 keyboard to the default key
|
2006-03-11 07:52:11 +00:00
|
|
|
mapping (that way, several Chip8 keys can be pressed using only one
|
2007-01-07 17:23:57 +00:00
|
|
|
Rockbox key). For example, a file containing the single line:
|
|
|
|
\begin{code}
|
|
|
|
0122458469ABCDEF
|
|
|
|
\end{code}
|
|
|
|
would correspond to the following non-default mappings:
|
|
|
|
|
|
|
|
3 $\rightarrow$ 2, 6 $\rightarrow$ 8, 7 $\rightarrow$4, 8 $\rightarrow$ 6.
|
|
|
|
|
|
|
|
The default keymappings are:
|
2006-04-03 22:45:01 +00:00
|
|
|
\begin{table}
|
2007-01-07 17:23:57 +00:00
|
|
|
\begin{center}
|
|
|
|
\begin{tabularx}{.9\textwidth}{c|ccccccccccccccccc}
|
|
|
|
\toprule
|
|
|
|
Chip8 & Off & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9
|
|
|
|
& A & B & C & D & E & F\\
|
|
|
|
\midrule
|
|
|
|
\begin{sideways}Key\end{sideways}
|
|
|
|
&
|
|
|
|
% key "off"
|
|
|
|
\begin{sideways}
|
|
|
|
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
|
|
|
|
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
|
2007-01-19 06:45:59 +00:00
|
|
|
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD}{\ButtonPower}
|
2007-01-07 17:23:57 +00:00
|
|
|
\end{sideways}
|
|
|
|
&
|
|
|
|
% Key "0"
|
|
|
|
&
|
|
|
|
% "Key "1"
|
|
|
|
\begin{sideways}
|
2007-01-14 09:55:19 +00:00
|
|
|
\opt{RECORDER_PAD}{\ButtonFOne}
|
|
|
|
\opt{ONDIO_PAD}{\ButtonUp}
|
2007-01-07 17:23:57 +00:00
|
|
|
\end{sideways}
|
|
|
|
&
|
|
|
|
% Key "2"
|
|
|
|
\begin{sideways}
|
|
|
|
\opt{RECORDER_PAD,ONDIO_PAD}{\ButtonUp}
|
2008-01-29 17:15:01 +00:00
|
|
|
\opt{IPOD_4G_PAD,IPOD_3G_PAD,SANSA_E200_PAD}{\ButtonScrollBack}
|
2007-01-07 17:23:57 +00:00
|
|
|
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD}{\ButtonUp}
|
2008-01-29 17:15:01 +00:00
|
|
|
\opt{IRIVER_H10_PAD}{\ButtonScrollUp}
|
2007-01-07 17:23:57 +00:00
|
|
|
\end{sideways}
|
|
|
|
&
|
|
|
|
% Key "3"
|
|
|
|
\begin{sideways}
|
|
|
|
\opt{RECORDER_PAD}{\ButtonFThree}
|
|
|
|
\end{sideways}
|
|
|
|
% Key "4"
|
|
|
|
\begin{sideways}
|
2007-01-19 06:45:59 +00:00
|
|
|
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IPOD_4G_PAD,IPOD_3G_PAD,IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD}{\ButtonLeft}
|
2007-01-07 17:23:57 +00:00
|
|
|
\end{sideways}
|
|
|
|
&
|
|
|
|
% Key "5"
|
|
|
|
\begin{sideways}
|
2007-01-14 09:55:19 +00:00
|
|
|
\opt{RECORDER_PAD}{\ButtonPlay}
|
|
|
|
\opt{ONDIO_PAD}{\ButtonMenu}
|
|
|
|
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD,SANSA_E200_PAD}{\ButtonSelect}
|
2007-01-19 06:45:59 +00:00
|
|
|
\opt{IPOD_4G_PAD,IPOD_3G_PAD,IRIVER_H10_PAD}{\ButtonPlay}
|
2007-01-07 17:23:57 +00:00
|
|
|
\end{sideways}
|
|
|
|
&
|
|
|
|
% Key "6"
|
|
|
|
\begin{sideways}
|
2007-01-19 06:45:59 +00:00
|
|
|
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IPOD_4G_PAD,IPOD_3G_PAD,IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD}{\ButtonRight}
|
2007-01-07 17:23:57 +00:00
|
|
|
\end{sideways}
|
|
|
|
&
|
|
|
|
% Key "7"
|
|
|
|
\begin{sideways}
|
|
|
|
\opt{RECORDER_PAD}{\ButtonFTwo}
|
|
|
|
\end{sideways}
|
|
|
|
&
|
|
|
|
% Key "8"
|
|
|
|
\begin{sideways}
|
|
|
|
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonDown}
|
2008-01-29 17:15:01 +00:00
|
|
|
\opt{IPOD_4G_PAD,IPOD_3G_PAD,SANSA_E200_PAD}{\ButtonScrollFwd}
|
2007-01-07 17:23:57 +00:00
|
|
|
\opt{IAUDIO_X5_PAD}{\ButtonDown}
|
2008-01-29 17:15:01 +00:00
|
|
|
\opt{IRIVER_H10_PAD}{\ButtonScrollDown}
|
2007-01-07 17:23:57 +00:00
|
|
|
\end{sideways}
|
|
|
|
&
|
|
|
|
% Key "9"
|
|
|
|
\begin{sideways}
|
|
|
|
\opt{RECORDER_PAD}{\ButtonOn}
|
|
|
|
\end{sideways}
|
|
|
|
&
|
|
|
|
% Key "A"
|
|
|
|
&
|
|
|
|
% Key "B"
|
|
|
|
&
|
|
|
|
% Key "C"
|
|
|
|
&
|
|
|
|
% Key "D"
|
|
|
|
&
|
|
|
|
% Key "E"
|
|
|
|
&
|
|
|
|
% Key "F"
|
|
|
|
&
|
|
|
|
\\\bottomrule
|
|
|
|
\end{tabularx}
|
|
|
|
\end{center}
|
2006-03-11 07:52:11 +00:00
|
|
|
\end{table}
|
2006-02-21 11:54:53 +00:00
|
|
|
|
2006-06-28 17:23:48 +00:00
|
|
|
Some places where can you can find \fname{.ch8} files:
|
2006-02-21 11:54:53 +00:00
|
|
|
\begin{itemize}
|
2006-03-11 07:52:11 +00:00
|
|
|
\item The PluginChip8 page on www.rockbox.org has several attached:
|
2006-07-22 14:02:07 +00:00
|
|
|
\wikilink{PluginChip8}
|
2006-02-21 11:54:53 +00:00
|
|
|
\item Check out the HP48 chip games section:
|
|
|
|
\url{http://www.hpcalc.org/hp48/games/chip/}
|
2006-03-11 07:52:11 +00:00
|
|
|
\item PC emulator by the guy who wrote the HP48 emulator:
|
2006-02-21 11:54:53 +00:00
|
|
|
\url{http://www.pdc.kth.se/~lfo/chip8/CHIP8.htm}
|
|
|
|
\item Links to other chip8 emulators:
|
|
|
|
\url{http://www.zophar.net/chip8.html}
|
|
|
|
\end{itemize}
|