Universal N64 flashcart menu for wide variety of devices
Go to file
Fazana 2116f6e26b
Add support for inputs from controller ports 2-4 (#141)
<!--- Provide a general summary of your changes in the Title above -->
Title sums it up

## Description
<!--- Describe your changes in detail -->
Adds some extra logic in the controller polling to read from ports 2-4,
letting those controllers input on the menu.

## Motivation and Context
<!--- What does this sample do? What problem does it solve? -->
<!--- If it fixes/closes/resolves an open issue, please link to the
issue here -->
Port 1 no longer feels alone in the dark, cold world of menu selection.

## How Has This Been Tested?
<!-- (if applicable) -->
<!--- Please describe in detail how you tested your sample/changes. -->
<!--- Include details of your testing environment, and the tests you ran
to -->
<!--- see how your change affects other areas of the code, etc. -->
Same method I used for libdragon's error screen which had the same
issue. Tested on a system with four controllers inserted.

## Screenshots
<!-- (if appropriate): -->

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Improvement (non-breaking change that adds a new feature)
- [ ] Bug fix (fixes an issue)
- [ ] Breaking change (breaking change)
- [ ] Documentation Improvement
- [ ] Config and build (change in the configuration and build system,
has no impact on code or features)

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes
that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.

<!--- It would be nice if you could sign off your contribution by
replacing the name with your GitHub user name and GitHub email contact.
-->
Signed-off-by: FazanaJ <GITHUB_USER_EMAIL>

---------

Co-authored-by: Robin Jones <networkfusion@users.noreply.github.com>
2024-09-16 22:48:28 +02:00
.devcontainer Use stdio calls for file/directory interaction instead of fatfs (#95) 2024-04-24 02:45:09 +02:00
.github Remove individual tag 2024-08-06 13:54:51 +01:00
assets Add sound effects (#108) 2024-06-05 22:04:25 +02:00
docs Add support for inputs from controller ports 2-4 (#141) 2024-09-16 22:48:28 +02:00
filesystem Use stdio calls for file/directory interaction instead of fatfs (#95) 2024-04-24 02:45:09 +02:00
libdragon@e1eb9283e6 Update libdragon 2024-08-30 21:02:59 +01:00
src Add support for inputs from controller ports 2-4 (#141) 2024-09-16 22:48:28 +02: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 Improve documentation (#128) 2024-08-04 17:56:54 +01: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 Fix font ellipsis (#115) 2024-06-29 18:22:05 +01:00
README.md 64dd & Japanese covers (#126) 2024-08-06 13:20:41 +01: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.

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:

ROM Boxart

To use boxart, place PNG files in the /menu/boxart folder on the SD card with the following dimensions:

  • Standard covers: 158x112
  • 64DD covers: 129x112
  • Japanese covers: 112x158

Each file must be named according to the 2 letter ROM ID, or 3 letter ROM ID including media type. i.e. for GoldenEye 2 letters, this would be GE.png. i.e. for GoldenEye 3 letters, this would be NGE.png. You can download these boxart packs:

American Boxart

European Boxart

64DD Boxart

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 & ED64P

Currently not supported, but work is in progress (See PR's).

The aim is to replace Altra64 and ED64-UnofficialOS.

Open source software and licenses used

Sounds

See License for the following sounds: