Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dance Dance Revolution Mario Mix Dance Mat Left + Right issue #572

Closed
Shadowfied opened this issue Mar 25, 2018 · 6 comments
Closed

Dance Dance Revolution Mario Mix Dance Mat Left + Right issue #572

Shadowfied opened this issue Mar 25, 2018 · 6 comments

Comments

@Shadowfied
Copy link

Dance Mats aren't working properly on Nintendont on Wii U with the official GameCube Adapter.

Left and right can't be pressed simultaneously, nor can one of them be held as the other is pressed, both making the game completely unplayable.

I've tried enabling Native Control as suggested in another issue, but this makes it even worse for me (when for example left is held, and right is pressed, it presses left again once right is released).

Any fix for this?

@carnage702
Copy link
Collaborator

native mode only works on wii s with gamecube ports not wiius, its probably the fault of the way it was designed the wiiu gc adapter, since we cant change how it reads comands.

@Shadowfied
Copy link
Author

Well, is it the GameCube adapter that refuses left and right at the same time, or is that built in to Nintendont as it would normally be impossible on a controller?

@carnage702
Copy link
Collaborator

its impossible on a controller, you canot press left and right at same time on a dpad. the ddrpad emulates gc dpad.

@fancythedeveloper
Copy link

@Shadowfied Did the DDRMX Mat work normally in a real GC or on a Wii with GC ports?

@geogolem
Copy link

geogolem commented Aug 25, 2020

I don't mean to hit an old issue - but I am sort of trying to look into seeing if anything can be done to get Nintendont to handle the dance mat properly. It should be possible since it appears that it is possible with the dolphin emulator on PC to use the GC adapter with GC dance mat.. I made some comments here: #527

I also found this in the source code but i am still sort of looking into this:
https://github.com/dolphin-emu/dolphin/blob/e68e99ef7118cb73fde1f2ac9ec95b1a20c37909/Source/Core/Core/HW/SI/SI_DeviceDanceMat.cpp

EDIT: I am wondering if something can be done in: https://github.com/FIX94/Nintendont/blob/master/loader/source/ppc/PADReadGC/source/PADReadGC.c

if ((HID_CTRL->VID == 0x057E) && (HID_CTRL->PID == 0x0337))	//Nintendo WiiU Gamecube Adapter
			{
				// 0x04=port powered 0x10=normal controller 0x22=wavebird communicating
				if (((HID_Packet[1] & 0x10) == 0)	//normal controller not connected
				 && ((HID_Packet[1] & 0x22) != 0x22))	//wavebird not connected
				{
					*HIDMotor &= ~(1 << chan); //make sure to disable rumble just in case
					continue;	//try next controller
				}
				if(((MotorCommand[chan]&3) == 1) && (HID_Packet[1] & 0x04))	//game wants rumbe and controller has power for rumble.
					*HIDMotor |= (1 << chan);
				else
					*HIDMotor &= ~(1 << chan);

				if ((HID_Packet[HID_CTRL->StickX.Offset] < 5)		//if connected device is a bongo

perhaps using information from dolphin found here: https://github.com/dolphin-emu/dolphin/blob/e68e99ef7118cb73fde1f2ac9ec95b1a20c37909/Source/Core/Core/HW/SI/SI_DeviceDanceMat.cpp

bool CSIDevice_DanceMat::GetData(u32& hi, u32& low)
{
  CSIDevice_GCController::GetData(hi, low);

  // Identifies the dance mat
  low = 0x8080ffff;

  return true;
}

EDIT: I have no idea - i am just looking through the code so if anybody happens along this and has any insight it would be appreciated. thanks

@geogolem
Copy link

I managed to get this fixed with a very small code change to Nintendont. Most of the details are documented here: #527

I opened a Pull request here: #805

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants