         _
     x#######x    x########  x##x   :###x     x#######:
   x#####x#####   #######x   :###x   ###     x#######
  :###x          :###         ####x: ###    :######
  x###           x######x     ######x###     x######x
  x###     ##x   x######x     ### ######      x######x
  :###x      ##  :###         ###  #####      :######x
   x#####x####x   #######x   :###   ####:    #######x
     x#######x    x########  x###    ###x  :#######x

The Genesis Emulator.

http://gens.emuforce.com

email:	stef_d@caramail.com
	stef0@multimania.com

Gens is a Win9X based emulator for the Sega genesis/megadrive system.
It is written for 30% in C/CPP (Visual C++ 5.0) and for 70% in Assembler (Nasm).
Gens WORKS ONLY IN 15/16 BPP MODE and needs directx 5.0 or higher.


 ---------
| SUMMARY |
 ---------

* Disclaimer
* History
* What I need to get Gens working ?
* How to play ?
* Technical infos
* Greetings


 ------------
| Disclaimer |
 ------------

Gens (C)1999/2000 by Stphane Dallongeville
Sega and Genesis are trademarks of Sega Enterprises, Ltd.
Gens is freeware and can be distributed freely as long as it is not modified.
When you use this software you do so at your own risk.
The author is not responsible for any loss or damage resulting from the use
or misuse of this software.
If you do not agree with these terms delete this software now.


 ---------
| History |
 ---------

(XX/07/2000) Changes Gens 0.78b <- Gens 0.76 :
---------------------------------------------

* Rom banking support added.
  Super Street Fighter 2 works !
* YM2612 (FM) emulation improved:
  - LFO support.
  - Better sound (depending of the game).
  - A little bug fixed (looping sound).
  - DAC stereo sound (you can't enable DAC without enable YM2612 anymore).
* Some PSG bugs fixed.
* You can now disable/enable stereo sound and choose the sound quality (8/16 bits).
* Sound dump (WAV format) feature added.
* Z80 instructions timing improved.
* Some tweaks in RAZE Z80 core.
* 68000 Vertical Interrupt again modified.
* Some changes in Controller/IO code.
* Collision flag fixed again.
* Sprite limit is now correctly respected.
* others ...

Games fixed :
Super Street Fighter 2
Pirate Gold
Sonic Compilation
Action 52 in 1
Barbie Super Model
Megagames
International Superstar Soccer Deluxe
Flink (little glitches in world map screen when sprite limit is activated are fixed)
Sonic 1,2,3 (PSG sounds bugs fixed)
Talspin (FM sound bug fixed)
Marsupilami (FM sounds bug fixed)
Bio Hazard (Keys are fixed)

(27/06/2000) Changes Gens 0.76 <- Gens 0.73 :
---------------------------------------------

* DMA FILL finally correct (i hope).
* Little bug in windows/scrollA interaction fixed.
* STOP instruction fixed for "mine" 68000 engine.
  Thunder Force IV and Todd's aventure fixed with "mine" core.
* 68000 interrupts fixed once again :)
* Load / Save State improved :
  - File is smaller
  - Sound is correctly recovered
  - better stability
* RAZE interrupt fixed, RAZE is now the default Z80 engine.
* Z80 Memory write/read fixed again.
* Z80 Interrupt timing modified.
* MMX detection rewritten again (please, let's me know if Cyrix CPU still crashing).
* You don't need anymore to reload a rom after changing the sample rate.
* others little fix.

Games broken :
Fatal Rewind

Game fixed :
Panorama cotton
Burning Force
American Gladiators
Barkley Shut Up & Jam (1 & 2 are now playables but some graphics glitches still exist)
Out Runners (Graphics glitches fixed)
Street Racer (Graphics glitches fixed)
Thunder Force IV (Intro graphics glitches fixed)
Bram Stocker's Dracula
Road Rash 2 & 3 (2 players splited mode fixed)
Beavis & Butthead (Sound)
Sonic 2 (Sound)
Puyo Puyo 2 (Sound)
some others i think ....

(15/06/2000) Changes Gens 0.73 <- Gens 0.72 :
---------------------------------------------

* Menu selection fixed (2xSAI & Scanline)
* Write/Read Z80 Ram fixed. (Grand Slam music is ok) 
* You can now pause emulation with ESC key.
  (automatically paused when the Gens window is desactivated)
* High-resolution fullscreen finally complety fixed for all videos cards.
* MMX detection code rewritten (no crashes anymore)

(13/06/2000) Changes Gens 0.72 <- Gens 0.7 :
--------------------------------------------

* High-resolution fullscreen fixed for voodoo3 & savage4.
* Repaint fixed for tnt2 in windowed mode.
* 50% scanline added.
* Interpolated scanline added.

(09/06/2000) Changes Gens 0.7 <- Gens 0.6 :
-------------------------------------------

Good new features :

* 640x480 Full Screen resolution added.
* 2xSAI Kreed's engine added (the same as zsnes or snes9x) !
* Scanline added.
* AutoFrame-Skip synchronised on DirectSound (when available).
  Sound is better.
* Correct screen ratio in windowed mode.
* Little change in H-Blank flag.
* Interrupts fixed for both 68k core (Starscream and mine)
* Correct 'reset' instruction.
* Z80 BUS request fixed.
* Vertical-Counter fixed.
* Shortcuts changed. (see the 'How to play' section)
* Save and sram files name of zipped roms are now correct.
* "Free-Rom" mode changed.
  If you can't see it, you aren't in 15/16 BPP mode (Gens needs 15/16 BPP). 
* "Top Most" window when exiting the fullscreen mode is fixed.
* Bad config files in "\windows" directory fixed.
* Minors tweaks in blits routines.
* Minors bugs fixed.


List of new games that work properly:
Double Dragon 1, Double Dragon 2, Fatal Rewind, Super OffRoad, Tecmo NBA, Lemmings 2,
Combat Cars (2 players split is ok), Todd adventures ... and surely others.

(26/05/2000) Changes Gens 0.6 <- Gens 0.54 :
--------------------------------------------

* ZIP support added !
* We can define the directories for saves files.
* Full-Screen is fixed for both voodoo3 and savage4 videos cards.
* FM timers fixed (voices are now played at good pitch for comix zone, aladdin, cool spot ...)
* H-Int finally fixed : Top Gear 2 and Lotus 2 looks good !
* Z80 interrupt fixed (bubsy works and censor smiley demo has music)
* Controllers code fixed again (American gladiators and Forgotten worlds are playable)
* I've removed the hack for double dragon, super off road ... because it causes problems with
  a few rom (like road rash 3) then they doesn't work any more :(
* Some others little changes ...

(18/05/2000) Changes Gens 0.54 <- Gens 0.5 :
--------------------------------------------

Just a great compatibility increased :

* PAL roms are now works at good speed (50 FPS) !
  (Tintin, Spirou ... doesn't lock with country message any more)
* Another bug in Starscream 68000 core fixed:
  Sonic2, terminator 2 (judment day), lemmings, royal blood ... works perfectly with Starscream.
* Little bug in collision flag fixed (interaction with ennemies in strider2).
  (Thanks to Bart Trzynadlowski from Genital)
* I've fixed some things in vertical and horizontal interrupts & flags, more games works :
  Super skidmarks, megalomania, gauntlet 4 ...
* Some bugs fixed in window plan and VDP reg write.
  Tale spin, rolling thunder 2 (not sure for this rom), Abrams Battle tank, Rings of power ... are ok.
* Read/Write to CRAM, VSRAM fixed (taiwan tycoon V-Scroll, xennon 2 are ok)
* Z80 BUS request fixed (double dragon, fatal rewind and super offroad works)
* little fix in DMA copy (taiga drama taiheiki looks good, european club soccer looks better ...)
* Very little bug in sram fixed (tonki comes back working)

(26/04/2000) Changes Gens 0.5 <- Gens 0.4 :
-------------------------------------------

* I've enterely rewrite the VDP IO code:
  - DMA transferts appears near perfect and a lot of games works now correctly !
    (Warsong, Batman and Robin, Contra4, Shinig force 2 ...)
  - Improvement of Control Decoding.
    (Electronic Arts Intro finally fixed !)
  - Reads and Writes more accurate ...
  - Save state files (.gs*) has changed du to new VDP code and could have
    problems to load old save files.
* I've fixed a bug in Starscream 68000 core :
  - Greendog, Samurais Shodow, Eternals Champions ... works correctly with Starscream.
  - little speed improvement.
* SRAM finally fixed (file saved when change rom).
* I've enterely rewrite controllers code (fix some mistakes).
* Stupid bug in window plan fixed (miss a pixel on the right).
* Little change in timing :
  Landstaker blank line fixed, Outrun back working with my 68000 core, ...
* Messages infos added.
* Show FPS added.
* I've finally add an icon for Gens (Thanks to all people that send me an icon :)
* Shortcuts has changed (readme.txt).
* Some others things added or fixed .....

I think the compatibily rate's above 85% !

(06/04/2000) Changes Gens 0.4 <- Gens 0.39 :
--------------------------------------------
A lot of changes for this new release :

- Gens configuration saved in file ! (finally)
  (You can specify your own file name for special configuration)
- SRAM fixed and entierely implemented (saved in file).
- Mouse cursor now hidden in Full-Screen then you must use
  the right mouse button to access at popup menu  !
- Perfect recovering of sound after 'load state' (only with MZ80 core).
  Saves files are now bigger, but there are compatible with old format.
- DAC (few) noises fixed.
- Some little bugs with VDP DMA fixed.
- Others bugs fixed .....

About 80% (little more) of roms work correctly !
No error messages anymore (like "Starscream core error ...").
If an error occurs, emulation attempt to continue even if can crash.

(01/04/2000) Changes Gens 0.39 <- Gens 0.36 :
---------------------------------------------

- Joystick support added ! (directx 5.0 needed)
- Interlaced VDP mode added ! (can play at sonic in split mode but only with my 68000 core)
- Fixed (again) auto-detection for some others country ...
- Fixed H-Blank status in VDP
- Some others few bugs fixed (Alt-Tab key, ...)

SRAM not yet saved in file
Config not yet saved in file

(27/03/2000) Changes Gens 0.36 <- Gens 0.34 :
---------------------------------------------

- Gens now uses the new MZ80 core of Neil Bradley (v3.4)
  and it corrects some sound bugs !
- Fixed special version auto-detection (Toy Story ...)
- SRAM implemented (Landstaker, Light Crusader ... now work correctly !)
  but not yet saved in a file.
- Choice of the game speed added : NTSC (60 FPS) or PAL (50 FPS).
  If a game runs too fast, just switch to PAL version.
- Sound timing for some games (vector man ...) fixed.
- Fixed switch state shortcut.
- Fixed the stupid bug which exits after setting keys !
- Fixed load state crashes with starscream.
- ...

Joystick support not yet available :(

(21/03/2000) Changes Gens 0.34 <- Gens 0.3 :
--------------------------------------------

- Starscream 68000 is available, changes :
  - More roms work fine (about 75% :)
  - Faster than mine !
  - Debugger doesn't work with Starscream !
- RAZE Z80 core added, but there are some problems with certain roms aladdin, sonic ...)
  but it works better than MZ80 in other cases (animaniacs, contra4 ...).
- Shortcuts added (Save / Load state, frame skip ... see below)
- Sound is now stopped when clicking on menu or resizing the window ...
- Current directory stored (but not yet in a file, just when you keep gens running)
- Some optimizations -> some more FPS :)
- Bug fixes (DirectSound init, key settings ...)
- Others I can't remember ....

(14/03/2000) Changes Gens 0.3 <- Gens 0.24 :
--------------------------------------------

- Starscream 68000 core (faster and more accurate than mine) is now
  implemented but deactivated, it'll be active in the next version !
- DAC works now perfectly (can hear 'SEGA' chord in sonic games :)
- Many many fixes in sound and CPU timings:
  - All chips (68000, Z80, YM2612, PSG ...) are synchronized depending on the
    game type (PAL 50Hz / SECAM 60Hz) and PAL games work at 50 FPS in
    auto-frameskip mode.
  - Fix YM2612 timers.
  - Fix PSG rate.
- Can choose sound sample rate (you must reload the rom for that to take effect !)
- Some little others...

There are some glitches with the DAC speed with some games (just hear the voices in
aladdin, cool-spot, lemmings ...)

(08/03/2000) Changes Gens 0.24 <- Gens 0.2 :
--------------------------------------------

- I returned to MZ80 (Neil Bradley neil@synthcom.com) z80 emulator, it now works correctly !<br>
- Preliminary sound emulation :<br>
  - YM2612 works correctly :)<br>
  - PSG works strangely :o<br>
  - DAC doesn't work and only does some noises :(<br>
  - Sound sync is not yet perfect !<br>
  - Sound is played slowly with certain roms<br>
- Fixed a bug in the window plane (Zombie doesn't crash any more ...)<br>
- Others ...<br>

(24/02/2000) Changes Gens 0.2 <- Gens 0.141 :
---------------------------------------------

- I've entirely rewritten the VDP rendering :
  - More optimized and so faster ;)
  - Fixed Scroll A / Window conflict.
  - Added masks sprite features.
  - Added sprite limit feature (can notice it on sonic 1 main screen)
    You can enable or disable it by 'Sprite Over' option in the 'graphics' menu.
  - Added 15 bits mode.
    No more bad colors on some video cards :)
- Fixed the VSRam read and write (vertical scrollings are now okay)
- I'm using RAZE (Richard Mitton richard.mitton@bigfoot.com) z80 emulator instead of MZ80
 (Neil Bradley neil@synthcom.com) due to unworking games with MZ80 (I may not use it correctly).
- Some changes in DMA transfers. (sprites of mario (no commercial) rom are okay).
- Full-Screen now works correctly.
  Full-Screen is faster than Windowed mode, just use it !
- Some others ...

Sorry, once again, the sound is not implemented, may be in the next release !

(08/02/2000) Changes Gens 0.141 <- Gens 0.12 Beta :
----------------------------------------------------------------

- Auto-FrameSkip added !
- Corrected some bugs on DMA (demo roms like super mario don't crash any more ... )
- Key settings for Player 1 & Player 2 added !
- I have changed DirectDraw method to get faster transparencies effects.
- HalfBlur effect added for smooth graphics !

(03/02/2000) Changes Gens 0.12 Beta (Win9X) <- Gens 0.15b (DOS):
----------------------------------------------------------------

First important change: Gens works now under win9X and using DirectX !, Then some bugs appeared
and some roms that worked on Gens 0.15b don't work anymore :(

- Screen size * 1; * 2; * 3; * 4.
- No V-Sync possibility for now.
- Debugger is missing because a lot of work is needed to make it work !
- Save/Load state added !
  I'm using Genecyst format, there are some bugs due to lack of info.
- The transparencies effects due to palette changes during H-Blanking work !

No sound yet !


 -----------------------------------
| What I need to get Gens working ? |
 -----------------------------------

On my machine (Celeron @464 Mhz & 64 Mb), most roms works at 60 FPS or more.
(20 FPS when I use size * 3).

* Minimun Machine

- Pentium 166 (MMX is required for 2xSaI Kreed's engine)
- 16 Mb de Ram
- Video card that supports DirectDraw and 15/16 bpp mode
- Win9X / Win2000
- DirectX 5.0


* Recommended Machine (if you want 60 FPS)

- Pentium II 300 Mhz
- A good video card like tnt or G400 ...
  If you have a bad video card like SIS, Virge ... I recommended strongly you to use Full Screen
- 32 Mb Ram
- Win9X / Win2000
- DirectX 5.0


  --------------
| How to play ? |
 ---------------

(QWERTY keyboard)

		Player 1			Player 2

	Up		UP		Up		Y
	Down		DOWN		Down		H
	Left		LEFT		Left		G
	right		RIGHT		Right		J
	A		A		A		K
	B		S		B		L
	C		D		C		?
	X		Z		X		I
	Y		X		X		O
	Z		C		Z		P
	Start		Return		Start		U
	Mode		RShift		Mode		T

You can redefine keys if you've problems.

Shortcuts :
-----------

	Open Rom				Ctrl + O
	Auto Frame-Skip				F2
	Frame-Skip - 1				F3
	Frame-Skip + 1				F4
	Save State				F5
	Previous state				F6
	Next State				F7
	Load State				F8
	Fast Blur				F9
	Show FPS				F10
	Full-Screen / Window Mode		Alt + Return
	Reset Main CPU (68000)			TAB

F11 and F12 depending on Directdraw mode:

- Windowed mode

        Windows Sise
        <---------------------------------------->
        F11     x1      x2      x3      x4     F12

- Full Screen mode

        Full Screen Render
        <-------------------------------------------------------------------------------------->
        F11  320x240   640x480     640x480       640x480            640x480         640x480  F12 
             Normal    Normal   Full-Scanline  50%-Scanline  Interpolated-Scanline   2xSaI

IMPORTANT :
-----------

When you use the fullscreen, the window-menu is replaced by a popup menu,
hit the right mouse button to make it appears.


 -----------------
| Technical infos |
 -----------------

* 68000 CPU (2 cores) :
  - Starscream 680x0 emulation library by Neill Corlett (corlett@elwha.nrrc.ncsu.edu)
   (very fast and more accurrate than mine)
  - Mine (just try it when Starscream doesn't work)
* VDP :
- DMA transfers (all modes)
- Scroll A plane with vertical scrolling (overall, 2 cells) and
  horizontal scrolling (overall, cell, dot)
- Scroll B plane with vertical scrolling (overall, 2 cells) and
  horizontal scrolling (overall, cell, dot)
- Window plane 
- Sprite plane 
- Vertical Interrupt 
- Horizontal Interrupt 
- All raster effects
- Highlight/Shadow effects (not perfect)
- Interlaced mode
* IO ports supported (controller 1 and controller 2)
* Z80 CPU emulation (2 cores) :
  - MZ80 Multi-CPU emulator by Neil Bradley (neil@synthcom.com)
  - RAZE Z80 core by Richard Mitton (richard.mitton@bigfoot.com)
* YM2612 chip emulation by Tatsuyuki Satoh
* PSG 76489 emulation
* SRAM fully supported.
* Frame Skip (Auto, 0, 1, 2, 3, 4)
* Save/Load State.
* Window / Fullscreen Render (scanline and 2xSaI support).

What is lacking :
-----------------

* Perfect highlight / shadow effects
* Perfect priorities (sprite)
* Menacer support
* SVP chip support (Virtua Racing special DSP)


Compatibility :
---------------

Red5 from the Genesis Project has tested 0-A and T-Z games with Gens v0.6
92% of games work perfectly + 4% are playables with some glitches.
Then 96% of games are playables :)

You can see these results at http://www.genesisproject.co.uk

The compatibility of Gens v0.78b is better. (about 97% of games playables)


 -----------
| Greetings |
 -----------

Neill Corlett for his very fast 68000 Starscream emulator.
Neil Bradley for his very fast MZ80 emulator.
Richard Mitton for his fast and accurate RAZE emulator.
Tatsuyuki Satoh for his Yamaha chips emulator (YM2612) which do very nice sound.
Kreed (Derek Liauw Kie Fa) for his excellent 2xSaI engine (i love it :)
Charles Mac Donald for his informations about genesis VDP.
Nicolas BRAY, NiNjA LEMoN, Arzeno Fabrice, DaGee, Thierry Caland, Mickagame, Nik 166 ... (i'm surely forgot some, sorry)
for being Gens beta testers.
Thierry Caland (again) for making the Gens beta testers site.
Red5 from The Genesis Project (http://www.genesisproject.co.uk) for testing Gens.
Combacker for designing the Official Gens site. (http://www.emuforce.com/gens)
Emuforce staff for hosting it.
UPX by Markus Oberhumer & Laszlo Molnar (http://upx.tsx.org).
All the people that have helped or supported me by mails (or by subscribe on my alladvantage banner :)
All others I forgot !