Skip to content

fellowship-of-the-roms/CrystalShireEngine

Repository files navigation

CrystalShireEngine (CSE)

CrystalShireEngine (CSE) is an enhanced engine for Pokemon Crystal romhacking.

CSE is currently still under developement. You will likely experience significant bugs and differences in the engine compared to vanilla pokecrystal. If you wish to use CSE, we highly recommend you join our discord server for support. We need your help to identify bugs, so we may improve the engine for everyone!

Features

  • Extended 16-bit Indexes: Pokemon & Moves. Detailed info & usage can be found at the pokecrystal16 wiki. Credits: aaaaaa123456789, vulcandth, Rangi42.
  • Newbox: Complete overhaul of Bill's PC. Credits: Rangi42, FredrIQ, vulcandth.
  • Assembly Optimizations: Provides minor improvements in CPU cycles and memory usage.
  • Improved Farcall: From PolishedCrystal, preserves all registers. Credits: Rangi42, FredrIQ, Pokemon Polished Crystal.
  • 60fps Overworld & CGB Doublespeed Mode: Experience smoother gameplay with a 60fps overworld and enhanced performance on Color Game Boy. Credits: vulcandth, FredrIQ, luckytyphlosion.
  • Running Shoes: Press the B button to use running shoes, making navigation faster. Credits: vulcandth, FredrIQ, luckytyphlosion.
  • Gender-Accurate Link Battle/Trade Rooms: Resolved the issue where playing as a girl (Kris) would result in the sprite changing to a boy (Chris) in Link Battle or Link Trade rooms. Gender information is now preserved during link communications, allowing for accurate representation of both players. Credits: vulcandth.
  • Enhance Tileset Functionality: Expanded tilesets from 192 to 255 tiles and allowed tiles to have different attributes in various blocks. Credits: Rangi42, Pokemon Polished Crystal.
  • Enhance Trainer Card Features: Added a third page for Kanto badges, introduced colors to badges, and fixed missing tops of Gym Leaders' heads on the trainer card.
  • Unique Colors for Poké Balls: Added unique colors for each type of Poké Ball. Credits: SoupPotato, Rangi42.
  • Short Low HP Beep: Replaced continuous low hp beeping with a shorter sound.
  • Show Weather Icon: Added an icon to show the current weather during battles.
  • Optimize Various Routines and Functions: Optimized several functions including EnterMapConnection, GetSquareRoot, VBlank routines, LZ decompression, UpdateBGMap, and Multiply and Divide. Credits: Rangi42, Pokemon Polished Crystal, Pokemon Prism.
  • Split Maps Section: Split the 'Maps' section into 'Map Headers' and 'Map Attributes'.
  • Copy BillsPC_LCDCode to WRAM0: Copied BillsPC_LCDCode to WRAM0. Credits: FredrIQ, Pokemon Polished Crystal.
  • Optimize and Define LZ Compression: Improved LZ compression through adding defines, implementing Meithecatte's optimization in ax6's lzcomp, and optimizing lz counts to use 9 bits. Credits: ariscop, Pokemon Polished Crystal.
  • Port Utils/Farcheck.py: Ported farcheck.py from Polished Crystal. Credits: Rangi42, Pokemon Polished Crystal.
  • Port Prism's LoadMapPart: Ported LoadMapPart function from Prism. Credits: Pokemon Prism.
  • Port Battle Pal Changing: Ported battle pal changing feature from Polished Crystal. Credits: FredrIQ, Pokemon Polished Crystal.
  • Replace Stat Experience with EVs: Implemented EV system, replacing stat experience.
  • Dynamic OW OBJ Pal System: Overworld Objects now load their palette dynamically. Credits: vulcandth, Rangi42, Pokemon Polished Crystal, Pokmeon Mystic Crystal.
  • Dynamic Sprite Reload: Reloaded dynamic sprites. Credits: FredrIQ, Pokemon Polished Crystal.
  • Smooth Fading Routines Port smooth fading routines from Polished Crystal/Prism. Credits: Rangi42, FredrIQ, Pokemon Polished Crystal, Pokemon Prism.
  • newbag: A refactor of the backpack, which includes the ability to expand pockets in the bag. Credits: Monstarules

Contributions

We warmly welcome contributions to the CrystalShireEngine project. If you're interested in contributing, please contact vulcandth on Discord to discuss how you can help!

Branch Structure

  • core: The default branch, aimed at integrating optimizations, bug & design flaw fixes, and various other engine improvements to support rom hacking.
  • gen3, gen4, ...: Upcoming branches set to incorporate a plethora of features (pokemon, moves, mechanics, etc.) from respective generations into the Crystal engine.