Fix Ace3DS+ and R4 bootstrap. Add EX4DS bootstrap. - #19
Open
Deletecat wants to merge 2 commits into
Open
Conversation
Ace3DS+ carts (_ds_menu.dat) will not boot if the gamecode of the boot file is set to R4XX. This patch removes the game code from the main bootstrap binary, and builds the _dsmenu.dat Ace3DS variant separately with that gamecode. EX4DS cards use the same DLDI and boot file name as the Ace3DS+, but it uses the original R4 encryption key (0x484a) instead of 0x4002.
hbmenu would fat init fail using the R4 bootstrap. this is because the DLDI patched binary wasn't being used at the encryption stage.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ace3DS+ carts will not load their boot file if the game code is set to "R4XX". This results in an error stating that it cannot find _ds_menu.dat. This is different from the "_dsmenu.dat" Ace3DS+ variant (aka R4iLS), which does require the game code to be set to that value. I have removed the game code from the main bootstrap target and added it to
ACE3DS/_dsmenu.datinstead. This small change fixes #15.The EX4DS is quite similar to the Ace3DS+. The only difference with regards to the boot file is that it uses the original R4 encryption key (0x484a) rather than 0x4002. As such, I've gone ahead and added support for it because why not.
R4 bootstrap has been broken for a while. Trying to use it results in a fat init fail message. The reason seems to be that the DLDI patched binary isn't being used at the encryption stage (bootstrap.nds is used instead of _ds_menu.nds). I have also added a fix for that.