Auto-Fix DWC_Emulator 60000 EC Bug [Vega] - Printable Version +- Mario Kart Wii Gecko Codes, Cheats, & Hacks (https://mariokartwii.com) +-- Forum: Cheat Codes (https://mariokartwii.com/forumdisplay.php?fid=51) +--- Forum: Misc/Other (https://mariokartwii.com/forumdisplay.php?fid=55) +--- Thread: Auto-Fix DWC_Emulator 60000 EC Bug [Vega] (/showthread.php?tid=1483) |
Auto-Fix DWC_Emulator 60000 EC Bug [Vega] - Vega - 03-20-2020 Auto-Fix DWC_Emulator 60000 EC Bug [Vega] NOTICE: This code is to fix an DWC-Emulator-specific 60000 EC bug. What is the DWC-Emulator 60000 bug? It occurs when a user makes a brand new FC on a server that uses the DWC Emulator source. After making said new FC, he/she reconnects and instantly gets EC 60000 even though said person did not get any error codes when the FC was first made. This EC 60000 for that license is there forever until the user deletes the license. However, the bug will still occur again and again for every new DWC Emulator FC made. This code has NOTHING to do with getting a standard EC 60000 due to using a Wiimmfi-made FC on a DWC Emulator server. What this code does: 1. Deletes your Game's Data Save! You have been warned! (too lazy to write extra source to search the Data save and delete the PID of a particular license) 2. Writes a new random generated value to your DWC_Authdata File 3. Returns you back to the Wii Menu 4. Bug is fixed permanently. (You only need to run the code once!) This code executes the moment you boot the game. A visual glitch + brief pause will occur, then you will be back at the Wii Menu. The Wii Menu return function may not work on Dolphin but the code has still been executed. Do NOT run any other codes when using this. NTSC-U C20095F4 0000001F 3FE08016 4800002D 2F746974 6C652F30 30303130 3030342F 35323464 34333435 2F646174 612F726B 7379732E 64617400 7C6802A6 63ECA6EC 7D8803A6 4E800021 2C030000 408200A0 3FC08000 63C61502 38E00002 38600004 7C6903A6 7C8C42E6 38600000 38A00000 548007FF 40820008 38840001 7C6319D6 7CA42A14 7C632A14 5463843E 4200FFF0 B4660002 34E7FFFF 4082FFC4 4800001D 2F736861 72656432 2F445743 5F415554 48444154 41000000 7C6802A6 38800002 63ECADBC 7D8803A6 4E800021 2C030000 4180001C 7C7D1B78 63C41500 38A00020 63ECB220 7D8803A6 4E800021 3D80801A 618C87B8 7D8803A6 4E800020 00000000 PAL C2009634 0000001F 3FE08016 4800002D 2F746974 6C652F30 30303130 3030342F 35323464 34333530 2F646174 612F726B 7379732E 64617400 7C6802A6 63ECA78C 7D8803A6 4E800021 2C030000 408200A0 3FC08000 63C61502 38E00002 38600004 7C6903A6 7C8C42E6 38600000 38A00000 548007FF 40820008 38840001 7C6319D6 7CA42A14 7C632A14 5463843E 4200FFF0 B4660002 34E7FFFF 4082FFC4 4800001D 2F736861 72656432 2F445743 5F415554 48444154 41000000 7C6802A6 38800002 63ECAE5C 7D8803A6 4E800021 2C030000 4180001C 7C7D1B78 63C41500 38A00020 63ECB2C0 7D8803A6 4E800021 3D80801A 618C8858 7D8803A6 4E800020 00000000 NTSC-J C2009590 0000001F 3FE08016 4800002D 2F746974 6C652F30 30303130 3030342F 35323464 34333461 2F646174 612F726B 7379732E 64617400 7C6802A6 63ECA6AC 7D8803A6 4E800021 2C030000 408200A0 3FC08000 63C61502 38E00002 38600004 7C6903A6 7C8C42E6 38600000 38A00000 548007FF 40820008 38840001 7C6319D6 7CA42A14 7C632A14 5463843E 4200FFF0 B4660002 34E7FFFF 4082FFC4 4800001D 2F736861 72656432 2F445743 5F415554 48444154 41000000 7C6802A6 38800002 63ECAD7C 7D8803A6 4E800021 2C030000 4180001C 7C7D1B78 63C41500 38A00020 63ECB1E0 7D8803A6 4E800021 3D80801A 618C8778 7D8803A6 4E800020 00000000 NTSC-K C200973C 0000001F 3FE08016 4800002D 2F746974 6C652F30 30303130 3030342F 35323464 34333462 2F646174 612F726B 7379732E 64617400 7C6802A6 63ECA828 7D8803A6 4E800021 2C030000 408200A0 3FC08000 63C61502 38E00002 38600004 7C6903A6 7C8C42E6 38600000 38A00000 548007FF 40820008 38840001 7C6319D6 7CA42A14 7C632A14 5463843E 4200FFF0 B4660002 34E7FFFF 4082FFC4 4800001D 2F736861 72656432 2F445743 5F415554 48444154 41000000 7C6802A6 38800002 63ECAEF8 7D8803A6 4E800021 2C030000 4180001C 7C7D1B78 63C41500 38A00020 63ECB35C 7D8803A6 4E800021 3D80801A 618C8BB4 7D8803A6 4E800020 00000000 Code creator: Vega Code credits: Megazig Source: #START ASSEMBLY #800095F4 = NTSC-U #80009634 = PAL #80009590 = NTSC-J #8000973C = NTSC-K #Set Code Region .set region, '' #Fill in E, P, J, or K within the quotes for your region when Compiling! Lowercase letters can also be used. #Macros and Statements .macro call_isfs, address ori r12, r31, \address@l mtlr r12 blrl .endm .macro call_nolink address lis r12, \address@h ori r12, r12, \address@l mtlr r12 blr .endm .if (region == 'E' || region == 'e') # RMCE .set ISFS_Delete, 0xA6EC .set ISFS_Open, 0xADBC .set ISFS_Write, 0xB220 .set Wii_Menu, 0x801A87B8 .elseif (region == 'P' || region == 'p') # RMCP .set ISFS_Delete, 0xA78C .set ISFS_Open, 0xAE5C .set ISFS_Write, 0xB2C0 .set Wii_Menu, 0x801A8858 .elseif (region == 'J' || region == 'j') # RMCJ .set ISFS_Delete, 0xA6AC .set ISFS_Open, 0xAD7C .set ISFS_Write, 0xB1E0 .set Wii_Menu, 0x801A8778 .elseif (region == 'K' || region == 'k') # RMCK .set ISFS_Delete, 0xA828 .set ISFS_Open, 0xAEF8 .set ISFS_Write, 0xB35C .set Wii_Menu, 0x801A8BB4 .else # Invalid Region .err .endif #Set Upper 16 bits for ISFS Macro lis r31, 0x8016 #Delete Data Save bl data_save .if (region == 'E' || region == 'e') # RMCE .string "/title/00010004/524d4345/data/rksys.dat" .elseif (region == 'P' || region == 'p') # RMCP .string "/title/00010004/524d4350/data/rksys.dat" .elseif (region == 'J' || region == 'j') # RMCJ .string "/title/00010004/524d434a/data/rksys.dat" .elseif (region == 'K' || region == 'k') # RMCK .string "/title/00010004/524d434b/data/rksys.dat" .else # Invalid Region .err .endif data_save: mflr r3 call_isfs ISFS_Delete cmpwi r3, 0 bne- launch_menu #Generate Random Halfword Value lis r30, 0x8000 ori r6, r30, 0x1502 li r7, 2 gen_rando: li r3, 4 mtctr r3 #LR doesn't need to be backed up for this subroutine mftbl r4 #Seed register li r3, 0 #Square-value register, start at 0 li r5, 0 #Starting Weyl variable, start at 0 clrlwi. r0, r4, 31 #Seed needs to be an odd number bne- weyl_loop addi r4, r4, 1 #Make seed odd weyl_loop: mullw r3, r3, r3 #Square the Value add r5, r4, r5 #Add the constant seed to Weyl variable. Result is new Weyl variable add r3, r3, r5 #Add Weyl variable to squared value srwi r3, r3, 16 #Place upper 16 bits into lower 16 bits, upper 16 bits are now cleared bdnz+ weyl_loop sthu r3, 0x2 (r6) subic. r7, r7, 1 bne+ gen_rando #Final random word is stored at 0x80001504 #Open File bl dwc_authdata .string "/shared2/DWC_AUTHDATA" .align 2 dwc_authdata: mflr r3 li r4, 2 call_isfs ISFS_Open cmpwi r3, 0 blt- launch_menu mr r29, r3 #Write new DWC AUTHDATA; r3 already set ori r4, r30, 0x1500 #Have null word in front of rando value, makes it 100% impossible to exceed AUTHDATA max value li r5, 32 #32 bytes to write call_isfs ISFS_Write #No need for return check or file close, launch menu function is next anyway launch_menu: call_nolink Wii_Menu #END ASSEMBLY RE: (UNTESTED) Auto-Fix ALTWFC 60000 EC Bug [Vega] - Jeffy/Wrath - 03-21-2020 So, can this be used to bypass a server ban because it changes the dwc (i know there is more then just the dwc but im just asking)? RE: (UNTESTED) Auto-Fix ALTWFC 60000 EC Bug [Vega] - Vega - 03-21-2020 No. Not at all. This would be your best bet - https://mkwii.com/showthread.php?tid=547 And just an fyi. This code is to fix the altwfc-specific bug when referring to ec 60000. As in creating a new FC on altwfc then reconnecting online and instantly getting 60000 nonstop literally forever. It's a bug in the dwc network emulator source itself. RE: (UNTESTED) Auto-Fix ALTWFC 60000 EC Bug [Vega] - Vega - 03-22-2020 Got a report by a user that this code worked for him. EDIT: Another user had to use it and it also worked for him RE: Auto-Fix DWC_Emulator 60000 EC Bug [Vega] - Unnamed - 07-26-2023 I can confirm that it worked for me too, p.s.: Man I wish I had known that code earlier. Nice! |