summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorsurskitty <surskitty@gmail.com>2017-12-12 00:50:55 -0500
committersurskitty <surskitty@gmail.com>2017-12-12 00:50:55 -0500
commit096afdcdaca0714612f3670a3c4a670f312c1c3f (patch)
tree0c0bedcd311ab83262e31cf6d9d4c37257143acc /docs
parent98128cd4d8457948e7136a16e08bacff0bc3529d (diff)
parentf6942b9a136b2ee3b25159ebc4d54509a42c5266 (diff)
Merge branch 'master' of github.com:pret/pokecrystal
Diffstat (limited to 'docs')
-rw-r--r--docs/map_scripts.md118
-rw-r--r--docs/music_commands.md93
-rw-r--r--docs/pic_animations.md28
-rw-r--r--docs/scripting_commands.md345
4 files changed, 584 insertions, 0 deletions
diff --git a/docs/map_scripts.md b/docs/map_scripts.md
new file mode 100644
index 000000000..edd3657ec
--- /dev/null
+++ b/docs/map_scripts.md
@@ -0,0 +1,118 @@
+# Map Scripts
+
+
+## `const_value set 2`
+
+### `const` *`MAPNAME_PERSONNAME`*
+
+
+## `MapName_MapScriptHeader:`
+
+
+## `.MapTriggers: db` *N*
+
+### `maptrigger` *script*
+
+
+## `.MapCallbacks: db` *N*
+
+### `dbw` *type*, *script*
+
+
+## Scripts
+
+
+## Text
+
+- **`text`**
+- **`line`**
+- **`cont`**
+- **`para`**
+- **`done`**
+
+
+## `MapName_MapEventHeader:`
+
+ ; filler
+ db 0, 0
+
+
+## `.Warps: db` *N*
+
+### `warp_def` *y*, *x*, *warp_id*, *map*
+
+
+## `.XYTriggers: db` *N*
+
+### `xy_trigger` *id*, *y*, *x*, `$0`, *script*, `$0`, `$0`
+
+
+## `.Signposts: db` *N*
+
+### `signpost` *y*, *x*, *type*, *script*
+
+#### Signpost types:
+
+- **`SIGNPOST_READ`**
+
+- **`SIGNPOST_UP/DOWN/LEFT/RIGHT`**
+
+- **`SIGNPOST_IFSET/IFNOTSET`**
+
+ **`dw` *event_flag*, *script***
+
+- **`SIGNPOST_ITEM`**
+
+ **`dwb` *event_flag*, *item_id***
+
+- **`SIGNPOST_COPY`**
+
+## `.PersonEvents: db` *N*
+
+### `person_event` *sprite*, *y*, *x*, *movement*, *ry*, *rx*, *hour*, *daytime*, *palette*, *type*, *range*, *script*, *event_flag*
+
+#### Movement types:
+
+- **`SPRITEMOVEDATA_ITEM_TREE`**
+
+- **`SPRITEMOVEDATA_WANDER`**
+
+- **`SPRITEMOVEDATA_SPINRANDOM_SLOW`**
+
+- **`SPRITEMOVEDATA_WALK_UP_DOWN`**
+
+- **`SPRITEMOVEDATA_WALK_LEFT_RIGHT`**
+
+- **`SPRITEMOVEDATA_STANDING_UP/DOWN/LEFT/RIGHT`**
+
+- **`SPRITEMOVEDATA_SPINRANDOM_FAST`**
+
+- **`SPRITEMOVEDATA_SNORLAX`**
+
+- **`SPRITEMOVEDATA_POKEMON`**
+
+- **`SPRITEMOVEDATA_SUDOWOODO`**
+
+- **`SPRITEMOVEDATA_SMASHABLE_ROCK`**
+
+- **`SPRITEMOVEDATA_STRENGTH_BOULDER`**
+
+- **`SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE`**
+
+- **`SPRITEMOVEDATA_SPINCLOCKWISE`**
+
+- **`SPRITEMOVEDATA_BIGDOLL`**
+
+- **`SPRITEMOVEDATA_LAPRAS`**
+
+#### Person types:
+
+- **`PERSONTYPE_SCRIPT`**
+
+- **`PERSONTYPE_ITEMBALL`**
+
+ **`itemball` *item_id***
+
+- **`PERSONTYPE_TRAINER`**
+
+ **`trainer` *event_flag*, *group_id*, *trainer_id*, *seen_text*, *beaten_text*, *loss_text*, *script***
diff --git a/docs/music_commands.md b/docs/music_commands.md
new file mode 100644
index 000000000..564ac010a
--- /dev/null
+++ b/docs/music_commands.md
@@ -0,0 +1,93 @@
+# Music Commands
+
+## `musicheader` *n*, *index*, *address*
+
+## `cry_header` *n*, *index*, *address*
+
+## `note` *pitch*, *octave*
+
+## `sound` *pitch*, *octave*, *intensity*, *frequency*
+
+## `noise` *pitch*, *duration*, *intensity*, *frequency*
+
+## `$D0`−`$D7`: `octave` *n*
+
+## `$D8`: `notetype` *length*[, *intensity*]
+
+## `$D9`: `pitchoffset` *octave*, *key*
+
+## `$DA`: `tempo` *tempo*
+
+## `$DB`: `dutycycle` *duty_cycle*
+
+## `$DC`: `intensity` *intensity*
+
+## `$DD`: `soundinput` *input*
+
+## `$DE`: `sound_duty` *a*, *b*, *c*, *d*
+
+## `$DF`: `togglesfx`
+
+## `$E0`: `slidepitchto` *duration*, *octave*, *pitch*
+
+## `$E1`: `vibrato` *delay*, *extent*
+
+## `$E2`: `unknownmusic0xe2` *unknown*
+
+## `$E3`: `togglenoise` *id*
+
+## `$E4`: `panning` *tracks*
+
+## `$E5`: `volume` *volume*
+
+## `$E6`: `tone` *tone*
+
+## `$E7`: `unknownmusic0xe7` *unknown*
+
+## `$E8`: `unknownmusic0xe8` *unknown*
+
+## `$E9`: `tempo_relative` *value*
+
+## `$EA`: `restartchannel` *address*
+
+## `$EB`: `newsong` *id*
+
+## `$EC`: `sfxpriorityon`
+
+## `$ED`: `sfxpriorityoff`
+
+## `$EE`: `unknownmusic0xee` *address*
+
+## `$EF`: `stereopanning` *tracks*
+
+## `$F0`: `sfxtogglenoise` *id*
+
+## `$F1`: `music0xf1`
+
+## `$F2`: `music0xf2`
+
+## `$F3`: `music0xf3`
+
+## `$F4`: `music0xf4`
+
+## `$F5`: `music0xf5`
+
+## `$F6`: `music0xf6`
+
+## `$F7`: `music0xf7`
+
+## `$F8`: `music0xf8`
+
+## `$F9`: `unknownmusic0xf9`
+
+## `$FA`: `setcondition` *condition*
+
+## `$FB`: `jumpif` *condition*, *address*
+
+## `$FC`: `jumpchannel` *address*
+
+## `$FD`: `loopchannel` *count*, *address*
+
+## `$FE`: `callchannel` *address*
+
+## `$FF`: `endchannel`
diff --git a/docs/pic_animations.md b/docs/pic_animations.md
new file mode 100644
index 000000000..a87932819
--- /dev/null
+++ b/docs/pic_animations.md
@@ -0,0 +1,28 @@
+# Pic Animations
+
+Pic animations are assembled in 3 parts:
+
+- Top-level animations:
+ - `frame` *#*, *duration*: Frame 0 is the original pic (no change)
+ - `setrepeat` *#*: Sets the number of times to repeat
+ - `dorepeat` *#*: Repeats from command *#* (starting from 0)
+ - `end`
+
+- Bitmasks:
+ Layered over the pic to designate affected tiles
+
+- Frame definitions:
+ first byte is the bitmask used for this frame
+ following bytes are tile ids mapped to each bit in the mask
+
+Animation data is in these files:
+
+- gfx/pics/anims.asm:
+ Main animations (played everywhere)
+
+- gfx/pics/extras.asm:
+ Extra animations, appended to the main animation.
+ Used in the status screen (blinking, tail wags etc.)
+
+- gfx/pics/unown_anims.asm and gfx/pics/unown_extras.asm:
+ Unown has its own animation data despite having an entry in the main tables.
diff --git a/docs/scripting_commands.md b/docs/scripting_commands.md
new file mode 100644
index 000000000..32ba7d338
--- /dev/null
+++ b/docs/scripting_commands.md
@@ -0,0 +1,345 @@
+# Scripting Commands
+
+## `$00`: `scall` *script*
+
+## `$01`: `farscall` *script*
+
+## `$02`: `ptcall` *script*
+
+## `$03`: `jump` *script*
+
+## `$04`: `farjump` *script*
+
+## `$05`: `ptjump` *script*
+
+## `$06`: `if_equal` *byte*, *script*
+
+## `$07`: `if_not_equal` *byte*, *script*
+
+## `$08`: `iffalse` *script*
+
+## `$09`: `iftrue` *script*
+
+## `$0A`: `if_greater_than` *byte*, *script*
+
+## `$0B`: `if_less_than` *byte*, *script*
+
+## `$0C`: `jumpstd` *std_script*
+
+## `$0D`: `callstd` *std_script*
+
+## `$0E`: `callasm` *asm*
+
+## `$0F`: `special` *special_pointer*
+
+## `$10`: `ptcallasm` *asm*
+
+## `$11`: `checkmaptriggers` *map*
+
+## `$12`: `domaptrigger` *map*, *trigger_id*
+
+## `$13`: `checktriggers`
+
+## `$14`: `dotrigger` *trigger_id*
+
+## `$15`: `writebyte` *value*
+
+## `$16`: `addvar` *value*
+
+## `$17`: `random` *value*
+
+## `$18`: `checkver`
+
+## `$19`: `copybytetovar` *address*
+
+## `$1A`: `copyvartobyte` *address*
+
+## `$1B`: `loadvar` *address*, *value*
+
+## `$1C`: `checkcode` *variable*
+
+## `$1D`: `writevarcode` *variable*
+
+## `$1E`: `writecode` *variable*, *value*
+
+## `$1F`: `giveitem` *item_id*[, *quantity*=1]
+
+## `$20`: `takeitem` *item_id*[, *quantity*=1]
+
+## `$21`: `checkitem` *item_id*
+
+## `$22`: `givemoney` *account*, *value*
+
+## `$23`: `takemoney` *account*, *value*
+
+## `$24`: `checkmoney` *account*, *value*
+
+## `$25`: `givecoins` *value*
+
+## `$26`: `takecoins` *value*
+
+## `$27`: `checkcoins` *value*
+
+## `$28`: `addcellnum` *contact_id*
+
+## `$29`: `delcellnum` *contact_id*
+
+## `$2A`: `checkcellnum` *contact_id*
+
+## `$2B`: `checktime` *time*
+
+- **`checkmorn`:** `checktime MORN`
+- **`checkday`:** `checktime DAY`
+- **`checknite`:** `checktime NITE`
+
+## `$2C`: `checkpoke` *mon_id*
+
+## `$2D`: `givepoke` *mon_id*, *level*[, *item*=0[, *trainer*=0, *ot_name*, *nickname*]]
+
+## `$2E`: `giveegg` *mon_id*, *level*
+
+## `$2F`: `givepokeitem` *pointer*
+
+## `$30`: `checkpokeitem` *pointer*
+
+## `$31`: `checkevent` *event_flag*
+
+## `$32`: `clearevent` *event_flag*
+
+## `$33`: `setevent` *event_flag*
+
+## `$34`: `checkflag` *engine_flag*
+
+## `$35`: `clearflag` *engine_flag*
+
+## `$36`: `setflag` *engine_flag*
+
+## `$37`: `wildon`
+
+## `$38`: `wildoff`
+
+## `$39`: `xycompare` *pointer*
+
+## `$3A`: `warpmod` *warp_id*, *map*
+
+## `$3B`: `blackoutmod` *map*
+
+## `$3C`: `warp` *map*, *x*, *y*
+
+## `$3D`: `readmoney` *account*, *memory*
+
+## `$3E`: `readcoins` *memory*
+
+## `$3F`: `RAM2MEM` *memory*
+
+## `$40`: `pokenamemem` *mon_id*, *memory*
+
+## `$41`: `itemtotext` *item_id*, *memory*
+
+## `$42`: `mapnametotext` *memory*
+
+## `$43`: `trainertotext` *trainer_id*, *trainer_group*, *memory*
+
+## `$44`: `stringtotext` *text_pointer*, *memory*
+
+## `$45`: `itemnotify`
+
+## `$46`: `pocketisfull`
+
+## `$47`: `opentext`
+
+## `$48`: `refreshscreen` *dummy*
+
+## `$49`: `closetext`
+
+## `$4A`: `loadbytec2cf` *byte*
+
+## `$4B`: `farwritetext` *text_pointer*
+
+## `$4C`: `writetext` *text_pointer*
+
+## `$4D`: `repeattext` *byte1*, *byte2*
+
+## `$4E`: `yesorno`
+
+## `$4F`: `loadmenudata` *data_pointer*
+
+## `$50`: `closewindow`
+
+## `$51`: `jumptextfaceplayer` *text_pointer*
+
+## `$52`: `farjumptext` *text_pointer*
+
+## `$53`: `jumptext` *text_pointer*
+
+## `$54`: `waitbutton`
+
+## `$55`: `buttonsound`
+
+## `$56`: `pokepic` *mon_id*
+
+## `$57`: `closepokepic`
+
+## `$58`: `_2dmenu`
+
+## `$59`: `verticalmenu`
+
+## `$5A`: `loadpikachudata`
+
+## `$5B`: `randomwildmon`
+
+## `$5C`: `loadmemtrainer`
+
+## `$5D`: `loadwildmon` *mon_id*, *level*
+
+## `$5E`: `loadtrainer` *trainer_group*, *trainer_id*
+
+## `$5F`: `startbattle`
+
+## `$60`: `reloadmapafterbattle`
+
+## `$61`: `catchtutorial` *byte*
+
+## `$62`: `trainertext` *which_text*
+
+## `$63`: `trainerflagaction` *action*
+
+## `$64`: `winlosstext` *win_text_pointer*, *loss_text_pointer*
+
+## `$65`: `scripttalkafter`
+
+## `$66`: `end_if_just_battled`
+
+## `$67`: `check_just_battled`
+
+## `$68`: `setlasttalked` *person*
+
+## `$69`: `applymovement` *person*, *data_pointer*
+
+## `$6A`: `applymovement2` *data_pointer*
+
+## `$6B`: `faceplayer`
+
+## `$6C`: `faceperson` *person1*, *person2*
+
+## `$6D`: `variablesprite` *variable_sprite_id*, *sprite_id*
+
+## `$6E`: `disappear` *person*
+
+## `$6F`: `appear` *person*
+
+## `$70`: `follow` *person2*, *person1*
+
+## `$71`: `stopfollow`
+
+## `$72`: `moveperson` *person*, *x*, *y*
+
+## `$73`: `writepersonxy` *person*
+
+## `$74`: `loademote` *emote_id*
+
+## `$75`: `showemote` *emote_id*, *person*, *length*
+
+## `$76`: `spriteface` *person*, *facing*
+
+## `$77`: `follownotexact` *person2*, *person1*
+
+## `$78`: `earthquake` *param*
+
+## `$79`: `changemap` *bank*, *blockdata_pointer*
+
+## `$7A`: `changeblock` *x*, *y*, *block*
+
+## `$7B`: `reloadmap`
+
+## `$7C`: `reloadmappart`
+
+## `$7D`: `writecmdqueue` *queue_pointer*
+
+## `$7E`: `delcmdqueue` *byte*
+
+## `$7F`: `playmusic` *music_id*
+
+## `$80`: `encountermusic`
+
+## `$81`: `musicfadeout` *music_id*, *length*
+
+## `$82`: `playmapmusic`
+
+## `$83`: `dontrestartmapmusic`
+
+## `$84`: `cry` *mon_id*
+
+## `$85`: `playsound` *sfx_id*
+
+## `$86`: `waitsfx`
+
+## `$87`: `warpsound`
+
+## `$88`: `specialsound`
+
+## `$89`: `passtoengine` *data_pointer*
+
+## `$8A`: `newloadmap` *which_method*
+
+## `$8B`: `pause` *length*
+
+## `$8C`: `deactivatefacing` *length*
+
+## `$8D`: `priorityjump` *script*
+
+## `$8E`: `warpcheck`
+
+## `$8F`: `ptpriorityjump` *script*
+
+## `$90`: `return`
+
+## `$91`: `end`
+
+## `$92`: `reloadandreturn` *which_method*
+
+## `$93`: `end_all`
+
+## `$94`: `pokemart` *dialog_id*, *mart_id*
+
+## `$95`: `elevator` *floor_list*
+
+## `$96`: `trade` *trade_id*
+
+## `$97`: `askforphonenumber` *contact_id*
+
+## `$98`: `phonecall` *call_id*
+
+## `$99`: `hangup`
+
+## `$9A`: `describedecoration` *byte*
+
+## `$9B`: `fruittree` *tree_id*
+
+## `$9C`: `specialphonecall` *call_id*
+
+## `$9D`: `checkphonecall`
+
+## `$9E`: `verbosegiveitem` *item_id*[, *quantity*=1]
+
+## `$9F`: `verbosegiveitem2` *item_id*, *variable*
+
+## `$A0`: `swarm` *swarm_id*, *map*
+
+## `$A1`: `halloffame`
+
+## `$A2`: `credits`
+
+## `$A3`: `warpfacing` *facing*, *map*, *x*, *y*
+
+## `$A4`: `battletowertext` *memory*
+
+## `$A5`: `landmarktotext` *landmark_id*, *memory*
+
+## `$A6`: `trainerclassname` *trainer_group*, *memory*
+
+## `$A7`: `name` *type*, *id*, *memory*
+
+## `$A8`: `wait` *duration*
+
+## `$A9`: `check_save`