Jump to content

Pokémon HeartGold/SoulSilver: Real-Time PC Box Deletion


Demonic722

Recommended Posts

I haven't really contributed anything to this site since I've joined, so here's a little something I've been working on that let's you choose how many Pokémon to release from whichever PC Box and whichever slot(s) you choose.

AR Code:

023FE074 012FFF11
E0000000 00000098
E28F0001 E12FFF10
6800481C D0342800
880BA11B 4D1C18C0
882A884B D105421A
60044C1A 60444C1A
60844C1A 421A888B
7802D123 7A047903
D11E2A01 D11C2B02
D11A2C03 88C38842
2A128944 2B1EDC15
2C1EDC13 88CDDC11
25101940 436A022D
18801B52 436B2588
1B5B436C 1824181B
601A2200 42A33304
4770D1FB 02111880
03000D14 E9FC0004
04000130 00120001
001E0002 001E0003
023FE074 E3520003

Press L+R to receive 18 Master Balls, 30 Ultra Balls and 30 Great Balls.

Master Balls = PC Box

Ultra Balls = Starting Slot

Great Balls = Ending Slot

Press Select to remove those Pokémon from that PC Box's Slot(s).

Example:

If the user discards 17 master balls, 29 Ultra Balls and 24 Great Balls, Pokémon 1-6 in Box 1 will be "released".

I have opened the source to everything I've did for this code in this gist: https://gist.github.com/3617400

The ASM source is included, but it isn't noted. I have included some checks so if you somehow get more Poke Balls (buying/finding) or have a different Poke Ball in those slots, the code won't work.

Special Thanks:

Codr and PokéGen. I used some info from Codr's PokéGen (PC Stuff) to make this.

I'm not expecting this code to get popular since this is 4th Generation, but it's still a cool code in my opinion. Note: I only tested this on AceKard 2 and I doubt it will work on emulators, but I'm 100% certain that it will work on an actual ARDS.

Link to comment
Share on other sites

I didn't bother rewriting my code since you stated that it might not work, so I wrote something smaller. This seems to work on Pokémon Black 2 (J) [ProjectPokémon v4 Patch/IREJ E0BB8D9E]:

::Infinite Money
:::Press Select
94000130 FFFB0000
023FE074 012FFF11
E0000000 00000018
E59F0008 E59F1008
E5801000 E12FFF1E
02226084 0098967F
023FE074 E3520003
D2000000 00000000

Source:

ldr r0,money
ldr r1,value
str r1,[r0]
bx lr

money:
.word 0x02226084
value:
.word 0x0098967F

Note: I tested this code on AceKard 2 using a Nintendo DS Lite.

Link to comment
Share on other sites

hmm.. ok. thanks for testing. we may have both been doing different things wrong or something. i'm not all that familiar with ar codes. i was hoping to be proven wrong, that hack to execute code is so handy.

just for my own edification, using this hack alone will cause the code to be executed once per vframe, right? and using it with an activator will cause the ar to execute the code when you press the button?

Link to comment
Share on other sites

Yep, that code above should work exactly like whoever made this:

::Max Money (Select)
94000130 FFFB0000
02226084 0098967F
D2000000 00000000

Credit goes to whoever made that...

It will also work if I embedded a check for "if select is pressed" in the ASM code, but that usually requires a few more lines and it wasn't really needed since this isn't a complex code.

Removing the activator from my code will work exactly like this:

::Infinite Money
02226084 0098967F

One thing I did notice was that when you modify the game's ASM, you're modifying what happens when you do "this" action since you're modifying how the game "behaves". If I set a bpw on that address and if I modified the value that I want stored, I would have to buy/sell/gain in order for the code to max out my money (unless you could somehow get it to work upon entering the trainer ID screen or when it displays the money counter in a market). Using Kenobi's ARDS E Code Type Hack, I can write my own Custom ASM Routine that will write directly to those addresses and it's more "flexible" since you can do a lot more in ASM than with the original ARDS Code types.

Link to comment
Share on other sites

Have you ever tried compiling with Nitro Hax for Flash Cards? The Desmume devs might have to implement an addition for this E Code type hack in their emulator or something. I know this might not really fix things since this game doesn't require the "(M)" code, but it might work. I noticed that it works well with games that require the Custom (M) code such as Animal Crossing: Wild World. In fact, that's the only solution to getting the ASM Codes with that E Code type hack to work on my Acekard for those kind of games.

Example of one of my other codes;

This code is partially off topic/isn't Pokémon related:

//This code will work on an ARDS, but not on my flash card.
[color="red"]023FF090 012FFF11
E0000000 000000A0[/color]
E28F2001 E12FFF12
6800481D D0352800
00E424A9 68021B00
0B526885 3A100B6D
210F3D10 4011230F
0912402B 0252092D
004902ED 189B015B
185B195B 18D24A11
0A2C8815 D0192C50
4810490F 28007800
490FD102 7800480F
8854A210 18094360
8800480D 42108812
800DD100 3201231C
D0004210 52CDE002
D5FC3B02 00004770
021C6DEC 021E3124
021CFC26 021CBD48
021D88FE 021D02EC
04000130 228C0301
[color="red"]023FF090 E3520003[/color]

//this code will work on my flash card
[color="green"]C2000000 000000A0[/color]
E28F2001 E12FFF12
6800481D D0352800
00E424A9 68021B00
0B526885 3A100B6D
210F3D10 4011230F
0912402B 0252092D
004902ED 189B015B
185B195B 18D24A11
0A2C8815 D0192C50
4810490F 28007800
490FD102 7800480F
8854A210 18094360
8800480D 42108812
800DD100 3201231C
D0004210 52CDE002
D5FC3B02 00004770
021C6DEC 021E3124
021CFC26 021CBD48
021D88FE 021D02EC
04000130 228C0301

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...