Commit Graph

223 Commits

Author SHA1 Message Date
Robin Jones
05c0f30c36
Update src/menu/views/joypad_controller_pak.c 2024-11-11 17:49:11 +00:00
Robin Jones
4ac3b381e6
Apply merge fixes 2024-11-11 17:41:11 +00:00
Robin Jones
19bce7e700
Merge branch 'develop' into cpak-management 2024-11-11 17:31:52 +00:00
Robin Jones
7220d3745a
Rename components to ui_components (#160)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Renames `components` to `ui_components`

## 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 -->
Makes the source more clear as to its functionality

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

<!--- 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>
2024-11-11 17:29:39 +00:00
Robin Jones
ef4ee1b63a
Merge branch 'develop' into cpak-management 2024-11-11 15:58:34 +00:00
Robin Jones
866e630952 Improve RTC adjustment logic
Handle events where RTC is unavailable.
2024-11-07 23:01:32 +00:00
Robin Jones
2c10eb55b1
Merge branch 'develop' into cpak-management 2024-11-07 20:33:52 +00:00
Robin Jones
e7608dc557
Add ability to adjust RTC (#107)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
This PR adds the ability to set the time from the menu.
The underlying logic is sound given what is currently available within
libdragon, but expected changes are noted (like `settimeofday`) for
future improvement and will need to be revisited once available.
A future PR will need to add better GUI components for numeric control.

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

## 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 a 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)
- [ ] 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>
2024-11-07 20:16:35 +00:00
Robin Jones
17c214537f Minor fix for disk load error
Don't bother to load boxart after.
2024-11-05 23:40:42 +00:00
Robin Jones
0d2deaa4f4 Further header documentation improvements 2024-11-05 23:34:14 +00:00
Robin Jones
527e27525d Further header documentation improvements 2024-11-05 23:10:29 +00:00
Robin Jones
1e51108b0d Further header documentation improvements 2024-11-05 22:41:19 +00:00
Robin Jones
fb0a04e048 header documentation improvements 2024-11-05 22:21:09 +00:00
Robin Jones
4f060865a8
Merge branch 'develop' into cpak-management 2024-11-05 09:28:23 +00:00
Robin Jones
36647ebdec
N64 Rom autoload (#150)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Allows the ability to autoload a specified ROM instead of the menu,
taking into account the ROM database.
If enabled, you can currently fallback to the menu by holding joypad
start on console reset.


## 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 -->
This is a better implementation of #140.

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

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

## Release Notes

- **New Features**
- Introduced ROM autoloading functionality, allowing users to enable
automatic loading of ROMs with specified paths and filenames.
- Added a settings option for managing ROM autoload preferences in the
menu.

- **User Interface Enhancements**
- Updated settings menu to display the state of the "Autoload ROM"
setting.
  - Improved context menus for toggling various settings.

- **Bug Fixes**
- Enhanced memory management by ensuring proper resource deallocation
for settings.

- **Documentation**
- Added documentation for new functions and settings related to ROM
autoloading.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-05 09:27:44 +00:00
Robin Jones
4eca91798c move boot_pending vars to menu_state
works towards ability to autoload ROMs
2024-10-31 21:54:14 +00:00
Robin Jones
b5f6adc1ea Improve load_pending naming
Make their actions clear.
Works towards the ability to autoload ROMs.
2024-10-31 21:26:33 +00:00
Robin Jones
6cb3019c76 Display Entire Filename on ROM Information Page
#101
2024-10-31 20:23:25 +00:00
Robin Jones
9c0a4b86a2 Improve settings editor text 2024-10-25 19:27:06 +01:00
Robin Jones
1bfde7caf7
Merge branch 'develop' into cpak-management 2024-10-25 17:40:57 +01:00
Robin Jones
dd3ce84a46 Improve flashcart features 2024-10-25 17:16:10 +01:00
Robin Jones
f1238debb1 Improve fileinfo stat
st_mtime will expand to st_mtim.tv_sec using a macro
2024-10-25 16:44:00 +01:00
Robin Jones
b07364aa3f Update flashcart features 2024-10-25 15:28:52 +01:00
Robin Jones
f5dd0ae336 Improve consistency of sound_play_effect 2024-10-25 15:09:12 +01:00
Robin Jones
6eb6991ca0 Detect and display flashcart features correctly 2024-10-25 14:48:21 +01:00
Robin Jones
f5521031e4 Revert change to sound_reconfigure
that caused a de reference exception after MP3 playback.
2024-10-25 13:49:56 +01:00
Robin Jones
3e37991b73 Improve context menu vars 2024-10-25 13:21:49 +01:00
Robin Jones
a1f2a5d56b Improve sound_poll 2024-10-25 13:11:29 +01:00
Robin Jones
004f182e29 Avoid casting void* to bool directly 2024-10-23 20:45:47 +01:00
Robin Jones
329ba270ff Improve flashcart info
SC64 only. Other flashcarts may show wrong info (but they are not yet supported anyway).
2024-10-23 20:14:25 +01:00
Robin Jones
a6465787de Improve sound_deinit
Close sound effects properly.
2024-10-23 15:29:46 +01:00
Robin Jones
4732981f88 Correctly init joypay vars
Correctly free overrides path
2024-10-23 14:19:59 +01:00
Robin Jones
9020445c17 Improve boxart
Minor fixes for:
* menu error SFX
* RTC text
2024-10-23 13:46:29 +01:00
Robin Jones
f01fb77db3 Minor comment improvements 2024-10-23 12:58:21 +01:00
Robin Jones
056e664941
Merge branch 'develop' into cpak-management 2024-09-30 23:31:52 +01:00
Robin Jones
b8fa9e287d Update docs for newer firmware (#143)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Update the "supported" SC64 firmware version.

## 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 -->
Although the latest firmware is not "required", it is best to keep it
aligned.

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

- **New Features**
- Updated the supported firmware version for "SummerCart64" to 2.20.0+
in error messages.
- **Documentation**
- Revised developer documentation to reflect the upgrade of the SC64
deployer to v2.20.0, including updated links and compatibility
requirements.
- Clarified instructions for using the dev container and added a
workaround for USB device communication.
	- Expanded guidance on generating and serving documentation locally.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-09-30 22:21:39 +01:00
Robin Jones
269a8ae94d
Optimize boxart image load (#130)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Improves boxart image loading by using directory file paths.
It also adds matching by full game ID's (for compatibility), but notes
in the readme that it is slow.

## 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 -->
Loading boxart was slow in certain circumstances.

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


- **New Features**
- Introduced a new image type enumeration for boxart components,
enhancing image management.
- Updated boxart initialization to allow for specific image views,
improving flexibility in image retrieval.
- Enhanced instructions for setting up boxart images with clearer
directory structures and simplified naming conventions.

- **Bug Fixes**
- Improved the logic for loading boxart images, enabling better fallback
options in case of missing files.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-09-28 20:47:53 +01:00
Mateusz Faderewski
10a8fcab9e libdragon update + reorganized menu init + bug fixes 2024-09-17 00:11:51 +02:00
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
Robin Jones
42fd0bf014 Merge remote-tracking branch 'upstream/main' into develop 2024-09-02 19:08:18 +01:00
Robin Jones
3b2fddcc2a
Fix Perfect Dark JP DB entry (#139)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Perfect Dark (JP) release.

## 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 -->
Database entry (requires Expansion Pak).

## 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): -->
https://imgur.com/a/perfect-dark-without-expansion-vPOYVMB

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

<!--- 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 detailed match information for the game "Perfect Dark,"
enhancing recognition and handling by the system.
- **Improvements**
- Updated the entry for "Perfect Dark" to improve database organization
and clarity.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-09-02 19:06:51 +01:00
Robin Jones
83367c28b5
Merge branch 'develop' into cpak-management 2024-08-08 13:54:45 +01:00
Suprapote
68cab6d40e
64dd & Japanese covers (#126)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->

This adds in the 64DD disk load menu to visualize the game box.
I also created a European and 64DD boxart packs

## 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 boxart image support.

## 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. -->
Tested on a local 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)
- [ ] 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


- **New Features**
- Enhanced instructions in the README for boxart dimensions and
resources.
- Improved handling of box art rendering for various formats in the
menu.
- New functionality for displaying box art during disk loading in the
menu interface, including resource management for cleanup.

- **Bug Fixes**
- Resolved issues with rendering dimensions for specific types of box
art, improving visual consistency.

- **Documentation**
- Updated README to clarify the boxart requirements and provide multiple
download links for different regions.

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

---------

Co-authored-by: Robin Jones <networkfusion@users.noreply.github.com>
2024-08-06 13:20:41 +01:00
Robin Jones
5bf372830d
Merge branch 'develop' into cpak-management 2024-08-04 23:43:53 +01:00
Suprapote
02f4614d06
Settings editor display fix (#125)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Remove a newline.

## 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: -->
- [ ] Improvement (non-breaking change that adds a new feature)
- [x] Bug fix (fixes an issue)
- [ ] Breaking change (breaking change)
- [ ] 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: GITHUB_USER <GITHUB_USER_EMAIL>
2024-07-23 12:30:44 +01:00
Robin Jones
2aa1aedaad Minor improvements
Note: warm detection of paks might be broken.
2024-07-20 23:06:49 +01:00
Robin Jones
3ed121dcfb Make backup unique
use time var
2024-07-20 20:37:08 +01:00
Robin Jones
8ed610f25d Further improvements 2024-07-20 20:10:32 +01:00
Robin Jones
0cd545584c Code improvements 2024-07-20 18:06:20 +01:00
Robin Jones
9bb6e66e1a Create Cpak dir if it does not exist
Split the filename defines.
2024-07-20 15:20:51 +01:00