  ___  _    _ ___                _   
 / _ \| |__| / __|_ __  __ _ _ _| |__
| (_) | / _` \__ \ '_ \/ _` | '_| / /
 \___/|_\__,_|___/ .__/\__,_|_| |_\_\
                 |_|                 
  ___           _      _           
 | __|_ __ _  _| |__ _| |_ ___ _ _ 
 | _|| '  \ || | / _` |  _/ _ \ '_|
 |___|_|_|_\_,_|_\__,_|\__\___/_|  

                                  
What is OldSpark ?
------------------

OldSpark is a young emulator written in Java. It emulates old arcade
games based on the Z80 processor. No other CPU are supported for now
and  for a  while ;-)  The  aim of the project was  to write a multi 
machine emulator of my own, instead of writing drivers for already existing
emus, which is a bit less interesting in my opinion.

The project was started by me, Bruno Vedder. Laurent Menduni recently join
and add very nice features: the zip support for ROMS, and a few sprites
routines. So now it's compatible with MAME romsets.

I take the hardware documentation over the internet, and into others 
big emus sources aka MAME or Cottage, and smaller ones like DSP, ect...

Note: At this stage the emulator is very young, and some things are buggy.
It still must be considered  as 'young' version.

Will the sources be released ?
------------------------------

Yes, like all my other projects, source code will be provided. I learn
a lot from sources too, it's normal to share mine. But the main reason 
is that open source is good for us ;)

As third release of the emu, source code is far to be as i expect, but i
dislike to say i will release source, and do it later. That's why i
release the source code in its actual state. It still can be usefull for
other coders.

And what about performances ?
-----------------------------

Actually OldSpark is not optimized. All cpu operations are made
on the  fly where a lot of precalculation should be made. As i wanted
to write my own CPU core, i try to make a working one first, before
optimizing it. The Z80 emulation is still not 100 % complete.

With this i get this result on:

P    1Ghz Win98, 256 Mo Ram -> Phoenix   at 100 Fps
P  800Mhz Linux, 256 Mo Ram -> Phoenix   at 76  Fps
P3 500Mhz Win98, 256 Mo Ram -> Phoenix   at 58  Fps
P3 500Mhz Win98, 256 Mo Ram -> Ms pacman at 52  Fps
P3 500Mhz Win98, 256 Mo Ram -> Lizard wizard at 55 Fps
Sun Fire 880 (on one of the eight CPUs) Ultra Spark III+ 900Mhz 16Go ram,  -> 250 fps  ;-)

(These values are a bit unsure, the machine hardware is very different but its
still an indication). This is very slow, i apologize. Efforts will be made in 
the future, when CPU will be more stable.


How to start OldSpark:
---------------------

First you need to have the Java Runtime Environment 2 from provided by
SUN (J2RE). If this is not the case, you will not be able to run the
emulator. You can *freely* download this environment on the SUN Java 
website:

http://java.sun.com/

If you plan to modify or recompile the emulator, you also need the latest
Java 2 Software Development Kit (J2SDK), always on the sun website, and 
always *freely*

To start the emu, open a shell, or a windows box and go to the directory
contening the OldSpark.jar file. From there, assuming the java (or java.exe)
executable file is in your path, and your CLASSPATH variable pointing on 
the file OldSpark.jar:

To make your CLASSPATH environment variable pointing on the file:

Linux:
    export CLASSFILE=./OldSpark.jar
Dos Box:
    set CLASSFILE=.\OldSpark.jar

Note: The emulator waits for a subdirectory named roms containing the
zipped roms. The romset is identical to mame. 

Then, run the thing by:

java OldSpark pacman
java OldSpark phoenix
java OldSpark mspacmab
java OldSpark puckman
java OldSpark lizwiz
java OldSpark ponpoko

I plan to provide Starting scripts in the future ;)


Key Used During Emulation:
--------------------------

-The 4 Directions arrows for directionnal joystick.
-Control Key for Button 1
-Space for Button 2
-C to insert Coins
-S to Start 1 player
-D to start 2 player

Nothing else is mapped :-)


Supported Games:
----------------

There are a few working games. The game ROM are the same than MAME.

Phoenix (Amstar - 1980) 
Pacman  (midway - 1980)
Puckman (Namco  - 1980)
Mspacman (Bootleg Midway - 1981) 
Lizard wizard (Techstar - 1985) 
PonPoko ( LTD 198?) 
Phoenix - phoenix
Lizard wizard - lizwiz
Pacman - pacman
Puckman - puckman
Ms Pacman (bootleg) - mspacmab
Ponpoko - ponpoko
Mr TNT - mrtnt
Eyes - eyes
Van van car - vanvan
Jump shot - jumpshot
Galaxian - galaxian
Scramble (bootleg)- Scramblb
War of bug - warofbug
Moon Cresta unencrypted - mooncrsu
Zig Zag - zigzag
Pisces - pisces
Skybase - [BROKEN]
Levers - levers
Scorpion on Moon Cresta hardware - scorpnmc [BUGGY]
Uniwars - uniwars
Jumpbug - jumpbug

Thanks to:
----------

-Leniad, for helping me with some Z80 questions.
-Romain Tisserand for Z80 questions too.
-The Mame team for their unvaluable sources.
-The Cottage team for their sources too.
-http://www.network-science.de/ascii/ for their ASCII art generator used
 in this text file.
-Eric Fichot ( http://emu-france.com ), for the free hosting.


Contact: If you have question about source code or emulator / emulation
-------- don't hesitate and drop us a mail.

Bruno Vedder   : bruno.vedder@emu-france.com
Laurent Menduni: laurent.menduni@free.fr


-----[Bruno's Coding Zone]------------------------ooO-Ooo-------------
									
	URL http://bcz.emu-france.com/					
	OldSpark HQ.
	PC,Linux,Win32, GameBoy Advance, emulators programming stuff.	
 	Contact: bruno.vedder@emu-france.com				
									
------------ooO-Ooo---------------------------------------------------