mirror of https://github.com/pret/pokecrystal.git
405 lines
12 KiB
NASM
405 lines
12 KiB
NASM
; Legacy support for old pokecrystal.
|
|
; Allows porting scripts with as few edits as possible.
|
|
; Legacy support not in this file can be found by looking for the keyword: "LEGACY"
|
|
|
|
; macros/rst.asm
|
|
DEF callba EQUS "farcall"
|
|
DEF callab EQUS "callfar"
|
|
|
|
; macros/gfx.asm
|
|
MACRO dsprite
|
|
dbsprite \2, \4, \1, \3, \5, \6
|
|
ENDM
|
|
|
|
; macros/data.asm
|
|
|
|
MACRO dbbw
|
|
db \1, \2
|
|
dw \3
|
|
ENDM
|
|
|
|
MACRO dbww
|
|
db \1
|
|
dw \2, \3
|
|
ENDM
|
|
|
|
MACRO dbwww
|
|
db \1
|
|
dw \2, \3, \4
|
|
ENDM
|
|
|
|
; macros/scripts/audio.asm
|
|
DEF __ EQU 0
|
|
DEF CC EQU 13
|
|
|
|
MACRO musicheader
|
|
channel_count \1
|
|
channel \2, \3
|
|
ENDM
|
|
|
|
MACRO sound
|
|
note \1, \2
|
|
db \3
|
|
dw \4
|
|
ENDM
|
|
|
|
MACRO noise
|
|
note \1, \2
|
|
db \3
|
|
db \4
|
|
ENDM
|
|
|
|
MACRO notetype
|
|
if _NARG >= 2
|
|
note_type \1, \2 >> 4, \2 & $0f
|
|
else
|
|
note_type \1
|
|
endc
|
|
ENDM
|
|
|
|
MACRO pitchoffset
|
|
transpose \1, \2 - 1
|
|
ENDM
|
|
|
|
DEF dutycycle EQUS "duty_cycle"
|
|
|
|
MACRO intensity
|
|
volume_envelope \1 >> 4, \1 & $0f
|
|
ENDM
|
|
|
|
MACRO soundinput
|
|
pitch_sweep \1 >> 4, \1 & $0f
|
|
ENDM
|
|
|
|
DEF unknownmusic0xde EQUS "sound_duty"
|
|
MACRO sound_duty
|
|
db duty_cycle_pattern_cmd
|
|
if _NARG == 4
|
|
db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6)
|
|
else
|
|
db \1
|
|
endc
|
|
ENDM
|
|
|
|
DEF togglesfx EQUS "toggle_sfx"
|
|
|
|
MACRO slidepitchto
|
|
pitch_slide \1, (8 - \2), \3
|
|
ENDM
|
|
|
|
DEF togglenoise EQUS "toggle_noise"
|
|
|
|
MACRO panning
|
|
force_stereo_panning ((\1 >> 4) & 1), (\1 & 1)
|
|
ENDM
|
|
|
|
DEF tone EQUS "pitch_offset"
|
|
DEF restartchannel EQUS "restart_channel"
|
|
DEF newsong EQUS "new_song"
|
|
DEF sfxpriorityon EQUS "sfx_priority_on"
|
|
DEF sfxpriorityoff EQUS "sfx_priority_off"
|
|
|
|
MACRO stereopanning
|
|
stereo_panning ((\1 >> 4) & 1), (\1 & 1)
|
|
ENDM
|
|
|
|
DEF sfxtogglenoise EQUS "sfx_toggle_noise"
|
|
DEF setcondition EQUS "set_condition"
|
|
DEF jumpif EQUS "sound_jump_if"
|
|
DEF jumpchannel EQUS "sound_jump"
|
|
DEF loopchannel EQUS "sound_loop"
|
|
DEF callchannel EQUS "sound_call"
|
|
DEF endchannel EQUS "sound_ret"
|
|
|
|
; macros/scripts/events.asm
|
|
|
|
DEF checkmorn EQUS "checktime MORN"
|
|
DEF checkday EQUS "checktime DAY"
|
|
DEF checknite EQUS "checktime NITE"
|
|
|
|
DEF jump EQUS "sjump"
|
|
DEF farjump EQUS "farsjump"
|
|
DEF priorityjump EQUS "sdefer"
|
|
DEF prioritysjump EQUS "sdefer"
|
|
DEF ptcall EQUS "memcall"
|
|
DEF ptjump EQUS "memjump"
|
|
DEF ptpriorityjump EQUS "stopandsjump"
|
|
DEF ptcallasm EQUS "memcallasm"
|
|
|
|
DEF if_equal EQUS "ifequal"
|
|
DEF if_not_equal EQUS "ifnotequal"
|
|
DEF if_greater_than EQUS "ifgreater"
|
|
DEF if_less_than EQUS "ifless"
|
|
DEF end_all EQUS "endall"
|
|
DEF return EQUS "endcallback"
|
|
DEF reloadandreturn EQUS "reloadend"
|
|
|
|
DEF checkmaptriggers EQUS "checkmapscene"
|
|
DEF domaptrigger EQUS "setmapscene"
|
|
DEF checktriggers EQUS "checkscene"
|
|
DEF dotrigger EQUS "setscene"
|
|
|
|
DEF faceperson EQUS "faceobject"
|
|
DEF moveperson EQUS "moveobject"
|
|
DEF writepersonxy EQUS "writeobjectxy"
|
|
DEF spriteface EQUS "turnobject"
|
|
DEF objectface EQUS "turnobject"
|
|
DEF applymovement2 EQUS "applymovementlasttalked"
|
|
|
|
DEF writebyte EQUS "setval"
|
|
DEF addvar EQUS "addval"
|
|
DEF copybytetovar EQUS "readmem"
|
|
DEF copyvartobyte EQUS "writemem"
|
|
DEF checkcode EQUS "readvar"
|
|
DEF writevarcode EQUS "writevar"
|
|
DEF writecode EQUS "loadvar"
|
|
|
|
DEF MEM_BUFFER_0 EQUS "STRING_BUFFER_3"
|
|
DEF MEM_BUFFER_1 EQUS "STRING_BUFFER_4"
|
|
DEF MEM_BUFFER_2 EQUS "STRING_BUFFER_5"
|
|
|
|
DEF vartomem EQUS "getnum"
|
|
DEF mapnametotext EQUS "getcurlandmarkname"
|
|
DEF readcoins EQUS "getcoins"
|
|
|
|
MACRO pokenamemem
|
|
getmonname \2, \1
|
|
ENDM
|
|
|
|
MACRO itemtotext
|
|
getitemname \2, \1
|
|
ENDM
|
|
|
|
MACRO landmarktotext
|
|
getlandmarkname \2, \1
|
|
ENDM
|
|
|
|
MACRO trainertotext
|
|
gettrainername \3, \1, \2
|
|
ENDM
|
|
|
|
MACRO trainerclassname
|
|
gettrainerclassname \2, \1
|
|
ENDM
|
|
|
|
MACRO name
|
|
getname \3, \1, \2
|
|
ENDM
|
|
|
|
MACRO stringtotext
|
|
getstring \2, \1
|
|
ENDM
|
|
|
|
MACRO readmoney
|
|
getmoney \2, \1
|
|
ENDM
|
|
|
|
DEF RAM2MEM EQUS "getnum"
|
|
DEF loadfont EQUS "opentext"
|
|
DEF loadmenudata EQUS "loadmenu"
|
|
DEF loadmenuheader EQUS "loadmenu"
|
|
DEF writebackup EQUS "closewindow"
|
|
DEF interpretmenu EQUS "_2dmenu"
|
|
DEF interpretmenu2 EQUS "verticalmenu"
|
|
DEF buttonsound EQUS "promptbutton"
|
|
DEF battlecheck EQUS "randomwildmon"
|
|
DEF loadtrainerdata EQUS "loadtemptrainer"
|
|
DEF loadpokedata EQUS "loadwildmon"
|
|
DEF returnafterbattle EQUS "reloadmapafterbattle"
|
|
DEF trainerstatus EQUS "trainerflagaction"
|
|
DEF talkaftercancel EQUS "endifjustbattled"
|
|
DEF talkaftercheck EQUS "checkjustbattled"
|
|
DEF playrammusic EQUS "encountermusic"
|
|
DEF reloadmapmusic EQUS "dontrestartmapmusic"
|
|
DEF resetfuncs EQUS "endall"
|
|
DEF storetext EQUS "battletowertext"
|
|
DEF displaylocation EQUS "landmarktotext"
|
|
DEF givepokeitem EQUS "givepokemail"
|
|
DEF checkpokeitem EQUS "checkpokemail"
|
|
DEF passtoengine EQUS "autoinput"
|
|
DEF verbosegiveitem2 EQUS "verbosegiveitemvar"
|
|
DEF loadbytec2cf EQUS "writeunusedbyte"
|
|
DEF writeunusedbytebuffer EQUS "writeunusedbyte"
|
|
|
|
; macros/scripts/maps.asm
|
|
|
|
MACRO mapconst
|
|
map_const \1, \3, \2
|
|
ENDM
|
|
|
|
DEF maptrigger EQUS "scene_script"
|
|
|
|
MACRO warp_def
|
|
warp_event \2, \1, \4, \3
|
|
ENDM
|
|
|
|
MACRO xy_trigger
|
|
coord_event \3, \2, \1, \5
|
|
ENDM
|
|
|
|
MACRO signpost
|
|
bg_event \2, \1, \3, \4
|
|
ENDM
|
|
|
|
MACRO person_event
|
|
object_event \3, \2, \1, \4, \5, \6, \7, \8, \9, \<10>, \<11>, \<12>, \<13>
|
|
ENDM
|
|
|
|
DEF PERSONTYPE_SCRIPT EQUS "OBJECTTYPE_SCRIPT"
|
|
DEF PERSONTYPE_ITEMBALL EQUS "OBJECTTYPE_ITEMBALL"
|
|
DEF PERSONTYPE_TRAINER EQUS "OBJECTTYPE_TRAINER"
|
|
|
|
DEF SCENE_DEFAULT EQU 0
|
|
DEF SCENE_FINISHED EQU 1
|
|
|
|
; macros/scripts/movement.asm
|
|
|
|
DEF show_person EQUS "show_object"
|
|
DEF hide_person EQUS "hide_object"
|
|
DEF remove_person EQUS "remove_object"
|
|
|
|
DEF turn_head_down EQUS "turn_head DOWN"
|
|
DEF turn_head_up EQUS "turn_head UP"
|
|
DEF turn_head_left EQUS "turn_head LEFT"
|
|
DEF turn_head_right EQUS "turn_head RIGHT"
|
|
DEF turn_step_down EQUS "turn_step DOWN"
|
|
DEF turn_step_up EQUS "turn_step UP"
|
|
DEF turn_step_left EQUS "turn_step LEFT"
|
|
DEF turn_step_right EQUS "turn_step RIGHT"
|
|
DEF slow_step_down EQUS "slow_step DOWN"
|
|
DEF slow_step_up EQUS "slow_step UP"
|
|
DEF slow_step_left EQUS "slow_step LEFT"
|
|
DEF slow_step_right EQUS "slow_step RIGHT"
|
|
DEF step_down EQUS "step DOWN"
|
|
DEF step_up EQUS "step UP"
|
|
DEF step_left EQUS "step LEFT"
|
|
DEF step_right EQUS "step RIGHT"
|
|
DEF big_step_down EQUS "big_step DOWN"
|
|
DEF big_step_up EQUS "big_step UP"
|
|
DEF big_step_left EQUS "big_step LEFT"
|
|
DEF big_step_right EQUS "big_step RIGHT"
|
|
DEF slow_slide_step_down EQUS "slow_slide_step DOWN"
|
|
DEF slow_slide_step_up EQUS "slow_slide_step UP"
|
|
DEF slow_slide_step_left EQUS "slow_slide_step LEFT"
|
|
DEF slow_slide_step_right EQUS "slow_slide_step RIGHT"
|
|
DEF slide_step_down EQUS "slide_step DOWN"
|
|
DEF slide_step_up EQUS "slide_step UP"
|
|
DEF slide_step_left EQUS "slide_step LEFT"
|
|
DEF slide_step_right EQUS "slide_step RIGHT"
|
|
DEF fast_slide_step_down EQUS "fast_slide_step DOWN"
|
|
DEF fast_slide_step_up EQUS "fast_slide_step UP"
|
|
DEF fast_slide_step_left EQUS "fast_slide_step LEFT"
|
|
DEF fast_slide_step_right EQUS "fast_slide_step RIGHT"
|
|
DEF turn_away_down EQUS "turn_away DOWN"
|
|
DEF turn_away_up EQUS "turn_away UP"
|
|
DEF turn_away_left EQUS "turn_away LEFT"
|
|
DEF turn_away_right EQUS "turn_away RIGHT"
|
|
DEF turn_in_down EQUS "turn_in DOWN"
|
|
DEF turn_in_up EQUS "turn_in UP"
|
|
DEF turn_in_left EQUS "turn_in LEFT"
|
|
DEF turn_in_right EQUS "turn_in RIGHT"
|
|
DEF turn_waterfall_down EQUS "turn_waterfall DOWN"
|
|
DEF turn_waterfall_up EQUS "turn_waterfall UP"
|
|
DEF turn_waterfall_left EQUS "turn_waterfall LEFT"
|
|
DEF turn_waterfall_right EQUS "turn_waterfall RIGHT"
|
|
DEF slow_jump_step_down EQUS "slow_jump_step DOWN"
|
|
DEF slow_jump_step_up EQUS "slow_jump_step UP"
|
|
DEF slow_jump_step_left EQUS "slow_jump_step LEFT"
|
|
DEF slow_jump_step_right EQUS "slow_jump_step RIGHT"
|
|
DEF jump_step_down EQUS "jump_step DOWN"
|
|
DEF jump_step_up EQUS "jump_step UP"
|
|
DEF jump_step_left EQUS "jump_step LEFT"
|
|
DEF jump_step_right EQUS "jump_step RIGHT"
|
|
DEF fast_jump_step_down EQUS "fast_jump_step DOWN"
|
|
DEF fast_jump_step_up EQUS "fast_jump_step UP"
|
|
DEF fast_jump_step_left EQUS "fast_jump_step LEFT"
|
|
DEF fast_jump_step_right EQUS "fast_jump_step RIGHT"
|
|
|
|
DEF step_sleep_1 EQUS "step_sleep 1"
|
|
DEF step_sleep_2 EQUS "step_sleep 2"
|
|
DEF step_sleep_3 EQUS "step_sleep 3"
|
|
DEF step_sleep_4 EQUS "step_sleep 4"
|
|
DEF step_sleep_5 EQUS "step_sleep 5"
|
|
DEF step_sleep_6 EQUS "step_sleep 6"
|
|
DEF step_sleep_7 EQUS "step_sleep 7"
|
|
DEF step_sleep_8 EQUS "step_sleep 8"
|
|
|
|
; macros/scripts/text.asm
|
|
DEF text_from_ram EQUS "text_ram"
|
|
DEF start_asm EQUS "text_asm"
|
|
DEF deciram EQUS "text_decimal"
|
|
DEF interpret_data EQUS "text_pause"
|
|
DEF limited_interpret_data EQUS "text_dots"
|
|
DEF link_wait_button EQUS "text_waitbutton"
|
|
DEF text_linkwaitbutton EQUS "text_waitbutton"
|
|
DEF text_linkpromptbutton EQUS "text_waitbutton"
|
|
DEF current_day EQUS "text_today"
|
|
DEF text_jump EQUS "text_far"
|
|
|
|
; macros/scripts/battle_anims.asm
|
|
DEF anim_enemyfeetobj EQUS "anim_battlergfx_2row"
|
|
DEF anim_playerheadobj EQUS "anim_battlergfx_1row"
|
|
DEF anim_clearsprites EQUS "anim_keepsprites"
|
|
|
|
; macros/scripts/oam_anims.asm
|
|
DEF dorestart EQUS "oamrestart"
|
|
DEF dowait EQUS "oamwait"
|
|
DEF delanim EQUS "oamdel"
|
|
|
|
; engine/events/std_scripts.asm
|
|
DEF pokecenternurse EQUS "PokecenterNurseScript"
|
|
DEF difficultbookshelf EQUS "DifficultBookshelfScript"
|
|
DEF picturebookshelf EQUS "PictureBookshelfScript"
|
|
DEF magazinebookshelf EQUS "MagazineBookshelfScript"
|
|
DEF teamrocketoath EQUS "TeamRocketOathScript"
|
|
DEF incenseburner EQUS "IncenseBurnerScript"
|
|
DEF merchandiseshelf EQUS "MerchandiseShelfScript"
|
|
DEF townmap EQUS "TownMapScript"
|
|
DEF window EQUS "WindowScript"
|
|
DEF tv EQUS "TVScript"
|
|
DEF homepage EQUS "HomepageScript"
|
|
DEF radio1 EQUS "Radio1Script"
|
|
DEF radio2 EQUS "Radio2Script"
|
|
DEF trashcan EQUS "TrashCanScript"
|
|
DEF strengthboulder EQUS "StrengthBoulderScript"
|
|
DEF smashrock EQUS "SmashRockScript"
|
|
DEF pokecentersign EQUS "PokecenterSignScript"
|
|
DEF martsign EQUS "MartSignScript"
|
|
DEF goldenrodrockets EQUS "GoldenrodRocketsScript"
|
|
DEF radiotowerrockets EQUS "RadioTowerRocketsScript"
|
|
DEF elevatorbutton EQUS "ElevatorButtonScript"
|
|
DEF daytotext EQUS "DayToTextScript"
|
|
DEF bugcontestresultswarp EQUS "BugContestResultsWarpScript"
|
|
DEF bugcontestresults EQUS "BugContestResultsScript"
|
|
DEF initializeevents EQUS "InitializeEventsScript"
|
|
DEF asknumber1m EQUS "AskNumber1MScript"
|
|
DEF asknumber2m EQUS "AskNumber2MScript"
|
|
DEF registerednumberm EQUS "RegisteredNumberMScript"
|
|
DEF numberacceptedm EQUS "NumberAcceptedMScript"
|
|
DEF numberdeclinedm EQUS "NumberDeclinedMScript"
|
|
DEF phonefullm EQUS "PhoneFullMScript"
|
|
DEF rematchm EQUS "RematchMScript"
|
|
DEF giftm EQUS "GiftMScript"
|
|
DEF packfullm EQUS "PackFullMScript"
|
|
DEF rematchgiftm EQUS "RematchGiftMScript"
|
|
DEF asknumber1f EQUS "AskNumber1FScript"
|
|
DEF asknumber2f EQUS "AskNumber2FScript"
|
|
DEF registerednumberf EQUS "RegisteredNumberFScript"
|
|
DEF numberacceptedf EQUS "NumberAcceptedFScript"
|
|
DEF numberdeclinedf EQUS "NumberDeclinedFScript"
|
|
DEF phonefullf EQUS "PhoneFullFScript"
|
|
DEF rematchf EQUS "RematchFScript"
|
|
DEF giftf EQUS "GiftFScript"
|
|
DEF packfullf EQUS "PackFullFScript"
|
|
DEF rematchgiftf EQUS "RematchGiftFScript"
|
|
DEF gymstatue1 EQUS "GymStatue1Script"
|
|
DEF gymstatue2 EQUS "GymStatue2Script"
|
|
DEF receiveitem EQUS "ReceiveItemScript"
|
|
DEF receivetogepiegg EQUS "ReceiveTogepiEggScript"
|
|
DEF pcscript EQUS "PCScript"
|
|
DEF gamecornercoinvendor EQUS "GameCornerCoinVendorScript"
|
|
DEF happinesschecknpc EQUS "HappinessCheckScript"
|
|
|
|
; constants/sprite_constants.asm
|
|
DEF SPRITE_BUENA EQUS "SPRITE_BEAUTY"
|