summaryrefslogtreecommitdiff
path: root/Tutorials.md
blob: fce3ac5449b1764d7a88752e0b0d169f71bf1ab5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
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)


## 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)
- [Mart (with new dialog and more items)](Add-a-new-Mart)
- [Music song](Add-a-new-music-song)
- [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)](https://github.com/pret/pokecrystal/wiki/Spawn-Point-(for-Fly-or-Teleport))
- [Level cap](Add-a-new-level-cap)
- [Text scrolling speed](Add-a-new-text-scrolling-speed)


## 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)


## 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)
- [Expand the Town Map tileset](Expand-the-Town-Map-tileset)
- [Increase Pokémon sprite animation size](Increase-Pokémon-sprite-animation-size)
- [Allow more trainer parties, with individual DVs, stat experience, and nicknames](Allow-more-trainer-parties,-with-individual-DVs,-stat-experience,-and-nicknames)
- [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)
- [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)
- [Making items that act like HM Field Moves](Adding-items-that-act-like-HMs)


## 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)


## 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)
- [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)
- [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)
- [Add weather icons when selecting a move](Add-weather-icons-when-selecting-a-move)
- [Gain experience from catching Pokémon](Gain-experience-from-catching-Pokémon)


## Assembly programming

- [Optimizing assembly code](Optimizing-assembly-code)
- [Relevant links](Assembly-programming)


## To do

Feel free to contribute one of these!

- Tutor move
- Decoration for your room
- Mail item
- Phone contact
- Wild data
- Roaming Pokémon
- Animated tiles
- Object facing
- Map event script command
- Move effect script command
- Example map scripts (for common cases like an NPC that gives you an item)
- 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
- Fourth stats page for caught data
- Colored party menu icons (overworld or battle sprite colors)
- Implement dynamic overhead+underfoot bridges
- Trainer dialog and music change for their last Pokémon
- Change music instead of beeping SFX for low HP
- Items that act like overworld moves
- Show more than two Pokédex pages
- Safari Game
- Add a new playable character besides Kris and Gold
- Ghost and Silph Scope
- Bill calls to switch boxes when one is full
- Show quantity already in Pack in Marts
- Create an NPC or trainer which has a phone number with custom messages when called
- 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
- 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))
- 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