AquaLite v1.39

All code copyright Richard Chandler 2019-2024

AquaLite is an Mattel Aquarius emulator written in C/C++.

There will be issues with it, please report back to me anything you have problems with and I'll fix them.


KEYS

As per a real Mattel Aquarius (there is also a sensible PC keyboard option).

ESC will pause / unpause.

F1 will perfrom a soft reset

F2 will run AquaLite at full throttle (no sound).

F3 will perform a soft reset and reload the last file loaded.

F4 will select / deselect full screen display.

F5 will launch the debugger.

Alt B will allow you to set breakpoints without going into the debugger.


FEATURES

100% accurate Z80 emulation (or at least 99.68%!!)

Emulates Aquarius I or Aquarius II.

S1 or S2 ROM available to be used.

tstate accurate display.

AY sound emulation.

Will load cartridges (.rom & .bin), CAQ tape files (.caq), full binary files (.ram), a BASIC text files (.txt).snapshot files (.sna) and WAV tape files (.wav).

To load a cart you must do a soft reset once the cart has been loaded.

Will save a snapshot file in a format I adapted from ZX Spectrum snapshot format to allow quick and dirty code saving and loading.

You can autoload CAQ files.

Autoloading a wav file requires you to use the WAV browser to play the tape for any wav files after the 1st one has been loaded.

Joystick support.

Keyboard joystick support (Use keypad 1 - 9 for directional movement, 5 is FIRE, 1 - 6 simulates controller buttons)

A Z80 assembler.

A calculator which is Z80 specific.

Save a screenshot in.bmp format.

Printer support which will also save output to a file.

Pre-loaded shaders can be used in Direct3D mode.

Has a *fairly* complete archive of Aquarius games.

Now emulates Aquarius MX

IMPORTANT!!

DO NOT UPDATE/DELETE OR ALTER IN ANY WAY THE TXT FILES IN THE SOFTWARE FOLDERS. DOING SO WILL STOP THE AUTOLOAD FEATURE FROM WORKING.

YOU HAVE BEEN WARNED !!!!!!!!!!!!!!!


DEBUGGER

You can examine code, edit registers, edit the memory, set breakpoints, find data, move and copy data around.
You can also single step through code, step over code, step out of routines, run until certain 
conditions are met.

Breakpoints can also be conditional, you can set a breakpoint to be less than, equal or 
greater than a register or double register (including I and R).

You can log the flow of your running program to examine later.

PUSH or POP stack values or alter the stack pointer. (Be careful with this!!)

Disassemble code to a file.

View system variables.

View the contents of a loaded cartridge.

Debugger start in RUN mode, press F5 to stop it.


SNAPSHOT FORMAT

Byte 00: I register 
Byte 01: L' register
Byte 02: H' register
Byte 03: E' register
Byte 04: D' register
Byte 05: C' register
Byte 06: B' register
Byte 07: F' register
Byte 08: A' register
Byte 09: L register
Byte 10: H register
Byte 11: E register
Byte 12: D register
Byte 13: C register
Byte 14: B register
Byte 15: IYL register
Byte 16: IYH register
Byte 17: IXL register
Byte 18: IXH register
Byte 19: IFF 1 register
Byte 20: R register
Byte 21: F register
Byte 22: A register
Byte 23: SPL register
Byte 24: SPL register
Byte 25: IM register

Byte 26 - TOP OF RAM: Contents of RAM.

The top of ram will be dependent on the RAM expansion being used.
 

THANKS

Thanks to John Young for his testing (and abuse), Mark Woodmass and Mack Wharton for their advice and excellent ideas, Roy Templeman for his suggestions and Sean Harrington for his insistence of new features. Also Wido Van Den Heuvel for his bughunting.

CONTACT

All words of encouragement, donations, constructive criticism, flames etc to richard.chandler@ntlworld.com, on the World Of Spectrum forums, 
Mattel Aquarius FB page or you can find me in #spin or #zx.
