Gabriel Marcano 9210769405 Optimizations for Cart_Reader.ino
- Removed strcpy_P from print_STR, not necessary as print*_Msg supports
   __FlashStringHelper strings, so pass those through.
 - Change RTCStamp signature, don't return String as that allocates on
   the heap, require caller to allocate a buffer however they want of at
   least 21 bytes in size. Updated call-sites to follow this new
   convention. String output is now no longer completely uppercase.
 - delete print_right(). This function doesn't quite do what it claims
   to do, at least on HW5, as the font isn't monospace.
 - Fix number literal types for clkcal. No need to use ULL, as the
   variables in use are int32_t, and on AVR these are just L. Unsure of
   how to make it more cross-platform for now.
 - delete atoi32_signed, as we can just use atol() and save progmem.
 - cleanup readClockOffset(), and use atol also.
 - minor cleanups in initializeClockOffset that actually reduced
   progmem.
 - rewrote void print_Msg(const char myString[]) wrapping implementation
   to reduce progmem. call print_Msg in println_Msg (not sure why it
   wasn't called). This actually fixes a bug where only the first line
   would wrap.
 - checkButton(), rotaryDir doesn't need to be more than int8_t.
 - delete large switch-case in fileBrowser, unnecessary, just index the
   fileNames string directly.
 - buildRom, loop size doesn't need to be more than byte as length is a
   byte.
 - In total, progmem usage went from 181634 bytes to 180484 (over 1KB
   saved).
2025-01-07 01:03:06 -08:00
2024-07-31 13:37:56 -04:00
2023-01-25 15:05:19 +01:00
2019-02-06 15:55:22 +01:00
2024-11-05 17:00:50 +09:00

image

Open Source Cartridge Reader

This project represents a community-driven effort to provide an easy to build and easy to modify cartridge dumper. Its main purpose is to dump a video game's ROM and save file to an SD card without the need of a PC.

For any questions you can use the Discussions and/or Issues section here on GitHub or visit the accompanying thread in the Arduino Forum, where you can reach most of the devs directly.

Also be sure to check the guides in the Wiki too.

Happy making. 🔧🔨😊

image

Features:

  • Modular design
  • Stand-alone operation
  • Easy to modify open-source code
  • Portable when used together with a power bank

image

Supported Systems:

  • NES/Famicom/Family Basic
  • Super Nintendo/Super Famicom (including SF Memory, Satellaview, Sufami Turbo, and Game Processor RAM Cassettes)
  • Nintendo 64 (including Controller Pak, Gameshark, and Xplorer 64)
  • Game Boy Color (including GB Memory, Codebreaker, and Gameshark)
  • Game Boy Advance
  • Sega Mega Drive/Genesis
  • Sega Master System

image

Supported with adapters:

  • Virtual Boy
  • Pokémon Mini
  • Sega Game Gear
  • Sega Mark III
  • Sega SG-1000/SC-3000
  • Sega Cards
  • PC Engine/TurboGrafx-16/SuperGrafx
  • WonderSwan (Color)
  • NeoGeo Pocket (Color)
  • Intellivision
  • ColecoVision
  • Benesse Pocket Challenge W
  • Benesse Pocket Challenge V2
  • Watara Supervision
  • Atari 8-bit Computer (400/800/XL/XE)
  • Atari 2600/5200/7800
  • Atari Lynx
  • Atari Jaguar
  • Emerson Arcadia 2001
  • Fairchild Channel F
  • Magnavox Odyssey 2/Philips Videopac+
  • Super A'Can
  • MSX
  • Casio PV-1000
  • Casio Loopy
  • Commodore VIC-20
  • Commodore 64
  • Vectrex
  • Bally Astrocade
  • Bandai Little Jammer
  • Bandai Little Jammer Pro
  • LeapFrog Leapster (L-MAX/Leapster2)
  • RCA Studio II
  • Texas Instruments TI-99
  • Tomy Pyuuta
  • TRS-80 Color Computer
  • Vtech V.Smile (Baby/V.Motion)

Open Source Licenses:

  • Software(everything in Cart_Reader folder) = GPL v3
  • Hardware(everything in hardware folder) = CC BY 4.0
  • Documentation(everything in the Wiki) = CC0 1.0
Description
A shield for the Arduino Mega that can back up video game cartridges.
Readme GPL-3.0 147 MiB
Languages
C++ 99.3%
C 0.7%