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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 647
» Latest member: shaymcn02
» Forum threads: 1,816
» Forum posts: 14,009

Full Statistics

Online Users
There are currently 124 online users.
» 1 Member(s) | 119 Guest(s)
Bing, Facebook, Google, Twitter, matfawcett

Latest Threads
Make it to 10,000
Forum: General Discussion
Last Post: Vega
40 minutes ago
» Replies: 7,344
» Views: 5,675,150
Textures/texture packs in...
Forum: Coding & Hacking General Discussion
Last Post: Vega
2 hours ago
» Replies: 1
» Views: 7
MKW Coder/Developer of th...
Forum: Coding & Hacking General Discussion
Last Post: Fifty
Today, 05:06 AM
» Replies: 11
» Views: 13,904
Allow Pausing Before Race...
Forum: Offline Non-Item
Last Post: Vega
Yesterday, 07:47 PM
» Replies: 0
» Views: 36
Top 10 Most Influential C...
Forum: Coding & Hacking General Discussion
Last Post: Vega
Yesterday, 03:27 PM
» Replies: 2
» Views: 7,366
Show Ice Cube on Online P...
Forum: Online Non-Item
Last Post: _Ro
Yesterday, 08:23 AM
» Replies: 0
» Views: 45
CPU Control Cycler [Ro]
Forum: Offline Non-Item
Last Post: _Ro
Yesterday, 07:56 AM
» Replies: 7
» Views: 1,039
Thunder Cloud Effect Modi...
Forum: Offline; Item
Last Post: JerryHatrick
01-10-2025, 11:13 PM
» Replies: 11
» Views: 1,141
Miniturbos and Inside Dri...
Forum: Coding & Hacking General Discussion
Last Post: JerryHatrick
01-10-2025, 09:54 AM
» Replies: 1
» Views: 864
Code request???
Forum: Code Support / Help / Requests
Last Post: DrTap
01-09-2025, 06:06 PM
» Replies: 3
» Views: 4,975

 
  In-Race Room Size & Position Based Shared Item Code [Unnamed]
Posted by: Unnamed - 01-24-2020, 10:36 AM - Forum: Online; Item - No Replies

In-Race Room Size & Position Based Shared Item Code [Unnamed]

This is the "Shared Item" version of Vegas "Perfect Item Code". It will only allow you to get your cheated item if and only if you are in the correct position for the current in-race room size.

Since this code is based on the "Shared Item Code", it breaks the same item rules as the original code.


NTSC-U
C27ACBC8 00000004
7D641A14 398000VV
7D6C5A14 A18B0000
3D608000 918B1578
2C000000 00000000
C27AB704 00000004
3D608000 818B1578
2C0C0000 41820008
386000WW 90770020
60000000 00000000

PAL
C27BB628 00000004
7D641A14 398000VV
7D6C5A14 A18B0000
3D608000 918B1578
2C000000 00000000
C27BA164 00000004
3D608000 818B1578
2C0C0000 41820008
386000WW 90770020
60000000 00000000

NTSC-J
C27BAC94 00000004
7D641A14 398000VV
7D6C5A14 A18B0000
3D608000 918B1578
2C000000 00000000
C27B97D0 00000004
3D608000 818B1578
2C0C0000 41820008
386000WW 90770020
60000000 00000000

NTSC-K
C27A99E8 00000004
7D641A14 398000VV
7D6C5A14 A18B0000
3D608000 918B1578
2C000000 00000000
C27A8524 00000004
3D608000 818B1578
2C0C0000 41820008
386000WW 90770020
60000000 00000000

VV Item Values:
Green = 00
Red = 02
Banana = 04
Fib = 06
Shroom = 08
Triple Shroom = 0A
Bomb = 0C
Blue = 0E
Shock = 10
Star = 12
Golden = 14
Mega = 16
Blooper = 18
Pow = 1A
TC = 1C
Bullet Bill = 1E
Triple Green = 20
Triple Red = 22
Triple Banana = 24

WW is half of VV.



ASM Sources:

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

###### 1st ASM - Item Probability Store ASM #######
Adresses:
807ACBC8  ## NTSC-U
807BB628  ## PAL
807BAC94  ## NTSC-J
807A99E8  ## NTSC-K

add r11, r4, r3 ## Add r3 and r4 together. You are now at the green shell halfword for your current position on the game's item table.
li r12, 0xVV ## Load Users Item Value VV into r12.
add r11, r12, r11 ## Add r11 and r12 (Item value) to get exact item's halfword prob. location on the game's table.
lhz r12, 0 (r11) ## Load the Probability from the game's Table into r12.
lis r11, 0x8000
stw r12, 0x1578 (r11) ## Store Probability to Memory Adress 80001578.
cmpwi r0, 0 ## Default instruction.

###### 2nd ASM - Shared Item ASM #########
Adresses:
807AB704  ## NTSC-U
807BA164  ## PAL
807B97D0  ## NTSC-J
807A8524  ## NTSC-K

lis r11, 0x8000
lwz r12, 0x1578 (r11) ## Load the Item Probability from Memory Adress 80001578.
cmpwi r12, 0
beq- no_go ## If the Item Probability is 0, we know you cannot get the item for that position for the current in-race room size. Jump to no_go.

li r3, 0xWW ## Load Item WW in r3, typical Shared Item code.

no_go:
stw r3, 0x0020 (r23) ## Default instruction.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------


Code created by: Unnamed
Code Credits: XeR (adress founder of the first ASM), Guru (adress founder of the second ASM)

Print this item

  New Version of Shared Item Code
Posted by: Unnamed - 01-23-2020, 12:53 PM - Forum: Code Support / Help / Requests - Replies (4)

Hello,

I have created my own version of the Shared Item Code. It is a mix of the Standard Shared Item Code created by Guru and the Perfect Item Code created by Vega.

Here is the source:

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

###### 1st ASM - Item Probability Store ASM #######
Adresses:
807ACBC8  ## NTSC-U
807BB628  ## PAL
807BAC94  ## NTSC-J
807A99E8  ## NTSC-K

add r11, r4, r3 ## Add r3 and r4 together. You are now at the green shell halfword for your current position on the game's item table.
li r12, 0xVV ## Load Users Item Value VV into r12.
add r11, r12, r11 ## Add r11 and r12 (Item value) to get exact item's halfword prob. location on the game's table.
lhz r12, 0 (r11) ## Load the Probability from the game's Table into r12.
lis r11, 0x8000
stw r12, 0x1578 (r11) ## Store Probability to Memory Adress 80001578.
cmpwi r0, 0 ## Default instruction.

###### 2nd ASM - Shared Item ASM #########
Adresses:
807AB704  ## NTSC-U
807BA164  ## PAL
807B97D0  ## NTSC-J
807A8524  ## NTSC-K

lis r11, 0x8000
lwz r12, 0x1578 (r11) ## Load the Item Probability from Memory Adress 80001578.
cmpwi r12, 0
beq- no_go ## If Item's Probability is 0, we know you cannot get the item for that position for the current in-race room size. Jump to no_go.

li r3, 0xWW ## Load Item WW in r3,  typical Shared Item code.

no_go:
stw r3, 0x0020 (r23) ## Default instruction.


--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Now my Question: Is it good enough to post it. If yes, how should I name this code. It can be a new version of the "In Race Room Size and Position based Shared Item Code"
or you can call it "Perfect Shared Item Code", I don't have an Idea.

Thank you already for the Answer  Smile .

Print this item

Big Grin Sup gamers!
Posted by: Mosblech - 01-22-2020, 01:29 AM - Forum: Introductions - Replies (6)

Sup gamers! My name is Adam (a.k.a Mosblech). I am 15 right now. I will be 16 on June 16th. I am a semi-active MKW player but I tend to play Geometry Dash more as that is my favorite game. I still love MKW and I don't think I will ever forget about it or stop playing it. I like to play Time Trials and explore new custom tracks that aren't in CTGP yet. I can't believe that this game is still going strong after 11 years, going on 12! It boggles my mind.

I have a YouTube channel where I mainly upload completions of demons on Geometry Dash and occasionally upload MKW videos. I don't have a capture card so I have to use a crappy camera on my tablet but it gets the job done. If you want to check it out then here you go: https://www.youtube.com/channel/UCHtdE4Y...subscriber

If you want to chat with me and stuff you can PM me here or you can send me a DM on Discord. My tag is ?Mosblech#6148

With that said, I am super excited to get involved with you guys! Have a cool day!

Print this item

  End Race Early [ComputerBot2016]
Posted by: ComputerBot2016 - 01-20-2020, 04:28 PM - Forum: Offline Non-Item - Replies (13)

End Race Early [ComputerBot2016]

Press your desired button activator to end the current race/battle. The race position that each player is in, is preserved when the button is pressed. Eg Press the button when in 3rd, you will get 3rd place on the leaderboard.

NTSC-U:
04530808 88030020
2834XXXX YYYYZZZZ
C2530808 00000006
88030020 9421FF80
BC610008 38800002
38A00001 3D808052
618CF7A0 7D8803A6
4E800021 B8610008
38210080 00000000
E0000000 80008000

PAL:
04535350 88030020
2834XXXX YYYYZZZZ
C2535350 00000006
88030020 9421FF80
BC610008 38800002
38A00001 3D808053
618C42E8 7D8803A6
4E800021 B8610008
38210080 00000000
E0000000 80008000

NTSC-J:
04534CD0 88030020
2834XXXX YYYYZZZZ
C2534CD0 00000006
88030020 9421FF80
BC610008 38800002
38A00001 3D808053
618C3C68 7D8803A6
4E800021 B8610008
38210080 00000000
E0000000 80008000

NTSC-K:
045233A8 88030020
2833XXXX YYYYZZZZ
C25233A8 00000006
88030020 9421FF80
BC610008 38800002
38A00001 3D808052
618C2340 7D8803A6
4E800021 B8610008
38210080 00000000
E0000000 80008000

Code Creator: ComputerBot2016
Code Credits: JoshuaMK for original version of the code, which was used to help find an address needed for this code

Print this item

  Can I post a remade version of a code that already exists?
Posted by: ComputerBot2016 - 01-18-2020, 08:23 PM - Forum: Coding & Hacking General Discussion - Replies (5)

I’ve recently been working on a code that allows the player to end a race early by pressing a button activator. I’m aware that JoshuaMK made a code that does exactly this, however, the version I’m working on preserves all racer positions when the activator is pressed (as opposed to the existing code that has a habit of forcing the player into first place automatically). It’s also worth noting that my code isn’t a modification of the current one, it works as an ASM insert over a completely different instruction.

Once I’ve finished testing, would it be allowed for me to post this as a new code? I’ve read the rules for posting codes, but I’m looking for further clarity on this. I would be happy to credit JoshuaMK as a contributor, as I did in fact use an address from his code to help me find the function required by my version.

Thanks

Print this item

  Flatten Toggle [Fishguy]
Posted by: Vega - 01-18-2020, 07:28 PM - Forum: Offline Non-Item - No Replies

Flatten Toggle [Fishguy]

Character is constantly being flattened. If used offline, it effects all CPUs. If used online, only effects you and others will not see the flattening effects.

NTSC-U
C258E018 00000006
3DC00001 81E30020
39EF0001 2C0F0020
7C007078 4180000C
39E00000 7C007378
91E30020 9003000C
60000000 00000000

PAL
C259483C 00000006
3DC00001 81E30020
39EF0001 2C0F0020
7C007078 4180000C
39E00000 7C007378
91E30020 9003000C
60000000 00000000

NTSC-J
C25941BC 00000006
3DC00001 81E30020
39EF0001 2C0F0020
7C007078 4180000C
39E00000 7C007378
91E30020 9003000C
60000000 00000000

NTSC-K
C2582894 00000006
3DC00001 81E30020
39EF0001 2C0F0020
7C007078 4180000C
39E00000 7C007378
91E30020 9003000C
60000000 00000000

Code creator: Fishguy

#Source:
#Address Ports
#8058E018 NTSC-U
#8059483C PAL
#805941BC NTSC-J
#80582894 NTSC-K

code:
    lis    r14, 1              #r14 now contains 0x00010000 which are the bits that correspond to the flattening status
    lwz    r15, 32(r3)        #Using unused memory location near target to keep the counter
    addi    r15, r15, 1        #Increment counter
    cmpwi  r15, 60            #Checks to see if counter has reached a certain value
    andc    r0, r0, r14        #This clears the bits used to flatten the player
    blt    skip                #skips writing the flatten status bits if it is less than the defined counter
    li      r15, 0              #Resets the counter
    or      r0, r0, r14        #ORs the status bits
skip:
    stw r15, 32(r3)            #Stores the counter back into memory
    stw r0,12(r3)              #Stores the bit statuses back into memory (original instruction)

Print this item

  SME-CODE
Posted by: JoshuaMK - 01-18-2020, 03:17 PM - Forum: Coding & Hacking General Discussion - No Replies

HUGE credits to Wiimm and Leseratte! Without them this would not have been possible.

"So what is this?" you may ask, well, this is a special code I developed to go alongside the code handler, patched into the main.dol/start.dol.

How this works, is when the game boots, there are some pointers to the FST section of the game's memory, with only one of them being used by the game as a limiter and also being static. How the game uses this pointer, is as a point in which the memory should no longer be used dynamically, meaning everything beyond the value of this pointer (but before the original FST section) is never touched, and can be used for mods.

SME-CODE (the "code loading code loading loading codes" as I like to call it), takes this pointer, subtracts from it, stores it. This means the game now leaves a larger area alone than normal. SME-CODE also is designed to hold a gct within it, so when it recalculates the pointer, it takes the gct and moves it to the very start of the untouched area. When it does this it also rewrites the code handler to look in this area for the codes. Lastly it dynamically finds and hooks the code handler to the VI Hook commonly used for games, depending on if the game is a Gamecube or Wii game (Since they differ slightly).

So, with all of that said, what kind of space can be allocated for codes using this? In testing, I was able to safely reserve up to 0x40000 bytes of space with SME-CODE in melee, with the absolute limit being 0x40BA0 before the game simply couldn't boot.

As for other games, Super Mario Sunshine was able to have over 0x100000 bytes of space, so this shows that games vary in terms of what you can get away with.
Because yes, this is designed to work across ALL games, including Wii games.

Tutorial showcasing the steps of patching a game with SME-CODE (Size of code space set to 0x30000):


Finally, the download link includes two exe files to aid in patching DOL's with this code, although PyiiASMH MUST be used in the process or else it won't compile!


Print this item

  Special Purpose Registers?
Posted by: JoshuaMK - 01-18-2020, 11:49 AM - Forum: Coding & Hacking General Discussion - Replies (1)

Where can I find documentation on these registers? More specifically, on the one labeled "PC" in Dolphin's debugger? I found a page on it before but now I can't find it....

Print this item

  Blue Shell Explosion Size Effect Modifier [Unnamed]
Posted by: Unnamed - 01-17-2020, 12:17 PM - Forum: Offline; Item - Replies (1)

Blue Shell Explosion Size Effect Modifier [Unnamed]

The visual size of the explosion is not effected.

NTSC-U
048A109C XXXXXXXX

PAL
048A5B74 XXXXXXXX

NTSC-J
048A4CD4 XXXXXXXX

NTSC-K
04893FD4 XXXXXXXX

X Values are Floating Point Values.

Examples:
41E80000 = Default
42960000 = Large

Code created by: Unnamed

Print this item

  Bullet Killer [Fishguy]
Posted by: Vega - 01-16-2020, 07:38 PM - Forum: Online Non-Item - No Replies

Bullet Killer [Fishguy]

Press and hold your activate to mimic a very fast bullet bill.

NTSC-U
C252DD68 0000000A
3CA0809C 80A58F28
80A50064 9421FFB0
BDC10008 A1C5000A
81E5001C 82050020
7DCE2A14 7DEF7214
7E107214 3DC08150
91EE0000 920E0004
39E00000 91EE0008
91EE000C B9C10008
38210050 00000000
04597350 80030008
2834XXXX YYYYZZZZ
C2597350 00000012
80030008 9421FFB0
BDC10008 3DC08150
822E0000 824E0004
826E0008 828E000C
3A310008 3A520008
1E140010 7E528214
8A120000 1DF30014
1E100014 7DEF8214
7E317A14 8A120001
3A10FFFF 7C138000
41810024 82110000
92030000 82110004
92030004 82110008
92030008 3A730001
48000010 8A120008
920E000C 3A600000
926E0008 B9C10008
38210050 00000000
E0000000 80008000

PAL
C25328B0 0000000A
3CA0809C 80A5D6E8
80A50064 9421FFB0
BDC10008 A1C5000A
81E5001C 82050020
7DCE2A14 7DEF7214
7E107214 3DC08150
91EE0000 920E0004
3DE00000 91EE0008
91EE000C B9C10008
38210050 00000000
045A2388 80030008
2834XXXX YYYYZZZZ
C25A2388 00000012
80030008 9421FFB0
BDC10008 3DC08150
822E0000 824E0004
826E0008 828E000C
3A310008 3A520008
1E140010 7E528214
8A120000 1DF30014
1E100014 7DEF8214
7E317A14 8A120001
3A10FFFF 7C138000
41810024 82110000
92030000 82110004
92030004 82110008
92030008 3A730001
48000010 8A120008
920E000C 3A600000
926E0008 B9C10008
38210050 00000000
E0000000 80008000

NTSC-J
C2532230 0000000A
3CA0809C 80A5C748
80A50064 9421FFB0
BDC10008 A1C5000A
81E5001C 82050020
7DCE2A14 7DEF7214
7E107214 3DC08150
91EE0000 920E0004
3DE00000 91EE0008
91EE000C B9C10008
38210050 00000000
045A1D08 80030008
2834XXXX YYYYZZZZ
C25A1D08 00000012
80030008 9421FFB0
BDC10008 3DC08150
822E0000 824E0004
826E0008 828E000C
3A310008 3A520008
1E140010 7E528214
8A120000 1DF30014
1E100014 7DEF8214
7E317A14 8A120001
3A10FFFF 7C138000
41810024 82110000
92030000 82110004
92030004 82110008
92030008 3A730001
48000010 8A120008
920E000C 3A600000
926E0008 B9C10008
38210050 00000000
E0000000 80008000

NTSC-K
C2520908 0000000A
3CA0809B 80A5BD28
80A50064 9421FFB0
BDC10008 A1C5000A
81E5001C 82050020
7DCE2A14 7DEF7214
7E107214 3DC08150
91EE0000 920E0004
3DE00000 91EE0008
91EE000C B9C10008
38210050 00000000
045903E0 80030008
2833XXXX YYYYZZZZ
C25903E0 00000012
80030008 9421FFB0
BDC10008 3DC08150
822E0000 824E0004
826E0008 828E000C
3A310008 3A520008
1E140010 7E528214
8A120000 1DF30014
1E100014 7DEF8214
7E317A14 8A120001
3A10FFFF 7C138000
41810024 82110000
92030000 82110004
92030004 82110008
92030008 3A730001
48000010 8A120008
920E000C 3A600000
926E0008 B9C10008
38210050 00000000
E0000000 80008000

Code creator: Fishguy
Code credits: TheMrx1983, MrBean

Source1:

#Address ports
#8052DD68 NTSC-U
#805328B0 PAL
#80532230 NTSC-J
#80520908 NTSC-K

    #Get location of KMP
   
    #usa 0x809B8F28
    #pal 0x809BD6E8
    #japan 0x809BC748
    #korea 0x809ABD28
   
    .set region, '' #Set to e,p,j, or k
   
    .if (region == 'E' || region == 'e') # RMCE
        lis r5, 0x809C
    .elseif (region == 'P' || region == 'p') # RMCP
        lis r5, 0x809C
    .elseif (region == 'J' || region == 'j') # RMCJ
        lis r5, 0x809C
    .elseif (region == 'K' || region == 'k') # RMCK
        lis r5, 0x809B
    .else # Invalid Region
        .err
    .endif
   
    .if (region == 'E' || region == 'e') # RMCE
        lwz r5, 0xFFFF8F28 (r5)
    .elseif (region == 'P' || region == 'p') # RMCP
        lwz r5, 0xFFFFD6E8 (r5)
    .elseif (region == 'J' || region == 'j') # RMCJ
        lwz r5, 0xFFFFC748 (r5)
    .elseif (region == 'K' || region == 'k') # RMCK
        lwz r5, 0xFFFFBD28 (r5)
    .else # Invalid Region
        .err
    .endif
   
    lwz        r5,0x64(r5)
   
    #push
    stwu        r1,-80(r1)
    stmw        r14,8(r1)
 
    #Get necessary info
    lhz        r14,0x0A(r5) #length of header
    lwz        r15,0x1C(r5) #ITPT section offset
    lwz        r16,0x20(r5) #ITPH section offset
 
    #Sum up the offsets to get locations in mem
    add        r14, r14, r5
    add        r15, r15, r14
    add        r16, r16, r14
 
    #Store the pointers somewhere accessible
    lis        r14, 0x8150
    stw        r15,0(r14) #Store ITPT location
    stw        r16,4(r14) #Store ITPH location
 
    #Set initial section and group
    lis        r15, 0
    stw        r15,8(r14)
    stw        r15,12(r14)
 
    #pop
    lmw        r14,8(r1)
    addi        r1,r1,80
 
 
Source2:

#Address Ports
#80597350 NTSC-U
#805A2388 PAL
#805A1D08 NTSC-J
#805903E0 NTSC-K

    lwz        r0,8(r3) #Default instruction
 
    #push
    stwu        r1,-80(r1)
    stmw        r14,8(r1)
 
    lis        r14, 0x8150
    lwz        r17,0(r14) #Get ITPT location
    lwz        r18,4(r14) #get ITPH location
 
    lwz        r19,8(r14) #Load current section
    lwz        r20,12(r14) #Load current group
 
    #Skip section header
    addi        r17, r17, 0x08
    addi        r18, r18, 0x08
 
    #ITPH interpreter
    mulli      r16, r20, 0x10 #Current group
    add        r18, r18, r16
    lbz        r16,0(r18)
 
    #ITPT interpreter
    mulli      r15, r19, 0x14 #Current section
    mulli      r16, r16, 0x14
    add        r15, r15, r16
    add        r17, r17, r15
 
    #Get number of ITPT entries in current group
    lbz        r16,1(r18)
    subi        r16, r16, 1
 
    #Check current section to max entries
    cmpw        r19, r16
    bgt        setnextgroup
 
    #Get item point coordinate and store to player
    lwz        r16,0(r17)
    stw        r16,0(r3)
    lwz        r16,4(r17)
    stw        r16,4(r3)
    lwz        r16,8(r17)
    stw        r16,8(r3)
 
    addi        r19, r19, 1 #increment for next section
    b          continue
setnextgroup:
    lbz        r16,8(r18)
    stw        r16,12(r14) #set next group
    li          r19,0
 
continue:
    stw        r19,8(r14) #set next section
 
    #pop
    lmw        r14,8(r1)
    addi        r1,r1,80

Print this item