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

Aaron's Low Budget Crystal hack

  • 9
    Posts
    265
    Days
    • Seen today
    Hey guys, I've been working on a crystal hack for a couple years now on the side, mostly as an excuse to practice my assembler coding. Haven't settled on a name yet:

    [PokeCommunity.com] Aaron's Low Budget Crystal hack[PokeCommunity.com] Aaron's Low Budget Crystal hack[PokeCommunity.com] Aaron's Low Budget Crystal hack[PokeCommunity.com] Aaron's Low Budget Crystal hack[PokeCommunity.com] Aaron's Low Budget Crystal hack[PokeCommunity.com] Aaron's Low Budget Crystal hack[PokeCommunity.com] Aaron's Low Budget Crystal hack

    Features:
    This is mostly just an improvement hack, so there's not much in the way of new content (yet).

    Running Shoes
    Use HMs without teaching the move
    More or less open world from the start (most blockers have been removed, Magnet Train is working from the beginning)
    Dynamic scaling system means the game world levels up with you as you gain badges
    Many pokemon learnsets and base stats have been revamped
    Many moves have been altered, some with entirely new effects
    Gym leaders use different parties depending on your badge count
    Overworld pokemon spawns can be interacted with (including some new boss encounters with boosted stats)
    Fairy Type added
    Dark and Dragon swapped to special, Ghost and Fairy set to special.
    Several pokemons' types have been changed to be less redundant (and hopefully more fun to use)
    Different starter options based on your chosen origin (currently only effects starters, looking into adding more differences)
    Freeze condition replaced with PLA's frostbite
    Reduced encounter rates should make the game world a lot less frustrating to traverse
    Rematchable gym trainers (plus nurses in gyms for healing)
    Catch them all: Trade evolutions replaced with different methods, all pokemon should be somewhere in the gameworld now. With the exception of a few legendaries that I'm working on new maps for.
    Dynamic level caps, based on badge count (current cap viewable on the trainer info screen).
    Boss pokemon on the overworld (complete with expanded healthbars that still need a bit of work).


    Credits:
    Thanks to LuigiTKO for creating the sprites for party Icons
    Many thanks to the people of Pret discord for answering a number of technical questions

    Goals:
    Make the game world look better
    Rebalance pokemon and moves so that most Pokemon are viable for a normal playthrough.
    Fix the base game's terrible level curve and learnsets
    Add more useful and informative menu screens
    Create a somewhat more challenging, but fair game experience (looking into adding difficulty options in the future)

    Right now, I'm hoping to get some help bug testing this thing, along with getting some feedback on where the difficulty has settled with the addition of the aforementioned scaling system.

    Links: Everything I've developed is open source, and freely available from my github repo. Though I'd prefer you let me know if you're planning on using something from it. https://github.com/aaronjeter/pokecrystal

    The most recent IPS file is available on my discord channel here: https://discord.gg/mJ5MDU7jMq
     
    Finished my September patch, notes as follows:

    Articuno and Moltres have been added to the game along with their own maps.
    Mahogany Gym and Ice Path can be reached without completing the Lake of Rage quest.
    Indigo Plateau is now accessible from Kanto pre-elite 4, assuming you have 8 badges.
    You can now fly in Kanto without having reached Indigo Plateau (Saffron is unlocked by default, since you'll probably enter Kanto there).
    AI knows to prioritize Solarbeam in Sunny weather.
    Made a pass through wild pokemon spawns; Totodile is now actually available in the wild (oops).
    At this point, every pokemon is available in-game, except for Zapdos, Mew, Mewtwo, and Celebi (they're in the testroom until I create their events/maps, if you really want them).
    Vitamins are now significantly more effective, and their cap has been raised accordingly. You can feed a 'fresh' pokemon up to 5 vitamins for (almost) max stat xp. Still debating the exact numbers.
    Numerous movepool improvements
    Several base stat improvements for underperforming pokemon.

    Todo:
    Still working on better extended healthbars for bosses
    Add more overworld pokemon spawns (ongoing)
    Looking into adding default stat xp arrays for each trainer type. This could make the game *significantly* harder, so it'll need a lot of testing.
    Still testing the level curve, along with level cap increase per badge Current levels probably won't be final, but we'll see how they test out
    Create a map/event for Zapds
    Create events for Mew and Mewtwo
    Create event for Celebi (map already in-game)

    Overall: Game is fully playable from start to finish, and you should be able to catch them all. 8 badges are required to face the Elite 4, but now that you can access Kanto early via the Magnet Train, you can also mix and match badges. You'll still need all 16 to access Mt Silver and face Red though.

    Looking for feedback:
    Still trying to decide where it would make sense to put Zapdos. There's not really any electric themed areas in Crystal.
    Considering swapped from a hard to soft level cap system. Right now there's a hard cap, increasing with each badge earned (14 base, +4 per johto badge, 3 per kanto badge). Probably not the final numbers, but that needs some testing
     
    Last edited:
    Looks awesome can't wait to play. Would love to see some more stats buffs to Pokémon who got later gen evos, I see Murkrow and Piloswine did but think Electabuzz deserves a fight type and closer stats to its evo, along with Magmar, Aipom and others!
     
    Most underpowered pokemon have gotten buffs of some sort. I've been trying to enforce a minimum base stat total for fully evolved pokemon as well, with any fully evolved pokemon with a BST less than 400 getting some sort of buffs. Some pokemon are definitely still stronger than others, but the 'weak' mons are probably still viable for a casual playthrough. Weaker pokemon tend to learn better moves a bit earlier to balance that out, so even the worst of pokemon should have some sort of use-case.
     
    September 16th patch is now available. Just some minor bugfixes, won't break existing saves:

    Erika should now always use her own party, instead of using Faulkner's party at low badge counts
    Kanto Gym nurses should now actually appear (except in Seafoam and Viridian gyms)
    Fishing pokemon should now have significantly more variety. (Magikarp was appearing around8 times more often than excepted)

    Next patch will be along whenever I'm done with it.

    Currently looking into finishing the starter options, finishing the maps/events for Zapdos, Mew, Mewtwo, and Celebi, and default stat xp arrays for trainer types. The last one will probably make the game significantly harder, so it'll need a fair bit of testing. Might release in its own beta branch.
     
    I thought I'd post an update, since it's been a while. I've had some pretty serious health issues, so there hasn't been much active development, but I haven't dropped my hack. I'll be continuing with it as I have availability over the next months, most likely.

    I'm still stuck on where to put Zapdos, a good thematic place just isn't jumping out at me; considering just having him visit the Lighthouse occasionally once Ampharos is healed. Maybe add a roof or something to serve as his Roost.

    Default stat xp arrays for trainer classes is still in progress, but that change is going to take a *huge* amount of playtesting to get right. Since it's literally going to add stats to every trainer's Pokemon and all. That change could potentially end up becoming a toggle-able hard mode as well; possibly even one that can be toggled *during* a playthrough.

    I'm also looking into a better grid selector for the starter origin menu, so that you can pick from 6-8 or so options instead of 3-4 at a time before it starts looking ugly. Gameboy graphics isn't really a strong point of mine, but it's in progress. I'd really like there to be at least a half a dozen or so sets of starter options, and I'm open to suggestions. They don't all have to be balanced.

    Events for Mew, Mewtwo, and Celebi are probably a bit further down the line, but I'm not taking them out of the test room until they're obtainable 'normally'. The Ilex Forest West map is intended to play a role in the Celebi event, but I haven't quite finished scripting it yet. The Mewtwo event should tie in with some of the Boss pokemon you may have noticed around the game world, but that also is a bit of a work in progress.

    In the longer term, I'm also looking into the possibility of porting my hack into the Crystal Shire Engine. There are a lot of potential benefits, including some very promising Gen 3 Feature Branch support that I'd like to contribute to once I have the time and health to do so, but that could be a while. Ultimately, the payoff would be gen 3 pokemon and/or abilities and some lovely quality of life features. But this is, of course, all still hypothetical.

    If you're interested in helping out, the best thing you could do is give the game a play through and let me know what you think. I'm always interested in feedback on which changes work, and which changes don't. I'd love to hear about what route you ended up playing though the game, which Pokemon you used, and which trainers ended up giving you trouble. As well as which parts you found annoying and which parts you hated. And, of course, any technical issues you experienced; I'm always on the lookout for bugs!

    As always, the most recent patch file is available on my discord, linked at the top of this thread.
     
    There are a couple of specific things that I'm trying to get feedback on, if anyone is interested. Feedback on these would be really helpful for determining the direction of my hack:

    1. I'm still trying to settle on a name for this thing.

    2. Starter options, and names of those options. Obviously, Kanto and Johto starters are auto-includes. If I'm able to work in Gen 3 features/mons then Hoenn starters would be auto includes as well, but that's a long term thing. What other starter trios would you be interested in?

    3. What other differences should the origins actually make? Right now, they're just controlling the starter options, but I was planning to flesh that out further. Possibly using it to control starting location, maybe some character's dialog and interactions.

    4. Other than "Trainer from Kanto/Johto" and "professor's Aid", what origins would be interesting? Team Rocket? Pokémon Ranger (Safari Zone Start, I guess)? The Dark Urge?

    5. Level Caps? Trying to decide how I feel about these? Should I leave them in? Make them opt in/opt out?
     
    There are a couple of specific things that I'm trying to get feedback on, if anyone is interested. Feedback on these would be really helpful for determining the direction of my hack:

    1. I'm still trying to settle on a name for this thing.

    2. Starter options, and names of those options. Obviously, Kanto and Johto starters are auto-includes. If I'm able to work in Gen 3 features/mons then Hoenn starters would be auto includes as well, but that's a long term thing. What other starter trios would you be interested in?

    3. What other differences should the origins actually make? Right now, they're just controlling the starter options, but I was planning to flesh that out further. Possibly using it to control starting location, maybe some character's dialog and interactions.

    4. Other than "Trainer from Kanto/Johto" and "professor's Aid", what origins would be interesting? Team Rocket? Pokémon Ranger (Safari Zone Start, I guess)? The Dark Urge?

    5. Level Caps? Trying to decide how I feel about these? Should I leave them in? Make them opt in/opt out?
    1- Aaron's Johto/Tohjo Sandbox sounds like a good name to me

    2- Maybe some baby pokémon? Maybe a trio consisting of Rhyhorn, Natu and Mankey? Although that would make Natu have a more clear advantage over both I guess...

    4- maybe a Pokémon Breeder, or something similar to Eusine (some kind of legendary Pokémon seeker) or something like an spiritual jorney (sages from the Johto towers)

    5- I'd say keep them. In an open-world game, a level cap means you can't just battle every single existing trainer to just trivialize important battles
     
    Last edited:
    Pushed a new patch today. Mostly just assorted bugfixes; trying to fix most or all of the pre-existing bugs from vanilla Crystal. Also enabled using trade evolution items directly on pokemon instead of fiddling with trade mechanics that don't really work on emulators.

    I've found some graphical glitches with some scripting that still needs to be fixed, hope to get to that soon-ish. Nothing serious, but some of the origin scripts can cause NPCs to stand on tables and such.

    New Patch shouldn't cause any issues for pre-existing saves. Next Patch shouldn't be delayed nearly as long.

    Update: Apparently, I included a couple of changes that weren't really meant to go into that patch. Some BST changes for early evolving pokemon (think Furret, Raticate, Beedrill and the like) should pop off quite a bit sooner and be a bit of a menace during the early game. They'll fall off a bit by the end; but if you're stilling give one of them a shot. Raticate and Beedrill hit like a truck early game.

    Additionally, a few trainers were rebalanced. Pokefan Derek the way to Olivine shouldn't be quite as threatening now. It should actually be possible to beeline Olive city now, rather than needing 3-4 badges worth of level/stat xp to actually defeat one of those two mandatory trainers. Gym Leader Chuck's team has been updated to no longer use Meditate to set up; since Meditate has been changed into a Special attack setup move. Red's team has been updated as well; and more importantly, not really tested (since I wasn't planning to release him updates yet). So... good luck with that.
     
    Last edited:
    About a month ago, I started porting my hack into the Crystal Shire Engine. Today this is mostly complete. The benefits to this were mainly 16-bit indexes (allowing more than 255 Pokémon and moves), but also dynamic sprite/palate reloading (more than 16-ish unique sprites per map group, aka more unique overworld sprites). We also get to use NewBox, which is a pretty cool new upgrade to the PC.

    Additionally, I've implemented the Physical/Special split, integrated the Origin selection menu into the intro menu, and added 88 new Pokémon (Gen 3 up to Solrock in order, plus Munchlax), Switched out the gen 2 stat xp system for a proper EV system (it's still uncapped though, you can max every stat). Additionally, there is also a Gen 3 option for the Origin menu, letting you pick Torchic, Mudkip, and Treecko as your starter options.

    I'm still working on partymenu/overworldicons for Gen 3 pokemon, their sprites look quite bad right now, but they're otherwise fully playable, and their Battle/stat menu art and animations work correctly. I've given them reasonable learnsets pulled from Gen 2 moves for now; Implementing Gen 3 moves is still on my to-do list.

    I've got quite a bit of work ahead of me though:
    Todo:
    Port over Gym Leader rematches
    Port over my new maps (Moltres and Articuno's lairs, the test room, and Ilex West)
    Port over Level Caps (plus making them optional)
    Add Toggle-able hardmode on the Intro Menu (most of the data structures are in place, but it isn't enabled yet)
    Implement Gen 3 Moves (or, at least most of them; some are rather problematic code-wise)
    Add Gen 3 Pokemon to maps and parties

    And finally, Start mapping Hoenn. It seems like there's going to be enough space on the ROM after all, so I've started laying the groundwork for adding the Hoenn region.

    As always, if you're interested in helping playtest this thing, please reach out. If you're interested in playing the original version of my hack, it's still available on my discord.

    [PokeCommunity.com] Aaron's Low Budget Crystal hack [PokeCommunity.com] Aaron's Low Budget Crystal hack[PokeCommunity.com] Aaron's Low Budget Crystal hack
     
    Last edited:
    I've released the first Patch for the ported version of my hack on my discord, which is linked above. New Features:

    24 new alternative forms of various pokemon based on art from Redditor Accad501
    Physical/Special split
    Stat Xp Replaced with Evs (Still uncapped, you can get the full boost to every skill)
    Gen 3 Moves (about half of them)
    Origin Menu integrated into the Intro Menu
    New origin option (tell Oak you're from reddit to get the alt gen 2 starters: Totodile, Cyndaquil, and Piranna-plant Exeggcute)
    No need to teach HM moves to pokemon (Apart from fly; still working on that one)

    Still In Progress:
    Gen 3 Pokemon Up to Lunatone have been added, though they are not currently available (Still need to create menu icons and finalize movesets)
    Gen 3 Moves (about half still need effects, may skip some of the more convoluted ones entirely)
    Gen 3 Move Animations (all are currently using pre-existing animations, I'd like to change that at some point)
    Residual Damage Animations (Burn, Poison, and Frostbite don't reliably use the correct animations when dealing damage; the damage and stat effects are correct at least)
    Gym Leader Rematches (They're also currently stuck using the 'easy' version of their parties, planning to port the fix over soon)
    Difficulty selection
    Level Cap Opt-in (Level cap data structures are in place, but I want to allow opt-out before I enable them)
     
    Back
    Top