[develop]cDocumentation manual (#198)

<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Reworks and splits the documentation.

## 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 -->
Improves documentation to be more readable.

## 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. -->

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

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Improvement (non-breaking change that adds a new feature)
- [ ] Bug fix (fixes an issue)
- [ ] Breaking change (breaking change)
- [x] 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! -->
- [ ] 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: GITHUB_USER <GITHUB_USER_EMAIL>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

Based on the comprehensive summary, here are the release notes:

- **New Features**
  - Added ROM history and favorites functionality
  - Introduced tabbed interface for file browsing
  - Implemented ROM information descriptions
  - Added support for ROM configuration overrides
  - Enhanced menu settings management

- **Documentation**
  - Expanded user guide and documentation
  - Added sections on ROM patches, controller PAKs, and emulator support
  - Improved flashcart and menu customization instructions

- **Chores**
  - Updated documentation structure
  - Refined code organization and naming conventions
  - Updated subproject references

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
Robin Jones 2025-01-12 23:15:27 +00:00 committed by GitHub
parent 2ac98b4c34
commit 9b7ef36a49
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
35 changed files with 316 additions and 104 deletions

View File

@ -1,11 +1,25 @@
Rolling release built from latest commit on main branch.
**Note**: the attached source code files may be out of date.
For the SummerCart64, use the `sc64menu.n64` file in the root of your SD card.
For the 64Drive, use the `menu.bin` file in the root of your SD card.
For the ares emulator, use the `N64FlashcartMenu.n64` file.
- For the SummerCart64, use the `sc64menu.n64` file in the root of your SD card.
- For the 64Drive, use the `menu.bin` file in the root of your SD card.
- For the ares emulator, use the `N64FlashcartMenu.n64` file.
# Release Notes 2024-12-30
## Release Notes 2025-01-10
- **Bug Fixes**
- Fixed menu display (PAL60) by reverted libdragon to a known working point and re-applying old hacks.
### Current known Issues
* The RTC UI requires improvement (awaiting UI developer).
* Menu sound FX may not work properly when a 64 Disk Drive is also attached (work around: turn sound FX off).
[Pre-release menu]:
* BETA_SETTING: PAL60 when using HDMI mods has regressed (awaiting libdragon fix).
* ALPHA_FEATURE: ED64 X Series detection does not occur properly (however this is not a problem as not tag released asset).
* ALPHA_FEATURE: ED64 V Series only supports loading ROMs (however this is not a problem as not tag released asset).
## Release Notes 2024-12-30
- **New Features**
- Introduced menu sound effects for enhanced user experience (the default is off).

12
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,12 @@
# Contributing to N64FlashcartMenu
This document is for people wanting to contribute to the implementation of N64FlashcartMenu.
This involves interacting with implementation changes that are proposed using [GitHub](https://github.com/) [pull requests](https://docs.github.com/pull-requests) to the [N64FlashcartMenu](https://github.com/Polprzewodnikowy/N64FlashcartMenu/) repository (which you're in right now).
As such, a GitHub account is recommended, which you can sign up for [here](https://github.com/signup).
Additionally this document assumes that you already know how to use GitHub and Git.
If that's not the case, we recommend learning about it first [here](https://docs.github.com/en/get-started/quickstart/hello-world).
**Help us by creating a PR.**

View File

@ -1002,7 +1002,7 @@ EXAMPLE_RECURSIVE = NO
# that contain images that are to be included in the documentation (see the
# \image command).
IMAGE_PATH =
IMAGE_PATH = ./docs/images
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program

106
README.md
View File

@ -1,25 +1,36 @@
![Build](https://github.com/polprzewodnikowy/N64FlashcartMenu/actions/workflows/build.yml/badge.svg)
![GitHub Org's stars](https://img.shields.io/github/stars/Polprzewodnikowy/N64FlashcartMenu)
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/Polprzewodnikowy/N64FlashcartMenu.svg)](http://isitmaintained.com/project/Polprzewodnikowy/N64FlashcartMenu "Average time to resolve an issue")
[![Percentage of issues still open](http://isitmaintained.com/badge/open/Polprzewodnikowy/N64FlashcartMenu.svg)](http://isitmaintained.com/project/Polprzewodnikowy/N64FlashcartMenu "Percentage of issues still open")
[![#yourfirstpr](https://img.shields.io/badge/first--timers--only-friendly-blue.svg)](https://github.com/Polprzewodnikowy/N64FlashcartMenu/CONTRIBUTING.md)
# N64 Flashcart Menu
An open source menu for N64 flashcarts.
An open source menu for N64 flashcarts and aims to support as many as possible. The menu is not affiliated with any partuclar flashcart and does not necessarily expose all capable firmware features.
**This project considers flashcart sellers that include this menu or copyrighted ROM's as part of their product offering as licence offenders which may result in future action.**
## Supported Flashcarts
## Flashcart Supported
This menu aims to support as many N64 flashcarts as possible. The current state is:
### Fully supported
### Supported
* SummerCart64
* 64Drive
### Work in Progress
* ED64
* ED64P
### Work in Progress (pre-release only)
* ED64 (X and V series)
* ED64P (clones)
### Not planned
* Doctor V64
* PicoCart
* DaisyDrive
## Current (notable) menu features
* Fully Open Source.
* Loads all known N64 games (including iQue and Aleck64 ROMs), even if they are byteswapped.
* Loads all known N64 games, even if they are byteswapped.
* Fully emulates the 64DD and loads 64DD disks (SummerCart64 only).
* Emulator support (NES, SNES, GB, GBC, SMS, GG, CHF) ROMs.
* N64 ROM box image support.
* N64 ROM box art image support.
* Background image (PNG) support.
* Comprehensive ROM save database (including homebrew headers).
* Comprehensive ROM information display.
@ -28,81 +39,20 @@ An open source menu for N64 flashcarts.
* Menu sound effects.
* N64 ROM autoload.
* ROM information descriptions.
* ROM history and favorites.
* ROM history and favorites (pre-release only).
## Documentation
* [Getting started guide](./docs/00_getting_started_sd.md)
* [Menu controls](./docs/01_menu_controls.md)
* [Menu customization](./docs/07_menu_customization.md)
* [Developer guide](./docs/99_developer_guide.md)
## Video showcase (as of Oct 12 2023)
[![N64FlashcartMenu Showcase](http://img.youtube.com/vi/6CKImHTifDA/0.jpg)](http://www.youtube.com/watch?v=6CKImHTifDA "N64FlashcartMenu Showcase (Oct 12 2023)")
Please take a moment to browse the current documentation:
[Index](./docs/00_index.md)
## Aims
* Support as many N64 FlashCarts as possible.
* Support as many N64 Flashcarts as possible.
* Be open source, using permissively licensed third-party libraries.
* Be testable, using unit and smoke tests in ares emulated environment.
* Be testable in an emulated environment (Ares).
* 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 Info descriptions
To add a ROM description (shown when loading a ROM), add a file with the content
```
[metadata]
description=This is the ROM description that does X Y Z.
```
The file line endings must use the linux `LF` endings only (CRLF is not supported) and is limited to 300 characters.
### 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.
The autoload setting is stored in `config.ini` and persists until changed. This feature may slightly increase boot time as the menu needs to check for the Start button state.
NOTE: To return to the menu, hold the joypad `Start` button while 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`.
**Warning**: Excluding the region ID may show the wrong boxart.
**Note**: For future support, boxart sprites should also include:
* `boxart_back.png`
* `boxart_top.png`
* `boxart_bottom.png`
* `boxart_left.png`
* `boxart_right.png`
* `gamepak_front.png`
* `gamepak_back.png`
As a starting point, here is a link to a boxart pack, that has `boxart_front.png`:
* [boxart](https://drive.google.com/file/d/1IpCmFqmGgGwKKmlRBxYObfFR9XywaC6n/view?usp=drive_link)
### Menu Settings
The Menu creates a `config.ini` file in `sd:/menu/` which contains various settings that are used and can be set within the menu.
If required, you can manually adjust the file on the SD card using your computer.
### Datel cheats
(Action Replay and GameShark codes)
Supported, but no GUI available (yet) to edit them.
* Support as many common mods and features as possible (flashcart dependent).
## Flashcart specific
@ -111,6 +61,8 @@ Supported, but no GUI available (yet) to edit them.
* Ensure the cart has the latest [firmware](https://github.com/Polprzewodnikowy/SummerCart64/releases/latest) installed.
* Download the latest `sc64menu.n64` file from the [releases](https://github.com/Polprzewodnikowy/N64FlashcartMenu/releases/) page, then put it in the root directory of your SD card.
![SC64 flashcart information](./docs/images/sc64-flashcart-information.png "example SC64 flashcart information")
### 64drive
* Ensure the cart has the latest [firmware](https://64drive.retroactive.be/support.php) installed.
@ -135,8 +87,8 @@ The aim is to reach feature parity with [Altra64](https://github.com/networkfusi
# Open source software and licenses used
* [libdragon](https://github.com/DragonMinded/libdragon) (UNLICENSE License)
## libraries
* [libdragon](https://github.com/DragonMinded/libdragon/tree/preview) (UNLICENSE License)
* [libspng](https://github.com/randy408/libspng) (BSD 2-Clause License)
* [mini.c](https://github.com/univrsal/mini.c) (BSD 2-Clause License)
* [minimp3](https://github.com/lieff/minimp3) (CC0 1.0 Universal)

35
docs/00_index.md Normal file
View File

@ -0,0 +1,35 @@
[..](README.md)
## User Guide
### General
- [Getting started](./10_getting_started_sd.md)
- [Menu controls](./11_menu_controls.md)
- [ROM configuration](./12_rom_configuration.md)
- [Datel Cheats](./13_datel_cheats.md)
- [ROM patches](./14_rom_patches.md)
- [Controller PAKs](./15_controller_paks.md)
- [Background Images](./16_background_images.md)
- [64DD](./17_64dd.md)
- [Emulators](./18_emulators.md)
- [Boxart](./19_gamepak_boxart.md)
- [Autoload N64 ROMs](./22_autoload_roms.md)
### Menus
- [File Browser](./31_file_browser.md)
- [Menu Settings](./32_menu_settings.md)
- [RTC Settings](./33_rtc_settings.md)
- [Menu Information](./35_menu_information.md)
- [Flashcart Information](./36_flashcart_information.md)
- [N64 Information](./37_n64_information.md)
### Other
- [MP3 player](./41_mp3_player.md)
- [Advanced customization](./61_advanced_customization.md)
- [Hardware mods](./62_hardware_mods.md)
#### Experimental Features
Subject to change
- [Experimental Features](./65_experimental.md)
### Developers
- [Developer guide](./99_developer_guide.md)
- [Contributing](https://github.com/Polprzewodnikowy/N64FlashcartMenu/blob/main/CONTRIBUTING.md)

View File

@ -1,10 +1,11 @@
[..](./00_index.md)
## Initial Setup of SD Card
### First Steps
Connect the SD card to your PC and ensure it is properly formatted to be compatible with your flashcart.
**WARNING:** Filenames are expected to be written in ASCII, with Western Europe characters fully compatible. Other Unicode characters, such as those from Eastern Europe, Russia, Asia or Middle East regions (to name just a few examples) are not fully supported and may not be displayed.
**Note:** It is advised to use ROM's in the Big Endian format. Although the menu auto converts them, the load time will be increased.
**Note:** It is advised to use ROM's in the Big Endian (default) format. Although the menu auto converts byteswapped ROM's, the load time will be increased.
**Note:** On macOS, if you have extracted ROM's from zips run `dot_clean -m /Volumes/SummerCart` to clear those awful dotfiles so they are not shown in the menu.
@ -13,31 +14,21 @@ Connect the SD card to your PC and ensure it is properly formatted to be compati
- An SD formatted with 128 kiB cluster size is recommended.
- Download the latest `sc64menu.n64` file from the [releases](https://github.com/Polprzewodnikowy/N64FlashcartMenu/releases/) page, then put it in the root directory of your SD card.
- Create a folder in the root of your SD card called `menu`.
- Place your ROM files on the SD card, **in any folder except `menu`**.
- Place your ROM files on the SD card, **in any folder except `menu`**.
#### Preparations for other supported flashcarts
- FAT32 recommended.
- An SD formatted with the default cluster size is recommended.
(TBW)
- Download the latest [menu](https://github.com/Polprzewodnikowy/N64FlashcartMenu/releases/) file specific for your flashcart and place it in the expected location.
### Emulator Support
Emulators should be added to the `/menu/emulators` directory on the SD card.
N64FlashcartMenu currently supports the following emulators and associated ROM file names:
- **NES**: [neon64v2](https://github.com/hcs64/neon64v2/releases) by *hcs64* - `neon64bu.rom`
- **SNES**: [sodium64](https://github.com/Hydr8gon/sodium64/releases) by *Hydr8gon* - `sodium64.z64`
- **Game Boy**/**GB Color**: [gb64](https://lambertjamesd.github.io/gb64/romwrapper/romwrapper.html) by *lambertjamesd* - `gb.v64`/`gbc.v64` ("Download Emulator" button)
- **SMS**/**GG**: [smsPlus64](https://github.com/fhoedemakers/smsplus64/releases) by *fhoedmakers* - `smsPlus64.z64`
- **Fairchild Channel F**: [Press-F-Ultra](https://github.com/celerizer/Press-F-Ultra/releases) by *celerizer* - `Press-F.z64`
see [here](./18_emulators.md)
### 64DD Disk Support
To load and run 64DD disk images, place the required 64DD IPL dumps in the `/menu/64ddipl` folder on the SD card.
For more details, follow [this guide on the 64dd.org website](https://64dd.org/tutorial_sc64.html).
See [here](./17_64dd.md)
#### So what would the layout of the SD card look like?

View File

@ -1,3 +1,4 @@
[..](./00_index.md)
## Menu Controls
### Additional Control Information
@ -6,9 +7,10 @@
Press either the `C-Up` or `C-Down` buttons to scroll by pages, rather than by elements.
#### N64FlashcartMenu settings
Press the `START` button on the browser screen to open the Settings window. From here you can edit some of the N64FlashcartMenu settings,
see information about either the console, the flashcart you are using or N64FlashcartMenu itself, and if your cart has Real-Time Clock (RTC) support,
you can also change its date and time.
Press the `START` button on the browser screen to open the Settings window.
![Browser context menu](./images/main-context-menu.png "Browser context menu")
From here you can edit some of the N64FlashcartMenu settings,
see information about either the console, the flashcart you are using or N64FlashcartMenu itself, and if your cart has Real-Time Clock (RTC) support, you can also change its date and time.
#### Browser options
Press the `R` button to open the Browser Options window. Here you can see a ROM's properties, delete it from your SD card or establish the default folder

View File

@ -0,0 +1,18 @@
[..](./00_index.md)
## ROM configuration
The menu allows overriding the ROM's default configuration that is provided from the internal database.
The internal database is contained within `rom_info.c`
If you override the defaults and want to go back to the default ones, delete the `<rom name>.ini` file.
### Overrideable types
#### CIC type
#### Save type
#### TV Region type
### Autoload

14
docs/13_datel_cheats.md Normal file
View File

@ -0,0 +1,14 @@
[..](./00_index.md)
## Datel Cheats
AKA InterAct (in certain regions)
The N64 supports the peripherals
- GameShark
- Action Replay
It is not advised to connect the physical peripheral with most flashcarts.
The menu has underlying support for these codes (when using an expansion pak), but is not yet exposed via the menu graphical user interface.
Check [Pull Requests](https://github.com/Polprzewodnikowy/N64FlashcartMenu/pulls) for work towards it.

7
docs/14_rom_patches.md Normal file
View File

@ -0,0 +1,7 @@
[..](./00_index.md)
## ROM patches
Not yet supported, although you can use various online utilities.
Check [Pull Requests](https://github.com/Polprzewodnikowy/N64FlashcartMenu/pulls) for work towards it.
The aim is to support APS/IPS/BPS/XDELTA patches.

View File

@ -0,0 +1,5 @@
[..](./00_index.md)
## Controller Paks
Not yet supported.
Check [Pull Requests](https://github.com/Polprzewodnikowy/N64FlashcartMenu/pulls) for work towards it.

View File

@ -0,0 +1,5 @@
[..](./00_index.md)
## Background images
### Adding a background image
Add an image to the SD card. When browsing the menu, select and load the image and then respond to the dialogue message.

9
docs/17_64dd.md Normal file
View File

@ -0,0 +1,9 @@
[..](./00_index.md)
## 64DD Disk support
Specific flashcarts (such as the SummerCart64) support the ability to fully emulate the original 64DD.
**Note**: It is not yet possible to swap 64DD disks via the menu.
To load and run 64DD disk images, place the required 64DD IPL dumps in the `/menu/64ddipl` folder on the SD card.
For more details, follow [this guide on the 64dd.org website](https://64dd.org/tutorial_sc64.html).

16
docs/18_emulators.md Normal file
View File

@ -0,0 +1,16 @@
[..](./00_index.md)
## Emulators
The menu supports mutiple emulators that are compatible with the N64.
Current Emulator support includes (NES, SNES, GB, GBC, SMS, GG, CHF) ROMs.
Emulators should be added to the `/menu/emulators` directory on the SD card.
N64FlashcartMenu currently supports the following emulators and associated ROM file names:
- **NES**: [neon64v2](https://github.com/hcs64/neon64v2/releases) by *hcs64* - `neon64bu.rom`
- **SNES**: [sodium64](https://github.com/Hydr8gon/sodium64/releases) by *Hydr8gon* - `sodium64.z64`
- **Game Boy**/**GB Color**: [gb64](https://lambertjamesd.github.io/gb64/romwrapper/romwrapper.html) by *lambertjamesd* - `gb.v64`/`gbc.v64` ("Download Emulator" button)
- **SMS**/**GG**: [smsPlus64](https://github.com/fhoedemakers/smsplus64/releases) by *fhoedmakers* - `smsPlus64.z64`
- **Fairchild Channel F**: [Press-F-Ultra](https://github.com/celerizer/Press-F-Ultra/releases) by *celerizer* - `Press-F.z64`
If you are an emulator developer, take a look at this [template pull request](https://github.com/Polprzewodnikowy/N64FlashcartMenu/pull/178)

31
docs/19_gamepak_boxart.md Normal file
View File

@ -0,0 +1,31 @@
[..](./00_index.md)
## Gamepak Boxart
### GamePak boxart images
To use N64 GamePak boxart images, place PNG files within the `sd:/menu/boxart/` folder.
#### Supported images
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`.
**Warning**: Excluding the region ID may show the wrong boxart.
**Note**: For future support, boxart sprites should also include:
* `boxart_back.png`
* `boxart_top.png`
* `boxart_bottom.png`
* `boxart_left.png`
* `boxart_right.png`
* `gamepak_front.png`
* `gamepak_back.png`
As a starting point, here is a link to a boxart pack, that has `boxart_front.png`:
* [third party boxart link](https://drive.google.com/file/d/1IpCmFqmGgGwKKmlRBxYObfFR9XywaC6n/view?usp=drive_link)

7
docs/22_autoload_roms.md Normal file
View File

@ -0,0 +1,7 @@
[..](./00_index.md)
## Autoloading ROMs
**Note** using byteswapped ROMs will slowdown the ROM load.
### 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 the joypad `Start` button while powering on the console.

39
docs/31_file_browser.md Normal file
View File

@ -0,0 +1,39 @@
[..](./00_index.md)
## File Browser
The File Browser allows you to navigate and manage files on your N64 flashcart. Below are the key features and instructions on how to use the File Browser effectively.
### Features
- **File and folder Navigation**: Browse through directories and files on your flashcart.
- **File Operations**: Perform operations such as delete and show properties.
- **File Information**: View detailed information about each file, including size and date modified.
- **Load Files**: Load files from the file system.
- **Switching tabs (Pre-release only)**: Switch between the file browser, favorites and history tabs.
### Usage Instructions
1. **Navigating Files**:
- Use the directional Up and Down buttons (C-Up and C-Down for fast scrolling) to move through the list of files and directories.
- Press the `A` button to open a directory or load a supported file.
2. **Performing File Operations**:
- Highlight the file or directory you want to operate on.
- Press the `R` button to open the operations menu.
- Select the desired operation (delete, show properties, set as default) and follow the on-screen prompts.
3. **Viewing Settings menu**:
- Press the `Z` button to display the menu.
4. **Switching tabs (Pre-release only)**:
- Press the `C-Right` and `C-Left` buttons to switch between the file browser, favorites and history tabs.
### Tips
- Regularly back up important files to avoid accidental loss.
- Familiarize yourself with the button layout to navigate and manage files efficiently.
### Troubleshooting
- If a file operation fails, ensure there is enough space on the SD card and that the file is not write-protected.
- For any issues not covered in this guide, refer to the troubleshooting section in the main manual or contact support.

16
docs/32_menu_settings.md Normal file
View File

@ -0,0 +1,16 @@
[..](./00_index.md)
## Menu Settings
The Menu creates a `config.ini` file in `sd:/menu/` which contains various settings that are used and can be set within the menu.
If required, you can manually adjust the file on the SD card using your computer.
### Show Hidden Files
The default is off.
### Use Save Folders
The default is on.
ON: ROM saves are saved in a seperate subfolder (called saves).
OFF: ROM saves are saved alongside the ROM file.
### Sound effects
The menu has default sound effects to improve the experience that can be turned on in the settings menu (the default is off).

6
docs/33_rtc_settings.md Normal file
View File

@ -0,0 +1,6 @@
[..](./00_index.md)
## RTC settings
![RTC information](./images/menu-information.png "RTC Information")
The menu has the ability to set the RTC if the flashcart supports it.
Press `A` to change the date and time.

View File

@ -0,0 +1,3 @@
[..](./00_index.md)
## Menu information
![N64FlashcartMenu menu information](./images/menu-information.png "N64FlashcartMenu menu information")

View File

@ -0,0 +1,5 @@
[..](./00_index.md)
## Flashcart Information
This screen shows the information gathered from the flashcart.
![example flashcart information](./docs/images/sc64-flashcart-information.png "example flashcart information")

View File

@ -0,0 +1,4 @@
[..](./00_index.md)
## N64 Information
![Example N64 system information](./images/system-information.png "Example N64 system information")

3
docs/41_mp3_player.md Normal file
View File

@ -0,0 +1,3 @@
[..](./00_index.md)
### MP3 Player
The menu is able to play loaded MP3 files.

View File

@ -1,4 +1,5 @@
## Menu Customization
[..](./00_index.md)
## Advanced Menu Customization
### Customizing the font
Add a `font64` file to the root directory called "custom.font64". You can build a font64 file with the `libdragon` tools.

5
docs/62_hardware_mods.md Normal file
View File

@ -0,0 +1,5 @@
[..](./00_index.md)
## N64 Hardware Modifications
The following known N64 modifications are supported:
- PixelFX HDMI Game ID (works out the box)

11
docs/65_experimental.md Normal file
View File

@ -0,0 +1,11 @@
[..](./00_index.md)
## Experimental features
These features are subject to change:
### ROM Info descriptions (pre-release only)
To add a ROM description (shown when loading a ROM), add a file with the content
```
[metadata]
description=This is the ROM description that does X Y Z.
```
The file line endings must use the linux `LF` endings only (CRLF is not supported) ASCII characters only and is limited to 300 characters.

View File

@ -1,3 +1,4 @@
[..](./00_index.md)
## Developer documentation
You can use a dev container in VSCode to ease development.

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

View File

@ -1,4 +1,4 @@
# 64drive developer notes
## 64drive developer notes
### Official documentation

View File

@ -1,4 +1,4 @@
# SummerCart64 developer notes
## SummerCart64 developer notes
### Official documentation

View File

@ -82,7 +82,7 @@ static void menu_init (boot_params_t *boot_params) {
.width = 640,
.height = 480,
.interlaced = INTERLACED ? INTERLACE_HALF : INTERLACE_OFF,
.pal60 = menu->settings.pal60_enabled,
.pal60 = menu->settings.pal60_enabled
};
display_init(resolution, DEPTH_16_BPP, 2, GAMMA_NONE, INTERLACED ? FILTERS_DISABLED : FILTERS_RESAMPLE);
display_set_fps_limit(FPS_LIMIT);