Yellow Pokémon Yellow - Gen. II Graphics Patch V1.1 Page 2

Started by Danny-E 33 July 9th, 2016 12:19 PM
  • 83771 views
  • 41 replies
He or They
Seen June 18th, 2022
Posted June 18th, 2022
200 posts
9.6 Years
Drake, you used tools to make you hack, right?
As in, you didn't use the pokeyellow disassembly?
If you only used tools to edit a rom to make this hack, then there's no easy way to put the two hacks together.
You could always remake your hack using the pokeyellow disassembly. It's frustrating but not impossible. In 2013, I remade V1.2 of the Pokemon Red Gen II Graphics Hack (which was made entirely through hex editing) in the pokered disassembly which took me about 5 days, with many hours each day.



You shouldn't put yourself down. You've already done some impressive things.

What do you mean "two different methods"? I could help look into this for you.
Ah, let's see if I can remember...
Okay, so, when I first wanted to change Pikachu's sprite, I simply looked for where it called PIKACHU_SPRITE. This led me to overworld/map_sprites.asm, and the routine LoadSpriteSetFromMapHeader and it looked like asking it to load based on a flag a different sprite should work. However when I modified it to alternatively call a Raichu sprite based on a flag, this ended up only working in some areas and not others.

I then went and looked at the sprite tables - there are a bunch of sprite tables for each outdoors map I think, and it looks like Pikachu is added to all of them. Modifying it, say replacing pikachu there with clefairy, led to being followed by that sprite in those areas instead. So my thought is that there must be two different methods for loading sprites in Yellow, based on whether you are indoors or outdoors, perhaps because outdoor sprites need to be able to change dynamically when you walk into the next area but indoor sprites do not as you only warp to new areas. I was hoping if you knew if that was the case or not. I haven't found a second routine that calls PIKACHU_SPRITE anywhere though.
Evo-Yellow: 151 Evolve Raichu Hack, uses the Yellow Disassembly. Play as girl, ride a pokemon, special/physical, dark/fairy/steel types, new pokemon, gen 2 sprites, evolve Pikachu into Raichu and have them still follow you with new Raichu emotion sprites!
Yellow Hack Tutorial
Fire Yellow - A FireRed Hack & Yellow Remake with Following Pikachu - I am not continuing this until I get a new computer where I can use the latest disassembly. My old one can only run gen I disassemblies.

Danny-E 33

The Loneliest Cubone

Male
Seen 6 Days Ago
Posted March 19th, 2023
252 posts
11.4 Years
@Danny-E 33 Holy awesomesauce matee you finally done it!!!! I looking this improvement yellow version long time ago. Anyways before I play this my 1st question is it compatible in GBA mode!? 2nd question you intend not to include misty's portrait and sprite like you did in RED/BLUE?
It is not a GBA rom, but it will work on a GBA emulator that also supports GBC roms, such as VBA, as well as on a real GBA on a flashcart if the flashcart supports it.

Thanks for pointing out the Misty sprite.. Somehow I goofed. Not only did I forget to switch Misty's Yellow sprite to Misty's GSC sprite, I managed to replace it with Misty's Red/Blue sprite. I'll get this fixed and upload an update soon. Thanks for pointing it out!

Ah, let's see if I can remember...
Okay, so, when I first wanted to change Pikachu's sprite, I simply looked for where it called PIKACHU_SPRITE. This led me to overworld/map_sprites.asm, and the routine LoadSpriteSetFromMapHeader and it looked like asking it to load based on a flag a different sprite should work. However when I modified it to alternatively call a Raichu sprite based on a flag, this ended up only working in some areas and not others.

I then went and looked at the sprite tables - there are a bunch of sprite tables for each outdoors map I think, and it looks like Pikachu is added to all of them. Modifying it, say replacing pikachu there with clefairy, led to being followed by that sprite in those areas instead. So my thought is that there must be two different methods for loading sprites in Yellow, based on whether you are indoors or outdoors, perhaps because outdoor sprites need to be able to change dynamically when you walk into the next area but indoor sprites do not as you only warp to new areas. I was hoping if you knew if that was the case or not. I haven't found a second routine that calls PIKACHU_SPRITE anywhere though.
Oh right, of course.

Your assumptions are pretty much correct.
All outdoor maps are assigned a sprite set. These sprites in a sprite set are the only sprites available once the map is loaded.
Indoor maps aren't given a sprite set. Instead, they basically load sprites "on demand".

To fix outdoor maps, you should tweak the end of the "InitOutsideMapSprites:" routine in engine/overworld/map_sprites.asm
That routine currently contains these lines:
	ld c, a
	ld b, 0
	ld a, (wSpriteSetID - wSpriteSet)
	ld hl, SpriteSets
	call AddNTimes ; get sprite set offset
	ld de, wSpriteSet
	ld bc, (wSpriteSetID - wSpriteSet)
	call CopyData ; copy it to wSpriteSet
	call LoadMapSpriteTilePatterns
where register a contains the sprite set id minus 1.
After CopyData is called, [wSpriteSet] contains the value SPRITE_PIKACHU (because every single sprite set begins with SPRITE_PIKACHU).

So after the call to CopyData and before the call to LoadMapSpriteTilePatterns, you could add a few lines of code that checks to see if the player has Raichu and if so, overwrite the value at wSpriteSet with a different sprite id.

If you have any more questions on this, feel free to send me a pm or join our irc.
Male
Seen December 29th, 2021
Posted March 26th, 2021
17 posts
3.5 Years
Hey, Danny, impressive work, man. Unbelievable

I mean to ask you, I am doing a yellow hack myself, and I've went a long way, already.. story, stats, maps... but these sprites and the xp bar, nice! I was wondering maybe you could show me how to do the same changes on my rom?
I wouldn't just take your rom and re-do my changes out of it, unless you were cool with it.

Danny-E 33

The Loneliest Cubone

Male
Seen 6 Days Ago
Posted March 19th, 2023
252 posts
11.4 Years
Hey, Danny, impressive work, man. Unbelievable

I mean to ask you, I am doing a yellow hack myself, and I've went a long way, already.. story, stats, maps... but these sprites and the xp bar, nice! I was wondering maybe you could show me how to do the same changes on my rom?
I wouldn't just take your rom and re-do my changes out of it, unless you were cool with it.
I'm really sorry for taking over a year to respond.
You can always PM me or find me on Discord and I'll gladly help you with stuff like this.

How can i edit Market items with MartEdit GB after this patch in clear ROM?.
Rather than editing the binary ROM with old tools like MartEdit GB, you should clone a copy of the source code from here: https://github.com/dannye/pokeyellow-gen-II
And then you can edit the mart items from here: https://github.com/dannye/pokeyellow-gen-II/blob/master/data/items/marts.asm
Male
Southern California USA
Seen March 29th, 2023
Posted March 29th, 2023
48 posts
2 Years
i apologize if this was already asked/answered but any clue if this patch is compatible with pokemon yellow 151?
hi.

I recently registered here and I have tested the Gen 2 hack with pokemon yellow 151 in the latest version of the BGB emulator on my Win10 computer and it seemed to work.

though the only problem I found with just the yellow gen 2 graphics hack is that the game crashes (soft-locks) after entering the small beach house on Route 19 (south of Fuchsia City) where the pikachu beach surfing minigame is held. avoid going inside that small house on Route 19 and things will be okay. that game crashing problem I was able to easily reproduce on the BGB, TGB dual, VBA/VBA-M emulators on my PC. other than that, this graphics hack is great.
Male
Southern California USA
Seen March 29th, 2023
Posted March 29th, 2023
48 posts
2 Years
Any chances the bug at the beach house can be fixed? If not, then is it possible to just outright block entrance to the house? I can't tell you how many times I play through this and forget about the bug then lose 2 to 3 hours of progress because I only save when I'm about to close the game....
or maybe just remove/delete that beach house entirely to workaround the problem