diff --git a/README.md b/README.md index ad9ff803..d75ef60c 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,8 @@ +![Build](https://github.com/polprzewodnikowy/N64FlashcartMenu/actions/workflows/build.yml/badge.svg) + # N64 Flashcart Menu An open source menu for N64 flashcarts. -## 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. - ## Current (notable) menu features * Fully Open Source. @@ -21,48 +16,33 @@ An open source menu for N64 flashcarts. * Real Time Clock support. * Music playback (MP3). -## Video showcase (as of Oct 12 2023) + +### 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)") + +## 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. + + ## Getting started - -### 64drive -Ensure the cart has the latest [firmware](https://64drive.retroactive.be/support.php) installed. -Download the latest `menu.bin` file from the releases page, then put it in the root directory of your SD card. - -### SC64 -Ensure the cart has the latest [firmware](https://github.com/Polprzewodnikowy/SummerCart64/releases/latest) installed. -Download the latest `sc64menu.n64` file from the releases page, then put it in the root directory of your SD card. - -#### 64DD disk support -For the ability to load and run 64DD disk images, you need to add the folder `/menu/64ddipl` on the SD card. -Download and add the relevant ipl files and rename them before adding them to the folder: -- `NDDE0.n64` the US Prototype IPL can be downloaded from [here](https://64dd.org/dumps/64DD_IPL_US_MJR.n64) -- `NDXJ0.n64` the JPN Development IPL can be downloaded from [here](https://64dd.org/dumps/64DD_IPL_DEV_H4G.n64) -- `NDDJ2.n64` the JPN Retail IPL can be downloaded from [here](https://64dd.org/dumps/N64DD_IPLROM_(J).zip) - -**Note:** to load an expansion disk (e.g. F-Zero X) browse to the N64 ROM and load it (but not start it) and then browse to the DD expansion file and press the `R` button. - -### ED64 -Download the `ED64.v64` ROM from the latest action run assets and place it in the `/ED64` folder. - -**Untested** The aim is to replace [ED64-UnofficialOS](https://github.com/n64-tools/ED64-UnofficialOS-binaries). - -### ED64P -Download the `ED64P.v64` ROM from the latest action run assets and place it in the `/ED64P` folder. +Using your PC, insert the SD card and ensure it is formatted for compatibility (We recommend FAT32 in most instances). -### Common to all flashcarts - -#### ROM Boxart +### ROM Boxart To use boxart, you need to place png files of size 158x112 in the folder `/menu/boxart` on the SD card. 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`. A known set of PNG files using 2 letter ID's can be downloaded [here](https://mega.nz/file/6cNGwSqI#8X5ukb65n3YMlGaUtSOGXkKo9HxVnnMOgqn94Epcr7w). -#### Emulator support + +### Emulator support Emulators should be added to the `/menu/emulators` directory on the SD card. Menu currently supports the following emulators and associated ROM file names: @@ -72,8 +52,36 @@ Menu currently supports the following emulators and associated ROM file names: - **Sega Master System** / **Sega Game Gear** / **Sg1000**: [TotalSMS](https://github.com/ITotalJustice/TotalSMS) - `TotalSMS.z64` (Currently broken) +### SC64 Specific +- Ensure the cart has the latest [firmware](https://github.com/Polprzewodnikowy/SummerCart64/releases/latest) installed. +- Download the latest `sc64menu.n64` file from the releases page, then put it in the root directory of your SD card. + +##### 64DD disk support +For the ability to load and run 64DD disk images, you need to add the folder `/menu/64ddipl` on the SD card. +Download and add the relevant ipl files and rename them before adding them to the folder: +- `NDDE0.n64` the US Prototype IPL can be downloaded from [here](https://64dd.org/dumps/64DD_IPL_US_MJR.n64) +- `NDXJ0.n64` the JPN Development IPL can be downloaded from [here](https://64dd.org/dumps/64DD_IPL_DEV_H4G.n64) +- `NDDJ2.n64` the JPN Retail IPL can be downloaded from [here](https://64dd.org/dumps/N64DD_IPLROM_(J).zip) + +Note: to load an expansion disk (e.g. F-Zero X) browse to the N64 ROM and load it (but not start it) and then browse to the DD expansion file and press the `R` button. + + +### 64drive Specific +- Ensure the cart has the latest [firmware](https://64drive.retroactive.be/support.php) installed. +- Download the latest `menu.bin` file from the releases page, then put it in the root directory of your SD card. + + +### ED64 & ED64P Specific +#### ED64 +Download the `ED64.v64` ROM from the latest action run assets and place it in the `/ED64` folder. + +**Untested** The aim is to replace [ED64-UnofficialOS](https://github.com/n64-tools/ED64-UnofficialOS-binaries). + +#### ED64P +Download the `ED64P.v64` ROM from the latest action run assets and place it in the `/ED64P` folder. + + # Developer documentation -**Work in progress!** You can use a dev container in VSCode to ease development. @@ -84,7 +92,7 @@ You can use a dev container in VSCode to ease development. * Extract and place `sc64deployer.exe` in the `tools/sc64` directory. Make sure that your firmware is compatible (currently v2.17.0+) -See: https://github.com/Polprzewodnikowy/SummerCart64/blob/v2.17.0/docs/00_quick_startup_guide.md#firmware-backupupdate +See: [here](https://github.com/Polprzewodnikowy/SummerCart64/blob/v2.17.0/docs/00_quick_startup_guide.md#firmware-backupupdate) #### From the devcontainer diff --git a/libdragon b/libdragon index 72a313d9..4b38fd56 160000 --- a/libdragon +++ b/libdragon @@ -1 +1 @@ -Subproject commit 72a313d987ed8e0d78f921a16c58b367ffe9f56d +Subproject commit 4b38fd5618007e7ed9040107d0f7e52f2de81a22 diff --git a/src/libs/mini.c b/src/libs/mini.c index f713e3c9..6229658b 160000 --- a/src/libs/mini.c +++ b/src/libs/mini.c @@ -1 +1 @@ -Subproject commit f713e3c98ee2340a90334da6084c34ec2109a7e6 +Subproject commit 6229658b9d275fb760bcee119104bdbd7873536e diff --git a/src/libs/miniz b/src/libs/miniz index 9ae305f6..18795fa6 160000 --- a/src/libs/miniz +++ b/src/libs/miniz @@ -1 +1 @@ -Subproject commit 9ae305f6e109f8f1fbd2130458f1ee6197269b3b +Subproject commit 18795fa61e590521381ba9e1fa4a4ab362b095f6 diff --git a/src/menu/settings.c b/src/menu/settings.c index bb85a108..658151a5 100644 --- a/src/menu/settings.c +++ b/src/menu/settings.c @@ -68,7 +68,7 @@ void settings_save (settings_t *settings) { // mini_set_bool(ini, "menu_beta_flag", "rumble_enabled", init.rumble_enabled); // mini_set_bool(ini, "menu_beta_flag", "auto_firmware_update_enabled", init.auto_firmware_update_enabled); - mini_save(ini); + mini_save(ini, MINI_FLAGS_SKIP_EMPTY_GROUPS); mini_free(ini); }