Jump to content
IGNORED

MAME: Aquarius


Pernod

Recommended Posts

7 minutes ago, jaybird3rd said:

The only emulator (as far as I know) that emulates the hand controller is Virtual Aquarius.  As I recall, it emulates only the primary eight directions (N, E, S, W, NE, SE, SW, and NW), and the six hand controller keys are hard-coded to the first six controller buttons.

Aqualite emulates the joysticks as well - I just don't have any joysticks. (and the printer as well ;) )

 

image.png.f458b7646539b97ddc50c86f7a91d5df.png

  • Like 1
Link to comment
Share on other sites

3 hours ago, jaybird3rd said:

It occurs to me that the current Aquaricart ROM might still be using the secondary bank ($C000) instead of the primary bank ($E000) as the target write address for bank switches.  As I mentioned in the SuperCart thread, I later decided to restrict bank switches to writes in the primary bank only; I will be adding an EEPROM to the SuperCart II, so I wanted to leave the secondary bank available for writable memory.  It wouldn't make any difference on real hardware, but I should update the Aquaricart ROM to reflect this restriction, so that it can be reflected in the emulator also.  I'll send you a patched version of the ROM shortly.

This caught me out initially, the bank was never being changed. Had to set a watchpoint to detect writes $C000-$FFFF and found it writing to $C000 instead of the expected $E000.

  • Like 1
Link to comment
Share on other sites

2 hours ago, Pernod said:

This caught me out initially, the bank was never being changed. Had to set a watchpoint to detect writes $C000-$FFFF and found it writing to $C000 instead of the expected $E000.

Sorry about that!  I'll have a new ROM for you this evening.  The only change will be to move the bankswitch address from $C000 to $E000; I'll also bump the version number.

 

EDIT: Check your PM for the new ROM.

Link to comment
Share on other sites

Is anything known about the interface used for the 1541 OS? Obviously MAME already emulates the C1541 so hooking it up should be trivial, if we know the details of the interface. I'd expect to see something like a Z80 PIO or maybe a I8255 in there. I've found the Aquarius DOS instructions but could really use a circuit diagram of the interface.

 

I know there's bug fixed versions V2 and V3 of the 1541OS, but is the original available anywhere?

Edited by Pernod
  • Thanks 1
Link to comment
Share on other sites

Coming soon...

 

New machines supported:
Aquarius II

 

Improvements to Aquarius emulation:
memory mapper now implemented (not tested), for CP/M.
serial printer connected by default.
external RAM is now scrambled.

 

Peripherals now implemented as slot devices:
4K Memory Cartridge

(was there an 8K?)
16K Memory Cartridge
32K Memory Cartridge
16K+ Memory Cartridge
Mini Expander (with all controller inputs configurable)
Quick Disk (with AQ-DOS V1.01 or V1.02, not working and unlikley to anytime soon)
C1541 (not working, requires technical info)

 

ROM Cartridges:
binary images of size 4K, 8K, 16K now supported, was previously 16K only.

 

SuperCart:
fully supported, and will detect 8K/16K bank mode from the header when loaded from File manager.

 

Are there any other cartridge types/peripherals to support?

 

In the meantime I'll look at improving video timing. What's the differences between a NTSC and PAL model?

Edited by Pernod
  • Thanks 1
Link to comment
Share on other sites

Excellent work!  I'll be very excited to try these new features!  Thank you very much for taking the time to implement them.

 

I know of only one 1541 prototype interface.  It's been a long time since I looked into it, but I recall seeing photos and documentation on the old Yahoo! Aquarius Group—the documentation was transcribed for the Aquaricart—but I'm afraid I don't recall seeing a schematic, or even detailed pictures of the interface.

Link to comment
Share on other sites

16 hours ago, jaybird3rd said:

I know of only one 1541 prototype interface.  It's been a long time since I looked into it, but I recall seeing photos and documentation on the old Yahoo! Aquarius Group—the documentation was transcribed for the Aquaricart—but I'm afraid I don't recall seeing a schematic, or even detailed pictures of the interface.

That's unfortunate, it's probably a very simple implementation using port $60. But working out which bits go to which IEC line is not proving obvious. Didn't I read somewhere that someone had disassembled the 1541OS?

 

Could really use some clarification on which crystals are present in NTSC and PAL models. In photos of motherboards I've only seen a 7.15909MHz crystal, but schematics show an additional 8.866MHz clocking the TEA1002.

My understanding is that both the CPU and pixel clock are derived from the 7.15909MHz crystal in both NTSC and PAL models. So which model uses the 8.866MHz crystal?

  • Like 1
Link to comment
Share on other sites

8 minutes ago, Pernod said:

Could really use some clarification on which crystals are present in NTSC and PAL models. In photos of motherboards I've only seen a 7.15909MHz crystal, but schematics show an additional 8.866MHz clocking the TEA1002.

My understanding is that both the CPU and pixel clock are derived from the 7.15909MHz crystal in both NTSC and PAL models. So which model uses the 8.866MHz crystal?

The NTSC has only one crystal the 7.159Mhz, and that is on the TEA1002 (The TEA is only really a PAL chip, it is tricked into producing NTSC by playing around with it) and is also used to derive the system clock after a /2 , however, the PAL model has 2 crystals, a 7.159 on a 74LS04 which is used to derive the system clock, and a 8.866Mhz on the TEA to derive the PAL frequencies

 

  • Thanks 2
Link to comment
Share on other sites

Some extra info on the Video stuff btw, 

Thanks to @Bruce Abbott for this bit of code
;-------------------------------------------------------------------
;                  Test for PAL or NTSC
;-------------------------------------------------------------------
; Measure video frame period, compare to 1.80ms
; NTSC = 16.7ms, PAL = 20ms
;
; out: nc = PAL, c = NTSC
;
; NOTE: waits for ~17-41ms. Do not use in timing-critical code!
;
PAL__NTSC:
    PUSH BC
.wait_vbl1:
    IN   A,($FD)
    RRA                   ; wait for start of vertical blank
    JR   C,.wait_vbl1
.wait_vbh1:
    IN   A,($FD)
    RRA                   ; wait for end of vertical blank
    JR   NC,.wait_vbh1
    LD   BC,0
.wait_vbl2:               ; 1.117us/cycle
    INC  BC               ; 2 count                 ]
    IN   A,($FD)          ; 3 read status reg       ]
    RRA                   ; 1 test VBL bit          ]   9 cycles per loop
    JR   C,.wait_vbl2     ; 3 loop until VLB high   ]   10.06us/loop
.wait_vbh2:               ; cycles (1.12us/cycle)
    INC  BC               ; 2 count                 ]
    IN   A,($FD)          ; 3 read status reg       ]   9 cycles per loop
    RRA                   ; 1 test VBL bit          ]   10.06us/loop
    JR   NC,.wait_vbh2    ; 3 loop until VLB high   ]
    LD   C,A
    LD   A,B              ; ~1657 = 60Hz, ~1989 = 50Hz
    CP   7                ; c = NTSC, nc = PAL
    LD   A,C
    POP  BC
    RET

 

 

  • Thanks 1
Link to comment
Share on other sites

22 minutes ago, Pernod said:

What is the X10 Command Console? What does it do and should I emulate some additional hardware to use it?

The X10 Command Console is the software for Mattel's prototype X10 controller module for the Aquarius, which interfaced with the Aquarius through the cassette port.  After the Aquarius was discontinued, the X10 controller hardware was retrofitted for the Tandy Color Computer and released as the Plug 'n' Power Appliance and Light Controller.  I included the prototype software in the Aquaricart collection in the hope that someone would take the released version of the hardware and use it with the Aquarius as originally intended, and indeed, that was done last year; see this thread for more information and a demonstration video.

Link to comment
Share on other sites

1 hour ago, jaybird3rd said:

The X10 Command Console is the software for Mattel's prototype X10 controller module for the Aquarius, which interfaced with the Aquarius through the cassette port. 

Interesting, has the hardware been documented, what's actually in the box? Would be nice if I can at least get the software to acknowledge the console being connected.

Link to comment
Share on other sites

59 minutes ago, Pernod said:

Could someone do a quick test and let me known what unmapped address space returns, ie. PEEK(32768), and a few other random PEEKs where no ROM/RAM is mapped. Just want to clarify whether unmapped space is low, high, or floating.

peek(32768) out of the box gives and FC error (as expected) , need to do peek the 2's compliment ;)
For peek(16384) -> (32767) on an unxepanded (so 4k) unit)
anyway on 3 power resets (it was consistent otherwise)
I got 207, 121 and 173 (decimal values) <- same value across all addresses 

 

Edited by MackJsy
Link to comment
Share on other sites

  • 2 weeks later...
On 10/23/2020 at 1:29 PM, MackJsy said:

Jay.... We need that rom Dumped... there is one in the VAQU (tools directory) or - use  the one from here (https://archive.kontek.net/aqemu.classicgaming.gamespy.com/aq_rom.htm) to do it...
I'm thinking of adding some glue logic to 64k winbond in the Sysrom, so that we can have diff core boot roms - and having the S1 rom.....

... and now, for the first* time anywhere ... here is the Aquarius "S1" system ROM!  I finally found the time to dump this from my "S1" system on Friday afternoon.  I used the quick ROM dumper that Mack linked to above, and I wrote a quick Java program to reconstitute the HyperTerminal capture file—containing every byte of the ROM as unsigned integers, one per line—into a binary image.  (To double-check for transmission errors, I actually performed two dumps; both contained the same data.)

 

aquarius_s1.zip

 

This image has been tested in Virtual Aquarius; to use it, select "Memory" from the "Configuration" menu, choose the option to load the OS ROM from disk, and then drop the ROM image into the emulator's "ROM" folder and rename it to "radofin.bin" (after renaming the original "S2" ROM to something else).

 

(* Well, almost: the lucky attendees of yesterday's Fall 2020 Aquarius Meet & Greet were the very first ones to get it.)

  • Thanks 2
Link to comment
Share on other sites

26 minutes ago, jaybird3rd said:

(* Well, almost: the lucky attendees of yesterday's Fall 2020 Aquarius Meet & Greet were the very first ones to get it.)

Thanks a Million Jay :) 
If it wasn't for the fact that the Aqu uses the short ROM format for the 8k (24pin not 28pin) then things would have been a lot easier :)

(See my hack bottom left of the char rom - 64k 27C512 hacked to a 2k 2716!)
Shame you couldn't stay  for the duration  - at least you got to see the new SH board in action 

20201115_171926.thumb.jpg.354866f966e46d17ffb7ad95b055547e.jpg

 

 

  • Like 1
Link to comment
Share on other sites

2 minutes ago, MackJsy said:

Thanks a Million Jay :) 
If it wasn't for the fact that the Aqu uses the short ROM format for the 8k (24pin not 28pin) then things would have been a lot easier :)

(See my hack bottom left of the char rom - 64k 27C512 hacked to a 2k 2716!)
Shame you couldn't stay  for the duration  - at least you got to see the new SH board in action

My pleasure!  I too wish that I could have stayed longer (I should be able to stay next time), but I'm glad to have seen the new boards!  I hope to (finally!) finish building mine before the end of this year.

 

A standard ROM package would indeed have made things easier.  This is the only working "S1" system that I own, so I was very reluctant to try desoldering the original ROM anyway.  Fortunately, the character ROM is a standard 2716-compatible package, so dumping that was as simple as popping the chip into my EPROM programmer.

Link to comment
Share on other sites

37 minutes ago, jaybird3rd said:

My pleasure!  I too wish that I could have stayed longer (I should be able to stay next time), but I'm glad to have seen the new boards!  I hope to (finally!) finish building mine before the end of this year.

 

A standard ROM package would indeed have made things easier.  This is the only working "S1" system that I own, so I was very reluctant to try desoldering the original ROM anyway.  Fortunately, the character ROM is a standard 2716-compatible package, so dumping that was as simple as popping the chip into my EPROM programmer.

Much appreciated, and glad I gave enough pls...pls....pls... for you to do it  :)

For the Stock board, --- I've discussed with SH, but he feels it  should be stock, and it's quite a board change to uprate that to a 28 pin to take a proper 2764 or above, and for now should handle with some "adapters".. I'm still on the edge about that - as it's not replaceable with an off the shelf part.....

 

  • Like 1
Link to comment
Share on other sites

10 minutes ago, MackJsy said:

For the Stock board, --- I've discussed with SH, but he feels it  should be stock, and it's quite a board change to uprate that to a 28 pin to take a proper 2764 or above, and for now should handle with some "adapters".. I'm still on the edge about that - as it's not replaceable with an off the shelf part.....

Yeah, I can see it both ways.  Fortunately, it's not difficult to build an adapter, as you say.  One could even extend the idea of a simple adapter into a daughtercard with selectable "S1" and "S2" ROM images, and possibly even Aquarius II Extended BASIC and 32K of RAM as well.  That area of the board should have enough clearance for it, if it's kept as small as possible.

Link to comment
Share on other sites

3 minutes ago, jaybird3rd said:

Yeah, I can see it both ways.  Fortunately, it's not difficult to build an adapter, as you say.  One could even extend the idea of a simple adapter into a daughtercard with the "S1" and "S2" ROM images, and possibly even Aquarius II Extended BASIC and 32K of RAM as well.  That area of the board should have enough clearance for it, if it's kept as small as possible.

Sadly the address lines (on the rom socket) don't give enough to include the 12k address space by default, so it would be "Hacks" & "Patches" to do that, but - could easily do a ROM with the S1/S2 and a jumper 

 

Edited by MackJsy
Link to comment
Share on other sites

Just now, MackJsy said:

Sadly the address lines don't give enough to include the 12k address space by default, so it would be "Hacks" & "Patches" to do that, but - could easily do a ROM with the S1/S2 and a jumper

Yes, for Extended BASIC and RAM, you would have to add some extra address decoding glue, and a few extra address lines.  A simple ROM upgrade with a jumper would indeed be much easier.

Link to comment
Share on other sites

  • 2 months later...

Any progress on this?.

 

I've been testing lately the MAME's Aquarius implementation and like the other emulators (*), it lacks correct display timings. To help testing, I've developed a little routine to play a bit with the raster. The cart is attached.

 

You'll see a blue screen with a yellow bar of "2" chars and a number in the first row. Using "Q" and "A" you can increase or decrease the number and if you keep increasing it you'll see the yellow line disappear.

 

My PAL machine makes disappearing start at mark 35 until 43 where the row is completely invisible.

 

Maybe a NTSC model user can repeat this test and tell us the results?, I hope that this could be of some use by the MAME team...

 

(*) Except Aqualite, I haven't been able to find it...:-(

 

 

 

test.bin

Edited by jltursan
Updated Aqualite info
Link to comment
Share on other sites

1 hour ago, jltursan said:

Any progress on this?.

 

I've been testing lately the MAME's Aquarius implementation and like the other emulators (*), it lacks correct display timings. To help testing, I've developed a little routine to play a bit with the raster. The cart is attached.

Hi Jose,

 

No progress as this is the first I've heard of timing issues. Haven't looked at the Aquarius for a couple of months now, moved onto other machines, but I'll put it back on my list of things to do now that I have a suitable test case. I presume you were testing on the latest 0.227 release?

  • Like 1
Link to comment
Share on other sites

4 hours ago, jltursan said:

Any progress on this?.

 

I've been testing lately the MAME's Aquarius implementation and like the other emulators (*), it lacks correct display timings. To help testing, I've developed a little routine to play a bit with the raster. The cart is attached.

 

 

(*) Except Aqualite, I haven't been able to find it...:-(

Screeen shot from Aqualite (https://onedrive.live.com/?authkey=!AA8RREv5_6BaEqw&cid=7372FF64AB9015BE&id=7372FF64AB9015BE!811&parId=root&action=locate)

 

image.thumb.png.e1db2f32fab16ebb00082ef33a612368.png

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...