diff options
author | surskitty <surskitty@gmail.com> | 2017-12-12 00:50:55 -0500 |
---|---|---|
committer | surskitty <surskitty@gmail.com> | 2017-12-12 00:50:55 -0500 |
commit | 096afdcdaca0714612f3670a3c4a670f312c1c3f (patch) | |
tree | 0c0bedcd311ab83262e31cf6d9d4c37257143acc /docs | |
parent | 98128cd4d8457948e7136a16e08bacff0bc3529d (diff) | |
parent | f6942b9a136b2ee3b25159ebc4d54509a42c5266 (diff) |
Merge branch 'master' of github.com:pret/pokecrystal
Diffstat (limited to 'docs')
-rw-r--r-- | docs/map_scripts.md | 118 | ||||
-rw-r--r-- | docs/music_commands.md | 93 | ||||
-rw-r--r-- | docs/pic_animations.md | 28 | ||||
-rw-r--r-- | docs/scripting_commands.md | 345 |
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` |