1
0
Fork 0
forked from len0rd/rockbox
foxbox/apps/plugins
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
..
beatbox Separate keymaps for YH-820 and YH-920/925 2014-05-24 00:50:11 +02:00
bitmaps Correction of the Sliding puzzle on Samsung YH-820. 2014-09-08 15:23:13 +02:00
chessbox YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
clock Make fixepoint.c as a shared library (libfixedpoint.a). 2013-04-26 00:11:04 +02:00
doom YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
fft Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
fractals Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
frotz Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
goban YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
imageviewer Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
lib Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
lua lcd-24bit: Introduce a 24-bit mid-level LCD driver 2014-06-21 00:15:53 +02:00
midi YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
mikmod mikmod plugin: Remove bogus doubled return statement 2014-12-22 22:33:28 +01:00
mpegplayer Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
pacbox YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
pdbox Deprecate the EXTRA_LIBS variable. 2013-01-24 16:06:45 +01:00
pictureflow YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
reversi Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
rockboy Rockboy plugin: remove second keymap definition for the Iriver H10, added in 2014-10-22 09:59:26 +02:00
searchengine
shortcuts plugins: another round of making local functions static 2011-10-15 20:38:08 +00:00
sudoku Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
text_viewer text_viewer plugin: Fix two out-of-bounds buffer accesses 2014-12-20 12:55:20 +01:00
xworld Xworld - Another World interpreter for Rockbox 2014-12-23 23:48:12 +01:00
zxbox zxbox: Add missing break; statement 2014-12-22 21:50:47 +01:00
2048.c 2048: service pack 1 :) 2014-08-19 22:37:54 +02:00
alarmclock.c Implement time-based resume and playback start. 2014-03-10 04:12:30 +01:00
alpine_cdc.c Implement time-based resume and playback start. 2014-03-10 04:12:30 +01:00
battery_bench.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
bench_mem_jpeg.c
bench_scaler.c
blackjack.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
boomshine.lua scroll_engine: Rename scroll_stop* functions to be more consistent with the lcd api. 2013-12-14 23:11:30 +01:00
bounce.c Make fixepoint.c as a shared library (libfixedpoint.a). 2013-04-26 00:11:04 +02:00
brickmania.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
bubbles.c Bubbles: make it work on Samsung YH-820 and align it on the occasion on Cowon M3. 2014-09-08 14:09:58 +02:00
BUILD_OVERLAY
calculator.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
calendar.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
CATEGORIES Xworld - Another World interpreter for Rockbox 2014-12-23 23:48:12 +01:00
chessbox.c
chessclock.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
chip8.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
chopper.c zen/zenxfi/zenxfistyle/zenmozaic: implement plugin keymaps and enable plugins 2014-07-17 10:40:17 +02:00
clix.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
codebuster.c
credits.c
credits.pl
crypt_firmware.c
cube.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
demystify.c plugins: another round of making local functions static 2011-10-15 20:38:08 +00:00
dice.c Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
dict.c plugins: make local functions static for a subset of plugins 2011-09-17 17:20:27 +00:00
disktidy.c Fixed disktidy bug and added a couple of new features to disktidy. 2014-10-09 09:43:40 +02:00
disktidy.config Revert r31239 and r31250. Selecting ALL in disktidy used to be generally safe for most people, and these changes change that, making it easy to delete most or all of a user's music. This is a *very* bad idea. 2011-12-26 00:03:28 +00:00
elfdep.pl
euroconverter.c
fire.c lcd-24bit: Introduce a 24-bit mid-level LCD driver 2014-06-21 00:15:53 +02:00
fireworks.c fireworks: ues PLA_EXIT to exit without going through the menu. 2012-02-24 15:06:18 +01:00
firmware_flash.c
flipit.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
goban.c
greyscale.c Separate keymaps for YH-820 and YH-920/925 2014-05-24 00:50:11 +02:00
helloworld.c
helloworld.lua
invadrox.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
iriver_flash.c
iriverify.c Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
jackpot.c plugins: another round of making local things static and adding missing #includes 2011-12-28 11:32:13 +00:00
jewels.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
keybox.c hosted: Rename a bit in functions to avoid name clashes with unix headers. 2014-02-23 23:36:11 +01:00
lamp.c Additional colors for lamp.rock 2013-02-04 09:08:16 +01:00
logo.c Fix some build errors and warnings. 2014-06-21 00:49:05 +02:00
lrcplayer.c Implement time-based resume and playback start. 2014-03-10 04:12:30 +01:00
main_menu_config.c fix red, strtok_r being annoying on sim builds 2014-02-13 22:24:29 +11:00
matrix.c matrix plugin: Fix out-of-bounds array access. Unify for-loop style. 2012-06-03 23:37:33 +02:00
maze.c Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
mazezam.c
md5sum.c
metronome.c Separate keymaps for YH-820 and YH-920/925 2014-05-24 00:50:11 +02:00
minesweeper.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
mosaique.c Plugin mosaique PLA integration (code + manual) 2012-03-03 16:37:47 +01:00
mp3_encoder.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
nim.c
oscilloscope.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
pegbox.c Pegbox: use the same keymap for Samsung YH820 and YH920. 2014-10-22 09:59:26 +02:00
periodic_table.c Ptable: hopefully fix all the warnings, modify actinide/lanthanide behavior once again 2014-09-25 00:15:58 +02:00
pictureflow.c
pitch_detector.c Revise the PCM callback system after adding multichannel audio. 2012-03-03 07:23:38 +01:00
plasma.c lcd-24bit: Introduce a 24-bit mid-level LCD driver 2014-06-21 00:15:53 +02:00
plugin.lds Fix .ncbss from possibly overlapping .ncdata in plugins/codecs. 2013-07-11 04:32:23 -04:00
plugin_crt0.c Commit to certain names for cache coherency APIs and discard the aliases. 2011-12-17 07:27:24 +00:00
plugins.make Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
pong.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
properties.c Rewrite filesystem code (WIP) 2014-08-30 03:48:23 +02:00
random_folder_advance_config.c plugins: Add plugin_release_audio_buffer(). 2014-04-09 09:04:10 +02:00
remote_control.c
resistor.c scroll_engine: Rename scroll_stop* functions to be more consistent with the lcd api. 2013-12-14 23:11:30 +01:00
robotfindskitten.c
rockblox.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
rockblox1d.c rockblox1d's plugin PLA integration (main code + manual) 2012-02-18 23:57:22 +01:00
rockbox-fonts.config
rockbox_flash.c Improve rockbox_flash messages 2012-02-05 16:26:09 +01:00
rockboy.c
rocklife.c plugins: another round of making local functions static 2011-10-15 20:38:08 +00:00
rockpaint.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
search.c Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope. 2011-10-15 19:35:02 +00:00
settings_dumper.c EQ settings: Rework the settings to clean up the config file. 2013-02-09 13:05:32 +01:00
shopper.c plugins: make local functions static for a subset of plugins 2011-09-17 17:20:27 +00:00
sliding_puzzle.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
snake.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
snake2.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
snake2.levels
snow.c Plugin snow PLA integration (code + manual) 2012-03-03 10:48:22 +01:00
sokoban.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
sokoban.levels
solitaire.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
sort.c plugins: make local functions static for a subset of plugins 2011-09-17 17:20:27 +00:00
SOURCES Add ptable to SOURCES 2014-09-25 00:44:40 +02:00
SOURCES.app_build clix: Add cells for 320x480. Enable for touchscreen RaaA. 2012-01-30 00:51:43 +01:00
spacerocks.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
splitedit.c Separate keymaps for YH-820 and YH-920/925 2014-05-24 00:50:11 +02:00
star.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
starfield.c Clean up peak calculating code. 2012-05-02 20:53:07 -04:00
stats.c stats's plugin PLA integration (main code + manual) 2012-02-22 09:15:50 +01:00
stopwatch.c zen/zenxfi/zenxfistyle/zenmozaic: implement plugin keymaps and enable plugins 2014-07-17 10:40:17 +02:00
stopwatch.lua stopwatch.lua: Improve button layout. Enable on touchscreen RaaA. 2012-01-29 22:35:49 +01:00
SUBDIRS Xworld - Another World interpreter for Rockbox 2014-12-23 23:48:12 +01:00
SUBDIRS.app_build reversi: Fix viewport initialization. Improve button layout for portrait. Enable for toucschreen RaaA. 2012-01-30 00:17:47 +01:00
superdom.c Superdom: Silence warning. 2014-09-14 05:16:10 +02:00
test_boost.c
test_codec.c Enable setting of global output samplerate on certain targets. 2013-07-06 04:22:04 +02:00
test_core_jpeg.c
test_disk.c test_disk: Add an additional dirscan test that calls dir_get_info() also. 2014-02-25 09:57:18 +01:00
test_fps.c test_X plugins PLA integration 2012-03-03 19:55:51 +01:00
test_gfx.c test_gfx: Add benchmark for put_line(). 2014-01-07 14:13:41 +01:00
test_grey.c test_X plugins PLA integration 2012-03-03 19:55:51 +01:00
test_greylib_bitmap_scale.c test_X plugins PLA integration 2012-03-03 19:55:51 +01:00
test_mem.c test_mem: silence -Wunused-but-set-variable warning 2013-06-13 18:56:23 +02:00
test_mem_jpeg.c
test_resize.c
test_sampr.c Revise the PCM callback system after adding multichannel audio. 2012-03-03 07:23:38 +01:00
test_scanrate.c test_X plugins PLA integration 2012-03-03 19:55:51 +01:00
test_touchscreen.c [ONDAV VX777][simulator] fix missing keymaps in test_touchscreen 2013-07-29 19:07:19 +02:00
test_viewports.c lcd-16bit: Remove {lss,lse,lst}_pattern fields from struct viewport. 2014-01-07 14:13:48 +01:00
test_viewports.lua
text_editor.c Don't reinvent ctype.h functions 2012-05-07 18:43:12 +02:00
theme_remove.c
vbrfix.c GSoC/Buflib: Replace all direct accesses to audiobuf with buffer API functions. 2011-08-14 15:13:00 +00:00
video.c Tweak paramters of mp3_play_data and callback. 2012-03-04 14:50:47 -05:00
viewers.config imageviewer: gif viewer based on giflib-5.0.2 2012-11-13 18:13:10 +01:00
vu_meter.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
wav2wv.c
wavplay.c
wavrecord.c wavrecord plugin: Add harmless sanity check 2014-12-21 17:22:09 +01:00
wavview.c plugins: make local functions static for metronome, rockblox1d, wavview 2011-10-04 19:33:52 +00:00
wormlet.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
xobox.c YH820/YH92X: Improve some keymaps for plugins. 2014-10-22 09:59:26 +02:00
zxbox.c