Home | History | Annotate | only in /external/qemu/distrib/sdl-1.2.15
Up to higher level directory
NameDateSize
acinclude/09-Oct-2013
android-configure.sh09-Oct-201314.5K
autogen.sh09-Oct-2013498
Borland.html09-Oct-20136.4K
Borland.zip09-Oct-2013154.2K
BUGS09-Oct-2013489
build-scripts/09-Oct-2013
configure.in09-Oct-2013100.5K
COPYING09-Oct-201323.8K
CREDITS09-Oct-20133K
CWprojects.sea.bin09-Oct-2013465K
docs/09-Oct-2013
docs.html09-Oct-201319.4K
include/09-Oct-2013
INSTALL09-Oct-2013766
Makefile09-Oct-20132K
Makefile.android09-Oct-20132K
Makefile.dc09-Oct-20132.4K
Makefile.ds09-Oct-20131.6K
Makefile.in09-Oct-20136.3K
Makefile.minimal09-Oct-2013758
MPWmake.sea.bin09-Oct-201321.6K
README09-Oct-20131.8K
README-SDL.txt09-Oct-2013425
README.AmigaOS09-Oct-2013329
README.ANDROID09-Oct-2013271
README.BeOS09-Oct-2013369
README.DC09-Oct-2013639
README.HG09-Oct-2013914
README.MacOS09-Oct-20132.3K
README.MacOSX09-Oct-20137.8K
README.MiNT09-Oct-20138.8K
README.NanoX09-Oct-20133.4K
README.NDS09-Oct-2013575
README.OS209-Oct-201310K
README.PicoGUI09-Oct-20131.7K
README.Porting09-Oct-20131.8K
README.PS309-Oct-2013968
README.QNX09-Oct-20136.7K
README.Qtopia09-Oct-20133.6K
README.RISCOS09-Oct-20135.6K
README.Symbian09-Oct-2013661
README.Watcom09-Oct-20134.3K
README.WinCE09-Oct-20131.7K
README.wscons09-Oct-20133.6K
sdl-config.in09-Oct-20131.4K
sdl.m409-Oct-20136.4K
sdl.pc.in09-Oct-2013486
SDL.qpg.in09-Oct-20137.7K
SDL.spec.in09-Oct-20133K
sources.make09-Oct-20135.2K
src/09-Oct-2013
symbian.zip09-Oct-2013370K
test/09-Oct-2013
TODO09-Oct-20131,000
VisualC/09-Oct-2013
VisualC.html09-Oct-20135.4K
VisualCE/09-Oct-2013
Watcom-OS2.zip09-Oct-201361.6K
Watcom-Win32.zip09-Oct-20133.6K
WhatsNew09-Oct-201327.2K
Xcode/09-Oct-2013

README

      1 
      2                          Simple DirectMedia Layer
      3 
      4                                   (SDL)
      5 
      6                                 Version 1.2
      7 
      8 ---
      9 http://www.libsdl.org/
     10 
     11 This is the Simple DirectMedia Layer, a general API that provides low
     12 level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL,
     13 and 2D framebuffer across multiple platforms.
     14 
     15 The current version supports Linux, Windows CE/95/98/ME/XP/Vista, BeOS,
     16 MacOS Classic, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX,
     17 and QNX.  The code contains support for Dreamcast, Atari, AIX, OSF/Tru64,
     18 RISC OS, SymbianOS, Nintendo DS, and OS/2, but these are not officially
     19 supported.
     20 
     21 SDL is written in C, but works with C++ natively, and has bindings to
     22 several other languages, including Ada, C#, Eiffel, Erlang, Euphoria,
     23 Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP,
     24 Pike, Pliant, Python, Ruby, and Smalltalk.
     25 
     26 This library is distributed under GNU LGPL version 2, which can be
     27 found in the file  "COPYING".  This license allows you to use SDL
     28 freely in commercial programs as long as you link with the dynamic
     29 library.
     30 
     31 The best way to learn how to use SDL is to check out the header files in
     32 the "include" subdirectory and the programs in the "test" subdirectory.
     33 The header files and test programs are well commented and always up to date.
     34 More documentation is available in HTML format in "docs/index.html", and
     35 a documentation wiki is available online at:
     36 	http://www.libsdl.org/cgi/docwiki.cgi
     37 
     38 The test programs in the "test" subdirectory are in the public domain.
     39 
     40 Frequently asked questions are answered online:
     41 	http://www.libsdl.org/faq.php
     42 
     43 If you need help with the library, or just want to discuss SDL related
     44 issues, you can join the developers mailing list:
     45 	http://www.libsdl.org/mailing-list.php
     46 
     47 Enjoy!
     48 	Sam Lantinga				(slouken (a] libsdl.org)
     49 
     50 

README-SDL.txt

      1 
      2 Please distribute this file with the SDL runtime environment:
      3 
      4 The Simple DirectMedia Layer (SDL for short) is a cross-platfrom library
      5 designed to make it easy to write multi-media software, such as games and
      6 emulators.
      7 
      8 The Simple DirectMedia Layer library source code is available from:
      9 http://www.libsdl.org/
     10 
     11 This library is distributed under the terms of the GNU LGPL license:
     12 http://www.gnu.org/copyleft/lesser.html
     13 
     14 

README.AmigaOS

      1 The AmigaOS code has been removed from SDL, since it had been broken for a
      2  long time and had a few bits of fairly invasive code #ifdef'd into the
      3  SDL core.
      4 
      5 However, there is an OS4 version of SDL here:
      6    http://www.rcdrummond.net/amiga/index.html
      7 
      8 And a MorphOS version here:
      9    http://www.lehtoranta.net/powersdl/
     10 
     11 --ryan.
     12 
     13 

README.ANDROID

      1 This is a modified version of SDL 1.2.15 that is used by the Android QEMU
      2 emulator. See the git history for modifications relative to upstream.
      3 
      4 To build it as a static library on Linux, OS X and Windows:
      5 
      6 ./android-configure.sh  [--prefix=<path>]
      7 make -j2
      8 make install
      9 
     10 

README.BeOS

      1 
      2 SDL on BeOS R5
      3 ==============
      4 
      5 You can build SDL on BeOS like any other GNU style package.
      6 e.g. ./configure && make && make install
      7 By default it is installed in /boot/develop/tools/gnupro/{bin,lib,etc.}
      8 
      9 Once you install SDL, you need to copy libSDL.so to /boot/home/config/lib,
     10 so it can be found by the dynamic linker.
     11 
     12 Enjoy!
     13 	Sam Lantinga				(slouken (a] libsdl.org)
     14 

README.DC

      1 SDL for Dreamcast (beta2)
      2 
      3 	BERO
      4 	berobero (a] users.sourceforge.net 
      5 
      6 	http://www.geocities.co.jp/Playtown/2004/
      7 
      8 this work with kos-newlib
      9 http://sourceforge.net/projects/dcquake/
     10 
     11 compile
     12 - source environ.sh (from the KOS distribution)
     13 - make -f Makefile.dc
     14 
     15 compile with gl support
     16 - install latest libgl from http://sourceforge.net/projects/dcquake/
     17 - uncomment GL=1 in Makefile.dc
     18 - make -f Makefile.dc clean
     19 - make -f Makefile.dc
     20 
     21 install
     22 - copy include/*.h and libSDL.a or libSDL_gl.a for your enviroment
     23 
     24 changelog:
     25 
     26 beta2
     27 - OpenGL support
     28 - Hardware page flip support
     29 
     30 beta
     31 - thread, timer don't tested so much.
     32 - not support OpenGL
     33 

README.HG

      1 
      2 The latest development version of SDL is available via Mercurial.
      3 Mercurial allows you to get up-to-the-minute fixes and enhancements;
      4 as a developer works on a source tree, you can use "hg" to mirror that
      5 source tree instead of waiting for an official release. Please look
      6 at the Mercurial website ( http://mercurial.selenic.com/ ) for more
      7 information on using hg, where you can also download software for
      8 Mac OS X, Windows, and Unix systems.
      9 
     10   hg clone -u SDL-1.2 http://hg.libsdl.org/SDL
     11 
     12 If you are building SDL with an IDE, you will need to copy the file
     13 include/SDL_config.h.default to include/SDL_config.h before building.
     14 
     15 If you are building SDL via configure, you will need to run autogen.sh
     16 before running configure.
     17 
     18 There is a web interface to the subversion repository at:
     19 	http://hg.libsdl.org/SDL/
     20 
     21 There is an RSS feed available at that URL, for those that want to
     22 track commits in real time.
     23 
     24 

README.MacOS

      1 
      2 ==============================================================================
      3 Using the Simple DirectMedia Layer with MacOS 7,8,9 on PPC
      4 ==============================================================================
      5 
      6 These instructions are for people using the Apple MPW environment:
      7 http://developer.apple.com/tools/mpw-tools/
      8 
      9 CodeWarrior projects are available in the CWprojects directory.
     10 
     11 ==============================================================================
     12 I.  Building the Simple DirectMedia Layer libraries:
     13     (This step isn't necessary if you have the SDL binary distribution)
     14 
     15   First, unpack the MPWmake.sea.hqx archive and move SDL.make into the
     16   SDL directory.
     17 
     18   Start MPW
     19 
     20   Set the current directory within MPW to the SDL toplevel directory.
     21 
     22   Build "SDL"  (Type Command-B and enter "SDL" in the dialog)
     23 
     24   If everything compiles successfully, you now have the PPC libraries
     25   "SDL" and "SDLmain.o" in the 'lib' subdirectory.
     26 
     27 ==============================================================================
     28 II. Building the Simple DirectMedia Layer test programs:
     29 
     30   First, unpack the MPWmake.sea.hqx archive, move the new rsrc directory to
     31   the main SDL directory, and move the makefiles in the new test subdirectory
     32   to the SDL 'test' subdirectory.
     33 
     34   Start MPW
     35 
     36   Set the current directory within MPW to the SDL 'test' subdirectory.
     37 
     38   Build the programs that have an associated MPW makefile (file ending
     39   with .make), including "testwin", "testalpha", and "graywin".
     40 
     41   Copy the SDL library file into the test directory, and run!
     42 
     43 ==============================================================================
     44 III. Building the Simple DirectMedia Layer demo programs:
     45 
     46   Copy one of the test program Makefiles to the demo directory
     47   and modify it to match the sources in the demo.
     48 
     49 ==============================================================================
     50 IV.  Enjoy! :)
     51 
     52   If you have a project you'd like me to know about, or want to ask questions,
     53   go ahead and join the SDL developer's mailing list by sending e-mail to:
     54 
     55 	sdl-request (a] libsdl.org
     56 
     57   and put "subscribe" into the subject of the message. Or alternatively you
     58   can use the web interface:
     59 
     60 	http://www.libsdl.org/mailman/listinfo/sdl
     61   
     62 ==============================================================================
     63 
     64 

README.MacOSX

      1 ==============================================================================
      2 Using the Simple DirectMedia Layer with Mac OS X
      3 ==============================================================================
      4 
      5 These instructions are for people using Apple's Mac OS X (pronounced
      6 "ten").
      7 
      8 From the developer's point of view, OS X is a sort of hybrid Mac and
      9 Unix system, and you have the option of using either traditional
     10 command line tools or Apple's IDE Xcode.
     11 
     12 To build SDL using the command line, use the standard configure and make
     13 process:
     14 
     15 	./configure
     16 	make
     17 	sudo make install
     18 
     19 You can also build SDL as a Universal library (a single binary for both
     20 PowerPC and Intel architectures), on Mac OS X 10.4 and newer, by using
     21 the fatbuild.sh script in build-scripts:
     22 	sh build-scripts/fatbuild.sh
     23 	sudo build-scripts/fatbuild.sh install
     24 This script builds SDL with 10.2 ABI compatibility on PowerPC and 10.4
     25 ABI compatibility on Intel architectures.  For best compatibility you
     26 should compile your application the same way.  A script which wraps
     27 gcc to make this easy is provided in test/gcc-fat.sh
     28 
     29 To use the library once it's built, you essential have two possibilities:
     30 use the traditional autoconf/automake/make method, or use Xcode.
     31 
     32 ==============================================================================
     33 Using the Simple DirectMedia Layer with a traditional Makefile
     34 ==============================================================================
     35 
     36 An existing autoconf/automake build system for your SDL app has good chances
     37 to work almost unchanged on OS X. However, to produce a "real" Mac OS X binary
     38 that you can distribute to users, you need to put the generated binary into a
     39 so called "bundle", which basically is a fancy folder with a name like
     40 "MyCoolGame.app".
     41 
     42 To get this build automatically, add something like the following rule to
     43 your Makefile.am:
     44 
     45 bundle_contents = APP_NAME.app/Contents
     46 APP_NAME_bundle: EXE_NAME
     47 	mkdir -p $(bundle_contents)/MacOS
     48 	mkdir -p $(bundle_contents)/Resources
     49 	echo "APPL????" > $(bundle_contents)/PkgInfo
     50 	$(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/
     51 
     52 You should replace EXE_NAME with the name of the executable. APP_NAME is what
     53 will be visible to the user in the Finder. Usually it will be the same
     54 as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME 
     55 usually is "TestGame". You might also want to use @PACKAGE@ to use the package
     56 name as specified in your configure.in file.
     57 
     58 If your project builds more than one application, you will have to do a bit
     59 more.  For each of your target applications, you need a seperate rule.
     60 
     61 If you want the created bundles to be installed, you may want to add this
     62 rule to your Makefile.am:
     63 
     64 install-exec-hook: APP_NAME_bundle
     65 	rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app
     66 	mkdir -p $(DESTDIR)$(prefix)/Applications/
     67 	cp -r $< /$(DESTDIR)$(prefix)Applications/
     68 
     69 This rule takes the Bundle created by the rule from step 3 and installs them
     70 into $(DESTDIR)$(prefix)/Applications/.
     71 
     72 Again, if you want to install multiple applications, you will have to augment
     73 the make rule accordingly.
     74 
     75 
     76 But beware! That is only part of the story! With the above, you end up with
     77 a bare bone .app bundle, which is double clickable from the Finder. But
     78 there are some  more things you should do before shipping yor product...
     79 
     80 1) The bundle right now probably is dynamically linked against SDL. That 
     81    means that when you copy it to another computer, *it will not run*,
     82    unless you also install SDL on that other computer. A good solution
     83    for this dilemma is to static link against SDL. On OS X, you can
     84    achieve that by linkinag against the libraries listed by
     85      sdl-config --static-libs
     86    instead of those listed by
     87      sdl-config --libs
     88    Depending on how exactly SDL is integrated into your build systems, the
     89    way to achieve that varies, so I won't describe it here in detail
     90 2) Add an 'Info.plist' to your application. That is a special XML file which
     91    contains some meta-information about your application (like some copyright
     92    information, the version of your app, the name of an optional icon file,
     93    and other things). Part of that information is displayed by the Finder
     94    when you click on the .app, or if you look at the "Get Info" window.
     95    More information about Info.plist files can be found on Apple's homepage.
     96 
     97 
     98 As a final remark, let me add that I use some of the techniques (and some
     99 variations of them) in Exult and ScummVM; both are available in source on
    100 the net, so feel free to take a peek at them for inspiration!
    101 
    102 
    103 ==============================================================================
    104 Using the Simple DirectMedia Layer with Xcode
    105 ==============================================================================
    106 
    107 These instructions are for using Apple's Xcode IDE to build SDL applications.
    108 
    109 - First steps
    110 
    111 The Xcode project files are in the "Xcode" directory.
    112 
    113 - Building the Framework
    114 
    115 The SDL Library is packaged as a framework bundle, an organized
    116 relocatable folder heirarchy of executible code, interface headers, 
    117 and additional resources. For practical purposes, you can think of a 
    118 framework as a more user and system-friendly shared library, whose library
    119 file behaves more or less like a standard UNIX shared library.
    120 
    121 To build the framework, simply open the framework project and build it. 
    122 By default, the framework bundle "SDL.framework" is installed in 
    123 /Library/Frameworks. Therefore, the testers and project stationary expect
    124 it to be located there. However, it will function the same in any of the
    125 following locations:
    126 
    127     ~/Library/Frameworks
    128     /Local/Library/Frameworks
    129     /System/Library/Frameworks
    130 
    131 - Build Options
    132     There are two "Build Styles" (See the "Targets" tab) for SDL.
    133     "Deployment" should be used if you aren't tweaking the SDL library.
    134     "Development" should be used to debug SDL apps or the library itself.
    135 
    136 - Building the Testers
    137     Open the SDLTest project and build away!
    138 
    139 - Using the Project Stationary
    140     Copy the stationary to the indicated folders to access it from
    141     the "New Project" and "Add target" menus. What could be easier?
    142 
    143 - Setting up a new project by hand
    144     Some of you won't want to use the Stationary so I'll give some tips:
    145     * Create a new "Cocoa Application"
    146     * Add src/main/macosx/SDLMain.m , .h and .nib to your project
    147     * Remove "main.c" from your project
    148     * Remove "MainMenu.nib" from your project
    149     * Add "$(HOME)/Library/Frameworks/SDL.framework/Headers" to include path
    150     * Add "$(HOME)/Library/Frameworks" to the frameworks search path
    151     * Add "-framework SDL -framework Foundation -framework AppKit" to "OTHER_LDFLAGS"
    152     * Set the "Main Nib File" under "Application Settings" to "SDLMain.nib"
    153     * Add your files
    154     * Clean and build
    155 
    156 - Building from command line
    157     Use pbxbuild in the same directory as your .pbproj file
    158          
    159 - Running your app
    160     You can send command line args to your app by either invoking it from
    161     the command line (in *.app/Contents/MacOS) or by entering them in the
    162     "Executibles" panel of the target settings.
    163     
    164 - Implementation Notes
    165     Some things that may be of interest about how it all works...
    166     * Working directory
    167         As defined in the SDL_main.m file, the working directory of your SDL app
    168         is by default set to its parent. You may wish to change this to better
    169         suit your needs.
    170     * You have a Cocoa App!
    171         Your SDL app is essentially a Cocoa application. When your app
    172         starts up and the libraries finish loading, a Cocoa procedure is called,
    173         which sets up the working directory and calls your main() method.
    174         You are free to modify your Cocoa app with generally no consequence 
    175         to SDL. You cannot, however, easily change the SDL window itself.
    176         Functionality may be added in the future to help this.
    177 	
    178 
    179 Known bugs are listed in the file "BUGS"
    180 

README.MiNT

      1 ==============================================================================
      2 Using the Simple DirectMedia Layer on Atari
      3 ==============================================================================
      4 
      5 
      6     If you want to build SDL from sources to create SDL programs on Atari:
      7         see sections I - II.
      8 	
      9     If you want to create SDL programs on Atari using SDL binary build,
     10         download it from my web site (URL at end of this file).
     11 
     12     If you want to configure a program using SDL on Atari,
     13 	    see sections IV - VI.
     14 
     15 
     16 ==============================================================================
     17 I.  Building the Simple DirectMedia Layer libraries:
     18     (This step isn't necessary if you have the SDL binary distribution)
     19 
     20   Do the classic configure, with --disable-shared --enable-static and:
     21 
     22     Tos version (should run everywhere):
     23       --disable-threads
     24     Tos does not support threads.
     25 
     26     MiNT version (maybe Magic, only for multitasking OS):
     27       --disable-pthreads --enable-pth
     28     Mint and Magic may supports threads, so audio can be used with current
     29     devices, like Sun audio, or disk-writing support. Like Tos, interrupt
     30     audio without threads is more suited for Atari machines.
     31 
     32   Then you can make ; make install it.
     33 
     34 ==============================================================================
     35 II. Building the Simple DirectMedia Layer test programs:
     36 
     37   Do the classic configure, then make.
     38 
     39   Run them !
     40 
     41 ==============================================================================
     42 III.  Enjoy! :)
     43 
     44   If you have a project you'd like me to know about, or want to ask questions,
     45   go ahead and join the SDL developer's mailing list by sending e-mail to:
     46 
     47 	sdl-request (a] libsdl.org
     48 
     49   and put "subscribe" into the subject of the message. Or alternatively you
     50   can use the web interface:
     51 
     52 	http://www.libsdl.org/mailman/listinfo/sdl
     53   
     54 ==============================================================================
     55 IV.  What is supported:
     56 
     57 Keyboard (GEMDOS, BIOS, GEM, Ikbd)
     58 Mouse (XBIOS, GEM, Ikbd, /dev/mouse (non working atm, disabled))
     59 Video (XBIOS (Fullscreen), GEM (Windowed and Fullscreen))
     60 Timer (VBL vector, GNU pth library)
     61 Joysticks and joypads (Ikbd, Hardware)
     62 Audio (Hardware, XBIOS, GSXB, MCSN, STFA, /dev/audio if threads enabled)
     63 Threads (Multitasking OS only via GNU pth library)
     64 Shared object loader (using LDG library from http://ldg.atari.org/)
     65 Audio CD (MetaDOS)
     66 OpenGL (using Mesa offscreen rendering driver)
     67 
     68 - Dependent driver combinations:
     69 Video   Kbd     Mouse   Timer   Joysticks
     70 xbios   ikbd    ikbd    vbl(2)  ikbd
     71 xbios   gemdos  xbios   vbl(2)  xbios
     72 xbios   bios    xbios   vbl(2)  xbios
     73 gem     gem     gem(1)  vbl(2)  xbios
     74 
     75 Audio   O/S     Misc
     76 dma8    All     Uses MFP Timer A interrupt
     77 xbios	TOS     Uses MFP Timer A interrupt
     78 xbios   MiNT    Uses MFP Timer A interrupt
     79 xbios   Magic   Uses MFP Timer A interrupt
     80 stfa    All     Uses MFP interrupt
     81 mcsn	TOS     Uses MFP Timer A interrupt
     82 mcsn    MiNT    Uses MiNT thread
     83 mcsn    Magic   Disabled
     84 gsxb    All     Uses GSXB callback
     85 
     86 Joypad driver always uses hardware access.
     87 OpenGL driver always uses OSMesa.
     88 
     89 (1) GEM does not report relative mouse motion, so xbios mouse driver is used
     90 to report this type event.
     91 A preliminary driver for /dev/mouse device driver is present, but is disabled
     92 till it can be used with other applications simultaneously.
     93 
     94 (2) If you build SDL with threads using the GNU pth library, timers are
     95 supported via the pth library.
     96 
     97 ==============================================================================
     98 V.  Environment variables:
     99 
    100 SDL_VIDEODRIVER:
    101 	Set to 'xbios' to force xbios video driver
    102 	Set to 'gem' to force gem video driver
    103 
    104 SDL_VIDEO_GL_DRIVER:
    105 	Set to filename to load as OpenGL library, if you use SDL_GL_LoadLibrary()
    106 
    107 SDL_AUDIODRIVER:
    108 	Set to 'mint_gsxb' to force Atari GSXB audio driver
    109 	Set to 'mint_mcsn' to force Atari MCSN audio driver
    110 	Set to 'mint_stfa' to force Atari STFA audio driver
    111 	Set to 'mint_xbios' to force Atari Xbios audio driver
    112 	Set to 'mint_dma8' to force Atari 8 bits DMA audio driver
    113 	Set to 'audio' to force Sun /dev/audio audio driver
    114 	Set to 'disk' to force disk-writing audio driver
    115 
    116 SDL_ATARI_EVENTSDRIVER
    117 	Set to 'ikbd' to force IKBD 6301 keyboard driver
    118 	Set to 'gemdos' to force gemdos keyboard driver
    119 	Set to 'bios' to force bios keyboard driver
    120 
    121 SDL_JOYSTICK_ATARI:
    122 	Use any of these strings in the environment variable to enable or
    123 	disable a joystick:
    124 
    125 	'ikbd-joy1-[on|off]' for IKBD joystick on port 1 (hardware access)
    126 	'xbios-joy1-[on|off]' for IKBD joystick on port 1 (xbios access)
    127 	'porta-pad-[on|off]' for joypad and/or teamtap on port A
    128 	'porta-joy0-[on|off]' for joystick 0 on port A
    129 	'porta-joy1-[on|off]' for joystick 1 on port A
    130 	'porta-lp-[on|off]' for lightpen on port A
    131 	'porta-anpad-[on|off]' for analog paddle on port A
    132 	'portb-pad-[on|off]' for joypad and/or teamtap on port B
    133 	'portb-joy0-[on|off]' for joystick 0 on port B
    134 	'portb-joy1-[on|off]' for joystick 1 on port B
    135 	'portb-anpad-[on|off]' for analog paddle on port B
    136 
    137 	Default configuration is:
    138 		'ikbd-joy1-on' (if IKBD events driver enabled)
    139 		'xbios-joy1-on' (if gemdos/bios/gem events driver enabled)
    140 		'porta-pad-on portb-pad-on' (if available on the machine)
    141 
    142 	port[a|b]-[pad|joy?|lp|anpad]-* strings are mutually exclusives.
    143 	On such a port, you can only use a joypad OR 1 or 2 joysticks OR
    144 	a lightpen OR an analog paddle. You must disable joypad before
    145 	setting another controller.
    146 
    147 	The second joystick port on IKBD is used by the mouse, so not usable.
    148 	Another problem with the IKBD: mouse buttons and joystick fire buttons
    149 	are wired together at the hardware level, it means:
    150 		port 0                port 0           port 1
    151 		mouse left button  = joystick fire 0 = joystick fire 1
    152 		mouse right button = joystick fire 1 = joystick fire 0
    153 
    154 	Descriptions of joysticks/joypads:
    155 	- Joypads: 1 hat, 17 buttons (Atari Jaguar console-like).
    156 	- Joysticks: 1 hat, 1 button.
    157 	- Lightpen, analog paddles: 2 axis, 2 buttons. The 2 buttons are those
    158 	  affected to 1 button joysticks on the same port.
    159 
    160 ==============================================================================
    161 VI.  More informations about drivers:
    162 
    163 OpenGL:
    164 	The default is to use the Mesa offscreen driver (osmesa.ldg). If you want
    165 	to use an older OpenGL implementation, like mesa_gl.ldg or tiny_gl.ldg,
    166 	your program must use SDL_GL_LoadLibrary() to do so, and retrieve the
    167 	needed function pointers with SDL_LoadFunction(). In all cases, the OpenGL
    168 	context is taken care of by SDL itself, you just have to use gl* functions.
    169 
    170 	However, there is one OpenGL call that has a different prototype in the old
    171 	implementations: glOrtho(). In the old implementations, it has 6 float as
    172 	parameters, in the standard one, it has 6 double parameters. If you want
    173 	to compile testdyngl, or any other SDL program that loads its OpenGL
    174 	library, you must change the glOrtho() prototype used in this program. In
    175 	osmesa.ldg, you can retrieve a glOrtho() with double parameters, by
    176 	searching for the function "glOrtho6d".
    177 
    178 Xbios video:
    179 	Video chip is detected using the _VDO cookie.
    180 	Screen enhancers are not supported, but could be if you know how to
    181 	use them.
    182 
    183 	ST, STE, Mega ST, Mega STE:
    184 		320x200x4 bits, shades of grey, available only for the purpose
    185 		of testing SDL.
    186 	TT:
    187 		320x480x8 and 320x240x8 (software double-lined mode).
    188 	Falcon:
    189 		All modes supported by the current monitor (RVB or VGA).
    190 		BlowUp and Centscreen extended modes, ScreenBlaster 3 current mode.
    191 	Milan:
    192 		Experimental support
    193 	Clones and any machine with monochrome monitor:
    194 		Not supported.
    195 
    196 Gem video:
    197 	Automatically used if xbios not available.
    198 
    199 	All machines:
    200 		Only the current resolution, if 8 bits or higher depth.
    201 
    202 IKBD keyboard, mouse and joystick driver:
    203 	Available if _MCH cookie is ST, Mega ST, STE, Mega STE, TT or Falcon.
    204 
    205 	Hades has an IKBD, but xbios is not available for video, so IKBD
    206 	driver is disabled.
    207 
    208 Gemdos and bios keyboard driver:
    209 	Available on all machines.
    210 
    211 Mouse and joystick xbios driver:
    212 	Available on all machines (I think).
    213 
    214 Joypad driver:
    215 	Available if _MCH cookie is STE or Falcon. Supports teamtap.
    216 
    217 PTH timer driver:
    218 	Available with multitasking OS.
    219 
    220 VBL timer driver:
    221 	Available on all machines (I think).
    222 
    223 Audio drivers:
    224 	Cookies _SND, MCSN, STFA and GSXB used to detect supported audio
    225 	capabilities.
    226 
    227 	STE, Mega STE, TT:
    228 		8 bits DMA (hardware access)
    229 		STFA, MCSN or GSXB driver if installed
    230 	Falcon:
    231 		8 bits DMA (hardware access)
    232 		Xbios functions
    233 		STFA, MCSN or GSXB driver if installed
    234 	Other machines:
    235 		STFA, MCSN or GSXB driver if installed
    236 
    237 	STFA driver:
    238 		http://removers.free.fr/softs/stfa.html
    239 	GSXB driver:
    240 		http://assemsoft.atari.org/gsxb/
    241 	MacSound driver:
    242 		http://jf.omnis.ch/software/tos/
    243 	MagicSound driver (MCSN,GSXB compatible):
    244 		http://perso.wanadoo.fr/didierm/
    245 	X-Sound driver (GSXB compatible):
    246 		http://www.uni-ulm.de/~s_thuth/atari/xsound_e.html
    247 
    248 -- 
    249 Patrice Mandin <patmandin (a] gmail.com>
    250 http://pmandin.atari.org/
    251 

README.NanoX

      1   =================================================================
      2   Patch version 0.9 of SDL(Simple DirectMedia Layer) for Nano-X API
      3   =================================================================
      4   
      5   Authors: Hsieh-Fu Tsai, clare (a] setabox.com
      6            Greg Haerr, greg (a] censoft.com
      7 
      8   This patch is against SDL version 1.2.4.
      9   It enhances previous patch 0.8 by providing direct framebuffer
     10   access as well as dynamic hardware pixel type support, not
     11   requiring a compile-time option setting for different framebuffer
     12   modes.
     13   Tested against Microwindows version 0.89pre9.
     14 
     15   Older Microwindows versions
     16   ===========================
     17   If running on a version older than Microwindows 0.89pre9,
     18   the following items might need to be patched in Microwindows.
     19 
     20   1. Patch src/nanox/client.c::GrClose()
     21   It fixes the client side GrClose(). In the original version, 
     22   GrOpen() can only be called once. When the GrOpen() is called at 
     23   the second time, the program will terminate. In order to prevent
     24   this situation, we need to insert "nxSocket = -1" after 
     25   "close(nxSocket)" in GrClose(). If you do not have this problem,
     26   you may skip this step. 
     27 
     28   2. Patch src/nanox/clientfb.c to return absolute x,y coordinates
     29   when using GrGetWindowFBInfo().  Copy the version 0.89pre9
     30   of src/nanox/clientfb.c to your system, or configure
     31   using --disable-nanox-direct-fb.
     32 
     33   =============
     34   Quick Install 
     35   =============
     36 
     37   1. ./configure --disable-video-x11 --disable-video-fbcon \ 
     38        --enable-video-nanox \ 
     39        --with-nanox-pixel-type=[rgb/0888/888/565/555/332/pal] 
     40   2. make clean 
     41   3. make 
     42   4. make install (as root) 
     43 
     44   ============
     45   Nitty-gritty 
     46   ============
     47 
     48   --enable-nanox-direct-fb       Use direct framebuffer access
     49   --enable-nanox-debug           Show debug messages 
     50   --enable-nanox-share-memory    Use shared-memory to speed up 
     51 
     52   When running multi-threaded applications using SDL, such
     53   as SMPEG, set THREADSAFE=Y in Microwindows' config file,
     54   to enable GrXXX() system call critical section support.
     55 
     56   =============================================
     57   Some programs can be used to test this patch. 
     58   =============================================
     59 
     60   1. http://www.cs.berkeley.edu/~weimer/atris (a tetris-like game) 
     61   2. http://www.libsdl.org/projects/newvox/
     62   3. http://www.libsdl.org/projects/xflame/
     63   4. http://www.libsdl.org/projects/optimum/ 
     64   5. http://www.gnugeneration.com/software/loop/ 
     65   6: http://www.lokigames.com/development/smpeg.php3 (SMPEG version 0.4.4)
     66 
     67   =========
     68   Todo List 
     69   =========
     70 
     71   1. Create hardware surface
     72   2. Create YUVOverlay on hardware
     73   3. Use OpenGL
     74   4. Gamma correction
     75   5. Hide/Change mouse pointer
     76   6. Better window movement control with direct fb access
     77   7. Palette handling in 8bpp could be improved
     78 
     79   =====================
     80   Supporting Institutes
     81   =====================
     82   
     83   Many thanks to go to Setabox Co., Ltd. and CML (Communication and
     84   Multimedia Laboratory, http://www.cmlab.csie.ntu.edu.tw/) in the 
     85   Department of Computer Science and Information Engineering of 
     86   National Taiwan University for supporting this porting project.
     87   
     88   Century Embedded Technologies (http://embedded.censoft.com)
     89   for this patch.
     90 
     91   ===================
     92   Contact Information
     93   ===================
     94 
     95   Welcome to give me any suggestion and to report bugs.
     96   My e-mail address : clare (a] setabox.com or niky (a] cmlab.csie.ntu.edu.tw
     97                       or greg (a] censoft.com
     98 

README.NDS

      1 The SDL port to the Nintendo DS
      2 
      3 This port uses the devKitPro toolchain, available from:
      4 http://www.devkitpro.org
      5 
      6 Precompiled tools for cross-compiling on Linux are available from:
      7 http://www.libsdl.org/extras/nds/devkitPro-20070503-linux.tar.gz
      8 
      9 todo:
     10 add ds console specific features/optimizations
     11 mouse/keyboard support
     12 dual screen support
     13 
     14 build with:
     15 cp include/SDL_config_nds.h include/SDL_config.h
     16 make -f Makefile.ds
     17 
     18 included is an arm9/arm7 template to allow for sound streaming support.
     19 
     20 Enjoy, fix the source and share :)
     21 Troy Davis(GPF)
     22 http://gpf.dcemu.co.uk/
     23 

README.OS2

      1 
      2 ===========
      3 SDL on OS/2
      4 ===========
      5 
      6 Last updated on May. 17, 2006.
      7 
      8 
      9 1. How to compile?
     10 ------------------
     11 
     12 To compile this, you'll need the followings installed:
     13 - The OS/2 Developer's Toolkit
     14 - The OpenWatcom compiler 
     15   (http://www.openwatcom.org)
     16 
     17 First of all, you have to unzip the Watcom-OS2.zip file. This will result in a 
     18 file called "makefile" and a file called "setvars.cmd" in this folder (and some
     19 more files...).
     20 
     21 Please edit the second, fourth and fifth lines of setvars.cmd file
     22 to set the folders where the toolkit, the OW compiler and the FSLib are. 
     23 You won't need NASM yet (The Netwide Assembler), you can leave that line.
     24 Run setvars.cmd, and you should get a shell in which you can
     25 compile SDL.
     26 
     27 Check the "makefile" file. There is a line in there which determines if the 
     28 resulting SDL.DLL will be a 'debug' or a 'release' build. The 'debug' version 
     29 is full of printf()'s, so if something goes wrong, its output can help a lot
     30 for debugging.
     31 
     32 Then run "wmake".
     33 This should create the SDL12.DLL and the corresponding SDL12.LIB file here.
     34 
     35 To test applications, it's a good idea to use the 'debug' build of SDL, and
     36 redirect the standard output and standard error output to files, to see what
     37 happens internally in SDL.
     38 (like: testsprite >stdout.txt 2>stderr.txt)
     39 
     40 To rebuild SDL, use the following commands in this folder:
     41 wmake clean
     42 wmake
     43 
     44 
     45 
     46 2. How to compile the testapps?
     47 -------------------------------
     48 
     49 Once you have SDL12.DLL compiled, navigate into the 'test' folder, copy in 
     50 there the newly built SDL12.DLL, and copy in there FSLib.DLL.
     51 
     52 Then run "wmake" in there to compile some of the testapps.
     53 
     54 
     55 
     56 3. What is missing?
     57 -------------------
     58 
     59 The following things are missing from this SDL implementation:
     60 - MMX, SSE and 3DNOW! optimized video blitters?
     61 - HW Video surfaces
     62 - OpenGL support
     63 
     64 
     65 
     66 4. Special Keys / Full-Screen support
     67 -------------------------------------
     68 
     69 There are two special hot-keys implemented:
     70 - Alt+Home switches between fullscreen and windowed mode
     71 - Alt+End simulates closing the window (can be used as a Panic key)
     72 Only the LEFT Alt key will work.
     73 
     74 
     75 
     76 5. Joysticks on SDL/2
     77 ---------------------
     78 
     79 The Joystick detection only works for standard joysticks (2 buttons, 2 axes
     80 and the like). Therefore, if you use a non-standard joystick, you should
     81 specify its features in the SDL_OS2_JOYSTICK environment variable in a batch
     82 file or CONFIG.SYS, so SDL applications can provide full capability to your
     83 device. The syntax is:
     84 
     85 SET SDL_OS2_JOYSTICK=[JOYSTICK_NAME] [AXES] [BUTTONS] [HATS] [BALLS]
     86 
     87 So, it you have a Gravis GamePad with 4 axes, 2 buttons, 2 hats and 0 balls,
     88 the line should be:
     89 
     90 SET SDL_OS2_JOYSTICK=Gravis_GamePad 4 2 2 0
     91 
     92 If you want to add spaces in your joystick name, just surround it with
     93 quotes or double-quotes:
     94 
     95 SET SDL_OS2_JOYSTICK='Gravis GamePad' 4 2 2 0
     96 
     97 or
     98 
     99 SET SDL_OS2_JOYSTICK="Gravis GamePad" 4 2 2 0
    100 
    101    Notive However that Balls and Hats are not supported under OS/2, and the
    102 value will be ignored... but it is wise to define these correctly because 
    103 in the future those can be supported.
    104    Also the number of buttons is limited to 2 when using two joysticks,
    105 4 when using one joystick with 4 axes, 6 when using a joystick with 3 axes
    106 and 8 when using a joystick with 2 axes. Notice however these are limitations 
    107 of the Joystick Port hardware, not OS/2.
    108 
    109 
    110 
    111 6. Proportional windows
    112 -----------------------
    113 
    114 For some SDL applications it can be handy to have proportional windows, so
    115 the windows will keep their aspect ratio when resized.
    116 This can be achieved in two ways:
    117 
    118 - Before starting the given SDL application, set the
    119   SDL_USE_PROPORTIONAL_WINDOW environment variable to something, e.g.:
    120 
    121   SET SDL_USE_PROPORTIONAL_WINDOW=1
    122   dosbox.exe
    123 
    124 - If you have a HOME environment variable set, then SDL will look for a file
    125   in there called ".sdl.proportionals". If that file contains the name of the
    126   currently running SDL executable, then that process will have proportional
    127   windows automatically.
    128 
    129   Please note that this file is created automatically with default values
    130   at the first run.
    131 
    132 
    133 
    134 7. Audio in SDL applications
    135 ----------------------------
    136 
    137 Audio effects are one of the most important features in games. Creating audio
    138 effects in sync with the game and without hickups and pauses in the audio are
    139 very important things.
    140 
    141 However there are multithreaded SDL applications that have tight loops as their
    142 main logic loop. This kills performance in OS/2, and takes too much CPU from
    143 other threads in the same process, for example from the thread to create the 
    144 sound effects.
    145 
    146 For this reason, the OS/2 port of SDL can be instructed to run the audio thread
    147 in high priority, which makes sure that there will be enough time for the 
    148 processing of the audio data.
    149 
    150 At default, SDL/2 runs the audio thread at ForegroundServer+0 priority. Well 
    151 written and well behaving SDL applications should work well in this mode.
    152 For other applications, you can tell SDL/2 to run the audio thread at 
    153 TimeCritical priority by setting an env.variable before starting the SDL app:
    154 
    155     SET SDL_USE_TIMECRITICAL_AUDIO=1
    156 
    157 Please note that this is a bit risky, because if the SDL application runs a
    158 tight infinite loop in this thread, this will make the whole system 
    159 unresponsive, so use it with care, and only for applications that need it!
    160 
    161 
    162 
    163 8. Next steps...
    164 ----------------
    165 
    166 Things to do:
    167 - Implement missing stuffs (look for 'TODO' string in source code!)
    168 - Finish video driver (the 'wincommon' can be a good example for missing
    169   things like application icon and so on...)
    170 - Enable MMX/SSE/SSE2 acceleration functions
    171 - Rewrite CDROM support using DOS Ioctl for better support.
    172 
    173 
    174 
    175 9. Contacts
    176 -----------
    177 
    178    You can contact the developers for bugs:
    179 
    180    Area					Developer		email
    181    General (Audio/Video/System)		Doodle			doodle (a] scenergy.dfmk.hu
    182    CDROM and Joystick			Caetano			daniel (a] caetano.eng.br
    183 
    184    Notice however that SDL/2 is 'in development' stage so ... if you want to help,
    185 please, be our guest and contact us!
    186 
    187 
    188 
    189 10. Changelog of the OS/2 port
    190 ------------------------------
    191 
    192 Version 1.2.10 - 2006-05-17  - Doodle
    193  - Small modifications for v1.2.10 release
    194  - Changed DLL name to include version info (currently SDL12.dll)
    195 
    196 Version 1.2 - 2006-05-01  - Doodle
    197  - Modified makefile system to have only one makefile
    198  - Included FSLib headers, DLL and LIB file
    199 
    200 Version 1.2 - 2006-02-26  - Doodle
    201  - Updated the official SDL version with the OS/2 specific changes.
    202  - Added support for real unicode keycode conversion.
    203 
    204 Version 1.2.7 - 2006-01-20  - Doodle
    205  - Added support for selectively using timecritical priority for
    206    audio threads by SDL_USE_TIMECRITICAL_AUDIO environment variable.
    207    (e.g.: 
    208     SET SDL_USE_TIMECRITICAL_AUDIO=1
    209     dosbox.exe
    210    )
    211 
    212 Version 1.2.7 - 2005-12-22  - Doodle
    213  - Added support for proportional SDL windows.
    214    There are two ways to have proportional (aspect-keeping) windows for
    215    a given SDL application: Either set the SDL_USE_PROPORTIONAL_WINDOW
    216    environment variable to something before starting the application
    217    (e.g.: 
    218     SET SDL_USE_PROPORTIONAL_WINDOW=1
    219     dosbox.exe
    220    )
    221    or, if you have the HOME environment variable set, then SDL12.DLL will
    222    create a file in that directory called .sdl.proportionals, and you can
    223    put there the name of executable files that will be automatically made
    224    proportional.
    225 
    226 Version 1.2.7 - 2005-10-14  - Doodle
    227  - Enabled Exception handler code in FSLib to be able to restore original
    228    desktop video mode in case the application crashes.
    229  - Added the missing FSLib_Uninitialize() call into SDL.
    230    (The lack of it did not cause problems, but it's cleaner this way.)
    231  - Fixed a mouse problem in Fullscreen mode where any mouse click
    232    re-centered the mouse.
    233 
    234 Version 1.2.7 - 2005-10-09  - Doodle
    235  - Implemented window icon support
    236 
    237 Version 1.2.7 - 2005-10-03  - Doodle
    238  - Reworked semaphore support again
    239  - Tuned thread priorities
    240 
    241 Version 1.2.7 - 2005-10-02  - Doodle
    242  - Added support for custom mouse pointers
    243  - Fixed WM_CLOSE processing: give a chance to SDL app to ask user...
    244  - Added support for MMX-accelerated audio mixers
    245  - Other small fixes
    246 
    247 Version 1.2.7 - 2005-09-12  - Doodle
    248  - Small fixes for DosBox incorporated into public release
    249  - Fixed semaphore support (SDL_syssem.c)
    250  - Fixed FSLib to have good clipping in scaled window mode,
    251    and to prevent occasional desktop freezes.
    252 
    253 Version 1.2.7 - 2004-09-08a - Caetano
    254 	- Improved joystick support (general verifications about hardware).
    255 	- Added support up to 8 buttons in 2 axes joysticks and 6 buttons in 3 axes joysticks.
    256 	- Added support to environment variable SDL_OS2_JOYSTICK to specify a joystick.
    257 	- Improved Joystick test to handle every type of joystick and display only relevant information.
    258 	- Merged with Doodle 2004-09-08
    259 	- Little tid up in README.OS2
    260 	- Added explanation about SDL_OS2_JOYSTICK environment variable on README.OS2
    261 
    262 Version 1.2.7 - 2004-09-07 - Caetano
    263 	- Merged with changes in headers for GCC compiling.
    264 	- Added Joystick support using basic IBM GAME$ support, allowing it to work with all joystick drivers since OS/2 2.1.
    265 	- Improved joystick detection (hacked!). OS/2 do not allow real joystick detection, so... 
    266 	- Modified makefile in test to compile "testjoystick". Anyway, it's useless, since it seems to cause a lot of trouble in OS/2 (because os video routines, not Joystick support).
    267 	- Created separated Joystick test program to test only joystick functions.
    268 	- Improved joystick auto-centering.
    269 	- Improved the coordinate correction routine to use two scale factors for each axis.
    270 
    271 Version 1.2.7 - 2004-07-05 - Caetano
    272 	- Corrected the time returned by status in CDROM support (it was incorrect)
    273 	- Added the testcdrom.c and corrected the linking directive (it was causing an error)
    274 
    275 Version 1.2.7 - 2004-07-02a - Caetano
    276 	- Corrected a little problem in a comment at SDL-1.2.7\test\torturethread.c, line 18 (missing */, nested comment)
    277 	- Added CDROM support to tree (SDL-1.2.7\src\cdrom\os2\SDL_syscdrom.c)
    278 	- Modified makefile (SDL-1.2.7\src\makefiles.wat and SDL-1.2.7\watcom.mif) to build with CDROM support
    279 	- Added the "extra" SDL_types.h forgotten in 2004-07-02 version.
    280 
    281 <End-Of-File>
    282 

README.PicoGUI

      1  ========================
      2   Using SDL with PicoGUI
      3  ========================
      4 
      5 - Originally contributed by Micah Dowty <micahjd (a] users.sourceforge.net>
      6 
      7 PicoGUI is a scalable GUI system with a unique architecture, primarily focused
      8 on scalability to various embedded systems. You can find more information
      9 including a FAQ at http://picogui.org
     10 
     11 To use the patch:
     12 
     13   1. When compiling, add the "--enable-video-picogui" switch to ./configure
     14 
     15   2. When running your program, ensure that the picogui driver for SDL
     16      is in use by setting the SDL_VIDEODRIVER environment variable 
     17      to "picogui".
     18 
     19   3. The program must also be linked to the C client library for PicoGUI
     20      (libpgui.so). If the program is being compiled with a patched SDL 
     21      installed this should be done automatically. If you want to use an
     22      existing binary with PicoGUI, you can set the LD_PRELOAD environment
     23      variable to the path of your libpgui.so file.
     24 
     25 Capabilities:
     26 
     27   So far only basic functionality is provided on true color (linear16/24/32)
     28   devices. Accessing a memory mapped bitmap, updating the display, and handling
     29   mouse/keyboard input. This functionality has been tested with several
     30   applications, including mplayer, Xine, sldroids, and Abuse.
     31 
     32 TODO list:
     33 
     34   - YUV overlays will be helpful for watching video on set top boxes or other
     35     embedded devices that have some graphics acceleration hardware
     36 
     37   - Account for rotated bitmap storage in pgserver
     38 
     39   - Support for hiding or changing the cursor
     40 
     41   - The display should be centered when the SDL application is smaller
     42     than the PicoGUI panel
     43 
     44   - Fullscreen or any other special modes
     45 
     46   - Support for indexed and grayscale modes
     47 
     48   - Probably much more...
     49 
     50 --- The End ---
     51 

README.Porting

      1 
      2 * Porting To A New Platform
      3 
      4   The first thing you have to do when porting to a new platform, is look at
      5 include/SDL_platform.h and create an entry there for your operating system.
      6 The standard format is __PLATFORM__, where PLATFORM is the name of the OS.
      7 Ideally SDL_platform.h will be able to auto-detect the system it's building
      8 on based on C preprocessor symbols.
      9 
     10 There are two basic ways of building SDL at the moment:
     11 
     12 1. The "UNIX" way:  ./configure; make; make install
     13 
     14    If you have a GNUish system, then you might try this.  Edit configure.in,
     15    take a look at the large section labelled:
     16 	"Set up the configuration based on the target platform!"
     17    Add a section for your platform, and then re-run autogen.sh and build!
     18 
     19 2. Using an IDE:
     20 
     21    If you're using an IDE or other non-configure build system, you'll probably
     22    want to create a custom SDL_config.h for your platform.  Edit SDL_config.h,
     23    add a section for your platform, and create a custom SDL_config_{platform}.h,
     24    based on SDL_config.h.minimal and SDL_config.h.in
     25 
     26    Add the top level include directory to the header search path, and then add
     27    the following sources to the project:
     28 	src/*.c
     29 	src/audio/*.c
     30 	src/cdrom/*.c
     31 	src/cpuinfo/*.c
     32 	src/events/*.c
     33 	src/file/*.c
     34 	src/joystick/*.c
     35 	src/stdlib/*.c
     36 	src/thread/*.c
     37 	src/timer/*.c
     38 	src/video/*.c
     39 	src/audio/disk/*.c
     40 	src/video/dummy/*.c
     41 	src/joystick/dummy/*.c
     42 	src/cdrom/dummy/*.c
     43 	src/thread/generic/*.c
     44 	src/timer/dummy/*.c
     45 	src/loadso/dummy/*.c
     46 
     47 
     48 Once you have a working library without any drivers, you can go back to each
     49 of the major subsystems and start implementing drivers for your platform.
     50 
     51 If you have any questions, don't hesitate to ask on the SDL mailing list:
     52 	http://www.libsdl.org/mailing-list.php
     53 
     54 Enjoy!
     55 	Sam Lantinga				(slouken (a] libsdl.org)
     56 
     57 

README.PS3

      1 
      2 SDL on Sony Playstation3
      3 ------------------------
      4 
      5 Installation:
      6   First, you have to install the Cell SDK
      7   - Download the Cell SDK installer RPM and ISO images to
      8     a temporary directory such as /tmp/cellsdk.
      9   - Mount the image: mount -o loop CellSDK-Devel-Fedora_3.1.0.0.0.iso /tmp/cellsdk
     10   - Install the SDK installer: rpm -ivh cell-install-3.1.0-0.0.noarch.rpm
     11   - Install the SDK: cd /opt/cell && ./cellsdk --iso /tmp/cellsdkiso install
     12 
     13   You need to install the SPU-libs before installing SDL
     14   - Go to SDL-1.2/src/video/ps3/spulibs/
     15   - Run make && make install
     16 
     17   Finally, install SDL
     18   - Go to SDL-1.2/ and build SDL like any other GNU style package.
     19   e.g.
     20     - Build the configure-script with ./autogen.sh
     21     - Configure SDL for your needs: ./configure --enable-video-ps3 ...
     22     - Build and install it: make && make install
     23 
     24 
     25 Todo:
     26   - mouse/keyboard/controller support
     27 
     28 Have fun!
     29   Dirk Herrendoerfer <d.herrendoerfer [at] de [dot ibm [dot] com>
     30 

README.QNX

      1 README.QNX by Mike Gorchak <mike (a] malva.ua>, <lestat (a] i.com.ua>
      2 Last changed at 24 Apr 2004.
      3 
      4 ======================================================================
      5 Table of Contents:
      6 
      7 1. OpenGL.
      8 2. Wheel and multi-button mouses.
      9 3. CDROM handling issues.
     10 4. Hardware video overlays.
     11 5. Shared library building.
     12 6. Some building issues.
     13 7. Environment variables.
     14 
     15 ======================================================================
     16 1. OpenGL:
     17 
     18     OpenGL works well and is stable, but fullscreen mode has not  been
     19 heavily tested yet.
     20     If you have QNX RtP version 6.1.0 or above you must  download  the
     21 Photon3D runtime from http://developers.qnx.com or install it from the
     22 public repository or from the public CD, available with QNX. OS versi-
     23 ons below 6.1.0 are not supported.
     24     When creating an OpenGL context, software renderer mode is artifi-
     25 cially selected (QSSL made acceleration  only  for  Voodoo  boards  in
     26 fullscreen mode, sorry but I don't have this board  to  test  OpenGL -
     27 maybe it works or maybe not :)). If you  want  acceleration - you  can
     28 remove one line in the source code: find the  file SDL_ph_image.c  and
     29 remove the following
     30 
     31     OGLAttrib[OGLargc++]=PHOGL_ATTRIB_FORCE_SW;
     32      
     33 line in the ph_SetupOpenGLContext() function or change the argument to
     34 PHOGL_ATTRIB_FORCE_HW or PHOGL_ATTRIB_FAVOR_HW.
     35 
     36 ======================================================================
     37 2. Wheel and multi-button mouses:
     38 
     39     Photon emits  keyboard  events (key up and  down)  when the  mouse
     40 wheel is moved. The key_scan field appears valid, and it contains zero.
     41 That is a basic method of detecting  mouse  wheel events under Photon.
     42 It looks like a hack, but it  works for me :) on various PC configura-
     43 tions.
     44 
     45 I've tested it on:
     46 
     47 1. Genius Optical NetScroll/+ PS/2 (1 wheel)
     48 2. A4Tech Optical GreatEye WheelMouse PS/2,  model: WOP-35.  (2 wheels
     49    + 2 additional buttons). The wheel for vertical scrolling  works as
     50    usual, but the second wheel for horizontal scrolling emits  two se-
     51    quential events up or down, so it can provide faster scrolling than
     52    the first wheel. Additional buttons don't emit  any  events, but it
     53    looks like they're handled by photon in an unusual way - like click
     54    to front, but works not with any window, looks like a fun bug-o-fe-
     55    ature :).
     56 
     57 ======================================================================
     58 3. CDROM handling issues:
     59 
     60     Access to CDROM can only be  provided  with  'root'  privileges. I
     61 can't do anything about that, /dev/cd0 has brw------- permissions  and
     62 root:root rights.
     63 
     64 ======================================================================
     65 4. Hardware video overlays:
     66 
     67     Overlays can flicker  during  window  movement,  resizing, etc. It
     68 happens because the photon driver updates the real window contents be-
     69 hind the overlay, then draws the temporary chroma key color  over  the
     70 window contents. It can be done without using the chroma key but  that
     71 causes the overlay to always be on top. So  flickering  during  window
     72 movement is preferred instead.
     73     Double buffering code is temporarily disabled in the photon driver
     74 code, because on my GF2-MX it can accidentally cause a buffer  switch,
     75 which causes the old frame to show. S3 Savage4 has the  same  problem,
     76 but ATI Rage 128 doesn't. I think it can be fixed later. Current  code
     77 works very well, so maybe double buffering is not needed right now.
     78     Something strange happens when you try to move the window with the
     79 overlay beyond the left border  of the screen. The  overlay  tries  to
     80 stay at position x=0, but when attempting to move it  a  bit  more  it
     81 jumps to position x=-60 (on GF2-MX, on ATI Rage128 this  value  a  bit
     82 smaller). It's really strange, looks  like  the  overlay  doesn't like
     83 negative coordinates.
     84 
     85 =======================================================================
     86 5. Shared library building:
     87 
     88     A shared library can be built, but before running  the  autogen.sh
     89 script you must manually delete the libtool.m4 stuff from the acinclu-
     90 de.m4 file (it comes after the ESD detection code up to the end of the
     91 file), because the libtool stuff in the acinclude.m4 file was very old
     92 in SDL distribution before the version 1.2.7 and doesn't knew anything
     93 about QNX. SDL 1.2.7 distribution contains the  new libtool.m4 script,
     94 but anyway  it  is  broken :), Just  remove  it, then  run "libtoolize
     95 --force --copy",  delete the file aclocal.m4 if it is exists and after
     96 that run the  autogen.sh script. SDL 1.2.8 contains  fixed libtool.m4,
     97 ltmain.sh and config.sub files, so you  can  just  run  the autogen.sh
     98 script.
     99 
    100 ======================================================================
    101 6. Some building issues:
    102 
    103     Feel free to not use the --disable-shared configure option if you'
    104 ve read the above comment about 'Shared  library  building'. Otherwise
    105 this  option  is  strongly  recommended, as  without it the sdl-config
    106 script will be broken.
    107 
    108     Run the configure script without x11 support, e.g.:
    109 
    110     a) for OpenGL support:
    111     ./configure --prefix=/usr           \
    112                 --disable-video-x11     \
    113                 --disable-shared
    114 
    115     b) without OpenGL support:
    116     ./configure --prefix=/usr           \
    117                 --disable-video-x11     \
    118                 --disable-shared        \
    119                 --disable-video-opengl
    120 
    121     And of course dont forget to specify --disable-debug, which  is on
    122 by default, to disable debug and enable the expensive optimizations.
    123 
    124     In the test directory also run the ./configure script without
    125 x11 support, e.g.:
    126 
    127     ./configure  --with-sdl-prefix=/usr            \
    128                  --with-sdl-exec-prefix=/usr       \
    129                  --prefix=/usr --without-x
    130 
    131 ======================================================================
    132 7. Environment variables:
    133 
    134     Please note that the photon driver  is  sensible to the  following
    135 environmental variables:
    136 
    137  * SDL_PHOTON_FULLSCREEN_REFRESH - this environment variable  controls
    138 the refresh  rate  in  all  fullscreen  modes. Be  carefull !!! Photon
    139 drivers usually do not checking the maximum  refresh rate, which video
    140 adapter or monitor supports.
    141 
    142  * SDL_VIDEO_WINDOW_POS - can be  set in the "X,Y" format.  If X and Y
    143 coordinates are bigger than the current desktop resolution, then  win-
    144 dow positioning across  virtual  consoles is activated. If X and Y are
    145 smaller than the desktop resolution  then  window  positioning  in the
    146 current console is activated. The word "center" can be used instead of
    147 coordinates, it  produces  the  same  behavior  as  SDL_VIDEO_CENTERED
    148 environmental variable.
    149 
    150  * SDL_VIDEO_CENTERED - if this environmental variable exists then the
    151 window centering is perfomed in the current virtual console.
    152 
    153 Notes: The SDL_VIDEO_CENTERED enviromental  variable  has greater pri-
    154 ority than the SDL_VIDEO_WINDOW_POS in case if both variables are sup-
    155 plied to the application.
    156 

README.Qtopia

      1 
      2 ==============================================================================
      3 Using the Simple DirectMedia Layer with Qtopia/OPIE
      4 ==============================================================================
      5 
      6 ==============================================================================
      7 I.  Setting up the Qtopia development environment.
      8 
      9   This document will not explain how to setup the Qtopia development
     10   environment. That is outside the scope of the document. You can read
     11   more on this subject in this excellent howto:
     12 
     13 	http://www.zauruszone.com/howtos/linux_compiler_setup_howto.html
     14 
     15 ==============================================================================
     16 II.  Building the Simple DirectMedia Layer libraries using the arm
     17      cross-compiler
     18 
     19   This is somewhat tricky since the name of the compiler binaries
     20   differ from the standard. Also you should disable features not
     21   needed. The command below works for me. Note that it's all one
     22   line. You can also set the NM, LD etc environment variables
     23   separately.
     24 
     25 	NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ RANLIB=arm-linux-ranlib AR=arm-linux-ar ./configure --enable-video-qtopia --disable-video-dummy --disable-video-fbcon  --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-cdrom --disable-video-x11 --disable-nasm --prefix=/opt/Qtopia/sharp/ arm-unknown-linux-gnu
     26 
     27   One thing to note is that the above configure will include joystick
     28   support, even though you can't have joysticks on the Zaurus. The
     29   reason for this is to avoid link / compile / runtime errors with
     30   applications that have joystick support.
     31 
     32 ==============================================================================
     33 III.  Building the Simple DirectMedia Layer test programs:
     34 
     35   After installing, making sure the correct sdl-config is in your
     36   path, run configure like this:
     37 
     38 	NM=arm-linux-nm LD=arm-linux-ld CC=arm-linux-gcc CXX=arm-linux-g++ AR=arm-linux-ar ./configure arm-unknown-linux-gnu
     39 
     40 ==============================================================================
     41 IV.  Application porting notes
     42 
     43   One thing I have noticed is that applications sometimes don't exit
     44   correctly. Their icon remains in the taskbar and they tend to
     45   relaunch themselves automatically. I believe this problem doesn't
     46   occur if you exit your application using the exit() method. However,
     47   if you end main() with 'return 0;' or so, this seems to happen.
     48 
     49   Also note that when running in landscape mode - i.e requesting a
     50   window that is HEIGHT pixels wide and WIDTH pixels high, where WIDTH
     51   and HEIGHT normally is 240 and 320 - the image is blitted so that
     52   the hardware buttons are on the left side of the display. This might
     53   not always be desirable but such is the code today.
     54 
     55 
     56 ==============================================================================
     57 V.  Enjoy! :)
     58 
     59   If you have a project you'd like me to know about, or want to ask questions,
     60   go ahead and join the SDL developer's mailing list by sending e-mail to:
     61 
     62 	sdl-request (a] libsdl.org
     63 
     64   and put "subscribe" into the subject of the message. Or alternatively you
     65   can use the web interface:
     66 
     67 	http://www.libsdl.org/mailman/listinfo/sdl
     68   
     69 ==============================================================================
     70 VI.  What is supported:
     71 
     72 Keyboard (Sharp Zaurus)
     73 Hardware buttons
     74 Stylus input (mouse)
     75 Video. Allows fullscreen both in portrait mode (up to WIDTHxHEIGHT
     76 size window) and in landscape mode (up to HEIGHTxWIDTH). 
     77 
     78 All other SDL functionality works like a normal Linux system (threads,
     79 audio etc).
     80 
     81 -- 
     82 David Hedbor <david (a] hedbor.org>
     83 http://david.hedbor.org/ 	http://eongames.com/
     84 
     85 

README.RISCOS

      1 Readme for RISC OS port of SDL
      2 ==============================
      3 
      4 This document last updated on 2nd Februrary 2006
      5 
      6 This is a RISC OS port of the Simple Direct Media Layer (SDL) by Alan Buckley with contributions from Peter Naulls.
      7 
      8 Details of the SDL can be found at http://www.libsdl.org.
      9 
     10 The source code including the RISC OS version can be obtained from:
     11 
     12 http://www.libsdl.org.
     13 
     14 Pre built libraries and many games and applications compiled for RISC OS using this library can be downloaded from The Unix Porting Project at http://www.riscos.info/unix/.
     15 
     16 This is released under the LGPL see the file COPYING for details.
     17 
     18 
     19 Compiling applications under RISC OS
     20 ====================================
     21 
     22 Add -ISDL: for the C compiler flags if you include the files in the SDL directory. e.g. #include "SDL/SDL.h"
     23 Add -ISDL:SDL for the C compiler flags if you include the files directly. e.g. #include "SDL/SDL.h"
     24 
     25 Add -LSDL: -lSDL to the link stage of compilation.
     26 
     27 For example, to compile the testbitmap.c sample you could use:
     28 
     29 gcc -ISDL:SDL -LSDL: -lSDL testbitmap.c -otestbitmap
     30 
     31 
     32 RISC OS port of SDL runtime information
     33 =======================================
     34 
     35 Runtime requirements
     36 --------------------
     37 
     38 This library currently needs a minimum of RISC OS 3.6. The source code for the library (and a lot of the programs built with it) also need long file names.
     39 
     40 To use the audio you also need 16 bit sound and to have installed the DigitalRender module by Andreas Dehmel version 0.51 available from his
     41 web site: http://home.t-online.de/~zarquon
     42 This is loaded when needed by UnixLib.
     43 
     44 Note: As most programs ported from other OSes use high resolution graphics and a memory back buffer a machine with a StrongARM processor and 1 or 2MB of VRAM (or a better machine) is recomended.
     45 
     46 
     47 RISC OS runtime parameters
     48 --------------------------
     49 
     50 Several environmental variables have been defined to make porting programs easier (i.e. By setting these variable you do not need to have source code differences between OSes).
     51 
     52 They are all defined on an application basis.
     53 
     54 The <appname> used below is found as follows:
     55 1. Use the name of the program unless it is !RunImage
     56 2. Check the folder specification for the folder !RunImage is run from. If it is a folder name use that name, otherwise if it is an environmental variable of the form <XXX$Dir> use the value of XXX.
     57 
     58 The variables are:
     59 
     60 SDL$<appname>$TaskName
     61 
     62 The name of the task for RISC OS. If omitted then <appname> is used for the task name,
     63 
     64 SDL$<appname>$BackBuffer
     65 
     66 Set to 1 to use a system memory back buffer for the screen in full screen mode. Some programs on other systems assume their is always a back buffer even though the SDL specification specifies this is not the case. The current RISC OS implementation uses direct writes to the screen if a hardware fullscreen is requested.
     67 
     68 Set to 2 to use an ARM code full word copy. This is faster than the standard back buffer, but uses aligned words only so it is possible (but unlikely) for it to corrupt the screen for 8bpp and 16bpp modes.
     69 
     70 Set to 3 to use a RISC OS sprite as the back buffer. This is usually the slowest for most SDL applications, however it may be useful in the future as Sprite acceleration is added to various hardware that runs RISC OS.
     71 
     72 SDL$<appname>$CloseAction - set the action for the close icon. Again as programs don't match the specification you can set this to 0 to remove the close icon from the main window for applications where this does not affect the program.
     73 
     74 
     75 RISC OS SDL port API notes
     76 ==========================
     77 
     78 Current level of implementation
     79 -------------------------------
     80 
     81 The following list is an overview of how much of the SDL is implemented. The areas match the main areas of the SDL.
     82 
     83 video - Mostly done. Doesn't cover gamma, YUV-overlay or OpenGL.
     84 Window Manager - Mostly done. SetIcon/IconifyWindow not implemented.
     85 Events - Mostly done. Resize and some joystick events missing.
     86 Joystick - Currently assumes a single joystick with 4 buttons.
     87 Audio - Done
     88 CDROM - Not implemented.
     89 Threads - Done
     90 Timers - Done
     91 
     92 Thread support can be removed by defining DISABLE_THREADS and recompiling the library.
     93 
     94 SDL API notes
     95 -------------
     96 
     97 This section contains additional notes on some specific commands.
     98 
     99 SDL_SetVideoMode
    100   On RISC OS a fullscreen mode directly accesses the screen. This can be modified by the environmental variable (SDL$<appname>$BackBuffer) or by using the SDL_SWSURFACE flag to write to an offscreen buffer that is updated using SDL_UpdateRects.
    101   Open GL is not supported so SDL_OPENGL and SDL_OPENGLBLIT flags fail.
    102   SDL_RESIZEABLE and SDL_NOFRAME flags are not supported.
    103 
    104 SDL_SetColors
    105   In a wimp mode the screen colours are not changed for a hardware palette instead the RISC OS sprite colour mapping is used to get the best matching colours.
    106 
    107 SDL_CreateCursor
    108    Inverted colour is not supported.
    109 
    110 SDL_WM_ToggleFullScreen
    111    Currently this won't work if the application starts up in Fullscreen mode.
    112    Toggling to fullscreen will only work if the monitor is set up to support the exact screen size requested.
    113 
    114 SDL_EnableUNICODE
    115    Unicode translation used here is only really accurate for 7 bit characters.
    116 
    117 SDL_NumJoysticks/JoystickName etc.
    118    Hardcoded to expect only 1 joystick with 4 buttons if the Joystick module is loaded.
    119 
    120 SDL_GetTicks
    121    Timer used has only a centisecond accuracy. This applies to other time related functions.
    122    
    123 SDL_Delay
    124    Modified to poll keyboard/mouse during the delay on the event thread.
    125 
    126 
    127 Notes on current implementation
    128 -------------------------------
    129 
    130 Keyboard and mouse are polled so if too long a time is spent between a call to SDL_PumpEvents, functions that use it, or SDL_Delay events can be missed.
    131 

README.Symbian

      1 ==============================================================================
      2 Using the Simple DirectMedia Layer with S60 3.x / Symbian 9.x
      3 ==============================================================================
      4 
      5 These instuctions are for people developing for S60 3.x. S60 3.x
      6 uses Symbian OS so you need S60 SDK.
      7 
      8 extract "symbian.zip" into this folder.
      9 
     10 go to symbian folder
     11 
     12 bldmake bldfiles
     13 abld build
     14 
     15 That produces WINSCW and ARMV5 versions of sdl.dll runtime library 
     16 and sdl.lib for development. 
     17 The sdlexe.dll/sdlexe.lib and sdlmain.lib are for easy SDL S60
     18 integration, please see http://www.mbnet.fi/~mertama/sdl.html
     19 for further info.
     20 
     21 
     22 
     23 
     24 

README.Watcom

      1 
      2 Using SDL under Windows with the OpenWatcom compiler
      3 ====================================================
      4 
      5 Prerequisites
      6 -------------
      7 
      8 I have done the port under Windows XP Home with SP2 installed. Windows
      9 2000 should also be working. I'm not so sure about ancient Windows NT,
     10 since only DirectX 3 is available there. Building should be possible,
     11 but running the compiled applications will probalbly fail with
     12 SDL_VIDEODRIVER=directx. The windib driver should work, though.
     13 
     14 To compile and use the SDL with Open Watcom you will need the following:
     15 - Open Watcom compiler. I used version 1.5. The environment variables
     16   PATH, WATCOM and INCLUDE need to be set appropriately - please consult
     17   the OpenWatcom documentation and instructions given during the
     18   installation of the compiler.
     19   My setup looks like this in owvars.bat:
     20     set WATCOM=C:\watcom
     21     set INCLUDE=%WATCOM%\h;%WATCOM%\h\nt
     22     set PATH=%PATH%;%WATCOM%\binnt;%WATCOM%\binw
     23 - A fairly recent DirectX SDK. The original unmodified DX8 SDK works, as
     24   well as the minimal DirectX 7 SDK from the Allegro download site
     25   (<http://alleg.sourceforge.net/files/dx70_min.zip>).
     26 - The SDL sources from Subversion
     27 - The file Watcom-Win32.zip (now available in Subversion)
     28 
     29 
     30 Building the Library
     31 --------------------
     32 
     33 1) In the SDL base directory extract the archive Watcom-Win32.zip. This
     34    creates a subdirectory named 'watcom'.
     35 2) The makefile expects the environment variable DXDIR to be set to the
     36    base directory of a DirectX SDK. I have tried a stock DX8 SDK from
     37    Microsoft as well as the minimal DirectX 7 SDK from the Allegro
     38    download site.
     39    You can also edit the makefile directly and hard code your path to
     40    the SDK on your system.
     41    I have this in my setup:
     42      set DXDIR=D:\devel\DX8_SDK
     43 3) Enter the watcom directory and run
     44      wmake sdl
     45 4) All tests from the test directory are working and can be built by
     46    running
     47      wmake tests
     48 
     49 Notes:
     50 
     51  The makefile offers some options to tweak the way the library is built.
     52  You have at your disposal the option to build a static (default)
     53  library, or a DLL (with tgt=dll). You can also choose whether to build
     54  a Release (default) or a Debug version (with build=debug) of the tests
     55  and library. Please consult the usage comment at the top of the
     56  makefile for usage instructions.
     57 
     58  If you specify a test target (i.e. 'wmake tests' for all tests, or
     59  selected targets like 'wmake testgl testvidinfo testoverlay2'), the
     60  tests are always freshly compiled and linked. This is done to
     61  minimise hassle when switching between library versions (static vs.
     62  DLL), because they require subtly different options.
     63  Also, the test executables are put directly into the test directory,
     64  so they can find their data files. The clean target of the makefile
     65  removes the test executables and the SDL.dll file from the test
     66  directory.
     67 
     68  To use the library in your own projects with Open Watcom, you can use
     69  the way the tests are built as base of your own build environment.
     70 
     71  The library can also be built with the stack calling convention of the
     72  compiler (-6s instead of -6r).
     73 
     74 
     75 Test applications
     76 -----------------
     77 
     78 I've tried to make all tests work. The following table gives an overview
     79 of the current status.
     80 
     81  Testname        Status
     82 ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     83 checkkeys       +
     84 graywin         +
     85 loopwave        +
     86 testalpha       +
     87 testbitmap      +
     88 testdyngl       +
     89 testerror       +
     90 testfile        +
     91 testgamma       +
     92 testgl          +
     93 testhread       +
     94 testiconv       - (all failed)
     95 testkeys        +
     96 testlock        +
     97 testoverlay     + (needs 'set SDL_VIDEODRIVER=directx')
     98 testoverlay2    + (needs 'set SDL_VIDEODRIVER=directx')
     99 testpalette     +
    100 testplatform    +
    101 testsem         +
    102 testsprite      +
    103 testtimer       +
    104 testver         +
    105 testvidinfo     +
    106 testwin         ? (fading doesn't seem right)
    107 testwm          +
    108 torturethread   +
    109 testcdrom       +
    110 testjoystick    not tested
    111 threadwin       +
    112 testcursor      +
    113 
    114 
    115 TODO
    116 ----
    117 
    118 There is room for further improvement:
    119 - Test joystick functionality.
    120 - Investigate fading issue in 'testwin' test.
    121 - Fix the UTF-8 support.
    122 - Adapt the makefile/object file list to support more target systems
    123 - Use "#pragma aux" syntax for the CPU info functions.
    124 
    125 
    126 Questions and Comments
    127 ----------------------
    128 
    129 Please direct any questions or comments to me:  <mailto:macpete (a] gmx.de>
    130 
    131    Happy Coding!
    132 
    133    Marc Peter
    134 

README.WinCE

      1 
      2 Project files for embedded Visual C++ 3.0, 4.0 and 
      3 Visual Studio 2005 can be found in the VisualCE directory.
      4 
      5 SDL supports GAPI and WinDib output for Windows CE.
      6 
      7 GAPI driver supports:
      8 
      9 - all possible WinCE devices (Pocket PC, Smartphones, HPC)
     10   with different orientations of video memory and resolutions.
     11 - 4, 8 and 16 bpp devices
     12 - special handling of 8bpp on 8bpp devices
     13 - VGA mode, you can even switch between VGA and GAPI in runtime
     14   (between 240x320 and 480x640 for example). On VGA devices you can
     15   use either GAPI or VGA.
     16 - Landscape mode and automatic rotation of buttons and stylus coordinates.
     17   To enable landscape mode make width of video screen bigger than height.
     18   For example: 
     19     SDL_SetVideoMode(320,240,16,SDL_FULLSCREEN)
     20 - WM2005
     21 - SDL_ListModes
     22 
     23 NOTE:
     24 There are several SDL features not available in the WinCE port of SDL.
     25 
     26 - DirectX is not yet available
     27 - Semaphores are not available
     28 - Joystick support is not available
     29 - CD-ROM control is not available
     30 
     31 In addition, there are several features that run in "degraded" mode:
     32 
     33 Preprocessor Symbol		Effect
     34 ===================		=================================
     35 
     36 SDL_systimer.c:
     37 USE_GETTICKCOUNT		Less accurate values for SDL time functions
     38 USE_SETTIMER			Use only a single marginally accurate timer
     39 
     40 SDL_syswm.c:
     41 DISABLE_ICON_SUPPORT		Can't set the runtime window icon
     42 
     43 SDL_sysmouse.c:
     44 USE_STATIC_CURSOR		Only the arrow cursor is available
     45 
     46 SDL_sysevents.c:
     47 NO_GETKEYBOARDSTATE		Can't get modifier state on keyboard focus
     48 
     49 SDL_dibevents.c:
     50 NO_GETKEYBOARDSTATE		Very limited keycode translation
     51 
     52 SDL_dibvideo.c:
     53 NO_GETDIBITS			Can't distinguish between 15 bpp and 16 bpp
     54 NO_CHANGEDISPLAYSETTINGS	No fullscreen support
     55 NO_GAMMA_SUPPORT		Gamma correction not available
     56 

README.wscons

      1 ==============================================================================
      2 Using the Simple DirectMedia Layer with OpenBSD/wscons
      3 ==============================================================================
      4 
      5 The wscons SDL driver can be used to run SDL programs on OpenBSD
      6 without running X.  So far, the driver only runs on the Sharp Zaurus,
      7 but the driver is written to be easily extended for other machines.
      8 The main missing pieces are blitting routines for anything but 16 bit
      9 displays, and keycode maps for other keyboards.  Also, there is no
     10 support for hardware palettes.
     11 
     12 There is currently no mouse support.
     13 
     14 To compile SDL with support for wscons, use the
     15 "--enable-video-wscons" option when running configure.  I used the
     16 following command line:
     17 
     18 ./configure --disable-oss --disable-ltdl --enable-pthread-sem \
     19 	    --disable-esd --disable-arts --disable-video-aalib  \
     20 	    --enable-openbsdaudio --enable-video-wscons \
     21 	    --prefix=/usr/local --sysconfdir=/etc
     22 
     23 
     24 Setting the console device to use
     25 =================================
     26 
     27 When starting an SDL program on a wscons console, the driver uses the
     28 current virtual terminal (usually /dev/ttyC0).  To force the driver to
     29 use a specific terminal device, set the environment variable
     30 SDL_WSCONSDEV:
     31 
     32 bash$ SDL_WSCONSDEV=/dev/ttyC1 ./some-sdl-program
     33 
     34 This is especially useful when starting an SDL program from a remote
     35 login prompt (which is great for development).  If you do this, and
     36 want to use keyboard input, you should avoid having some other program
     37 reading from the used virtual console (i.e., do not have a getty
     38 running).
     39 
     40 
     41 Rotating the display
     42 ====================
     43 
     44 The display can be rotated by the wscons SDL driver.  This is useful
     45 for the Sharp Zaurus, since the display hardware is wired so that it
     46 is correctly rotated only when the display is folded into "PDA mode."
     47 When using the Zaurus in "normal," or "keyboard" mode, the hardware
     48 screen is rotated 90 degrees anti-clockwise.
     49 
     50 To let the wscons SDL driver rotate the screen, set the environment
     51 variable SDL_VIDEO_WSCONS_ROTATION to "CW", "CCW", or "UD", for
     52 clockwise, counter clockwise, and upside-down rotation respectively.
     53 "CW" makes the screen appear correct on a Sharp Zaurus SL-C3100.
     54 
     55 When using rotation in the driver, a "shadow" frame buffer is used to
     56 hold the intermediary display, before blitting it to the actual
     57 hardware frame buffer.  This slows down performance a bit.
     58 
     59 For completeness, the rotation "NONE" can be specified to use a shadow
     60 frame buffer without actually rotating.  Unsetting
     61 SDL_VIDEO_WSCONS_ROTATION, or setting it to '' turns off the shadow
     62 frame buffer for maximum performance.
     63 
     64 
     65 Running MAME
     66 ============
     67 
     68 Since my main motivation for writing the driver was playing MAME on
     69 the Zaurus, I'll give a few hints:
     70 
     71 XMame compiles just fine under OpenBSD.
     72 
     73 I'm not sure this is strictly necessary, but set
     74 
     75 MY_CPU = arm
     76 
     77 in makefile.unix, and
     78 
     79 CFLAGS.arm = -DLSB_FIRST -DALIGN_INTS -DALIGN_SHORTS
     80 
     81 in src/unix/unix.max
     82 
     83 to be sure.
     84 
     85 The latest XMame (0.101 at this writing) is a very large program.
     86 Either tinker with the make files to compile a version without support
     87 for all drivers, or, get an older version of XMame.  My recommendation
     88 would be 0.37b16.
     89 
     90 When running MAME, DO NOT SET SDL_VIDEO_WSCONS_ROTATION!  Performace
     91 is MUCH better without this, and it is COMPLETELY UNNECESSARY, since
     92 MAME can rotate the picture itself while drawing, and does so MUCH
     93 FASTER.
     94 
     95 Use the Xmame command line option "-ror" to rotate the picture to the
     96 right.
     97 
     98 
     99 Acknowledgments
    100 ===============
    101 
    102 I studied the wsfb driver for XFree86/Xorg quite a bit before writing
    103 this, so there ought to be some similarities.
    104 
    105 
    106 --
    107 Staffan Ulfberg <staffan (a] ulfberg.se>
    108