Mercurial > sdl-ios-xcode
diff README.wscons @ 1187:19d8949b4584
To: sdl@libsdl.org
From: Staffan Ulfberg <staffan@ulfberg.se>
Date: 19 Nov 2005 01:00:48 +0100
Subject: [SDL] New driver for OpenBSD/wscons
Hello,
I've written an SDL driver for OpenBSD/wscons (console mode, somewhat
resembling the functionality of the svga driver for Linux). I use it
for playing MAME on my Sharp Zaurus. The alternative is to play under
X, which is slower.
I asked how to submit the driver a few days ago, and posted a link to
the patch in a follow-up, so maybe it was missed?
Anyway, the patch is on the web at:
http://multivac.fatburen.org/SDL-wscons.patch
Comments?
Staffan
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Tue, 22 Nov 2005 15:19:50 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.wscons Tue Nov 22 15:19:50 2005 +0000 @@ -0,0 +1,107 @@ +============================================================================== +Using the Simple DirectMedia Layer with OpenBSD/wscons +============================================================================== + +The wscons SDL driver can be used to run SDL programs on OpenBSD +without running X. So far, the driver only runs on the Sharp Zaurus, +but the driver is written to be easily extended for other machines. +The main missing pieces are blitting routines for anything but 16 bit +displays, and keycode maps for other keyboards. Also, there is no +support for hardware palettes. + +There is currently no mouse support. + +To compile SDL with support for wscons, use the +"--enable-video-wscons" option when running configure. I used the +following command line: + +./configure --disable-oss --disable-ltdl --enable-pthread-sem \ + --disable-esd --disable-arts --disable-video-aalib \ + --enable-openbsdaudio --enable-video-wscons \ + --prefix=/usr/local --sysconfdir=/etc + + +Setting the console device to use +================================= + +When starting an SDL program on a wscons console, the driver uses the +current virtual terminal (usually /dev/ttyC0). To force the driver to +use a specific terminal device, set the environment variable +SDL_WSCONSDEV: + +bash$ SDL_WSCONSDEV=/dev/ttyC1 ./some-sdl-program + +This is especially useful when starting an SDL program from a remote +login prompt (which is great for development). If you do this, and +want to use keyboard input, you should avoid having some other program +reading from the used virtual console (i.e., do not have a getty +running). + + +Rotating the display +==================== + +The display can be rotated by the wscons SDL driver. This is useful +for the Sharp Zaurus, since the display hardware is wired so that it +is correctly rotated only when the display is folded into "PDA mode." +When using the Zaurus in "normal," or "keyboard" mode, the hardware +screen is rotated 90 degrees anti-clockwise. + +To let the wscons SDL driver rotate the screen, set the environment +variable SDL_VIDEO_WSCONS_ROTATION to "CW", "CCW", or "UD", for +clockwise, counter clockwise, and upside-down rotation respectively. +"CW" makes the screen appear correct on a Sharp Zaurus SL-C3100. + +When using rotation in the driver, a "shadow" frame buffer is used to +hold the intermediary display, before blitting it to the actual +hardware frame buffer. This slows down performance a bit. + +For completeness, the rotation "NONE" can be specified to use a shadow +frame buffer without actually rotating. Unsetting +SDL_VIDEO_WSCONS_ROTATION, or setting it to '' turns off the shadow +frame buffer for maximum performance. + + +Running MAME +============ + +Since my main motivation for writing the driver was playing MAME on +the Zaurus, I'll give a few hints: + +XMame compiles just fine under OpenBSD. + +I'm not sure this is strictly necessary, but set + +MY_CPU = arm + +in makefile.unix, and + +CFLAGS.arm = -DLSB_FIRST -DALIGN_INTS -DALIGN_SHORTS + +in src/unix/unix.max + +to be sure. + +The latest XMame (0.101 at this writing) is a very large program. +Either tinker with the make files to compile a version without support +for all drivers, or, get an older version of XMame. My recommendation +would be 0.37b16. + +When running MAME, DO NOT SET SDL_VIDEO_WSCONS_ROTATION! Performace +is MUCH better without this, and it is COMPLETELY UNNECESSARY, since +MAME can rotate the picture itself while drawing, and does so MUCH +FASTER. + +Use the Xmame command line option "-ror" to rotate the picture to the +right. + + +Acknowledgments +=============== + +I studied the wsfb driver for XFree86/Xorg quite a bit before writing +this, so there ought to be some similarities. + + +-- +Staffan Ulfberg <staffan@ulfberg.se>