Thursday, September 26, 2024

SummerCart64 - The Open Source N64 Flash Cart


The Nintendo 64 has had devices (such as the Bung Doctor V64) which allowed games to be played unofficially almost from its release. The 2010s saw the introduction of the first flash cartridges for the console such as the EverDrive 64. Flash cartridges have come a long way and now can run almost any regular N64 cartridge game. Until recently there was only one flash cart readily available, the EverDrive 64 X7, but now it faces competition from an open source flash cart, the SummerCart64, which promises new functionality. In this blog article I will take a look at the SummerCart64 and go over its functionality.


The SummerCart64 (SC64) can be purchased prebuilt from Phenom Mod. The cost is $124.00 with a cartridge shell or $108.00 for a bare board. I paid $6.00 shipping. Phenom Mod ships from Pennsylvania, which is a fair bit closer to me and everyone else in North America than Ukraine. Krikzz' EverDrive 64 X7 (ED64) costs $159 + $12 shipping to the US from Ukraine.

Phenom Mod's SC64s come with a sticker for the front label and a sticker for the rear label, and you get to affix them to the cartridge shell. The SC64 has a battery holder for a CR2032, which you have to supply. Make sure that top prongs are touching the top part of the battery, otherwise the RTC will not retain its state after powering down. The screws holding the cartridge require a T8 Torx bit to remove.

Documentation for the SC64 is a bit more loosely organized than it is for an EverDrive. There is no manual, not unlike many other open source projects. Figuring out how to get everything out of the cartridge involved a fair amount of trial and error as well as referencing several sites. The cartridge provides all you need to play games, but it requires just a little more work to bring it to its full potential compared to an EverDrive, so I will summarize how to get the most common functions working.

Basic Operation

The SC64 bootloader can load a menu program which allows you to load ROMs from an on-screen menu if sc64menu.n64 is on the root of your microSD card. The menu will display in 480i mode, there appears to be no 240p option as there is on the ED64.

Unlike an ED64, most of the functions of the cart beyond basic ROM loading are accessed not via cartridge menus but a command line utility called scdeployer64.exe. You will need to have the SC64 connected via a USB Type-C cable to your PC to access the cartridge via the utility. You do not need the cartridge to be plugged into an N64 or to have the console turned on to access the cartridge via USB.

The current firmware is sc64-firmware-v2.19.0.bin. In order to update the firmware from what comes from the factory, you must run the following command line with the utility and the firmware file in the same folder: 

sc64deployer firmware update sc64-firmware-v2.19.0.bin

To set the SC64's real time clock to your PC's time, use the following command:

sc64deployer set rtc

It is advisable to use the version of sc64deployer which matches the firmware version of the SC64. Check your sc64deployer's version with sc64deployer -V and the cartridge firmware version with sc64deployer info. I lost the display of my RTC time for a while because I used a version of sc64deployer earlier than the firmware in the SC64 to adjust the time after a few weeks without using the cartridge. Setting the time again with the matching version of sc64deployer resolved that issue.

The button on the back of the cartridge is programmable and as the cartridge comes from the factory it is used to swap 64DD disks, which I will describe below.

The firmware and the sc64deployer utility can be found here.

Menu Functions

The menu displays file names in a fixed width font and can show up to 44 characters on a line. Some No-intro filenames can be rather lengthy. You select a file with the A button and go back with the B button. You can navigate up and down a directory either by the analog stick or the D-pad. You can use the C-Up and C-Down buttons to navigate more quickly through directories.

When you press A, the screen will change to a ROM information page. If the game is recognized by the built-in database, it will show information about its cartridge and region. You can press A to load and run the ROM or B to go back. Pressing R allows you to Set the CIC Type, Set the Save Type or Set the TV Type. You should not have to change this if you are using the No-intro ROM set (and you should).

Pressing the Start button anywhere in the menu will bring up five settings options. Edit settings will show you the settings in the menu\config.ini file but to change those settings you must edit the .ini file with a text editor. Show system info will show you the cartridge's date and time, whether an Expansion, Controller or Rumble Pak is detected and which Joypads are detected. Show credits will show you the menu software version and its author and licensing information. Adjust RTC tells you to use the terminal program to adjust it and Show cart info does not show anything at this time.

Pressing the R buttons allows you to pull up another menu with three entries. Show entry properties will shows you basic information about a file. Delete selected entry does what it says it does and does not give you an "are you sure" prompt. Set current directory as default is useful if you want to test several games in a directory.

Running Games

The issues with certain games within the mainstream cartridge ROMs and older flash carts have been eliminated to the maximum extent possible with the SC64. It uses an Ultra CIC-based lockout chip so all known common CIC chips for NTSC and PAL found in retail N64 cartridges are supported. Most NTSC games use the NUS-6102 and most PAL games use the NUS-7101, games which use other CICs are listed here. Oddly, Star Fox uses NUS-6101 while its PAL version, Lylat Wars, uses NUS-7102.


Banjo Tooie, Donkey Kong 64 and Jet Force Gemini no longer require patches or cracks to bypass their copy protection detection mechanisms. Games which require every byte of their 64MiB ROM to be accessible, including Pokemon Stadium II and Biohazard II, work properly. Doubutsu no Mori (Animal Crossing) has a functional real-time clock. Dezaemon 3D's unique 786KBit SRAM save type is supported. Mario no Photopi's built-in SmartCard reader and Morita Shogi 64's built-in Modem are the only things modern flash carts do not support among regular licensed N64 cartridge games.

Games load quickly, it takes about 8 seconds to load the largest N64 games, which are 64MiB in size. There is a progress bar which travels across the screen as the game is loaded from the microSD card.

There is no need to press reset to write save games to the microSD card as there was on the old ED64. Pressing reset will always bring you to the flash cart menu, it does not reset the game. This behavior cannot be changed, unlike with an ED64. There is no apparent ability to restart the last game played or access a list of the last several games run, unlike the ED64.

Save files are stored in a \SAVES directory one level down from the directory in which the ROM was located. All save files, regardless of type, use the .sav extension on the SC64. ED64 save files can be used if the extension is renamed. ED64 uses .eep, .fla and .sra for EEPROM (4Kbit or 16Kbit), Flash and SRAM save file types.

The SC64 has a built-in database which has the CIC and Save Types for the licensed commercial set. It does not recognize translated or hacked ROMs, so you will need to set the Save Type and possibly the CIC manually for those. Otherwise you may not be able to save a game or the game may not run. Check the database for a game's save type. Use the No-intro Nintendo 64 ROMset in BigEndian format for minimal grief.

The Periphery

So once we have thoroughly explored the N64's licensed cartridge library, is there anything left to discover? The answer is "yes" and it lies in what I call "the periphery."

The periphery consists of three hardware platforms, the 64DD, the iQue Player and the Aleck 64. 

The 64DD was the removable disk drive add-on which was only released in Japan and attached to the expansion port on the bottom of the N64. It was not a major success and only 9 disk-based games or expansions plus a utility disk were released for the system.

The iQue Player was an N64 built into a controller and only released in China. Games would be purchased from a kiosk or download service and stored on special memory card. 14 games were localized and available for the device with one more game (The Legend of Zelda: Majora's Mask) being unreleased.

The Aleck 64 was an arcade board using N64 hardware. It was produced by Seta in cooperation with Nintendo and arcade cabinets using this board were only released in Japan. 10 games were released for the Aleck 64 and two more unreleased games are known to exist.

All three hardware platforms within the periphery require an Expansion Pak when their games are run with a flash cart. Each type requires its own section.

64DD

Unlike other flash carts, the SC64 can run 64DD disk images directly. Other flash carts require the images to be converted into a ROM with a game-specific patch. No-intro has a set of 64DD images, they use the .ndd extension. This excellent site here has several translated or partially translated 64DD disks. The 64DD's splash screen is one instance where the RTC functionality of the SC64 is immediately noticeable.

As indicated on that site, the SC64 has a method to load expansion disks for cartridge games. F-Zero  has an expansion disk and Dezaemon 3D had a prototype of a data disk which can be used to store  user creations. You can load the ROM and its data disk through the menu, press A to select the .z64 ROM file. then B to go back to the menu, navigate to and select the .ndd Disk file, then press R to Load with ROM.

Some 64DD software, such as the Mario Paint series, can access data on other disks. This must be handled by sc64deployer. On the command line you must specify an IPL file and all the disk images you wish to load. The IPL file is the "initial program load", the ROM which is included in the 64DD peripheral and provides software routines for the disk services. The 64DD No Intro set has them. You should only specify two disk images because once a one program loads data from another program, it will ask for its original disk to be reinserted. Here is a sample command:

sc64deployer 64dd "[BIOS] Nintendo 64DD IPL (Japan) (v1.2).z64" "Mario Artist - Paint Studio (Japan).ndd" "F-Zero X - Expansion Kit (Japan).ndd"

For the most reliable results, use the v1.2 Japanese IPL, it was the only version which was made public. Leave the terminal window open, you will see the program load the disk's LBAs as called for. When you get to the screen in Paint Studio which allows you to swap disks, press the button on the back of the SC64 twice (eject and insert) to cycle disks. If you are at the SC64's menu when you have run a command like this, you will need to reset or reboot the console. Exit the program with Ctrl + C and reboot the console to return to the SC64's menu.

Disks which use the Capture Cassette cartridge like the Mario Artist series will not be able to use that functionality because the flash cartridge occupies the slot that the Cassette Cartridge uses. Mario Artist Paint Studio supports the Game Boy Camera through the Transfer Pak, so you have that at least! The Mario Artist games support regular controllers as well as the rare N64 Mouse. The N64 Mouse can plug into Controller Port 2, so it will not interfere with navigating the SC64's menu with a regular controller. (The ball mouse is far from ideal for navigating through long directory listings). Only the Randnet service used the Randnet Keyboard and those are pretty expensive.

I have yet to mention the Modem Cartridge because that only connected to the Randnet service, which was shut down in 2001. Similarly, the Modem part of the Morita Shogi 64 cartridge only connected to a a Seta server, making the modem useless for its intended purpose once that service was shutdown. 

iQue Player

iQue Player games are encrypted as they were sold. There is a no-intro set called iQue - iQue (Decrypted) which you should download. Ignore the files with the (Manual) designation, the games are much larger.

The iQue Player used a save mechanism that was totally different to the Controller Pak and cartridge based saving methods of regular cartridge games. You can run most of the Decrypted iQue ROMs but if you want to save games, you need to patch them to restore that functionality. Zoinkity patched all but one of the iQue games. The only game he did not appear to patch, Yoshi's Story, does not progress past the iQue splash screen for me in the SC64.

Aleck 64

The Aleck 64 games need to be patched in order to run on flash carts. Zoinkity patched most of them too. Others patched them for EverDrive 64, search for those patches or patched ROMs. The original ROMs are found in the MAME set. Each game as patched has its own method of inserting a coin.

Other Features

The SC64 can show a background image behind the menu. The image must be a png file and can be located anywhere on the microSD card. Locate the file, press A and once it displays the menu will ask if you want to set the image to the background image. I could not find the required resolution for the file anywhere so I downloaded a 320x240 image of the Triforce from Ocarina of Time, scaled it to 640x480 and that worked fine.

The SC64 can also play mp3 files. It has a player that activates when you select an mp3 file. The player can pause, rewind and fast forward. I tried an mp3 I made using Audacity using a Preset Bit Rate Mode, Standard Quality and Fast Variable Speed and it played back fine.

A game's ROM information can show an image of its box art. The naming and formatting instructions for the png images can be found here as can a link to many images. You will probably have to create the "boxart" subdirectory.

If you wish to upload a game directly to the SC64, you can do so with or without a microSD card and regardless of whether the menu program is running. Use the utility with the command like the one shown:

sc64deployer upload "Super Mario 64 (Japan) (Rev 3) (Shindou Edition).z64" --save-type eeprom4k

The save types are none, eeprom4k, eeprom16k, sram, sram-banked, sram1m, flashram. You may optionally use --save [save file] to load a saved game. A nearly complete list of save types can be found here.

This will play the uploaded game from the cartridge after pressing reset or power cycling the console. To resume menu functionality, use this command:

sc64deployer reset

The English translation patch for Densha de Go! does not work 100% correctly with the SC64. With the patch applied, the timing counters in the game will not increment or decrement and the settings will not save. The unpatched ROM has no issue and the issue does not appear when running the patched game on my EverDrive 64 v2.0. However, the SC64's menu has no issue with the Train Controller. My ED64 with the Train Controller connected will make the menu go haywire and become unresponsive to a standard controller unless the throttle is positioned ever so precisely in between one of the speed notches. To be fair the patch was made years before the SC64 was released and it had to be updated for the ED64 X7. The author, Zoinkity, would have to update the patch again.

Recommended?

Do I recommend the SC64? As a flash cart it gets the job done but the experience is pretty barebones. The EverDrive-64 X7 is much more user friendly for the non-developer types for most things an N64 console can do. The ED64 X7 can copy data from and to Controller Paks, can load GameShark cheats, set RTC time from the menu, autopatch games using IPS/APS files and comes with a manual and can run NES ROMs via an FPGA-based NES core. If you do not believe those features are with the extra money and shipping costs or you really want to explore the 64DD library, then the SC64 comes highly recommended. I would note that the price of the cartridge at PhenomMod is currently listed at $95 + $5 for a shell but is out of stock. If stock is replenished at that price it the SC64 would be an incredible value.

No comments:

Post a Comment