FIX94 / Nintendont

A Wii Homebrew Project to play GC Games on Wii and vWii on Wii U
1.95k stars 326 forks source link

do not override WiiUGamepadSlot to 0 when NIN_CFG_AUTO_BOOT and HID_PAD_NONE #1054

Closed ghostserverd closed 1 year ago

ghostserverd commented 1 year ago

Right now in autoboot mode, if HID_PAD_NONE, the configured WiiUGamepadSlot gets overwritten as 0.

This change keeps the same logic for HIDPad != HID_PAD_NONE but keeps the configured WiiUGamepadSlot otherwise.

This should hopefully be the first step to allow supporting WiiUGamepadSlot for injectors like UWUVCI and TeconMoon's.

carnage702 commented 1 year ago

So what is your goal here? the reason this line exists

          if (((NIN_CFG*)0x93004000)->Config & NIN_CFG_AUTO_BOOT)
           {
            if(HIDPad == HID_PAD_NONE)
            WiiUGamepadSlot = 0;
            else
            WiiUGamepadSlot = 1;
            }

is because for some reason when you autoboot nintendont cant read the wiiugamepad slot number so the gamepad wouldnt get assigned to any slot therefore it doesnt work.

All you did was make gamepad player 2 if there is an hid controller connected, did you even tryed without any hid controller connected to see if the wiiugamepad worked? because im guessing it wont since you never assigned it to player 1(0), nintendont doesnt read wiiugamepad slot if autoboots so im asking again did you tryed to use wiiugamepad with autoboot without having an hid controller plugged in?

ghostserverd commented 1 year ago

So what is your goal here? the reason this line exists

          if (((NIN_CFG*)0x93004000)->Config & NIN_CFG_AUTO_BOOT)
           {
            if(HIDPad == HID_PAD_NONE)
            WiiUGamepadSlot = 0;
            else
            WiiUGamepadSlot = 1;
            }

is because for some reason when you autoboot nintendont cant read the wiiugamepad slot number so the gamepad wouldnt get assigned to any slot therefore it doesnt work.

All you did was make gamepad player 2 if there is an hid controller connected, did you even tryed without any hid controller connected to see if the wiiugamepad worked? because im guessing it wont since you never assigned it to player 1(0), nintendont doesnt read wiiugamepad slot if autoboots so im asking again did you tryed to use wiiugamepad with autoboot without having an hid controller plugged in?

I thought I was testing with a clean version of the autoboot forwarder, but I must have been testing with a patched version that passes the full NIN_CFG in memory instead of truncating it. Sorry for missing that.

Latest revision patches the issue with loading corrupted / random bytes into WiiUGamepadSlot.

See https://github.com/FIX94/nintendont-autoboot-forwarder/pull/7 for a more detailed explanation of why this is happening.