SummerCart64 - a fully open source N64 flashcart
Go to file
2023-02-12 21:19:43 +01:00
.github [SC64] Update CI actions (#25) 2023-02-11 11:43:03 +01:00
.vscode [SC64][FW][HW][SW] New version based on LCMXO2 FPGA (#19) 2022-11-10 11:46:54 +01:00
assets [SC64] Added assets to release package 2023-02-10 18:05:41 +01:00
docs [SC64][SW] Added LED I/O blinking persistent setting 2023-02-10 21:38:49 +01:00
fw [SC64][FW] Included default Lattice Diamond license 2023-02-11 11:17:55 +01:00
hw [SC64][HW] Updated PCB BOM and GitHub address 2023-02-12 21:19:43 +01:00
sw [SC64][SW] Added LED I/O blinking persistent setting 2023-02-10 21:38:49 +01:00
.gitattributes [SC64][SW] Fix linguist-vendored 3 2022-11-10 17:13:06 +01:00
.gitignore [SC64][FW] Included default Lattice Diamond license 2023-02-11 11:17:55 +01:00
build.sh [SC64] Added assets to release package 2023-02-10 18:05:41 +01:00
docker_build.sh [SC64][FW] Included default Lattice Diamond license 2023-02-11 11:17:55 +01:00
LICENSE [SC64] Add license 2020-10-08 02:09:44 +02:00
README.md [SC64][DOCS] Added quick startup guide 2023-02-09 22:50:10 +01:00

SC64 - an open source Nintendo 64 flashcart


Features

  • 64 MiB SDRAM memory for game and save data
  • 16 MiB FLASH memory for bootloader and extended game data
  • 8 kiB on-chip buffer for general use
  • ~23.8 MiB/s peak transfer rate USB interface for data upload/download and debug functionality
  • ~23.8 MiB/s peak transfer rate SD card interface
  • EEPROM, SRAM and FlashRAM save types with automatic writeback to SD card
  • Battery backed real time clock (RTC)
  • Status LED and button for general use
  • 64DD add-on emulation
  • IS-Viewer 64 debug interface
  • N64 bootloader with support for IPL3 registers spoofing and loading menu from SD card
  • Enhanced UltraCIC_C emulation with automatic region switching and programmable seed/checksum values
  • PC app for communicating with flashcart (game/save data upload/download, feature enable control and debug terminal)
  • UNFLoader support
  • Initial programming via UART header or dedicated JTAG/SWD interfaces
  • Software and firmware updatable via USB interface
  • 3D printable plastic shell

Documentation


Help / Q&A

For any questions related to this project, please use Discussions tab in GitHub repository. Do not use my e-mail for these questions, as I want to have a centralized knowledge base accessible for everyone interested in this project.

I'm also active at N64brew Discord server as korgeaux#5558 but keep in mind that Discussions tab is a preferred option.


High-level flashcart block diagram

SC64 block diagram


Finished example

SC64 finished example


Acknowledgement

This project wouldn't be possible without these contributions:

  • 64drive orders being on permanent hold long before creating this repository.
  • EverDrive-64 X7 being disappointment for homebrew development (slow USB upload, unjustified price and overcomplicated SD card access).
  • Jan Goldacker (@jago85) and his projects:
    • Brutzelkarte providing solid base for starting this project and sparking hope for true open source N64 flashcarts.
    • UltraCIC_C reimplementation for easy integration in modern microcontrollers. Thanks also goes to everyone involved in N64 CIC reverse engineering.
  • N64brew Discord server community being very helpful during flashcart development.
  • FatFs FAT32/exFAT library being easiest to integrate in embedded environment.
  • Yakumono's (@LuigiBlood) extensive 64DD documentation and its implementation in various emulators.
  • Libdragon open source N64 SDK project and its developers.