
               Slipstream - Version 0.1
               ------------------------

Disclaimer
----------

This software is provided as is. I am not responsible for anything that occurs anywhere at any time,
to be fair; at worst it will probably just crash.


Credits
-------

Savoury SnaX (Lee Hammerton)	-	Emulator (see bottom of file for details)
Mark Campbell			-	Moral support,testing and providing the distraction.

External libraries
------------------

OpenGL,OpenAL,GLFW3.0


What is it?
-----------

This software emulates the Konix Multisystem (88-89 and MSU variants) - http://www.konixmultisystem.co.uk/


Requirements
------------

You need to have OpenAL installed.
You need a graphics card with open gl support (which lets face it is all of them).
A joystick might be handy.
You need a reasonably fast PC.


How to use
----------

Simply drop an .MSU (MSU variant) or .P88 (Konix Multisystem) rom onto the executable.

Alternatively from the command line :

slipstream nameofrom.msu
or
slipstream nameofrom.p88


Additional Options
------------------

-n - this will disable DSP emulation (will give a significant boost to the emulator speed, but will sacrifice audio output - some roms require the dsp to function properly)
-f - this will disable the downclocking of the cpu in Konix Multisystem roms - Will make things smoother, but accuracy is reduced
-b address file - Loads a binary file into the emulated memory space (address is in hex)


Controls
--------

If you have a joystick plugged in, it will replace the keyboard controls for Joystick 1. (If the controller is xbox 360 or similar, X button is FireA, B button is FireB)

F1-F12 - Represent number pad	(MSU variant)
CURSOR Keys,Z,X - Joystick 1
Number Pad (8,4,6,2 + 1,3) - Joystick 2
1,2 - Represent 2 buttons (perhaps these were on the front of the unit (Start/Select?))


Frequently Asked Questions
--------------------------

Where can I get the source code to the emulator?

At this time it is held in a private github repository. In the future (once the emulation is as complete as I can get it), the source will be made public.

Why does the FPS counter show >50fps when the video is clearly 50fps?

The FPS counter is the maximum theoretical speed the emulation would run on your machine if frame rate locking did not exist. 
It is used to gauge the relative performance of the build when working on optimisations.


Log File
--------

The emulator will dump information to the console and to a log file, if problems are encountered I would appreciate an email (savoury.snax@googlemail.com) with a bug report and the log file attached (OUT.LOG)


Known bugs
----------

Blitter collisions don't work 	- Ark A Hack game not playable

DSP/Blitter/X86 bug           	- DSP polygon drawing demo does not work


Emulator Details/Progress
-------------------------

A developer diary is kept.. this is not it.. 

8088/8086 CPU Core      	- Written from scratch in EDL (https://github.com/SavourySnaX/EDL)
                        		- Missing some elements/instructions (I'd say its 70-80% complete)
DSP Core               		- Written from scratch in EDL (https://github.com/SavourySnaX/EDL)
			- GAI instruction missing many variants
			- Possibly still bugs in the core (I'd say its 95% complete)
Blitter Core		- Written from scratch in C
			- Currently costs 0 cycles and instant
			- Needs porting to EDL and timings implementing
			- Line/Block supported (I'd say its 90% complete)
Video Core		- Written from scratch in C
			- Modes 0&1 implemented
			- Repeat colour not implemented 
			- Memory timings not implemented (I'd say its 60% complete)
Memory Core		- Memory timings are static across ram
			- DSP access currently does not use INTRUDE mechanism
			- (I'd say its 40% complete)
