
===========
SDL on OS/2
===========

Last updated on May. 1, 2006.


1. How to compile?
------------------

To compile this, you'll need the followings installed:
- The OS/2 Developer's Toolkit
- The OpenWatcom compiler 
  (http://www.openwatcom.org)
- The FSLib library
  (ftp://ftp.netlabs.org/pub/SDL)

First of all, you have to unzip the Watcom-OS2.zip file. This will result in a 
file called "makefile" and a file called "setvars.cmd" in this folder (and some
more files...).

Please edit the second, fourth and fifth lines of setvars.cmd file
to set the folders where the toolkit, the OW compiler and the FSLib are. 
You won't need NASM yet (The Netwide Assembler), you can leave that line.
Run setvars.cmd, and you should get a shell in which you can
compile SDL.

Check the "makefile" file. There is a line in there which determines if the 
resulting SDL.DLL will be a 'debug' or a 'release' build. The 'debug' version 
is full of printf()'s, so if something goes wrong, its output can help a lot
for debugging.

Then run "wmake".
This should create the SDL.DLL and the corresponding SDL.LIB file here.

To test applications, it's a good idea to use the 'debug' build of SDL, and
redirect the standard output and standard error output to files, to see what
happens internally in SDL.
(like: testsprite >stdout.txt 2>stderr.txt)

To rebuild SDL, use the following commands in this folder:
wmake clean
wmake



2. How to compile the testapps?
-------------------------------

Once you have SDL.DLL compiled, navigate into the 'test' folder, copy in there
the newly built SDL.DLL, and copy in there FSLib.DLL.

Then run "wmake" in there to compile some of the testapps.



3. What is missing?
-------------------

The following things are missing from this SDL implementation:
- MMX, SSE and 3DNOW! optimized video blitters?
- HW Video surfaces
- OpenGL support



4. Special Keys / Full-Screen support
-------------------------------------

There are two special hot-keys implemented:
- Alt+Home switches between fullscreen and windowed mode
- Alt+End simulates closing the window (can be used as a Panic key)
Only the LEFT Alt key will work.



5. Joysticks on SDL/2
---------------------

The Joystick detection only works for standard joysticks (2 buttons, 2 axes
and the like). Therefore, if you use a non-standard joystick, you should
specify its features in the SDL_OS2_JOYSTICK environment variable in a batch
file or CONFIG.SYS, so SDL applications can provide full capability to your
device. The syntax is:

SET SDL_OS2_JOYSTICK=[JOYSTICK_NAME] [AXES] [BUTTONS] [HATS] [BALLS]

So, it you have a Gravis GamePad with 4 axes, 2 buttons, 2 hats and 0 balls,
the line should be:

SET SDL_OS2_JOYSTICK=Gravis_GamePad 4 2 2 0

If you want to add spaces in your joystick name, just surround it with
quotes or double-quotes:

SET SDL_OS2_JOYSTICK='Gravis GamePad' 4 2 2 0

or

SET SDL_OS2_JOYSTICK="Gravis GamePad" 4 2 2 0

   Notive However that Balls and Hats are not supported under OS/2, and the
value will be ignored... but it is wise to define these correctly because 
in the future those can be supported.
   Also the number of buttons is limited to 2 when using two joysticks,
4 when using one joystick with 4 axes, 6 when using a joystick with 3 axes
and 8 when using a joystick with 2 axes. Notice however these are limitations 
of the Joystick Port hardware, not OS/2.



6. Proportional windows
-----------------------

For some SDL applications it can be handy to have proportional windows, so
the windows will keep their aspect ratio when resized.
This can be achieved in two ways:

- Before starting the given SDL application, set the
  SDL_USE_PROPORTIONAL_WINDOW environment variable to something, e.g.:

  SET SDL_USE_PROPORTIONAL_WINDOW=1
  dosbox.exe

- If you have a HOME environment variable set, then SDL will look for a file
  in there called ".sdl.proportionals". If that file contains the name of the
  currently running SDL executable, then that process will have proportional
  windows automatically.

  Please note that this file is created automatically with default values
  at the first run.



7. Audio in SDL applications
----------------------------

Audio effects are one of the most important features in games. Creating audio
effects in sync with the game and without hickups and pauses in the audio are
very important things.

However there are multithreaded SDL applications that have tight loops as their
main logic loop. This kills performance in OS/2, and takes too much CPU from
other threads in the same process, for example from the thread to create the 
sound effects.

For this reason, the OS/2 port of SDL can be instructed to run the audio thread
in high priority, which makes sure that there will be enough time for the 
processing of the audio data.

At default, SDL/2 runs the audio thread at ForegroundServer+0 priority. Well 
written and well behaving SDL applications should work well in this mode.
For other applications, you can tell SDL/2 to run the audio thread at 
TimeCritical priority by setting an env.variable before starting the SDL app:

    SET SDL_USE_TIMECRITICAL_AUDIO=1

Please note that this is a bit risky, because if the SDL application runs a
tight infinite loop in this thread, this will make the whole system 
unresponsive, so use it with care, and only for applications that need it!



8. Next steps...
----------------

Things to do:
- Implement missing stuffs (look for 'TODO' string in source code!)
- Finish video driver (the 'wincommon' can be a good example for missing
  things like application icon and so on...)
- Enable MMX/SSE/SSE2 acceleration functions
- Rewrite CDROM support using DOS Ioctl for better support.



9. Contacts
-----------

   You can contact the developers for bugs:

   Area					Developer		email
   General (Audio/Video/System)		Doodle			doodle@scenergy.dfmk.hu
   CDROM and Joystick			Caetano			daniel@caetano.eng.br

   Notice however that SDL/2 is 'in development' stage so ... if you want to help,
please, be our guest and contact us!



10. Changelog of the OS/2 port
------------------------------

Version 1.2 - 2006-05-01  - Doodle
 - Modified makefile system to have only one makefile
 - Included FSLib headers, DLL and LIB file

Version 1.2 - 2006-02-26  - Doodle
 - Updated the official SDL version with the OS/2 specific changes.
 - Added support for real unicode keycode conversion.

Version 1.2.7 - 2006-01-20  - Doodle
 - Added support for selectively using timecritical priority for
   audio threads by SDL_USE_TIMECRITICAL_AUDIO environment variable.
   (e.g.: 
    SET SDL_USE_TIMECRITICAL_AUDIO=1
    dosbox.exe
   )

Version 1.2.7 - 2005-12-22  - Doodle
 - Added support for proportional SDL windows.
   There are two ways to have proportional (aspect-keeping) windows for
   a given SDL application: Either set the SDL_USE_PROPORTIONAL_WINDOW
   environment variable to something before starting the application
   (e.g.: 
    SET SDL_USE_PROPORTIONAL_WINDOW=1
    dosbox.exe
   )
   or, if you have the HOME environment variable set, then SDL.DLL will
   create a file in that directory called .sdl.proportionals, and you can
   put there the name of executable files that will be automatically made
   proportional.

Version 1.2.7 - 2005-10-14  - Doodle
 - Enabled Exception handler code in FSLib to be able to restore original
   desktop video mode in case the application crashes.
 - Added the missing FSLib_Uninitialize() call into SDL.
   (The lack of it did not cause problems, but it's cleaner this way.)
 - Fixed a mouse problem in Fullscreen mode where any mouse click
   re-centered the mouse.

Version 1.2.7 - 2005-10-09  - Doodle
 - Implemented window icon support

Version 1.2.7 - 2005-10-03  - Doodle
 - Reworked semaphore support again
 - Tuned thread priorities

Version 1.2.7 - 2005-10-02  - Doodle
 - Added support for custom mouse pointers
 - Fixed WM_CLOSE processing: give a chance to SDL app to ask user...
 - Added support for MMX-accelerated audio mixers
 - Other small fixes

Version 1.2.7 - 2005-09-12  - Doodle
 - Small fixes for DosBox incorporated into public release
 - Fixed semaphore support (SDL_syssem.c)
 - Fixed FSLib to have good clipping in scaled window mode,
   and to prevent occasional desktop freezes.

Version 1.2.7 - 2004-09-08a - Caetano
	- Improved joystick support (general verifications about hardware).
	- Added support up to 8 buttons in 2 axes joysticks and 6 buttons in 3 axes joysticks.
	- Added support to environment variable SDL_OS2_JOYSTICK to specify a joystick.
	- Improved Joystick test to handle every type of joystick and display only relevant information.
	- Merged with Doodle 2004-09-08
	- Little tid up in README.OS2
	- Added explanation about SDL_OS2_JOYSTICK environment variable on README.OS2

Version 1.2.7 - 2004-09-07 - Caetano
	- Merged with changes in headers for GCC compiling.
	- Added Joystick support using basic IBM GAME$ support, allowing it to work with all joystick drivers since OS/2 2.1.
	- Improved joystick detection (hacked!). OS/2 do not allow real joystick detection, so... 
	- 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).
	- Created separated Joystick test program to test only joystick functions.
	- Improved joystick auto-centering.
	- Improved the coordinate correction routine to use two scale factors for each axis.

Version 1.2.7 - 2004-07-05 - Caetano
	- Corrected the time returned by status in CDROM support (it was incorrect)
	- Added the testcdrom.c and corrected the linking directive (it was causing an error)

Version 1.2.7 - 2004-07-02a - Caetano
	- Corrected a little problem in a comment at SDL-1.2.7\test\torturethread.c, line 18 (missing */, nested comment)
	- Added CDROM support to tree (SDL-1.2.7\src\cdrom\os2\SDL_syscdrom.c)
	- Modified makefile (SDL-1.2.7\src\makefiles.wat and SDL-1.2.7\watcom.mif) to build with CDROM support
	- Added the "extra" SDL_types.h forgotten in 2004-07-02 version.

<End-Of-File>
