home *** CD-ROM | disk | FTP | other *** search
- =================================================================
- genecyst Version 0.32b (09/27/97)
- by Bloodlust Software
- =================================================================
-
- Do not send any files without asking first.
-
- Do not ask about SNESticle (or anything else you want emulated).
-
- I realize that the FM emulation is pretty bad, but since I dont have a
- (working) Genesis anymore I'm going mainly from memory and my tonedeaf ears.
- The envelope rates, detune, and relative volumes need to be tweaked heavily.
- Most games sound better if you turn up the bass on your soundcard.
-
- The CPU skipper analyzes 68k execution and dynamically modifies the
- ROM code to prevent idle loops and other slow things. This can almost halve
- the time taken to emulate the 68k cpu in most games. It is by default off
- because there's a small chance that it may introduce a compatibility
- problem.
-
- Racing games appear to work better now but they desperately need a true
- line by line graphics engine to be 100% accurate and to be rendered faster.
- Patience.
-
- DMAfix on Rockman prevents those evil dots.
-
-
- ---------------------
- What it is
- ---------------------
-
- genecyst is a DOS based emulator for the Sega Genesis.
-
- The 68K, Z80, DAC, digital FM emulation and graphics
- rendering were written from *scratch* in assembly. The rest is in C++.
-
- It is freeware and it is not to be distributed with game
- ROMs and it is not to be modified or sold.
-
- Loads roms in the BIN, SMD or split (*.1) file formats.
-
- OS/2 users: -disablelfn
-
-
- ---------------------
- Revisions
- ---------------------
-
- Version 0.32b:
- -Fixed relative path problem on command line
- -Autoversion setting
- -Fixed FM channel 6 problem
- -Improved CPU skipper
- -Corrected 68K IRQ levels (stupid typo)
- -Fixed a Z80 reset bug
- -Fixed some more z80 bugs
- -F11/F12 switch resolutions (get SDD!)
-
- Version 0.31:
- -Fixed a VRAM fill bug
- -'-exclusive' command line option (disables windows multitasking)
- -Fixed some DAC lag
- -Altered the way envelopes are handled
- -Dynamic CPU skipper
- -Improved H-ints (Gunstar intro, S.Showdown, Chuck Rock, Timekillers, racing games)
- -Louder PSG
- -LFO amplitude modulation
- -PSG noise channel (forgot about that)
- -Altered HV counter
- -Fixed minor z80 bug
- -Fixed minor soundlogging bug
-
- Version 0.30:
- -Encapsulated gui.vol
- -DMA transfers now eat clock cycles
- -Better LFN detection
- -Raster based effects (see below)
- -Sprite masking
- -Correct sprite priorities
- -Rendering optimizations
- -Z80 rewritten
- -Speed throttle disabling
- -'Force display enable' option added (see below)
- -Wave output logging added
- -Digital YM2612 FM synthesis
- -Most of 68k emulation rewritten
- -Cell based V-scrolling
- -Split cart format support
- -State display
- -'DMAfix' prevents vram writes during DMA transfers
- -Digital PSG emulation
- -Faster DMA transfers
- -Accurate HVcounter
- -'version' command line option
- -Scanlines in mode 256x256
- -Correct window placement/priority
- -Romdir saved
- -CRAM reads
- -Changed z80 busreq
- -Fixed SSP/USP problem with state restores
- -68K: Added BTST Dx,# instruction
- -68K: Fixed STOP instruction
- -Fixed joystick calibration
- -Small font added
- -Z80 speedup
-
- Version 0.20:
- -Highly accurate profiling with RDTSC (pentium only)
- -Faster FPU mem->vid copy (pentium only)
- -Automatic 6-button joystick disabling
- -68K: LineA/F emulation
- -68K: Corrected USP/SSP
- -YM2612 FM emulation
- -RAM->VRAM DMA transfer bug fixed
- -DAC sound output
- -Save state file format changed (this was unavoidable)
- -Z80 emulation (buggy)
-
- Version 0.14:
- -Unchained modeX modes added (320x240 and 320x224)
- These modes are considerably slower than VESA modes so don't use them
- -6 button joystick inputs (almost)
- -Stop intruction fixed
- -Fixed MOVE->CCR data size
- -Sped up 68k branching
- -Funky Z-flag implemented
- -Improved waitvsync
- -Pattern table viewer
- -Layer enabling dialog
- -Fixed DOS hardware error handler
- -Readjusted window priority
-
- Version 0.13:
- -PCX palette saving fixed
- -Fixed MOVEM wraparound bug
- -Fixed 68k flag bugs
- -Added primitive Z80 faking
- -Altered Window priority
- -ROM checksum fixer (fixes games that "red screen")
-
- Version 0.12:
- -Initial release
-
- ---------------------
- What it does
- ---------------------
-
- What is emulated:
-
- -68000 CPU @ 8Mhz
- -Z80 secondary CPU @ 4Mhz
- -DAC output
- -YM2612 FM synthesis
- -TI76489 PSG
- -VDP
- -DMA
- -ScrollA/ScrollB/Sprites/Window
- -Some raster effects
- -H/V interrupts
- -Dual 4-button/7-button joypad emulation
- -US/Japan/Europe variants
-
- Other neat features:
-
- -Multiple save states and battery backed ram
- -Joystick support
- -VESA support
- -Save .pcx snapshots
- -Game genie codes
- -Rom checksum fixer
- -Wave output logging
-
- ---------------------
- What it lacks
- ---------------------
-
- Digital FM emulation needs much work
- Stereo FM (probably not worth it)
- Graphic equalizer
-
- 68000 emulation is still buggy
- Z80 emulation still buggy
-
- H-ints aren't emulated correctly I dont think
-
- Shadow/highlighting effects
- Interlaced modes
- Netplay
-
- Many games do not work correctly (or at all).
- Dont bother me if a ROM doesn't work.
-
- ---------------------
- What you need
- ---------------------
-
- A Pentium with at least 8MB of RAM.
-
- genecyst can take advantage of VESA 2.0 support if it exists.
- If it does not exist, genecyst will resort to only the
- video modes 320x200, 256x224, 256x240, 256x256, 320x224, 320x240.
- The last 2 modes are planar (unchained) ModeX modes, meaning that
- they are not linear and are very SLOW. Get a VESA extender such as Scitech
- Display Doctor (www.scitechsoft.com) and use 320x240 instead.
-
- ---------------------
- Work it baby
- ---------------------
-
- Use alt-<key> to access the menu options (ie alt-l loads)
-
- The default keys for the first controller are ABC='zxc', Start='v', XYZ='asd',
- and the arrow keys. They can be remapped from the Settings/Input device menu.
- Enter/Tab will simulate Start/C on controller 1 if you have a 2 button joystick,
- ONLY when the GUI is disabled or the game window has input focus (click on it)
-
- 6-button Genesis controllers can be enabled from the Settings menu. Having a
- 6-button controller enabled on older games will most likely cause them to go
- haywire. The emulation of the 6-button controllers is only a guess, but it
- seems to work for most games. Most games need to be reset if you change from
- 3 to 6 buttons. 6-button support will be automatically disabled for games
- which don't support them as specified in their ROM header.
-
- Some carts check to see what version of hardware they are running
- on (US/Japan/Europe), and they'll bitch if played on the wrong system.
- The setting in the Version menu is the default hardware preference. With
- Auto-Version on, if the default version isn't listed in the ROM header,
- the version will be automatically changed.
-
- Some games contain battery backed RAM. This RAM is automatically
- loaded and saved to "xxxx.GSV" files.
-
- F5/F7 saves and loads states. Pressing the keyboard keys 0-9 (not the numeric
- keypad ones) will change the current state slot for subsequent saves/loads.
- The state filename follows the form "xxxx.GS?" where 'xxxx' is the romname
- and ? is the current save slot (0-9).
-
- Know that the battery backed RAM is saved in each state file. The
- battery RAM from any state file that is loaded will overwrite
- the ROM's .GSV file.
-
- "Raster effects" refers to changes to the display made during a frame.
- Many games use H-interrupts to change video registers and change the
- screen output as it is being drawn. H-ints are automatically enabled with
- raster effects on.
-
- Raster effect emulation is by default off because its still a bit buggy.
- For most games there will be little speed difference with or without
- raster effects, however some games change the video registers many
- times per frame. Games that do that will slow down a lot with raster
- effects on. Palette-based raster effects aren't emulated yet, but they
- are used quite frequently. Also, the raster effects will not persist
- with the cpu paused. These problems will be remedied in later versions.
- Examples of games that benefit from raster effects are TJ&E,G&G, sf2turbo,
- and Landstalker.
-
- Some games create a letterbox effect by turning the display
- enable bit off near the bottom of the screen (usually after a H-interrupt).
- The 'force display enable' menu option will display the screen regardless
- of the status of this bit. This is only needed for a few games, and only
- if you choose to leave raster effects off.
-
- The DMAfix option prevents writes to the VDP during DMA transfers
- (fixes Superhydlide).
-
- ---------------------
- Sound
- ---------------------
-
- Genesis sound output is driven by a secondary Z80 processor running at 4Mhz,
- however the 68000 can also control the sound hardware directly. The Genesis
- uses a YM2612 sound chip which has six FM channels and one digital channel.
-
- A fast Pentium is highly recommended for decent sound emulation. You can
- change the sample rate from its default of 22050hz with the -SNDRATE command
- line option (or just edit gen.ini). The lesser the sample rate the less cpu
- time needed to generate the FM sound. 44100hz sounds very clear but really
- is overkill. Sometimes lower sampling rates sound better.
-
- Z80 emulation can be toggled from the CPU menu. Disabling the Z80 will
- speed up the overall emulation, but sound will be absent in most games.
-
- If a ROM stops due to a Z80 invalid opcode, remember that the Z80
- emulation is buggy and incomplete. Disable Z80 and reset.
-
- Z80 faking can be toggled from the CPU menu. It is workaround that will
- fool the 68000 into thinking that a Z80 is actually present and running.
- Some games loop waiting for the Z80 to respond.
-
- All sound can be disabled with the -nosound command line option.
- Z80 emulation can be disabled with the -disablez80 command line option.
-
- ---------------------
- Input
- ---------------------
-
- genecyst supports analog joysticks, 4-button gamepads,
- 6-button gamepads, the Gravis GrIP gameport and keyboard input.
-
- - There are two input devices, one each for controller 1 and 2.
- - Change the input devices with Settings/RedefineInput
- - Enter/Tab will simulate Start/C on controller 1, ONLY when
- the GUI is disabled or the game window has input focus (click on it)
- - You can remap the buttons for a joystick input device with the
- command line option '-remapbut' or from the "Remap buttons" dialog...
- Simply click on the button type and then press the joystick button
- you wish to use. Pressing any key will set the NES button to "None".
- - You can redefine the keys for a Keyboard input device with the
- Redefine Keys dialog, or with the '-setkey' command line option
- - Joystick 1 or 2 refer to 2-button analog joysticks only!
- - You can interactively calibrate the joystick with the "Calibrate"
- button. Just center and swirl. The joystick thresholds can be also
- set with the '-joythresh' command line option.
- - The '-analogjoyres' command line option sets the maximum number of
- times that the joystick port is polled (usually this need not be changed)
- - In order to enable GrIP support, you MUST copy the "grip.gll" file
- to the startup directory. genecyst will load the driver
- if it finds it and the GrIP devices in slot 1 or 2 can be used.
- Note that if you have Win95 GrIP drivers installed it may not be
- possible for a DOS application to access the GrIP port.
-
- Information on reading the MS Sidewinder gamepad in its native digital mode
- under DOS would be nice. Microsoft is uncooperative.
-
- ---------------------
- Timing
- ---------------------
-
- You can adjust the timing from the Settings menu.
-
- HBlank inst is the number of instructions per scanline (224 lines per frame).
- VBlank inst is the number of instructions per vertical retrace (vblank).
- Vfps is the number of emulated frames per second.
-
- Some games require more instructions per frame in order to not slowdown. In
- other words some games need more CPU power. Other games may need less. An example
- of this is Gauntlet4 which needs at least 3000 Vblankinst (as well as h-ints on).
-
- The more time spent emulating the 68k, the less time available to render
- frames and vice versa.
-
- ---------------------
- ROM patching
- ---------------------
-
-
- genecyst supports GameGenie codes and general patching of the
- CPU ROM address space (0-3FFFFE) at even addresses.
-
- Bring up the ROM patching dialog with F6 or from the CPU menu.
- There are two edit fields in the dialog, the Name and the Code.
- The Code field is where the actual code goes (eg SCRA-BJX0).
- The Name field lets you type in a description of the code
- (eg "Rings worth 2"), if no name is entered then the code string is
- used as the name. Once you've filled these in, clicking "Add" (or
- pressing enter) will add it to the list of patches. To activate
- or deactivate the patch, doubleclick on the code name in the listbox
- or click on "Toggle". "Remove" deletes the patch completely.
- "Save" writes all the patches to the text file <romname>.pat,
- this file is decribed below.
-
- genecyst accepts either GameGenie codes or raw patches.
- GameGenie codes are 8 digits long and use the symbols:
- ABCDEFGHJKLMNPRSTVWXYZ0123456789
- The use of a '-' is optional.
-
- The raw patches are in the format:
- <$addr>:<$val>
- <$addr> is the 24-bit hex address (must be even)
- <$val> is the 16-bit hex value to be patched at that address.
-
- genecyst can save a .pat file that contains all the patches
- created during a game. This file can be modified using a
- text editor. Each line of the .pat file looks like this:
- <code> [<name>]
- <code> is the patch itself (GG or raw format).
- <name> is the text description of the code, if no name is supplied
- then the code is used as the name
-
- Note: If more than one patch modifies the same address then only one
- can be active at once. Activating one will deactivate the others.
-
- Another Note: Most Genesis games do a rom checksum in order to verify
- their integrity. Therefore, having a patch active during the ROM's startup
- code could in most cases cause the ROM to crash itself. (Hence the use
- of so called 'master codes')
-
-
- ---------------------
- Command line options
- ---------------------
-
-
- @<filename> : Parses the file <filename> for command line options
-
- -res <xw> <yw> : Sets the resolution to xw,yw on startup.
-
- -setinput <num> <type>
- : Sets input device <num> to <type>
- -remapbut <device> <a> <b> <c> <start> <x> <y> <z>
- : Remaps buttons for <device>
- : <device> can be JOY1, JOY2, GRAVIS, GRIP1, GRIP2, 6BUTTON
- -setkey <device> <ul> <u> <ur> <l> <r> <dl> <d> <dr> <a> <b> <c> <start> <x> <y> <z>
- : Sets the keyboard scancodes for <device>
- : <device> can be KEY1 or KEY2
- -setjoythresh <num> <left> <right> <up> <down>
- : Sets the joystick threshold for analog joystick <num>
- : left,right,up,down define the joystick's "dead-zone"
- -analogjoyres <num>
- : Sets the maximum number of times the joystick port
- : is polled. Increase this number if the calibration values
- : seem to max out.
-
- -waitvsync : Wait for the vertical sync to draw frames
- -hidegui : Hide GUI on startup
- -nomsgpopup : Disables the last message from being shown on screen
-
- -load <rom> : Load <rom>
- -run <rom> : Load & Run <rom>
-
- -romdir <dir> : Sets the startup dir for roms
- -savedir <dir> : Sets the directory for .GS? files
- -pcxdir <dir> : Sets the directory for saving snapshots
-
- -? or -h : Display command line help
- -disablelfn : Disables long file name support
- -novesa : Don't use VESA extensions
- -linear : Force linear VESA mode
- -banked : Force banked VESA mode
-
- -nosound : Disables both FM and DAC
-
- -disablez80 : Disables the Z80 processor (enabled by default)
- -fakez80 : Turns Z80 faking on (disabled by default)
-
- -rdtsc : Enable the use of the pentium RDTSC profiling instruction
- : Enabling this on a non-Pentium will cause genecyst to crash.
-
- -fpucopy : Use the FPU for mem->vidmem copies
- : This will only provide speedups for pentium class processors
-
- -version <type> : <type> can be USA, Japan, or Europe
-
- -exclusive : This switch will disable windows multitasking. This result in a speedup
- : although all your other apps will pause while genecyst is running.
- : Using this switch is similar to running genecyst under pure DOS, but without
- : having to exit windows.
-
- ---------------------
- Contact
- ---------------------
-
- Bloodlust Software
- bldlust@parodius.com
-
- Don't email me about ROMs.
-
- Information on the NeoGeo or Capcom arcade units would be appreciated.
-
- ---------------------
- Acknowledgements
- ---------------------
-
- The authors and contributors to the Sega Programming Faq
-
- Ishmair for YM2612 information and help.
-
- Neill Corlett for general 68K information
- Get MGE now: http://www4.ncsu.edu/eos/users/n/nscorlet/mge/
-
- Merlyn LeRoy for the Sega Game Genie format
-
- Special thanks to Loaded and Benny Boola Hill
-
- Marat Fayzullin, Jens Restemeier, Carl-Henrik Skσrstedt, and Zophar
-
- ---------------------
- Disclaimer
- ---------------------
-
- genecyst Copyright 1997 Bloodlust Software
- Sega and Genesis are trademarks of Sega Enterprises, Ltd.
- Neither Bloodlust Software nor the author are affiliated with Sega
- nor advocate the piracy of Genesis games.
- genecyst is freeware and can be distributed freely as long as it is not
- modified and ROMs are not packaged with the program.
- 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.
-
-