# SummerCart64 - Features
SummerCart64 - a fully open source N64 flashcart

# SummerCart64 features

### Enough space for your ROMs

Flashcart embeds 64 MiB of fast SDRAM memory, with additional 14 MiB available from the flash memory, totaling up to 78 MiB - more than biggest known retail ROMs.

### Blazing fast I/O

Both microSD card slot and USB port operate at peak speed of ~23.8 MiB/s. Even largest retail ROMs (64 MiB) can be loaded in just couple of seconds.

### Never lose your progress

Every known save type found in the retail games is supported. Saves are automatically flushed to the microSD card (or via USB with PC app attached) during gameplay - no reset button press is necessary!

### Complete 64DD hardware emulation built-in

Forget about 64DD ROM conversions - SummerCart64 can play disk dumps directly! Combo games (N64 cartridge + 64DD disk) and multi-disk 64DD games are also supported.

### Every region is welcome

SummerCart64 supports every N64 console regardless of its region. NTSC/PAL switching is done automatically and last detected region is stored inside NVRAM.

### Run games with ease

Browse, run and manage your game library right on the N64 console with the N64FlashcartMenu - a dedicated menu software for the SummerCart64.

### Full control of boot process

Direct mode makes testing possible without any interference from the bootloader embedded into SummerCart64, perfect for trying out custom IPL3 replacements giving you control right after N64 boots up.

### Dedicated terminal PC app

Powerful, and yet simple, `sc64deployer` app greatly enhances developer user experience.

### Outstanding developer features

SummerCart64 was born as a device for homebrew development first. As a consequence it incorporates many features to ease development of your own games:

- Dedicated PC app for loading ROMs and debug terminal access.
- Simple, command based, communication protocol - both on the USB and N64 side.
- microSD card interface with simple, block based, protocol.
- Fast USB interface with well documented protocol.
- 8 kiB buffer for general use with microSD card or USB interface.
- Native support for microSD card and USB interface in the libdragon.
- libcart support.
- UNFLoader support - both in the PC app and USB library.
- IS-Viewer 64 debug interface support in the hardware.

### With freedom in mind

SummerCart64 project is completely open source - you can modify and build upon it freely as long as GNU GPLv3 license terms are satisfied.

# Hardware specification

#### Input / Output

- N64 cartridge edge connector
- microSD card slot (~23.8 MiB/s peak, cards up to 2 TB are supported)
- USB Type-C receptacle (~23.8 MiB/s peak)
- Programmable push button on the back
- Status LED

#### Memory

- 64 MiB SDRAM
- 16 MiB QSPI Flash (last 2 MiB is reserved for internal use)
- 8 kiB buffer in the FPGA
- 64 byte battery-backed NVRAM in the RTC

#### CIC emulation

- Based on the UltraCIC_C with enhancements
- Automatic region switch
- Fully programmable seed/checksum values
- Supports booting directly from the 64DD IPL

#### Save support

- EEPROM 4 kbit
- EEPROM 16 kbit
- SRAM 256 kbit
- SRAM 3x256 kbit
- FlashRAM 1 Mbit
- SRAM 1 Mbit
- Automatic writeback after ~1 second to the microSD card or USB interface

#### Add-on hardware emulation

- 64DD (N64 Disk Drive) - disk access to/from microSD card or USB interface
- IS-Viewer 64 (movable base address, fixed 64 kiB buffer size, debug `printf` only)

#### Other

- Real time clock
- CR2032 RTC backup battery
- Embedded N64 bootloader capable of loading menu binary from the microSD card and displaying error messages
- Option to disable embedded N64 bootloader (direct mode)
- Firmware updatable via USB interface
- Seamless power switching between USB and N64