Cartsystem

From vice-emu
Jump to: navigation, search

WANTED

cartridge images:

22  STRUCTURED-BASIC
31  Stardos (existing dump is apparently broken)

software to use/test:

112 MIDI-MAPLIN

Status

ID = crt ID (*ID means it is not official yet)

ROM = amount of ROM in crt (in Kb's)
RAM = amount of RAM in crt (in Kb's)
FRM = amount of Flash ROM in crt (in Kb's)

VBL = VICE Binary Load available
VCL = VICE Crt Load available
VBS = VICE Binary Save available
VCS = VICE Crt Save available
SNP = VICE Snapshot support

MPK = monitor memory peek hook (fb: uses generic fallback)
RPK = monitor register peek hook (fb: uses regular read)
DMP = monitor register dump hook
ULT = VIC ultimax hook (fb: uses generic fallback)
U   = ultimax mode (-: none, *: normal, F: fake mapping)
MMU = MMU translate hook

CCC = cartconv supports converting the cart
DOX = detailed documentation (about register usage) in the source file

NO written in uppercase marks an actual bug, no written in lowercase is a missing feature.

Slot 0

NAME                      ID    ROM   RAM    FRM    VBL VCL VBS VCS SNP  MPK RPK DMP  ULT U MMU CCC   DOX   COMMENTS
----                      --    ---   ---    ---    --- --- --- --- ---  --- --- ---  --- - --- ---   ---   --------
mmc64                     37      -     -      8    yes yes yes yes  no  yes yes  no    - - yes yes   yes   Currently mis-typed as 0 (is really type 2), dox scattered
IEEE488                   41      4     -      -    yes yes   -   - yes  yes yes yes    - - yes yes   FIX
magic voice               *49    16     -      -    yes yes   -   -  no  yes yes yes  yes F yes yes   yes

Slot 1

NAME                      ID    ROM   RAM    FRM    VBL VCL VBS VCS SNP  MPK RPK DMP  ULT U MMU CCC   DOX   COMMENTS
----                      --    ---   ---    ---    --- --- --- --- ---  --- --- ---  --- - --- ---   ---   --------
DQBB                    -101      -    16      -    yes   - yes   - yes   fb yes  no   fb - yes n/a   yes   memory banked RAM cart
expert                     6      -     8      -    yes yes yes yes yes  yes yes  no  yes F yes yes   yes   memory banked RAM cart
ISEPIC                  -103      -     2      -    yes yes yes yes yes  yes yes  no  yes F yes n/a   yes   I/O-window based RAM cart
ramcart-64              -104      -    64      -    yes   - yes   - yes   fb  fb  no   fb - yes n/a   yes   I/O-window based RAM cart (window mapped to $8000 as well)
ramcart-128             -104      -   128      -    yes   - yes   - yes   fb  fb  no   fb - yes n/a   yes   I/O-window based RAM cart (window mapped to $8000 as well)

Main Slot

NAME                      ID    ROM   RAM    FRM    VBL VCL VBS VCS SNP  MPK RPK DMP  ULT U MMU CCC   DOX  COMMENTS
----                      --    ---   ---    ---    --- --- --- --- ---  --- --- ---  --- - --- ---   ---  --------
generic-ultimax-4         -6      4     -      -    yes FIX   -   - yes  yes   -   -  yes * yes FIX   yes
generic-ultimax-8         -6      8     -      -    yes yes   -   - yes  yes   -   -  yes * yes yes   yes
generic-ultimax-12        -6     12     -      -    yes FIX   -   - yes  yes   -   -  yes * yes FIX   yes
generic-ultimax-16        -6     16     -      -    yes yes   -   - yes  yes   -   -  yes * yes yes   yes
generic-8kgame-4          -3      4     -      -    yes FIX   -   - yes  yes   -   -    - - yes FIX   yes
generic-8kgame-8          -3      8     -      -    yes yes   -   - yes  yes   -   -    - - yes yes   yes
generic-16kgame-12        -2     12     -      -    yes FIX   -   - yes  yes   -   -    - - yes FIX   yes
generic-16kgame-16        -2     16     -      -    yes yes   -   - yes  yes   -   -    - - yes yes   yes

action replay              1     32     8      -    yes yes   -   - yes   fb  fb  no   fb   no  yes   yes  8K RAM not (yet) in crt
KCS power                  2     16   128b     -    yes yes   -   - yes   fb yes  no   fb   no  yes   FIX
final cartridge 3          3     64     -      -    yes yes   -   - yes   fb  fb  no   fb   no  yes   yes
simons basic               4     16     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
ocean-32                   5     32     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
ocean-128                  5    128     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
ocean-256                  5    256     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
ocean-512                  5    512     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
funplay                    7    128     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
super games                8     64     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
atomic power               9     32     8      -    yes yes   -   - yes   fb  fb  no   fb   no  yes   yes  8K RAM not (yet) in crt
epyx fastload             10      8     -      -    yes yes   -   - yes   fb yes  no   fb   no  yes   yes
westermann                11     16     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
rex utility               12      8     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
final cartridge 1         13     16     -      -    yes yes   -   - yes   fb yes  no   fb   no  yes   yes
magic formel 1.x          14     64     8      -    yes yes   -   - yes  yes yes  no  yes F?no  yes   yes  8K RAM not (yet) in crt
magic formel 2.x - 96     14     96     8      -    yes yes   -   - yes  yes yes  no  yes F?no  yes   yes  8K RAM not (yet) in crt
magic formel 2.x - 128    14    128     8      -    yes yes   -   - yes  yes yes  no  yes F?no  yes   yes  8K RAM not (yet) in crt
GS                        15    512     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
warpspeed                 16     16     -      -    yes yes   -   - yes   fb   -        -   no  yes   yes
dinamic                   17    128     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
zaxxon                    18     20     -      -    yes yes   -   - yes  yes   -        -   no  yes   yes
magic desk-32             19     32     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
magic desk-64             19     64     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
magic desk-128            19    128     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
super snapshot 5          20     64    32      -    yes yes   -   - yes   fb   -       fb   no  yes   yes
comal-80                  21     64     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
structured basic          22     16     -      -    yes yes   -   - yes   fb yes  no   fb   no  yes   yes  IMAGE WANTED
ross-16                   23     16     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes  IMAGE WANTED
ross-32                   23     32     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
dela ep64                 24      8+    -      -    FIX yes   -   - yes   fb yes  no    -   no  yes   yes  64K of additional ROM can be inserted
dela ep7x8                25      8+    -      -    FIX yes   -   - yes   fb yes  no    -   no  yes   yes  56K of additional ROM can be inserted
dela ep256                26      8+    -      -    FIX yes   -   - yes   fb yes  no    -   no  yes   yes  256K of additional ROM can be inserted
rex ep256                 27      8+    -      -    FIX yes   -   - yes   fb yes  no    -   no  FIX   yes  256K of additional ROM can be inserted
mikro assembler           28      8     -      -    yes yes   -   - yes   fb   -        -   no  yes   yes
final cartridge plus-24   29     24     -      -    yes yes   -   - yes  yes   -      yes F no  FIX   yes  24K variation, which could possibly be made
final cartridge plus-32   29     32     -      -    yes yes   -   - yes  yes   -      yes F no  yes   yes  Only 24K of ROM is used
action replay 4           30     32     -      -    yes yes   -   - yes   fb  fb  no   fb   no  yes   yes
stardos                   31     16     -      -    yes yes   -   - yes   NO yes  no  yes F no  yes   yes
easyflash                 32      -   256b  1024    yes yes yes yes yes   fb yes yes   fb   no  yes   NO   Currently mis-typed as 0 (is really type 2)
easyflash xbank           33    ???   ???    ???    n/a n/a n/a n/a yes   fb yes yes   fb   no  n/a   NO   IMAGE WANTED (NO CART EXISTS ?)
capture                   34      8     8      -    yes yes   -   - yes  yes   -      yes F no  yes   yes  8K RAM not (yet) in crt
action replay 3           35     16     -      -    yes yes   -   - yes   fb yes  no   fb   no  yes   yes
retro replay-32           36      -    32     32    yes yes yes yes yes  yes yes  no   fb   no  yes   yes  Currently mis-typed as 0 (is really type 2), 32K RAM not (yet) in crt, dox scattered
retro replay-64           36      -    32     64    yes yes yes yes yes  yes yes  no   fb   no  yes   yes  Currently mis-typed as 0 (is really type 2), 32K RAM not (yet) in crt, dox scattered
retro replay-128          36      -    32    128    yes yes yes yes yes  yes yes  no   fb   no  yes   yes  Currently mis-typed as 0 (is really type 2), 32K RAM not (yet) in crt, dox scattered
mmc replay-64             38      -   512     65    yes yes yes yes  no   NO yes  no  yes F?no  yes   yes  Mis-typed, no ram in crt and no config-rom, dox scattered
mmc replay-512            38      -   512    513    yes yes yes yes  no   NO yes  no  yes F?no  yes   yes  Mis-typed, no ram in crt and no config-rom, dox scattered
IDE64                     39     64    32      -    yes yes   -   - yes   fb yes  yes  fb   yes yes   NO   no config-rom in crt
super snapshot 4          40     32     -      -    yes yes   -   - yes   fb  fb  no   fb   no  yes   FIX
game killer               42      8     -      -    yes yes   -   - yes  yes  fb  no   fb F no  yes   yes
prophet 64                43    256     -      -    yes yes   -   - yes   fb  fb  no    -   no  yes   yes
exos                      *44     8     -      -    yes yes   -   - yes  yes   -   -  yes F no  yes   yes
freeze frame              *45     8     -      -    yes yes   -   - yes   fb yes  no   fb   no  yes   yes
freeze frame mk4          *46    16     -      -    yes yes   -   - yes   fb yes  no   fb   no  yes   yes
freeze machine            *46    32     -      -    yes yes   -   - yes   fb yes  no   fb   no  yes   yes
snapshot 64               *47     4     -      -    yes yes   -   - yes   fb   -       fb   no  yes   yes
super explode 5           *48    16     -      -    yes yes   -   - yes   fb   -       fb   no  yes   yes
action replay mk2         *50    16     -      -    yes yes   -   - yes   fb yes  no   fb   no  yes   yes
mach 5                    *51   4/8     -      -    yes yes   -   - yes   fb   -        -   no  yes   yes
diashow maker             *52     8     -      -    yes yes   -   - yes   fb yes  no    -   no  yes   yes
Pagefox                   *53    64    32      -    yes yes   -   - yes   fb yes yes    -   no  yes   yes
Kingsoft                  *54    24     -      -    yes yes   -   - yes   fb yes yes    - F no  yes   yes

I/O-Slot

NAME                      ID    ROM   RAM    FRM    VBL VCL VBS VCS SNP  MPK RPK DMP  ULT   CCC   DOX   COMMENTS
----                      --    ---   ---    ---    --- --- --- --- ---  --- --- ---  ---   ---   ---   --------

ACIA                    -117      -     -      -      -   -   -   - yes    - yes  no    -   n/a   NO    Various ACIA-based (for serial communication) carts at $DE00-$DE03
swiftlink               -117      -     -      -      -   -   -   - yes    - yes  no    -   n/a   NO    CMD swiftlink cart with an ACIA at $DE00-$DE03
turbo232                -117      -     -      -      -   -   -   - yes    - yes  no    -   n/a   NO    Turbo232 cart, based on the swiftlink with added possibility of doubling the baud rate, at $DE00-$DE07

sequential midi         -110      -     -      -      -   -   -   -  no    - yes  no    -   n/a   NO    Midi cart at $DE00-$DE03
passport/syntech midi   -108      -     -      -      -   -   -   -  no    - yes  no    -   n/a   NO    Midi cart at $DE08-$DE09
datel/siel/jms midi     -109      -     -      -      -   -   -   -  no    - yes  no    -   n/a   NO    Midi cart at $DE04-$DE07
namesoft midi           -111      -     -      -      -   -   -   -  no    - yes  no    -   n/a   NO    Midi cart at $DE00-$DE03
maplin midi             -112      -     -      -      -   -   -   -  no    - yes  no    -   n/a   NO    Midi cart at $DF00-$DF01

digimax                 -100      -     -      -      -   -   -   - yes    -   -   -    -   n/a   yes   4-channel 8bit digital sound output cart, dox incomplete
SFX sound expander      -106      -     -      -      -   -   -   - yes    - yes  no    -   n/a   NO    YM3812/YM3526 based sound output cart
SFX sound sampler       -107      -     -      -      -   -   -   - yes    -   -   -    -   n/a   NO    single channel 8bit digital sound input/output cart

TFE                     -116      -     -      -      -   -   -   -  no    - yes  no    -   n/a   yes   ethernet interface cart
RR-net (Clock Port)     -116      -     -      -      -   -   -   -  no    - yes  no    -   n/a   yes   ethernet interface cart

georam-64               -102      -    64      -    yes   - yes   - yes    - yes  no    -   n/a   yes   I/O-window based RAM cart
georam-128              -102      -   128      -    yes   - yes   - yes    - yes  no    -   n/a   yes   I/O-window based RAM cart
georam-256              -102      -   256      -    yes   - yes   - yes    - yes  no    -   n/a   yes   I/O-window based RAM cart
georam-512              -102      -   512      -    yes   - yes   - yes    - yes  no    -   n/a   yes   I/O-window based RAM cart
georam-1024             -102      -  1024      -    yes   - yes   - yes    - yes  no    -   n/a   yes   I/O-window based RAM cart
georam-2048             -102      -  2048      -    yes   - yes   - yes    - yes  no    -   n/a   yes   I/O-window based RAM cart
georam-4096             -102      -  4096      -    yes   - yes   - yes    - yes  no    -   n/a   yes   I/O-window based RAM cart

REU-128                 -105      -   128      -    yes   - yes   - yes    - yes  no    -   n/a   yes   DMA based RAM cart
REU-256                 -105      -   256      -    yes   - yes   - yes    - yes  no    -   n/a   yes   DMA based RAM cart
REU-512                 -105      -   512      -    yes   - yes   - yes    - yes  no    -   n/a   yes   DMA based RAM cart
REU-1024                -105      -  1024      -    yes   - yes   - yes    - yes  no    -   n/a   yes   DMA based RAM cart
REU-2048                -105      -  2048      -    yes   - yes   - yes    - yes  no    -   n/a   yes   DMA based RAM cart
REU-4096                -105      -  4096      -    yes   - yes   - yes    - yes  no    -   n/a   yes   DMA based RAM cart
REU-8192                -105      -  8192      -    yes   - yes   - yes    - yes  no    -   n/a   yes   DMA based RAM cart
REU-16384               -105      - 16384      -    yes   - yes   - yes    - yes  no    -   n/a   yes   DMA based RAM cart

RAM-ONLY HACK

(these don't really belong here, only for information sake)

NAME       RAM   DOX   COMMENTS
----       ---   ---   --------
C64 256K   256   NO    16K segment based memory replacement
+60K        60   yes   60K bank based memory addition
+256K      256   NO    256K bank based memory replacement

things needed for the future generic cartsystem

- add c64cartlist.c and make a table that shows the availability of some generic options:

step 1: all options related to the actual cartridge image

    ENB - enable cart (toggle)
    SIZ - set cart size (also needs function to query list of available sizes)
    WPT - write protect (toggle)
    SWT - cart has a switch (also needs function to query list of possible values, handle 2 switches)

    VBL - Binary Load available
    VCL - Crt Load available
    VBS - Binary Save available (flush cart image available)
    VCS - Crt Save available
    NAME                      ID    ENB SIZ WPT SWT VBL VCL VBS VCS
    ----                      --    --- --- --- --- --- --- --- ---
    mmc64                     37    yes  no yes FIX yes yes yes yes
    IEEE488                   41    yes  no  no  no yes yes  no  no
    magic voice               *49   yes  no  no  no yes yes  no  no

    DQBB                    -101    yes  no yes  no yes  no yes  no
    expert                     6    yes  no yes FIX yes yes yes yes
    ISEPIC                  -103    yes  no yes FIX yes yes yes yes
    ramcart                 -104    yes FIX yes  no yes  no yes  no

    easyflash                 32     no  no yes  no yes yes yes yes
    IDE64                     39     no  no  no  no yes yes  no  no
    retro replay              36     no  no yes FIX yes yes yes yes
    mmc replay                38     no  no yes FIX yes yes yes yes

    ACIA / swithlink / t232 -117    yes  no  no  no  no  no  no  no
    sequential midi         -110    yes  no  no  no  no  no  no  no
    passport/syntech midi   -108    yes  no  no  no  no  no  no  no
    datel/siel/jms midi     -109    yes  no  no  no  no  no  no  no
    namesoft midi           -111    yes  no  no  no  no  no  no  no
    maplin midi             -112    yes  no  no  no  no  no  no  no
    digimax                 -100    yes  no  no  no  no  no  no  no
    SFX sound expander      -106    yes  no  no  no  no  no  no  no
    SFX sound sampler       -107    yes  no  no  no  no  no  no  no
    TFE / RR-Net            -116    yes  no  no  no  no  no  no  no

    georam                  -102    yes FIX yes  no yes  no yes  no
    REU                     -105    yes FIX yes  no yes  no yes  no
   (all carts not listed have "yes" in VBL/VCL colums, "no" in all other colums.)

step 2: all options related to eventually attached storage image(s)

    mmc64                     37   SD
    mmc replay                38   SD, option-eeprom
    IDE64                     39   HD, ISO, option-cmos ram

    extra options:

    ACIA / swithlink / t232 -117   mode, irq-mode, device
    sequential midi         -110   driver, in-dev, out-dev
    passport/syntech midi   -108   driver, in-dev, out-dev
    datel/siel/jms midi     -109   driver, in-dev, out-dev
    namesoft midi           -111   driver, in-dev, out-dev
    maplin midi             -112   driver, in-dev, out-dev
    digimax                 -100   base
    SFX sound expander      -106   chip type
    TFE / RR-Net            -116   mode, device

Some other details

  • Carts that use a capacitor connected to io1/io2: epyx fastload, stardos

BUGS

individual Carts

some carts do not work 100% yet, or are downright buggy:


MMC Replay (38)
  • write test programs for the various mapping modes and review the emulation. (only the BIOS mode works right now)
  • fix memory-peek for monitor

Missing Features

  • some remaining cleanups:
    • IDE64 should save its config (cmos ram) to a binary instead of abusing vicerc
  • rework slot1 carts enable mechanism like slot0 carts (ISEPIC, RamCart, Expert, DQBB)
  • implement i/o dump support for more carts. optional, low priority

snapshots

  • implement snapshot support for more carts. not criticial, low priority. (MMC64, Magic Voice, MMC Replay,MIDI, Ethernet)
    • implement snapshot support in the following cores:
      • cs8900 (Ethernet)
      • t6721 (Magic Voice)
      • spi-sdcard (MMC64, MMC Replay)
      • spi-eeprom (MMC Replay)
      • midi (MIDI)
    • invent a mechanism to deal with SD-Card/HD Images (MMC64, MMC Replay, IDE64)

Clock Port Resource

  • update the resource handling for the clockport (export resource) (MMC64, MMC Replay, Retro Replay) (in trunk)
  • create logic to handle clock port devices (in trunk)
  • make hooks to handle rr-net, silversurfer, mp3@c64 (in trunk)
  • Clockport: Silversurfer (UART) support is missing
  • Clockport: mp3@c64 support (in trunk)

individual Carts

Magic Voice (49)
  • debug interaction with TPI
  • rewrite using a more cycle exact and event based model
DQBB (-)
  • add 32/64/128/256K RAM option
Retro Replay ()
  • add 64k RAM option
IDE64 ()
  • add IDE64 duart shortbus expansion support
REU (-)
  • review code and if possible make all special cases into general cases
    • reu_dma() in c64mem.c, plus256k.c, c64memsc.c, c64_256k.c, c128mem.c, c128mmu.c
    • reu_ba_register() in c64memsc.c
    • reu_dma_start() in mainc64cpu.c