diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 3740a5f..cc21807 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -26,7 +26,7 @@ **Luma3DS version:** -[e.g. 7.1 stable or if using nightly/hourly specify the commit like this https://github.com/AuroraWright/Luma3DS/commit/9570e6cbeca53128433abbf5e3473cb8a07fe69e] +[e.g. 8.1 stable or if using nightly/hourly specify the commit like this https://github.com/AuroraWright/Luma3DS/commit/9570e6cbeca53128433abbf5e3473cb8a07fe69e] diff --git a/k11_extension/include/svc/SetWifiEnabled.h b/k11_extension/include/svc/SetWifiEnabled.h index c7d31e1..ab5bdd5 100644 --- a/k11_extension/include/svc/SetWifiEnabled.h +++ b/k11_extension/include/svc/SetWifiEnabled.h @@ -30,4 +30,4 @@ #include "kernel.h" #include "svc.h" -void SetWifiEnabled(bool enable); +Result SetWifiEnabled(bool enable); diff --git a/k11_extension/source/svc/SetWifiEnabled.c b/k11_extension/source/svc/SetWifiEnabled.c index 59596d7..38ff0a2 100644 --- a/k11_extension/source/svc/SetWifiEnabled.c +++ b/k11_extension/source/svc/SetWifiEnabled.c @@ -26,10 +26,12 @@ #include "svc/SetWifiEnabled.h" -void SetWifiEnabled(bool enable) +Result SetWifiEnabled(bool enable) { if(enable) CFG11_WIFICNT |= 1; else CFG11_WIFICNT &= ~1; + + return 0; } diff --git a/sysmodules/loader/patches/romfsredir.s b/sysmodules/loader/patches/romfsredir.s index a162fd5..023fff8 100644 --- a/sysmodules/loader/patches/romfsredir.s +++ b/sysmodules/loader/patches/romfsredir.s @@ -74,10 +74,10 @@ _start: ; Skip a slash if there are two after the mountpoint, ; as some games mistakenly have those ldrh r3, [r1, #2] - cmp r3, #0x2F ; '/' + cmp r3, #0x2F ; '/' pathRedir_3: ldrh r2, [r1], #2 - strneh r2, [r0], #2 + strneh r2, [r0], #2 cmp r2, #0 bne pathRedir_3 ldmfd sp!, {r0-r3} diff --git a/sysmodules/rosalina/include/draw.h b/sysmodules/rosalina/include/draw.h index 24afccc..3ae0198 100644 --- a/sysmodules/rosalina/include/draw.h +++ b/sysmodules/rosalina/include/draw.h @@ -63,6 +63,7 @@ #define COLOR_TITLE RGB565(0x00, 0x26, 0x1F) #define COLOR_WHITE RGB565(0x1F, 0x3F, 0x1F) #define COLOR_RED RGB565(0x1F, 0x00, 0x00) +#define COLOR_GREEN RGB565(0x00, 0x1F, 0x00) #define COLOR_BLACK RGB565(0x00, 0x00, 0x00) #define DRAW_MAX_FORMATTED_STRING_SIZE 512 diff --git a/sysmodules/rosalina/include/menus/miscellaneous.h b/sysmodules/rosalina/include/menus/miscellaneous.h index f5bebb6..c628c65 100644 --- a/sysmodules/rosalina/include/menus/miscellaneous.h +++ b/sysmodules/rosalina/include/menus/miscellaneous.h @@ -35,5 +35,6 @@ void MiscellaneousMenu_SwitchBoot3dsxTargetTitle(void); void MiscellaneousMenu_ChangeMenuCombo(void); void MiscellaneousMenu_SaveSettings(void); void MiscellaneousMenu_InputRedirection(void); +void MiscellaneousMenu_ToggleWireless(void); void MiscellaneousMenu_PowerOff(void); void MiscellaneousMenu_Reboot(void); diff --git a/sysmodules/rosalina/source/menus/miscellaneous.c b/sysmodules/rosalina/source/menus/miscellaneous.c index 7073382..797046d 100644 --- a/sysmodules/rosalina/source/menus/miscellaneous.c +++ b/sysmodules/rosalina/source/menus/miscellaneous.c @@ -37,12 +37,13 @@ Menu miscellaneousMenu = { "Miscellaneous options menu", - .nbItems = 6, + .nbItems = 7, { { "Switch the hb. title to the current app.", METHOD, .method = &MiscellaneousMenu_SwitchBoot3dsxTargetTitle }, { "Change the menu combo", METHOD, .method = MiscellaneousMenu_ChangeMenuCombo }, { "Save settings", METHOD, .method = &MiscellaneousMenu_SaveSettings }, { "Start InputRedirection", METHOD, .method = &MiscellaneousMenu_InputRedirection }, + { "Toggle Wireless", METHOD, .method = &MiscellaneousMenu_ToggleWireless }, { "Power off", METHOD, .method = &MiscellaneousMenu_PowerOff }, { "Reboot", METHOD, .method = &MiscellaneousMenu_Reboot }, } @@ -335,6 +336,39 @@ void MiscellaneousMenu_InputRedirection(void) while(!(waitInput() & BUTTON_B) && !terminationRequest); } +void MiscellaneousMenu_ToggleWireless(void) +{ + Draw_Lock(); + Draw_ClearFramebuffer(); + Draw_FlushFramebuffer(); + Draw_Unlock(); + + do + { + Draw_Lock(); + Draw_DrawString(10, 10, COLOR_TITLE, "Miscellaneous options menu"); + Draw_DrawString(10, 30, COLOR_WHITE, "Press A to toggle, press B to go back."); + Draw_DrawString(10, 40, COLOR_WHITE, "Current status:"); + + u8 wireless = (*(vu8 *)((0x10140000 | (1u << 31)) + 0x180)); + Draw_DrawString(100, 40, (wireless ? COLOR_GREEN : COLOR_RED), (wireless ? " ON " : " OFF")); + Draw_FlushFramebuffer(); + Draw_Unlock(); + + u32 pressed = waitInputWithTimeout(1000); + + if(pressed & BUTTON_A) + { + nwmExtInit(); + NWMEXT_ControlWirelessEnabled(!wireless); + nwmExtExit(); + } + else if(pressed & BUTTON_B) + return; + } + while(!terminationRequest); +} + void MiscellaneousMenu_Reboot(void) { Draw_Lock();