Skip to content

DiscoStarslayer/disco-cart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

V.Smile Disco-Cart

Custom developer cartridge that easily enables the following

  • Ability to dump retail cartridges over Serial or to an SD card
  • Ability to flash roms over serial or an SD card to built in flash memory
  • Booting cartridge on real V.Smile hardware
  • Use Teensy to fuzz data + address bus while system is online (WIP)
  • "Stealth" switch to disable sense pinout to allow console to boot as if Cartridge was not inserted

Contents

Cartridge

Disco-Cart Front Disco-Cart Back

Usage

  1. Install PlatformIO onto your local system.
  2. Install latest LTS for NodeJS onto your local system.
  3. Install supporting packages for serial management script:
cd ./manager
yarn
  1. Use PlatformIO to pull in required packages, build, and then deploy firmware onto your Teensy (optionally, flash firmware.hex)
  2. Socket Teensy into Disco-Cart, ensure USB port on teensy lines up with the USB silkscreen on the board
  3. Move mode select switch to the desired position Mode Select Switch
  • Left: Cart mode, to insert into a V-Smile and boot a flashed rom
  • Middle: Flash mode, select this mode to read/write to the internal flash on the Disco-Cart
  • Right: Dump mode, select this mode to read/write from an inserted retail cartridge
  1. Use manager scripts to perform your desired action

Examples

Read retail cartridge to local file over serial

# Switch: Dump mode
node .\index.js --port=COM3 --out=./thomas.bin --limit=3FFFFF --bank=LOW

Dump retail cartridge to SD card

# Switch: Dump mode
node .\index.js --port=COM3 --mode=sddump --name=thomas.bin --length=3FFFFF

Flash local rom to flashcart

# Switch: Write mode
node .\index.js --port=COM3 --mode=write --rom=./thomas.bin

Inserting into a V.Smile

Ensure mode select switch is in Cart mode. Teensy can remain inserted in cartridge while in this mode. If you wish to write a new flash, you can do so while the cartridge is inserted by first switching mode to Write mode and running the write action from the manager

Args

port

Determines the serial port to connect to, defaults to COM3 for Windows or /dev/ttyACM0 for Linux.

out

Relative file path to write the rom dump to, defaults to ./dump.bin

limit

Max address to dump to in hex. Banked cartridges generally have a 4MB and 2MB flash, so they need a limit of 1FFFFF and FFFFF respectively. A single 8MB flash should accept 3FFFFF.

bank

If cartridge is banked, select which bank to dump. Defaults to LOW, non-banked cartridges should be set to LOW.

mode

Which mode to operate the teensy in. Accepts dump, write and sddump.

name

When writing to SD card, the file name to write to

length

When writing to SD card, the size of the file to be written, in hex.

Contributing

Project is fully open source under GPL3, including hardware design.

  • cartridge: Hardware design as a KiCad Project
  • manager: JS Script to aid with interfacing the Teensy over serial
  • src: C++ Platform IO source for Teensy 4.1