• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Pokeemerald] Unique surfing overworlds

I am pretty bad with sprites, but it is my intention to eventually fix a lot of them for my hack, if nobody beats me to it.
 
I am pretty bad with sprites, but it is my intention to eventually fix a lot of them for my hack, if nobody beats me to it.
Haven't been active here in a long time but I ported your branch to the Expansion 1.9.4, so it uses the expansion's (merrp's?) dynamic pals. I added the missing overworlds, polished up the older ones, and fixed all the swapping bugs.
My surfing branch inherited a bunch of my other stuff but it's self-contained in this commit: https://github.com/zacwalton/pokeemerald-expansion/commit/a0fe52fa55cc03e05d43f431badf1c5999f8c75c.
It only adds up to gen 3, and I think the default blob has a broken palette. It'd probably be a few weeks worth of work to add the remaining gens but I'll probably do each gen in bulk, starting with IV, once I can be bothered to get around to it.
[PokeCommunity.com] Unique surfing overworlds
 
Last edited:
Apologies for the double-post. I didnt account for the new palette files being wiped with `make clean`, repointed palettes directly to the follower overworlds for the new mons. This makes it much easier to upkeep. I've now also added up to Basculin, the rest of the sprites barring regional forms have been defined. They wont render properly as the second layer of frames is missing on the sprites. Hoping to get at least gen 6, possibly gen 8 done by the end of the week but it's getting monotonous :D. Most sprites just edit the follower sprites, though I used some of the better ones from Ghoulslash's binary port where needed. changes found here: https://github.com/rh-hideout/pokeemerald-expansion/commit/3ad95f0d42c7a7b98cedffb29fc9cd6fb2ea7a83
 
Haven't been active here in a long time but I ported your branch to the Expansion 1.9.4, so it uses the expansion's (merrp's?) dynamic pals. I added the missing overworlds, polished up the older ones, and fixed all the swapping bugs.
My surfing branch inherited a bunch of my other stuff but it's self-contained in this commit: https://github.com/zacwalton/pokeemerald-expansion/commit/a0fe52fa55cc03e05d43f431badf1c5999f8c75c.
It only adds up to gen 3, and I think the default blob has a broken palette. It'd probably be a few weeks worth of work to add the remaining gens but I'll probably do each gen in bulk, starting with IV, once I can be bothered to get around to it.
[PokeCommunity.com] Unique surfing overworlds
Wanted to say thank you for your self-contained commit! I've incorporated your functionality into my RomHack just up to Gen 3.

I did notice a bug though when fishing on a surfing mon which has an overlay sprite which splits the overlay sprite with the main surfing sprite resulting in "dismembered/duplicated head" situation. I recommend testing with Swampert or Milotic whilst fishing downwards to see the effect.

I did make a small update to add the "UpdateBobbingEffect" function to "UpdateSurfMonOverlay" so that when you fish whilst on a mon with an overlay it doesn't break when fishing . Unfortunately, adding "UpdateBobbingEffect" has broken "jumping" onto the mon when starting the surf animation. Would love any suggestions as to how to fix as I don't have a deep enough understanding to fix it up! (Branch linked below)

https://github.com/Exclsior/Pokemon_Emerald_Legacy_Enhanced/tree/dynamic-surfing-overworlds

Note: I've retrofitted the function into a base pokeemerald fork so it doesn't have the expansion overworld sprites etc.
 
Apologies for the double-post. I didnt account for the new palette files being wiped with `make clean`, repointed palettes directly to the follower overworlds for the new mons. This makes it much easier to upkeep. I've now also added up to Basculin, the rest of the sprites barring regional forms have been defined. They wont render properly as the second layer of frames is missing on the sprites. Hoping to get at least gen 6, possibly gen 8 done by the end of the week but it's getting monotonous :D. Most sprites just edit the follower sprites, though I used some of the better ones from Ghoulslash's binary port where needed. changes found here: https://github.com/rh-hideout/pokeemerald-expansion/commit/3ad95f0d42c7a7b98cedffb29fc9cd6fb2ea7a83
Thank you so much for updating them in a nice clean way to put in people's hacks :)

For other people's references, when solving the merge commits -- sym_ewram.txt and ld_script.ld can be safely deleted, and the shellos and gastrodon follower directories have been renamed from east_sea to east, but it otherwise works smoothly beyond the bobbing bug Excelsior found :)
 
Wanted to say thank you for your self-contained commit! I've incorporated your functionality into my RomHack just up to Gen 3.

I did notice a bug though when fishing on a surfing mon which has an overlay sprite which splits the overlay sprite with the main surfing sprite resulting in "dismembered/duplicated head" situation. I recommend testing with Swampert or Milotic whilst fishing downwards to see the effect.

I did make a small update to add the "UpdateBobbingEffect" function to "UpdateSurfMonOverlay" so that when you fish whilst on a mon with an overlay it doesn't break when fishing . Unfortunately, adding "UpdateBobbingEffect" has broken "jumping" onto the mon when starting the surf animation. Would love any suggestions as to how to fix as I don't have a deep enough understanding to fix it up! (Branch linked below)

https://github.com/Exclsior/Pokemon_Emerald_Legacy_Enhanced/tree/dynamic-surfing-overworlds

Note: I've retrofitted the function into a base pokeemerald fork so it doesn't have the expansion overworld sprites etc.
Thanks for raising. I actually noticed this a couple days ago too but I had no idea how to tackle it until you posted.
I added a check for a new var before calling UpdateBobbingEffect. The var is set only when setting up surf, to stop it updating when jumping on the surf mon.
It's in this commit https://github.com/zacwalton/pokeem...7e...6fa0f5f4aea18a08ad8157f556ffb6d5543f976a

I also fixed a crash with expanded surf mons a while back but forgot to post, I added a comment on surfable.c line 53 for it. It just needs 'i' defined as a u32 to support larger indexes.

*EDIT*
Found another odd bug that seems to stem from this surfing fix/UpdateBobbingEffect, If Arcues' form is changed, it wont create the overlay sprite when surf is called from the overworld as a follower mon, until the screen is refreshed (i.e. accessing the bag or an encounter). It specifically only occurs after the follower sprite is drawn, so changing the form facing water then surfing immediately wont trigger it, but if the player walks on land again and triggers the foller sprite (without having triggered a screen transition), the bug starts occuring (until a screen transition is triggered). Likewise, calling surf from the party wont trigger the bug. Not too sure how to fix this one.
[PokeCommunity.com] Unique surfing overworlds

There's an additional bug where changing forms while surfing will cause the follower sprite to glitch when landing. I believe vanilla expansion had the same issue with follower forms, I might just be on an older release though.
 
Last edited:
Thanks Wally!

I'm curious as to whether you're seeing an issue that I'm seeing with SaveBlock data?

The code changes for the Surfing Overworld sprites somehow breaks (on my ROM at least) the Decoration Item storage, Mauville Pokemon Centre "Old Man" and PC, and occasionally TV calls freeze the player.

The only common thread between all of them is SaveBlock data and that if I go to a branch without the surfing changes all the issues seem to be fixed up.

If you haven't seen anything like this then I guess it's unique to my code and I'll just keep troubleshooting to find a fix.
 
Thanks Wally!

I'm curious as to whether you're seeing an issue that I'm seeing with SaveBlock data?

The code changes for the Surfing Overworld sprites somehow breaks (on my ROM at least) the Decoration Item storage, Mauville Pokemon Centre "Old Man" and PC, and occasionally TV calls freeze the player.

The only common thread between all of them is SaveBlock data and that if I go to a branch without the surfing changes all the issues seem to be fixed up.

If you haven't seen anything like this then I guess it's unique to my code and I'll just keep troubleshooting to find a fix.
Is this for an existing save? It adds some extra save data so that might be expected. I had a brief look, decorations seemed fine for me in the player house on a new save, and the name rater show played correctly. Cant test the mauville old man though. Feel free to DM me more specific examples/scenarios.
 
Nevermind! I found the issue, I didn't have any unused Vars left so I had added one for the Surf Mon Slot and increased the max, appears I've accidentally overflowed everything afterwards in SaveBlock1.

Completely an error on my end, nothing at all wrong on your code implementation, so sorry to bother!

The Surfing Overworlds (at least Gen 1-3 for me) are working exactly very well overall.

I did find one bug with some further where the palette for the full pokemon sprite for the field effect changes. I'm happy enough with this as a minor visual bug for my Rom and it's only on some tiles (testing just in Pacifidlog Town) but am curious if you've ever seen anything like below on your code?


Working fine on some tiles:
 
Last edited:
Back
Top