Commit Graph

342 Commits

Author SHA1 Message Date
Mateusz Faderewski
01968b55db
Cheats support (backend only) (#94)
<!--- Provide a general summary of your changes in the Title above -->

## Description
This PR implements cheat support (patcher + engine) with a simple API to
provide Action Replay/Game Shark compatible cheats (with exception of
cheats that utilize GS button).

API consist of a single pointer to an array of the cheats ended with a
double zero entry,
For example, if you want to pass these cheats to the patcher:
```
D01F9B91 0020 // Majora's Mask (USA) Inventory Editor
803FDA3F 0002
```
Put cheats in a `uint32_t` array as such (notice last two entries are
zeros):
```
uint32_t cheats[] = {
    0xD01F9B91,
    0x0020,
    0x803FDA3F,
    0x0002,
    0,
    0,
};
```
And pass this array as a boot parameter: `menu->boot_params->cheat_list
= cheats;`

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

## Motivation and Context
To provide users with ability to run game modifications in a easy way.
<!--- 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?
On a SummerCart64 flashcart + assembly instructions generation verified
in ares emulator via GDB.
<!-- (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
No 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: Polprzewodnikowy <sc@mateuszfaderewski.pl>
2024-05-05 00:19:20 +02:00
Robin Jones
24f49f1447
Update 64drive README.md
Use archived URL as website link no longer exists.
2024-05-01 22:43:45 +01:00
Robin Jones
9e7a47476e
Improve patch recognition 2024-04-29 22:42:33 +01:00
Robin Jones
4bcaced461
Add ares emulator support to readme
Fix libdragon branch used.
2024-04-29 20:14:59 +01:00
Robin Jones
4995fe55e1
Bump actions-gh-pages version (#99)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Bumps peaceiris/actions-gh-pages to latest 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 -->
Keep workflow up-to-date.

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

[skip ci]
2024-04-29 18:57:02 +01:00
Robin Jones
e5c1f34142
Update rolling release GH action version (#98)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Bumps softprops/action-gh-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 -->
Although this might not solve it, currently our rolling release shows
the release date far behind that actually released.

## 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] 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-04-29 19:43:58 +02:00
Suprapote
9645ad1b5b
Add more saves (#97)
Add extra save type.
2024-04-29 18:06:23 +01:00
Suprapote
53fdcc5979
More savetypes (#96)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Add more saves to the list

## 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! -->
- [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-04-29 16:41:59 +02:00
Mateusz Faderewski
6b8baa19e7
Link to the 64DD SummerCart64 guide in the readme 2024-04-29 14:08:31 +02:00
Mateusz Faderewski
23af174811 Implement vertical scrolling for text viewer 2024-04-27 13:12:09 +02:00
Mateusz Faderewski
a189e139b2 Extend character set in the font 2024-04-26 23:04:39 +02:00
Mateusz Faderewski
fc410da891 clang-format WIP 2024-04-26 23:04:19 +02:00
Mateusz Faderewski
cbe69e2659 Init BBFS on iQue 2024-04-26 23:03:15 +02:00
Mateusz Faderewski
3becd1ff59
Use stdio calls for file/directory interaction instead of fatfs (#95)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
This PR changes most of the calls to the fatfs lib with the standard C
ones.
Additionally, there's couple of changes required to adapt to new
interface and several bug fixes.
As a bonus menu can now be run in ares emulator and on the iQue player,
adapting to the available storage options - DragonFS in the ROM and iQue
flash modules (bbfs).

## 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 -->
To make it easier to use storage medium other than SD cards on platforms
other than N64 with flashcart.

## 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. -->
SummerCart64 flashcart and ares emulator

## Screenshots
<!-- (if appropriate): -->
N/A

## 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)
- [x] Breaking change (breaking change)
- [x] Config and build (change in the configuration and build system,
has no impact on code or features)

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes
that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
- [x] My code follows the code style of this project.
- [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: Polprzewodnikowy <sc@mateuszfaderewski.pl>
2024-04-24 02:45:09 +02:00
Robin Jones
c310c5f9e1
Update submodules (#93)
## Description
Updates libpng and libdragon to latest.
2024-03-19 17:11:22 +00:00
Robin Jones
8077f06702 update libgragon submodule 2024-03-17 19:37:02 +00:00
Robin Jones
0533df899c Change patch entry type 2024-03-17 19:17:46 +00:00
Robin Jones
d9fd168a1c Rename files
Start adding info
2024-03-17 19:10:20 +00:00
Robin Jones
3f6fc7966c use defines for magic
though would be better as an enum?!
2024-03-16 02:24:00 +00:00
Robin Jones
38a1d11729 add strcomp 2024-03-16 01:57:46 +00:00
Robin Jones
b1188102c7 minor changes 2024-03-16 01:25:35 +00:00
Robin Jones
8da4ffd181 add aps header struct
and some comments
2024-03-16 00:48:10 +00:00
Robin Jones
277a4cf20a IPS hints 2024-03-15 23:17:27 +00:00
Robin Jones
9fb88b6022 Improvements 2024-03-15 21:14:28 +00:00
Robin Jones
2258df3c1f Improve comments 2024-03-09 12:48:44 +00:00
Robin Jones
71c93c5169 minor improvements 2024-03-07 23:17:39 +00:00
Robin Jones
ded3e3e96b Add patch extensions to browser 2024-03-07 22:47:01 +00:00
Robin Jones
682669c978 Improvements 2024-03-07 22:40:35 +00:00
Robin Jones
dfe4a20643 Revert "Add flips submodule"
This reverts commit 0847b4d664.
2024-03-07 21:51:04 +00:00
Robin Jones
0847b4d664 Add flips submodule 2024-03-07 21:44:44 +00:00
Robin Jones
010221d610 Move menu mode for patch 2024-03-07 21:33:23 +00:00
Robin Jones
d9ad29d285 Fixups after merge. 2024-03-07 21:25:48 +00:00
Robin Jones
f931774f9f
Merge branch 'Polprzewodnikowy:main' into add-rom-patcher 2024-03-07 21:22:33 +00:00
Robin Jones
324c7a472a Merge branch 'add-rom-patcher' of https://github.com/networkfusion/N64FlashcartMenu into add-rom-patcher 2024-03-07 21:19:10 +00:00
Robin Jones
d20dc881b0 Fixes after rebase. 2024-03-07 21:17:03 +00:00
Robin Jones
52561a9c7d Add initial work towards patch support 2024-03-07 21:09:07 +00:00
Robin Jones
6906cff1b2
Improve save note
Add caveats
2024-02-03 00:55:40 +00:00
Robin Jones
757ee22677
Documentation fixes 2024-02-03 00:49:58 +00:00
Robin Jones
2e962bbf22
Improve save documentation 2024-02-03 00:43:43 +00:00
Mateusz Faderewski
b283f48de2 Added color for text files 2024-01-19 04:21:05 +01:00
Robin Jones
14e45c0230
Add Text viewer (#87)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Adds a basic text viewer. It does not (yet) support full file content.
superseeds #21 

## 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 -->
There were too many changes to merge from the original PR.

## 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 an SC64 via devcontainer.

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

---------

Co-authored-by: Mateusz Faderewski <sc@mateuszfaderewski.pl>
Co-authored-by: Mateusz Faderewski <polprzewodnikowy@gmail.com>
2024-01-17 17:03:00 +01:00
Robin Jones
a2e50a9c82
Add flashcart submenu view (#86)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Adds a view to show the flashcart information

## 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 -->
Will be useful to show its features etc.

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

Co-authored-by: Mateusz Faderewski <sc@mateuszfaderewski.pl>
2024-01-17 15:54:30 +01:00
Robin Jones
cc46a3b9fb
Add USB feature for flashcart (#85)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Adds a feature to the flashcart to determine whether USB is supported.

## 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 -->
Some flashcarts (ED64 X5, V2.5, V2.0, V1.0 & ED64P ) do not support it.

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

Co-authored-by: Mateusz Faderewski <sc@mateuszfaderewski.pl>
2024-01-17 15:51:10 +01:00
Robin Jones
d85f24a0d8
Add RTC feature for flashcart (#58)
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->
Adds a feature to the flashcart to determine whether RTC is supported.
This is at minimum required for correct handling of what to show on the
main menu.
It also will help with a future context menu to set the RTC time.

## 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 -->
Some flashcarts (ED64 X5, V2.5, V2.0, V1.0 & ED64P ) do not support it.

## 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>
2024-01-17 15:47:31 +01:00
Mateusz Faderewski
80eb7bbd9c Added CIC selection menu + minor fixes and code cleanup 2024-01-17 15:43:31 +01:00
Robin Jones
e3ab616137 Add initial work towards patch support 2024-01-11 00:38:07 +00:00
Robin Jones
0996e88fa1
Fix link
by removing it
2024-01-10 17:42:54 +00:00
Robin Jones
5532ae10a4
Update README.md
Improve supported carts
2024-01-10 17:20:50 +00:00
Robin Jones
ff478bccc7
Update .gitignore
Ignore whole tools folder, it might contain other flashcart tools such as UnfLoader
2024-01-10 16:06:20 +00:00
Mateusz Faderewski
661f89c870 Add CNAME to GitHub pages 2024-01-07 05:24:26 +01:00