         _
     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).


 ---------
| 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 becomes cardware, this means you can send me a card if you use and like it.
(i'll really appreciate it, thanks :)
Usual mail :
Stphane DALLONGEVILLE
8 rue Victor Duvauchelle
80000 AMIENS (FRANCE)

It can be distributed freely as long as it is not modified.
When you use it you do so at your own risk.
The author is not responsible for any loss or damage resulting from the use
or misuse of GENS.
If you do not agree with these terms delete GENS now.


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

(21/12/2000) Changes Gens 0.92 <- Gens 0.92b :
----------------------------------------------

* I've added a stupid bug in DMA with Gens v0.92, it's now fixed.
* DMA timing modified a bit...
* Korean language added in LANGUAGE.DAT
* That's all ...

Game Fixed:
Game that was broken in Gens v0.92

Game Broken:
Nope


(20/12/2000) Changes Gens 0.92 <- Gens 0.88 :
---------------------------------------------

* new rendering mode : 25% scanlines
* Scanlines, 25% scanlines, 50% scanlines, Interpolated scanlines and fast-blur has been
  rewritten for MMX CPU.
  - 25% scanlines and 50% scanlines are availables only for MMX CPU.
* Z80 timing modified once again... voices are better (same as gens 0.78b) and compatiblity
  is ok.
* Game genie improved and .PAT files supported.
* DMA timing are now emulated.
* Roms history (9 last roms). 
* New options for message displaying, FPS and others...
* Some languages added or fixed in language.dat
* Minors bugs fixed.
* Can choose triple buffer separatly of V-Sync (not really usefull).
* New icon ;)
* others minors things.

Game Fixed:
- Dragon Slayer (graphics fixed)
- Dragon Slayer 2 (graphics fixed)
- Joe & Mac (sound)
- Super skidmark (intro fixed)
- Barkley Shut Up and Jam (graphics fixed)
- Barkley Shut Up and Jam 2 (graphics fixed)
- Legend of Galahad (bottom screen fixed)
- Kawasaki Superbike Challenge (bottom screen fixed)
- European Club soccer (scrolling fixed)
- ....


Game Broken:
After some testing, a couple of games was broken accidently:
- Mortal Kombat
- Combat Cars
- ....


(23/10/2000) Changes Gens 0.88 <- Gens 0.8 :
--------------------------------------------

* Country select feature added.
* Menu language support improved :
  Menu is dynamically rebuild from language.dat file so it's very easy to add or change
  a menu language.
* English, French, Spanish, Portuguese, German and Hebrew menu language are actually supported.
* Screen-Shot feature added.
* Direct Draw code modified :
  - 'Normal' and 'Double' render mode uses hardware blit in Fullscreen.
  - Screen Size x1, x2 removed in windowed mode because not usefull.
  - Screen refresh improved when emulation is paused.
* My 68000 core and MZ80 core are removed because RAZE and custom Starscream are accurate.
* Debugger rewritten for Starscream.
* Message drawing code rewritten.
* GENS becomes cardware.
* I figured that Gens played Genesis voices (especially in SSFII) better than the
  real genesis, the bug is now fixed so voices are now more crap with almost game :(
* others fix or improvements ...

Known game broken :
Double Dragon 2 (this game is very sensitive to CPU timing :( )

Known game fixed :
Frogger.


(04/09/2000) Changes Gens 0.81 <- Gens 0.8 :
--------------------------------------------

Very few changes :

* KNUX support is fixed.
  - KNUX is a window based application which allow you to change
    many parameters of almost all Sonic Games.
  - For more informations about KNUX, you can contact the author at
    danil@ort.spb.ru
* Spanish menu added.
* Window position is saved when you quit gens.

(02/09/2000) Changes Gens 0.8 <- Gens 0.78b :
---------------------------------------------

* New VDP-Render engine :
  - BG Hilight/Shadow effects fixed.
  - Complexes sprite priorities fixed.
  - faster with 80% of games.
* New Direct Draw code :
  - Triple buffering added.
  - You can now use all render type (2xSAI ...) in windowed mode.
* Auto fix checksum option added.
* Game Genie support :
  - both game genie code or patch code are supported.
  - you can add or remove code.
  (don't forget to 'apply' the changes)
* KNUX supported.
* Auto Switch to 16 BPP when Gens starting
  (settings are recovered when Gens exiting)
* Possibility to change menu language (only french & english actually)
* 68000 Vertical Interrupt changed a bit.<br>
* Some shortkeys modified (see them in 'How to play' section).
* Others little fix or add ...

Game Fixed:
SeaQuest DSV (only [f][x] version)
Fatal Rewind

(27/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.
* Some tweaks in RAZE Z80 core.
* Some changes in Controller/IO code.
* Collision flag fixed again.
* Sprite limit is now perfectly respected.

Games fixed :
Super Street Fighter 2
Pirate Gold
Sonic Compilation
Action 52 in 1
Barbie Super Model
Megagames
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 entirely 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 !
- Preliminary sound emulation :
  - YM2612 works correctly :)
  - PSG works strangely :o
  - DAC doesn't work and only does some noises :(
  - Sound sync is not yet perfect !
  - Sound is played slowly with certain roms
- Fixed a bug in the window plane (Zombie doesn't crash any more ...)
- Others ...

(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 see 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), all roms works at 60 FPS !

* Minimun Machine

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


* Recommended Machine (if you want 60 FPS)

- Pentium II 266 Mhz
- A good video card like tnt ...
- 32 Mb Ram
- Win9X / Win2000
- DirectX 6.0


Use the normal render mode (in 'graphics' menu) to get the best performance.


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

Default keys :

(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

Of course, you can redefine them ...


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
Previous Render Mode                    F11
Next Render Mode                        F12
Full-Screen / Window Mode               Alt + Return
Hard Reset                              TAB
VSync (full screen only)                Ctrl + V
Screen shot                             Ctrl + T

Render Mode:

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

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

When you use the fullscreen, the window-menu is replaced by a popup menu,
press 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 and timing respected)
- 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
- Interlaced mode
- Sprite collision & sprite overflow flags
* 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 :
-----------------

* Nothing very important :)
(SVP chip support, Menacer support, 4 joystick adaptater)

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

Red5 from the Genesis Project has tested 0-A and T-Z games with Gens v0.7
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

I think compatibility of Gens v0.92 is about 97% (games playables).


 -----------
| Greetings | (without any order)
 -----------

Neill Corlett for his very fast 68000 Starscream emulator.
Richard Mitton for his fast and very 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 !
Charles Mac Donald for all informations about genesis hardware.
Christian Chriller for general informations.
Nicolas BRAY, NiNjA LEMoN, Arzeno Fabrice, DaGee, Thierry Caland, Mickagame, Nik 166, Belgarion, Darkfalz ... (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)
Durrenberger David - dines (http://www.koubis.com) for the new Gens logo and icon.
EmuSphere staff for hosting it.
Emuforce staff (and specially D[J]) for hosting it and report bugs, feedbacks.
UPX by Markus Oberhumer & Laszlo Molnar (http://upx.tsx.org).
All people who sent me menus translations !
All people who report me bugs.
All others I forgot !