Commit Graph

112 Commits

Author SHA1 Message Date
Robin Jones
c36bd4197e
Add ability for 3 letter ID for boxart (#47)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Allows boxart to be 3 letters by checking the "media type" if required.
It continues to be compatible with 2 letters.
Also update sodium64 rom address (changed in
d006af4870).

## 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 -->
Fixes an issue for at least `DZ` which shares the same ID between
Dezaemon 3D for the 64DD and Duke Nukem: Zero Hour Cartridge.

## 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)
- [ ] 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: GITHUB_USER <GITHUB_USER_EMAIL>
2023-09-17 10:38:42 +02:00
Mateusz Faderewski
fc2f3aa42c
64drive support (#27)
<!--- Provide a general summary of your changes in the Title above -->

## Description
This PR implements 64drive support

## Motivation and Context
Goal of this PR is to support more devices
<!--- 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?
Not tested at all
<!-- (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)
- [ ] 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>
2023-09-08 21:49:50 +02:00
Mateusz Faderewski
b15be6467b Improve game boot compatibility 2023-09-06 00:49:06 +02:00
Mateusz Faderewski
15bca14b98 Improve reboot compatibility 2023-09-04 23:31:19 +02:00
Mateusz Faderewski
f063f05fe6 Added USB debug commands handling + file_get_sectors refactor 2023-09-04 21:09:46 +02:00
Robin Jones
c44ff7f752
Update emulator load display (#46)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Update emulator load display to be, well, better.
Add TotalSMS (not tested, however, shows that the emulator is not
found.)
Fix rolling release for new forks.

## 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)
- [ ] 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>
2023-08-28 17:19:51 +02:00
Mateusz Faderewski
ab8100f6b9 Added option to set default directory 2023-08-27 19:30:29 +02:00
Mateusz Faderewski
be1b3b1ab3 Boot improvements 2023-08-27 18:52:03 +02:00
Mateusz Faderewski
105e648d92 Reboot: reset RDRAM before putting it in standby mode 2023-08-20 22:03:14 +02:00
Mateusz Faderewski
9603e044e6 Added SNES emulator + changed emulator names to default 2023-08-20 20:58:34 +02:00
Mateusz Faderewski
3db859b0f7 Added file offset to flashcart_load_file 2023-08-20 20:26:48 +02:00
Mateusz Faderewski
ee769b38ac Fixed assets alignment issue 2023-08-20 20:02:35 +02:00
Mateusz Faderewski
5f6b006a1b Added hide delay to context menu 2023-08-20 18:07:58 +02:00
Mateusz Faderewski
de97bedc00 Improved empty save compatibility by filling initial save with 0xFF 2023-08-20 17:54:37 +02:00
Mateusz Faderewski
65a578c571 Added entry context menu in browser view 2023-08-20 14:11:17 +02:00
Mateusz Faderewski
d5485a2f12 Update libdragon and libcart 2023-08-19 02:44:31 +02:00
Mateusz Faderewski
a1d20ae36e Added option to put saves in subdirectory + moved ROM loading procedure outside of views 2023-08-18 22:19:01 +02:00
Mateusz Faderewski
20275f5b21 Cleanup sound code 2023-08-18 20:19:20 +02:00
Mateusz Faderewski
f1649c2436 Use native sample rate for MP3 playback 2023-08-18 15:38:43 +02:00
Mateusz Faderewski
33a1729792 Added path_push_subdir function to path 2023-08-17 22:26:18 +02:00
Mateusz Faderewski
1bdbfef8ac Added lag report feature 2023-08-17 22:24:32 +02:00
Robin Jones
887d83ae5f
Improve ROM markets Enumeration (#39)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Based on research and trial and error, this makes the information more
appropriate.

## 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)
- [ ] 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>
2023-08-17 22:15:13 +02:00
Mateusz Faderewski
74dd258b62 MP3 player seeking improvement 2023-08-14 22:00:14 +02:00
Mateusz Faderewski
65a7775964 Moved RTC update function outside of draw procedure
Previous implementation caused increased drawing time when RTC datetime needed update every second
2023-08-14 21:50:13 +02:00
Mateusz Faderewski
57dff16ec7 Added 30 FPS frame limiter, file list component fix, cleaned up view display/init code 2023-08-12 21:11:20 +02:00
Mateusz Faderewski
5d8ebf9200 Add PixelFX N64Digital/GEM support. (#28) 2023-08-10 22:39:26 +02:00
Mateusz Faderewski
af7705b821 Reboot procedure fixes 2023-08-10 21:25:54 +02:00
Mateusz Faderewski
ac63083089 SC64 flashcart code fixes + cleanup 2023-08-10 21:20:02 +02:00
Mateusz Faderewski
12dead7a6a Browser directory path now always include sd:/ prefix 2023-08-09 20:44:13 +02:00
Robin Jones
37162cac42
Add emulator loading and screen (#20)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
This PR shows a possible way forward for adding support for emulators.
Superseeds #13 

## 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 ability to load partial ROM's and/or overwrite parts of them is
required by emulators, patches and potentially gameshark/action replay.

## 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)
- [ ] 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.
- [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: GITHUB_USER <GITHUB_USER_EMAIL>

---------

Co-authored-by: Mateusz Faderewski <sc@mateuszfaderewski.pl>
2023-08-05 15:56:10 +02:00
Mateusz Faderewski
6ba534166b Simplified build action + ROM stripping fix + Makefile fix 2023-08-05 01:37:09 +02:00
Robin Jones
8c12feb2c5
Fix load display media type (#31)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
* Fix load display media type
* Change Rom version to be in Metadata.
* Add Rom config struct.
* Improve market comments.
* Re-add clockrate.

## 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)
- [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! -->
- [ ] 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>
2023-08-04 22:53:04 +02:00
Mateusz Faderewski
d36be317e1 Fixed exception on reset 2023-08-03 17:27:19 +02:00
Mateusz Faderewski
8e8f77e55b Complete rewrite of menu drawing + code cleanup + ROM cold boot fix
Uses new `rdpq_text` API for font drawing
2023-08-03 17:18:55 +02:00
Robin Jones
eb9668c721
Improve N64 ROM Database (#30)
<!--- Provide a general summary of your changes in the Title above -->

## Description
* Add documentation
* Add all header types.
* Improve fread sizeof types for maintainability.
* Update functions as needed.

## 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 -->
Maintainability and loading.

As a bonus, this adds certain info to the "file info" screen, which
unfortunately shows some info is incorrect in the N64 Brew wiki when
interigating certain 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)
- [ ] 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>
2023-07-31 12:08:19 +02:00
Mateusz Faderewski
25bb6f343c Fixed SD card fault display + ROM boot changes 2023-07-29 11:52:24 +02:00
Robin Jones
9f5557ff36
Add time to browser view (#22)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Add time to browser view
Notes that save types could be improved.

## 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 -->
Nice to show, since there is space, and only shown if supported.

## 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)
- [ ] 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>
2023-07-28 21:38:01 +02:00
Mateusz Faderewski
01ae2cef37 Added background image and ability to set it from the image viewer 2023-07-28 21:36:51 +02:00
Mateusz Faderewski
213ef7f367 SC64 load file path cleanup 2023-07-28 21:29:12 +02:00
Mateusz Faderewski
da50cd93d0 MP3 player file path clean up 2023-07-28 21:25:22 +02:00
Mateusz Faderewski
17fde21b6f PNG decode speed up 2023-07-28 21:24:47 +02:00
Mateusz Faderewski
3f08dfb6fd Cleaned up settings path 2023-07-28 21:23:15 +02:00
Mateusz Faderewski
0fd8494007 Added more fs utils 2023-07-28 21:22:40 +02:00
Mateusz Faderewski
9142bf9832 PNG decoder now loads image asynchronously 2023-07-26 23:01:39 +02:00
Robin Jones
df6d9265a0
Update menu views (#19)
<!--- Provide a general summary of your changes in the Title above -->

## Description
Based on #16 this updates the other views to use RDPQ.

## 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 all views and makes them easier to convert if needed.

## 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)
- [ ] 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>
2023-07-26 18:43:08 +02:00
Mateusz Faderewski
f235f25205 Fixed last row decoding in PNG decoder 2023-07-26 18:41:38 +02:00
Mateusz Faderewski
8d5aa4ecb1 Remove unnecessary code from SC64 flashcart module 2023-07-26 17:58:21 +02:00
Robin Jones
05bf7aeedf
Add N64 ROM boxart capability (#16)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Adds the ability to show ROM boxart in the FileInfo menu.
Although later we may decide to convert PNG's or BMP's on the fly, to
start with, we only use sprite files created with mksprite (see readme).

It required an update to the libdragon submodule due to very recent
sprite functionality changes.

## 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 -->
Work towards a pretty menu.

## 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. -->
As shown in the screenshots, ~~however there is an issue when the info
screen displays for more than 30 seconds with a sprite loaded (help
required).~~

## Screenshots
<!-- (if appropriate): -->
Example Goldeneye ROM loaded:

![image](https://github.com/Polprzewodnikowy/N64FlashcartMenu/assets/11439699/65f03a06-9463-4519-a94e-00c38bf1c409)



~~Known issue (when staying on the information screen with a sprite
loaded for over 30 seconds)~~

![image](https://github.com/Polprzewodnikowy/N64FlashcartMenu/assets/11439699/fd98b39c-9534-4794-bcd5-d598f18bfd63)


## 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! -->
- [x] My code follows the code style of this project.
- [ ] 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: GITHUB_USER <GITHUB_USER_EMAIL>
2023-07-26 17:55:23 +02:00
Mateusz Faderewski
f6b5a4081c Use libcart to detect flashcart model instead of USB subsystem 2023-07-26 12:36:39 +02:00
Mateusz Faderewski
bc280c7fc6 Added image viewer menu view 2023-07-25 22:56:00 +02:00