munia icon indicating copy to clipboard operation
munia copied to clipboard

GCN --> N64: must unplug N64 controller to use the GCN controller in GCN-->N64 mode

Open joeydumont opened this issue 7 years ago • 4 comments

Firmware version: 1.5 HW revision: rev2 Microcontroller: 0x5c20 µC revision: 2

As the title says, to be able to use the Gamecube controller on N64, I have to start the MUNIA with both the N64 and GCN controller plugged in, and then unplug the N64 controller and switch to the GCN controller in the MUNIA config.

I assume that the intended behaviour is that input from the GCN controller is always polled, regardless of the MUNIA config in the software, and regardless of whether the N64 controller is plugged in. I also assume that the MUNIA config dialog should only impact which controller the input display uses, not select the inputs that are sent to the actual N64 console. Is that correct?

If not, is it possible to implement this behaviour? To be, this would be a good default configuration. It would be even better if the input display could read inputs from multiple controllers at once, but if I'm not mistaken that's not possible, at least right now?

joeydumont avatar Nov 11 '17 21:11 joeydumont

This also happens with firmware 1.6. My N64 is a NUS-001, if that matters.

joeydumont avatar Dec 11 '17 16:12 joeydumont

Is this only related to SM64 or does it also apply to other N64 titles that test whether a controller is inserted before allowing you to start the game?

For some background: GCN --> N64 mode (and vice-versa) are a little troublesome due to a limitation of the hardware design. The consoles perform the polling of what they think is an original device. The MUNIA needs to quickly respond to this. In order to do so, we need a port on the microcontroller with interrupt on change. Each type of joystick is connected to such a port. Next, for each console type there's a switch that allows me to connect the console to either this faked output or to the actual controller.

It's quite troublesome that the 'fake output' port does not have an interrupt on change capability. Because of this, I need the switch mentioned before to connect the console data line to the joystick data line, so that we can use the interrupt on change notification from that port and quickly respond there. However, if the joystick were plugged in, then the joystick would respond by itself. So basically, the target consoles' original joystick must explicitly not be plugged in for the cross-console functionality to work.

zzattack avatar Apr 25 '18 09:04 zzattack

I think I only tested with SM64. I can test with other games, although from what you're saying, the behaviour I'm looking for is impossible to achieve with the MUNIA. It's good to know for sure, at least!

joeydumont avatar Apr 25 '18 13:04 joeydumont

It might be possible if we inspect the partial frame sent on initialization of the n64 controller. I'll have to dig into that.

On Wed, Apr 25, 2018 at 3:50 PM, Joey Dumont [email protected] wrote:

I think I only tested with SM64. I can test with other games, although from what you're saying, the behaviour I'm looking for is impossible to achieve with the MUNIA. It's good to know for sure, at least!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/zzattack/munia/issues/5#issuecomment-384293949, or mute the thread https://github.com/notifications/unsubscribe-auth/AAy9vjWtuvpOiUS9lsV0gv-CJrM3COQ_ks5tsH89gaJpZM4QaomU .

zzattack avatar Apr 25 '18 15:04 zzattack