Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 646
» Latest member: Luca1337
» Forum threads: 1,815
» Forum posts: 14,000

Full Statistics

Online Users
There are currently 95 online users.
» 1 Member(s) | 91 Guest(s)
Applebot, Bing, Google, Vega

Latest Threads
Allow Pausing Before Race...
Forum: Offline Non-Item
Last Post: Vega
12 minutes ago
» Replies: 0
» Views: 2
Top 10 Most Influential C...
Forum: Coding & Hacking General Discussion
Last Post: Vega
4 hours ago
» Replies: 2
» Views: 7,338
Show Ice Cube on Online P...
Forum: Online Non-Item
Last Post: _Ro
11 hours ago
» Replies: 0
» Views: 30
CPU Control Cycler [Ro]
Forum: Offline Non-Item
Last Post: _Ro
Today, 07:56 AM
» Replies: 7
» Views: 1,008
Thunder Cloud Effect Modi...
Forum: Offline; Item
Last Post: JerryHatrick
Yesterday, 11:13 PM
» Replies: 11
» Views: 1,088
MKW Coder/Developer of th...
Forum: Coding & Hacking General Discussion
Last Post: Vega
Yesterday, 09:10 PM
» Replies: 10
» Views: 13,828
Make it to 10,000
Forum: General Discussion
Last Post: Vega
Yesterday, 08:15 PM
» Replies: 7,338
» Views: 5,670,621
Miniturbos and Inside Dri...
Forum: Coding & Hacking General Discussion
Last Post: JerryHatrick
Yesterday, 09:54 AM
» Replies: 1
» Views: 858
Code request???
Forum: Code Support / Help / Requests
Last Post: DrTap
01-09-2025, 06:06 PM
» Replies: 3
» Views: 4,956
CPUs/Online Players Have ...
Forum: Visual & Sound Effects
Last Post: Zeraora
01-09-2025, 02:26 AM
» Replies: 2
» Views: 513

 
  ALTWFC Friend Code List + Online Session Updates
Posted by: Vega - 07-29-2019, 11:47 PM - Forum: Purgatory - Replies (23)

Here are a list of FC's of members (on the forum and/or discord) who play on ALTWFC sometimes...

Keep in mind, there is no OPENHOST feature on ALTWFC. Both users must add each other to see each other. Because of this, it's best to keep in contact with other racers via Discord instead of here at the Forums.

Most of time, we desire to play legit. That's how we roll. Especially on frooms.

For more info about the Discord Server and how to join - https://mkwii.com/showthread.php?tid=736

Vega - 2534-0317-1422
Vega's Dolphin BOT (used to help start WW's) - 4810-3643-0898
Star - 0773-0951-3842
Addict/Elimna - 1632-0884-9204
RoGamer - 3350-0755-2520
Dorian - 4380-8676-8510 & 4552-6664-1748
Sponge - 5454-6095-3779
Jeffy/Wrath - 5025-1127-9994 & 1717-9879-1438
Joshua - 3049-4278-6773
Kyle - 1374-3906-1734
420Matt - 2405-1826-7968
Seeky - 2619-9311-3520
Mookie - 1417-3402-3730
Astronomical/Landon - 0515-3971-6279
Luna - 3178-2767-2785
Bawp - 4380-8675-7071

Print this item

  Guide to access ALTWFC w/ Dolphin (Linux-Debian)
Posted by: Vega - 07-29-2019, 06:10 PM - Forum: Purgatory - No Replies

NOTE: this thread is being kept in purgatory for my personal use just in case a new diff mkw (altwfc type) server is launched and they use the DNS method to connect only. If you want to connect to ALTWFC is Dolphin, go to this thread - https://mkwii.com/showthread.php?tid=1183

Guide to access ALTWFC w/ Dolphin (Linux-Debian)

NOTE: For Dolphin Emulator use only
NOTE: This is for Linux computers only 
NOTE: This is for Debian 9 or 10 only. (You should be able to do something similar to make this work on Ubuntu)
NOTE: You need root access on your Linux machine

This guide assumes the following:
You already have dolphin installed and know how to run it. Guide - http://mkwii.com/showthread.php?tid=625
You already know how to apply cheat codes in Dolphin. Guide - http://mkwii.com/showthread.php?tid=1138

NOTE: There's no need to edit any DNS settings in the Wii's System Menu Internet settings within Dolphin



1. Launch terminal. Enter the following command...

echo 'make_resolv_conf() { :; }' > /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone

2. Now enter in this command...

chmod 755 /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone

3. Open the file: /etc/dhcp/dhclient.conf
4. Enter the following at the bottom of the file....

supersede domain-name "nintendowifi.net";
prepend domain-name-servers 172.104.88.237;

5. Save changes, close file
6. Reboot your computer.
7. You will need this cheat code - https://mkwii.com/showthread.php?tid=56
8. Launch Dolphin, apply the cheat code, launch your ISO/WBFS. Connect on wifi. If you got EC 20100, something else is overriding your applied DNS settings. Do you have dnsmasq installed? Remove it. Do you have custom settings in Network Manager? Remove it. Do you have something in your /etc/hosts file making nintendowifi.net not point to the IP? Remove it. Do you have bind installed? Remove it.

Print this item

Information How to Play on ALTWFC
Posted by: JoshuaMK - 07-29-2019, 02:56 AM - Forum: Purgatory - Replies (10)

How to Play on ALTWFC

Credits:
ALTWFC by Polaris
Domain Changer Code by Vega
No SSL Code by Fix94
USB Loader GX by Cyan & Dimok
Brainslug by Chadderz



NOTICE: If you are using any Method below that requires the use of cheat codes, then it is recommended to also equip the codes in this thread -> https://mkwii.com/showthread.php?tid=1182



Using the Wii Console:



Method #1 (GCT w/ Cheat Code)

Requirements:
~HBC Installed
~Know how to make GCTs. Tutorial for that is here -> https://mkwii.com/showthread.php?tid=37
~Know how to apply codes for your game via your favorite Disc or ISO loader

1. Make a GCT with the following code (the code works on any region of MKWii)...

Code:
C0000000 0000000E
3C004E80 60000020
900F0000 3D808000
618C3000 3C00017F
6000CFFC 7C0903A6
3D607474 616B7073
800C0000 7C005800
40A20034 394C0003
392C0002 7D455378
38600000 8C050001
2C000000 38630001
4082FFF4 8C0A0001
9C090001 3463FFFF
4082FFF4 398C0001
4200FFC0 4E800020
C0000000 00000029
3C004E80 60000020
900F0000 7D8802A6
9421FF80 BC610008
48000019 7A776569
2E6D6F65 00000000
00000000 00000000
7F2802A6 3AC0FFFF
3B19FFFF 8EF80001
2C170000 3AD60001
4082FFF4 3E208000
8B9F5F27 623E2FFF
2C1C00EC 623FF1F0
41820020 2C1C0010
623FF114 41820014
2C1C0054 623FF258
41820008 623FE690
3E202E6E 6231696E
3F80017F 639CCFFC
87BE0001 7C1D8800
4182001D 379CFFFF
4082FFF0 B8610008
38210080 7D8803A6
4E800020 7F4802A6
7FDBF378 3B19FFFF
7ED0B378 8EF80001
9EFB0001 3610FFFF
4082FFF4 3A800010
7E96A051 41820064
7E54DA14 8A720001
2C13002F 41A20014
9E7B0001 3694FFFF
4082FFF8 48000044
38920001 387B0001
38C4FFFF 38A00000
8CE60001 2C070000
38A50001 4082FFF4
3A05FFFE 7FE803A6
4E800021 7E101A14
39E00000 9DF00001
3694FFFF 4082FFF8
7F4803A6 4E800020

Add any extra codes if desired.

2. Add the GCT to your codes folder of your SD card.
3. Use w/e loader you like to play with. Make sure Cheats/Ocarina is turned ON. Launch game. Connect to wifi. Congratz.

Method #2 (Disc w/o any Codes)

Requirements:
~HBC Installed

1. Go to your Wii Settings, then to Internet
2. Choose the Connection your are currently using
3. Go to Change Settings
4. Click Left until you see the Auto-Obtain DNS Settings
5. Change it from Yes to No and click on Advance Settings.
6. Enter 172.104.88.237 for Primary and Secondary DNS Settings
7. Save settings and complete the Connection Test, exit back to Wii Main Menu
8. Click on this Link HERE to download Brain Slug
9. Extract/Unzip the download
10. Move apps folder and bslug folder to root of SD card
11. SD into Wii, insert MKW disc, launch HBC
12. Launch the Brain Slug app
13. Connect to WiFi, congratz

Method #3 (ISO w/o any Cheat Codes)

Requirments:
~HBC Installed
~USB Loader GX Revision 1265 or later

1. Go to your Wii Settings, then to Internet
2. Choose the Connection your are currently using
3. Go to Change Settings
4. Click Left until you see the Auto-Obtain DNS Settings
5. Change it from Yes to No and click on Advance Settings.
6. Enter 172.104.88.237 for Primary and Secondary DNS Settings
7. Save settings and complete the Connection Test, exit back to Wii Main Menu
8. Add an unmodified/clean ISO/WBFS to your USB Stick
9. Launch HBC, launch USB Loader GX
10. Go to Settings, then Loader Settings
11. Change Private Server to NoSSL
12. Launch Game, connect to Wifi, congratz



Using Dolphin Emulator:



Method (Cheat Code)

Requirements:
~Internet Settings already configured and working
~Know how to apply Cheat Codes in Dolphin

1. Apply the following code

Code:
C0000000 0000000E
3C004E80 60000020
900F0000 3D808000
618C3000 3C00017F
6000CFFC 7C0903A6
3D607474 616B7073
800C0000 7C005800
40A20034 394C0003
392C0002 7D455378
38600000 8C050001
2C000000 38630001
4082FFF4 8C0A0001
9C090001 3463FFFF
4082FFF4 398C0001
4200FFC0 4E800020
C0000000 00000029
3C004E80 60000020
900F0000 7D8802A6
9421FF80 BC610008
48000019 7A776569
2E6D6F65 00000000
00000000 00000000
7F2802A6 3AC0FFFF
3B19FFFF 8EF80001
2C170000 3AD60001
4082FFF4 3E208000
8B9F5F27 623E2FFF
2C1C00EC 623FF1F0
41820020 2C1C0010
623FF114 41820014
2C1C0054 623FF258
41820008 623FE690
3E202E6E 6231696E
3F80017F 639CCFFC
87BE0001 7C1D8800
4182001D 379CFFFF
4082FFF0 B8610008
38210080 7D8803A6
4E800020 7F4802A6
7FDBF378 3B19FFFF
7ED0B378 8EF80001
9EFB0001 3610FFFF
4082FFF4 3A800010
7E96A051 41820064
7E54DA14 8A720001
2C13002F 41A20014
9E7B0001 3694FFFF
4082FFF8 48000044
38920001 387B0001
38C4FFFF 38A00000
8CE60001 2C070000
38A50001 4082FFF4
3A05FFFE 7FE803A6
4E800021 7E101A14
39E00000 9DF00001
3694FFFF 4082FFF8
7F4803A6 4E800020

2. Add any extra codes if desired. Launch emulation. Connect to wifi. Congratz.

Print this item

  Recommended Codes to Use When Playing on DWC-Emulator
Posted by: Vega - 07-28-2019, 04:21 PM - Forum: Coding & Hacking General Discussion - No Replies

Here are some codes I recommend the average user to always add on when going onto any Wii+DS Server that uses the DWC-Emulator source (such as the former server of ALTWFC).



RCE Protection - https://mkwii.com/showthread.php?tid=1543
Summary: Playing any server other than Wiimmfi without this code means any player you connect to can run code on your Wii, which you do not want to happen.

Remove Nintendo VR Algorithm - http://mkwii.com/showthread.php?tid=58
Summary: Normally if a user with 5000 VR is searching in a WW with another user searching with 9999 VR, they will never find each other. This code removes that annoyance. 

No Disconnect - http://mkwii.com/showthread.php?tid=55
Summary: Prevents you from disconnecting due to going backwards (in WW's), or being idle in race.

Force Room CC (Set X to 2) - http://mkwii.com/showthread.php?tid=109
Summary: If the HOST of the WW/Room has this code on, every race will be 150cc

Codes that can prevent some hackers from freezing you
Anti-Freeze from Blooper De-limiters - http://mkwii.com/showthread.php?tid=264
Anti-Freeze from POW De-limiters - http://mkwii.com/showthread.php?tid=265
Anti-Freeze from Shock De-imiters - http://mkwii.com/showthread.php?tid=251
Exception Recovery - http://mkwii.com/showthread.php?tid=1164
Impervious - http://mkwii.com/showthread.php?tid=1687
Invalid FC Anti-Freeze - http://mkwii.com/showthread.php?tid=1264
Thwomp Anti-Freeze - http://mkwii.com/showthread.php?tid=1265



More protection (I also recommend this)

There is a packet of information in the game's memory called 'USER Record' or 'USER Packet'. This portion of memory is shared with all users in the WW/Room. Therefore certain items of this packet/record should be spoofed to protect yourself. Here are the codes...


Client ID Spoofer - http://mkwii.com/showthread.php?tid=840
Summary: If you made a Mii on your Wii, your Client ID can be transformed into your MAC Address. Instead of making Miis on other Wiis, or on a computer program, it's easier run this code to protect yourself. When you launch the game with the code applied, all of your Mii faces on your licenses will be gone (this is normal), simply re-select w/e Mii you wanna play with. The next time you launch the game withOUT the code applied, the same effect re-occurs.

Hide Your Wii ID on USER Packet - http://mkwii.com/showthread.php?tid=821
Summary: This will spoof your Wii ID only in the USER Packet/Record. It does NOT effect the Wii ID value during server login.

Print this item

  C2 Racer Count Tracker
Posted by: JoshuaMK - 07-28-2019, 06:34 AM - Forum: Coding & Hacking General Discussion - Replies (17)

Here is a short bit of code that tracks how many racers are participating in a race via the C2 codetype. 

This is useful for when you need to do loops and stuff in a code based on how many racers there are.


(NTSC-U)
C2791674 00000002
3D808140 8B84F0B0
9B8CXXXX 00000000

(PAL)
C279A680 00000002
3D808140 8B8438B8
9B8CXXXX 00000000

(NTSC-J)
C2799CEC 00000002
3D808140 8B842918
9B8CXXXX 00000000

(NTSC-K)
C2788A40 00000002
3D808140 8B841EF8
9B8CXXXX 00000000


XXXX = Whatever spot in Mem81 you want.



Code:
.set region, '' #Fill in E, P, J, or K within the quotes for your region

.if     (region == 'E' || region == 'e') # RMCE
        .macro _setOffset
        lbz r28, -0x0F50 (r4)
        .endm
.elseif (region == 'P' || region == 'p') # RMCP
        .macro _setOffset
        lbz r28, 0x38B8 (r4)
        .endm
.elseif (region == 'J' || region == 'j') # RMCJ
        .macro _setOffset
        lbz r28, 0x2918 (r4)
        .endm
.elseif (region == 'K' || region == 'k') # RMCK
        .macro _setOffset
        lbz r28, 0x1EF8 (r4)
        .endm
.else # Invalid Region
        .abort
.endif

lis r12, 0x8140 #Set for Mem81 Storage
_setOffset #Set up Offset by Region
stb r0, 0 (r12) #Store Racer Count to Mem81

Print this item

  No Characters [JoshuaMK]
Posted by: JoshuaMK - 07-26-2019, 08:13 AM - Forum: Incomplete & Outdated Codes - Replies (1)

No Characters [JoshuaMK]

NOTE: Outdated by newer version which allows the code to also work in Multiplayer

Characters are invisible during races, leaving only vehicles driving themselves on the track.

(NTSC-U)
04558F94 38A07FFF

(PAL)
0455D314 38A07FFF

(NTSC-J)
0455CC94 38A07FFF

(NTSC_K)
0454B36C 38A07FFF



#Source

li r5, 0x7fff #Something random I chose to shorten code to 1 line instead of 2 nops.



Code Creator: JoshuaMK

Print this item

  Low Poly Characters [JoshuaMK]
Posted by: JoshuaMK - 07-26-2019, 08:10 AM - Forum: Visual & Sound Effects - No Replies

Low Poly Characters [JoshuaMK]

Makes you appear in low poly form no matter what happens during races.

(NTSC-U)
04558F98 60000000

(PAL)
0455D318 60000000

(NTSC-J)
0455CC98 60000000

(NTSC_K)
0454B360 60000000



Code Creator: JoshuaMK

Print this item

  No Vehicles [JoshuaMK]
Posted by: JoshuaMK - 07-26-2019, 08:08 AM - Forum: Visual & Sound Effects - Replies (2)

No Vehicles [JoshuaMK]

Vehicles are invisible during races.

(NTSC-U)
04558F90 60000000

(PAL)
0455D310 60000000

(NTSC-J)
0455CC90 60000000

(NTSC_K)
0454B368 60000000



Code Creator: JoshuaMK

Print this item

  C0 Randomizer/Incrementer
Posted by: Vega - 07-25-2019, 10:04 PM - Forum: Coding & Hacking General Discussion - No Replies

Here's a simple 'randomizer' (done by numbers incrementing and repeating every frame) via the C0 code type

C0000000 00000004
3D808000 896CXXXX
396B0001 280B00YY
41A00008 39600000
996CXXXX 4E800020

YY  is 1 above whatever your byte limit is
XXXX is ofc the 2nd half of the mem address for whatever exception vector area you are utilizing.

Code:
lis r12, 0x8000
lbz r11, 0xXXXX (r12)

addi r11, r11, 1

cmplwi r11, 0xYY
blt+ dont_reset

li r11, 0x0

dont_reset:
stb r11, 0xXXXX (r12)

Print this item

  Wii ID NAND Modifier [Vega]
Posted by: Vega - 07-24-2019, 10:03 PM - Forum: Misc/Other - Replies (12)

Wii ID NAND Modifier [Vega]

This code will allow you to permanently change your Wii ID to whatever value you want. With this code on, simply boot your game. After a split second, you will return to the Wii Main Menu. Go ahead and check your Wii ID number and you will see the changes. If you are using Dolphin, the return to the Wii Menu function may not work, but the code will still take effect.

WWWWXXXXYYYYZZZZ = Wii ID (in hex)

NTSC-U
C20095F4 00000044
38600400 7C781B78
38800020 80ADA358
80A50024 3D808022
618C9490 7D8803A6
4E800021 7C791B78
3FA08016 48000021
2F736861 72656432
2F776332 342F6E77
6332346D 73672E63
66670000 7C6802A6
7C7A1B78 38800001
63BCADBC 7F8803A6
4E800021 2C030000
418001A4 7C7B1B78
7F24CB78 7F05C378
63BCB15C 7F8803A6
4E800021 7C03C000
40820184 7F63DB78
63BCB2E4 7F8803A6
4E800021 2C030000
4180016C 3FC0WWWW
63DEXXXX 3FE0YYYY
63FFZZZZ BFD90008
3800001F 7F24CB78
38A00000 7C0903A6
80640000 80040004
7CA51A14 80640008
7CA50214 8004000C
7CA51A14 80640010
7CA50214 80040014
7CA51A14 80640018
7CA50214 8004001C
7CA51A14 38840020
7CA50214 4200FFBC
80640000 80040004
7CA51A14 80640008
7CA50214 8004000C
7CA51A14 80640010
7CA50214 80040014
7CA51A14 80640018
7CA50214 7CA51A14
90B903FC 7F43D378
38800002 63BCADBC
7F8803A6 4E800021
2C030000 418000A8
7C7B1B78 7F24CB78
7F05C378 63BCB220
7F8803A6 4E800021
7C03C000 40820088
7F63DB78 63BCB2E4
7F8803A6 4E800021
2C030000 41800070
48000021 2F736861
72656432 2F776332
342F6E77 6332346D
73672E63 626B0000
7C6802A6 38800002
63BCADBC 7F8803A6
4E800021 2C030000
41800034 7C7B1B78
7F24CB78 7F05C378
63BCB220 7F8803A6
4E800021 7C03C000
40820014 7F63DB78
63BCB2E4 7F8803A6
4E800021 3D80801A
618C87B8 7D8803A6
4E800020 00000000

PAL
C2009634 00000044
38600400 7C781B78
38800020 80ADA360
80A50024 3D808022
618C9814 7D8803A6
4E800021 7C791B78
3FA08016 48000021
2F736861 72656432
2F776332 342F6E77
6332346D 73672E63
66670000 7C6802A6
7C7A1B78 38800001
63BCAE5C 7F8803A6
4E800021 2C030000
418001A4 7C7B1B78
7F24CB78 7F05C378
63BCB1FC 7F8803A6
4E800021 7C03C000
40820184 7F63DB78
63BCB384 7F8803A6
4E800021 2C030000
4180016C 3FC0WWWW
63DEXXXX 3FE0YYYY
63FFZZZZ BFD90008
3800001F 7F24CB78
38A00000 7C0903A6
80640000 80040004
7CA51A14 80640008
7CA50214 8004000C
7CA51A14 80640010
7CA50214 80040014
7CA51A14 80640018
7CA50214 8004001C
7CA51A14 38840020
7CA50214 4200FFBC
80640000 80040004
7CA51A14 80640008
7CA50214 8004000C
7CA51A14 80640010
7CA50214 80040014
7CA51A14 80640018
7CA50214 7CA51A14
90B903FC 7F43D378
38800002 63BCAE5C
7F8803A6 4E800021
2C030000 418000A8
7C7B1B78 7F24CB78
7F05C378 63BCB2C0
7F8803A6 4E800021
7C03C000 40820088
7F63DB78 63BCB384
7F8803A6 4E800021
2C030000 41800070
48000021 2F736861
72656432 2F776332
342F6E77 6332346D
73672E63 626B0000
7C6802A6 38800002
63BCAE5C 7F8803A6
4E800021 2C030000
41800034 7C7B1B78
7F24CB78 7F05C378
63BCB2C0 7F8803A6
4E800021 7C03C000
40820014 7F63DB78
63BCB384 7F8803A6
4E800021 3D80801A
618C8858 7D8803A6
4E800020 00000000

NTSC-J
C2009590 00000044
38600400 7C781B78
38800020 80ADA360
80A50024 3D808022
618C9734 7D8803A6
4E800021 7C791B78
3FA08016 48000021
2F736861 72656432
2F776332 342F6E77
6332346D 73672E63
66670000 7C6802A6
7C7A1B78 38800001
63BCAD7C 7F8803A6
4E800021 2C030000
418001A4 7C7B1B78
7F24CB78 7F05C378
63BCB11C 7F8803A6
4E800021 7C03C000
40820184 7F63DB78
63BCB2A4 7F8803A6
4E800021 2C030000
4180016C 3FC0WWWW
63DEXXXX 3FE0YYYY
63FFZZZZ BFD90008
3800001F 7F24CB78
38A00000 7C0903A6
80640000 80040004
7CA51A14 80640008
7CA50214 8004000C
7CA51A14 80640010
7CA50214 80040014
7CA51A14 80640018
7CA50214 8004001C
7CA51A14 38840020
7CA50214 4200FFBC
80640000 80040004
7CA51A14 80640008
7CA50214 8004000C
7CA51A14 80640010
7CA50214 80040014
7CA51A14 80640018
7CA50214 7CA51A14
90B903FC 7F43D378
38800002 63BCAD7C
7F8803A6 4E800021
2C030000 418000A8
7C7B1B78 7F24CB78
7F05C378 63BCB1E0
7F8803A6 4E800021
7C03C000 40820088
7F63DB78 63BCB2A4
7F8803A6 4E800021
2C030000 41800070
48000021 2F736861
72656432 2F776332
342F6E77 6332346D
73672E63 626B0000
7C6802A6 38800002
63BCAD7C 7F8803A6
4E800021 2C030000
41800034 7C7B1B78
7F24CB78 7F05C378
63BCB1E0 7F8803A6
4E800021 7C03C000
40820014 7F63DB78
63BCB2A4 7F8803A6
4E800021 3D80801A
618C8778 7D8803A6
4E800020 00000000

NTSC-K
C200973C 00000044
38600400 7C781B78
38800020 80ADA380
80A50024 3D808022
618C9B88 7D8803A6
4E800021 7C791B78
3FA08016 48000021
2F736861 72656432
2F776332 342F6E77
6332346D 73672E63
66670000 7C6802A6
7C7A1B78 38800001
63BCAEF8 7F8803A6
4E800021 2C030000
418001A4 7C7B1B78
7F24CB78 7F05C378
63BCB298 7F8803A6
4E800021 7C03C000
40820184 7F63DB78
63BCB420 7F8803A6
4E800021 2C030000
4180016C 3FC0WWWW
63DEXXXX 3FE0YYYY
63FFZZZZ BFD90008
3800001F 7F24CB78
38A00000 7C0903A6
80640000 80040004
7CA51A14 80640008
7CA50214 8004000C
7CA51A14 80640010
7CA50214 80040014
7CA51A14 80640018
7CA50214 8004001C
7CA51A14 38840020
7CA50214 4200FFBC
80640000 80040004
7CA51A14 80640008
7CA50214 8004000C
7CA51A14 80640010
7CA50214 80040014
7CA51A14 80640018
7CA50214 7CA51A14
90B903FC 7F43D378
38800002 63BCAEF8
7F8803A6 4E800021
2C030000 418000A8
7C7B1B78 7F24CB78
7F05C378 63BCB35C
7F8803A6 4E800021
7C03C000 40820088
7F63DB78 63BCB420
7F8803A6 4E800021
2C030000 41800070
48000021 2F736861
72656432 2F776332
342F6E77 6332346D
73672E63 626B0000
7C6802A6 38800002
63BCAEF8 7F8803A6
4E800021 2C030000
41800034 7C7B1B78
7F24CB78 7F05C378
63BCB35C 7F8803A6
4E800021 7C03C000
40820014 7F63DB78
63BCB420 7F8803A6
4E800021 3D80801A
618C8BB4 7D8803A6
4E800020 00000000



Code creator: Vega

Code credits: RiiDefi (Egg Alloc Function), Megazig (Return to Wii Menu and ISFS Functions)



Source:
#~~~~~~~~~~~~~~~~#
# START ASSEMBLY #
#~~~~~~~~~~~~~~~~#

#

#Address Ports
#NTSC-U = 800095F4
#PAL = 80009634
#NTSC-J = 80009590
#NTSC-K = 8000973C

#~~~~~~~~~~~~~~~~~~~~~~#
# Macros and Variables #
#~~~~~~~~~~~~~~~~~~~~~~#

.macro call_link address
    lis r12, \address@h
    ori r12, r12, \address@l
    mtlr r12
    blrl
.endm

.macro call_isfs address
    ori r28, r29, \address@l
    mtlr r28
    blrl
.endm

.macro call_nolink address
    lis r12, \address@h
    ori r12, r12, \address@l
    mtlr r12
    blr
.endm

.set region, '' #Fill in E, P, J, or K within the quotes for your region when Compiling! Lowercase letters can also be used.

.if    (region == 'E' || region == 'e') # RMCE
    .set ISFS_Open, 0xADBC
    .set ISFS_Read, 0xB15C
    .set ISFS_Write, 0xB220
    .set ISFS_Close, 0xB2E4
    .set Wii_Menu, 0x801A87B8
    .set Egg_Alloc, 0x80229490
.elseif (region == 'P' || region == 'p') # RMCP
    .set ISFS_Open, 0xAE5C
    .set ISFS_Read, 0xB1FC
    .set ISFS_Write, 0xB2C0
    .set ISFS_Close, 0xB384
    .set Wii_Menu, 0x801A8858
    .set Egg_Alloc, 0x80229814
.elseif (region == 'J' || region == 'j') # RMCJ
    .set ISFS_Open, 0xAD7C
    .set ISFS_Read, 0xB11C
    .set ISFS_Write, 0xB1E0
    .set ISFS_Close, 0xB2A4
    .set Wii_Menu, 0x801A8778
    .set Egg_Alloc, 0x80229734
.elseif (region == 'K' || region == 'k') # RMCK
    .set ISFS_Open, 0xAEF8
    .set ISFS_Read, 0xB298
    .set ISFS_Write, 0xB35C
    .set ISFS_Close, 0xB420
    .set Wii_Menu, 0x801A8BB4
    .set Egg_Alloc, 0x80229B88
.else # Invalid Region
    .abort
.endif

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#          Register Notes        #
#  r31 = Wii ID Upper 32 bits  #
#  r30 = Wii ID Lower 32 bits  #
# r29 & r28 = Part of ISFS Macro #
#            r27 = fd          #
# r26 = File Path Addr 1st file  #
#  r25  = Heap Address Pointer  #
#  r24 = Size of File (0x400)  #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

#~~~~~~~~~~~~~~~~~~~~~~~#
#    EGG::Heap::alloc  #
#  r3 = Size of Heap  #
#    r4 = Alignment    #
# r5 = System Heap Calc #
#~~~~~~~~~~~~~~~~~~~~~~~#

li r3, 0x0400

mr r24, r3 #Backup Size of File for later uses of ISFS_Read & ISFS_Write

li r4, 0x20

.if    (region == 'E' || region == 'e')
        lwz r5, -0x5CA8(r13)
.elseif (region == 'P' || region == 'p')
        lwz r5, -0x5CA0(r13)
.elseif (region == 'J' || region == 'j')
        lwz r5, -0x5CA0(r13)
.elseif (region == 'K' || region == 'k')
        lwz r5, -0x5C80(r13)
.endif

lwz r5, 0x0024 (r5)

call_link Egg_Alloc
mr r25, r3 #Backup Heap Address Pointer

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#      ISFS_Open  (1st file)    #
#        r3 = File Path        #
# r4 = 0x1 for Read Permissions #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

lis r29, 0x8016 #Set 1st half address for all ISFS Functions

bl open_file1

.string "/shared2/wc24/nwc24msg.cfg\0"

open_file1:
mflr r3
mr r26, r3 #Backup file path address pointer
li r4, 0x1

call_isfs ISFS_Open
cmpwi r3, 0x0 #r3 should return fd value. If negative value, then error occured.
blt- launch_menu

mr r27, r3 #Backup file descriptor

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#                ISFS_Read                #
#                  r3 = fd                  #
# r4 = Address Pointer to dump read Data to #
#    r5 = Amount of Bytes to read & dump    #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

mr r4, r25 #Move backed up Heap Address Pointer to r4
mr r5, r24 #Move backed up Byte Write Size to r5

call_isfs ISFS_Read
cmpw r3, r24 #r3 should return r5's aka r24's value. If not, then error occured.
bne- launch_menu

#~~~~~~~~~~~~#
# ISFS_Close #
#  r3 = fd  #
#~~~~~~~~~~~~#

mr r3, r27

call_isfs ISFS_Close
cmpwi r3, 0
blt- launch_menu

#~~~~~~~~~~~~~~~~~~#
# Write New Wii ID #
#~~~~~~~~~~~~~~~~~~#

lis r30, 0x0001 #Random Wii ID value used for compilation, use your own value for code
ori r30, r30, 0x2222
lis r31, 0x1111
ori r31, r31, 0x2222

stmw r30, 0x8 (r25) #Write Wii ID

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Custom CRC32 Checksum (copied from Wii's System Menu #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

li r0, 0x1F
mr r4, r25
li r5, 0
mtctr r0

start_loop:
lwz r3, 0 (r4)

lwz r0, 0x4 (r4)
add r5, r5, r3

lwz r3, 0x8 (r4)
add r5, r5, r0

lwz r0, 0xC (r4)
add r5, r5, r3

lwz r3, 0x10 (r4)
add r5, r5, r0

lwz r0, 0x14 (r4)
add r5, r5, r3

lwz r3, 0x18 (r4)
add r5, r5, r0

lwz r0, 0x1C (r4)
add r5, r5, r3

addi r4, r4, 0x20
add r5, r5, r0

bdnz+ start_loop #Loop has to be split cuz we can't load final word of file cuz thats the checksum to check compared to calculated one

lwz r3, 0 (r4)

lwz r0, 0x4 (r4)
add r5, r5, r3

lwz r3, 0x8 (r4)
add r5, r5, r0

lwz r0, 0xC (r4)
add r5, r5, r3

lwz r3, 0x10 (r4)
add r5, r5, r0

lwz r0, 0x14 (r4)
add r5, r5, r3

lwz r3, 0x18 (r4) #This will load the final word right before the checksum that is on file
add r5, r5, r0

add r5, r5, r3 #One more final instruction to calculate checksum

stw r5, 0x03FC (r25) #Store CRC32 Word to spot (which is final word location of entire contents)

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#      ISFS_Open (1st file)    #
#          r3 = File Path        #
# r4 = 0x2 for Write Permissions #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

mr r3, r26 #Move backed up file path address pointer to r3
li r4, 0x2

call_isfs ISFS_Open
cmpwi r3, 0x0
blt- launch_menu
mr r27, r3 #Backup fd

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#                          ISFS_Write  (1st file)                            #
#                                  r3 = fd                                    #
# r4 = Address Pointer where String Data that will used for writes is located #
#                    r5 = Amount of Bytes to Write to File                    #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

mr r4, r25 #Move backed up Heap Address Pointer to r4
mr r5, r24 #Move backed up Byte Write Size to r5

call_isfs ISFS_Write
cmpw r3, r24 #r3 should return r5's aka r24's value. If not, then error occured.
bne- launch_menu

#~~~~~~~~~~~~~~~~~~~~~~~#
# ISFS_Close (1st file) #
#      r3 = fd        #
#~~~~~~~~~~~~~~~~~~~~~~~#

mr r3, r27
call_isfs ISFS_Close
cmpwi r3, 0
blt- launch_menu

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#      ISFS_Open  (2nd file)    #
#          r3 = File Path        #
# r4 = 0x2 for Write Permissions #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

bl open_file2

.string "/shared2/wc24/nwc24msg.cbk\0"

open_file2:
mflr r3
li r4, 0x2

call_isfs ISFS_Open
cmpwi r3, 0x0 #r3 should return fd value. If not, then error occured.
blt- launch_menu

mr r27, r3 #Backup fd

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#                          ISFS_Write  (2nd file)                            #
#                                  r3 = fd                                    #
# r4 = Address Pointer where String Data that will used for writes is located #
#                    r5 = Amount of Bytes to Write to File                    #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

mr r4, r25 #Move backed up Heap Address Pointer to r4
mr r5, r24 #Move backed up Byte Write Size to r5

call_isfs ISFS_Write
cmpw r3, r24 #r3 should return r5's aka r24's value. If not, then error occured.
bne- launch_menu

#~~~~~~~~~~~~~~~~~~~~~~~#
# ISFS_Close (2nd file) #
#      r3 = fd        #
#~~~~~~~~~~~~~~~~~~~~~~~#

mr r3, r27
call_isfs ISFS_Close #No need for return check of final close as code is ending now

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Writes Successful, Return to Wii Menu. No need to free the Heap. No need to close the Files #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

launch_menu:
call_nolink Wii_Menu

#

#~~~~~~~~~~~~~~#
# END ASSEMBLY #
#~~~~~~~~~~~~~~#


Print this item