Skeetendo

’Cause all games were better on the GBC

You are not logged in.

#1 2011-11-14 18:09:54

swampert22
Member
From: Switzerland
Registered: 2010-10-16
Post 20/26
Website

[R/B/Y] Adding Pokémon

Hello everyone! This has been something I've been trying to accomplish for quite a while now, however I've been unsuccessful in doing so, therefore I ask you more knowledgable hackers what to do next! Hopefully we can build some kind of tutorial :)

Anyway, basically, what I've been trying to do, is add Marill to a Red ROM. I was attempting to insert him over the first Missingno. in the list, hex identifier, 1F. Now due to the rhydon glitch, any Pokémon that is given to the player, eg. in Oak's lab, that doesn't have a valid PokéDex entry becomes Rhydon when given.

I added Marill, (1F) to 152 in the PokéDex order found at  $41024, obviously, putting 98 in the 1Fth place in the list. This successfully makes Pokémon 1F have number 152 when you view the PokéDex page in Oak's lab. However, when you receive it, it becomes Rhydon again.

Next, I added pointers to Marill's PokéDex data in the PokéDex pointers list, as documented by Sawakita in the documents section. This when done however, still makes Marill become Rhydon when you receive it. So basically I'm asking, what do I do next!!

(I know I haven't added base stats yet, but I had hoped that I could just get the game to load the garbage data after the other 150 Pokémon for that ;))

Thanks very much for any help, it's always greatly appreciated!!


For Pokémon ROM hacking tools, please visit my site www.swamperttools.co.nr!

Check out my latest tool release, a trainer editor for Pokémon Red and Blue!

Offline

#2 2011-11-14 20:45:05

stag019
Idea Killer
Registered: 2011-01-05
Post 27/630

Re: [R/B/Y] Adding Pokémon

I actually wrote a tutorial on this. It's at home and I'm at work right now, but I should be able to post in in ~4 hours.

I have pretty much everything figured out. I've done it myself before. The tutorial itself explains everything but Moves/Evolutions, and Pokedex data. And it's not that I don't know how, it's that I need to document where the pointers are, and find some good free space for it.

The only thing that doesn't work is adding more than one Pokemon. I need to find out how to repoint the Pokedex seen/caught values to somewhere else in the RAM. I've tried studying Pokemon Brown, but haven't figured it out yet. But since the values are 19 bytes (19 bytes * 8 bits per byte = 152 bits) adding a 152nd Pokemon works fine without changing anything.

I'll post the tutorial when I get home.


You can try to hide yourself in this world of pretend; when the paper's crumpled up, it can't be perfect again.

Offline

#3 2011-11-14 21:14:14

swampert22
Member
From: Switzerland
Registered: 2010-10-16
Post 21/26
Website

Re: [R/B/Y] Adding Pokémon

Wow, that sounds great! If I remember correctly, Pokémon Brown is the only Red/Blue hack with added Pokémon, and as such there is very little known about this. Combining and publishing knowledge is the best way forward!

I shall look forward to reading through what you post tomorrow! I'm really motivated to hack Gen 1 at the moment, guess it's Nostalgia kicking in in my old age :P


For Pokémon ROM hacking tools, please visit my site www.swamperttools.co.nr!

Check out my latest tool release, a trainer editor for Pokémon Red and Blue!

Offline

#4 2011-11-15 04:54:41

stag019
Idea Killer
Registered: 2011-01-05
Post 28/630

Re: [R/B/Y] Adding Pokémon

Sorry, I had a long day at work, and after work. I should have it up by tomorrow after work (~5:30PM eastern time).


You can try to hide yourself in this world of pretend; when the paper's crumpled up, it can't be perfect again.

Offline

#5 2011-11-15 08:13:31

swampert22
Member
From: Switzerland
Registered: 2010-10-16
Post 22/26
Website

Re: [R/B/Y] Adding Pokémon

stag019 wrote:

Sorry, I had a long day at work, and after work. I should have it up by tomorrow after work (~5:30PM eastern time).

No worries mate, it's not like there's any hurry anyway! I'm going to take another look through the data today and see what I find!!


For Pokémon ROM hacking tools, please visit my site www.swamperttools.co.nr!

Check out my latest tool release, a trainer editor for Pokémon Red and Blue!

Offline

#6 2011-11-16 06:35:42

stag019
Idea Killer
Registered: 2011-01-05
Post 29/630

Re: [R/B/Y] Adding Pokémon

Okay, I finally got it uploaded here. I finished it too. Hopefully, it should explain itself. There's the tutorial is in a text file, a command prompt executable for doing all the changes automatically, and the C source code to that executable. All zipped up at under 6.5KB. Enjoy. ;)


You can try to hide yourself in this world of pretend; when the paper's crumpled up, it can't be perfect again.

Offline

#7 2011-11-16 16:58:47

swampert22
Member
From: Switzerland
Registered: 2010-10-16
Post 23/26
Website

Re: [R/B/Y] Adding Pokémon

Thanks so much! Killer tutorial dude, I see why I failed now, I had repointed all the data successfully, but had missed the value that limits the number of Pokémon to 151, hence the Rhydon glitch! It works perfectly now! As you can see, screenshots are always useful ;)

ChikoritaBattle.png ChikoritaPokeDex.gif

This should be moved the the tutorials section I reckon!! One thing though, I don't know if I missed the point, but with the program that you included, which is a great I idea by the way, I didn't seem to get it to work. I assume you just drag your ROM into it, but nothing happened! I just followed the tutorial so it didn't bother me that much, just wondering if you could clear it up for others! It was a Blue ROM i tried by the way.

Aside from that, no problems! Just got to crack those PokéDex flags, and also, theres some ASM at $1633 that defines which bank a Pokémon's graphics are contained within. The only issue is, that the banks are damn near full as it is, and are dedicated only to graphics, so I don't see at the present moment, how to add the images to the Missingnos as there just isn't the room, and repointing wouldn't fix this! There was just enough room in bank $0A for Chikorita's front sprite, but no back sprite.  Correct me if I'm wrong please :D

Fine work, this will surely help all retro hackers out there, thanks again!!

Last edited by swampert22 (2011-11-16 17:11:26)


For Pokémon ROM hacking tools, please visit my site www.swamperttools.co.nr!

Check out my latest tool release, a trainer editor for Pokémon Red and Blue!

Offline

#8 2011-11-16 19:08:25

stag019
Idea Killer
Registered: 2011-01-05
Post 30/630

Re: [R/B/Y] Adding Pokémon

swampert22 wrote:

One thing though, I don't know if I missed the point, but with the program that you included, which is a great I idea by the way, I didn't seem to get it to work. I assume you just drag your ROM into it, but nothing happened! I just followed the tutorial so it didn't bother me that much, just wondering if you could clear it up for others! It was a Blue ROM i tried by the way.

I was afraid this was gonna happen. It's a command prompt program, which means you have to open up a command prompt (Start -> Run -> Type "cmd" in Windows XP) to run it. Technically dragging and dropping should work, but apparently when you do that, it doesn't set the working directory to the same one the program is in (wtf? why?). I worked on this for hours before I realized every time I drag and dropped it, it appeared at "C:\Documents and Settings\Owner" instead of where I expected.

swampert22 wrote:

Aside from that, no problems! Just got to crack those PokéDex flags, and also, theres some ASM at $1633 that defines which bank a Pokémon's graphics are contained within. The only issue is, that the banks are damn near full as it is, and are dedicated only to graphics, so I don't see at the present moment, how to add the images to the Missingnos as there just isn't the room, and repointing wouldn't fix this! There was just enough room in bank $0A for Chikorita's front sprite, but no back sprite.  Correct me if I'm wrong please :D

Fine work, this will surely help all retro hackers out there, thanks again!!

In Pokemon Brown version, Koolboyman had it so that the last (unused) byte in the base stats data structure was the byte where the graphics could be found. And considering how much empty space there is in the (Non-Japanese) ROM, I doubt you could fill up the whole ROM. But unfortunately, I don't really know ASM. The "turns into Rhydon" step was me guessing and checking and managing to succeed. I figured out what "greater than 152" translated into ASM, and then searched for it in the ROM, and was lucky enough to find it rather easily.

I'm hoping someone else's expertise can help me finish this. Mostly the what I said about Pokemon Brown, as well as the Pokedex seen/caught bits.

Oh, and one thing would be nice (that would require a little reworking) would be to put the moves learned at capture into the learned move section, with a level of 0 or 1 (that's how Generatio II does it), to clear a few extra bytes in the base stats structure, to maybe try to throw a few of the other bytes in there. You know, to keep everything together.

Also, just curious, can you think of any other piece of data that would describe an individual Pokemon that I may have missed in this tutorial?


You can try to hide yourself in this world of pretend; when the paper's crumpled up, it can't be perfect again.

Offline

#9 2011-11-16 20:04:03

tysonrss
Member
From: US, Ohio
Registered: 2011-08-27
Post 153/649

Re: [R/B/Y] Adding Pokémon

It's DVs maybe?


Pokemon Blue DX is reborn!

Offline

#10 2011-11-16 20:06:07

stag019
Idea Killer
Registered: 2011-01-05
Post 31/630

Re: [R/B/Y] Adding Pokémon

No.

Also swampert22: I fixed the problem with dragging and dropping. Download the zip again and it should work. See the source (lines 86 - 93) to see how I fixed it.


You can try to hide yourself in this world of pretend; when the paper's crumpled up, it can't be perfect again.

Offline

#11 2011-11-17 07:18:15

swampert22
Member
From: Switzerland
Registered: 2010-10-16
Post 24/26
Website

Re: [R/B/Y] Adding Pokémon

stag019 wrote:

In Pokemon Brown version, Koolboyman had it so that the last (unused) byte in the base stats data structure was the byte where the graphics could be found. And considering how much empty space there is in the (Non-Japanese) ROM, I doubt you could fill up the whole ROM. But unfortunately, I don't really know ASM. The "turns into Rhydon" step was me guessing and checking and managing to succeed. I figured out what "greater than 152" translated into ASM, and then searched for it in the ROM, and was lucky enough to find it rather easily.

I'm hoping someone else's expertise can help me finish this. Mostly the what I said about Pokemon Brown, as well as the Pokedex seen/caught bits.

Oh, and one thing would be nice (that would require a little reworking) would be to put the moves learned at capture into the learned move section, with a level of 0 or 1 (that's how Generatio II does it), to clear a few extra bytes in the base stats structure, to maybe try to throw a few of the other bytes in there. You know, to keep everything together.

Also, just curious, can you think of any other piece of data that would describe an individual Pokemon that I may have missed in this tutorial?

Ah! Well that explains how he was able to include so many images, uncompressed too. When you break down the ASM routine at $1633 in Brown and compare it to that of normal Red/Blue, it's pointing to bank $67 for every Pokémon image, so maybe we could look into that? Other than that I could think of altering the ASM routine so that there were more 'groups' of Pokémon for example, taken from IIMarckus' dissassembly:

; offset 1633
; define (by index number) the bank that a pokemon's image is in
; index = Mew, bank 1
; index = Kabutops fossil, bank $B
;    index < $1F, bank 9
; $1F ≤ index < $4A, bank $A
; $4A ≤ index < $74, bank $B
; $74 ≤ index < $99, bank $C
; $99 ≤ index,       bank $D
    ld a,[$CF91] ; XXX name for this ram location
    ld b,a
    cp $15
    ld a,$01
    jr z,.GotBank\@
    ld a,b
    cp $B6
    ld a,$0B
    jr z,.GotBank\@
    ld a,b
    cp $1F
    ld a,$09
    jr c,.GotBank\@
    ld a,b
    cp $4A
    ld a,$0A
    jr c,.GotBank\@
    ld a,b
    cp $74
    ld a,$0B
    jr c,.GotBank\@
    ld a,b
    cp $99
    ld a,$0C
    jr c,.GotBank\@
    ld a,$0D
.GotBank\@
    jp $24FD

As you can see there's the possibility of a Pokémon having it's image in one of 5 banks by default, based on it's Index number. If this were increased to for example, 10, there would be no problem with space, seeing as how much of it there is in the end of the ROM. However this routine takes up a set space, and I don't know if it could be repointed...

Good idea about the 'Level 0' moves, however if you can imagine, there would be a hell of a lot of work involved in comparison to defining a Pokémon's image bank elsewhere. Think, all 151 Pokémon already in there would need to have their movesets edited, which would then take at least one byte more room, thus MASS repointing! I guess it's possible with ASM, however I'm only starting to get the basics so at the moment, I have no Idea how to do this. I was successful in creating a simple GivePokemon script in Red though, that's a start I guess ;)

I'm still searching for the PokéDex flags, obviously to no success YET... We need to get a few more people on board, I'm sure IIMarckus and Sawakita would have valuable expertise to give, plus Coolboyman if he reads this lol!!

As for all the defining Pokémon information, I think you nailed it all, I did a test run with the repointed data up to Brock's gym and everything functioned as desired, however that's not to say there isn't something missing, just that everything obvious has been successfully repointed.

On a last note, I re-downloaded your source, but I still cannot get the drag and drop to work, I'm running Windows 7 if that changes anything, It may be the ROM on closer inspection, as using the command promt gives me the message that the file I'm opening is not a Pokemon Red or Blue ROM.

That's it anyway, sorry for the super long post :D


For Pokémon ROM hacking tools, please visit my site www.swamperttools.co.nr!

Check out my latest tool release, a trainer editor for Pokémon Red and Blue!

Offline

#12 2011-11-17 07:31:09

stag019
Idea Killer
Registered: 2011-01-05
Post 33/630

Re: [R/B/Y] Adding Pokémon

char version_name[4];
strncpy(version_name, &ROM[0x13C], 3);

if(strcmp(version_name, "Red") != 0 && strcmp(version_name, "Blu") != 0)
{
    puts("Not a Pokemon Red or Blue ROM.");
     return EXIT_FAILURE;
}

That's how it checks if its a Pokemon Red or Blue ROM. Not the best way, but also not the worst way. :P

As far as the banking thing goes, I knew that's how it was coded in the game. But I don't know if leaving it like that (and adding more entries) is a better or worse idea than having one byte in the base stats data structure be the bank number (like it is in Pokemon Brown).

As far as repointing all the moves, I wouldn't do it manually. I'd set up a PHP script or something to do it. I have a lot of PHP experience doing stuff with ROMs. For example my Pokedex reads all the information directly from the ROMs on my server. The lack of Japanese support is why Green fails to display anything right. The only thing that isn't read from the ROM directly is the Generation I pictures (Generation II successfully decompresses them from a function I wrote a while back) because I made this before I figured out how to decompress them. I do plan to fix that someday...


You can try to hide yourself in this world of pretend; when the paper's crumpled up, it can't be perfect again.

Offline

#13 2011-11-17 07:31:47

337/700

Re: [R/B/Y] Adding Pokémon

if(strcmp(version_name, "Red") != 0 && strcmp(version_name, "Blu") != 0)
        {
                puts("Not a Pokemon Red or Blue ROM.");
                return EXIT_FAILURE;
        }

These should be comparing all caps.

#14 2011-11-17 07:46:15

swampert22
Member
From: Switzerland
Registered: 2010-10-16
Post 25/26
Website

Re: [R/B/Y] Adding Pokémon

stag019 wrote:

As far as the banking thing goes, I knew that's how it was coded in the game. But I don't know if leaving it like that (and adding more entries) is a better or worse idea than having one byte in the base stats data structure be the bank number (like it is in Pokemon Brown).

As far as repointing all the moves, I wouldn't do it manually. I'd set up a PHP script or something to do it. I have a lot of PHP experience doing stuff with ROMs. For example my Pokedex reads all the information directly from the ROMs on my server. The lack of Japanese support is why Green fails to display anything right. The only thing that isn't read from the ROM directly is the Generation I pictures (Generation II successfully decompresses them from a function I wrote a while back) because I made this before I figured out how to decompress them. I do plan to fix that someday...

Yeah, you're right. Just need to figure out where the base stat structure is defined I guess, after all there's a spare byte for each Pokémon so why not use it, adds up to a lot of space really. Going down the route Brown took seems like the best idea.

That's cool about the PHP scripts, I have never experimented with them! The PokéDex is a really good resource :)

Also, what IIMarckus said ;)


For Pokémon ROM hacking tools, please visit my site www.swamperttools.co.nr!

Check out my latest tool release, a trainer editor for Pokémon Red and Blue!

Offline

#15 2011-11-17 08:05:25

stag019
Idea Killer
Registered: 2011-01-05
Post 35/630

Re: [R/B/Y] Adding Pokémon

swampert22 wrote:

That's cool about the PHP scripts, I have never experimented with them! The PokéDex is a really good resource :)

Thank you. It was a lot of fun to make. I'm thinking about editing it to display things like the addresses where the data is found.

Also, why the crap does my ROM only have the first letter capital?


You can try to hide yourself in this world of pretend; when the paper's crumpled up, it can't be perfect again.

Offline

#16 2011-11-17 08:55:51

swampert22
Member
From: Switzerland
Registered: 2010-10-16
Post 26/26
Website

Re: [R/B/Y] Adding Pokémon

stag019 wrote:

Thank you. It was a lot of fun to make. I'm thinking about editing it to display things like the addresses where the data is found.

Also, why the crap does my ROM only have the first letter capital?

Adding addresses would definitely be a good idea. As for your ROM, that's weird, if you didn't edit it yourself, I've been dealing with GB ROMs half my life (God that makes it seem like a long time...) and they all have Upper Case ROM Headers!


For Pokémon ROM hacking tools, please visit my site www.swamperttools.co.nr!

Check out my latest tool release, a trainer editor for Pokémon Red and Blue!

Offline

#17 2011-11-18 08:20:24

stag019
Idea Killer
Registered: 2011-01-05
Post 36/630

Re: [R/B/Y] Adding Pokémon

swampert22 wrote:
stag019 wrote:

Thank you. It was a lot of fun to make. I'm thinking about editing it to display things like the addresses where the data is found.

Also, why the crap does my ROM only have the first letter capital?

Adding addresses would definitely be a good idea. As for your ROM, that's weird, if you didn't edit it yourself, I've been dealing with GB ROMs half my life (God that makes it seem like a long time...) and they all have Upper Case ROM Headers!

I downloaded another ROM elsewhere and ran fc on it; the only differences was the header. Odd.

Anyways, updated the zip once again. Try this one out.


You can try to hide yourself in this world of pretend; when the paper's crumpled up, it can't be perfect again.

Offline

#18 2011-11-19 03:30:52

zhengwei
Member
Registered: 2011-08-18
Post 110/140

Re: [R/B/Y] Adding Pokémon

Could anybody tell me how to add pokemon in GS, this is my thread. http://hax.iimarck.us/topic/785/

Thanks

Offline

#19 2011-11-19 04:59:23

stag019
Idea Killer
Registered: 2011-01-05
Post 37/630

Re: [R/B/Y] Adding Pokémon

I saw your thread.
I haven't done it yet.
1. But read over my tutorial for Generation I.
2. Find corresponding locations here
3. Make changes similar to those
4. ???
5. Profit
But please leave this thread be about Generation I.


You can try to hide yourself in this world of pretend; when the paper's crumpled up, it can't be perfect again.

Offline

#20 2011-11-19 19:23:19

Sawakita
Administrator
Registered: 2010-10-16
Post 230/364

Re: [R/B/Y] Adding Pokémon

swampert22 wrote:
stag019 wrote:

In Pokemon Brown version, Koolboyman had it so that the last (unused) byte in the base stats data structure was the byte where the graphics could be found. And considering how much empty space there is in the (Non-Japanese) ROM, I doubt you could fill up the whole ROM. But unfortunately, I don't really know ASM. The "turns into Rhydon" step was me guessing and checking and managing to succeed. I figured out what "greater than 152" translated into ASM, and then searched for it in the ROM, and was lucky enough to find it rather easily.

I'm hoping someone else's expertise can help me finish this. Mostly the what I said about Pokemon Brown, as well as the Pokedex seen/caught bits.

Oh, and one thing would be nice (that would require a little reworking) would be to put the moves learned at capture into the learned move section, with a level of 0 or 1 (that's how Generatio II does it), to clear a few extra bytes in the base stats structure, to maybe try to throw a few of the other bytes in there. You know, to keep everything together.

Also, just curious, can you think of any other piece of data that would describe an individual Pokemon that I may have missed in this tutorial?

Ah! Well that explains how he was able to include so many images, uncompressed too. When you break down the ASM routine at $1633 in Brown and compare it to that of normal Red/Blue, it's pointing to bank $67 for every Pokémon image, so maybe we could look into that? Other than that I could think of altering the ASM routine so that there were more 'groups' of Pokémon for example, taken from IIMarckus' dissassembly:

; offset 1633
; define (by index number) the bank that a pokemon's image is in
; index = Mew, bank 1
; index = Kabutops fossil, bank $B
;    index < $1F, bank 9
; $1F ≤ index < $4A, bank $A
; $4A ≤ index < $74, bank $B
; $74 ≤ index < $99, bank $C
; $99 ≤ index,       bank $D
    ld a,[$CF91] ; XXX name for this ram location
    ld b,a
    cp $15
    ld a,$01
    jr z,.GotBank\@
    ld a,b
    cp $B6
    ld a,$0B
    jr z,.GotBank\@
    ld a,b
    cp $1F
    ld a,$09
    jr c,.GotBank\@
    ld a,b
    cp $4A
    ld a,$0A
    jr c,.GotBank\@
    ld a,b
    cp $74
    ld a,$0B
    jr c,.GotBank\@
    ld a,b
    cp $99
    ld a,$0C
    jr c,.GotBank\@
    ld a,$0D
.GotBank\@
    jp $24FD

As you can see there's the possibility of a Pokémon having it's image in one of 5 banks by default, based on it's Index number. If this were increased to for example, 10, there would be no problem with space, seeing as how much of it there is in the end of the ROM. However this routine takes up a set space, and I don't know if it could be repointed...

Good idea about the 'Level 0' moves, however if you can imagine, there would be a hell of a lot of work involved in comparison to defining a Pokémon's image bank elsewhere. Think, all 151 Pokémon already in there would need to have their movesets edited, which would then take at least one byte more room, thus MASS repointing! I guess it's possible with ASM, however I'm only starting to get the basics so at the moment, I have no Idea how to do this. I was successful in creating a simple GivePokemon script in Red though, that's a start I guess ;)

I'm still searching for the PokéDex flags, obviously to no success YET... We need to get a few more people on board, I'm sure IIMarckus and Sawakita would have valuable expertise to give, plus Coolboyman if he reads this lol!!

As for all the defining Pokémon information, I think you nailed it all, I did a test run with the repointed data up to Brock's gym and everything functioned as desired, however that's not to say there isn't something missing, just that everything obvious has been successfully repointed.

On a last note, I re-downloaded your source, but I still cannot get the drag and drop to work, I'm running Windows 7 if that changes anything, It may be the ROM on closer inspection, as using the command promt gives me the message that the file I'm opening is not a Pokemon Red or Blue ROM.

That's it anyway, sorry for the super long post :D

Concerning pokedex flags location in RAM, you can find them as follows:
- owned pokemon flags: $d2f7 ($13 bytes long)
- seen pokemon flags: $d30a ($13 bytes long)

Concerning using last byte of base stats to define sprites' bank, you could write something like this:

; offset 1633

    ld a,[$d0d3]
    ld b,a
    jp $24fd    ;decompression routine

Before running the code at $1633 the game engine loads the current pokemon's base stats in RAM $d0b8-d0d3, so last byte would be at $d0d3.

swampert22 wrote:

I'm still searching for the PokéDex flags, obviously to no success YET... We need to get a few more people on board, I'm sure IIMarckus and Sawakita would have valuable expertise to give, plus Coolboyman if he reads this lol!!

I think MeanMrMustard was the one who wrote all the ASM hacks in Brown, Coolboyman just inserted the sprites after him.

Offline

#21 2011-11-27 06:28:54

stag019
Idea Killer
Registered: 2011-01-05
Post 45/630

Re: [R/B/Y] Adding Pokémon

Sawakita wrote:

Concerning pokedex flags location in RAM, you can find them as follows:
- owned pokemon flags: $d2f7 ($13 bytes long)
- seen pokemon flags: $d30a ($13 bytes long)

I did know that (Ckoolboyman's RAM map told me, as well as Gameshark codes). But as far as where in the game reads that, I don't know. Also Professor Oak glitches on > 151 Pokemon, that would need fixing as well.

As far as your other change, I implemented it in my program. I might update the tutorial later, who knows. Of course, with the program, I was able to automatically put the default bank for each directly in the base stats structure with only two functions and an automatic loop. That would be rather difficult to explain in a tutorial without Adding 151 steps. :P

Link


You can try to hide yourself in this world of pretend; when the paper's crumpled up, it can't be perfect again.

Offline

#22 2011-11-27 16:31:48

Sawakita
Administrator
Registered: 2010-10-16
Post 235/364

Re: [R/B/Y] Adding Pokémon

Well, if you already knew everything, why didn't you just make a research with a hex editor to check where those RAM locations are read/written and then disassemble and edit the involved routines?

Offline

#23 2011-11-28 06:15:35

zhengwei
Member
Registered: 2011-08-18
Post 128/140

Re: [R/B/Y] Adding Pokémon

stag019 wrote:

I saw your thread.
I haven't done it yet.
1. But read over my tutorial for Generation I.
2. Find corresponding locations here
3. Make changes similar to those
4. ???
5. Profit
But please leave this thread be about Generation I.

Adding new pokemon to generation II is successful. You can see my thread.
Thank you all the same.

Offline

#24 2011-11-28 06:24:19

stag019
Idea Killer
Registered: 2011-01-05
Post 48/630

Re: [R/B/Y] Adding Pokémon

zhengwei wrote:

Adding new pokemon to generation II is successful. You can see my thread.
Thank you all the same.

No probs bro. :)

You should write a tutorial on how to do it. List all the locations and whatnot. Especially because reading your thread, you mentioned footprints, and I would have completely forgotten about footprints. :P

Sawakita wrote:

Well, if you already knew everything, why didn't you just make a research with a hex editor to check where those RAM locations are read/written and then disassemble and edit the involved routines?

I didn't know everything, I just those locations in the RAM. I have done a search for the locations in a hex editor before, but seeing as how I don't know assembly, it's next to useless for me. I guess reading assembly wouldn't be too hard for me (if I had an opcode list at hand to reference constantly), but I'd also need a disassembler.


You can try to hide yourself in this world of pretend; when the paper's crumpled up, it can't be perfect again.

Offline

#25 2011-11-28 07:21:41

361/700

Re: [R/B/Y] Adding Pokémon

stag019 wrote:
Sawakita wrote:

Well, if you already knew everything, why didn't you just make a research with a hex editor to check where those RAM locations are read/written and then disassemble and edit the involved routines?

I didn't know everything, I just those locations in the RAM. I have done a search for the locations in a hex editor before, but seeing as how I don't know assembly, it's next to useless for me. I guess reading assembly wouldn't be too hard for me (if I had an opcode list at hand to reference constantly), but I'd also need a disassembler.

Set a watchpoint in BGB for those locations in memory, and the debugger will pop up whenever they’re accessed.

Here is a list of instructions and their effects.

Board footer

Powered by FluxBB