       C o t t A G E

Cott Arcade Generic Emulator

(c) 2002 The Java-Emu Team



What's new:
----------

   N.B: CottAGE now supports two audio modes.

	CottAGE supports javax.sound but the user needs to download a Sun Java Plugin.
	The Sun Java is also twice time slower than the M$ JVM for example.
        Another drawback is that javax.sound is buggy in JDK 1.4 and timing errors occur.
	Besides that, the sound can be up to 128kbits 44KHz, which is very good quality.
   	As a conclusion, there is sound but it is slow.

	CottAGE supports sun.audio to avoid the need of the Java Plugin,
	but sun.audio is unsupported and undocumented.
	Also sun.audio is restricted to 8bit 8KHz mu_Law output, which is very low quality.
   	Because of that, the sound is dull and there's a lot of bad aliasing.
   	Furthermore, there's no way that we know of to correctly align the generated buffers,
	since you can't determine where the sound system is reading the buffer.
	This results in a very annoying 'rattling' noise.
   	As a conclusion, there is sound but it sucks.



History:
-------

   CottAGE 0.04
   ------------

   [DRIVERS CHANGES]

	[NEW GAMES ADDED]

		- [Dotrikun] Add support for dotrikun [Gollum]

		- [Galaga] Add preliminary support for galaga [Erik Duijs]

   		- [Galaxian] Add support for warofbug [Erik Duijs/Gollum]

   		- [Minivadr] Add support for minivadr [Gollum]

		- [News] Add support for news [Gollum]

		- [Pacman] Add support for vanvan, dremshpr [Erik Duijs]

   		- [Yiear] Add support for yiear [Erik Duijs]

   	[NEW CLONES ADDED]

 		- [Blktiger] Add support for bktigerb, blkdrgon, blkdrgnb [Gollum]

	   	- [Bombjack] Add support for bombjac2 [Gollum]

		- [Bw8080] Add support for invrvnge, invrvnga [Gollum]

		- [Dotrikun] Add support for dotriku2 [Gollum]

		- [Galaxian] Add support for galaxiaj [Erik Duijs]

   		- [Yiear] Add support for yiear2 [Gollum]

	[DRIVER FIXES]

		- [Blktiger]
			* Fixes wrong colors [Erik Duijs]
			* Find the slowdown bug ! [Gollum]

	   	- [Bombjack]
			* Fixes video bugs [Erik Duijs]
			* Rewrite driver using new MAME-like architecture [Gollum]

		- [Bw8080]
			* Add non-merged roms support [Gollum]
			* Fixes invrvnge support [Gollum]

		- [Dotrikun] Fixes support for dotrikun, dotriku2 [Gollum]

		- [Galaxian]
			* Fixes galaxiaj support [Gollum]
			* Fixes scramblb support (R register) [Erik Duijs]
			* Rewrite scramblb roms loading [Erik Duijs]

		- [Gyruss] Fixes some bugs [Erik Duijs]

		- [Solomon]
			* Fixes wrong colors [Erik Duijs]
			* Rewrite driver using new MAME-like architecture [Gollum]

   		- [Yiear]
	   		* Rewrite driver using new MAME-like architecture [Gollum]
			* Fixes support for yiear [Gollum]

   [CPU CORES CHANGES]   
		
	[NEW CPU CORES ADDED]

		- [CPU6809] Add cpu 6809 emulation core [S.C.Wong/Erik Duijs]

	[CPU CORES FIXES]

		- [CPU6809] Fixes 6809 compilation errors [Arnon Cardoso]
		- [Z80]
			* Fixes stack pointer support [Erik Duijs/Gollum]
			* Optimize interrupts handling [Erik Duijs]
			* Optimize main loop [Erik Duijs]
			* Rename some variables [Erik Duijs]
			* Add preliminary support for R register [Erik Duijs]

   [SOUND CORES CHANGES]

   	[NEW SOUND CORES ADDED]
		
		- [AY8910] Add preliminary AY-8910 sound hardware [Erik Duijs]

   	[SOUND CORES FIXES]
		
		- [Namco] Add javax.sound support [Erik Duijs]

   [CORE CHANGES]

	[NEW FEATURES]

		- Add generation of HTML games, menu and index pages (Info tool) [Gollum]
		- Add list generation of supported games (Info tool) [Gollum]
		- Add list generation of game names and descriptions (Info tool) [Gollum]
		- Add list generation of supported games, year, manufacturer (Info tool) [Gollum]
		- Add list generation of drivers source files (Info tool) [Gollum]
		- Add -noclones option (Info tool) to not list alternate versions [Gollum]
		- Add a command-line usage Info tool [Gollum]
		- Add support javax.sound [Erik Duijs]
   		- Add cpu debugger support [S.C.Wong] 

	[GUI CHANGES]

		- Add configurable sound buffer for applet (only javax.sound) [Erik Duijs]
		- Add configurable sampling rate for applet (only javax.sound) [Erik Duijs]
		- F9 key increases frameskip and disable auto-frameskip [Erik Duijs]
		- F8 key decreases frameskip and enable auto-frameskip when 0 [Erik Duijs]
		- Improve again throttling and auto-frameskip support [Arnon Cardoso]
		- Disable buggy auto-frameskip support [Erik Duijs/Gollum]
		- Improve pause support with a nice filtering and message [Gollum]
		- Add auto-frameskip support [Arnon Cardoso]
	   	- Fixes 50% scanlines in x2 mode [Gollum]
   		- Fixes antialiasing in x2 mode [Gollum]
	   	- Add frame skipping support (up to 12 levels) [Gollum]
	   	- Add a gfx rom loader to inform user of the loading process [Gollum]

	[HTML/DOC CHANGES]

		- Rewrite readme.txt [Gollum]
	   	- Improve HTML pages with correct game names [Gollum]
   		- Improve HTML pages with gfx background and no border [Gollum]

	[OPTIMIZATIONS]

		- Optimize again driver selection [Gollum]
	   	- Optimize some bitmap functions [Gollum]
   		- Optimize java gfx rendering [Gollum]
	   	- Optimize driver selection [Gollum]
		- Optimize x2 mode [Gollum]

	[MAIN CHANGES]

		- Add tilemap stuff [Gollum]
		- Remove color codes caching system (less memory usage) [Erik Duijs]
		- Fixes VIDEO_MODIFIES_PALETTE handling [Erik Duijs]
		- Add video_post_update function [Erik Duijs]
		- Improve MAME-like driver architecture [Gollum]
		- Fixes sound code (not denied access anymore in Sun JRE 1.4) [Erik Duijs]
		- Fixes a gfx bug for 180 or 270 rotated games [Erik Duijs]
		- Add generic driver selection [Gollum]
   		- Rewrite sound support in CottAGE [Erik Duijs]
		- Start rewriting inputport features [Erik Duijs]	
	   	- Add support for a more MAME-like driver architecture [Gollum]
   		- Add support for auto-loading of non-merged roms [Gollum]
   		- Add support for continued ROMs [Gollum]
	   	- Fixes system exit on errors in rom loader [Gollum]
   		- Fixes constants in rotation code [Gollum]
	   	- Fixes reset of driver cpus (invrvnge) [Gollum]
		- Add new basic driver constants [Erik Duijs]
		- Reduce memory usage of Gfx Manager's caching system [Erik Duijs]
   		- Rewrite tile caching [Erik Duijs]
   		- Separate video constants from other constants [Erik Duijs]

----------------------------------------------------------------------------------------------

   CottAGE 0.03 - 15/05/2002
   -------------------------

   [DRIVERS CHANGES]

	[NEW GAMES ADDED]

   		- [Galaxian] Add support for galaxian, scramblb [Erik Duijs]

   	[NEW CLONES ADDED]

   		- [Bw8080]
			* Add support for alieninv, cosmicmo, jspecter, jspectr2 [Gollum]
			* Add support for spaceatt, invaderl, spceking, spcewars [Gollum]
			* Add support for spacewr3, superinv, sinvemag, sinvzen [Gollum]

	[DRIVER FIXES]

   		- [Bw8080]
			* Fixes spaceat2, boothill [Gollum]
   			* Rewrite driver selection [Gollum]
   			* Resync some subdrivers with MAME 0.60s [Gollum]

   		- [Pacman] Add sound support to all subdrivers [Erik Duijs]

   [SOUND CORES CHANGES]

   	[NEW SOUND CORES ADDED]
		
		- [Namco] Add namco sound hardware [Erik Duijs]

   [CPU CORES CHANGES]

	[CPU CORES FIXES]

   		- [Z80] Removed localization of PC in fetch-decode loop. [Erik Duijs]

   [CORE CHANGES]

	[NEW FEATURES]

   		- Add sound support in CottAGE [Erik Duijs]

	[GUI CHANGES]

   		- Rewrite throttling code [Arnon Cardoso]
	   	- Start writing new throttling code [Erik Duijs/Arnon Cardoso]
   		- Add sound enable/disable option [Erik Duijs]

	[HTML/DOC CHANGES]

   		- Improve HTML pages with games with sound [Gollum]
   		- Improve HTML pages with sorted games [Gollum]
   		- Improve HTML pages with clones and games [Gollum]

	[MAIN CHANGES]

   		- Improve bitmap facilities [Erik Duijs]
   		- Fixes XY scrolling playfield [Erik Duijs]
   		- Add support for video granularity [Erik Duijs]
   		- Fixes error messages in zip file support [Erik Duijs]
   		- Rename all drivers according to MAME 0.60s [Gollum]
   		- Add soundchip support [Erik Duijs]
   		- Resync directories with MAME 0.60s [Gollum]

----------------------------------------------------------------------------------------------

   CottAGE 0.02 - 10/05/2002
   -------------------------

   [DRIVERS CHANGES]

	[DRIVER FIXES]

   		- [Bombjack] Fixes driver information [Erik Duijs/Gollum]

   [CPU CORES CHANGES]

	[CPU CORES FIXES]

   		- [Z80] Add INI/IND opcodes [Erik Duijs]

   [CORE CHANGES]

	[GUI CHANGES]

   		- Add a weird trick for throttling on Win9X/Win2K [Erik Duijs]

	[HTML/DOC CHANGES]

   		- Fixes HTML pages [Erik Duijs/Gollum]
	   	- Fixes compatibility tests [Erik Duijs]

	[MAIN CHANGES]

		- Fixes release package with roms directory [Gollum]
   		- Fixes source package compilation [Arnon Cardoso]

----------------------------------------------------------------------------------------------

   CottAGE 0.01 - 07/05/2002
   -------------------------

   [DRIVERS CHANGES]

	[DRIVER FIXES]

   		- [Bw8080]
			* Fixes sicv, sisv, sisv2, sitv [Gollum]
   			* Resync some subdrivers with MAME 0.58s [Gollum]

   [CORE CHANGES]

	[HTML/DOC CHANGES]

		- Redo some compatibility tests [Gollum]
   		- Improve HTML pages [Gollum]

----------------------------------------------------------------------------------------------

   CottAGE 0.00 - UNRELEASED
   -------------------------

   - All CottAGE design [Erik Duijs]
   - JEF library [Erik Duijs]
   - All drivers work [Erik Duijs]
   - Drivers fixes [Gollum]
   - Romloader fixes [Gollum]



How to compile (MsDos/Windows):
------------------------------

   Unzip the cottage-sources.zip file in a directory.
   Launch makejef to build the Jef (Java Emulation Framework) library.
   Launch makecot to build CottAGE.

   You must have a working JDK in your path.



Usage and Distribution License:
------------------------------

   CottAGE is heavily based on MAME (a portable Multiple Arcade Machine Emulator).
   You can see it as a java port but not exactly.
   We use a similar license (the original MAME license is included).

I. Purpose:
----------
   CottAGE is strictly a non-profit project. Its main purpose is to be a reference
   to the inner workings of the emulated arcade machines. This is done for
   educational purposes and to prevent many historical games from sinking into
   oblivion once the hardware they run on stops working. Of course to preserve
   the games, you must also be able to actually play them; you can consider
   that a nice side effect.
   It is not our intention to infringe on any copyrights or patents on the
   original games. All of CottAGE's source code is either our own or freely
   available. To operate, the emulator requires images of the original ROMs
   from the arcade machines, which must be provided by the user. No portion of
   the original ROM codes are included in the executable. The only exception is
   for the Official site that allows users to try several ROMs online but we
   strongly discourage users to download these ROMs by other means.

II. Cost:
--------
   CottAGE is free. Its source code is free. Selling either is not allowed.

III. ROM Images:
---------------
   ROM images are copyrighted material. Most of them cannot be distributed
   freely. Distribution of CottAGE on the same physical medium as illegal copies
   of ROM images is strictly forbidden.
   You are not allowed to distribute CottAGE in any form if you sell, advertise,
   or publicize illegal CD-ROMs or other media containing ROM images. This
   restriction applies even if you don't make money, directly or indirectly,
   from those activities. You are allowed to make ROMs and CottAGE available for
   download on the same website, but only if you warn users about the ROMs's
   copyright status, and make it clear that users must not download ROMs unless
   they are legally entitled to do so.

IV. Source Code Distribution:
----------------------------
   If you distribute the jar file (java classes) version of CottAGE, you should also
   distribute the source code. If you can't do that, you must provide a link
   to a site where the source can be obtained.

V. Distribution Integrity:
-------------------------
   This chapter applies to the official CottAGE distribution. See below for
   limitations on the distribution of derivative works.
   CottAGE must be distributed only in the original archives. You are not allowed
   to distribute a modified version, nor to remove and/or add files to the
   archive.

VI. Reuse of Source Code:
------------------------
   The source code cannot be used in a commercial product without the written
   authorization of the authors. Use in non-commercial products is allowed, and
   indeed encouraged. If you use portions of the CottAGE source code in your
   program, however, you must make the full source code freely available as
   well.
   Usage of the _information_ contained in the source code is free for any use.

VII. Derivative Works:
---------------------
   Derivative works are allowed, provided their source code is freely
   available. However, these works are discouraged. MAME is a continuously-
   -evolving project while CottAGE try to maintain the same level of compatibility
   and features. It is in your best interests to submit your contributions
   (drivers or new code for the Jef library) to the CottAGE development team,
   so they may be integrated into the main distribution.



How to Contact Us
-----------------

The official CottAGE homepage is http://cottage.emuunlim.com/
You can always find the latest release there as well as a page
to try online some ROMs.



Acknowledgments
---------------

Huge thanks to the whole MAME team for their incredible work.
Thanks to all members of the Java-Emu Team for help, fixes and testing.
