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
- Install PlatformIO onto your local system.
- Install latest LTS for NodeJS onto your local system.
- Install supporting packages for serial management script:
cd ./manager
yarn
- Use PlatformIO to pull in required packages, build, and then deploy firmware onto your Teensy (optionally, flash
firmware.hex
) - Socket Teensy into Disco-Cart, ensure USB port on teensy lines up with the USB silkscreen on the board
- Move mode select switch to the desired position
Left
: Cart mode, to insert into a V-Smile and boot a flashed romMiddle
: Flash mode, select this mode to read/write to the internal flash on the Disco-CartRight
: Dump mode, select this mode to read/write from an inserted retail cartridge
- Use manager scripts to perform your desired action
# Switch: Dump mode
node .\index.js --port=COM3 --out=./thomas.bin --limit=3FFFFF --bank=LOW
# Switch: Dump mode
node .\index.js --port=COM3 --mode=sddump --name=thomas.bin --length=3FFFFF
# Switch: Write mode
node .\index.js --port=COM3 --mode=write --rom=./thomas.bin
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
Determines the serial port to connect to, defaults to COM3
for Windows or /dev/ttyACM0
for Linux.
Relative file path to write the rom dump to, defaults to ./dump.bin
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
.
If cartridge is banked, select which bank to dump. Defaults to LOW
, non-banked cartridges should be set to LOW
.
Which mode to operate the teensy in. Accepts dump
, write
and sddump
.
When writing to SD card, the file name to write to
When writing to SD card, the size of the file to be written, in hex.
Project is fully open source under GPL3, including hardware design.
cartridge
: Hardware design as a KiCad Projectmanager
: JS Script to aid with interfacing the Teensy over serialsrc
: C++ Platform IO source for Teensy 4.1