• 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.

Crystal hack: Pokémon Polished Crystal (update 2.2.0)

148
Posts
17
Years
    • Seen Aug 2, 2023
    Question: if I added unique Pokémon Center and Mart roofs, would they clash with the rest of the buildings?

    876WEnj.png

    I think that looks absolutely fine, to be honest.
     
    16
    Posts
    9
    Years
    • Seen Mar 5, 2023
    EDIT3: All of these issues should now hopefully be fixed in my working tree (Not in mainline yet, because there is 2 untested abilities I've implemented too).
    This is fantastic news. These along with the trainer crashes are the only game-breaking bugs that I've encountered so far, so it's great to see some of them potentially out of the way.

    Question: if I added unique Pokémon Center and Mart roofs, would they clash with the rest of the buildings?

    876WEnj.png
    I really like the way they look, and I don't think they clash at all. They make the game feel a bit more like HG/SS and add some (in my opinion) much needed color to towns.
    I must ask if it's possible to give Violet City's Pokemon Center a maroon roof like in HG/SS.
     
    755
    Posts
    7
    Years
    • NY
    • Seen Oct 9, 2023
    I really like the way they look, and I don't think they clash at all. They make the game feel a bit more like HG/SS and add some (in my opinion) much needed color to towns.
    I must ask if it's possible to give Violet City's Pokemon Center a maroon roof like in HG/SS.

    Only if the carpets, bricks, and flowers also became maroon, but I actually like the effect.

    zxE7d0P.png
     

    Ruvaldak

    I'M NOT YELLING, I'M JUST PUTTING MAJOR EMPHASIS O
    43
    Posts
    7
    Years
  • Dang this hack is going to have an outrageous amount of post game content. Much, much longer play time versus even some modern games

    Only if the carpets, bricks, and flowers also became maroon, but I actually like the effect.

    zxE7d0P.png

    Looks great!
    Side note; I don't know why, but the tiny trees (the one you headbutt) are just out of place. I know they've been there for a long time (were they in the original?), but I feel their sprite could be better. Idk though
     
    Last edited:
    755
    Posts
    7
    Years
    • NY
    • Seen Oct 9, 2023
    Trying brighter colors for the Town Map, which I think work better on a GBC screen:

    9UwcK15.png


    Also, I hope the south peninsula doesn't look too cluttered with the new coastal routes.
     

    Zeta Sukuna

    Descendant of the Inchlings
    1,727
    Posts
    16
    Years
  • With all of the new areas coming out able to eventually be explored, I'm getting pretty excited for 3.0. And yeah, I do think the new colors look fine on the map. I'm excited to see the final form of how these world maps will look.
     
    8
    Posts
    9
    Years
    • Seen Mar 31, 2024
    Have to say, I finished (Or at least I think I did, I beat Green) this hack, and its a well deserved buff the original G/S/C needed. It's really fun with some cool twists and turns, the Navel Rock thing really caught me off guard!

    I have a few questions though, I am not 100% familiar with vanilla crystal since I never actually beat it retail (Did gold and silver several times). I haven't been able to access ho-oh yet, is the Rainbow wing still here or is there some other method?

    Bill asked to see the legendary dogs, I read that he is a battleable opponent, however I posted not too long ago about a bug I had where I was having issues storing pokemon in a box and how it deleted the contents of my first box (Including Suicine) is there a way around this? I caught Suicune so it never respawned after beating the E4. Am I just out of luck and need to cheat to do this?

    A bug I found, in the Viridian Gym there's a female trainer who is right above one of the directional pads, if you go on said pad you just keep moving in that direction and you can't get out of it, you're stuck and require a reset (Not sure if this has been posted yet).

    I was looking for Kanto starters, the pokedex says they are in the Safari Zone, but after searching and searching (In all 3 zones) I cannot seem to run into any of them, am I just unlucky?

    I'm sure I have more in here somewhere, but this is a great hack, with alot of post game opportunity, it's actually desirable to make a tougher team, because red, green and even the E4 have powerful rosters at the end so not only is leveling relatively quick, it's also worthwhile.
    I love the concept of pokemon that evolve via evolution stones or other non leveling means are catchable in the wild (Raichu, Golem, Machamp, ect.) I feel this was a highly missed opportunity in the original games, especially when you are catching level 50+ Machokes and Kadabras, and dispite the fact that trade level up isnt a requirement, you couldn't always do trades as a kid, more of a nostalgic point but still a point.

    The inclusion of more manga related elements are really nice as well, Green and Yellow were a refreshing sight in the series, and I also liked the custom Pikachu's for Red and Yellow.

    I will end my wall of text with how much I was able to appreciate the added sections to Johto and Kanto, I felt the original games Kanto was very chopped in and there wasn't alot going on. You added all sorts of things that gen 2 Kanto needed all in the Gen 2 game, Cerulean cave, the volcano, Seafoam Islands, Viridian forest ect. are all things that should have been in but weren't and it's nice to play a game thats on the generation 2 platform with all the features Gen 2 SHOULD have had.

    Excellent hack, I can't wait for 3.0, I'm happy that creators like you and Mateo are doing things like this, because it really brings life into my favorite pokemon games, I have no shame playing these on my phone on my breaks at work, the more the merrier, keep them coming!
     
    755
    Posts
    7
    Years
    • NY
    • Seen Oct 9, 2023
    Have to say, I finished (Or at least I think I did, I beat Green) this hack, and its a well deserved buff the original G/S/C needed. It's really fun with some cool twists and turns, the Navel Rock thing really caught me off guard!

    Yeah, that's the end of the game! Although you can also find all the new people to battle (the Fighting Dojo has a few to unlock), and complete your Pokédex (including all 26 Unown; you get something better than the ability to print them out).

    I have a few questions though, I am not 100% familiar with vanilla crystal since I never actually beat it retail (Did gold and silver several times). I haven't been able to access ho-oh yet, is the Rainbow wing still here or is there some other method?

    Just like in regular Crystal, you catch the three legendary dogs and talk to the sage in Bell Tower to get the Rainbow Wing.

    Bill asked to see the legendary dogs, I read that he is a battleable opponent, however I posted not too long ago about a bug I had where I was having issues storing pokemon in a box and how it deleted the contents of my first box (Including Suicine) is there a way around this? I caught Suicune so it never respawned after beating the E4. Am I just out of luck and need to cheat to do this?

    Crap, that's too bad. I don't think you can fix it except by going back to an earlier save file.

    A bug I found, in the Viridian Gym there's a female trainer who is right above one of the directional pads, if you go on said pad you just keep moving in that direction and you can't get out of it, you're stuck and require a reset (Not sure if this has been posted yet).

    Fixed a while ago.

    I was looking for Kanto starters, the pokedex says they are in the Safari Zone, but after searching and searching (In all 3 zones) I cannot seem to run into any of them, am I just unlucky?

    They're just rare. In 3.0 all the starters will be one-time gifts.

    I'm sure I have more in here somewhere, but this is a great hack, with alot of post game opportunity, it's actually desirable to make a tougher team, because red, green and even the E4 have powerful rosters at the end so not only is leveling relatively quick, it's also worthwhile.

    I love the concept of pokemon that evolve via evolution stones or other non leveling means are catchable in the wild (Raichu, Golem, Machamp, ect.) I feel this was a highly missed opportunity in the original games, especially when you are catching level 50+ Machokes and Kadabras, and dispite the fact that trade level up isnt a requirement, you couldn't always do trades as a kid, more of a nostalgic point but still a point.

    The inclusion of more manga related elements are really nice as well, Green and Yellow were a refreshing sight in the series, and I also liked the custom Pikachu's for Red and Yellow.

    I will end my wall of text with how much I was able to appreciate the added sections to Johto and Kanto, I felt the original games Kanto was very chopped in and there wasn't alot going on. You added all sorts of things that gen 2 Kanto needed all in the Gen 2 game, Cerulean cave, the volcano, Seafoam Islands, Viridian forest ect. are all things that should have been in but weren't and it's nice to play a game thats on the generation 2 platform with all the features Gen 2 SHOULD have had.

    Excellent hack, I can't wait for 3.0, I'm happy that creators like you and Mateo are doing things like this, because it really brings life into my favorite pokemon games, I have no shame playing these on my phone on my breaks at work, the more the merrier, keep them coming!

    Thank you! ^_^ That's really encouraging.
     
    53
    Posts
    9
    Years
    • Seen Aug 26, 2022
    I was wondering, do you have any plans to increase the size of backsprites from 48×48 to 56×56 pixels?
    This is something I have yet to see on a Gen II hack.
    The animated image below is an example of how Suicune looks much more pleasant compared to the original:

    ipRukaW.gif

    Changing all those parameters will allow for 56x56 backsprites.
    Spoiler:
    As you can see in the animated gif above, this would allow for much more polished back views, but some sacrifices needed to be made:
    _Exp. bar uses the same graphics than the HP bar, however this doesn't change the color used to fill in either bar
    _Move Category was moved from $70-71 to $77, with half its original size both in-battle and in the move menu
    _Status were moved from $5c-$5f to $70-$71, with half their original size, which makes the text inside a little difficult to read

    Those are all the files that were modified to re-arrange the VTiles2 map:
    _home.asm
    _battle\core.asm
    _battle\trainer_huds.asm
    _engine\stats_screen.asm
    _engine\startmenu.asm
    _gfx\font.asm
    _gfx\battle\categories.2bpp
    _gfx\battle\extra.2bpp
    _gfx\battle\status.2bpp


    Keep in mind however that changes needs to be done in battle\anim_commands.asm and battle\objects\oam.asm to completely accomodate for the new size.


    Also I have other suggestions:
    1)Changing those:
    Spoiler:
    Increasing by 1 those 2 constants means the max stats will be the same as in Gen III+.

    For example, a Pokémon with a base HP of 100 can now have max HP anywhere between 311 (improved from 310) and 404 (improved from 403) at level 100.
    This is pretty significant since a HP DV of 15 and 255 EV in HP would allow a 100 base HP Pokémon to create 101 HP Substitutes at level 100, something it couldn't do before.


    2) I also noticed you applied the Gen VI and VII nerfs for some moves (Surf, Hydro Pump and Sucker Punch for example), but IMO one of the necessary conditions for the nerfs to make sense is the 510 EV restriction.
    This condition doesn't exist in Gen II; assuming DVs of 15 everywhere for maximum potential, any Pokémon will virtually always have the maximum bulk available for its species, thus it helps in mitigating the damage taken.
    One of the other reasons for some of those nerfs was the dominance of weather (especially rain) in Gen V, but you already implemented the nerf on the weather-starting abilities, so for me there's no need to amplify the nerf on the moves too, for the reason I mentioned earlier.

    In other words, I think the nerfs on Fire Blast, Hurricane and friends is too much, but that's just me.



    3) I'm of the opinion that most Gen II sprites and colors (more so shiny colors) look out of shape, and in my mind they could have been a lot better.
    This is what I have so far:

    Front Sprites:
    Spoiler:

    Back Sprites:
    Spoiler:

    Shiny Front Sprites:
    Spoiler:

    Shiny Back Sprites:
    Spoiler:

    I know that those are not quite tailored to your hack (due to the presence of the Hoppip line for example), but despite that I think this is a good start.
    However animations are not my forte so… yeah.



    I have yet to make a polishedcrystal branch of my own on GitHub because I wanted your input first.
    So, any thoughts?
     
    755
    Posts
    7
    Years
    • NY
    • Seen Oct 9, 2023

    Oh wow, you have some interesting changes here! Thoughts:

    • The larger backsprites look great, taking advantage of the whitespace left by simplifying the battle UI, but I don't think the sacrifices are worth it. Although, I wonder if some tiles could be loaded in VRAM1 instead of VRAM0? Then you'd have room for both.
    • I can't find any use of the STAT_MIN_HP or STAT_MIN_NORMAL constants throughout the code for Polished Crystal or pret/pokecrystal. Nor can I see where in CalcPkmnStatC they might be useful. I do want the most up-to-date formulas, so can you link to which copy of move_mon.asm you see them being used in?
    • That's a good point about the EV limit making some of the move nerfs necessary. There's actually code for the EV-reducing Berries and the Power items, in case I ever do add the limit. For now I think I'll leave everything as-is and see how battles play out once 3.0 is finished. It would be easy to un-nerf them later.
    • I like your sprites! One problem: animating them would be a pain, partly because of the extra art work, partly because I've had issues getting gfx.py to properly convert a series of frames to an animation (this happens with Sylveon). And I'd rather not remove animations entirely: it would be more consistent, given the ~dozen new sprites that don't have them, but that's a signature feature of Crystal.

    Overall, you've put a lot of thought into those edits. I think choosing between our approaches is more a matter of taste than anything; they aren't unimprovements.

    How about making a hack of the hack? Removing animations would help make room for larger backsprites; you could add the 510 EV limit and make available the Berries and Power items to complement the un-nerfed moves. (Plenty of diamond-cutting-related terms to pick a name from, if you want to keep that theme.)
     
    53
    Posts
    9
    Years
    • Seen Aug 26, 2022
    • The larger backsprites look great, taking advantage of the whitespace left by simplifying the battle UI, but I don't think the sacrifices are worth it. Although, I wonder if some tiles could be loaded in VRAM1 instead of VRAM0? Then you'd have room for both.
    Well, can't give you an answer here, I'm no expert of GBC mechanisms afterall.

    • I can't find any use of the STAT_MIN_HP or STAT_MIN_NORMAL constants throughout the code for Polished Crystal or pret/pokecrystal. Nor can I see where in CalcPkmnStatC they might be useful. I do want the most up-to-date formulas, so can you link to which copy of move_mon.asm you see them being used in?
    You're right in that those 2 constants are never referenced but if you look at CalcPkmnStatC, specifically lines 1555 and 1568 (assuming polishedcrystal assembly), you'll see the instructions ld a, 5 and ld a, 10 respectively.
    This is where STAT_MIN_NORMAL and STAT_MIN_HP should have been placed instead of 5 and 10, again respectively.

    • That's a good point about the EV limit making some of the move nerfs necessary. There's actually code for the EV-reducing Berries and the Power items, in case I ever do add the limit. For now I think I'll leave everything as-is and see how battles play out once 3.0 is finished. It would be easy to un-nerf them later.
    About a possible addition of the 510 EV Limit, well I think one of the good things of having no limit is that you don't have to worry about training your Pokémon only for them to reach a sub-optimal EV spread, but that's my bias talking here.

    • I like your sprites! One problem: animating them would be a pain, partly because of the extra art work, partly because I've had issues getting gfx.py to properly convert a series of frames to an animation (this happens with Sylveon). And I'd rather not remove animations entirely: it would be more consistent, given the ~dozen new sprites that don't have them, but that's a signature feature of Crystal.
    Fair enough.

    How about making a hack of the hack? Removing animations would help make room for larger backsprites; you could add the 510 EV limit and make available the Berries and Power items to complement the un-nerfed moves. (Plenty of diamond-cutting-related terms to pick a name from, if you want to keep that theme.)
    Making a hack of your own hack? Heh, why not… but considering the amount of sprites left before I can complete the chart, let's say it's going to take a while.
    But I already know how to remove animations so there's that.




    If I may add, you can also take my bugfix for the Entei's cry glitch:
    Spoiler:
    This is really simple, clickling Cry on any Pokédex entry will prevent you to change between entries until the Cry has finished to play.
     
    755
    Posts
    7
    Years
    • NY
    • Seen Oct 9, 2023
    You're right in that those 2 constants are never referenced but if you look at CalcPkmnStatC, specifically lines 1555 and 1568 (assuming polishedcrystal assembly), you'll see the instructions ld a, 5 and ld a, 10 respectively.
    This is where STAT_MIN_NORMAL and STAT_MIN_HP should have been placed instead of 5 and 10, again respectively.

    Good catch. The formulas on Bulbapedia still have constants 5 and 10 for Gen III+; does the discrepancy come from rounding differences (due to IVs and EVs being different), or is Bulbapedia in error?

    Edit: yes, the IVs make the difference.

    Gen 2 HP: ⌊((base:100 + iv:15) × 2 + ⌊⌈√ev:65535⌉ / 4⌋) × level:100 / 100⌋ + level:100 + 10 = 403

    Gen 3+ HP: ⌊(base:100 × 2 + iv:31 + ⌊ev:255 / 4⌋) × level:100 / 100⌋ + level:100 + 10 = 404

    Although I think a better solution would be to increment the doubled IV, not the final stat, so that lower values won't be off by one.

    Custom HP: ⌊((base:100 + iv:15) × 2 + 1 + ⌊⌈√ev:65535⌉ / 4⌋) × level:100 / 100⌋ + level:100 + 10 = 404

    About a possible addition of the 510 EV Limit, well I think one of the good things of having no limit is that you don't have to worry about training your Pokémon only for them to reach a sub-optimal EV spread, but that's my bias talking here.

    Yeah, that's why I left it out for now. Knowing your early team will have imbalanced EVs isn't fun.

    If I may add, you can also take my bugfix for the Entei's cry glitch:
    This is really simple, clickling Cry on any Pokédex entry will prevent you to change between entries until the Cry has finished to play.

    Done, thank you! :)
     
    Last edited:
    53
    Posts
    9
    Years
    • Seen Aug 26, 2022
    Good catch. The formulas on Bulbapedia still have constants 5 and 10 for Gen III+; does the discrepancy come from rounding differences (due to IVs and EVs being different), or is Bulbapedia in error?

    Actually it's for a good reason, to translate DVs into IVs you need to double the value, the max DV a stat can have is 15, thus 15×2=30, and not 31,
    Basically DVs will always translate into even IVs.
    This is why maxed out stats in RBYGSC are always even except for HP which is always odd when maxed, hence the discrepancy; so Bulbapedia is indeed right on this one.
    What my hack does is translating DVs into odd IVs so to speak.

    EDIT:
    Custom HP: ⌊((base:100 + iv:15) × 2 + 1 + ⌊⌈√ev:65535⌉ / 4⌋) × level:100 / 100⌋ + level:100 + 10 = 404
    Indeed your solution is better, that additional point won't be felt at lower levels, and also saves you trouble with the Odd Eggs stats that you would need to account for with my mod.
     
    Last edited:
    148
    Posts
    17
    Years
    • Seen Aug 2, 2023
    Whoaaaaa, super cool! Is Ilex Swamp gonna be in 3.0? So hyped for the next update.

    As far as I'm aware, this is one of many new areas to be added in the 3.0 update.

    @Rangi: I'm not sure if this has been answered publicly yet, but are you planning to reuse any of the attack animations or Pokemon animations from Pokémon Prism? If so, that would improve the overall polish of the game's battle engine. Has anybody worked out how to get the little stars on the poke ball when you capture a Pokemon too?
     
    755
    Posts
    7
    Years
    • NY
    • Seen Oct 9, 2023
    As far as I'm aware, this is one of many new areas to be added in the 3.0 update.

    @Rangi: I'm not sure if this has been answered publicly yet, but are you planning to reuse any of the attack animations or Pokemon animations from Pokémon Prism? If so, that would improve the overall polish of the game's battle engine. Has anybody worked out how to get the little stars on the poke ball when you capture a Pokemon too?

    I've already added Prism's attack animations for our shared moves, but still have 25 left. And designing them is a pain in the neck. Would welcome pull requests on GitHub from anyone who wants to help with that.

    The Poké Ball stars are low priority but I'll try to get them in for 3.0.

    Also, here's the eastern Route 32 coast that leads to Union Cave and the swamp:

    Spoiler:
     
    Back
    Top