658 Commits

Author SHA1 Message Date
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
Robin Jones
cda5fac6bb Bookkeeping improvements (#260)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Cherry picked from #256 

## 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 -->
keeps changes autonomous.

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


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

## Summary by CodeRabbit

- New Features
  - Clearer error messages when ROM or disk info fails to load.
- More robust history/favorites loading using item IDs with validation
and helpful feedback.

- Bug Fixes
- Prevents loading from invalid or empty history/favorite entries by
adding bounds and content checks.
  - Ensures selection state resets after use to avoid unintended loads.

- Refactor
- Internal renaming and type adjustments to support ID-based selection
and larger lists.

- Chores
- Minor include/order cleanups and added debug logs (no user-visible
impact).

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-22 23:02:43 +01:00
Robin Jones
c0c0301579 Update libdragon 2025-08-22 21:25:25 +01:00
Robin Jones
c977d7603a Update libdragon 2025-08-19 01:12:15 +01:00
Robin Jones
29c8382b3f Revert "Update libdragon"
This reverts commit f470243d91.
2025-08-18 23:13:46 +01:00
Robin Jones
f470243d91 Update libdragon 2025-08-18 22:56:53 +01:00
Robin Jones
7bb64c2ad6 Improve disk type comments 2025-08-18 22:56:53 +01:00
Robin Jones
164cd581df Update libdragon 2025-08-16 16:49:47 +01:00
Robin Jones
58d89f6248 Create FUNDING.yml 2025-07-24 16:04:07 +01:00
Robin Jones
311d1998f6 Move ui_component_value_editor
to common.c.
Improvements can continue from there.
2025-07-22 18:42:08 +01:00
Robin Jones
48b3eb93b7 Improve variable names
in rtc_ui_component_editdatetime_draw
2025-07-22 18:17:51 +01:00
Robin Jones
cae508b7e0 Improve RTC value editor 2025-07-22 17:50:44 +01:00
Robin Jones
40a910d902 Update CHANGELOG.md
Add latest bug fix commits.
2025-07-22 13:18:14 +01:00
lategator
e5159104fd Fix missing enum case for 1 mbit SRAM saves (#253)
## Description
This allows the menu to boot ROMs with 1 MBit saves.

## Motivation and Context
Without this I get "Error occured during save loading" when trying to
load a ROM using this save type in the header.

## How Has This Been Tested?
From a libdragon install, run `ed64romconfig --savetype sram1m file.z64`
on any ROM to change the header byte, then try to load it in the menu.
With the patch, the ROM should load successfully. Sample using a test
ROM here:

[test_sram1m.zip](https://github.com/user-attachments/files/21261604/test_sram1m.zip)

## Screenshots
None

## Types of changes
- [ ] Improvement (non-breaking change that adds a new feature)
- [X] 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:
- [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.
- [X] All new and existing tests passed.

Signed-off-by: lategator <212063191+lategator@users.noreply.github.com>


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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved compatibility for games using the 1Mbit SRAM save type,
ensuring proper save data handling.

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

Co-authored-by: Robin Jones <networkfusion@users.noreply.github.com>
2025-07-22 12:12:34 +00:00
Robin Jones
002b9291f7 Update libdragon 2025-07-22 12:49:55 +01:00
Giovanni Bajo
330263a02f boot: reset value of FCR31 to the boot value (0) (#254)
This improves emulation of cold boot, as otherwise the FPU might start
in an unexpected state.

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

## Summary by CodeRabbit

* **Chores**
* Improved initialization procedures during system boot for enhanced
stability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-22 12:49:01 +01:00
Robin Jones
bca44665c8 Improve ability to debug remotely 2025-07-15 23:24:45 +01:00
Robin Jones
f74f24be2b Add red font colour 2025-07-13 23:39:50 +01:00
Robin Jones
2d788348f7 Minor improvements 2025-07-13 22:16:17 +01:00
Robin Jones
0b9f34f2fe Remove metadata descriptions
Until we can find a better way.
2025-07-11 12:17:03 +01:00
Robin Jones
2f5f7a861f Cut the fat for rom_description
knowing full well that there is a memory leak somewhere else!
2025-07-09 22:16:11 +01:00
Robin Jones
a4835366c7 Update rom_info.c
Use strlcpy for rom metadata.description.
2025-07-09 19:57:45 +01:00
Robin Jones
9aabc30ef5 Add entry types for cheat and patch to browser
Improve enum ordering.
2025-07-09 19:39:34 +01:00
Robin Jones
5302d00e98 Improvements to custom ROM configuration settings
- Add FEATURE_CHEATS_GUI_ENABLED
	- Add FEATURE_PATCHER_GUI_ENABLED
2025-07-09 18:36:08 +01:00
Robin Jones
9ce37ac8e6 Add file info support for cheaters. 2025-07-09 15:02:08 +01:00
Robin Jones
03d0d76ce8 Improve cheats documentation 2025-07-09 14:29:52 +01:00
Robin Jones
af78eecb78 Add emulators to readme 2025-07-09 13:49:28 +01:00
Robin Jones
d2d51d349b Add debugging string to ensure prompt. 2025-07-09 13:12:59 +01:00
Robin Jones
9507dcb6cd Update libdragon 2025-07-09 12:21:48 +01:00
Robin Jones
d7f533a10d Update libdragon 2025-07-09 12:20:04 +01:00
Robin Jones
b91d8364de Merge branch 'develop' of https://github.com/Polprzewodnikowy/N64FlashcartMenu into develop 2025-07-09 12:19:48 +01:00