Releases: Polprzewodnikowy/SummerCart64
v2.20.0
N64FlashcartMenu downloads can be found here: https://github.com/Polprzewodnikowy/N64FlashcartMenu/releases/latest
Firmware changelog:
- Added new USB commands to access the SD card from the PC.
- Expanded 64DD buffer size from 256 bytes to 1 kiB and changed its purpose to be both 64DD buffer and internal buffer for MCU use.
PC app changelog:
- Added access to the SD card in the SC64 with simple command line interface. Available operations can be listed with
sc64deployer sd --help
.
v2.19.0
Important: Updating the firmware to this version will reset RTC time, CIC region and all persistent settings.
N64FlashcartMenu downloads can be found here: https://github.com/Polprzewodnikowy/N64FlashcartMenu/releases/latest
Firmware changelog:
- Expanded interrupt support. SummerCart64 now can signal via cart interrupt the following events:
- Button press.
- Command finish.
- USB data waiting to be received.
- AUX register waiting to be read.
- Added new AUX register and AUX_WRITE USB command as a simple message link between PC and N64.
- Expanded PI I/O debug information - in addition to the last accessed address, transfer length and direction are also reported.
- Added CIC debug information - currently executing function in the CIC code is reported.
- CIC delays are now synchronized with N64 clock and reset time is exactly 500 ms.
- Improvements to the USB reset process to make it more reliable.
- RTC improvements:
- Added ability to set the century, starting at year 1900.
- Joybus RTC now correctly handles the century bit.
- RTC now correctly handles the February 29 2000 date, and subsequent leap years occurring every 400 years (2400, 2800, ...).
- Improvements to the internal architecture in the FPGA:
- DMA module has been rewritten to maximize transfer speeds, now saturating maximum speeds of the USB and SD card interfaces in both directions.
- SDRAM timings were adjusted to the correct, shorter values reducing the overall access latency.
- Changed reported error codes in the N64 commands to be more meaningful.
- Built-in test ROM improvements:
- Added cart interrupt test.
- Added PI bus stability test.
- Added SD card filesystem read/write test.
- SDRAM test was adjusted to increase chance to report more errors.
- Added ability to update firmware from the flash memory in instances where SDRAM is faulty/unstable.
- Updated libdragon open source IPL3 to the
r8
release. - Fixed a bug in the flash module - partial writes not ending on a 256 byte boundary caused next flash reads to be corrupted.
- Fixed a bug where flash write alignment was required to be 2 bytes.
- Fixed a bug in RTC get/set command where weekday field was using different bits than documented.
- Fixed a bug where LED could be stuck on when CIC error was cleared while LED was on.
- Fixed a bug where SD card could be incorrectly initialized.
- Fixed a bug where
TRAN_SPEED
field in theCSD
SD card register was reported incorrectly.
PC app changelog:
- Added support for the libftdi in addition to the standard serial port implementation. When possible, libftdi will be used as it saturates read/write USB speeds. On Windows OS user can opt-in for the libftdi by using Zadig to install WinUSB driver over the default FTDI driver. Linux and macOS doesn't require any driver installation and libftdi is used by default.
- Added option to the
upload
and64dd
commands to try reboot the N64 into new ROM (requires specific support in the currently running game/app on the N64, for more information check the AUX register in the documentation). - Adjusted
info
command to show updated debug information reported by the SummerCart64. - Added
test
command to perform USB speed test and SDRAM memory test. - Added option to the
firmware update
command to allow firmware update from the flash memory. - Fixed a bug in the
server
command where connection could be closed in unstable network conditions.
Initial programming script changelog:
- Added a quick SDRAM memory test before proceeding with programming the bootloader.
primer.py
no longer requires typingYES
confirmation in uppercase.
v2.18.1
N64FlashcartMenu downloads can be found here: https://github.com/Polprzewodnikowy/N64FlashcartMenu/releases/latest
PC app changelog:
- Added support for SC64's voltage and temperature readouts.
Firmware changelog:
- FlashRAM writes now can only write zeros to the save data, implementing the same behavior as real chip.
- Removed "MCU stack usage" diagnostic as firmware no longer uses tasks.
- Added voltage and temperature diagnostic readouts in place of "MCU stack usage" diagnostic.
- Changed LED blinking behavior.
- Minor bug fixes to the Joybus (EEPROM and RTC) subsystem.
- Minor improvements to the initial programming procedure.
- Major changes under the hood to improve overall stability.
v2.18.0
N64FlashcartMenu downloads can be found here: https://github.com/Polprzewodnikowy/N64FlashcartMenu/releases/latest
PC app changelog:
- Improved detection of CIC chips - same algorithm is used as in IPL2, it can now correctly detect custom IPL3 that has checksum collision with existing known CIC chips.
- Added option to set arbitrary CIC seed when uploading ROM.
- Added command to reset SC64 internal state.
- Remote connection is now properly shutdown when application closes.
- Added Windows 32-bit build.
Firmware changelog:
- Fixed issue where N64 was freezing at random - CIC emulation was moved from the microcontroller to the separate circuity in the FPGA, greatly increasing stability.
- N64 bootloader (and the project as a whole) is now 100% free from proprietary code - new open source IPL3 is used in place of the standard IPL3 provided by the Nintendo.
- Reduced update file size by utilizing new compression methods in the Libdragon.
- Improved detection of CIC chips - same as in PC app.
- Improved boot process in bootloader - RDRAM is always deinitialized before jumping to the game code.
- Menu ROM is no longer padded with zeros when loading
/sc64menu.n64
from the SD card, shortening boot time - new open source IPL3 used by the N64FlashcartMenu doesn't require padding.
Important: this firmware will work only with recent N64FlashcartMenu builds that utilize open source IPL3. If menu doesn't load please update sc64menu.n64
with recent build from here.
v2.17.0
PC app changelog:
- Disk parameter in the
64dd
command is now optional. Providing only 64DD IPL path will enable "64DD IPL only" mode in the SC64. - Deployer now exits after last command in
debug
mode when piping commands in the terminal. - Added
--init
option to thedebug
command for sending commands immediately after establishing connection with SC64.
Firmware changelog:
- N64 bootloader now waits until save is flushed to the SD card and disables save writeback when jumping to menu code.
- Built-in self test now can check SDRAM for correct operation.
- Changed menu loading procedure. Now menu is loaded to the SDRAM and standard IPL3 code is used to run the menu instead of loading code directly to the N64 RDRAM. This fixes issues with loading N64FlashcartMenu when first 4 bytes of SDRAM weren't
0x80371240
. - Updated reboot procedure. This should increase games compatibility that previously had issues when booting through bootloader.
- Added "writable" flag to the 64DD disk track/head/block mapping to prevent overwriting read only parts of the disk.
v2.16.0
PC app changelog:
- Added
--no-writeback
option to thedebug
command for disabling save writeback via USB when debug mode is enabled
Firmware changelog:
- Added byte swap option when loading data from the SD card to SDRAM or Flash memory regions
- Added
WRITEBACK_PENDING
N64 command for checking if save writeback is either pending or in progress - Fixed bug when writing data from USB or SD card to flashcart memory caused every byte to be skipped if address was not 2 byte aligned
- Fixed bug when setting 1M SRAM save type caused error to be returned instead
v2.15.1
PC app changelog:
- Heartbeat datatype support
- Text datatype bug fix (added null byte at the end)
- First 64DD disk is inserted by default
- Debug functionality support in 64DD mode
Firmware changelog:
- PC -> N64 debug write timeout implementation - data is flushed automatically after 1 second if N64 didn't respond to the write
v2.15.0
PC app changelog:
- Server performance was increased and connection is now more stable
- Debug mode now supports sending multiple files in one command
- Text encoding in debug mode now can be forced to either UTF-8 or EUC-JP
- Added USB save writeback support, it's enabled automatically in debug mode
- Added support for setting SRAM 1 Mib save type
Firmware changelog:
- Added support for MPAL consoles
- TV type is now passthrough by default instead of trying to guess it from ROM header
- Added support for flushing save via USB in writeback module
- Added support for SRAM 1 Mib save type
v2.14.0
PC app changelog:
sc64deployer
- new tool written from scratch in Rust now replaces previoussc64.py
Python script- Streamlined user interface - designed around specific commands instead of general arguments
- New remote connection option - tool can be run as server to expose SC64 device over network
- Automatic save detection now uses
mupen64plus.ini
database - Firmware update now validates file and prompts user to confirm operation
Firmware changelog:
- Bootloader now doesn't display CPU registers on runtime errors
- Changed error messages for menu loading
- Added firmware revision reporting for
VERSION_GET
USB/N64 command MEMORY_WRITE
/FLASH_ERASE_BLOCK
USB commands are no longer capable of overwriting/erasing bootloader area in flash memory- USB commands now return error when address or length is outside of supported memory range
- Fixed partial reads from N64 side for
USB_WRITE
USB command - Added memory location and length safeguards for
FIRMWARE_BACKUP
/FIRMWARE_UPDATE
USB commands FLASH_ERASE_BLOCK
USB/N64 command now requires address as the argument instead of offset
v2.12.1
Important information
sc64.exe
will most likely be falsely detected as malicious software on Windows OS. sc64.exe
needs to be added as exception in your AV program. This issue will be resolved in next release as software will be rewritten to avoid this problem: #34
If you don't want to add exception in AV then sc64.py
script is still available in sc64-extra-v2.12.1.zip
package.