rockbox/apps/plugins/xworld
William Wilgus 3237ae4a4f LCD core move buf ptr and address look up function viewport struct
I'm currently running up against the limitations of the lcd_draw functions
I want these functions to be able to be used on any size buffer not
just buffers with a stride matching the underlying device

[DONE] allow the framebuffer to be decoupled from the device framebuffer
[DONE need examples] allow for some simple blit like transformations
[DONE] remove the device framebuffer from the plugin api
[DONE}ditto remote framebuffer
[DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr

while remote lcds may compile (and work in the sim) its not been tested on targets

[FIXED] backdrops need work to be screen agnostic

[FIXED] screen statusbar is not being combined into the main viewport correctly yet

[FIXED] screen elements are displayed incorrectly  after switch to void*

[FIXED] core didn't restore proper viewport on splash etc.

[NEEDS TESTING] remote lcd garbled data

[FIXED] osd lib garbled screen on bmp_part

[FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport

[FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer

[FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw)
[UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear
scrolling viewports no longer trigger wps refresh
also fixed a bug where guisyncyesno was displaying and then disappearing

[ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes
(LCD_ and LCD_REMOTE_)
LCD_STRIDE(w, h) same as STRIDE_MAIN
LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H
LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H
LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH)
test_viewports.c has an example of usage

[FIXED!!] 2bit targets don't respect non-native strides
[FIXED] Few define snags

Change-Id: I0d04c3834e464eca84a5a715743a297a0cefd0af
2020-10-26 12:28:48 -04:00
..
awendian.h
bank.c
bank.h
engine.c xworld: get rid of annoying warning 2017-02-12 20:36:31 -05:00
engine.h
file.c
file.h
intern.h XWorld: some fixes 2016-11-19 19:17:14 +01:00
mixer.c XWorld: some fixes 2016-11-19 19:17:14 +01:00
mixer.h
parts.c
parts.h
README
README.newraw
README.rockbox
resource.c xworld: support diagonal buttons on Zen X-Fi 2017-09-30 20:50:33 -04:00
resource.h
serializer.c
serializer.h
sfxplayer.c
sfxplayer.h
SOURCES XWorld: some fixes 2016-11-19 19:17:14 +01:00
sys.c LCD core move buf ptr and address look up function viewport struct 2020-10-26 12:28:48 -04:00
sys.h xworld: support diagonal buttons on Zen X-Fi 2017-09-30 20:50:33 -04:00
util.c
util.h XWorld: cleanup 2014-12-28 02:48:42 +01:00
video_data.c XWorld: some fixes 2016-11-19 19:17:14 +01:00
video_data.h
video.c
video.h
vm.c XWorld: some fixes 2016-11-19 19:17:14 +01:00
vm.h
xworld.c XWorld: cleanup 2014-12-28 02:48:42 +01:00
xworld.make

This is the original readme from the "Fabother World" sources; the Rockbox port's
readme is in README.rockbox.

Franklin Wei

=================================================================================

This is "Fabother World": an Another World (Out Of This World in North America) interpreter codebase. This work is based on:

- Piotr Padkowski's newRaw interpreter which was based on
- Gregory Montoir's reverse engineering of
- Eric Chahi's assembly code.

I cleaned up a lot of the code, removing cryptic hexadecimal notation
with meaningful macros name. I also cleanup a lot of the code so it has a 
C/C++ philosophy instead of an assembly structure.

I also created a Visual Studio 2010 project.

TODO:

Create a MacOS X project.
Add a different rendering path OpenGL support.

Fabien Sanglard


raw README
Release version: 0.1.1 (May 15 2004)
-------------------------------------------------------------------------------

About:
------

raw is a re-implementation of the engine used in the game Another World. This 
game, released under the name Out Of This World in non-European countries, was 
written by Eric Chahi at the beginning of the '90s. More information can be 
found here : http://www.mobygames.com/game/sheet/p,2/gameId,564/.

Please be aware that, currently, this implementation may contains bugs and 
non-implemented features that make it impossible to finish the game.

Supported Versions:
-------------------

Currently, only the english PC DOS version is supported ("Out of this World").

Compiling:
----------

Tweak the Makefile if needed and type make (only gcc3 has been tested so far).
The SDL and zlib libraries are required.

Running:
--------

You will need the original files, here is the required list :
    BANK*
    MEMLIST.BIN
	
To start the game, you can either :
- put the game's datafiles in the same directory as the executable
- use the --datapath command line option to specify the datafiles directory

Here are the various in game hotkeys :
    Arrow Keys      allow you to move Lester
    Enter/Space     allow you run/shoot with your gun
    C               allow to enter a code to jump at a specific level
    P               pause the game
    Alt X           exit the game
    Ctrl S          save game state
    Ctrl L          load game state
    Ctrl + and -    change game state slot
    Ctrl F          toggle fast mode
    Alt Enter       toggle windowed/fullscreen mode
    Alt + and -     change scaler factor

Credits:
--------

Eric Chahi, obviously, for making this great game.

Contact:
--------

Gregory Montoir, cyx@users.sourceforge.net