1
0
Fork 0
forked from len0rd/rockbox
foxbox/manual/plugins/xworld.tex
Franklin Wei 33cb13dee5 Xworld - Another World interpreter for Rockbox
Co-conspirators: Franklin Wei, Benjamin Brown

--------------------------------------------------------------------
This work is based on:
- Fabien Sanglard's "Fabother World" based on
- Piotr Padkowski's newRaw interpreter which was based on
- Gregory Montoir's reverse engineering of
- Eric Chahi's assembly code

--------------------------------------------------------------------
Progress:

* The plugin runs pretty nicely (with sound!) on most color targets
* Keymaps for color LCD targets are complete
* The manual entry is finished
* Grayscale/monochrome support is NOT PLANNED
  - the game looks horrible in grayscale! :p

--------------------------------------------------------------------
Notes:

* The original game strings were built-in to the executable, and
  were copyrighted and could not be used.
* This port ships with an alternate set of strings by default, but
  can load the "official" strings from a file at runtime.

--------------------------------------------------------------------
To be done (in descending order of importance):

* vertical stride compatibility                          <30% done>
* optimization                                           <10% done>

Change-Id: I3155b0d97c2ac470cb8a2040f40d4139ddcebfa5
Reviewed-on: http://gerrit.rockbox.org/1077
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-12-23 23:48:12 +01:00

81 lines
3.9 KiB
TeX

\subsection{XWorld}
In this cinematic, award winning platform game by Éric Chahi, you must evade capture
and do your best to escape an alien planet. After an experiment goes awry the hero
must team up with an unlikely ally, when they both become fugitives on another world.
XWorld requires the data files, bank* and memlist.bin, from the original "Another World"
PC game to be copied into the .rockbox/xworld/ directory before the game can be played.
\begin{btnmap}
%
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD%
,SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD%
,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD,SANSA_FUZEPLUS_PAD%
,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}
{\ButtonUp}
\opt{IPOD_4G_PAD,IPOD_3G_PAD,IPOD_1G2G_PAD}{\ButtonMenu}
\opt{IRIVER_H10_PAD}{\ButtonScrollUp}
\opt{HAVE_TOUCHSCREEN}{\TouchTopMiddle}
\opt{PBELL_VIBE500_PAD}{\ButtonOk}
\opt{HAVEREMOTEKEYMAP}{& }
& Up and Jump \\
%
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD%
,SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD%
,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD,SANSA_FUZEPLUS_PAD%
,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}
{\ButtonDown}
\opt{IPOD_4G_PAD,IPOD_3G_PAD,IPOD_1G2G_PAD}{\ButtonPlay}
\opt{IRIVER_H10_PAD}{\ButtonScrollDown}
\opt{HAVE_TOUCHSCREEN}{\TouchBottomMiddle}
\opt{PBELL_VIBE500_PAD}{\ButtonCancel}
\opt{HAVEREMOTEKEYMAP}{& }
& Down and Crouch\\
%
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD%
,SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD%
,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD,SANSA_FUZEPLUS_PAD%
,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD,IPOD_4G_PAD,IPOD_3G_PAD,IPOD_1G2G_PAD%
,IRIVER_H10_PAD}
{\ButtonLeft / \ButtonRight}
\opt{HAVE_TOUCHSCREEN}{\TouchMidLeft / \TouchMidRight}
\opt{PBELL_VIBE500_PAD}{\ButtonMenu / \ButtonPlay}
\opt{HAVEREMOTEKEYMAP}{& }
& Move Left and Right\\
%
\opt{SANSA_FUZE_PAD}{\ButtonHome}
\opt{SAMSUNG_YH920_PAD}{\ButtonFFWD}
\opt{IRIVER_H300_PAD,SANSA_E200_PAD,SAMSUNG_YH820_PAD,IAUDIO_X5M5_PAD}{\ButtonRec}
\opt{IPOD_4G_PAD,IPOD_3G_PAD,IPOD_1G2G_PAD,CREATIVE_ZEN_PAD,SANSA_CLIP_PAD}{\ButtonSelect}
\opt{SONY_NWZ_PAD,CREATIVEZVM_PAD}{\ButtonPlay}
\opt{ONDAVX777_PAD,MROBE500_PAD,PBELL_VIBE500_PAD}{\ButtonPower}
\opt{SAMSUNG_YPR0_PAD}{\ButtonUser}
\opt{IRIVER_H10_PAD}{\ButtonRew}
\opt{HM801_PAD}{\ButtonPrev}
\opt{SONY_NWZ_PAD,CREATIVEZVM_PAD}{\ButtonPlay}
\opt{MROBE500_PAD}{\ButtonPower}
\opt{DX50_PAD,ONDAVX747_PAD,PHILIPS_HDD1630_PAD,PHILIPS_HDD6330_PAD,PHILIPS_SA9200_PAD%
,CREATIVE_ZENXFI2_PAD,CREATIVE_ZENXFI3_PAD,SANSA_CONNECT_PAD,SANSA_C200_PAD%
,SANSA_FUZEPLUS_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD}{\ButtonVolUp}
\opt{HAVE_TOUCHSCREEN}{\ButtonBottomLeft}
\opt{HAVEREMOTEKEYMAP}{& }
& Action and Fire\\
%
\opt{DX50_PAD,ONDAVX747_PAD,PHILIPS_HDD1630_PAD,PHILIPS_HDD6330_PAD,PHILIPS_SA9200_PAD%
,CREATIVE_ZENXFI2_PAD,CREATIVE_ZENXFI3_PAD,SANSA_CONNECT_PAD,SANSA_C200_PAD%
,SANSA_FUZEPLUS_PAD}{\ButtonVolDown}
\opt{GIGABEAT_PAD,GIGABEAT_S_PAD}{\ButtonMenu}
\opt{SANSA_FUZE_PAD}{\ButtonSelect}
\opt{SAMSUNG_YH920_PAD}{\ButtonRew}
\opt{SAMSUNG_YH820_PAD,IAUDIO_X5M5_PAD}{\ButtonPlay}
\opt{SANSA_E200_PAD,SANSA_CLIP_PAD}{\ButtonPower}
\opt{CREATIVE_ZEN_PAD,SONY_NWZ_PAD}{\ButtonBack}
\opt{CREATIVEZVM_PAD,SAMSUNG_YPR0_PAD}{\ButtonMenu}
\opt{IRIVER_H300_PAD}{\ButtonMode}
\opt{HM801_PAD}{\ButtonNext}
\opt{PBELL_VIBE500_PAD}{\ButtonRec}
\opt{IRIVER_H10_PAD}{\ButtonPlay}
\opt{IPOD_4G_PAD,IPOD_3G_PAD,IPOD_1G2G_PAD}{\ButtonMenu / \ButtonSelect}
\opt{HAVEREMOTEKEYMAP}{& }
& Menu\\
\end{btnmap}