262 Commits

Author SHA1 Message Date
thekovic
a67f18adc5
settings: Add setting for forcing progressive scan in VI (#228)
This PR adds a setting to the config that allows users with TVs,
scalers, and other devices that struggle with interlaced video input to
force progressive scan to the menu.

## Description
This PR implements the aforementioned new setting my changing
libdragon's display module setting from `INTERLACE_HALF` to
`INTERLACE_OFF` if the newly added `force_progressive_scan` setting bool
is set. This tells the display module to not set the serrate bit in the
VI configuration registers and in effect forces "artificial" progressive
scan at 240p by dropping one field, without having to modify the menu's
rendering resolution of 640x480.

## Motivation and Context
Motivated by currently open issues #59 and #82 as well as Discord
comments from some menu users:
-
https://discord.com/channels/205520502922543113/1262536014623146125/1349024387721986061
-
https://discord.com/channels/205520502922543113/1262536014623146125/1349025967351271445
-
https://discord.com/channels/205520502922543113/1262536014623146125/1349030951585579058

## How Has This Been Tested?
Tested in ares. Testing on real devices by affected users would be
appreciated.

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

Signed-off-by: thekovic 72971433+thekovic@users.noreply.github.com

Co-authored-by: Robin Jones <networkfusion@users.noreply.github.com>
2025-03-21 00:29:29 +00:00
Robin Jones
44ba424df6 Update RTC persistent check
For compatibility with libdragon commit 4b3d8d4bcf
2025-03-20 23:18:25 +00:00
Robin Jones
01691687f4 Add fixme comments. 2025-03-12 20:54:40 +00:00
Robin Jones
72b7c9491c
[develop] Add Fast Reboot mode for ROMs (#215)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
In this PR I have added the global setting, flashcart feature support
and implementation of extra bootmodes (specifically fast reboot).
Although technically supported, the 64drive implementation is currently
commented out.

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

## 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. -->
On a summercart64.
Having the USB cable inserted, the hard power ON/OFF contines to use the
fast reboot ROM (expected).
Having no USB cable inserted , the hard power ON/OFF loads the menu
(expected).

## 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>
2025-03-10 19:44:29 +00:00
Robin Jones
7014a9c0be Fix rom_fast_reboot_enabled setting 2025-03-04 03:23:34 +00:00
Robin Jones
2375678eef
[develop] Update miniz submodule (#224)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Update miniz submodule but uses `-Wno-unused-function` as a work around
for warnings (probably a better way),

## 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 -->
Update miniz submodule

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

<!--- 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**
	- Refined the build configuration to better manage compiler warnings.
	- Updated an external library dependency to its latest version.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-04 00:29:12 +00:00
Robin Jones
39e4e91454
[develop] PAL60Hz mode on hardware mods (#165)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Most hardware mods have issues with PAL60 when outputing on displays
when using libDragon Preview branch (e.g. PixelFX and UltraHDMI).
This is a workaround until libDragon can deal with them.

The settings are not exposed through the menu (by default) as can lead
to no video output.

## 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 -->
#163
https://discordapp.com/channels/205520502922543113/1310357756091437086

## 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. -->
* Ultra HDMI modded PAL console using both HDMI and its analogue output
[pal60 + pal60 compat].
* ----- HDMI output ....
* ----- analog output only when compat mode off = out of screen
vertical.

## 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>
2025-03-04 00:28:06 +00:00
Robin Jones
9e960edb67 Add documentation
64drive
2025-02-22 01:27:32 +00:00
Robin Jones
7e3b802e09 Add documentation
Flashcart specific
2025-02-22 01:08:59 +00:00
Robin Jones
2fe2a22eee Improve documentation 2025-02-22 00:37:00 +00:00
Robin Jones
774c89cbfd Fix favorites load (count)
and documentation
2025-02-22 00:26:39 +00:00
Robin Jones
f686bd2bd1 Improve sfx enable
and documentation
2025-02-22 00:24:57 +00:00
Robin Jones
934c0d2c07 Documentation improvements 2025-02-22 00:23:28 +00:00
Robin Jones
c9d01f7b7b Update usb_comm.c
Fix reboot function
Improve documentation
2025-02-21 23:51:22 +00:00
Robin Jones
960eacabd9 Improve documentation 2025-02-21 23:30:47 +00:00
Robin Jones
9bbee1e24a fix enable sfx
improve documentation.
2025-02-21 22:52:08 +00:00
Robin Jones
2452bc0373 Improve cheats documentation 2025-02-21 22:50:56 +00:00
Robin Jones
63747e148f Improve documentation 2025-02-21 22:46:27 +00:00
Robin Jones
244a5a265d Improve path header documentation 2025-02-21 21:52:52 +00:00
Robin Jones
d3b429f616 improve utils folder documentation 2025-02-21 20:13:41 +00:00
Robin Jones
243417501d Improve menu folder documentation 2025-02-21 20:07:34 +00:00
Robin Jones
3f43955523 Improve boot folder documentation 2025-02-21 20:00:26 +00:00
Robin Jones
ea55e698d5
[develop] libdragon submodule update + RTC (#218)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Update the libdragon submodule which includes changes to RTC

## 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 -->
linked to #207 

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

<!--- 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-02-15 16:44:25 +00:00
Christopher Bonhage
c311874da0
Hide Windows/macOS cruft in file browser (#217)
<!--- Provide a general summary of your changes in the Title above -->

## Description
Hides:
* `desktop.ini` - Windows Explorer directory settings
* `Thumbs.db` - Windows Explorer image thumbnails
* `.DS_Store` - macOS Finder directory settings
* `._`-prefixed files - macOS "AppleDouble" metadata

## Motivation and Context
[N64brew sc64-forum post: File list shows 4096 B "Dummy
Files"?](https://discord.com/channels/205520502922543113/1337028964606283806)

## How Has This Been Tested?
On SC64 with an SD card containing all of the offending files in the
root and in subdirectories.

## Screenshots
Tough to prove a negative here with a screenshot; here's a video:


https://github.com/user-attachments/assets/f1843b29-dee0-442f-bf9a-897a69c39169

## 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
- [ ] 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: meeq <me@christopherbonhage.com>

Co-authored-by: Robin Jones <networkfusion@users.noreply.github.com>
2025-02-09 17:08:46 +00:00
Ross Gouldthorpe
3bd0a2eb97
Fix for crashing when deleting a favorite (#216)
Fix for crashing when deleting a favorite

## Description
Fixed a bounds check that allowed the copy loop to go out of bounds.

## 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)
- [ ] 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: GITHUB_USER <GITHUB_USER_EMAIL>
2025-02-07 07:42:24 +00:00
Robin Jones
15cbd1b69d Work towards #75
Currently only handles the settings and features required.

Co-Authored-By: Robin Jones <networkfusion@users.noreply.github.com>
2025-01-26 16:07:07 +00:00
Robin Jones
8a1f054aae
Revert "[develop] Add inital datel cheat support from filesystem" (#212)
Reverts Polprzewodnikowy/N64FlashcartMenu#204
2025-01-23 00:25:47 +00:00
Robin Jones
a960eb0f39 Switch to SRAM_BANKED saves for GB emulators
Fix issues with non compliant flashram saves.
2025-01-22 18:56:41 +00:00
XLuma
c27f15ef0e
[develop] Add inital datel cheat support from filesystem (#204)
## Description
This pull request adds a file parser for cheat code support.
If a file named the same as the selected rom with the extension .cht is
found, it will attempt to parse the file for cheat codes and place them
in `menu->boot_params->cheat_list` per the cheat backend API.

Cheat files should be formatted this way:
```
# Super mario 64 infinite lives
8033B21D 0064

# 120 stars
80207723 0001
8020770B 00C7
50001101 0000
8020770C 00FF
```

The parser ignores lines that start with a '#', are under 12 characters
or over 15 characters. Every other line should be valid cheat code
inputs with the code on the left, and the value on the right separated
by a space.

## Motivation and Context
<!--- What does this sample do? What problem does it solve? -->
Adds some initial cheat support in the frontend to allow users to modify
their games more easily, and take advantage of the backend API.

## How Has This Been Tested?
Tested on real hardware with a Summercart64 and Super Mario 64.

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

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


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

## Summary by CodeRabbit

- **New Features**
	- Added support for loading and managing cheat codes for N64 ROMs
	- Introduced ability to enable/disable cheats for specific ROMs
	- Added file type recognition for `.cht` cheat files

- **Documentation**
- Updated documentation with details about cheat code support, including
Datel cart compatibility and supported code types

- **Bug Fixes**
	- Implemented comprehensive error handling for cheat file loading
	- Added file parsing support for cheat codes

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

---------

Co-authored-by: Robin Jones <networkfusion@users.noreply.github.com>
2025-01-22 18:51:16 +00:00
Robin Jones
ae9f10cda1
[develop] Settings improvements (#202)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Adds settings for:
* Schema version
* First Run
* ROM loading progress bar

## 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 -->
They will be required in the near future.
Certain users want to turn the ROM loading progress bar off (for some
reason).

## 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>
2025-01-15 00:02:32 +00:00
Robin Jones
1a9e292598 [develop] Documentation 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 -->
2025-01-12 23:41:32 +00:00
Robin Jones
8c89198466
[develop] Add basic support for ED64 X series (#137)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Add basic support for ED64 X series
Only loads ROM's (no save support)

## 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)
- [ ] 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 support for the ED64 Xseries flashcart, including initialization
and file management capabilities.

- **Bug Fixes**
- Improved clarity in flashcart initialization logic, ensuring accurate
handling of different flashcart types.

- **Documentation**
- Enhanced documentation comments across the codebase for better clarity
on functionalities and features.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-01-12 12:41:47 +00:00
Robin Jones
a3eb18f69c Add (superficial) cart version for ED
Fix #186
2025-01-10 15:16:07 +00:00
Robin Jones
da11e2fd6f Fix empty dir text alignment 2025-01-08 17:51:27 +00:00
Robin Jones
881c1cbe5e Update load_disk.c
Improve display
2025-01-05 00:29:25 +00:00
Robin Jones
83d56f2d04 Tab spacing improvements 2025-01-04 23:59:54 +00:00
Ross Gouldthorpe
0375789ca5
[develop] Add ROM favorites and history tabs to file browser (#168)
## Description
Contains the code required for showing history and favourites.

There are now 3 tabs at the top of the browser display: Files, History,
Favorites.

When you launch a game, either rom or disk, the file path for those will
be written out to an ini file called `history.ini`,
which can then be reloaded quickly from the History tab

Roms and Disks can be added as favorites.
Select the rom or Disk as normal, then bring up the options menu (R).
an option to "add to favorites" will be on the new list.
Those can then be selected from the favorites tab.

Currently there are limits to the number of history and favorites and
that is set to 8.

## Motivation and Context
Issue request for last game history and favorites from the menu GUI.

## How Has This Been Tested?
Tested locally on Supercart 64 & SummerCart64,
Tested last loading just a rom, just a disk and a disk and rom
Tested History, loading rom, disk and rom and disk.
Tested favorites using F-Zero X and expansion.

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

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

---------

Co-authored-by: Robin Jones <networkfusion@users.noreply.github.com>
2025-01-04 22:59:17 +00:00
Robin Jones
0affd8222d Fix RTC set 2025-01-03 01:52:23 +00:00
Robin Jones
29e02f1fca
[develop] Improve rom info (#146)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Changed the ROM file that provides the "override" settings to be a more
generic file that is able to handle more situations related to the ROM
information.

The file can now contain the ROM description, and also contains whether
the ROM enables GS and patch support (for future use).

To use it, a "group name" needs adding to the ROM specific `ini`:

```
[metadata]
desscription=This is the description of the ROM I wish to load.
```
which if availiable, is added to the ROM load screen.

NOTE: the underlying file parser only supports `LF` line endings. `CRLF`
line endings will not work.

Old ROM ini files will probably be broken as the `override` parameters
have also been added to a "group name" `[custom_boot]`, so you would
either need to manually adjust the file or re 'set' the overridden
parameters in 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 -->
Works towards a "descriptive" ROM load system.

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

![image](https://github.com/user-attachments/assets/5257d624-acc8-40d4-bbc2-e0c3996a6962)

![image](https://github.com/user-attachments/assets/31caa489-1558-432c-976d-7090935e57e1)


![image](https://github.com/user-attachments/assets/a419ce5b-a00b-4360-9887-6a6e27b9ffbf)



## 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)
- [x] 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**
- Enhanced ROM information handling with new metadata fields including
description, cheats enabled, and patches enabled.
- Improved display of ROM metadata in the user interface, showing
dynamic descriptions and the status of cheats and patches.

- **Bug Fixes**
- Resolved issues with displaying static ROM descriptions by
implementing dynamic formatting.

- **Documentation**
- Updated comments and structure definitions to clarify the purpose of
new fields and functions.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-01-02 20:24:03 +00:00
Robin Jones
8971a03bc6 Revert "Update submodules"
This reverts commit ec0378b4fe38c8014284bc0bee18c63bc656d491.
2024-12-30 21:52:16 +00:00
Robin Jones
ec0378b4fe Update submodules
libdragon and miniz
2024-12-30 19:23:17 +00:00
Robin Jones
0f0321d691 Improve menu text 2024-12-28 22:54:14 +00:00
Robin Jones
0068699fec Default menu sound fx to off
Rename functions to better describe them.
2024-12-28 18:18:13 +00:00
Robin Jones
e14ea9c946 Improve documentation 2024-12-28 18:08:53 +00:00
Robin Jones
fb75890e17
[develop] Disk info view - load with rom - button context (#175)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Changes the button context from `R` to `L|Z` and moves the `move
load_disk_with_rom` to `menu_state` so that it can be used for things
like autoload.

## 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 -->
Aligns the button context with the ROM info menu.
Makes it easier to set and re-use expansion ROM's.

## 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)
- [x] 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-12-27 02:10:47 +00:00
Robin Jones
21871f6e54
[develop] Show F/W version in Flashcart info (#174)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Add detection for the flashcart firmware version and show it within the
Flashcart Info view.

## 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 -->
The feature was incomplete.

## 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-12-26 21:23:52 +00:00
Robin Jones
c82f5e063f Improve text
People were confused.
2024-12-26 12:26:06 +00:00
Robin Jones
b984b1b666 Remove PAL60 from settings editor
Now requires the `BETA_SETTING` flag until it is fixed.
2024-12-23 19:05:18 +00:00
Robin Jones
b75d6e6370
Improve text
Improves text and expectation for flashcart feature.
2024-12-10 22:22:09 +00:00
Robin Jones
6a2c4828b2
Submodule updates (#169)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Update libdragon and miniz to latest.

## 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 submodules up-to-date.
potential fixes for RDPQ text flicker.

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

## 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)
- [ ] 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-12-04 13:58:22 +00:00