Will fix ASAP
Announcement
Collapse
No announcement yet.
47iscool's NDS & GBA Codes
Collapse
X
-
Sonic codes have a conditional that activate only when that game is loaded or at least it should since the codes can cause glitches or lockups in other sonic games. I haven't hacked this game since it was released but I remember it being setup like that.
Here is a trainer toolkit guide but useful for anyone wanting to hack NDS codes, it has good examples of code nesting and all code types and explanations. The ArmRef is for if you ever decide to do ASM hacks on the NDS its a nice reference to the different instructions.Spoiler Alert! Click to view...
THE BAD GUY!!!!!!
Comment
-
>Explain to him the Difference of D0 and D2 Demonic since most people don't know.
Code type D2 is a full end (ends all lines), while D0 is an end-if which means that it will "end" all lines that are executed after the most recent conditional.
I'll use some of my codes as an example:
Code:::Max Pickups 94000130 FFBB0000 ;@check if we're pressing select+up DA000000 02084BD4 ;@if we are, load the 16-bit value at 0x02084BD4 D7000000 02084BDC ;@and store it in 0x02084BDC D2000000 00000000 ;@end; You can use a D0 or a D2 here since there's only one conditional line, but D2 is more common
Next example:Code:::Save Anywhere B21C54B0 00000000 ;@load pointer 94000130 FFF70000 ;@check if start has been pressed 0000017C 00000003 ;@if it has, write 0x3 to the address at 0x021C54B0 + 0x17C (offset) D0000000 00000000 ;@otherwise, end if. If I place a D2 here instead I'll have to reload my pointer since all lines above it will be terminated 94000130 FFF30000 ;@check if Start+Select has been pressed 0000017C 00000000 ;@if it has, write 0x0 to the address at 0x021C54B0 + 0x17C (offset) D2000000 00000000 ;@end
Last Example:Code:::Freeze Time 5200487C 15901050 ;@check if the value at 0x0200487C equals 0x15901050 94000130 FDFE0000 ;@if it does, check if we're pressing L+A 02004880 12811000 ;@if we are, write 0x12811000 to 0x02004880 D0000000 00000000 ;@this will end the 2nd and 3rd lines since the 2nd line is the "most recent" conditional check before this end-if 94000130 FDFD0000 ;@check if we're pressing L+B (we're still checking if the value at 0x0200487C equals 0x15901050 first) 02004880 12811001 ;@if we are, write 0x12811001 to 0x02004880 D2000000 00000000 ;@end
Code:::Clear Outside of "Dead/Invisible Seeds" 94000130 FEBF0000 ;@check if we're pressing R+Up D3000000 021E3124 ;@set our offset value to 0x021E3124 C0000000 00001000 ;@this is how many times we will loop F2000000 00000002 ;@copy 2 bytes from our offset to 0x02000000 82000000 00001FFF ;@if that half-word (this is an item) is greater than 0x1FFF, 72000000 00003000 ;@but less than 0x3000 10000000 0000FFF1 ;@overwrite it with 0xFFF1 D0000000 00000000 ;@end our conditional check for less than 0x3000 D0000000 00000000 ;@end our conditional check for greater than 0x1FFF 82000000 00005021 ;@if that half-word (item) is greater than 0x5021 10000000 0000FFF1 ;@overwrite it with 0xFFF1 D0000000 00000000 ;@end our conditional check DC000000 00000002 ;@add 0x2 to our offset because this is the difference between our map slot addresses D2000000 00000000 ;@end
I only bother with things that interest me.
Comment
-
my pointer avoids unnecessary porting.
I see on first postLast edited by lee4; 04-26-2013, 10:33:36 PM.lee4 Does Not Accept Codes Requests !
When lee4 asks a question it does not mean lee4 will look at your game
*How to create and use SegaCD codes >click here<*
Comment
-
you forget math?Originally posted by 47iscool View PostBut for codes that go past the FFFF offset more research needed.
Its carry over on to next digit
Advance codes never "short" as shown on Demonic722 example of Codetype DOriginally posted by 47iscool View PostTrue, but they also mean more lines of code, each one of mine usually only require 3.
when I make codes, try make them safer to use, when all codes on at once.Last edited by lee4; 04-27-2013, 10:35:29 AM.lee4 Does Not Accept Codes Requests !
When lee4 asks a question it does not mean lee4 will look at your game
*How to create and use SegaCD codes >click here<*
Comment
-
I actually joined that site a few days before that part of the site got shut down. I was BigApple3AM. I joined so I could learn how to make pointer codes for the Nintendo DS and learn how to port Nintendo DS codes too. That's originally where I learned who you were helder.I'm retired from code hacking.
I do not take requests!
Comment
-
Woah woah hold it right there, you can't have ANY conditional without a terminator line added at the end of it or the code doesn't work correctly.
So make sure you add D2000000 00000000 to the code so it looks like this:
Press L+R to have 2 shells for "Shell Smack" mini-game.
94000130 FCFF0000
221807EE 00000003
D2000000 00000000Spoiler Alert! Click to view...
THE BAD GUY!!!!!!
Comment
-
Yeah sorry about that, I was tired when I put that code in so I forgot about that last line. Fixed. Also thanks for whomever added that last line into the DB.Originally posted by Helder View PostWoah woah hold it right there, you can't have ANY conditional without a terminator line added at the end of it or the code doesn't work correctly.
So make sure you add D2000000 00000000 to the code so it looks like this:
Press L+R to have 2 shells for "Shell Smack" mini-game.
94000130 FCFF0000
221807EE 00000003
D2000000 00000000Last edited by 47iscool; 10-29-2013, 03:25:42 PM.
Comment
Comment