Hacking Nintendont

  • Thread starter Thread starter sabykos
  • Start date Start date
  • Views Views 10,176,568
  • Replies Replies 42,895
  • Likes Likes 194
I just realized that my previous question could have come across as a request as something to be implemented in future versions, which was totally not my intention...so allow me to try asking the question again, but with better clarity:


Outside of physically modding my classic controller or recompiling Nintendont with custom modifications, is there an existing option or configuration setting or the like that I can use to disable Nintendont's function that has the Home button on a classic controller work as a "reset console" button?

Or is it simply not possible to disable the "Home button" = "reset console" function at this time?
 
I just realized that my previous question could have come across as a request as something to be implemented in future versions, which was totally not my intention...so allow me to try asking the question again, but with better clarity:


Outside of physically modding my classic controller or recompiling Nintendont with custom modifications, is there an existing option or configuration setting or the like that I can use to disable Nintendont's function that has the Home button on a classic controller work as a "reset console" button?

Or is it simply not possible to disable the "Home button" = "reset console" function at this time?
Sure you can modify Nintendont's source code to ignore the "Home Button".
 
Sure you can modify Nintendont's source code to ignore the "Home Button".
Err, yeah I know...but I had said "outside of...recompiling Nintendont with custom modifications".

Thing is, I cannot code worth a darn but am very good with hardware to the point that modding the controller itself is way easier for me...but isn't really an ideal solution.
 
Last edited by Nintendo Maniac, , Reason: minor grammar fix
Err, yeah I know...but I had said "outside of...recompiling Nintendont with custom modifications".

Thing is, I cannot code worth a darn but am very good with hardware to the point that modding the controller itself is way easier for me...but isn't really an ideal solution.
I would tag @FIX94 and maybe he'll point you in the right direction.
 
Wii U Game Pad , Wii U Pro Controller , PS3 and PS4 Controllers , GameCube Controllers and XBOX 360 Wired Controllers.

Pro Controller , PS4 , PS3 , XBOX 360 Wired TESTED AT ONCE worked fine.

I am working with Nintendont on a Wii (not the Wii U). I cannot even begin to figure out how to use non-Nintendo controllers with the system. I am definitely missing something. It's been a month and I still have not figured out how to use multiple controllers to play multiplayer GameCube games.

I have 5 PS3, 1 PS4, 3 Wii Classic, and 1 GameCube Wavebird. All of the Wii Classic controllers work and the GC Wavebird work for single player, but they won't work together. I cannot figure out how to troubleshoot it.
 
I don't know if the Nintendont scene is still active, but there seems to be problems with Bloody Roar: Primal Fury.

Game : Bloody Roar: Primal Fury (I can't label the folder as this since Windows doesn't allow colons, so I don't know if that could be causing the problem)
Describe Issue : Randomly freezes during gameplay, roughly around 10 to 20 minutes after starting game.
Region :NTSC
Wii/Wii U : Wii U
Anything else you want to explain: I'm afraid I don't understand a lot of the more technical stuff, though I wonder if whoever tested the game for issues just didn't notice a problem because it can take a while for the game to freeze, and isn't something you'd notice if you were just testing for problems rather than extensively playing it.
 
I don't know if the Nintendont scene is still active, but there seems to be problems with Bloody Roar: Primal Fury.

Game : Bloody Roar: Primal Fury (I can't label the folder as this since Windows doesn't allow colons, so I don't know if that could be causing the problem)
Describe Issue : Randomly freezes during gameplay, roughly around 10 to 20 minutes after starting game.
Region :NTSC
Wii/Wii U : Wii U
Anything else you want to explain: I'm afraid I don't understand a lot of the more technical stuff, though I wonder if whoever tested the game for issues just didn't notice a problem because it can take a while for the game to freeze, and isn't something you'd notice if you were just testing for problems rather than extensively playing it.
They still haven't fixed this? It happened to me in the past too and I was hoping updates would magically fix it.
 
  • Like
Reactions: robco7
I am working with Nintendont on a Wii (not the Wii U). I cannot even begin to figure out how to use non-Nintendo controllers with the system. I am definitely missing something. It's been a month and I still have not figured out how to use multiple controllers to play multiplayer GameCube games.

I have 5 PS3, 1 PS4, 3 Wii Classic, and 1 GameCube Wavebird. All of the Wii Classic controllers work and the GC Wavebird work for single player, but they won't work together. I cannot figure out how to troubleshoot it.
There is an option that sets the number of allowable pads. Make sure it's set to 4. Also you can only use one USB controller at any given time.
 
I have a few questions:

1. I'm looking at the Compatibility list and for the Mario Party GC games all of them say "Needs Custom Patch to use the Widescreen Hack properly." What does this mean and what should I do?

2. When should I use the Force Progressive option in Nintendont?

Thanks!
 
Last edited by Asparagus33,
I currently own a Wii U that I am using Nintedont on along with a Wii Classic Controller Pro. I could use some assistance on manually mapping a Nintendont .ini file to configure my own personal controls.

Some of the games have awkward button mapping that make it difficult to play. For example, I am playing F-Zero GX and by default the boost button was X and the acceleration button was B. They are both opposite of each other, so no matter what even if I rotate the controls with it's controller re-configure option it is still not a comfortable mapping. So I am attempting to manually map my own personal controls.

I don't have a .ini file to edit or use as a template. Could someone help me out and point me in the right direction on how to do this? I would really like to enjoy my games comfortably. Thanks.
 
I currently own a Wii U that I am using Nintedont on along with a Wii Classic Controller Pro. I could use some assistance on manually mapping a Nintendont .ini file to configure my own personal controls.

Some of the games have awkward button mapping that make it difficult to play. For example, I am playing F-Zero GX and by default the boost button was X and the acceleration button was B. They are both opposite of each other, so no matter what even if I rotate the controls with it's controller re-configure option it is still not a comfortable mapping. So I am attempting to manually map my own personal controls.

I don't have a .ini file to edit or use as a template. Could someone help me out and point me in the right direction on how to do this? I would really like to enjoy my games comfortably. Thanks.
Not really an answer, but F-Zero lets you remap everything in-game.
 
  • Like
Reactions: Cloud9Skywalker
you could try to edit "loader/source/ppc/PADReadGC.c" in source and try to compile yourself.

(i had to change myself btn configuration for ssx 4 for classic controller pro)

e.g.:

Code:
diff --git a/common/include/NintendontVersion.h b/common/include/NintendontVersion.h
index f500cb0..dca137b 100644
--- a/common/include/NintendontVersion.h
+++ b/common/include/NintendontVersion.h
@@ -12,6 +12,6 @@

 // "Special" version.
 // This should only be set in custom builds, i.e. not mainline.
-//#define NIN_SPECIAL_VERSION                  "-MChax3"
+#define NIN_SPECIAL_VERSION                    "-ssx_butswap"

 #endif
diff --git a/loader/loader.dol b/loader/loader.dol
index 41735ef..47273e6 100644
Binary files a/loader/loader.dol and b/loader/loader.dol differ
diff --git a/loader/source/ppc/PADReadGC.c b/loader/source/ppc/PADReadGC.c
index 073dfda..a48d624 100644
--- a/loader/source/ppc/PADReadGC.c
+++ b/loader/source/ppc/PADReadGC.c
@@ -743,37 +743,6 @@ u32 _start(u32 calledByGame)
                        if(BTPad[chan].button & BT_TRIGGER_ZR)
                                button |= PAD_TRIGGER_Z;
                }
-               else if(BTPad[chan].used & C_CCP)       //digital triggers
-               {
-                       if(BTPad[chan].button & BT_TRIGGER_ZL)
-                       {
-                               if(BTPad[chan].button & BT_TRIGGER_L)
-                                       Pad[chan].triggerLeft = 0x7F;
-                               else
-                               {
-                                       button |= PAD_TRIGGER_L;
-                                       Pad[chan].triggerLeft = 0xFF;
-                               }
-                       }
-                       else
-                               Pad[chan].triggerLeft = 0;
-
-                       if(BTPad[chan].button & BT_TRIGGER_ZR)
-                       {
-                               if(BTPad[chan].button & BT_TRIGGER_L)
-                                       Pad[chan].triggerRight = 0x7F;
-                               else
-                               {
-                                       button |= PAD_TRIGGER_R;
-                                       Pad[chan].triggerRight = 0xFF;
-                               }
-                       }
-                       else
-                               Pad[chan].triggerRight = 0;
-
-                       if(BTPad[chan].button & BT_TRIGGER_R)
-                               button |= PAD_TRIGGER_Z;
-               }

 // Nunchuck Buttons
                if((BTPad[chan].used & C_NUN) && !(BTPad[chan].button & WM_BUTTON_TWO)) //nunchuck not being configured
@@ -1303,18 +1272,18 @@ u32 _start(u32 calledByGame)
                                goto DoExit;
                }       //end nunchuck configs

-               if(BTPad[chan].used & (C_CC | C_CCP))
+               if(BTPad[chan].used & C_CC)
                {
                        if(BTPad[chan].used & C_SWAP)
-                       {       /* turn buttons quarter clockwise */
-                               if(BTPad[chan].button & BT_BUTTON_B)
-                                       button |= PAD_BUTTON_A;
-                               if(BTPad[chan].button & BT_BUTTON_Y)
-                                       button |= PAD_BUTTON_B;
-                               if(BTPad[chan].button & BT_BUTTON_A)
-                                       button |= PAD_BUTTON_X;
-                               if(BTPad[chan].button & BT_BUTTON_X)
-                                       button |= PAD_BUTTON_Y;
+                        {/* turn buttons quarter clockwise */
+                                if(BTPad[chan].button & BT_BUTTON_B)
+                                        button |= PAD_BUTTON_A;
+                                if(BTPad[chan].button & BT_BUTTON_Y)
+                                        button |= PAD_BUTTON_B;
+                                if(BTPad[chan].button & BT_BUTTON_A)
+                                        button |= PAD_BUTTON_X;
+                                if(BTPad[chan].button & BT_BUTTON_X)
+                                        button |= PAD_BUTTON_Y;
                        }
                        else
                        {
@@ -1341,7 +1310,78 @@ u32 _start(u32 calledByGame)

                        if(BTPad[chan].button & BT_BUTTON_HOME)
                                goto DoExit;
-               }
+               }
+
+                if(BTPad[chan].used & C_CCP)   //classic controller pro with digital triggers setup
+               {
+                       if(BTPad[chan].button & BT_TRIGGER_ZL)
+                       {
+                               if(BTPad[chan].button & BT_TRIGGER_L)
+                                       Pad[chan].triggerLeft = 0x7F;
+                               else
+                               {
+                                       button |= PAD_TRIGGER_L;
+                                       Pad[chan].triggerLeft = 0xFF;
+                               }
+                       }
+                       else
+                               Pad[chan].triggerLeft = 0;
+
+                       if(BTPad[chan].button & BT_TRIGGER_ZR)
+                       {
+                               if(BTPad[chan].button & BT_TRIGGER_L)
+                                       Pad[chan].triggerRight = 0x7F;
+                               else
+                               {
+                                       button |= PAD_TRIGGER_R;
+                                       Pad[chan].triggerRight = 0xFF;
+                               }
+                       }
+                       else
+                               Pad[chan].triggerRight = 0;
+
+                        if(BTPad[chan].used & C_SWAP)
+                        {/* turn buttons quarter clockwise */
+                                if(BTPad[chan].button & BT_BUTTON_B)
+                                        button |= PAD_BUTTON_A;
+                                if(BTPad[chan].button & BT_BUTTON_Y)
+                                        button |= PAD_BUTTON_B;
+                                if(BTPad[chan].button & BT_BUTTON_A)
+                                        button |= PAD_BUTTON_X;
+                                if(BTPad[chan].button & BT_BUTTON_X)
+                                        button |= PAD_TRIGGER_Z;
+                                // switch X and R Button for games like ssx4
+                                if(BTPad[chan].button & BT_TRIGGER_R)
+                                        button |= PAD_BUTTON_Y;
+                       }
+                       else
+                       {
+                                if(BTPad[chan].button & BT_BUTTON_A)
+                                       button |= PAD_BUTTON_A;
+                               if(BTPad[chan].button & BT_BUTTON_B)
+                                       button |= PAD_BUTTON_B;
+                               if(BTPad[chan].button & BT_BUTTON_X)
+                                       button |= PAD_BUTTON_X;
+                               if(BTPad[chan].button & BT_BUTTON_Y)
+                                       button |= PAD_BUTTON_Y;
+                                if(BTPad[chan].button & BT_TRIGGER_R)
+                                        button |= PAD_TRIGGER_Z;
+                        }
+                        if(BTPad[chan].button & BT_BUTTON_START)
+                               button |= PAD_BUTTON_START;
+
+                       if(BTPad[chan].button & BT_DPAD_LEFT)
+                               button |= PAD_BUTTON_LEFT;
+                       if(BTPad[chan].button & BT_DPAD_RIGHT)
+                               button |= PAD_BUTTON_RIGHT;
+                       if(BTPad[chan].button & BT_DPAD_DOWN)
+                               button |= PAD_BUTTON_DOWN;
+                       if(BTPad[chan].button & BT_DPAD_UP)
+                               button |= PAD_BUTTON_UP;
+
+                       if(BTPad[chan].button & BT_BUTTON_HOME)
+                               goto DoExit;
+               }

                Pad[chan].button = button
 
sorry for double post:

I changed boost btn:
- in "normal" mode: x is boost btn (a = accelerate, b = brake)
- in "swap" mode (after pressing -): a is boost (b = accelerate, y = brake)

you can either use this patch and compile yourself:
Code:
diff --git a/common/include/NintendontVersion.h b/common/include/NintendontVersion.h
index ebb8537..3e7cd12 100644
--- a/common/include/NintendontVersion.h
+++ b/common/include/NintendontVersion.h
@@ -12,6 +12,6 @@

 // "Special" version.
 // This should only be set in custom builds, i.e. not mainline.
-//#define NIN_SPECIAL_VERSION                  "-MChax3"
+#define NIN_SPECIAL_VERSION                    "-F-Zero_AX_better_boost_btn"

 #endif
diff --git a/loader/source/ppc/PADReadGC.c b/loader/source/ppc/PADReadGC.c
index d262103..55d50c4 100644
--- a/loader/source/ppc/PADReadGC.c
+++ b/loader/source/ppc/PADReadGC.c
@@ -1311,9 +1311,9 @@ u32 _start(u32 calledByGame)
                                if(BTPad[chan].button & BT_BUTTON_Y)
                                        button |= PAD_BUTTON_B;
                                if(BTPad[chan].button & BT_BUTTON_A)
-                                       button |= PAD_BUTTON_X;
-                               if(BTPad[chan].button & BT_BUTTON_X)
                                        button |= PAD_BUTTON_Y;
+                               if(BTPad[chan].button & BT_BUTTON_X)
+                                       button |= PAD_BUTTON_X;
                        }
                        else
                        {
@@ -1322,9 +1322,9 @@ u32 _start(u32 calledByGame)
                                if(BTPad[chan].button & BT_BUTTON_B)
                                        button |= PAD_BUTTON_B;
                                if(BTPad[chan].button & BT_BUTTON_X)
-                                       button |= PAD_BUTTON_X;
-                               if(BTPad[chan].button & BT_BUTTON_Y)
                                        button |= PAD_BUTTON_Y;
+                               if(BTPad[chan].button & BT_BUTTON_Y)
+                                       button |= PAD_BUTTON_X;
                        }
                        if(BTPad[chan].button & BT_BUTTON_START)
                                button |= PAD_BUTTON_START;

(use git apply)

or use loader.dol in attachement (rename to boot.dol and put in nintendont folder on sd card)
 

Attachments

Hello. Instead of making a new thread I decided to ask for help here first.
Just a disclaimer, I load all of my games through USB Loader GX. It is easy that way, and it looks nice.

Okay so I am having trouble playing TTYD in 16:9. I check on the compatibility thread and it said it: "Needs Custom Patch to use the Widescreen Hack with a proper HUD."
Problem is, I can't find said custom patch, no matter where I look. I have a hunch it is a cheat code I have to use, but I don't know where to get those either. I keep
hearing about a site called GeckoCodes, but the TTYD isn't on there in the first place. I have tried to do my own research, but I am confused. If anyone could help I would appreciate it.

Regardless, I will continue trying to solve it on my own.
 
Hello. Instead of making a new thread I decided to ask for help here first.
Just a disclaimer, I load all of my games through USB Loader GX. It is easy that way, and it looks nice.

Okay so I am having trouble playing TTYD in 16:9. I check on the compatibility thread and it said it: "Needs Custom Patch to use the Widescreen Hack with a proper HUD."
Problem is, I can't find said custom patch, no matter where I look. I have a hunch it is a cheat code I have to use, but I don't know where to get those either. I keep
hearing about a site called GeckoCodes, but the TTYD isn't on there in the first place. I have tried to do my own research, but I am confused. If anyone could help I would appreciate it.

Regardless, I will continue trying to solve it on my own.
the dolphin wiki has these codes:
https://wiki.dolphin-emu.org/index.php?title=Paper_Mario:_The_Thousand-Year_Door
 
Seems not original will motes in nintendont (with that motion + at least) not support (and same for classic controller),is it like this for everyone?
 

Site & Scene News

Popular threads in this forum