mirror of
https://github.com/sanni/cartreader.git
synced 2025-02-16 04:59:13 +01:00
![Gabriel Marcano](/assets/img/avatar_default.png)
- 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).
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. 🔧🔨😊
Features:
- Modular design
- Stand-alone operation
- Easy to modify open-source code
- Portable when used together with a power bank
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
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
Languages
C++
99.3%
C
0.7%