Skip to content

Releases: Polprzewodnikowy/SummerCart64

v2.20.0

29 Sep 19:15
Compare
Choose a tag to compare

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

06 Sep 23:07
Compare
Choose a tag to compare

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 the CSD 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 and 64dd 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 typing YES confirmation in uppercase.

v2.18.1

29 Jan 13:27
Compare
Choose a tag to compare

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

14 Dec 19:53
Compare
Choose a tag to compare

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

15 Sep 19:04
Compare
Choose a tag to compare

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 the debug 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

29 Jun 23:17
Compare
Choose a tag to compare

PC app changelog:

  • Added --no-writeback option to the debug 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

23 Apr 11:10
Compare
Choose a tag to compare

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

04 Apr 18:30
Compare
Choose a tag to compare

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

11 Mar 23:28
Compare
Choose a tag to compare

PC app changelog:

  • sc64deployer - new tool written from scratch in Rust now replaces previous sc64.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

24 Feb 22:48
f8cb1b2
Compare
Choose a tag to compare

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.