588 Commits

Author SHA1 Message Date
Robin Jones
de1b8dac4b Update boot.c
Improve docs
(generated by coderabbit)
2025-10-07 23:02:05 +01:00
Robin Jones
bfb4e22e6c Update README.md
Add links to repo licenses.
2025-10-07 22:42:16 +01:00
Robin Jones
f1d3f714fa Improve docs for compatibility between release and pre-release. 2025-10-07 21:39:25 +01:00
Robin Jones
e435b2dc51 Update build.yml
Change branch for doc build to use pre-release by default.
This needs to keep in-step with the release anyway.
2025-10-07 20:51:50 +01:00
Robin Jones
6fd06dfe5d Update 19_gamepak_boxart.md
Minor fixes
2025-10-07 19:30:08 +01:00
Robin Jones
a9d6a57572 Update file_info.c
Fix: populate info after a successful stat() call.
2025-10-05 23:39:15 +01:00
Robin Jones
4fd1ff64e4 fix yaml line endings
Use LF (rather than CRLF)

use lf for yml
2025-10-05 23:18:04 +01:00
Robin Jones
21a72d2393 Update cpakfs_utils.h
Wrap multiplication
2025-10-05 23:08:45 +01:00
Robin Jones
60e50d1a4d Update 32_menu_settings.md 2025-10-05 22:59:33 +01:00
Robin Jones
8904e4a488 Update README.md
Add Zip and CPak to features.
2025-10-05 22:45:00 +01:00
Robin Jones
a9c33f426b Update libdragon submodule and remove C0_STATUS macros in boot.c (#277)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Removes C0 defines from `boot.c`.

## 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 -->
Moving to the latest libdragon preview caused build errors.

## 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)
- [ ] Documentation Improvement
- [x] 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.


You agree with the license terms and that other license types may be
granted with permission of the original `N64FlashcartMenu` project
license holders.

<!--- 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

* **Chores**
* Updated an internal dependency to the latest revision with no
functional impact.

* **Refactor**
* Cleaned up low-level startup code by removing unused definitions to
reduce maintenance overhead; no changes to behavior or configuration.

No user-facing features, settings, or APIs were added or modified in
this release.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-05 22:28:57 +01:00
Robin Jones
811e82f743 Update cpakfs_manager.c
Further improve strings
2025-10-05 21:15:22 +01:00
Robin Jones
62b54a3de3 Improve cpak doc
Add a screenshot.
2025-10-05 20:56:16 +01:00
Robin Jones
398c77632b Update cpakfs_manager.c (#276)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Minor improvements to Controller Pak strings.

## 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 -->
dont state the obvious.

## 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: -->
- [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! -->
- [ ] 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.


You agree with the license terms and that other license types may be
granted with permission of the original `N64FlashcartMenu` project
license holders.

<!--- 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>
2025-10-05 20:31:31 +01:00
Robin Jones
b418f6f404 Update 15_controller_paks.md
Requires further improvements.
2025-10-05 18:55:08 +01:00
Robin Jones
0715263a61 Update CHANGELOG.md
Update CHANGELOG.md
2025-10-05 18:10:13 +01:00
LuEnCam
e932bc4b2b [develop] Controller Pak settings option added (#268)
## Description
A new setting to the N64FlashcartMenu has been added: the controller pak
settings menu.

## Motivation and Context
A lot of users wanted to have the ability to dump/restore and list their
controller pak save files. I made a tool a while ago that was doing that
and people motivated me to integrate it in this menu.

## How Has This Been Tested?
During it's development, multiple versions of the ROM menu were shared
and tested in the N64Brew Discord.

## Screenshots
<img width="627" height="468" alt="img_1"
src="https://github.com/user-attachments/assets/14a38480-97b2-45de-b312-ddfaf2c1728c"
/>
<img width="616" height="461" alt="img_2"
src="https://github.com/user-attachments/assets/9d4ef469-3beb-4944-9cb0-5014f19764ac"
/>


## Types of changes
- [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:
- [ ] My code follows the code style of this project.
- [x] 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.


You agree with the license terms and that other license types may be
granted with permission of the original `N64FlashcartMenu` project
license holders.

Signed-off-by: LuEnCam


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

## Summary by CodeRabbit

- New Features
- Controller Pak manager: mount/status, list notes, dump all or single
notes, delete, format, and copy with confirmations and progress.
- Restore workflows: restore full Controller Pak dumps and individual
note dumps to a selected controller.
  - Browser: new “Controller Pak manager” entry in Settings.
- File Info: detects Controller Pak dump/note files and offers
context-aware “Restore” actions.

- UI
- Updated action bars and messages; added contributor credit for the
Controller Pak manager.

- Chores
  - Ignore Windows executables; updated a dependency reference.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Robin Jones <networkfusion@users.noreply.github.com>
2025-10-05 17:53:32 +01:00
Robin Jones
a1ca3f4878 Update libdragon 2025-10-03 22:59:46 +01:00
Vices
0c792f99cd extract_file: Show modified time and set it on extracted files (#275)
## Description
This PR implements missing features due to the absence of a `utime()`
implementation in libdragon.

## Motivation and Context
Not all files were last modified in 1970.

## How Has This Been Tested?
I can't currently test the change due to broken in joypad input in
libdragon.

## Screenshots
<!-- (if appropriate): -->
<img width="723" height="718" alt="image"
src="https://github.com/user-attachments/assets/ce227a0d-013e-4548-bede-89203f2df398"
/>


## 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)
- [x] Bug fix (fixes an issue)
- [ ] Breaking change (breaking change)
- [ ] Documentation Improvement
- [x] 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.


You agree with the license terms and that other license types may be
granted with permission of the original `N64FlashcartMenu` project
license holders.

Co-authored-by: Robin Jones <networkfusion@users.noreply.github.com>
2025-10-03 13:56:15 +01:00
Robin Jones
9d15e64022 Update libdragon 2025-10-03 12:54:34 +01:00
Robin Jones
4977dc31d8 Update libdragon 2025-10-03 12:14:40 +01:00
Robin Jones
ea46b47cdd Update CHANGELOG.md
Add Zip archive support
2025-09-27 21:01:34 +01:00
Vices
d516f37eb9 [develop] browser: Add support for browsing and extracting zip files (#273)
## Description
This PR allows the browser to open ZIP files as directories and extract
files from the archive. For simplicity ZIP archives are treated as flat
directories with each entry simply showing the full folder hierarchy.
However the appropriate folder structure is still created when
extracting a file from a subfolder in the ZIP.

## Motivation and Context
Sometimes you might put a zipped ROM on your SD card when not paying
attention. Rather than having to put the SD card back into your PC you
can just extract it using your N64 instead.

## How Has This Been Tested?
I've tested it by extracting various files from `sc64-extra-v2.20.2.zip`
to test extracting files with subfolders.
I've also created my own test zip to test empty folders and file
comments.

## Screenshots
<img width="640" height="480" alt="screenshot"
src="https://github.com/user-attachments/assets/f4599904-a698-4b8f-b2d9-a4c28ae78b00"
/>

<img width="640" height="480" alt="screenshot"
src="https://github.com/user-attachments/assets/57d3ada2-a928-4a36-95c1-caca126b7012"
/>

## Types of changes
- [x] Improvement (non-breaking change that adds a new feature)
- [ ] Bug fix (fixes an issue)
- [ ] Breaking change (breaking change)
- [x] Documentation Improvement
- [x] Config and build (change in the configuration and build system,
has no impact on code or features)

## Checklist:
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.


You agree with the license terms and that other license types may be
granted with permission of the original `N64FlashcartMenu` project
license holders.


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

## Summary by CodeRabbit

- New Features
- Browse ZIP archives in the file browser, view contents, and extract
individual files with real-time progress and clear error messages.
- Archive-aware navigation and context actions (open archive, show entry
properties, extract).
- Detailed entry information screen (size, compression, directory/file
status, encryption, comments).
- Style
- Distinct styling for archive items in file lists to improve
recognition.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-27 20:54:03 +01:00
Robin Jones
a529676aab Update fs.h
fix api documentation for `directory_create`
2025-09-25 20:39:48 +01:00
Robin Jones
343f6089fe Update libdragon 2025-09-25 20:03:13 +01:00
Robin Jones
ab5b75b4c9 Update menu_state.h
Improve integer types
2025-09-25 20:02:30 +01:00
Robin Jones
2dc7771847 Update miniz 2025-09-22 00:12:07 +01:00
Robin Jones
c14aa4daf5 Update .gitignore
Add exe files
2025-09-21 23:38:01 +01:00
Robin Jones
e6b18ba034 Update libdragon 2025-09-21 23:19:49 +01:00
Robin Jones
29139e8d18 Fix build when FEATURE_AUTOLOAD_ROM_ENABLED 2025-09-09 21:15:44 +01:00
Robin Jones
2f20edf8e0 Add example build using flags to developer documentation 2025-09-09 21:01:16 +01:00
Robin Jones
efd4646f49 Add ability to load boxart from homebrew header (#265)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Add ability to load boxart from homebrew/hacks when the ROM reports the
game ID as `ED`. Rather than using the Game ID, it checks the ROM's title
instead.

## 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 -->
When using ROMs that utilise the Homebrew header, there was no way to
differenciate the "boxart" images.
We currently transverse the game ID for speed, but homebrew is small in
comparison, so as long as it matches the homebrew header type, using
names shouldnt be too much of an issue.


## 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. -->
Locally on an SC64

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


You agree with the license terms and that other license types may be
granted with permission of the original `N64FlashcartMenu` project
license holders.

<!--- 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

- New Features
- Added box art support for homebrew ROMs by matching titles, ensuring
correct images display alongside standard ROMs.
- Documentation
- Updated box art guidelines to include the homebrew directory structure
and title-based naming.
- Expanded “future support” note to include additional assets:
boxart_top, boxart_bottom, boxart_left, boxart_right, gamepak_front, and
gamepak_back.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-09 20:29:50 +01:00
Robin Jones
a68c2da531 Improve naming for ifdefs 2025-09-09 19:59:04 +01:00
Robin Jones
7bb9228dec re-add old compatibility mode, but only with a compile flag
DEPRECATED_BOXART_COMPATIBILITY_MODE
2025-09-09 19:59:03 +01:00
Robin Jones
d53496e47c Fix offsets due to new fonts 2025-09-09 15:56:23 +01:00
Robin Jones
360af4b64c Update 99_developer_guide.md 2025-09-03 23:20:32 +01:00
Robin Jones
6ac8663f36 Workaround for bookkeeping highlight colour missalignment.
Still requires proper fix.
2025-09-03 22:57:21 +01:00
Robin Jones
96ee932752 Update libdragon 2025-09-03 17:00:29 +01:00
Robin Jones
f6187fbd2e Update changelog
Keep ignoring old FiraMonoBold.font64, as may be cached on old filesystems.
2025-09-03 16:45:20 +01:00
Suprapote
9885c49dc6 [Develop] Change font to a new one with more characters (#263)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Change the font to have a huge range of characters. See: [
https://github.com/negset/Firple]( https://github.com/negset/Firple).
It is very similar to the original FiraMonoBold.

## 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 -->
Memoak menu, use font icons and posible translation

## 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): -->

<img width="999" height="627" alt="Captura de pantalla 2025-09-03
001845"
src="https://github.com/user-attachments/assets/c7db6a31-da52-4666-a815-f5cc446482f7"
/>


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


You agree with the license terms and that other license types may be
granted with permission of the original `N64FlashcartMenu` project
license holders.

<!--- 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>
2025-09-03 16:35:20 +01:00
Robin Jones
ae83843b35 Update README.md 2025-09-01 21:36:18 +01:00
Robin Jones
92db747c44 Update checkout action 2025-09-01 19:49:02 +01:00
Robin Jones
09fb750ee9 Update libdragon
Add new IPL3 release.
2025-08-28 16:41:06 +01:00
Robin Jones
509837e84a Update libdragon 2025-08-24 16:13:54 +01:00
Robin Jones
6075da7760 Add Cheat UI (#256)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Adds the ability to load cheats from a file (via the UI).

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

## 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: -->
- [x] 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.


You agree with the license terms and that other license types may be
granted with permission of the original `N64FlashcartMenu` project
license holders.

<!--- 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

- New Features
- Added Datel Code Editor to ROM info: view, enable/disable, and edit
cheats.
  - Cheats can be loaded from and saved to a per-ROM datel.txt file.
- Expansion Pak-aware behavior: cheats only load/apply when Expansion
Pak is present.
- Improved cheat compatibility and stability across more titles/cheat
types.

- Documentation
- Overhauled Datel cheats guide: file-based workflow, examples, caveats,
and known issues.
  - Clarified Expansion Pak requirement for cheat loading.
  - Removed an outdated changelog note.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-24 16:07:55 +01:00
Robin Jones
72e207b231 Improve custom boot settings
BREAKING CHANGE
2025-08-23 00:13:08 +01:00
Robin Jones
ff9dbb7862 Update CHANGELOG.md 2025-08-22 23:47:40 +01:00
Robin Jones
dc6b573b64 Improve cheat documentation 2025-08-22 23:43:08 +01:00
Robin Jones
317beb03d5 Fix RTC component 2025-08-22 23:33:46 +01:00
Robin Jones
89800750e4 Improve ui_component_value_editor 2025-08-22 23:30:44 +01:00