Universal N64 flashcart menu for wide variety of devices
Go to file
2024-11-11 17:57:55 +00:00
.devcontainer Update docs for newer firmware (#143) 2024-09-30 22:21:39 +01:00
.github Updated doxygen action version 2024-10-25 19:36:04 +01:00
assets Add joypad images (#156) 2024-11-10 00:48:55 +00:00
docs Update 99_developer_guide.md 2024-10-23 16:12:49 +01:00
filesystem Use stdio calls for file/directory interaction instead of fatfs (#95) 2024-04-24 02:45:09 +02:00
libdragon@0c4e388851 Update libdragon 2024-11-11 12:11:30 +00:00
src Merge branch 'develop' into ed64-xseries 2024-11-11 17:57:55 +00:00
tools/sc64 Moved assets to the DragonFS 2023-12-08 19:49:50 +01:00
.clang-format clang-format WIP 2024-04-26 23:04:19 +02:00
.gitattributes Mark src/libs folder as vendored code 2023-07-26 12:43:18 +02:00
.gitignore Add joypad images (#156) 2024-11-10 00:48:55 +00:00
.gitmodules Use stdio calls for file/directory interaction instead of fatfs (#95) 2024-04-24 02:45:09 +02:00
Doxyfile Improve documentation (#128) 2024-08-04 17:56:54 +01:00
localdeploy.bat Added USB debug commands handling + file_get_sectors refactor 2023-09-04 21:09:46 +02:00
Makefile Merge branch 'develop' into ed64-xseries 2024-11-11 17:57:55 +00:00
README.md Add basic flashcart support for V-Series ED64 2024-11-07 22:31:01 +00:00
remotedeploy.sh Added USB debug commands handling + file_get_sectors refactor 2023-09-04 21:09:46 +02:00

Build

N64 Flashcart Menu

An open source menu for N64 flashcarts.

Supported Flashcarts

Fully supported

  • SummerCart64
  • 64Drive

Work in Progress

  • ED64
  • ED64P

Current (notable) menu features

  • Fully Open Source.
  • Loads all known N64 games (including iQue and Aleck64 ROMs (even if they are byteswapped)).
  • Fully emulates the 64DD and loads 64DD disks (SummerCart64 only).
  • Emulator support (NES, SNES, GB, GBC) ROMs.
  • N64 ROM box image support.
  • Background image (PNG) support.
  • Comprehensive ROM save database (including HomeBrew headers).
  • Comprehensive ROM information display.
  • Real Time Clock support.
  • Music playback (MP3).
  • Menu sound effects.
  • N64 ROM autoload.

Documentation

Video showcase (as of Oct 12 2023)

N64FlashcartMenu Showcase

Aims

  • Support as many N64 FlashCarts as possible.
  • Be open source, using permissive licensed third party licensed libraries.
  • Be testable, using unit and smoke tests in ares emulated environment.
  • Encourage active development from community members and N64 FlashCart owners.
  • Support as many common mods and features as possible.

Experimental features

These features are subject to change:

N64 ROM autoload

To use the autoload function, while on the N64 ROM information display, press the R button on your joypad and select the Set ROM to autoload option. When you restart the console, it will now only load the selected ROM rather than the menu. NOTE: to return to the menu, hold joypad start button whilst powering on the console.

GamePak sprites

To use N64 GamePak sprites, place PNG files within the sd:/menu/boxart/ folder.

Supported sprites

These must be PNG files that use the following dimensions:

  • Standard N64 GamePak boxart sprites: 158x112
  • Japanese N64 GamePak boxart sprites: 112x158
  • 64DD boxart sprites: 129x112

They will be loaded by directories using each character (case-sensitive) of the full 4 character Game Code (as identified in the menu ROM information). i.e. for GoldenEye NTSC USA (NGEE), this would be sd:/menu/boxart/N/G/E/E/boxart_front.png. i.e. for GoldenEye PAL (NGEP), this would be sd:/menu/boxart/N/G/E/P/boxart_front.png.

To improve compatibility between regions (as a fallback), you may exclude the region ID (last matched directory) for GamePaks to match with 3 letter IDs instead: i.e. for GoldenEye, this would be sd:/menu/boxart/N/G/E/boxart_front.png.

Note1: Excluding the region ID may show the wrong boxart. Note2: For future support, boxart sprites should also include: boxart_back.png, boxart_top.png, boxart_bottom.png, boxart_left.png, boxart_right.png.

As a starting point, here is a link to a boxart pack following the new structure, including boxart_front.png and failback images:

Compatibilty mode

If you cannot yet satisfy the correct boxart layout, The menu still has deprecated support for filenames containing the Game ID.

Note: This will add a noticeable delay for displaying parts of the menu.

Each file must be named according to the 2,3 or 4 letter GamePak ID (matched in this order). i.e.

  • for GoldenEye 4 letters, this would be sd:/menu/boxart/NGEE.png and/or sd:/menu/boxart/NGEP.png.
  • for GoldenEye 3 letters, this would be sd:/menu/boxart/NGE.png.
  • for GoldenEye 2 letters, this would be sd:/menu/boxart/GE.png.

As a starting point, here are some links to boxart packs:

Menu Settings

The Menu creates a config.ini file in sd:/menu/ which contains various settings that are used by the menu. If required, you can manually adjust the file on the SD card using your computer.

Flashcart specific

SC64

  • Ensure the cart has the latest firmware installed.
  • Download the latest sc64menu.n64 file from the releases page, then put it in the root directory of your SD card.

64drive

  • Ensure the cart has the latest firmware installed.
  • Download the latest menu.bin file from the releases page, then put it in the root directory of your SD card.

ED64 - WIP - UNTESTED AND UNSUPPORTED - USE AT OWN RISK

Currently not supported, but work is in progress (See PR's). NOTE: The menu may be able to load ROM's but not perform saves and may break existing ones..

ED64 (Vseries)

The aim is to reach feature parity with ED64-UnofficialOS / ED64-OfficialOS. Download the OS64.v64 ROM from the latest [action run - assets] and place it in the /ED64 folder.

ED64 (X series)

X Series support is currently awaiting fixes, in the meantime use the official OS instead.

ED64 (P clone)

Download the OS64P.v64 ROM from the latest [action run - assets] and place it in the /ED64P folder. The aim is to reach feature parity with Altra64

Open source software and licenses used

Sounds

See License for the following sounds: