• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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

106
Posts
11
Years
  • I'm planning on using this function for my hack so I will be working through all the overworlds as quickly as possible. Do the sprites need to be indexed for the engine? And if so am I right in assuming the first colour will be the transparent background colour still (it's been a few years since I've been rom hacking). In regards to using second poses, I thought that a different pose might be needed for smaller pokemon, however, it wasn't actually necessary. Here's my squirtle sprite as a test. I wasn't sure if the surfing sprite is offset at all so I positioned the characters to match your lapras sprite. I also plan on using squirtle as a base for all smaller (non-rideable) pokemon. Using the same water effects would speed it up considerably.

    Squirtle:
    1nPDwCo.png

    How it should look:
    iAe60mT.png


    Edit: Added some more
    wvBydNY.png

    cDk0o9c.png

    2Q8CM4R.png
     
    Last edited:
    6
    Posts
    4
    Years
    • Seen Oct 1, 2021
    I'm planning on using this function for my hack so I will be working through all the overworlds as quickly as possible. Do the sprites need to be indexed for the engine? And if so am I right in assuming the first colour will be the transparent background colour still (it's been a few years since I've been rom hacking). In regards to using second poses, I thought that a different pose might be needed for smaller pokemon, however, it wasn't actually necessary. Here's my squirtle sprite as a test. I wasn't sure if the surfing sprite is offset at all so I positioned the characters to match your lapras sprite. I also plan on using squirtle as a base for all smaller (non-rideable) pokemon. Using the same water effects would speed it up considerably.

    Squirtle:
    1nPDwCo.png

    How it should look:
    iAe60mT.png


    Edit: Added some more
    wvBydNY.png

    cDk0o9c.png

    2Q8CM4R.png

    Hey there, I am realizing this is quite an old thread by now, but Im wondering how far you got with the overworld sprites?
     
    106
    Posts
    11
    Years
  • Hey there, I am realizing this is quite an old thread by now, but Im wondering how far you got with the overworld sprites?

    I actually got all of Gen 1 and 2 done with a few others but then I got fixated on another personal project. I've been looking for something easy but productive to do so I'll probably finish gens 3 and 4 over the week.
     
    6
    Posts
    4
    Years
    • Seen Oct 1, 2021
    I actually got all of Gen 1 and 2 done with a few others but then I got fixated on another personal project. I've been looking for something easy but productive to do so I'll probably finish gens 3 and 4 over the week.

    Oh cool :) where will you put your current working state? OPs branch on github is 2 years old and I had a hard time solving the merging conflicts, so it might be easier if I could use your (more current) updated branch? If you would allow me to use it of course
     
    106
    Posts
    11
    Years
  • Oh cool :) where will you put your current working state? OPs branch on github is 2 years old and I had a hard time solving the merging conflicts, so it might be easier if I could use your (more current) updated branch? If you would allow me to use it of course

    So I started a full time job two days after my original reply and er... A week was a bit optimistic 😅. As for posting it, it depends entirely on how much I get back into rom hacking. I haven't used git and decomps in a while and was barely getting familiar with it to begin with so I am planning to just post an archive of sprites. If I start getting into the technical bits again, I can stick it on my own github branch if that would help people. When it comes to testing and polish, I will pobably end up porting it to the latest commit anyway... But as always life and brain fog gets in the way of these things. I'm up to Aggron atm but I haven't tested most of them yet.
     
    11
    Posts
    10
    Years
    • Seen Oct 5, 2023
    I dunno know if it makes a difference but I'm super happy to hear someone is still working on these! 😀
     
    11
    Posts
    3
    Years
    • Seen Jul 12, 2021
    wally-217 has sent me all their sprites, and they're all up in the my git repo. They have not yet been tested for alignment with the player sprites, but they should be about functional.

    The pokemon in vanilla Emerald still needing sprites are:
    - Dratini, Pichu, Pikachu, Raichu, Smeargle
    - Aggron, Barboach, Carvanha, Clamperl, Corphish, Crawdaunt, Feebas, Gorebyss, Huntail, Latias, Latios, Luvdisc, Milotic, Rayquaza, Relicanth, Sharpedo, Wailmer, Wailord, Whiscash.

    It also supports Pokemon Expansion, but the only expansion Pokemon I've done so far is Primal Kyogre. If you desire to sprite your fave and post your fave, I'll throw it in there.
     
    Last edited:
    11
    Posts
    3
    Years
    • Seen Jul 12, 2021
    Milotic's been added in and I've been slowly testing + fiddling with them! All of Kanto should look pretty good, excepting the missing pokemon (Pikachu, Raichu, Dratini). :)
     
    34
    Posts
    2
    Years
    • Seen Aug 13, 2023
    So I've implemented this with some updates to allow it to work on more recent builds of pokeemerald, but it seems the surfing pokemon is always the first slot from the party. Is this intended/known, or did I break something?
     

    X_Zenith

    Banned
    145
    Posts
    2
    Years
  • Next on my list of projects is unique surfing overworlds, using the pokeemerald disassembly.


    Features:
    • Individual surfing overworlds for the 102 pokémon that can learn surf (up to and including Gen III).
    • Support for shiny pokémon.
    • Any pokémon that has been taught surf but does not have an overworld sprite will display the standard surf blob instead.
    • Dynamic palette system included.

    Known issues:
    • Placeholder graphics are currently used.
    • The shiny palettes are not necessarily synchronised with the standard palettes so some of the shiny pokémon may appear incorrectly.

    Contributing:
    • Help is needed to create high quality surfing overworlds. There are 102 pokémon that can learn surf which is a substantial amount of work for one person. I have dabbled in pixel art but it is not my forté and I know there are many talented artists around who could do a better job than me.
    • I have left the data in for (but not implemented) different surfing poses for the player as I don't think the standard pose will suit all the pokémon. However I would like other people's opinion on whether this is necessary and if it is then multiple poses will need to be made for each playable character.
    • The video shows Gen IV style player sprites, however this base only includes the pokémon sprites.
      I personally prefer and am more invested in Gen IV style but I think it would be beneficial to the pokémon modding community as a whole to support both styles.

    The pokémon graphics are located in "graphics/event_objects/pics/pokemon/surfable".
    The list of pokémon that can learn surf is located in "src/data/field_event_obj/surfable_pokemon.h".

    Here are some Gen IV surfing sprites to use as reference for anyone who wants to contribute:
    surfing.png

    surfing.png

    surfing.png

    surfing.png

    surfing.png

    How it works:
    I wanted to make it compatible with my costume menu implementation so it works by creating a sprite beneath the player, like the standard surf blob does, and then a sprite above the player.
    So taking the Lapras sprite in the video as an example, the formatting for the graphic becomes:
    131_lapras.png
    Where the top row is shown underneath the player and the bottom row is displayed above.

    Completed sprites:
    Spoiler:


    At present pokeemerald is 87% decompiled, meaning that there are still limitations on what can be done with it and it is not in a user friendly state, but I would still recommend playing around with it as it allows for much more complex changes than a binary ROM hack.
    I will periodically be merging with the master branch until it is completely decompiled.

    FAQ:

    Is this compatible with existing hacks?
    If the hack is using the pokeemerald disassembly then yes, it should also be fairly simple to port to pokeruby. You will need to understand how to use github though.
    If you're doing a traditional binary ROM hack then no, but the benefits of learning how to use the disassemblies are significant.

    Will a patch be made?
    It could but that would defeat the point of using the disassemblies.

    It is for Binary by ghoulslash you can take those some overworls
     
    2
    Posts
    1
    Years
    • Seen Apr 10, 2023
    I updated this branch to latest from the pokeemerald-expansion repo if anyone is interested. There were some naming changes from pret. I also fixed a bug with sprite priorities that caused the surf sprites to get drawn oddly when surfing behind houses in Pacifidlog Town.

    The branch in my fork of pokeemerald-expansion

    Thank you so much for this. I'm going to test this soon.

    Although I'd have to mess a bit with the code to adapt it to my hack, since this seems to work with the first pokemon in your team that knows surf, but I'd like to be the first pokemon in the team that is able to learn surf, thus making the HMs optional :)
     
    4
    Posts
    1
    Years
    • Seen Jan 5, 2024
    For sure! A few words of warning:

    + The dynamic palette system used in this branch is slawter's -- apparently there are some issues with this, namely that it breaks contests. My branch isolated the dynamic palette stuff to a single commit so if you are using a better system like merrp's then you can cherry pick from this branch and ignore that initial commit.

    + As you noticed, the surf party behaviour is a little glitchy. It will actually always default to the first party member that knows surf, even if you explicitly selected to surf with a different party member. So that logic needs to be tweaked.

    + The Gen I sprites are all solid, but there are a lot of Gen II and III sprites that need major work. And there is no support at all for anything Gen IV+. I am planning on fixing them as well as making thru Gen VI for my own hack, and I will share when I have them. But it won't be for awhile and if someone else is a solid spriter, I'd love it if they could help fix some of them and share their work :)
     
    2
    Posts
    358
    Days
  • For sure! A few words of warning:

    + The dynamic palette system used in this branch is slawter's -- apparently there are some issues with this, namely that it breaks contests. My branch isolated the dynamic palette stuff to a single commit so if you are using a better system like merrp's then you can cherry pick from this branch and ignore that initial commit.

    + As you noticed, the surf party behaviour is a little glitchy. It will actually always default to the first party member that knows surf, even if you explicitly selected to surf with a different party member. So that logic needs to be tweaked.

    + The Gen I sprites are all solid, but there are a lot of Gen II and III sprites that need major work. And there is no support at all for anything Gen IV+. I am planning on fixing them as well as making thru Gen VI for my own hack, and I will share when I have them. But it won't be for awhile and if someone else is a solid spriter, I'd love it if they could help fix some of them and share their work :)

    Hey if you would like to post the work you've done on this, I'd love to take a crack at it! Both for the community and for my own personal project!
     
    4
    Posts
    1
    Years
    • Seen Jan 5, 2024
    Hey if you would like to post the work you've done on this, I'd love to take a crack at it! Both for the community and for my own personal project!

    It's all here! https://github.com/grunt-lucas/poke.../graphics/object_events/pics/pokemon/surfable

    That's the folder that has the surfing sprites. They go up through Gen III, but a lot of them are not great. Ideally, every sprite should match the format of e.g. blastoise, where the top row is what is displayed behind the player sprite while the bottom row is displayed as an overlay in front of the player sprite, for perspective. Go ahead and try blastoise or lapras in-game to get an idea, those two look great already.

    Also note this branch is based on rhh expansion, not vanilla pret. Good luck, and please report back if you get any more done! It's a lot of work and I am pretty bad at sprite art so I've been dreading fixing these for my project.
     
    12
    Posts
    296
    Days
    • Seen Dec 31, 2023
    Thank you so much for this. I'm going to test this soon.

    Although I'd have to mess a bit with the code to adapt it to my hack, since this seems to work with the first pokemon in your team that knows surf, but I'd like to be the first pokemon in the team that is able to learn surf, thus making the HMs optional :)

    =====

    Hello everything is fine?


    Have you managed to use it with the optional hm?

    Recently I implemented this functionality to my project. I used the most up to date version of grunt-lucas: https://github.com/grunt-lucas/pokeemerald-expansion/tree/surfable/graphics/object_events/pics/pokemon/surfable
    and the most recent version of the pokemon expo where the function "CanMonLearn TMHM" changed to "CanLearnTeachableMove" which made it possible to combine the two functionalities more easily.

    Like you, I also use the optional hm, where if the pokemon can learn the move it can surf without the need to actually teach it. To make everything work I changed the following line in "src\surfable.c"

    Spoiler:



    For This:

    Spoiler:


    My branch is not clean, but you show in: https://github.com/RafaPierangeli/pokemonemeraldrp/tree/pkmrp
    commit: fix unique surfable with opcional HM

    It really has a lot of inconsistent sprites and the reflection in my branch is not good, I'm going to fix the reflection and better understand how these sprites work to solve these little loading bugs.

    PS: I wanted to reply to your comment to help everyone like you and I who were looking for this information.
     
    12
    Posts
    296
    Days
    • Seen Dec 31, 2023
    I updated this branch to latest from the pokeemerald-expansion repo if anyone is interested. There were some naming changes from pret. I also fixed a bug with sprite priorities that caused the surf sprites to get drawn oddly when surfing behind houses in Pacifidlog Town.

    The branch in my fork of pokeemerald-expansion

    =====
    Thx for your work, is great. I'm implanted in my project.

    Were you able to resolve some inconsistencies in the sprits?
    If you know how to do this and also where I can learn to create new sprits, could you share with me? I want to add some pokemons from the fourth generation and include them in this dynamic.

    I can also help with labor on this journey xD
     
    Back
    Top