1. Is there a way to bypass trade evolutions and make them level up evolutions instead? (eg. Haunter evolves into Gengar by leveling up instead of trading).

2. Is there a way to make every move into a TM, thus having 161 TMs? (Yes, even Splash). The 5 HMs would stay as they are.

3. On GymEdit GB, there is no way to add more Pokemon to the Gym Leaders' team. How would I go about doing that? (eg. Add Sandslash and Kabuto to Brock's team).

4. I'd like to add a pokeball with Mew inside (think Eevee in Celadon City). Either next to the truck near SS Anne or from the guy in Celadon after completing the 150 pokedex. How would I do that?

Any help would be great! I haven't had any experience in terms of hex editing and would preferably like to steer clear of that. From what I've read, this can all be done by ASM programming (correct me if I'm wrong).

Re: Hacking Red Questions (Trade evolutions and adding more TMs)

Making item IDs 16-bit could be complicated. Things that immediately come to mind that would need to be modified:- The player's item bag, and item PC storage- Other wram addresses for temporary storage of item IDs, like when using an item- Map object data (data/mapObjects/) which stores item IDs for pick-up items- Mart inventories- Plus all the code that works with this data would need to be rewritten to handle the ID in a register pair, instead of a single register. A lot of this code is in scripts/ but not all of it.

The code that should handle giving the player a Mew should be immediately below ".CompletedDex"To see how to accomplish it, you can look at how another script does it. For example, the guy from Silph Co that gives you Lapras:

So you need to call GivePokemon while b holds MEW and c holds the level that you want the player to receive. The GivePokemon function sets the carry flag when it is successful, so this script jumps to .done if the carry flag is not set (The player did not receive the Pokemon. The party and current box were full.)

If the carry flag is set (was successful), the script sets a flag and prints .HeresYourLaprasText. Specifically, it sets bit 0 of wd72e. Notice that it checks this flag at the beginning of the script. This is to avoid giving the player a Lapras every time they talk to him. You would have to do a similar thing for your script, and use an unused flag for this event. (there are a ton of them)

Re: Hacking Red Questions (Trade evolutions and adding more TMs)

Is there anything between Max Elixer (0x53) and HM 01 (0xC4) other than the silph scope floors? If I'm not mistaken you have over 100 usable item slots in-between. If you need 111 more TMs, you can replace the HM 01 constant with 0x55 and count the other HMs/TMs from there, although that could lead to a conflict with the silph scope floors which are somehow handled with item id's (i don't know the details).

I changed gym leader

Be careful with the hardcoded trainer moves. Normally the most recently learned moves are used by trainers by default but some bosses use special moves on their pokemon. e.g. if you replace misty's starmie with a charmeleon, you'll end up with a charmeleon that knows bubblebeam.

LoneMoves: ; 39d22 (e:5d22)
; these are used for gym leaders.
; this is not automatic! you have to write the number you want to W_LONEATTACKNO
; first. e.g., erika's script writes 4 to W_LONEATTACKNO to get mega drain,
; the fourth entry in the list.
; first byte: pokemon in the trainer's party that gets the move
; second byte: move
; unterminated
db 1,BIDE
db 1,BUBBLEBEAM
db 2,THUNDERBOLT
db 2,MEGA_DRAIN
db 3,TOXIC
db 3,PSYWAVE
db 3,FIRE_BLAST
db 4,FISSURE
TeamMoves: ; 39d32 (e:5d32)
; these are used for elite four.
; this is automatic, based on trainer class.
; don't be confused by LoneMoves above, the two data structures are
; _completely_ unrelated.
; first byte: trainer (all trainers in this class have this move)
; second byte: move
; ff-terminated
db LORELEI,BLIZZARD
db BRUNO,FISSURE
db AGATHA,TOXIC
db LANCE,BARRIER
db $FF

Re: Hacking Red Questions (Trade evolutions and adding more TMs)

I haven't gotten to adding more TMs yet, but I've changed the Fighting Dojo to a Bug Gym, with Scyther or Pinsir as the prize Pokemon. Seems to be working fine, but I haven't changed the name of the gym yet.

If I could add Gen II Bug Pokemon to have some variety in that gym, that would be perfect. I think I saw a tutorial on how to add next gen Pokemon on FireRed but is there a way to do it on Red version?

Re: Hacking Red Questions (Trade evolutions and adding more TMs)

Well, as the error states, you do not have leafeon.png in pic/monback/ (it is probably named leafeonb.png)

Also, you do not need to edit home.asmSince you are using the gbc hack, I have already modified that routine, which is why you see RecallBank.The whole point of this routine, originally, is to determine which bank to look in for a Pokemon's front and back pic, based on its index number.This makes it very hard to freely move any single Pokemon's pics between different banks.With the changes I made to that routine, pics can be in any bank, with two conditions.A Pokemon's front and back pic must be in the same bank, and the last line of each Pokemon's base stats file must be "db BANK(_____PicFront)" where _____PicFront is the label for that Pokemon's front pic.

As far as main.asm, you still need to delete "INCLUDE "data/baseStats/mew.asm"" and you need to add:LeafeonPicFront:: INCBIN "pic/bmon/leafeon.pic"LeafeonPicBack:: INCBIN "pic/monback/leafeonb.pic"anywhere that it fits. I would put it in the same bank as some other pics, just for consistency. Note that all pics are included twice (from bmon/ and gsmon/), because the gbc project allows for you to toggle between gen I and gen II pics.

EDIT:I think you updated your comment while I was typing mine and you changed the error screenshot.Unknown symbol means something tried referring to "LeafeonPicBack" but that label doesn't exist anywhere.

Re: Hacking Red Questions (Trade evolutions and adding more TMs)

In your terminal, type "git diff | clip" (there will be no output on the screen, that's okay) then press ctrl+v into hastebin.com, click save and share the link.Or just join our irc to talk about it in real time.https://kiwiirc.com/client/irc.freenode.net/?#pret

Re: Hacking Red Questions (Trade evolutions and adding more TMs)

Danny-E 33 wrote:

In your terminal, type "git diff | clip" (there will be no output on the screen, that's okay) then press ctrl+v into hastebin.com, click save and share the link.Or just join our irc to talk about it in real time.https://kiwiirc.com/client/irc.freenode.net/?#pret

Re: Hacking Red Questions (Trade evolutions and adding more TMs)

Okay, so I'm guessing you have never used git before. Typically, you make a few related changes, then make a 'commit' for those changes.For example, only edit trainer parties and then make a commit named "Modify trainer parties" then add Leafeon and make a commit named "Add Leafeon" etc, instead of having a 7000 line long diff. Because look at the situation your are in now. What useful name can you give to the commit? "Change a bunch of shit"?I also don't know how you managed to change the mode on all the files in the repo. I don't fully understand the point of file modes, I just know it's annoying to have mode changes in commits for no reason.

Anyway, the corrupt save file is unavoidable. When you add Pokemon, you increase the size of the owned/seen flag arrays in wram/sram which causes the new game to not recognize the old game's save files.

Donphan's Pokedex page is corrupted because you forgot the string terminator character (@) after "ARMOR".

As far as why Eevee evolves into Flareon immediately after evolving into Umbreon, I don't know yet. I tested it with your diff and I get the same bug. I will think on it a bit and let you know if I find out what's wrong.

Re: Hacking Red Questions (Trade evolutions and adding more TMs)

Danny-E 33 wrote:

Okay, so I'm guessing you have never used git before. Typically, you make a few related changes, then make a 'commit' for those changes.For example, only edit trainer parties and then make a commit named "Modify trainer parties" then add Leafeon and make a commit named "Add Leafeon" etc, instead of having a 7000 line long diff. Because look at the situation your are in now. What useful name can you give to the commit? "Change a bunch of shit"?I also don't know how you managed to change the mode on all the files in the repo. I don't fully understand the point of file modes, I just know it's annoying to have mode changes in commits for no reason.

Anyway, the corrupt save file is unavoidable. When you add Pokemon, you increase the size of the owned/seen flag arrays in wram/sram which causes the new game to not recognize the old game's save files.

Donphan's Pokedex page is corrupted because you forgot the string terminator character (@) after "ARMOR".

As far as why Eevee evolves into Flareon immediately after evolving into Umbreon, I don't know yet. I tested it with your diff and I get the same bug. I will think on it a bit and let you know if I find out what's wrong.

Well my only experience with ASM was 8 years ago in high school. I forgot 99% of it and I'll be the first to admit that I have no idea what I'm doing. Although I've learned a lot over the last couple of weeks thanks to this forum, the disassembly and you.

Prior to this I had no idea what git was, or anything really. I also don't know how I managed to change the mode on all the files either! Haha.

I should probably go into detail about what I ideally want for my hack.

1. Colorized overworld and gen II graphics (thanks to you and everyone involved, that is possible). 2. All 151 Pokemon available in one way or another, with some Gen II, III and IV Pokemon available. 3. All trade evolutions to be level evolutions (done, thanks!)4. Fighting Dojo to be a Bug Gym with Scyther and Pinsir as the prize Pokemon (which may change once I add next gen Bug Pokemon). 5. 161 TMs. If this proves to be too difficult, I'll stick with what I've already done by changing the original TMs to different moves and maybe even adding new moves to the game in general. 6. New items. Eg. Sun Stone to evolve Eevee into Espeon or Ice Stone to evolve Eevee into Glaceon. Maybe even go further by adding some sort of Steel item to evolve Scyther into Scizor or a fake evolution such as Aerodactyl into Skarmory. 7. Adding new types such as Dark and Steel. 8. Running shoes and boy/girl option (I've seen it in another hack on here but can't remember which one it was). 9. Not necessary, but perhaps a day/night option. 10. Again, not necessary but changing the item bag to have different pockets like next gen games, or changing the boxes on Bill's PC to be more like next gen games. 11. Female Rockets. 12. Not necessary, but key items to replace Cut, Strength and Flash. 13. This kind of goes hand in hand with point 6, but replacing (what I think are crap) moves such as Bind with Gen II moves like Flame Wheel. Don't need new animations as I can just use Gen I animations like Ember or Flamethrower for it.

I usually work evenings, so I've got most of the day and plenty of time and patience to take as long as I want to get it done. All I need is a little help here and there. I think I'd be able to do certain things without help, such as adding Female Rockets and changing moves... hopefully.

Re: Hacking Red Questions (Trade evolutions and adding more TMs)

Cheers Mateo, I'll check that out later.

I've since removed Donphan and added Umbreon and Glaceon (along with Leafeon, which I added yesterday).

Leafeon works perfectly, but my Glaceon and Umbreon have glitched sprites (both front and back). That's the only issue I'm having right now. Do the back sprites need to be 32 x 32 pixels like the others? Other than the glitched sprites, they're fine.

I'm using the sprites of Umbreon and Glaceon from Mateo's Red++ (as a test until I make my own).

EDIT: I got the sprites to work. Turns out I was missing "db BANK(GlaceonPicFront)" at the bottom of the baseStats.asm for each new Pokemon, which is strange because Leafeon had "db 0 ; padding" and the front sprite was working fine but the back sprite wasn't. Changing "db 0 ; padding" to "db BANK(LeafeonPicFront)" doesn't do anything. The front sprite still loads fine while the back sprite is a mess. Whereas Umbreon and Glaceon have both front and back sprites working perfectly now.

Re: Hacking Red Questions (Trade evolutions and adding more TMs)

You're using the gbc hack, which adds gen II pics, so all back pics need to be 48x48.

megamctaco wrote:

Leafeon had "db 0 ; padding" and the front sprite was working fine

That's because you edited home.asm and I told you not to. The part you edited loads the right bank if the mon being loaded is Leafeon, but that code is unnecessary once you add BANK() to the base stats file.

megamctaco wrote:

the front sprite was working fine but the back sprite wasn't

I'm not sure why that is. It is working for me based on the diff you posted. Make sure its 48x48 pixels and in the same bank as the front pic and make sure the base stats file points to the back pic correctly.