Tutorials may use diff syntax to show edits: ```diff this is some code -delete red - lines +add green + lines ``` ## Contents - [Miscellaneous](#miscellaneous) - [How to add a new…](#how-to-add-a-new) - [How to edit the…](#how-to-edit-the) - [Upgrades to existing features](#upgrades-to-existing-features) - [Removing features](#removing-features) - [Features from different generations](#features-from-different-generations) - [Assembly programming](#assembly-programming) - [To do](#to-do) ## Miscellaneous - [Tips and tricks](Tips-and-tricks) - [Useful unused data and routines](Useful-unused-data-and-routines) - [Discovering GameShark cheat codes](Discovering-GameShark-cheat-codes) ## How to add a new… - [Map and landmark](Add-a-new-map-and-landmark) - [Tileset (with custom palette)](Add-a-new-tileset) - [Pokémon species (up to 253)](Add-a-new-Pokémon) - [Trainer class](Add-a-new-trainer-class) - [Type (Fairy)](Add-a-new-type) - [Move (up to 255)](Add-a-new-move) - [Move effect](Add-a-new-move-effect) - [Field move effect](Add-a-new-field-move-effect) - [Item (up to 254, with various effects)](Add-a-new-item) - [TM or HM (up to 120)](Add-a-new-TM-or-HM) - [Party menu icon (up to 254)](Add-a-new-party-menu-icon) - [Overworld sprite](Add-a-new-overworld-sprite) - [Map object movement behavior](Add-a-new-map-object-movement-behavior) - [Player gender (TODO)](Add-a-new-player-gender) - [Mart (with new dialog and more items)](Add-a-new-Mart) - [Music song](Add-a-new-music-song) - [Pokémon stats page](Add-a-fourth-stats-page) - [Pack pocket](Add-a-new-Pack-pocket) - [Radio channel](Add-a-new-radio-channel) - [Wild Pokémon slot](Add-a-new-wild-Pokémon-slot) - [Unown form](Add-a-new-Unown-form) - [Unown puzzle chamber](Add-a-new-Unown-puzzle-chamber) - [Fishing rod](Add-a-new-fishing-rod) - [Battle transition](Add-a-new-battle-transition) - [Spawn point (for Fly or Teleport)](Add-a-new-spawn-point) - [Text scrolling speed](Add-a-new-text-scrolling-speed) - [Scene script](Add-a-new-scene-script) - [Move Tutor and new tutor moves](Move-Tutor-and-Tutor-Moves) - [Phone contact](Add-a-new-phone-contact) ## How to edit the… - [Town Map](Edit-the-Town-Map) - [Battle HUD](Edit-the-battle-HUD) (*TODO*) - [Male and female player colors](Edit-the-male-and-female-player-colors) - [Default Player and Rival names](Change-the-default-Player-and-Rival-names) ## Upgrades to existing features - [Expand tilesets from 192 to 255 tiles](Expand-tilesets-from-192-to-255-tiles) - [Allow map tiles to appear above sprites (so NPCs can walk behind tiles) with `PRIORITY` colors](Allow-map-tiles-to-appear-above-sprites-\(so-NPCs-can-walk-behind-tiles\)-with-PRIORITY-colors) - [Allow tiles to have different attributes in different blocks (including X and Y flip)](Allow-tiles-to-have-different-attributes-in-different-blocks-\(including-X-and-Y-flip\)) - [Allow more than 15 `object_event`s per map](Allow-more-than-15-object_events-per-map) - [Improve the outdoor sprite system](Improve-the-outdoor-sprite-system) - [Improve the event initialization system](Improve-the-event-initialization-system) - [Expand the Town Map tileset](Expand-the-Town-Map-tileset) - [Increase Pokémon sprite animation size](Increase-Pokémon-sprite-animation-size) - [Color party menu icons by species](Color-party-menu-icons-by-species) - [Allow more trainer parties, with individual DVs, stat experience, nicknames, variable teams, etc.](Allow-more-trainer-parties,-with-individual-DVs,-stat-experience,-nicknames,-variable-teams,-etc.) - [Colored trainer card badges](Colored-trainer-card-badges) - [Show the tops of leaders' heads on the trainer card](Show-the-tops-of-leaders-heads-on-the-trainer-card) - [Print text when you lose a trainer battle](Print-text-when-you-lose-a-trainer-battle) - [Correct grammar for plural trainers like Twins](Correct-grammar-for-plural-trainers-like-Twins) - [Make evening the fourth time of day](Make-evening-the-fourth-time-of-day) - [Custom order for the Old Pokédex mode](Custom-order-for-the-Old-Pokédex-mode) - [Short beeping noise for low HP](Short-beeping-noise-for-low-HP) - [Remove the artificial save delay](Remove-the-artificial-save-delay) - [Option to show shiny colors in Pokédex](Option-to-show-shiny-colors-in-Pokédex) - [Restore the GS Ball Celebi Event](Restore-the-GS-Ball-Celebi-Event) - [Improve the trainer rematch system](Improve-the-trainer-rematch-system) - [Make wild encounters vary](Make-wild-Pokémon-encounter-levels-vary) - [Make the Lottery Corner generate a lucky number daily instead of weekly](Make-the-Lottery-Corner-generate-a-lucky-number-daily-instead-of-weekly) - [Modify existing gender formula](Modify-existing-gender-formula) - [Force Set battle style or forbid item usage in battle](Force-Set-battle-style-or-forbid-item-usage-in-battle) - [Make new battle text to distinguish status move misses and fails](Make-new-battle-text-to-distinguish-status-move-misses-and-fails) ## Removing features - [Remove Pokémon sprite animations](Remove-Pokémon-sprite-animations) - [Remove the 25% failure chance for AI status moves](Remove-the-25%25-failure-chance-for-AI-status-moves) - [Remove the redundant move grammar table](Remove-the-redundant-move-grammar-table) - [Remove the opening intro](Removing-the-intro) - [Remove stat experience](Remove-stat-experience) - [Reduce the command queue system to just stone tables](Reduce-the-command-queue-system-to-just-stone-tables) ## Features from different generations - [Physical/Special split](Physical-Special-split) - [Replace stat experience with EVs](Replace-stat-experience-with-EVs) - [Don't gain experience at level 100](Don't-gain-experience-at-level-100) - [Erratic and Fluctuating experience growth rates](Erratic-and-Fluctuating-experience-growth-rates) - [Lose money proportional to badges and level](Lose-money-proportional-to-badges-and-level) - [Survive poisoning with 1 HP](Survive-poisoning-with-1-HP) - [Don't lose HP from poisoning in the overworld](Don't-lose-HP-from-poisoning-in-the-overworld) - [Show move names when you receive a TM or HM](Show-move-names-when-you-receive-a-TM-or-HM) - [Infinitely reusable TMs](Infinitely-reusable-TMs) - [Automatically reuse Repel](Automatically-reuse-Repel) - [Evolution moves](Evolution-moves) - [Running Shoes](Running-Shoes) - [Rock Climb](Rock-Climb) - [Dive](Dive) - [Sideways stairs with diagonal movement](Sideways-stairs-with-diagonal-movement) - [Automatic battle weather on certain maps](Automatic-battle-weather-on-certain-maps) - [Make Sandstorm raise the Special Defense of Rock type Pokémon by 50%](Make-Sandstorm-raise-the-Special-Defense-of-Rock-type-Pok%C3%A9mon-by-50%25) - [Show an icon for the current weather](Show-an-icon-for-the-current-weather) - [Puddles that splash when you walk](Puddles-that-splash-when-you-walk) - [Use G/S SGB palettes for maps](Use-GS-SGB-palettes-for-maps) - [Gain experience from catching Pokémon](Gain-experience-from-catching-Pokémon) - [Use unique colors for each thrown Poké Ball](Use-unique-colors-for-each-thrown-Poké-Ball) - [Smashing rocks has a chance to contain items](Smashing-rocks-has-a-chance-to-contain-items) - [How To Add a Pocket PC](How-To-Add-a-Pocket-PC) - [Add spinner tiles from Generation I Rocket Hideout](Add-spinner-tiles-from-Generation-I-Rocket-Hideout) - [Grant Grass-type Pokémon immunity to Powder/Spore-based moves](Grant-Grass-type-Pokémon-immunity-to-Powder-Spore-based-moves) - [Make time- and weather-sensitive moves only weather-dependent](Make-time-and-weather-sensitive-moves-only-weather-dependent) - [Add Hail as a new weather condition](Add-Hail-as-a-new-weather-condition) - [Battle Autoprompts](Battle-Autoprompts) - [SWSH Friendship Endure](SWSH-Friendship-Endure) ## Custom features - [Items that act like HM field moves](Adding-items-that-act-like-HMs) - [Level cap](Level-cap) - [Customizable Pokédex Color](Customizable-Pokédex-Color) - [Wall-to-wall carpeting in your room](Wall-to-wall-carpeting-in-your-room) - [Disable jumping over ledges onto obstacle tiles or NPCs](Disable-jumping-over-ledges-onto-obstacle-tiles-or-NPCs) - [Add more music that changes at night](Add-more-music-that-changes-at-night) ## Assembly programming - [Optimizing assembly code](Optimizing-assembly-code) - [Relevant links](Assembly-programming) ## To do Feel free to contribute one of these! - Add new... - Decoration for your room - Mail item - Wild data - Roaming Pokémon - Animated tiles - Object facing - Map event script command - Move effect script command - Scene for an existing map (aka triggers; auto-running event scripts) - Evolution methods (location, held item, move, [etc](https://gitgud.io/pfero/axyllagame/commit/81914d43eb89195734caee724c0a40d4686a0bab)) - More daily and weekly events - Third region - Third trainer card page for Kanto badges - NPC or trainer which has a phone number with custom messages when called - Features from other generations - Implement dynamic overhead+underfoot bridges - Trainer dialog and music change for their last Pokémon - Items that act like overworld moves - Safari Game - Ghost and Silph Scope - Show quantity already in Pack in Marts - E-mail system (receive mail from NPCs by accessing PC) - Implement a low health warning song similar to the one in Black and White versions - Move reminder - Gameplay tweaks - Bill calls to switch boxes when one is full - Let Pokémon use HM moves just by being compatible with them (from [Coral](https://hax.iimarckus.org/post/45725/)) - Nuzlocke mode (an in-game enforced [Nuzlocke Challenge](https://bulbapedia.bulbagarden.net/wiki/Nuzlocke_Challenge)) - Show metric units - Code tweaks - Move standing+walking sprites to VRAM0, standing-only sprites to VRAM1; allocate 1:E0-FF for the map name sign; allocate 1:80-DF for more map tiles; add Polished Map support - Show more than two Pokédex pages - Tutorials - Example map scripts (for common cases like an NPC that gives you an item)