Since I'm getting tired of the argument "I googled the address and it didn't show up so it's my code" I'm writing this for clarification.
Just because an exact address and/ or codetype doesn't show up doesn't mean a code hasn't been made. There are countless ways to do the same thing. Ever bothered changing the codetype to see if that might hit something?
String write codes might be written with many 04 codes if the coder is a n00b or with 06 if the coder knows what he's doing.
The bit write could be different since 8, 16 and 32 bits exist even though for Wii games mostly 32 bit writes are used and needed. In terms of codetypes that might be 00, 02 and 04.
Also, codes in assembly with C2, F2 or even 04 codetypes always have a different address than the direct memory address because they are instructions. The only way to see if that's the same thing is to set a breakpoint execute on it using Gecko.NET and then clicking "Show mem" to go to the direct memory address in memory viewer. This requires a USB Gecko to do and can NOT be done with RAM dumps (in most cases) because you don't see the register contents. Assembly codes can also be shifted up and down depending on the assembly itself and still be the same thing. It again depends on the instructions written and the register contents. What makes things even more complicated is dynamic memory allocation which means that the same thing can move in memory therefore only the same effect/ assembly or pointer can be used to tell if it's the same thing or not.
Ever knew pointer codes exist? That's also a way of making a code using a starting address and adding offsets. Again, a USB Gecko is usually needed to follow the pointer and see where it leads. If the address hit by the starting address plus the offset is the address in question it has been made.
Then there's also the C0 kind of assembly which might use the address in question inside which won't easily be detect. To do that, one has to decompile it using e.g. PyiiASMH and know how to read some assembly code. Usually addresses are loaded using lis and ori instructions.
Due to the sheer amount of different ways to use a certain address it sometimes is nearly impossible to figure out if a code has been made or not so you don't need to bother going through all alternatives.
Another good way of verification is reading the code titles of other coders if it's basically the same thing or not. Then you can verify if it's actually the case. This is easily done on a website like geckocodes since all codes are listed there.
Note:
A ported code is still credits to the original coder because he did all the work while you just converted it. Put "Ported by " below the code for porting credits.
Here's a good and recent example:
Bully@WiiPlaza made the code "Infinite Score Points" for New Super Mario Bros. Wii [SMNE01].
Much later, VO1D creates the code "Point Modifier" also for this game and region:
This is still credits to Bully@Wiiplaza because it's the same thing once in assembly and once in direct RAM write codetypes. This can be verified by setting a breakpoint execute on the C2 code's address 8005F62C and it will lead to 80429CC0 when the user follows the source register using "Show mem" which is -22976(r13). Now you might say: "But VO1D's code is 2 bytes off!" Well, for some unknown reason he moved it to there but it's still the same 32 bit value since it's 4 bytes long (from 80429CC0 to 80429CC4) so all addresses in that range are still the "Score Modifier".
As a reminder, the assembly address is not the same as the direct memory address because it's an instruction address which is always the case on C2, F2 and 04 assembly codes therefore VO1D might think he gets credit but he doesn't since it has been made like explained.
Remember:
A CODE NOT HAVING THE SAME ADDRESS DOES NOT MEAN IT'S NOT THE SAME THING. YOU NEED TO FULLY UNDERSTAND AND ANALYSE THE CODE(TYPE) FIRST. IT CAN BECOME COMPLEX ON ASSEMBLY OR POINTER CODES AND DIFFERENT GAME REGIONS.
What do we learn?
N00bs who don't know anything about coding need to shut up and learn what everything exactly means before they're talking. Also I hope you read everything and learned something about code credits and are not going to use these tips to steal credit in a smarter fashion now. Just let it down and give credit when you already have to leech an address.
Much appreciated, thanks
Just because an exact address and/ or codetype doesn't show up doesn't mean a code hasn't been made. There are countless ways to do the same thing. Ever bothered changing the codetype to see if that might hit something?
String write codes might be written with many 04 codes if the coder is a n00b or with 06 if the coder knows what he's doing.
The bit write could be different since 8, 16 and 32 bits exist even though for Wii games mostly 32 bit writes are used and needed. In terms of codetypes that might be 00, 02 and 04.
Also, codes in assembly with C2, F2 or even 04 codetypes always have a different address than the direct memory address because they are instructions. The only way to see if that's the same thing is to set a breakpoint execute on it using Gecko.NET and then clicking "Show mem" to go to the direct memory address in memory viewer. This requires a USB Gecko to do and can NOT be done with RAM dumps (in most cases) because you don't see the register contents. Assembly codes can also be shifted up and down depending on the assembly itself and still be the same thing. It again depends on the instructions written and the register contents. What makes things even more complicated is dynamic memory allocation which means that the same thing can move in memory therefore only the same effect/ assembly or pointer can be used to tell if it's the same thing or not.
Ever knew pointer codes exist? That's also a way of making a code using a starting address and adding offsets. Again, a USB Gecko is usually needed to follow the pointer and see where it leads. If the address hit by the starting address plus the offset is the address in question it has been made.
Then there's also the C0 kind of assembly which might use the address in question inside which won't easily be detect. To do that, one has to decompile it using e.g. PyiiASMH and know how to read some assembly code. Usually addresses are loaded using lis and ori instructions.
Due to the sheer amount of different ways to use a certain address it sometimes is nearly impossible to figure out if a code has been made or not so you don't need to bother going through all alternatives.
Another good way of verification is reading the code titles of other coders if it's basically the same thing or not. Then you can verify if it's actually the case. This is easily done on a website like geckocodes since all codes are listed there.
Note:
A ported code is still credits to the original coder because he did all the work while you just converted it. Put "Ported by " below the code for porting credits.
Here's a good and recent example:
Bully@WiiPlaza made the code "Infinite Score Points" for New Super Mario Bros. Wii [SMNE01].
- Code:
Inf. Score Points [Bully@Wiiplaza]
C205F62C 00000002
3C807FFF 6084FFFF
908DA640 00000000
Much later, VO1D creates the code "Point Modifier" also for this game and region:
- Code:
Points Modifier [VO1D]
02429CC2 XXXXXXXX
This is still credits to Bully@Wiiplaza because it's the same thing once in assembly and once in direct RAM write codetypes. This can be verified by setting a breakpoint execute on the C2 code's address 8005F62C and it will lead to 80429CC0 when the user follows the source register using "Show mem" which is -22976(r13). Now you might say: "But VO1D's code is 2 bytes off!" Well, for some unknown reason he moved it to there but it's still the same 32 bit value since it's 4 bytes long (from 80429CC0 to 80429CC4) so all addresses in that range are still the "Score Modifier".
As a reminder, the assembly address is not the same as the direct memory address because it's an instruction address which is always the case on C2, F2 and 04 assembly codes therefore VO1D might think he gets credit but he doesn't since it has been made like explained.
Remember:
A CODE NOT HAVING THE SAME ADDRESS DOES NOT MEAN IT'S NOT THE SAME THING. YOU NEED TO FULLY UNDERSTAND AND ANALYSE THE CODE(TYPE) FIRST. IT CAN BECOME COMPLEX ON ASSEMBLY OR POINTER CODES AND DIFFERENT GAME REGIONS.
What do we learn?
N00bs who don't know anything about coding need to shut up and learn what everything exactly means before they're talking. Also I hope you read everything and learned something about code credits and are not going to use these tips to steal credit in a smarter fashion now. Just let it down and give credit when you already have to leech an address.
Much appreciated, thanks