================================================
Snes9X OpenGL Demo by Kreed Beta 1 (May 15 2000)
================================================

Snes9x OpenGL
-------------
Snes9XGL is a Windows 2000/98/NT4/95 version of Snes9X which uses OpenGL instead of Glide to 
do fullscreen bilinear filtering. This is not an official version of Snes9X. Most Snes9X 
settings and features are hardcoded and cannot be changed, enabled/disabled. 
It would only confuse people anyway...

Snes9XGL requires:
1. A soundcard supported by Windows.
2. Around 32 MB RAM
3. A good up-to-date 3d accelerator w OpenGL 1.1 drivers for Windows. The video card should be 
   able to upload textures VERY QUICKLY in OpenGL. Also it should support 512x512 textures. 
   No special OpenGL extensions required as far as I know.

Tested video cards:
Diamond Stealth3 (Savage4 chipset) in Win2K/98: Works OK
        Note: Full screen doesn't work right in 98, but it does in 2k.
              Savage4 driver prob?
Diamond FireGL 1000 in NT4: Works OK
ASUS V3000 (Riva 128 chipset) in NT4: Way too slow

You must have a pretty decent up-to-date video card to even think about using Snes9XGL. 
Therefore, as a bonus, all your games are now lit and bump mapped :).
No more boring 3dfx bilinear look.. [albeit 3dfx mode is faster...]


What's implemented?
-------------------
-Snes9X v1.29 with C/C++ CPU cores.
-Windowed & Full Screen OpenGL bilinear filtering
-BumpMapping !!
 Adds 'depth' to most games :)
-SRAM save functionality
-Loading a ROM from the command line / Loading a ROM by using drag & drop
-Hardcoded Snes9X settings:
	-Always Auto Frame Rate
	-Always render in 16-bit
	-Always support HiRes games
	-Always output 22050hz stereo sound using Windows MM out
	-Keyboard buttons. One player supported only. 
	 SNES[A,B,X,Y,L,R,START,SELECT] = KEYBOARD[D,C,S,X,A,Z,ENTER,SPACE]
-Did I mention BumpMapping ?!


What's Not?
-----------
-A nice user friendly GUI [completely lacking] to configure some Snes9X settings
-Saving & Loading of Freeze files
-Buttons to turn on/off background layers, H-DMA, swap joypads etc..


Too slow?/What to expect
------------------------
Fact: OpenGL uploading of textures is slow and varies from card to card [and driver to driver],
      whereas Direct3d and Glide are quite fast in that department.

On my development platform [K6-3 450mhz, Diamond StealthIII] I get around 20 fps in most games,
with and without the bumpmapping [hardcoded: always enabled]. 

Filtering Without bumpmapping: one 512x512 texture upload per frame, 2 unblended textured 
								triangles, no lighting.
Filtering With bumpmapping: one 512x512 texture upload per frame, ~400 blended textured 
								triangles, lighting.

Conclusion: CPU is definitely not the limiting factor, neither is the rendering 
			speed of the card, just the texture uploading speed by the OpenGL ICD of the 
			video card.

Options:
1.Beg your card manufacturer to optimize the OpenGL ICD
2.Beg the OpenGL comite to allow more controlled access to textures
3.Get another video card


History
-------
Beta 1: Initial release. Made in 3 days with a lot of 'Copy & Paste' programming



VIP's who made Snes9XGL possible
--------------------------------
-Gary Henderson and Jerremy Koot for Snes9X
-FireLight Multimedia for the FMOD sound library
-Shawn Hargreaves & Co for the Allegro library [from which I ripped some code]
-NeHe for his OpenGL tutorials
-Diego Tartara for his Bump Mapping demo


====================================
Kreed (derek-liauw@usa.net)
http://members.xoom.com/derek_liauw/
