No Boundary Check V2.0
#1
Lets you drive anywhere out of the map without respawning, 
unlike the longer version by Anarion my 3 line version of this code does not cause the camera to glitch out of bounds when there are more then 2 players.

NTSC U
0056F033 00000000
C259728C 00000003
B27D0334 A01D0334

PAL
00573E83 00000000
C25A22C4 00000003
B27D0334 A01D0334

NTSC J
00573803 00000000
C25A1C44 00000003
B27D0334 A01D0334
Reply
#2
Approved both of your codes, but this one got moved here. Your C2 Code is incomplete.
Reply
#3
(11-14-2022, 01:01 AM)Vega Wrote: Approved both of your codes, but this one got moved here. Your C2 Code is incomplete.

I have tested this code on dolphin and had no problems with it but ok.
Reply
#4
Your C2 says it has 3 lines of asm but only includes 1
Reply
#5
NTSC-U
0056F033 00000000
C259728C 00000001
B27D0334 A01D0334

PAL
00573E83 00000000
C25A22C4 00000001
B27D0334 A01D0334

NTSC-J
00573803 00000000
C25A1C44 00000001
B27D0334 A01D0334

Like this
Reply
#6
(03-21-2023, 06:37 PM)Luigi Hack Fan Wrote: NTSC-U
0056F033 00000000
C259728C 00000001
B27D0334 A01D0334

PAL
00573E83 00000000
C25A22C4 00000001
B27D0334 A01D0334

NTSC-J
00573803 00000000
C25A1C44 00000001
B27D0334 A01D0334

Like this

That's not a valid Gecko ASM code.
Reply
#7
(03-21-2023, 06:37 PM)Luigi Hack Fan Wrote: NTSC-U
0056F033 00000000
C259728C 00000001
B27D0334 A01D0334

PAL
00573E83 00000000
C25A22C4 00000001
B27D0334 A01D0334

NTSC-J
00573803 00000000
C25A1C44 00000001
B27D0334 A01D0334

Like this

Your code is using technically 2 whole instructions to create the C2 code. While yes, dolphin and most code reader/writers can read this, it isn't correct by the whole "instruction amount" declared in the C2.

Since you are using 2 instructions, it should be declared as "C2XXXXXX 00000002".

Also, since you also are using an even amount of instructions in the C2 code, you should also have an extra line at the end of the code that looks something like "60000000 00000000". This is simply a terminator and it tells the code handler when the C2 code ends. Any code writer should add this in automatically so, make sure you are actually attempting to write the codes, instead on just Frankenstein-ing it together.

(Anyone smarter correct me if I am wrong)
~MarioKartWii.com #1~
Reply
#8
(03-23-2023, 03:54 PM)Zeraora Wrote:
(03-21-2023, 06:37 PM)Luigi Hack Fan Wrote: NTSC-U
0056F033 00000000
C259728C 00000001
B27D0334 A01D0334

PAL
00573E83 00000000
C25A22C4 00000001
B27D0334 A01D0334

NTSC-J
00573803 00000000
C25A1C44 00000001
B27D0334 A01D0334

Like this

Your code is using technically 2 whole instructions to create the C2 code. While yes, dolphin and most code reader/writers can read this, it isn't correct by the whole "instruction amount" declared in the C2.

Since you are using 2 instructions, it should be declared as "C2XXXXXX 00000002".

Also, since you also are using an even amount of instructions in the C2 code, you should also have an extra line at the end of the code that looks something like "60000000 00000000". This is simply a terminator and it tells the code handler when the C2 code ends. Any code writer should add this in automatically so, make sure you are actually attempting to write the codes, instead on just Frankenstein-ing it together.

(Anyone smarter correct me if I am wrong)

@Zeraora Dolphin can actually execute that improper C2 code as "intended"? Never knew that.

@Luigi_Hack_Fan Regarding the proper format of a C2 Gecko ASM Code, all C2 codes end in "00000000". This isn't an actual PPC instruction. It's present to "tell" the Gecko Code Handler to place in a "return back to game" branch in your code's source. To understand this better, go to this thread and read Chapter 3 - https://mariokartwii.com/showthread.php?tid=1383

Due to compiled code alignment/size rules, a nop may be inserted into a C2 code's source during code compilation time. This is the "60000000" part you see in some C2 codes. In nooby terms, a Nop = Do Nothing.

Regardless, this conversation shouldn't even need to take place. All Gecko C2 Code compilers do everything for you in regards to adjusting the finished/compiled code.

--

On another note, the source for this C2 code is strange...

sth r19, 0x334 (r29)
lhz r0, 0x334 (r29)

This may be written incorrectly. Some codes may require a custom value to be placed in memory (and replaced into the register) using a method like this...
li rX, ZZZZ
stb/h/w rX, XXXX (rY)
lbz/h/w rX, XXXX (rY)

Which can be shorten to this if the value doesn't actually need to stay in memory..
li rX, ZZZZ

Assuming if the source is correct and r19 needs to be in r0, if r19 doesn't need to be placed into memory, you can shorten the source to this...
mr r0, r19
Reply
#9
@Vega
So it "can" read them depend on the version and the code. Most versions just spit out an error but, I have had some codes fully compile in and function no problem.

@LuigiHackFan
I mean, I personally tried the OG code posted and it instantly spat an error out (v5.0-18498). The code posted is most likely failing due to it not having a proper "Hey, stop here" position.

Just to simply speed the process up, I made the code using Vega's source he provided.

NTSC-U (Tested):
0056F033 00000000
0459728C 7E609B78

PAL (Untested):
00573E83 00000000
045A22C4 7E609B78

NTSC-J (Untested):
00573803 00000000
045A1C44 7E609B78

I did also attempt to port this over to NTSC-K but, couldn't get the first address but I was able to get the second one

NTSC-K (Not Complete)
00?????? 00000000
0459031C  7E609B78
~MarioKartWii.com #1~
Reply


Forum Jump:


Users browsing this thread: 8 Guest(s)