From 33cb13dee5a527ac445ea1b13d42723e4eb3e3b0 Mon Sep 17 00:00:00 2001
From: Franklin Wei <frankhwei536@gmail.com>
Date: Mon, 13 Oct 2014 21:00:47 -0400
Subject: 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>
---
 manual/plugins/xworld.tex | 81 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 manual/plugins/xworld.tex

(limited to 'manual/plugins/xworld.tex')

diff --git a/manual/plugins/xworld.tex b/manual/plugins/xworld.tex
new file mode 100644
index 0000000000..32e3ecbf78
--- /dev/null
+++ b/manual/plugins/xworld.tex
@@ -0,0 +1,81 @@
+\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}
-- 
cgit v1.2.3

