Welcome, Guest |
You have to register before you can post on our site.
|
Online Users |
There are currently 96 online users. » 1 Member(s) | 93 Guest(s) Bing, Google, _Ro
|
Latest Threads |
CPU Control Cycler [Ro]
Forum: Offline Non-Item
Last Post: _Ro
21 minutes ago
» Replies: 6
» Views: 970
|
Thunder Cloud Effect Modi...
Forum: Offline; Item
Last Post: JerryHatrick
6 hours ago
» Replies: 11
» Views: 1,054
|
MKW Coder/Developer of th...
Forum: Coding & Hacking General Discussion
Last Post: Vega
8 hours ago
» Replies: 10
» Views: 13,784
|
Make it to 10,000
Forum: General Discussion
Last Post: Vega
9 hours ago
» Replies: 7,338
» Views: 5,667,722
|
Miniturbos and Inside Dri...
Forum: Coding & Hacking General Discussion
Last Post: JerryHatrick
Yesterday, 09:54 AM
» Replies: 1
» Views: 856
|
Code request???
Forum: Code Support / Help / Requests
Last Post: DrTap
01-09-2025, 06:06 PM
» Replies: 3
» Views: 4,944
|
CPUs/Online Players Have ...
Forum: Visual & Sound Effects
Last Post: Zeraora
01-09-2025, 02:26 AM
» Replies: 2
» Views: 500
|
Offline Hide and Seek
Forum: Code Support / Help / Requests
Last Post: FelX
01-08-2025, 03:43 PM
» Replies: 11
» Views: 725
|
Show Nametags During Coun...
Forum: Visual & Sound Effects
Last Post: _Ro
01-08-2025, 07:48 AM
» Replies: 1
» Views: 666
|
Item Reset Code with Time...
Forum: Code Support / Help / Requests
Last Post: WaluigiisFluffy
01-07-2025, 11:20 PM
» Replies: 6
» Views: 235
|
|
|
Instruction Breakpoint [Vega] |
Posted by: Vega - 07-24-2022, 01:38 AM - Forum: Code Support / Help / Requests
- Replies (2)
|
|
EDIT (7/25/2022): For unknown reasons, this code is having issues on MKWii (problems of IABR being set and 'overusing' Resume button). Code works fine on DBZ BT3. Code will reside in this forum for the time being.
Instruction Breakpoint [Vega]
GCN Port 1 Only
Works for all Wii Games that implement GCN usage. Obviously meant only for real Hardware, code is useless on Dolphin.
This code allows you to set an Instruction Breakpoint on any *Virtual* Address (for noobs: Virtual just means any plain jane address). Once the Breakpoint has been triggered, the game will be halted. At this point, you can press your "Resume" button to continue from the Instruction Breakpoint until you hit the Breakpoint again, thus the game now halts again. The code also has the feature of turning on/off the Instruction BP at any time.
With this code, you can set up an Instruction BP on an address that occurs once every frame, thus having the ability to "Frame-Step" on real Hardware.
- XXXXXXXX = Instruction BP Address
- WWWW = Button to Turn On Breakpoint
- TTTT = Button to Turn Off Breakpoint (there are two TTTT values to fill in, make sure they both match)
- RRRR = Resume Button (resume Game after a BP hit, but keep the BP on)
Use the WAVEBIRD button values! - https://mariokartwii.com/showthread.php?tid=44
READ THIS: This code is finicky (well at least on MKWii, works perfectly with 0 bugs in DBZ BT3). Sometimes the Instruction BP will refuse to be set (programmer's note: even though I have an isync after all IABR mods in the code...). Best tip to prevent this issue from ever occurring is to never press the Resume or Off button at anytime before you press the On button for its very first time use. Also, none of the buttons have a "one-shot" feature meaning if held down, they are read like "rapid fire". If you hold down the Resume button for "Frame Stepping", you will essentially start corrupting the game. Simply press and quickly release the Resume Button for situations like this, don't hold it down (on DBZ this doesn't matter, I can spam the hell out of the Resume button). If I ever get motivated enough, I'll change all the buttons to be "one-shot". Finally, if the code cannot find the PADRead function for GCN implementation, it will set the screen to a violet color and halt the Wii.
NOTE: This code makes use of the following...
- Address's 0x800002FE & 800002F4
- Address's 0x800009EC thru 0x80000A2F
- Address's 0x80001500 thru 0x8000158F
- Instruction Address BP Exception Vector
- Program Exception Vector
- Decrementer Exception Vector
Make sure no other codes you have equipped are using those items!
Region-Free
040009F0 XXXXXXXX
C0000000 0000000D
3C60CBFE 6063FCB1
3D808000 618C4000
3C00005F 6000B000
7C0903A6 854C0004
816C0004 7D405A78
7C001800 4182001C
4200FFEC 3C60CD80
3C007FFF 6000FF01
90030024 48000000
3C608000 398C0014
918309EC 3C004E80
60000020 900F0000
4E800020 00000000
C0000000 00000015
3C608000 380F0068
900309FC 9421FF80
7D8802A6 BC810008
800309EC 7C0803A6
60630A00 4E800021
3C608000 A0A30A00
70A0WWWW 40820014
70A0TTTT 41A2001C
38000000 4800000C
800309F0 60000003
7C12FBA6 4C00012C
B8810008 7D8803A6
38210080 4E800020
3C608000 800309EC
7C0803A6 60630A00
4E800021 3C608000
A0A30A00 70A0RRRR
40820018 70A0TTTT
4182FFD8 38000001
3C608000 980302FF
7FE00008 4E800020
06000700 0000005C
880002FF 2C000001
38000000 980002FF
41820014 38000001
980002FE 38000064
7C1603A6 38000000
7C12FBA6 800009F4
7C1A03A6 800009F8
7C1B03A6 BB801580
7F8103A6 7FA903A6
7FCFF120 7FE803A6
B8201504 80001500
4C000064 00000000
C2000900 00000007
7C9043A6 7C800026
7C9143A6 888002FE
2C040001 40820018
38800000 988002FE
808009F0 60840003
7C92FBA6 7C9142A6
7C8FF120 00000000
06001300 00000034
BC001500 7FE802A6
7FC00026 7FA902A6
7F8102A6 BF801580
7C1A02A6 900009F4
7C1B02A6 900009F8
800009FC 7C1A03A6
4C000064 00000000
Code creator: Vega
Sources~
======================
#RAM Write (place Instruction BP at EVA 0x800009F0)
======================
#START ASSEMBLY (C0)
#This C0 ASM (only executed once) will use a crude XOR checksum mechanism to find the game's PADRead function
#Set crude/nooby XOR checksum
lis r3, 0xCBFE
ori r3, r3, 0xFCB1
#Set Start Address for Search
lis r12, 0x8000
ori r12, r12, 0x4000
#Set Search Loop Ammount
#817F0000 - 80004000 = 17EC000
#17EC000 / 4 = 5FB000 amount of words to search
lis r0, 0x005F
ori r0, r0, 0xB000
mtctr r0
#Search Loop
search_loop:
lwzu r10, 0x4 (r12)
lwz r11, 0x4 (r12)
xor r0, r10, r11
cmpw r0, r3
beq- found
#Not yet found
bdnz+ search_loop
#If not found, make the screen violet
lis r3, 0xCD80
lis r0, 0x7FFF
ori r0, r0, 0xFF01
stw r0, 0x0024 (r3)
b 0x0 #Halt
#Found it
found:
lis r3, 0x8000
addi r12, r12, 0x14
stw r12, 0x09EC (r3)
#Make it to where this C0 only executes once. We don't need to update the cache. Once next frame occurs and this C0 is executed again, cache will be updated by that time. Thus, C0 code will simply execute just a blr and return back to the Gecko Code Handler
lis r0, 0x4E80
ori r0, r0, 0x0020
stw r0, 0 (r15)
#Typical C0 ending blr. Uncomment this if NOT compiling with PyiiASMH.
#blr
======================
#START ASSEMBLY (C0)
#This C0 ASM will allow the user to turn on/off the IABR. Also there is a 'packet' of code within this C0 code that serves as a landing point (from the IABR exception routine). This packet of code will keep the game 'frozen' and constantly read the output of PADRead to see if the user presses the Resume or Turn-off-IABR button.
#User Fill in Values (FILL THESE IN FOR YOUR NEEDS!!!)
.set button_act, 0x0010 #Z button used for default compilation
.set button_deact, 0x0400 #X button used for default compilation
.set button_resume, 0x0800 #Y button used for default compilation
#IBAR SPR Number, and BE+TE updates for BreakPoint Address
.set IABR, 1010
#Store Location of this C0's Fake exception vector
_start:
lis r3, 0x8000
addi r0, r15, fake_vector_entrypoint_margin #r15 points to start of current C0 which is typical Gecko Code Handler protocol
stw r0, 0x09FC (r3)
#Make Frame
stwu sp, -0x80 (sp)
mflr r12 #r12 doesn't need to be preserved in C0 Codes
stmw r4, 0x8 (sp) #r0 and r3 don't need to be preserved in C0 Codes
#Check IABR Activator/Deactivator; load PADRead func
lwz r0, 0x9EC (r3)
mtlr r0
ori r3, r3, 0x0A00 #Only arg for PADRead, where to dump contents
blrl
#Was activator/de-act at least pressed?
lis r3, 0x8000
lhz r5, 0x0A00 (r3)
andi. r0, r5, button_act
bne- turn_on_iabr
andi. r0, r5, button_deact
beq+ pop_frame
#Deact was pressed. Turn off IABR
li r0, 0
b update_iabr
#Act was pressed. Turn on IABR
turn_on_iabr:
lwz r0, 0x09F0 (r3) #r3 already 0x80000000
ori r0, r0, 3
#Write to IABR
update_iabr:
mtspr IABR, r0
isync
#Pop Frame
pop_frame:
lmw r4, 0x8 (sp)
mtlr r12
addi sp, sp, 0x80
#End C0 (rest of C0 code acts as a fake exception vector for IABR, code below will get executed if IABR gets trigged
blr
#--
#Assembler Macro Equation to get 16-bit Immediate Value for the earlier addi instruction
fake_vector_entrypoint_margin = fake_vector_entrypoint - _start
#Fake exception vector called by IABR
fake_vector_entrypoint:
#Setup Arg and call PADRead
call_pread:
lis r3, 0x8000
lwz r0, 0x9EC (r3)
mtlr r0
ori r3, r3, 0x0A00
blrl
#Was Resume Button at least pressed?
lis r3, 0x8000
lhz r5, 0x0A00 (r3)
andi. r0, r5, button_resume
bne- invoke_program_exc
#Was Deact Button at least pressed?
andi. r0, r5, button_deact
beq+ call_pread
#Set special flag (KEEP IABR OFF) to make sure IABR isnt auto turned back on later after be temped turned off in the Program Exception Vector
li r0, 1
lis r3, 0x8000
stb r0, 0x2FF (r3)
#Button was at least pressed, invoke the Program Exception handler
#This instruction is really neat!
invoke_program_exc:
trap
==========
#START ASSEMBLY (06 String Write)
#This 06 String Write is the code that will be executed in the Program Exception Vector due to the trap instruction from the above C0 code. It will temp turn off IABR, so the instruction (that was BP'd) can be executed. If the user pressed Resume, it will set a special flag for the Decrementer Exception to handle. The Decrementer is set and will break shortly after thee Program Execption has ended.
#Address
#0x700 (Program Exception Vector)
#We arrive here if resume button was pressed because we need zero interrupts plus an ability to jump to other addresses w/o having to use the CTR or LR. Since program exception never gets called under regular circumstances, we can freely write to it in any arbritary sense for w/e we need to do
#SPR Variable Names
.set IABR, 1010
#Check Keep IABR OFF EVA flag if IABR was turned off during fake exception C0 vector
lbz r0, 0x2FF (r0)
cmpwi r0, 1
li r0, 0
stb r0, 0x2FF (r0) #Auto reset flag
beq- skip_dec_stuff
#Set DEC flag in EVA and set Decrementer amount to alarm, which will re-turn on IABR
li r0, 1
stb r0, 0x02FE (r0)
li r0, 100 #Should be enough to where it won't flag before this interrupt ends
mtdec r0
#Temp turn off Instruction BP until DEC exception is called
skip_dec_stuff:
li r0, 0
mtspr IABR, r0 #We don't need as isync afterwards as rfi is instruction-synchronizing
#Place back in address to resume game at (the address IABR/DAR broke on)
lwz r0, 0x09F4 (r0)
mtsrr0 r0
#Place back in original MSR
lwz r0, 0x09F8 (r0)
mtsrr1 r0
#Epilogue for the IABR exception call, restore everything
lmw r28, 0x1580 (r0)
mtxer r28
mtctr r29
mtcr r30
mtlr r31
lmw sp, 0x1504 (r0) #Can't due lmw r0 with a source register of 0
lwz r0, 0x1500 (r0)
#End exception, resume game!
rfi
====================================
#START ASSEMBLY (C2 Insert ASM)
#Yes! this is a C2 Insert ASM Code. This C2 ASM (injected at the Decrementer Exception) will see if the special flag (from Resume button being pressed) is present. If so, it will flip back the IABR on.
#Address
#0x900 (Decrementer Exception Vector)
#This gets called sometime after the Program Exception has ended
#We need a way (w/o interference per say) to turn back on the Instruction BP shortly after the Trap Exception has ended
#We can't do this during the Program Exception or else IABR will just keep re-triggering the moment we leave the Program Exception, thus we end up in an infinite loop
#We can use the Decrementer Exception Vector as long as we have a flag check of some sorts
#SPR Variable Names
.set IABR, 1010
#Default/Original Instruction, backup r4 into spare register #0
mtsprg0 r4
#Backup CR into spare register #1
mfcr r4
mtsprg1 r4
#Check DEC flag in EVA
lbz r4, 0x2FE (r0)
cmpwi r4, 1
bne- end_code
#Reset flag
li r4, 0
stb r4, 0x02FE (r0)
#Turn back on IABR, we don't need as isync afterwards as rfi is instruction-synchronizing
lwz r4, 0x09F0 (r0)
ori r4, r4, 3
mtspr IABR, r4
#Recover CR, don't recover r4 due to original instruction saving it in sprg0, r4 is being overwritten later anyways
end_code:
mfsprg1 r4
mtcr r4
====================================
#START ASSEMBLY (06 String Write)
#This ASM occurs when the BP is hit, and it will save/backup everything, then jump to the 'packet' of code in the C0 code that was explained earlier.
#Address
#0x1300 (IABR Exception Vector)
#Note:
#r0 as source register for load/stores is treated as literal zero
#Backup everything that can be effected
stmw r0, 0x1500 (r0)
mflr r31
mfcr r30
mfctr r29
mfxer r28
stmw r28, 0x1580 (r0)
#Save srr0 (BP address) to 0x800009F4 (physically)
mfsrr0 r0
stw r0, 0x09F4 (r0)
#Save srr1 (breakpoint MSR) to 0x800009F8 (physically)
mfsrr1 r0
stw r0, 0x09F8 (r0)
#Load address to jump to Fake Exception Vector of C0 that initially setup the IABR
lwz r0, 0x09FC (r0)
mtsrr0 r0
#Call fake Vector! Pretty cool to call a function via rfi, ha.
rfi
=====================================
|
|
|
Win VR/BR When Disconnecting [Unnamed] |
Posted by: Unnamed - 07-08-2022, 09:26 AM - Forum: Online Non-Item
- Replies (4)
|
|
Win VR/BR When Disconnecting [Unnamed]
As the name says, this code makes you win VR/BR if a DC occur. It gives you the same amount of VR/BR as if you would finish first.
NTSC-U
04529DA4 4BFFEF01
PAL
0452E8EC 4BFFE82D
NTSC-J
0452E26C 4BFFE82D
NTSC-K
0451C944 4BFFE82D
Source:
#####
## "bl Lower_Matrix_VrBr_Change_Calculation" changed to "bl Upper_Matrix_VrBr_Change_Calculation". This way, the VR/BR changes for an overall Victory is computed. ##
#####
Code Creator: Unnamed
|
|
|
Flap Timer [Hibyehello] |
Posted by: Hibyehello - 07-06-2022, 07:57 PM - Forum: Time Trials & Battle
- No Replies
|
|
Flap Timer [Hibyehello]
Freezes the timer until the specified lap
* This code is not 100% accurate, it is accurate to around the frame
NTSC-U:
C2530DE0 00000006
3CA0809C 80A58F70
2C050000 41820020
80A5000C 80A50000
A0A50024 2C05000L
38000000 40820008
88030041 00000000
PAL:
C2535928 00000006
3CA0809C 80A5D730
2C050000 41820020
80A5000C 80A50000
A0A50024 2C05000L
38000000 40820008
88030041 00000000
NTSC-J:
C25352A8 00000006
3CA0809C 80A5C790
2C050000 41820020
80A5000C 80A50000
A0A50024 2C05000L
38000000 40820008
88030041 00000000
NTSC-K:
C2523980 00000006
3CA0809B 80A5BD70
2C050000 41820020
80A5000C 80A50000
A0A50024 2C05000L
38000000 40820008
88030041 00000000
Change L to specify the Lap to unfreeze the timer
Code: .set NTSCURaceInfoPtr, 0x809b8f70
.set PALRaceInfoPtr, 0x809bd730
.set NTSCJRaceInfoPtr, 0x809bc790
.set NTSCKRaceInfoPtr, 0x809abd70
# NTSCU Hook address 0x80530DE0
# PAL Hook address 0x80535928
# NTSCJ Hook address 0x805352A8
# NTSCK Hook address 0x80523980
main_code:
lis r5, NTSCURaceInfoPtr@ha
lwz r5, NTSCURaceInfoPtr@l(r5)
cmpwi r5, 0
beq the_end
lwz r5, 0xC(r5)
lwz r5, 0x0(r5)
lhz r5, 0x24(r5)
cmpwi r5, 0x2
li r0, 0
bne the_end
lbz r0, 0x0041(r3)
the_end:
|
|
|
Upper/Lower VR/BR Change Matrix Modifier [Unnamed] |
Posted by: Unnamed - 07-06-2022, 08:34 AM - Forum: Online Non-Item
- Replies (2)
|
|
Upper/Lower VR/BR Change Matrix Modifier [Unnamed]
This code modifies the positive and/or the negative Values of the VR/BR Change Matrix. An Explanation what that means is found below.
NTSC-U
04528D3C 3860XXXX
04528DEC 3860YYYY
PAL
0452D1B0 3860XXXX
0452D260 3860YYYY
NTSC-J
0452CB30 3860XXXX
0452CBE0 3860YYYY
NTSC-K
0451B208 3860XXXX
0451B2B8 3860YYYY
XXXX Values = New positive Values in Hex
YYYY Values = New negative Values in Hex
To understand how this code works I have to explain you briefly how the calculation of the VR/BR change works:
"For the purposes of rating calculation, each player is paired individually with each other player and a change is computed. The winner of those two players gains rating according to the change value and the loser of those two players loses rating according to the change. The total change in rating is simply the sum of the losses and gains of that player." (from wiki.tockdom.com/wiki/Player_Rating)
All the changes can be summarized in a Matrix containing the changes of all players. In the upper part of the Matrix, all positive Values are found, in the lower part of the Matrix, all negative Values are found. I have an example for you (this was calculated using Wiimms SZS tools, credits to Wiimm for his Tools):
9000 8000 7000 5000 Sum
1. 9000 X +9 +6 +2 +17
2. 8000 -9 X +9 +4 +4
3. 7000 -6 -9 X +6 -9
4. 5000 -2 -4 -6 X -12
The new code now modifies the entries of the matrix. The upper code line changes all Values of the upper part of the Matrix, the blue values. The lower code line changes all Values of the lower part of the Matrix, the red values.
You can use this code for example to modify the lower part to 0, so that you will not be able to lose VR/BR anymore.
Important Note: Only you will see the effects on your screen. Other players will still have normal VR/BR Changes.
Code Creator: Unnamed
|
|
|
Waltress (PPC Assembler) |
Posted by: Vega - 07-04-2022, 03:40 PM - Forum: Coding & Hacking General Discussion
- Replies (14)
|
|
Waltress
The first ever PowerPC Assembler that's entirely handwritten in PowerPC. It is 100% Broadway compliant. Waltress is also a Gecko Cheat Code assembler.
Current version: 0.9
Created by Vega
Why the name Waltress? Waltress is one of Daysha's cats, and she is a shy black & brown long hair cat with a gigantic fluffy tail. Waltress is also the site mascot.
Created by Vega
Version 0.9
Release Date: March 24, 2024
Waltress is my own PPC Assembler that I have created using handwritten PPC Assembly. There is an HBC App version and a Desktop Version (QEMU required). There is full support for 04, 06, C0, and C2 Gecko codetypes. Anything that can be assembled can be disassembled, and vice versa. Read the README! Read the NOTES.txt!!!
Here's the Github Repo Link~
https://github.com/VegaASM/Waltress
Here's the Waltress Package Download Links~
https://mariokartwii.com/downloads/Waltress03242024.zip (v0.9)
https://mariokartwii.com/downloads/Waltr...024sha.txt (sha256sum hash for verifying download if desired)
Once you have downloaded Waltress, extract the Download. There will be a "Waltress03242024" folder. Inside the folder is a README. Please READ the README to understand the rest of the files and document contained in the download, and also on how to run Waltress.
Also please READ the NOTES.txt document!
Quick Guide (HBC):- Extract Waltress03242024.zip
- Inside Waltress03242024 folder is the HBC-Waltress folder.
- Move that folder to the /apps folder of your SD/USB device
- Place code.txt or source.s into /apps/HBC-Waltress
- Launch HBC, launch App, follow on-screen instructions
Quick Guide (QEMU w/ Linux***; assumes QEMU is already installed and you know how to run it):- Extract Waltress03242024.zip
- Inside Waltress03242024 folder is the DV folder.
- Place code.txt or source.s into /DV
- Make ./main executable and launch it. Follow on-screen instructions
***NOTE: Only verified to work on Debian 11 & 12.
Video demo of v0.6:
Old version downloads and hashes:
v0.8
https://mariokartwii.com/downloads/Waltress03182024.zip
https://mariokartwii.com/downloads/Waltr...024sha.txt
v0.7
https://mariokartwii.com/downloads/Waltress02142024.zip
https://mariokartwii.com/downloads/Waltr...024sha.txt
v0.6.1
https://mariokartwii.com/downloads/Waltress01182024.zip
https://mariokartwii.com/downloads/Waltr...024sha.txt
v0.6
https://mariokartwii.com/downloads/Waltress10162023.zip
https://mariokartwii.com/downloads/Waltr...023sha.txt
v0.5
https://mariokartwii.com/downloads/Waltress07302022.zip
https://mariokartwii.com/downloads/Waltr...022sha.txt
v0.4
https://mariokartwii.com/downloads/Waltress07262022.zip
https://mariokartwii.com/downloads/Waltr...022sha.txt
v0.3
https://mariokartwii.com/downloads/Waltress07112022.zip
https://mariokartwii.com/downloads/Waltr...022sha.txt
v0.2
https://mariokartwii.com/downloads/Waltress07052022.zip
https://mariokartwii.com/downloads/Waltr...022sha.txt
v0.1
https://mariokartwii.com/downloads/Waltress07042022.zip
https://mariokartwii.com/downloads/Waltr...022sha.txt
|
|
|
Fun Fact about Broadway |
Posted by: Vega - 06-28-2022, 01:00 AM - Forum: Coding & Hacking General Discussion
- No Replies
|
|
Fun Fact about Broadway
Every Broadway processor in your Wii Console contains an 88-bit unique identifier known as the Chip ID. It is NOT the processor version (aka PVR). No two Broadway processors can possess the same Chip ID.
Due to being 88-bits in size, you need to access 3 Special Purpose Registers to retrieve the Chip ID. What's odd is that the Chip ID is mentioned nowhere in the Broadway manual. Not only that, Broadway manual doesn't even list the Chip ID's SPR numbers as being valid SPR numbers.
Since no two Broadway processors can have the same Chip ID, this value could be used as a part of a moderation/ban tool for future implementations of an MKWii online service.
The SPR's containing the Chip ID are 925, 926, 927. The names of the SPRs are ECID1, ECID2, and ECID3. You cannot write to these registers. Attempting to do so will not change the Chip ID plus an exception will occur.
Using SwareJonge's Draw-Text Code (based on Star/Rii's original Draw-Text code), I mocked up a simple code so you can see what your Chip ID is. Obviously, this won't work on Dolphin Emulator. Also, the processor on the Wii U is not a Broadway processor. It is still a PPC processor, but it is called Espresso. It is possible that Espresso has a unique Chip ID of some sorts and store it's Chip ID values to the same SPRs. If somebody can test this on the Wii U and let me know how it works, I would appreciate it. Anyway, here's a code to do that (NTSC-U, too lazy to port this).
NTSC-U
C2009640 00000011
9421FF80 BC610008
3FE08002 806D9FA0
3CA0802A 80A5307C
A0850004 A0A50008
63EC1D90 7D8903A6
4E800421 38600006
388000DC 38A00001
7CFDE2A6 54E7023E
7D1EE2A6 7D3FE2A6
48000015 25303858
20253038 58202530
38580000 7CC802A6
63EC1DF0 7D8903A6
4E800421 63EC1DD0
7D8903A6 4E800421
B8610008 38210080
81830000 00000000
Code: #Address (NTSC-U) = 80009640
#Push Stack
stwu sp, -0x80 (sp)
stmw r3, 0x8 (sp)
#Set r31 for Direct Print Calling
lis r31, 0x8002
#Get current XFB (alternates between two FB's)
lwz r3, -0x6060 (r13)
#Get width and height for XFB
lis r5, 0x802A #Memory constant
lwz r5, 0x307C (r5) #Load XFB Width Height Pointer
lhz r4, 0x4 (r5)
lhz r5, 0x8 (r5)
#Change XFB for Direct Print (r3 = FB, r4 = Width, r5 = Height)
ori r12, r31, 0x1D90
mtctr r12
bctrl
#Setup Args for Direct Print
li r3, 6
li r4, 0xDC
li r5, 1
#Grab Chip IDs
#Chip ID is a 88-bit identifier
mfspr r7, 925
rlwinm r7, r7, 0, 8, 31 #CIDH
mfspr r8, 926 #CIDM
mfspr r9, 927 #CIDL
bl our_text
.string "%08X %08X %08X"
.align 2
our_text:
mflr r6
#Print to Screen
ori r12, r31, 0x1DF0
mtctr r12
bctrl
#Store Cache
ori r12, r31, 0x1DD0
mtctr r12
bctrl
#Pop Stack
lmw r3, 0x8 (sp)
addi sp, sp, 0x80
#Default Instruction
lwz r12, 0 (r3)
|
|
|
A blast from the past |
Posted by: Fzerowii - 06-24-2022, 03:09 PM - Forum: General Discussion
- Replies (11)
|
|
So if y’all wanna see me on this domain wayyyy back in the day (probably before some people on here we’re born or we’re still in diapers ) if you go to waybackmachine.org and type in this domain and go back to September 15th 2008 and go to introductions and thread on the 4th page last one down is me. I screenshot it but it won’t allow me to upload photos here. But yeah that was me back when I was only 15 (almost 16). If you were a teenager or adult then you probably remember how exciting Mario kart wii was when it was brand new. I don’t think hacking or custom levels had even become a thing yet.
|
|
|
VR/BR assigned to Guest Modifier [Unnamed] |
Posted by: Unnamed - 06-22-2022, 07:21 AM - Forum: Online Non-Item
- No Replies
|
|
VR/BR assigned to Guest Modifier [Unnamed]
This code changes the VR/BR Value that is assigned to the Guest(s) when calculating the VR/BR Changes.
Important Note: Only you will see the effects on your screen. Other players will still have normal VR/BR Changes with a VR/BR of 5000 for the Guest(s).
NTSC-U
0461DE68 39C0XXXX
PAL
0465117C 39C0XXXX
NTSC-J
046507E8 39C0XXXX
NTSC-K
0463F494 39C0XXXX
XXXX: VR/BR Value in Hex
Examples:
1388 = 5000 (Default Value)
270F = 9999
Code Creator: Unnamed
|
|
|
Gain/Lose XX Amount of VR/BR Every Race [TheNinjaKingOW] |
Posted by: Zeraora - 06-17-2022, 02:25 AM - Forum: Online Non-Item
- Replies (2)
|
|
This code (as the name implies) sets the amount of VR/BR you gain/lose every race to a custom value.
NTSC-U:
C2528e00 00000002
3880XXXX 7C002214
60000000 00000000
PAL:
C252D274 00000002
3880XXXX 7C002214
60000000 00000000
NTSC-J:
C252CBF4 00000002
3880XXXX 7C002214
60000000 00000000
NTSC-K:
C251B2CC 00000002
3880XXXX 7C002214
60000000 00000000
XXXX = The amount you want
|
|
|
|