Updates to 0.6.0 and international support for rankings

- Applied all of Matze's latest fixes
- Used IF DEFs to support the building of Japanese and international news in the same repo.
This commit is contained in:
pokegold-spaceworld 2023-07-21 20:04:50 -04:00
parent 4ea933224b
commit 778e5da3d2
65 changed files with 5134 additions and 3400 deletions

View File

@ -16,12 +16,14 @@ RGBLINK ?= $(RGBDS)rgblink
### Build targets
.SUFFIXES:
.PHONY: all clean first_issue
.PHONY: all clean first_issue first_issue_en
.SECONDEXPANSION:
.PRECIOUS:
.SECONDARY:
all: first_issue
news: first_issue
news_en: first_issue_en
clean:
rm -f news/*.o *.bin
@ -30,3 +32,9 @@ first_issue:
$(RGBASM) -o news/$@.o "news/$@.asm"
$(RGBLINK) -x -o $@.bin news/$@.o
python fix.py $@.bin
first_issue_en:
$(RGBASM) -o news_en/$@.o "news_en/$@.asm"
$(RGBLINK) -x -o $@.bin news_en/$@.o
python fix.py $@.bin

View File

@ -1,12 +1,26 @@
Disassembly of Pokemon Crystal's Pokemon News.
So far, only one of the four known news issues is disassembled.
The pokecrystal directory contains some useful constants and macros sourced from [pokecrystal].
To use this, install python and the tools required for assembling [pokecrystal].
[pokecrystal]: https://github.com/pret/pokecrystal
## Information
A WIP fork of a disassembly of Pokémon Crystal's Pokemon News by Sudel-Matze.
Matze's initial repository contained a disassembly for one of the four known Pokémon News files. (Specifically 'news2.bin')
A disassembly of Pokémon Crystal's debug Pokemon News by Sudel-Matze.
The Pokémon News was distributed via the Mobile Adapter and obtained via the in-game news machine - a feature originally only available to the Japanese version of the game.
This fork is designed to translate the news into English and to be used for the [pokecrystal-mobile-en] project.
This repository can be used to build the news in both Japanese (original) and English (for the [pokecrystal-mobile-en] project).
To build a specific version, run one of these commands:
- JP Version: `make`
- EN Version: `make news_en`
More information about Pokémon Crystal's mobile features can be found here:
@ -15,7 +29,7 @@ More information about Pokémon Crystal's mobile features can be found here:
The pokecrystal directory contains some useful constants and macros sourced from [pokecrystal].
Python and RGBDS 0.5.1 are required to build the news.
Python and RGBDS 0.6.0 are required to build the news.
## Screenshots

View File

@ -1,7 +1,13 @@
INCLUDE "pokecrystal/constants.asm"
INCLUDE "macros.asm"
INCLUDE "wram.asm"
INCLUDE "sram.asm"
IF DEF(_NEWS_EN)
INCLUDE "ram/wram_int.asm"
INCLUDE "ram/sram_int.asm"
ELSE
INCLUDE "ram/wram.asm"
INCLUDE "ram/sram.asm"
ENDC
SECTION "header", ROM0[$0000]
db $00

View File

@ -1,4 +1,4 @@
screenconfig: MACRO
MACRO screenconfig
.curr_screen
ENDM
@ -74,6 +74,6 @@ ENDM
;ENDR
;ENDM
relativepointer: MACRO
MACRO relativepointer
dw \1 - .curr_screen
ENDM

View File

@ -1,68 +1,68 @@
; commands from Jumptable17d72a (mobile_5f) in pokecrystal
enum_start
const_def
enum nothing_command ; $00
nothing: MACRO
const nothing_command ; $00
MACRO nothing
db nothing_command
ENDM
enum loadscreen_command ; $01
loadscreen: MACRO
const loadscreen_command ; $01
MACRO loadscreen
db loadscreen_command
dw \1 - NewsDataStart ; pointer to screen data
ENDM
enum playmusic_command ; $02
playmusic: MACRO
const playmusic_command ; $02
MACRO playmusic
db playmusic_command
db \1 ; music id
ENDM
enum playsound_command ; $03
playsound: MACRO
const playsound_command ; $03
MACRO playsound
db playsound_command
db \1 ; sound id
ENDM
enum playcry_command ; $04
playcry: MACRO
const playcry_command ; $04
MACRO playcry
db playcry_command
db \1 ; species
ENDM
enum unknown05_command ; $05
unknown05: MACRO
const unknown05_command ; $05
MACRO unknown05
db unknown05_command
; TODO
ENDM
enum specialtext_command ; $06
specialtext: MACRO
const specialtext_command ; $06
MACRO specialtext
db specialtext_command
dw \1 ; offset into screen buffer
relativepointer \2 ; pointer to text
ENDM
enum unknown07_command ; $07
unknown07: MACRO
const unknown07_command ; $07
MACRO unknown07
db unknown07_command
; TODO
ENDM
enum unknown08_command ; $08
unknown08: MACRO
const unknown08_command ; $08
MACRO unknown08
db unknown08_command
; TODO
ENDM
enum unknown09_command ; $09
unknown09: MACRO
const unknown09_command ; $09
MACRO unknown09
db unknown09_command
; TODO
ENDM
enum pokemonsprite_command ; $0A
pokemonsprite: MACRO
const pokemonsprite_command ; $0A
MACRO pokemonsprite
db pokemonsprite_command
dw \1 ; offset into screen buffer
db \2 ; species
@ -70,16 +70,16 @@ pokemonsprite: MACRO
db \4 ; palette slot to use
ENDM
enum trainersprite_command ; $0B
trainersprite: MACRO
const trainersprite_command ; $0B
MACRO trainersprite
db trainersprite_command
dw \1 ; offset into screen buffer
db \2 ; trainer class
db \3 ; palette slot to use
ENDM
enum cpyvalram_command ; $0C
cpyvalram: MACRO
const cpyvalram_command ; $0C
MACRO cpyvalram
db cpyvalram_command
dw \1 ; source
dw \2 ; destination
@ -87,84 +87,84 @@ cpyvalram: MACRO
dw \3 ; length
ENDM
enum unknown0D_command ; $0D
unknown0D: MACRO
const unknown0D_command ; $0D
MACRO unknown0D
db unknown0D_command
; TODO
ENDM
enum menuup_command ; $0E
menuup: MACRO
const menuup_command ; $0E
MACRO menuup
db menuup_command
ENDM
enum menudown_command ; $0F
menudown: MACRO
const menudown_command ; $0F
MACRO menudown
db menudown_command
ENDM
enum menuleft_command ; $10
menuleft: MACRO
const menuleft_command ; $10
MACRO menuleft
db menuleft_command
ENDM
enum menuright_command ; $11
menuright: MACRO
const menuright_command ; $11
MACRO menuright
db menuright_command
ENDM
enum unknown12_command ; $12
unknown12: MACRO
const unknown12_command ; $12
MACRO unknown12
db unknown12_command
; TODO
ENDM
enum unknown13_command ; $13
unknown13: MACRO
const unknown13_command ; $13
MACRO unknown13
db unknown13_command
; TODO
ENDM
enum unknown14_command ; $14
unknown14: MACRO
const unknown14_command ; $14
MACRO unknown14
db unknown14_command
; TODO
ENDM
enum unknown15_command ; $15
unknown15: MACRO
const unknown15_command ; $15
MACRO unknown15
db unknown15_command
; TODO
ENDM
enum unknown16_command ; $16
unknown16: MACRO
const unknown16_command ; $16
MACRO unknown16
db unknown16_command
; TODO
ENDM
enum menuscript_command ; $17
menuscript: MACRO
const menuscript_command ; $17
MACRO menuscript
db menuscript_command
ENDM
enum printtext_command ; $18
printtext: MACRO
const printtext_command ; $18
MACRO printtext
db printtext_command
dw \1 ; offset into screen buffer
relativepointer \2 ; pointer to text
ENDM
enum cleartext_command ; $19
cleartext: MACRO
const cleartext_command ; $19
MACRO cleartext
db cleartext_command
dw \1 ; offset into screen buffer
db \2 ; number of columns to clear
db \3 ; number of rows to clear
ENDM
enum cmpval_command ; $1A
cmpval: MACRO
const cmpval_command ; $1A
MACRO cmpval
db cmpval_command
db BANK(\1) ; wram or sram bank of value to compare
dw \1 ; address of value to compare
@ -178,50 +178,50 @@ rept \5
endr
ENDM
enum unknown1B_command ; $1B
unknown1B: MACRO
const unknown1B_command ; $1B
MACRO unknown1B
db unknown1B_command
; TODO
ENDM
enum unknown1C_command ; $1C
unknown1C: MACRO
const unknown1C_command ; $1C
MACRO unknown1C
db unknown1C_command
; TODO
ENDM
enum unknown1D_command ; $1D
unknown1D: MACRO
const unknown1D_command ; $1D
MACRO unknown1D
db unknown1D_command
; TODO
ENDM
enum unknown1E_command ; $1E
unknown1E: MACRO
const unknown1E_command ; $1E
MACRO unknown1E
db unknown1E_command
; TODO
ENDM
enum unknown1F_command ; $1F
unknown1F: MACRO
const unknown1F_command ; $1F
MACRO unknown1F
db unknown1F_command
; TODO
ENDM
enum unknown20_command ; $20
unknown20: MACRO
const unknown20_command ; $20
MACRO unknown20
db unknown20_command
; TODO
ENDM
enum unknown21_command ; $21
unknown21: MACRO
const unknown21_command ; $21
MACRO unknown21
db unknown21_command
; TODO
ENDM
enum cmpvalram_command ; $22
cmpvalram: MACRO
const cmpvalram_command ; $22
MACRO cmpvalram
db cmpvalram_command
db BANK(\1) ; wram or sram bank for first value
dw \1 ; address of first value
@ -233,93 +233,93 @@ cmpvalram: MACRO
relativepointer \6 ; script pointer to jump to if first value is greater
ENDM
enum setval_command ; $23
setval: MACRO
const setval_command ; $23
MACRO setval
db setval_command
dw \1 ; address of value to set
db \2 ; value
ENDM
enum incval_command ; $24
incval: MACRO
const incval_command ; $24
MACRO incval
db incval_command
dw \1 ; address of value to increment
db \2 ; increment
; TODO
ENDM
enum decval_command ; $25
decval: MACRO
const decval_command ; $25
MACRO decval
db decval_command
dw \1 ; address of value to decrement
db \2 ; decrement
ENDM
enum incvalram_command ; $26
incvalram: MACRO
const incvalram_command ; $26
MACRO incvalram
db incvalram_command
dw \1 ; address of value to increment
dw \2 ; address of increment
ENDM
enum decvalram_command ; $27
decvalram: MACRO
const decvalram_command ; $27
MACRO decvalram
db decvalram_command
dw \1 ; address of value to decrement
dw \2 ; address of decrement
ENDM
enum updaterankings_command ; $28
updaterankings: MACRO
const updaterankings_command ; $28
MACRO updaterankings
db updaterankings_command
ENDM
enum unknown29_command ; $29
unknown29: MACRO
const unknown29_command ; $29
MACRO unknown29
db unknown29_command
; TODO
ENDM
enum unknown2A_command ; $2A
unknown2A: MACRO
const unknown2A_command ; $2A
MACRO unknown2A
db unknown2A_command
; TODO
ENDM
enum unknown2B_command ; $2B
unknown2B: MACRO
const unknown2B_command ; $2B
MACRO unknown2B
db unknown2B_command
; TODO
ENDM
enum unknown2C_command ; $2C
unknown2C: MACRO
const unknown2C_command ; $2C
MACRO unknown2C
db unknown2C_command
; TODO
ENDM
enum unknown2D_command ; $2D
unknown2D: MACRO
const unknown2D_command ; $2D
MACRO unknown2D
db unknown2D
; TODO
ENDM
enum unknown2e_command ; $2E
unknown2e: MACRO
const unknown2e_command ; $2E
MACRO unknown2e
db unknown2e_command
; TODO
ENDM
enum menureturn_command ; $2F
menureturn: MACRO
const menureturn_command ; $2F
MACRO menureturn
db menureturn_command
ENDM
enum exit_command ; $30
exit: MACRO
const exit_command ; $30
MACRO exit
db exit_command
ENDM
end: MACRO
MACRO end
db $FF
ENDM

View File

@ -1,54 +1,155 @@
; commands from RunMobileScript (mobile_5f) in pokecrystal
enum_start $03
enum newstext_easychat_command ; $03
text_easychat: MACRO
MACRO news_text_start
db "<MOBILE>"
db newstext_easychat_command
dw \1 ; length
ENDM
MACRO news_text_end
db "@"
ENDM
enum newstext_unknown04_command
enum newstext_unknown05_command
enum newstext_unknown06_command
enum newstext_unknown07_command
enum newstext_unknown08_command
; commands from RunMobileScript (mobile_5f)
const_def $01
enum newstext_playername_command ; $09
text_playername: MACRO
db "<MOBILE>"
db newstext_playername_command
db \1 ; flags
db "@"
const news_text_ranking_number_command ; $01
; prints a number from data in a rankings entry
MACRO news_text_ranking_number
db news_text_ranking_number_command
dw \1 ; offset in rankings entry data
db \2 ; byte size of value + flag (see MobilePrintNum)
db \3 ; amount of digits
db \4 ; offset of following text
db \5 ; digit to insert a character at (0 = disabled)
db \6 ; character to insert (e.g. decimal point)
ENDM
enum newstext_prefecture_command ; $0A
text_prefecture: MACRO
db "<MOBILE>"
db newstext_prefecture_command
db \1 ; flags
db "@"
const news_text_ranking_text_command ; $02
; prints text from data in a rankings entry
MACRO news_text_ranking_text
db news_text_ranking_text_command
dw \1 ; offset in rankings entry data
db \2
; if international == 0
; db NAME_LENGTH_JAPANESE ; length of the data
; else
; db PLAYER_NAME_LENGTH - 1
; endc
db \3 ; offset of following text
ENDM
enum newstext_zip_command ; 0B
text_zip: MACRO
db "<MOBILE>"
db newstext_zip_command
db \1 ; flags
db "@"
const news_text_ranking_message_command ; $03
; prints an easy chat message from data in a rankings entry
MACRO news_text_ranking_message
db news_text_ranking_message_command
dw \1 ; offset in rankings entry data
ENDM
enum newstext_unknown0C_command
const news_text_ranking_region_command ; $04
; prints a regions's name from data in a rankings entry
MACRO news_text_ranking_region
db news_text_ranking_region_command
dw \1 ; offset in rankings entry data
db \2 ; offset of following text
ENDM
enum newstext_switch_command ; $0D
text_switch: MACRO
db "<MOBILE>"
db newstext_switch_command
const news_text_ranking_pokemon_command ; $05
; prints a pokemon species name from data in a rankings entry
MACRO news_text_ranking_pokemon
db news_text_ranking_pokemon_command
dw \1 ; offset in rankings entry data
db \2 ; offset of following text
ENDM
const news_text_ranking_gender_command ; $06
; prints a gender from data in a rankings entry
MACRO news_text_ranking_gender
db news_text_ranking_gender_command
dw \1 ; offset in rankings entry data
db \2 ; offset of following text
ENDM
const news_text_ranking_item_command ; $07
; prints an item's name from data in a rankings entry
MACRO news_text_ranking_item
db news_text_ranking_item_command
dw \1 ; offset in rankings entry data
db \2 ; offset of following text
ENDM
const news_text_ranking_indicator_command ; $08
; prints the rank indicator
MACRO news_text_ranking_indicator
db news_text_ranking_indicator_command
db 2 ; amount of digits
db \1 ; offset of following text
ENDM
const news_text_own_name_command ; $09
; prints the player's own name
MACRO news_text_own_name
db news_text_own_name_command
db \1 ; offset of following text
ENDM
const news_text_own_region_command ; $0a
; prints the player's current region
MACRO news_text_own_region_current
db news_text_own_region_command
db \1 ; offset of following text
ENDM
; prints the player's backed-up region
MACRO news_text_own_region_backup
db news_text_own_region_command
db \1 | $80 ; offset of following text
ENDM
const news_text_own_zip_command ; $0b
; prints the player's current zip code
MACRO news_text_own_zip_current
db news_text_own_zip_command
db \1 ; offset of following text
ENDM
; prints the player's backed-up zip code
MACRO news_text_own_zip_backup
db news_text_own_zip_command
db \1 | $80 ; offset of following text
ENDM
const news_text_own_message_command ; $0c
; prints the player's own message
MACRO news_text_own_message
db news_text_own_message_command
ENDM
const news_text_switch_command ; $0d
; switches between different text based on a variable
MACRO news_text_switch
db news_text_switch_command
db \1 ; number of entries
dw \2 ; wram address containing offset
REPT \1
relativepointer \3 ; pointer to text
SHIFT
ENDR
ENDM
const news_text_nextrow_command ; $0e
; sets the offset to print text to the next screen row + the offset specified as parameter
MACRO news_text_nextrow
db news_text_nextrow_command
db \1 ; offset of following text
ENDM
const news_text_number_command ; $0f
; prints a number from any location in memory
MACRO news_text_number
db news_text_number_command
db BANK(\1) ; memory bank
dw \1 ; address
db \2 ; byte size of value + flag (see MobilePrintNum)
db \3 ; amount of digits
db \4 ; offset of following text
db \5 ; digit to insert a character at (0 = disabled)
db \6 ; character to insert (e.g. decimal point)
ENDM

View File

@ -26,7 +26,7 @@ NewsRootScreen: ; $0006
db $01 ; number of strings to draw
dw $0029 ; offset into screen buffer
db "#MON NEWS No.1@" ; string
db "ポケモンニュース そうかんごう@" ; string
db $02, $05 ; menu x, y
db $01, $04 ; number of columns, rows
@ -82,16 +82,16 @@ NewsRootScreen: ; $0006
end
.menuItemNewsGuideText
db "NEWS GUIDE@"
db "ニュースガイド@"
.menuItemTrainerRankingsText
db "TRAINER RANKINGS@"
db "トレーナーランキング@"
.menuItemPokemonQuizText
db "#MANIA QUIZ@"
db "ポケモンカルト@"
.menuItemQuitText
db "CANCEL@"
db "やめる@"
.menuItemNewsGuideScript
cleartext $0105, $12, $04
@ -114,35 +114,32 @@ NewsRootScreen: ; $0006
end
.newsGuideText
text "We hope you enjoy"
line "the TRAINER RANK-"
cont "INGS and #MANIA"
cont "QUIZ in issue No.1"
text "#ニュース そうかんごうでは"
line "<TRAINER>ランキングと"
cont "#カルトクイズで"
cont "おたのしみ ください!"
para "You can update"
line "your ranking at"
cont "any time."
para "If you work hard"
line "you can reach the"
cont "top!"
para "あなた<NO>ランキング<NO>せいせきは"
line "ランキング<NO>こうしん<WO>すれば"
cont "なんどでも かきかえられるので"
cont "がんばれば トップ<NI>なれるかも!"
done
.menuItemNewsGuideDescription
db "Read an explan-"
line "ation of the NEWS@"
db "よみこんだ ニュースを"
line "かんたん<NI>せつめいします@"
.menuItemTrainerRankingsDescription
db "Triple-theme"
line "trainer ranking!@"
db "3つ<NO>テーマで"
line "ランキング<WO>します!@"
.menuItemPokemonQuizDescription
db "Test your memory"
line "of your adventure!@"
db "これまで<NO>ぼうけん<WO>どこまで"
line "おもいだせるか テストします!@"
.menuItemQuitDescription
db "Stop reading the"
line "NEWS.@"
db "ニュース<WO>みるのを"
line "やめます@"
PokemonQuizScreen: ; $0172
@ -161,7 +158,8 @@ PokemonQuizScreen: ; $0172
db $01 ; number of strings to draw
dw $0029 ; offset into screen buffer
text_switch 10, wQuizQuestionNo, \
news_text_start
news_text_switch 10, wQuizQuestionNo, \
.question1Text, \
.question2Text, \
.question3Text, \
@ -228,16 +226,16 @@ PokemonQuizScreen: ; $0172
end
.menuItemAnswer1Text
db "1. @"
db "1ばん@"
.menuItemAnswer2Text
db "2. @"
db "2ばん@"
.menuItemAnswer3Text
db "3. @"
db "3ばん@"
.menuItemQuitText
db "QUIT@"
db "やめる@"
.menuItemAnswer1Script
incval wQuizQuestionNo, $01
@ -483,93 +481,92 @@ PokemonQuizScreen: ; $0172
db "@"
.question1Text
db "Who was in the"
next "middle #BALL at"
next "PROF.ELM's LAB?"
next "1. TOTODILE"
next "2. CYNDAQUIL"
next "3. CHIKORITA"
db "ウツギはかせ<GA>はじめに"
next "えらばせてくれた #"
next "まんなか<NI>いたのは?"
next ""
next "1.ワニノコ  2.チコりータ"
next "3.ヒノアラシ"
next "@"
.question2Text
db "What is inside"
next "the trash can"
next "next to PROF.ELM?"
next "1. LEFTOVERS"
next "2. JUICE BOTTLE"
next "3. SNACK WRAPPER"
db "ウツギはかせ<NO>よこに"
next "ある ごみばこに"
next "はい<TTE> いるのは?"
next ""
next "1.たべのこし 2.ジュースのびん"
next "3.おかしのふくろ"
next "@"
.question3Text
db "How many POTIONs"
next "did the DUDE who"
next "taught you to "
next "catch #MON have"
next "in his pack?"
next "1. 1 2. 2 3. 3"
db "#<NO>つかまえかたを"
next "おしえて くれる"
next "おにいさん<NO>りュックに"
next "きずくすり<WA>いくつ?"
next "1.1こ   2.2こ"
next "3.3こ"
next "@"
.question4Text
db "MOM's specialty"
next "dish is the"
next "CINNABAR VOLCANO ?"
next "1. BURGER"
next "2. CURRY"
next "3. NOODLES"
db "おかあさんの"
next "とくい りょうりは"
next "「グレンふう かざん ???」"
next "「???」<WA>なに?"
next "1.ハンバーグ  2.カレー"
next "3.やきそば"
next "@"
.question5Text
db "How many times"
next "does EARL spin"
next "from talking to"
next "him until he goes"
next "into the ACADEMY?"
next "1. 5 2. 6 3. 7"
db "ジョバンニせんせいは"
next "はなしかけてから"
next "じゅく<NI>はいるまで"
next "なんかい まわる?"
next "1.5かい   2.6かい"
next "3.7かい"
next "@"
.question6Text
db "Which of these"
next "items is not found"
next "in UNION CAVE?"
next "1. X ATTACK"
next "2. PARLYZ HEAL"
next "3. POTION"
db "つながりのどうくつに"
next "おちていない どうぐは?"
next ""
next "1.プラスパワー 2.まひなおし"
next "3.きずぐすり"
next "@"
.question7Text
db "What is the least"
next "amount of times"
next "you need to talk"
next "to FARFETCH'D to"
next "capture it?"
next "1. 3 2. 4 3. 5"
db "カモネギ<WO>つかまえるとき"
next "いちばん すくない てかずは"
next "なんかい カモネギに"
next "はなしかければ いい?"
next "1.3かい  2.4かい"
next "3.5かい"
next "@"
.question8Text
db "How many SLOWPOKE"
next "were in the cave"
next "when you rescued"
next "them at SLOWPOKE"
next "WELL?"
next "1. 2 2. 3 3. 4"
db "ヤドンのいどに"
next "ヤドン<WO>たすけ<NI>いったとき"
next "いど<NO>なか<NI>いるヤドンは"
next "なんひき だった?"
next "1.2ひき  2.3ひき"
next "3.4ひき"
next "@"
.question9Text
db "Which stop is the"
next "sea on the GUIDE"
next "GENT's tour around"
next "CHERRYGROVE CITY?"
next "1. 3rd 2. 4th "
next "3. 5th"
db "ヨシノシティ<NI>いる"
next "あんないじいさんは"
next "うみ <WO>なんばんめに"
next "あんない してくれる?"
next "1.3ばんめ  2.4ばんめ"
next "3.5ばんめ"
next "@"
.question10Text
db "Which of these"
next "foreign items is"
next "not found in MR."
next "#MON's HOUSE?"
next "1. COIN 2. STAMP"
next "3. MAGAZINE"
db "#じいさん<NO>いえに"
next "がいこく<NO>ものが"
next "あるけど このなかで"
next "ない ものは?"
next "1.コイン  2.き<TTE>"
next "3.ざっし"
next "@"
@ -591,10 +588,10 @@ QuizScoreEvaluationScreen: ; $0677
db $00, $00 ; offset into screen buffer
db "@" ; string
db $02, $0A ; menu x, y ; $04, $0A ; Needs to be updated with PROF.OAK's REPORT
db $04, $0A ; menu x, y
db $01, $01 ; number of columns, rows
db $00, $00 ; column width, row height
db $01, $00, $00, $00, $02, $01 ; $03, $00, $00, $00, $02, $01 PROF OAK's REPORT location
db $03, $00, $00, $00, $02, $01 ; ?
relativepointer .aButton ; script pointer a button
relativepointer .aButton ; script pointer b button
@ -606,7 +603,7 @@ QuizScoreEvaluationScreen: ; $0677
dw $FFFF ; script pointer down button
db $01 ; number of menu items
db $19, $01 ; screen buffer offset to print menu descriptions
dw $0119 ; screen buffer offset to print menu descriptions
db $12, $04 ; width, height of blanked area
db $00 ; load rankings table flag (table number should be specfied in 0:CD62)
@ -627,7 +624,7 @@ QuizScoreEvaluationScreen: ; $0677
end
.menuItemText
db "PROF.OAK's REPORT@"
db "オーキドはかせの ひょうか@"
.menuItemScript
cmpval wQuizScore, .scorelow, .scorelow, .greater, $01, $05
@ -673,63 +670,43 @@ QuizScoreEvaluationScreen: ; $0677
end
.menuItemDescription
db "Take the quiz to"
line "receive a rating!@"
db "クイズ しゅうりょう"
line "ひょうか<WO>うけて ください!@"
.textScoreLow
text "You still have"
line "lots to do."
para "It's not enough to"
line "memorize things."
para "#MANIACs can"
line "memorize things"
cont "they don't even"
cont "need to remember!"
text "ぜんぜん まだまだ じゃな"
line "これ<WA>おぼえてなくても いいだろう"
cont "というような ことまで おぼえるのが"
cont "#マニアと いうものじゃ"
done
.textScoreAverage
text "Not quite…"
line "#MANIACs have a"
cont "lot more passion!"
text "#マニア<NI>して<WA>まだ"
line "ボりューム<GA>たりん!"
para "Be sure to look in"
line "every nook and"
cont "cranny!"
para "いろいろな ものを"
line "むだでも くまなく みるのじゃ!"
done
.textScoreGood
text "Hmm…"
line "You're really"
text "ふむ がんば<TTE>おるな"
line "それなり<NI>#マニア"
cont "らしく な<TTE>きておるよ!"
para "starting to earn"
line "the title of"
cont "#MANIAC!"
para "Are you talking"
line "with your friends?"
para "It's tough to"
line "do this alone!"
para "ともだちと そうだん しているかな?"
line "ひとりで<WA>たいへん だからな"
done
.textScoreGreat
text "Excellent! You"
line "really like to"
para "poke around in"
line "those nooks and"
cont "crannies, don't"
cont "you?"
text "エクセレントじゃ!"
line "きみ<WA>じゅうばこ<NO>すみを"
cont "つつくの<GA>すき なんじゃろ?"
done
.textScoreBest
text "Whoa! A perfect"
line "#MANIAC! I've"
para "dreamt about this!"
line "Congratulations!"
text "おおっ ゆめにまで みた"
line "パーフェクトな #マニアの"
cont "かんせいじゃ! <……> おめでとう!"
done
@ -754,8 +731,8 @@ TrainerRankingsScreen: ; $0857
db $04 ; palette
db $01 ; number of strings to draw
db $29, $00 ; offset into screen buffer
db "TRAINER RANKINGS@" ; string
dw $0029 ; offset into screen buffer
db "トレーナーランキング@" ; string
db $02, $05 ; menu x, y
db $01, $04 ; number of columns, rows
@ -772,7 +749,7 @@ TrainerRankingsScreen: ; $0857
relativepointer .downButton ; script pointer down button
db $04 ; number of menu items
db $19, $01 ; screen buffer offset to print menu descriptions
dw $0119 ; screen buffer offset to print menu descriptions
db $12, $04 ; width, height of blanked area
db $00 ; load rankings table flag (table number should be specfied in 0:CD62)
@ -811,16 +788,16 @@ TrainerRankingsScreen: ; $0857
end
.menuItemViewRankingsText
db "VIEW RANKINGS@"
db "ランキング <WO>みる@"
.menuItemUpdateRankingsText
db "UPDATE RANKINGS@"
db "ランキング <NO>こうしん@"
.menuItemRankingsDescriptionText
db "RANKING INFO@"
db "ランキング <NO>せつめい@"
.menuItemReturnText
db "CANCEL@"
db "やめる@"
.menuItemViewRankingsScript
cmpvalram sNewsId, $0C, sNewsIdBackup, .noRankingsData, .continueToCategoriesScreen, .noRankingsData
@ -857,21 +834,21 @@ TrainerRankingsScreen: ; $0857
end
.rankingsUpdatedText
text "Rankings update"
line "was successful!"
text "ランキング<NO>こうしんを"
line "しました!"
done
.rankingsUpdateCancelledText
text "Rankings update"
line "was stopped."
text "ランキング<NO>こうしんを"
line "やめました"
done
.rankingsUpdateFailedText
text "Rankings update"
line "has failed…"
text "ランキング<NO>こうしんに"
line "しっぱい⋯"
para "Please download"
line "the latest NEWS."
para "あたらしい ニュースを"
line "よみこんで ください"
done
.menuItemRankingsDescriptionScript
@ -885,61 +862,46 @@ TrainerRankingsScreen: ; $0857
end
.rankingsDescriptionText
text "BATTLE TOWER"
line ""
text "バトルタワーで かった かいすうは"
line "40ばんどうろ<NO>バトルタワーで"
cont "あなた<GA>これまで<NI>なんにんの"
cont "<TRAINER>と<NO>しょうぶ<NI>かったか"
cont "にんずうで きそいます"
para "The number of"
line "#MON battles"
cont "won against other"
cont "<TRAINER>S at the"
cont "BATTLE TOWER on"
cont "ROUTE 40."
para "コイキング<NO>おおきさは"
line "いかりのみずうみ<NI>いる"
cont "つりめいじん<NI>はか<TTE>もらった"
cont "コイキング<NO>うち いちばん"
cont "おおきかった もので きそいます"
para "LARGEST MAGIKARP"
line ""
para "The size of the"
line "largest MAGIKARP"
cont "measured by the"
cont "FISHING GURU at"
cont "the LAKE OF RAGE."
para "BUG-CATCHING"
line ""
para "The highest score"
line "obtained at the"
cont "BUG-CATCHING Con-"
cont "test held in the"
cont "NATIONAL PARK."
para "むしとりたいかい こうとくてんは"
line "しぜんこうえんで おこなわれる"
cont "むしとりたいかいで これまでに"
cont "とった いちばん たかい"
cont "てんすうで きそいます"
done
.noRankingsDataText
text "There is no"
line "ranking data."
para "Link to obtain"
line "ranking data."
text "ランキングデータ<PKMN>ありません"
line "ランキング<NO>こうしん<WO>すれば"
cont "みること<GA>できます"
para ""
line ""
done
.menuItemViewRankingsDescription
db "View the various"
line "rankings@"
db "いろいろな ランキングが"
line "みれます@"
.menuItemUpdateRankingsDescription
db "Reload rankings to"
line "update your scores@"
db "ランキング<WO>よみこみなおします"
line "あなた<NO>せいせきも かわります@"
.menuItemRankingsDescriptionDescription
db "An explanation of"
line "the ranking themes@"
db "こんかい<NO>ランキングの"
line "テーマ<NI>ついて せつめいします@"
.menuItemReturnDescription
db "Return to the"
line "first page@"
db "さいしょ<NO>ぺージ<NI>もどります@"
TrainerRankingsCategoriesScreen: ; $0AF2
@ -963,8 +925,8 @@ TrainerRankingsCategoriesScreen: ; $0AF2
db $04 ; palette
db $01 ; number of strings to draw
db $29, $00 ; offset into screen buffer
db "TRAINER RANKINGS@" ; string
dw $0029 ; offset into screen buffer
db "トレーナーランキング@" ; string
db $02, $05 ; menu x, y
db $01, $04 ; number of columns, rows
@ -981,7 +943,7 @@ TrainerRankingsCategoriesScreen: ; $0AF2
relativepointer .downButton ; script pointer down button
db $04 ; number of menu items
db $19, $01 ; screen buffer offset to print menu descriptions
dw $0119 ; screen buffer offset to print menu descriptions
db $12, $04 ; width, height of blanked area
db $00 ; load rankings table flag (table number should be specfied in 0:CD62)
@ -1024,16 +986,16 @@ TrainerRankingsCategoriesScreen: ; $0AF2
end
.menuItemBattleTowerWinsText
db "BATTLE TOWER@"
db "バトルタワーで かった かいすう@"
.menuItemBugCatchingContestHighScoreText
db "BUG-CATCHING@"
db "むしとりたいかい こうとくてん@"
.menuItemLargestMagikarpText
db "LARGEST MAGIKARP@"
db "つった コイキング<NO>おおきさ@"
.menuItemReturnText
db "CANCEL@"
db "もどる@"
.menuItemBattleTowerWinsScript
setval wRankingsTable, $00
@ -1054,8 +1016,8 @@ TrainerRankingsCategoriesScreen: ; $0AF2
end
.menuItemDescription
db "Please choose a"
line "ranking to view@"
db "みたい ランキングを"
line "えらんで ください@"
TrainerRankingsTypeScreen: ; $0BC4
@ -1079,8 +1041,9 @@ TrainerRankingsTypeScreen: ; $0BC4
db $04 ; palette
db $01 ; number of strings to draw
db $29, $00 ; offset into screen buffer
text_switch $03, wRankingsCategory, .battleTowerWinsText, .bugCatchingContestHighScoreText, .largestMagikarpText
dw $0029 ; offset into screen buffer
news_text_start
news_text_switch 3, wRankingsCategory, .battleTowerWinsText, .bugCatchingContestHighScoreText, .largestMagikarpText
db "@"
db $02, $05 ; menu x, y
@ -1098,7 +1061,7 @@ TrainerRankingsTypeScreen: ; $0BC4
relativepointer .downButton ; script pointer down button
db $04 ; number of menu items
db $19, $01 ; screen buffer offset to print menu descriptions
dw $0119 ; screen buffer offset to print menu descriptions
db $12, $04 ; width, height of blanked area
db $00 ; load rankings table flag (table number should be specfied in 0:CD62)
@ -1139,18 +1102,23 @@ TrainerRankingsTypeScreen: ; $0BC4
end
.menuItemNationalRankingText
db "NATIONAL RANKINGS@"
db "ぜんこく <NO>ランキング@"
.menuItemPrefecturalRankingText
text_prefecture $80
db " RANKINGS@"
news_text_start
news_text_own_region_backup 0
news_text_end
db " <NO>ランキング@"
.menuItemZipCodeRankingText
text_zip $83
db " RANKINGS@"
db "■"
news_text_start
news_text_own_zip_backup 3
news_text_end
db " <NO>ランキング@"
.menuItemReturnText
db "CANCEL@"
db "もどる@"
.menuItemNationalRankingScript
setval wRankingsType, $00
@ -1177,17 +1145,17 @@ TrainerRankingsTypeScreen: ; $0BC4
end
.menuItemDescription
db "Choose an area to"
line "view the rankings@"
db "みたい ちいき を"
line "えらんで ください@"
.battleTowerWinsText
db "BATTLE TOWER@"
db "バトルタワーで かった かいすう@"
.bugCatchingContestHighScoreText
db "BUG-CATCHING@"
db "むしとりたいかい こうとくてん@"
.largestMagikarpText
db "LARGEST MAGIKARP@"
db "つった コイキング<NO>おおきさ@"
TrainerRankingsRankingsScreen: ; $0CBD
@ -1212,10 +1180,12 @@ TrainerRankingsRankingsScreen: ; $0CBD
db $02 ; number of strings to draw
dw $0029 ; offset into screen buffer
text_switch $03, wRankingsCategory, .headerText1, .headerText2, .headerText3
news_text_start
news_text_switch 3, wRankingsCategory, .headerText1, .headerText2, .headerText3
db "@"
dw $0066 ; offset into screen buffer
text_switch $03, wRankingsType, .headerText4, .headerText5, .headerText6
news_text_start
news_text_switch 3, wRankingsType, .headerText4, .headerText5, .headerText6
db "@"
db $02, $07 ; menu x, y
@ -1301,33 +1271,39 @@ TrainerRankingsRankingsScreen: ; $0CBD
end
.rankingsEntryText
text_switch $03, wRankingsCategory, .rankingsEntryBattleTowerWinsText, .rankingsEntryBugCatchingContestHighScoreText, .rankingsEntryLargestMagikarpText
db "@"
news_text_start
news_text_switch 3, wRankingsCategory, .rankingsEntryBattleTowerWinsText, .rankingsEntryBugCatchingContestHighScoreText, .rankingsEntryLargestMagikarpText
news_text_end
.rankingsEntryBattleTowerWinsText
db $15
db $08
db $02, $03, $02, $00, $00, $06, $06, $01, $18, $00, $02, $05, $05, $00, $00
db $50
db "@"
news_text_start
news_text_ranking_indicator 3
news_text_ranking_text 0, 6, 6
news_text_ranking_number 24, 2, 5, 5, 0, 0
news_text_end
db "かい@"
.rankingsEntryBugCatchingContestHighScoreText
db $15
db $08
db $02, $03, $02, $00, $00, $06, $06, $01, $18, $00, $02, $05, $05, $00, $00
db $50
db "@"
news_text_start
news_text_ranking_indicator 3
news_text_ranking_text 0, 6, 6
news_text_ranking_number 24, 2, 5, 5, 0, 0
news_text_end
db "てん@"
.rankingsEntryLargestMagikarpText
db $15
db $08
db $02, $03, $02, $00, $00, $06, $06, $01, $18, $00, $82, $04, $05, $04, $F2
db $50
db "@"
news_text_start
news_text_ranking_indicator 3
news_text_ranking_text 0, 6, 6
news_text_ranking_number 24, 2 | PRINTNUM_LEADINGZEROS, 4, 5, 4, "<DOT>"
news_text_end
db "センチ@"
.ownRankText
text_playername $00
db "'s RANK: @"
news_text_start
news_text_own_name 0
news_text_end
db " <NO>じゅんい@"
.rankingsEntryScript
cmpvalram wcd22, $01, wcd5c, .somebodyRankedHere, .nobodyRankedHere, .nobodyRankedHere
@ -1345,8 +1321,8 @@ TrainerRankingsRankingsScreen: ; $0CBD
end
.nobodyRankedHereText
db "No one is"
next "ranked here."
db "ここに<WA>だれも"
next "ランクイン してません"
para "@"
.ownRankScript
@ -1376,127 +1352,119 @@ TrainerRankingsRankingsScreen: ; $0CBD
end
.giftText
text "For receiving a"
next "such a high rank,"
para "we have a nice"
line "gift for you."
cont "Enjoy!"
text "ランキングで トップ<WO>とった"
next "あなたに⋯"
cont "すてきな プレゼント<PKMN>あります"
cont "おたのしみに!"
done
.rankedPlayerInfoText
db $15
db $06
db $0B, $00, $04, $01, $0A, $00, $01, $03, $04, $00, $00
db $50
db ""
db $15
db $04
db $07, $00, $07
db $50
news_text_start
news_text_ranking_gender 11, 4
news_text_ranking_number 10, 1, 3, 4, 0, 0
news_text_end
db "さい "
news_text_start
news_text_ranking_region 7, 7
news_text_end
para "@"
.rankedPlayerMessage
text_easychat $000C
news_text_start
news_text_ranking_message 12
news_text_end
para "@"
.playerRankedText
text_switch $03, wRankingsCategory, .ownBattleTowerWinsText, .ownBugCatchingContestHighScoreText, .ownLargestMagikarpText
text_playername $00
db "'s RANK is…"
news_text_start
news_text_switch 3, wRankingsCategory, .ownBattleTowerWinsText, .ownBugCatchingContestHighScoreText, .ownLargestMagikarpText
news_text_start
news_text_own_name 0
news_text_end
db " <NO>じゅんいは⋯"
para ""
db $15
db $0F
db BANK(wOwnRank)
dw wOwnRank
db $04, $04, $04, $00, $00
db $50
db "!"
line "Congratulations!"
news_text_start
news_text_number wOwnRank, 4, 4, 4, 0, 0
news_text_end
db " ばん <NI>ランクイン!"
line "おめでとう!"
para "@"
.playerNotRankedText
text_switch $03, wRankingsCategory, .ownBattleTowerWinsText, .ownBugCatchingContestHighScoreText, .ownLargestMagikarpText
text_playername $00
db "'s RANK is…"
para "Not currently in"
line "the rankings."
news_text_start
news_text_switch 3, wRankingsCategory, .ownBattleTowerWinsText, .ownBugCatchingContestHighScoreText, .ownLargestMagikarpText
news_text_start
news_text_own_name 0
news_text_end
db " <NO>じゅんいは⋯"
para "ランクイン しなかった⋯"
line "ざんねん⋯"
para "@"
.ownBattleTowerWinsText
text_playername $00
db "'s SCORE:"
news_text_start
news_text_own_name 0
news_text_end
db " <NO>せいせきは"
line ""
db $15
db $0F
db BANK(sNumBattleTowerWins)
dw sNumBattleTowerWins
db $02
db $05
db $05
db $00
db $00
db $50
db " points"
news_text_start
news_text_number sNumBattleTowerWins, 2, 5, 5, 0, 0
news_text_end
db "かい"
para "@"
.ownBugCatchingContestHighScoreText
text_playername $00
db "'s SCORE:"
news_text_start
news_text_own_name 0
news_text_end
db " <NO>せいせきは"
line ""
db $15
db $0F
db BANK(sBugContestHighscore)
dw sBugContestHighscore
db $02
db $05
db $05
db $00
db $00
db $50
db " points"
news_text_start
news_text_number sBugContestHighscore, 2, 5, 5, 0, 0
news_text_end
db "てん"
para "@"
.ownLargestMagikarpText
text_playername $00
db "'s SCORE:"
news_text_start
news_text_own_name 0
news_text_end
db " <NO>せいせきは"
line ""
db $15
db $0F
db BANK(sLargestMagikarp)
dw sLargestMagikarp
db $82
db $04
db $05
db $04
db $F2
db $50
db " cm"
news_text_start
news_text_number sLargestMagikarp, 2 | PRINTNUM_LEADINGZEROS, 4, 5, 4, "<DOT>"
news_text_end
db "センチ"
para "@"
.menuItemDescription
db "View the profile"
line "of this TRAINER.@"
db "えらんだ ひと<NO>プロフィールを"
line "みること<GA>できます@"
.headerText1
db "BATTLE TOWER@"
db "バトルタワーで かった かいすう@"
.headerText2
db "BUG-CATCHING@"
db "むしとりたいかい こうとくてん@"
.headerText3
db "LARGEST MAGIKARP@"
db "つった コイキング<NO>おおきさ@"
.headerText4
db "NATIONAL TOP 10!@"
db "ぜんこく <NO>トップ10!@"
.headerText5
text_prefecture $80
db " TOP 10!@"
news_text_start
news_text_own_region_backup 0
news_text_end
db " <NO>トップ10!@"
.headerText6
text_zip $83
db " TOP 10!@"
db "■"
news_text_start
news_text_own_zip_backup 3
news_text_end
db " <NO>トップ10!@"
db $04 ; whatever this is supposed to be

1509
news_en/first_issue_en.asm Normal file

File diff suppressed because it is too large Load Diff

418
pokecrystal/charmap_int.asm Normal file
View File

@ -0,0 +1,418 @@
; $00-$16 are TX_* constants (see macros/scripts/text.asm)
; Control characters (see home/text.asm)
charmap "<NULL>", $00
charmap "<PLAY_G>", $14 ; "<PLAYER>くん" or "<PLAYER>ちゃん"; same as "<PLAYER>" in English
charmap "<MOBILE>", $15
charmap "<CR>", $16
charmap "¯", $1f ; soft linebreak
charmap "<LF>", $22
charmap "<POKE>", $24 ; "<PO><KE>"
charmap "%", $25 ; soft linebreak in landmark names
charmap "<RED>", $38 ; wRedsName
charmap "<GREEN>", $39 ; wGreensName
charmap "<ENEMY>", $3f
charmap "<MOM>", $49 ; wMomsName
charmap "<PKMN>", $4a ; "<PK><MN>"
charmap "<_CONT>", $4b ; implements "<CONT>"
charmap "<SCROLL>", $4c
charmap "<NEXT>", $4e
charmap "<LINE>", $4f
charmap "@", $50 ; string terminator
charmap "<PARA>", $51
charmap "<PLAYER>", $52 ; wPlayerName
charmap "<RIVAL>", $53 ; wRivalName
charmap "#", $54 ; "POKé"
charmap "<CONT>", $55
charmap "<……>", $56 ; "……"
charmap "<DONE>", $57
charmap "<PROMPT>", $58
charmap "<TARGET>", $59
charmap "<USER>", $5a
charmap "<PC>", $5b ; "PC"
charmap "<TM>", $5c ; "TM"
charmap "<TRAINER>", $5d ; "TRAINER"
charmap "<ROCKET>", $5e ; "ROCKET"
charmap "<DEXEND>", $5f
; Actual characters (from gfx/font/font_extra.png)
charmap "<BOLD_A>", $60 ; unused
charmap "<BOLD_B>", $61 ; unused
charmap "<BOLD_C>", $62 ; unused
charmap "<BOLD_D>", $63 ; unused
charmap "<BOLD_E>", $64 ; unused
charmap "<BOLD_F>", $65 ; unused
charmap "<BOLD_G>", $66 ; unused
charmap "<BOLD_H>", $67 ; unused
charmap "<BOLD_I>", $68 ; unused
charmap "<BOLD_V>", $69
charmap "<BOLD_S>", $6a
charmap "<BOLD_L>", $6b ; unused
charmap "<BOLD_M>", $6c ; unused
charmap "<COLON>", $6d ; colon with tinier dots than ":"
charmap "ぃ", $6e ; hiragana small i, unused
charmap "ぅ", $6f ; hiragana small u, unused
charmap "<PO>", $70
charmap "<KE>", $71
charmap "“", $72 ; opening quote
charmap "”", $73 ; closing quote
charmap "·", $74 ; middle dot, unused
charmap "…", $75 ; ellipsis
charmap "ぁ", $76 ; hiragana small a, unused
charmap "ぇ", $77 ; hiragana small e, unused
charmap "ぉ", $78 ; hiragana small o, unused
charmap "┌", $79
charmap "─", $7a
charmap "┐", $7b
charmap "│", $7c
charmap "└", $7d
charmap "┘", $7e
charmap " ", $7f
; Actual characters (from gfx/font/font_battle_extra.png)
charmap "<LV>", $6e
charmap "<DO>", $70 ; hiragana small do, unused
charmap "◀", $71
charmap "『", $72 ; Japanese opening quote, unused
charmap "<ID>", $73
charmap "№", $74
; Actual characters (from other graphics files)
; needed for _LoadFontsExtra1 (see engine/load_font.asm)
charmap "■", $60 ; gfx/font/black.2bpp
charmap "▲", $61 ; gfx/font/up_arrow.png
charmap "☎", $62 ; gfx/font/phone_icon.2bpp
; needed for MagikarpHouseSign (see engine/events/magikarp.asm)
charmap "", $6e ; gfx/font/feet_inches.png
charmap "″", $6f ; gfx/font/feet_inches.png
; needed for StatsScreen_PlaceShinyIcon and PrintPartyMonPage1
charmap "⁂", $3f ; gfx/stats/stats_tiles.png, tile 14
; Actual characters (from gfx/font/font.png)
charmap "A", $80
charmap "B", $81
charmap "C", $82
charmap "D", $83
charmap "E", $84
charmap "F", $85
charmap "G", $86
charmap "H", $87
charmap "I", $88
charmap "J", $89
charmap "K", $8a
charmap "L", $8b
charmap "M", $8c
charmap "N", $8d
charmap "O", $8e
charmap "P", $8f
charmap "Q", $90
charmap "R", $91
charmap "S", $92
charmap "T", $93
charmap "U", $94
charmap "V", $95
charmap "W", $96
charmap "X", $97
charmap "Y", $98
charmap "Z", $99
charmap "(", $9a
charmap ")", $9b
charmap ":", $9c
charmap ";", $9d
charmap "[", $9e
charmap "]", $9f
charmap "a", $a0
charmap "b", $a1
charmap "c", $a2
charmap "d", $a3
charmap "e", $a4
charmap "f", $a5
charmap "g", $a6
charmap "h", $a7
charmap "i", $a8
charmap "j", $a9
charmap "k", $aa
charmap "l", $ab
charmap "m", $ac
charmap "n", $ad
charmap "o", $ae
charmap "p", $af
charmap "q", $b0
charmap "r", $b1
charmap "s", $b2
charmap "t", $b3
charmap "u", $b4
charmap "v", $b5
charmap "w", $b6
charmap "x", $b7
charmap "y", $b8
charmap "z", $b9
charmap "Ä", $c0
charmap "Ö", $c1
charmap "Ü", $c2
charmap "ä", $c3
charmap "ö", $c4
charmap "ü", $c5
charmap "'d", $d0
charmap "'l", $d1
charmap "'m", $d2
charmap "'r", $d3
charmap "'s", $d4
charmap "'t", $d5
charmap "'v", $d6
charmap "←", $df
charmap "'", $e0
charmap "<PK>", $e1
charmap "<MN>", $e2
charmap "-", $e3
charmap "?", $e6
charmap "!", $e7
charmap ".", $e8
charmap "&", $e9
charmap "é", $ea
charmap "→", $eb
charmap "▷", $ec
charmap "▶", $ed
charmap "▼", $ee
charmap "♂", $ef
charmap "¥", $f0
charmap "×", $f1
charmap "<DOT>", $f2 ; decimal point; same as "." in English
charmap "/", $f3
charmap ",", $f4
charmap "♀", $f5
charmap "0", $f6
charmap "1", $f7
charmap "2", $f8
charmap "3", $f9
charmap "4", $fa
charmap "5", $fb
charmap "6", $fc
charmap "7", $fd
charmap "8", $fe
charmap "9", $ff
; Japanese control characters (see home/text.asm)
charmap "<JP_18>", $18 ; "ノ゛"? (ungrammatical)
charmap "<NI>", $1d ; "に "
charmap "<TTE>", $1e ; "って"
charmap "<WO>", $1f ; "を "
charmap "<TA!>", $22 ; "た!"
charmap "<KOUGEKI>", $23 ; "こうげき"
charmap "<WA>", $24 ; "は "
charmap "<NO>", $25 ; "の "
charmap "<ROUTE>", $35 ; "ばん どうろ"
charmap "<WATASHI>", $36 ; "わたし"
charmap "<KOKO_WA>", $37 ; "ここは"
charmap "<GA>", $4a ; "が "
; Japanese kana, for those bits of text that were not translated to English
charmap "ガ", $05
charmap "ギ", $06
charmap "グ", $07
charmap "ゲ", $08
charmap "ゴ", $09
charmap "ザ", $0a
charmap "ジ", $0b
charmap "ズ", $0c
charmap "ゼ", $0d
charmap "ゾ", $0e
charmap "ダ", $0f
charmap "ヂ", $10
charmap "ヅ", $11
charmap "デ", $12
charmap "ド", $13
charmap "バ", $19
charmap "ビ", $1a
charmap "ブ", $1b
charmap "ボ", $1c
charmap "が", $26
charmap "ぎ", $27
charmap "ぐ", $28
charmap "げ", $29
charmap "ご", $2a
charmap "ざ", $2b
charmap "じ", $2c
charmap "ず", $2d
charmap "ぜ", $2e
charmap "ぞ", $2f
charmap "だ", $30
charmap "ぢ", $31
charmap "づ", $32
charmap "で", $33
charmap "ど", $34
charmap "ば", $3a
charmap "び", $3b
charmap "ぶ", $3c
charmap "べ", $3d
charmap "ぼ", $3e
charmap "パ", $40
charmap "ピ", $41
charmap "プ", $42
charmap "ポ", $43
charmap "ぱ", $44
charmap "ぴ", $45
charmap "ぷ", $46
charmap "ぺ", $47
charmap "ぽ", $48
charmap "「", $70
charmap "」", $71
charmap "』", $73
charmap "⋯", $75
charmap " ", $7f
charmap "ア", $80
charmap "イ", $81
charmap "ウ", $82
charmap "エ", $83
charmap "オ", $84
charmap "カ", $85
charmap "キ", $86
charmap "ク", $87
charmap "ケ", $88
charmap "コ", $89
charmap "サ", $8a
charmap "シ", $8b
charmap "ス", $8c
charmap "セ", $8d
charmap "ソ", $8e
charmap "タ", $8f
charmap "チ", $90
charmap "ツ", $91
charmap "テ", $92
charmap "ト", $93
charmap "ナ", $94
charmap "ニ", $95
charmap "ヌ", $96
charmap "ネ", $97
charmap "", $98
charmap "ハ", $99
charmap "ヒ", $9a
charmap "フ", $9b
charmap "ホ", $9c
charmap "マ", $9d
charmap "ミ", $9e
charmap "ム", $9f
charmap "メ", $a0
charmap "モ", $a1
charmap "ヤ", $a2
charmap "ユ", $a3
charmap "ヨ", $a4
charmap "ラ", $a5
charmap "ル", $a6
charmap "レ", $a7
charmap "ロ", $a8
charmap "ワ", $a9
charmap "ヲ", $aa
charmap "ン", $ab
charmap "ッ", $ac
charmap "ャ", $ad
charmap "ュ", $ae
charmap "ョ", $af
charmap "ィ", $b0
charmap "あ", $b1
charmap "い", $b2
charmap "う", $b3
charmap "え", $b4
charmap "お", $b5
charmap "か", $b6
charmap "き", $b7
charmap "く", $b8
charmap "け", $b9
charmap "こ", $ba
charmap "さ", $bb
charmap "し", $bc
charmap "す", $bd
charmap "せ", $be
charmap "そ", $bf
charmap "た", $c0
charmap "ち", $c1
charmap "つ", $c2
charmap "て", $c3
charmap "と", $c4
charmap "な", $c5
charmap "に", $c6
charmap "ぬ", $c7
charmap "ね", $c8
charmap "の", $c9
charmap "は", $ca
charmap "ひ", $cb
charmap "ふ", $cc
charmap "へ", $cd
charmap "ほ", $ce
charmap "ま", $cf
charmap "み", $d0
charmap "む", $d1
charmap "め", $d2
charmap "も", $d3
charmap "や", $d4
charmap "ゆ", $d5
charmap "よ", $d6
charmap "ら", $d7
charmap "り", $d8
charmap "る", $d9
charmap "れ", $da
charmap "ろ", $db
charmap "わ", $dc
charmap "を", $dd
charmap "ん", $de
charmap "っ", $df
charmap "ゃ", $e0
charmap "ゅ", $e1
charmap "ょ", $e2
charmap "ー", $e3
charmap "゚", $e4
charmap "゙", $e5
charmap "", $e6
charmap "", $e7
charmap "。", $e8
charmap "ァ", $e9
charmap "ゥ", $ea
charmap "ェ", $eb
charmap "円", $f0
charmap "", $f2
charmap "", $f3
charmap "ォ", $f4
charmap "", $f6
charmap "", $f7
charmap "", $f8
charmap "", $f9
charmap "", $fa
charmap "", $fb
charmap "", $fc
charmap "", $fd
charmap "", $fe
charmap "", $ff

View File

@ -1,5 +1,8 @@
IF DEF(_NEWS_EN)
INCLUDE "pokecrystal/charmap_int.asm"
ELSE
INCLUDE "pokecrystal/charmap.asm"
ENDC
INCLUDE "pokecrystal/macros.asm"
INCLUDE "pokecrystal/constants/hardware_constants.asm"
@ -12,15 +15,12 @@ INCLUDE "pokecrystal/constants/text_constants.asm"
INCLUDE "pokecrystal/constants/audio_constants.asm"
INCLUDE "pokecrystal/constants/battle_anim_constants.asm"
INCLUDE "pokecrystal/constants/battle_constants.asm"
INCLUDE "pokecrystal/constants/battle_tower_constants.asm"
INCLUDE "pokecrystal/constants/collision_constants.asm"
INCLUDE "pokecrystal/constants/credits_constants.asm"
INCLUDE "pokecrystal/constants/cry_constants.asm"
INCLUDE "pokecrystal/constants/engine_flags.asm"
INCLUDE "pokecrystal/constants/event_flags.asm"
INCLUDE "pokecrystal/constants/icon_constants.asm"
INCLUDE "pokecrystal/constants/item_constants.asm"
INCLUDE "pokecrystal/constants/item_data_constants.asm"
INCLUDE "pokecrystal/constants/landmark_constants.asm"
INCLUDE "pokecrystal/constants/map_constants.asm"
INCLUDE "pokecrystal/constants/map_data_constants.asm"
@ -28,26 +28,27 @@ INCLUDE "pokecrystal/constants/map_object_constants.asm"
INCLUDE "pokecrystal/constants/map_setup_constants.asm"
INCLUDE "pokecrystal/constants/mart_constants.asm"
INCLUDE "pokecrystal/constants/menu_constants.asm"
INCLUDE "pokecrystal/constants/mobile_constants.asm"
INCLUDE "pokecrystal/constants/move_constants.asm"
INCLUDE "pokecrystal/constants/move_effect_constants.asm"
INCLUDE "pokecrystal/constants/item_constants.asm"
INCLUDE "pokecrystal/constants/item_data_constants.asm"
INCLUDE "pokecrystal/constants/music_constants.asm"
INCLUDE "pokecrystal/constants/npc_trade_constants.asm"
INCLUDE "pokecrystal/constants/phone_constants.asm"
INCLUDE "pokecrystal/constants/pokemon_constants.asm"
INCLUDE "pokecrystal/constants/pokemon_data_constants.asm"
INCLUDE "pokecrystal/constants/mobile_constants.asm"
INCLUDE "pokecrystal/constants/printer_constants.asm"
INCLUDE "pokecrystal/constants/radio_constants.asm"
INCLUDE "pokecrystal/constants/scgb_constants.asm"
INCLUDE "pokecrystal/constants/scene_constants.asm"
INCLUDE "pokecrystal/constants/script_constants.asm"
INCLUDE "pokecrystal/constants/serial_constants.asm"
INCLUDE "pokecrystal/constants/sfx_constants.asm"
INCLUDE "pokecrystal/constants/sprite_anim_constants.asm"
INCLUDE "pokecrystal/constants/sprite_constants.asm"
INCLUDE "pokecrystal/constants/sprite_data_constants.asm"
INCLUDE "pokecrystal/constants/std_constants.asm"
INCLUDE "pokecrystal/constants/tileset_constants.asm"
INCLUDE "pokecrystal/constants/trainer_constants.asm"
INCLUDE "pokecrystal/constants/trainer_data_constants.asm"
INCLUDE "pokecrystal/constants/type_constants.asm"
INCLUDE "pokecrystal/constants/battle_tower_constants.asm"

View File

@ -1,7 +1,6 @@
; pitch
; FrequencyTable indexes (see audio/notes.asm)
const_def
const __ ; 0
const_def 1
const C_ ; 1
const C# ; 2
const D_ ; 3
@ -14,7 +13,7 @@
const A_ ; a
const A# ; b
const B_ ; c
const CC ; d (used for pitchoffset)
DEF NUM_NOTES EQU const_value - 1
; channel
; ChannelPointers indexes (see audio/engine.asm)
@ -23,55 +22,60 @@
const CHAN2 ; 1
const CHAN3 ; 2
const CHAN4 ; 3
NUM_MUSIC_CHANS EQU const_value
DEF NUM_MUSIC_CHANS EQU const_value
const CHAN5 ; 4
const CHAN6 ; 5
const CHAN7 ; 6
const CHAN8 ; 7
NUM_NOISE_CHANS EQU const_value - NUM_MUSIC_CHANS
NUM_CHANNELS EQU const_value
DEF NUM_NOISE_CHANS EQU const_value - NUM_MUSIC_CHANS
DEF NUM_CHANNELS EQU const_value
; channel_struct members (see macros/wram.asm)
CHANNEL_MUSIC_ID EQUS "(wChannel1MusicID - wChannel1)"
CHANNEL_MUSIC_BANK EQUS "(wChannel1MusicBank - wChannel1)"
CHANNEL_FLAGS1 EQUS "(wChannel1Flags1 - wChannel1)"
CHANNEL_FLAGS2 EQUS "(wChannel1Flags2 - wChannel1)"
CHANNEL_FLAGS3 EQUS "(wChannel1Flags3 - wChannel1)"
CHANNEL_MUSIC_ADDRESS EQUS "(wChannel1MusicAddress - wChannel1)"
CHANNEL_LAST_MUSIC_ADDRESS EQUS "(wChannel1LastMusicAddress - wChannel1)"
CHANNEL_NOTE_FLAGS EQUS "(wChannel1NoteFlags - wChannel1)"
CHANNEL_CONDITION EQUS "(wChannel1Condition - wChannel1)"
CHANNEL_DUTY_CYCLE EQUS "(wChannel1DutyCycle - wChannel1)"
CHANNEL_INTENSITY EQUS "(wChannel1Intensity - wChannel1)"
CHANNEL_FREQUENCY EQUS "(wChannel1Frequency - wChannel1)"
CHANNEL_PITCH EQUS "(wChannel1Pitch - wChannel1)"
CHANNEL_OCTAVE EQUS "(wChannel1Octave - wChannel1)"
CHANNEL_PITCH_OFFSET EQUS "(wChannel1PitchOffset - wChannel1)"
CHANNEL_NOTE_DURATION EQUS "(wChannel1NoteDuration - wChannel1)"
CHANNEL_FIELD16 EQUS "(wChannel1Field16 - wChannel1)"
CHANNEL_LOOP_COUNT EQUS "(wChannel1LoopCount - wChannel1)"
CHANNEL_TEMPO EQUS "(wChannel1Tempo - wChannel1)"
CHANNEL_TRACKS EQUS "(wChannel1Tracks - wChannel1)"
CHANNEL_SFX_DUTY_LOOP EQUS "(wChannel1SFXDutyLoop - wChannel1)"
CHANNEL_VIBRATO_DELAY_COUNT EQUS "(wChannel1VibratoDelayCount - wChannel1)"
CHANNEL_VIBRATO_DELAY EQUS "(wChannel1VibratoDelay - wChannel1)"
CHANNEL_VIBRATO_EXTENT EQUS "(wChannel1VibratoExtent - wChannel1)"
CHANNEL_VIBRATO_RATE EQUS "(wChannel1VibratoRate - wChannel1)"
CHANNEL_PITCH_WHEEL_TARGET EQUS "(wChannel1PitchWheelTarget - wChannel1)"
CHANNEL_PITCH_WHEEL_AMOUNT EQUS "(wChannel1PitchWheelAmount - wChannel1)"
CHANNEL_PITCH_WHEEL_AMOUNT_FRACTION EQUS "(wChannel1PitchWheelAmountFraction - wChannel1)"
CHANNEL_FIELD25 EQUS "(wChannel1Field25 - wChannel1)"
CHANNEL_CRY_PITCH EQUS "(wChannel1CryPitch - wChannel1)"
CHANNEL_FIELD29 EQUS "(wChannel1Field29 - wChannel1)"
CHANNEL_FIELD2A EQUS "(wChannel1Field2a - wChannel1)"
CHANNEL_FIELD2C EQUS "(wChannel1Field2c - wChannel1)"
CHANNEL_NOTE_LENGTH EQUS "(wChannel1NoteLength - wChannel1)"
CHANNEL_FIELD2E EQUS "(wChannel1Field2e - wChannel1)"
CHANNEL_FIELD2F EQUS "(wChannel1Field2f - wChannel1)"
CHANNEL_FIELD30 EQUS "(wChannel1Field30 - wChannel1)"
CHANNEL_STRUCT_LENGTH EQUS "(wChannel2 - wChannel1)"
; channel_struct members (see macros/ram.asm)
rsreset
DEF CHANNEL_MUSIC_ID rw
DEF CHANNEL_MUSIC_BANK rb
DEF CHANNEL_FLAGS1 rb
DEF CHANNEL_FLAGS2 rb
DEF CHANNEL_FLAGS3 rb
DEF CHANNEL_MUSIC_ADDRESS rw
DEF CHANNEL_LAST_MUSIC_ADDRESS rw
rb_skip 2
DEF CHANNEL_NOTE_FLAGS rb
DEF CHANNEL_CONDITION rb
DEF CHANNEL_DUTY_CYCLE rb
DEF CHANNEL_VOLUME_ENVELOPE rb
DEF CHANNEL_FREQUENCY rw
DEF CHANNEL_PITCH rb
DEF CHANNEL_OCTAVE rb
DEF CHANNEL_TRANSPOSITION rb
DEF CHANNEL_NOTE_DURATION rb
DEF CHANNEL_FIELD16 rb
rb_skip
DEF CHANNEL_LOOP_COUNT rb
DEF CHANNEL_TEMPO rw
DEF CHANNEL_TRACKS rb
DEF CHANNEL_DUTY_CYCLE_PATTERN rb
DEF CHANNEL_VIBRATO_DELAY_COUNT rb
DEF CHANNEL_VIBRATO_DELAY rb
DEF CHANNEL_VIBRATO_EXTENT rb
DEF CHANNEL_VIBRATO_RATE rb
DEF CHANNEL_PITCH_SLIDE_TARGET rw
DEF CHANNEL_PITCH_SLIDE_AMOUNT rb
DEF CHANNEL_PITCH_SLIDE_AMOUNT_FRACTION rb
DEF CHANNEL_FIELD25 rb
rb_skip
DEF CHANNEL_PITCH_OFFSET rw
DEF CHANNEL_FIELD29 rb
DEF CHANNEL_FIELD2A rw
DEF CHANNEL_FIELD2C rb
DEF CHANNEL_NOTE_LENGTH rb
DEF CHANNEL_FIELD2E rb
DEF CHANNEL_FIELD2F rb
DEF CHANNEL_FIELD30 rb
rb_skip
DEF CHANNEL_STRUCT_LENGTH EQU _RS
NOISE_CHAN_F EQU 2 ; bit set in CHAN5-CHAN7
DEF NOISE_CHAN_F EQU 2 ; bit set in CHAN5-CHAN7
; Flags1
const_def
@ -80,15 +84,15 @@ NOISE_CHAN_F EQU 2 ; bit set in CHAN5-CHAN7
const SOUND_LOOPING ; 2
const SOUND_SFX ; 3
const SOUND_NOISE ; 4
const SOUND_REST ; 5
const SOUND_CRY ; 5
; Flags2
const_def
const SOUND_VIBRATO ; 0
const SOUND_PITCH_WHEEL ; 1
const SOUND_DUTY ; 2
const SOUND_PITCH_SLIDE ; 1
const SOUND_DUTY_LOOP ; 2
const SOUND_UNKN_0B ; 3
const SOUND_CRY_PITCH ; 4
const SOUND_PITCH_OFFSET ; 4
const SOUND_UNKN_0D ; 5
const SOUND_UNKN_0E ; 6
const SOUND_UNKN_0F ; 7
@ -96,35 +100,35 @@ NOISE_CHAN_F EQU 2 ; bit set in CHAN5-CHAN7
; Flags3
const_def
const SOUND_VIBRATO_DIR ; 0
const SOUND_PITCH_WHEEL_DIR ; 1
const SOUND_PITCH_SLIDE_DIR ; 1
; NoteFlags
const_def
const NOTE_DUTY_OVERRIDE ; 0
const NOTE_FREQ_OVERRIDE ; 1
const NOTE_UNUSED ; 2
const NOTE_UNKN_3 ; 3
const NOTE_PITCH_SWEEP ; 3
const NOTE_NOISE_SAMPLING ; 4
const NOTE_REST ; 5
const NOTE_VIBRATO_OVERRIDE ; 6
; wVolume
VOLUME_SO1_F EQU 3
VOLUME_SO2_F EQU 7
VOLUME_SO1_LEVEL EQU %00000111
VOLUME_SO2_LEVEL EQU %01110000
MAX_VOLUME EQU $77
DEF VOLUME_SO1_F EQU 3
DEF VOLUME_SO2_F EQU 7
DEF VOLUME_SO1_LEVEL EQU %00000111
DEF VOLUME_SO2_LEVEL EQU %01110000
DEF MAX_VOLUME EQU $77
; wSoundInput
SOUND_INPUT_CH1_F EQU 0
SOUND_INPUT_CH2_F EQU 1
SOUND_INPUT_CH3_F EQU 2
SOUND_INPUT_CH4_F EQU 3
SOUND_INPUT_GLOBAL_F EQU 7
DEF SOUND_INPUT_CH1_F EQU 0
DEF SOUND_INPUT_CH2_F EQU 1
DEF SOUND_INPUT_CH3_F EQU 2
DEF SOUND_INPUT_CH4_F EQU 3
DEF SOUND_INPUT_GLOBAL_F EQU 7
; wLowHealthAlarm
DANGER_PITCH_F EQU 4
DANGER_ON_F EQU 7
DEF DANGER_PITCH_F EQU 4
DEF DANGER_ON_F EQU 7
; wMusicFade
MUSIC_FADE_IN_F EQU 7
DEF MUSIC_FADE_IN_F EQU 7

View File

@ -1,48 +1,46 @@
; battle_anim_struct members (see macros/wram.asm)
const_def
const BATTLEANIMSTRUCT_INDEX
const BATTLEANIMSTRUCT_01
const BATTLEANIMSTRUCT_02
const BATTLEANIMSTRUCT_FRAMESET_ID
const BATTLEANIMSTRUCT_FUNCTION
const BATTLEANIMSTRUCT_PALETTE
const BATTLEANIMSTRUCT_TILEID
const BATTLEANIMSTRUCT_XCOORD
const BATTLEANIMSTRUCT_YCOORD
const BATTLEANIMSTRUCT_XOFFSET
const BATTLEANIMSTRUCT_YOFFSET
const BATTLEANIMSTRUCT_PARAM
const BATTLEANIMSTRUCT_DURATION
const BATTLEANIMSTRUCT_FRAME
const BATTLEANIMSTRUCT_ANON_JT_INDEX
const BATTLEANIMSTRUCT_0F
const BATTLEANIMSTRUCT_10
const BATTLEANIMSTRUCT_11
const BATTLEANIMSTRUCT_12
const BATTLEANIMSTRUCT_13
const BATTLEANIMSTRUCT_14
const BATTLEANIMSTRUCT_15
const BATTLEANIMSTRUCT_16
const BATTLEANIMSTRUCT_17
BATTLEANIMSTRUCT_LENGTH EQU const_value
NUM_ANIM_OBJECTS EQU 10 ; see wActiveAnimObjects
; battle_anim_struct members (see macros/ram.asm)
rsreset
DEF BATTLEANIMSTRUCT_INDEX rb
DEF BATTLEANIMSTRUCT_OAMFLAGS rb
DEF BATTLEANIMSTRUCT_FIX_Y rb
DEF BATTLEANIMSTRUCT_FRAMESET_ID rb
DEF BATTLEANIMSTRUCT_FUNCTION rb
DEF BATTLEANIMSTRUCT_PALETTE rb
DEF BATTLEANIMSTRUCT_TILEID rb
DEF BATTLEANIMOBJ_LENGTH EQU _RS - 1 ; discount BATTLEANIMSTRUCT_INDEX
DEF BATTLEANIMSTRUCT_XCOORD rb
DEF BATTLEANIMSTRUCT_YCOORD rb
DEF BATTLEANIMSTRUCT_XOFFSET rb
DEF BATTLEANIMSTRUCT_YOFFSET rb
DEF BATTLEANIMSTRUCT_PARAM rb
DEF BATTLEANIMSTRUCT_DURATION rb
DEF BATTLEANIMSTRUCT_FRAME rb
DEF BATTLEANIMSTRUCT_JUMPTABLE_INDEX rb
DEF BATTLEANIMSTRUCT_VAR1 rb
DEF BATTLEANIMSTRUCT_VAR2 rb
rb_skip 7
DEF BATTLEANIMSTRUCT_LENGTH EQU _RS
DEF NUM_ANIM_OBJECTS EQU 10 ; see wActiveAnimObjects
; wBattleAnimTileDict size (see wram.asm)
DEF NUM_BATTLEANIMTILEDICT_ENTRIES EQU 5
; Start tile for battle animation graphics
BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
DEF BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
; BattleAnimObjects indexes (see data/battle_anims/objects.asm)
const_def
const ANIM_OBJ_00
const ANIM_OBJ_01
const ANIM_OBJ_02
const ANIM_OBJ_03
const ANIM_OBJ_04
const ANIM_OBJ_05
const ANIM_OBJ_06
const ANIM_OBJ_07
const ANIM_OBJ_08
const ANIM_OBJ_HIT_BIG_YFIX
const ANIM_OBJ_HIT_YFIX
const ANIM_OBJ_HIT_SMALL_YFIX
const ANIM_OBJ_HIT_BIG
const ANIM_OBJ_HIT
const ANIM_OBJ_HIT_SMALL
const ANIM_OBJ_PUNCH
const ANIM_OBJ_KICK
const ANIM_OBJ_PALM
const ANIM_OBJ_FANG
const ANIM_OBJ_0A
const ANIM_OBJ_PUNCH_SHAKE
const ANIM_OBJ_EMBER
const ANIM_OBJ_DRAGON_RAGE
const ANIM_OBJ_FLAMETHROWER
@ -50,16 +48,16 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_OBJ_FIRE_BLAST
const ANIM_OBJ_BURNED
const ANIM_OBJ_BLIZZARD
const ANIM_OBJ_12
const ANIM_OBJ_ICE
const ANIM_OBJ_ICE_BEAM
const ANIM_OBJ_RAZOR_LEAF
const ANIM_OBJ_POKE_BALL
const ANIM_OBJ_POKE_BALL_BLOCKED
const ANIM_OBJ_17
const ANIM_OBJ_18
const ANIM_OBJ_19
const ANIM_OBJ_1A
const ANIM_OBJ_1B
const ANIM_OBJ_EXPLOSION1
const ANIM_OBJ_EXPLOSION2
const ANIM_OBJ_ACID
const ANIM_OBJ_SLUDGE
const ANIM_OBJ_BETA_BALL_POOF
const ANIM_OBJ_BALL_POOF
const ANIM_OBJ_BIG_ROCK
const ANIM_OBJ_SMALL_ROCK
@ -71,56 +69,56 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_OBJ_WATER_GUN
const ANIM_OBJ_HYDRO_PUMP
const ANIM_OBJ_POWDER
const ANIM_OBJ_27
const ANIM_OBJ_28
const ANIM_OBJ_BEAM
const ANIM_OBJ_BEAM_TIP
const ANIM_OBJ_ICE_BUILDUP
const ANIM_OBJ_FROZEN
const ANIM_OBJ_MASTER_BALL_SPARKLE
const ANIM_OBJ_RECOVER
const ANIM_OBJ_2D
const ANIM_OBJ_2E
const ANIM_OBJ_2F
const ANIM_OBJ_THUNDER1
const ANIM_OBJ_THUNDER2
const ANIM_OBJ_THUNDER3
const ANIM_OBJ_THUNDER_WAVE
const ANIM_OBJ_31
const ANIM_OBJ_LIGHTNING_BOLT
const ANIM_OBJ_33
const ANIM_OBJ_34
const ANIM_OBJ_SPARKS_CIRCLE_BIG
const ANIM_OBJ_THUNDERBOLT_BALL
const ANIM_OBJ_SPARKS_CIRCLE
const ANIM_OBJ_THUNDERSHOCK_BALL
const ANIM_OBJ_CLAMP
const ANIM_OBJ_BITE
const ANIM_OBJ_37
const ANIM_OBJ_38
const ANIM_OBJ_39
const ANIM_OBJ_3A
const ANIM_OBJ_3B
const ANIM_OBJ_3C
const ANIM_OBJ_3D
const ANIM_OBJ_CUT_DOWN_LEFT
const ANIM_OBJ_CUT_DOWN_RIGHT
const ANIM_OBJ_CUT_UP_RIGHT
const ANIM_OBJ_CUT_LONG_DOWN_LEFT
const ANIM_OBJ_CUT_LONG_DOWN_RIGHT
const ANIM_OBJ_SOLAR_BEAM_CHARGE
const ANIM_OBJ_ABSORB_CENTER
const ANIM_OBJ_GUST
const ANIM_OBJ_3F
const ANIM_OBJ_40
const ANIM_OBJ_41
const ANIM_OBJ_42
const ANIM_OBJ_VINE_WHIP1
const ANIM_OBJ_VINE_WHIP2
const ANIM_OBJ_RAZOR_WIND1
const ANIM_OBJ_RAZOR_WIND2
const ANIM_OBJ_SONICBOOM_JP
const ANIM_OBJ_44
const ANIM_OBJ_WARP
const ANIM_OBJ_ABSORB
const ANIM_OBJ_EGG
const ANIM_OBJ_47
const ANIM_OBJ_48
const ANIM_OBJ_49
const ANIM_OBJ_FOCUS
const ANIM_OBJ_BIND1
const ANIM_OBJ_BIND2
const ANIM_OBJ_LEECH_SEED
const ANIM_OBJ_4B
const ANIM_OBJ_SOUND
const ANIM_OBJ_WAVE
const ANIM_OBJ_CONFUSE_RAY
const ANIM_OBJ_4E
const ANIM_OBJ_4F
const ANIM_OBJ_LEER
const ANIM_OBJ_LEER_TIP
const ANIM_OBJ_SCREEN
const ANIM_OBJ_HARDEN
const ANIM_OBJ_CHICK
const ANIM_OBJ_AMNESIA
const ANIM_OBJ_ASLEEP
const ANIM_OBJ_SKULL
const ANIM_OBJ_56
const ANIM_OBJ_57
const ANIM_OBJ_58
const ANIM_OBJ_DIG_SAND
const ANIM_OBJ_DIG_PILE
const ANIM_OBJ_SAND
const ANIM_OBJ_PARALYZED
const ANIM_OBJ_STRING_SHOT
const ANIM_OBJ_HAZE
@ -128,11 +126,11 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_OBJ_SMOG
const ANIM_OBJ_POISON_GAS
const ANIM_OBJ_HORN
const ANIM_OBJ_60
const ANIM_OBJ_NEEDLE
const ANIM_OBJ_PETAL_DANCE
const ANIM_OBJ_SLUDGE_BOMB
const ANIM_OBJ_PAY_DAY
const ANIM_OBJ_64
const ANIM_OBJ_SONICBOOM_JP_UNUSED
const ANIM_OBJ_MIMIC
const ANIM_OBJ_ATTRACT
const ANIM_OBJ_BONEMERANG
@ -145,7 +143,7 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_OBJ_SKY_ATTACK
const ANIM_OBJ_LICK
const ANIM_OBJ_WITHDRAW
const ANIM_OBJ_71
const ANIM_OBJ_DRAIN
const ANIM_OBJ_GROWTH
const ANIM_OBJ_CONVERSION2
const ANIM_OBJ_SMOKE
@ -154,8 +152,8 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_OBJ_SPEED_LINE
const ANIM_OBJ_SHARPEN
const ANIM_OBJ_DEFENSE_CURL
const ANIM_OBJ_7A
const ANIM_OBJ_7B
const ANIM_OBJ_METRONOME_HAND
const ANIM_OBJ_METRONOME_SPARKLE
const ANIM_OBJ_DISABLE
const ANIM_OBJ_AGILITY
const ANIM_OBJ_HEART
@ -164,8 +162,8 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_OBJ_COTTON_SPORE
const ANIM_OBJ_MILK_DRINK
const ANIM_OBJ_ANGER
const ANIM_OBJ_84
const ANIM_OBJ_85
const ANIM_OBJ_HEAL_BELL
const ANIM_OBJ_HEAL_BELL_NOTE
const ANIM_OBJ_BATON_PASS
const ANIM_OBJ_LOCK_ON
const ANIM_OBJ_MIND_READER
@ -179,21 +177,21 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_OBJ_DRAGONBREATH
const ANIM_OBJ_CONVERSION
const ANIM_OBJ_SPIDER_WEB
const ANIM_OBJ_93
const ANIM_OBJ_CAKE_UNUSED
const ANIM_OBJ_NIGHTMARE
const ANIM_OBJ_IN_NIGHTMARE
const ANIM_OBJ_LOVELY_KISS
const ANIM_OBJ_SWEET_KISS
const ANIM_OBJ_SKETCH
const ANIM_OBJ_99
const ANIM_OBJ_9A
const ANIM_OBJ_ENCORE_HAND
const ANIM_OBJ_ENCORE_STAR
const ANIM_OBJ_DESTINY_BOND
const ANIM_OBJ_MORNING_SUN
const ANIM_OBJ_GLIMMER
const ANIM_OBJ_MOONLIGHT
const ANIM_OBJ_HIDDEN_POWER
const ANIM_OBJ_A0
const ANIM_OBJ_A1
const ANIM_OBJ_CROSS_CHOP1
const ANIM_OBJ_CROSS_CHOP2
const ANIM_OBJ_SANDSTORM
const ANIM_OBJ_ZAP_CANNON
const ANIM_OBJ_SPITE
@ -202,11 +200,11 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_OBJ_FORESIGHT
const ANIM_OBJ_RAPID_SPIN
const ANIM_OBJ_SWAGGER
const ANIM_OBJ_AA
const ANIM_OBJ_AB
const ANIM_OBJ_BELLY_DRUM_HAND
const ANIM_OBJ_BELLY_DRUM_NOTE
const ANIM_OBJ_MEAN_LOOK
const ANIM_OBJ_AD
const ANIM_OBJ_AE
const ANIM_OBJ_BETA_PURSUIT
const ANIM_OBJ_SHOOTING_SPARKLE
const ANIM_OBJ_RAIN
const ANIM_OBJ_B0
const ANIM_OBJ_PSYCH_UP
@ -220,89 +218,91 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_OBJ_PLAYERHEAD_1ROW
const ANIM_OBJ_ENEMYFEET_2ROW
const ANIM_OBJ_PLAYERHEAD_2ROW
DEF NUM_ANIM_OBJS EQU const_value
; DoBattleAnimFrame arguments (see engine/battle_anims/functions.asm)
const_def
const BATTLEANIMFUNC_00
const BATTLEANIMFUNC_01
const BATTLEANIMFUNC_02
const BATTLEANIMFUNC_03
const BATTLEANIMFUNC_04
const BATTLEANIMFUNC_05
const BATTLEANIMFUNC_06
const BATTLEANIMFUNC_07
const BATTLEANIMFUNC_08
const BATTLEANIMFUNC_09
const BATTLEANIMFUNC_0A
const BATTLEANIMFUNC_NULL
const BATTLEANIMFUNC_USER_TO_TARGET
const BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR
const BATTLEANIMFUNC_MOVE_IN_CIRCLE
const BATTLEANIMFUNC_WAVE_TO_TARGET
const BATTLEANIMFUNC_THROW_TO_TARGET
const BATTLEANIMFUNC_THROW_TO_TARGET_DISAPPEAR
const BATTLEANIMFUNC_DROP
const BATTLEANIMFUNC_USER_TO_TARGET_SPIN
const BATTLEANIMFUNC_SHAKE
const BATTLEANIMFUNC_FIRE_BLAST
const BATTLEANIMFUNC_RAZOR_LEAF
const BATTLEANIMFUNC_0C
const BATTLEANIMFUNC_0D
const BATTLEANIMFUNC_0E
const BATTLEANIMFUNC_0F
const BATTLEANIMFUNC_10
const BATTLEANIMFUNC_11
const BATTLEANIMFUNC_12
const BATTLEANIMFUNC_13
const BATTLEANIMFUNC_14
const BATTLEANIMFUNC_15
const BATTLEANIMFUNC_16
const BATTLEANIMFUNC_17
const BATTLEANIMFUNC_18
const BATTLEANIMFUNC_19
const BATTLEANIMFUNC_1A
const BATTLEANIMFUNC_1B
const BATTLEANIMFUNC_1C
const BATTLEANIMFUNC_1D
const BATTLEANIMFUNC_1E
const BATTLEANIMFUNC_1F
const BATTLEANIMFUNC_BUBBLE
const BATTLEANIMFUNC_SURF
const BATTLEANIMFUNC_SING
const BATTLEANIMFUNC_WATER_GUN
const BATTLEANIMFUNC_EMBER
const BATTLEANIMFUNC_POWDER
const BATTLEANIMFUNC_POKEBALL
const BATTLEANIMFUNC_POKEBALL_BLOCKED
const BATTLEANIMFUNC_RECOVER
const BATTLEANIMFUNC_THUNDER_WAVE
const BATTLEANIMFUNC_CLAMP_ENCORE
const BATTLEANIMFUNC_BITE
const BATTLEANIMFUNC_SOLAR_BEAM
const BATTLEANIMFUNC_GUST
const BATTLEANIMFUNC_RAZOR_WIND
const BATTLEANIMFUNC_KICK
const BATTLEANIMFUNC_ABSORB
const BATTLEANIMFUNC_EGG
const BATTLEANIMFUNC_MOVE_UP
const BATTLEANIMFUNC_WRAP
const BATTLEANIMFUNC_LEECH_SEED
const BATTLEANIMFUNC_21
const BATTLEANIMFUNC_22
const BATTLEANIMFUNC_23
const BATTLEANIMFUNC_24
const BATTLEANIMFUNC_25
const BATTLEANIMFUNC_26
const BATTLEANIMFUNC_27
const BATTLEANIMFUNC_28
const BATTLEANIMFUNC_SPRIAL_DESCENT
const BATTLEANIMFUNC_SOUND
const BATTLEANIMFUNC_CONFUSE_RAY
const BATTLEANIMFUNC_DIZZY
const BATTLEANIMFUNC_AMNESIA
const BATTLEANIMFUNC_FLOAT_UP
const BATTLEANIMFUNC_DIG
const BATTLEANIMFUNC_STRING
const BATTLEANIMFUNC_PARALYZED
const BATTLEANIMFUNC_SPIRAL_DESCENT
const BATTLEANIMFUNC_POISON_GAS
const BATTLEANIMFUNC_HORN
const BATTLEANIMFUNC_2C
const BATTLEANIMFUNC_2D
const BATTLEANIMFUNC_2E
const BATTLEANIMFUNC_2F
const BATTLEANIMFUNC_30
const BATTLEANIMFUNC_31
const BATTLEANIMFUNC_32
const BATTLEANIMFUNC_33
const BATTLEANIMFUNC_34
const BATTLEANIMFUNC_35
const BATTLEANIMFUNC_36
const BATTLEANIMFUNC_37
const BATTLEANIMFUNC_38
const BATTLEANIMFUNC_39
const BATTLEANIMFUNC_3A
const BATTLEANIMFUNC_3B
const BATTLEANIMFUNC_3C
const BATTLEANIMFUNC_3D
const BATTLEANIMFUNC_3E
const BATTLEANIMFUNC_3F
const BATTLEANIMFUNC_40
const BATTLEANIMFUNC_41
const BATTLEANIMFUNC_42
const BATTLEANIMFUNC_43
const BATTLEANIMFUNC_44
const BATTLEANIMFUNC_45
const BATTLEANIMFUNC_46
const BATTLEANIMFUNC_47
const BATTLEANIMFUNC_48
const BATTLEANIMFUNC_49
const BATTLEANIMFUNC_4A
const BATTLEANIMFUNC_4B
const BATTLEANIMFUNC_4C
const BATTLEANIMFUNC_4D
const BATTLEANIMFUNC_4E
const BATTLEANIMFUNC_4F
const BATTLEANIMFUNC_NEEDLE
const BATTLEANIMFUNC_PETAL_DANCE
const BATTLEANIMFUNC_THIEF_PAYDAY
const BATTLEANIMFUNC_ABSORB_CIRCLE
const BATTLEANIMFUNC_BONEMERANG
const BATTLEANIMFUNC_SHINY
const BATTLEANIMFUNC_SKY_ATTACK
const BATTLEANIMFUNC_GROWTH_SWORDS_DANCE
const BATTLEANIMFUNC_SMOKE_FLAME_WHEEL
const BATTLEANIMFUNC_PRESENT_SMOKESCREEN
const BATTLEANIMFUNC_STRENGTH_SEISMIC_TOSS
const BATTLEANIMFUNC_SPEED_LINE
const BATTLEANIMFUNC_SLUDGE
const BATTLEANIMFUNC_METRONOME_HAND
const BATTLEANIMFUNC_METRONOME_SPARKLE_SKETCH
const BATTLEANIMFUNC_AGILITY
const BATTLEANIMFUNC_SACRED_FIRE
const BATTLEANIMFUNC_SAFEGUARD_PROTECT
const BATTLEANIMFUNC_LOCK_ON_MIND_READER
const BATTLEANIMFUNC_SPIKES
const BATTLEANIMFUNC_HEAL_BELL_NOTES
const BATTLEANIMFUNC_BATON_PASS
const BATTLEANIMFUNC_CONVERSION
const BATTLEANIMFUNC_ENCORE_BELLY_DRUM
const BATTLEANIMFUNC_SWAGGER_MORNING_SUN
const BATTLEANIMFUNC_HIDDEN_POWER
const BATTLEANIMFUNC_CURSE
const BATTLEANIMFUNC_PERISH_SONG
const BATTLEANIMFUNC_RAPID_SPIN
const BATTLEANIMFUNC_BETA_PURSUIT
const BATTLEANIMFUNC_RAIN_SANDSTORM
const BATTLEANIMFUNC_ANIM_OBJ_B0
const BATTLEANIMFUNC_PSYCH_UP
const BATTLEANIMFUNC_ANCIENT_POWER
const BATTLEANIMFUNC_ROCK_SMASH
const BATTLEANIMFUNC_COTTON
DEF NUM_BATTLEANIMFUNCS EQU const_value
; BattleAnimFrameData indexes (see data/battle_anims/framesets.asm)
const_def
@ -491,6 +491,7 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const BATTLEANIMFRAMESET_B6
const BATTLEANIMFRAMESET_B7
const BATTLEANIMFRAMESET_B8
DEF NUM_BATTLEANIMFRAMESETS EQU const_value
; BattleAnimOAMData indexes (see data/battle_anims/oam.asm)
const_def
@ -710,6 +711,7 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const BATTLEANIMOAMSET_D5
const BATTLEANIMOAMSET_D6
const BATTLEANIMOAMSET_D7
DEF NUM_BATTLEANIMOAMSETS EQU const_value
; BattleBGEffects indexes (see engine/battle_anims/bg_effects.asm)
const_def 1
@ -718,9 +720,9 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_BG_WHITE_HUES
const ANIM_BG_BLACK_HUES
const ANIM_BG_ALTERNATE_HUES
const ANIM_BG_06
const ANIM_BG_07
const ANIM_BG_08
const ANIM_BG_CYCLE_OBPALS_GRAY_AND_YELLOW
const ANIM_BG_CYCLE_MID_OBPALS_GRAY_AND_YELLOW
const ANIM_BG_CYCLE_BGPALS_INVERTED
const ANIM_BG_HIDE_MON
const ANIM_BG_SHOW_MON
const ANIM_BG_ENTER_MON
@ -734,39 +736,41 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_BG_DOUBLE_TEAM
const ANIM_BG_ACID_ARMOR
const ANIM_BG_RAPID_FLASH
const ANIM_BG_16
const ANIM_BG_17
const ANIM_BG_18
const ANIM_BG_19
const ANIM_BG_1A
const ANIM_BG_1B
const ANIM_BG_1C
const ANIM_BG_1D
const ANIM_BG_1E
const ANIM_BG_1F
const ANIM_BG_20
const ANIM_BG_FADE_MON_TO_LIGHT
const ANIM_BG_FADE_MON_TO_BLACK
const ANIM_BG_FADE_MON_TO_LIGHT_REPEATING
const ANIM_BG_FADE_MON_TO_BLACK_REPEATING
const ANIM_BG_CYCLE_MON_LIGHT_DARK_REPEATING
const ANIM_BG_FLASH_MON_REPEATING
const ANIM_BG_FADE_MONS_TO_BLACK_REPEATING
const ANIM_BG_FADE_MON_TO_WHITE_WAIT_FADE_BACK
const ANIM_BG_FADE_MON_FROM_WHITE
const ANIM_BG_SHAKE_SCREEN_X
const ANIM_BG_SHAKE_SCREEN_Y
const ANIM_BG_WITHDRAW
const ANIM_BG_BOUNCE_DOWN
const ANIM_BG_DIG
const ANIM_BG_TACKLE
const ANIM_BG_25
const ANIM_BG_26
const ANIM_BG_27
const ANIM_BG_WAVE_DEFORM_USER
const ANIM_BG_PSYCHIC
const ANIM_BG_2A
const ANIM_BG_2B
const ANIM_BG_2C
const ANIM_BG_2D
const ANIM_BG_2E
const ANIM_BG_2F
const ANIM_BG_30
const ANIM_BG_31
const ANIM_BG_32
const ANIM_BG_VIBRATE_MON
const ANIM_BG_BODY_SLAM
const ANIM_BG_WOBBLE_MON
const ANIM_BG_35
const ANIM_BG_REMOVE_MON
const ANIM_BG_WAVE_DEFORM_MON
const ANIM_BG_PSYCHIC
const ANIM_BG_BETA_SEND_OUT_MON1
const ANIM_BG_BETA_SEND_OUT_MON2
const ANIM_BG_FLAIL
const ANIM_BG_BETA_PURSUIT
const ANIM_BG_ROLLOUT
const ANIM_BG_VITAL_THROW
const ANIM_BG_START_WATER
const ANIM_BG_WATER
const ANIM_BG_END_WATER
const ANIM_BG_VIBRATE_MON
const ANIM_BG_WOBBLE_PLAYER
const ANIM_BG_WOBBLE_SCREEN
DEF NUM_ANIM_BGS EQU const_value - 1
; wBattleAnimTileDict keys (see wram.asm)
; AnimObjGFX indexes (see data/battle_anims/object_gfx.asm)
const_def 1
const ANIM_GFX_HIT
@ -810,15 +814,21 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
const ANIM_GFX_AEROBLAST
const ANIM_GFX_PLAYERHEAD
const ANIM_GFX_ENEMYFEET
DEF NUM_ANIM_GFX EQU const_value - 1
; battle_bg_effect struct members (see macros/wram.asm)
; battle_bg_effect struct members (see macros/ram.asm)
rsreset
DEF BG_EFFECT_STRUCT_FUNCTION rb
DEF BG_EFFECT_STRUCT_JT_INDEX rb
DEF BG_EFFECT_STRUCT_BATTLE_TURN rb
DEF BG_EFFECT_STRUCT_PARAM rb
DEF BG_EFFECT_STRUCT_LENGTH EQU _RS
DEF NUM_BG_EFFECTS EQU 5 ; see wActiveBGEffects
; anim_bgeffect battle turn values for some effects
const_def
const BG_EFFECT_STRUCT_FUNCTION
const BG_EFFECT_STRUCT_JT_INDEX
const BG_EFFECT_STRUCT_BATTLE_TURN
const BG_EFFECT_STRUCT_03
BG_EFFECT_STRUCT_LENGTH EQU const_value
NUM_BG_EFFECTS EQU 5 ; see wActiveBGEffects
const BG_EFFECT_TARGET ; 0
const BG_EFFECT_USER ; 1
; battle palettes
const_def

View File

@ -1,31 +1,31 @@
; significant level values
MAX_LEVEL EQU 100
MIN_LEVEL EQU 2
EGG_LEVEL EQU 5
DEF MAX_LEVEL EQU 100
DEF MIN_LEVEL EQU 2
DEF EGG_LEVEL EQU 5
; maximum moves known per mon
NUM_MOVES EQU 4
DEF NUM_MOVES EQU 4
; significant stat values
BASE_STAT_LEVEL EQU 7
MAX_STAT_LEVEL EQU 13
; minimum damage before type effectiveness
MIN_NEUTRAL_DAMAGE EQU 2
DEF BASE_STAT_LEVEL EQU 7
DEF MAX_STAT_LEVEL EQU 13
; turns that sleep lasts
REST_SLEEP_TURNS EQU 2
TREEMON_SLEEP_TURNS EQU 7
DEF REST_SLEEP_TURNS EQU 2
DEF TREEMON_SLEEP_TURNS EQU 7
; default move priority
BASE_PRIORITY EQU 1
DEF BASE_PRIORITY EQU 1
; type effectiveness factors, scaled by 10
SUPER_EFFECTIVE EQU 20
MORE_EFFECTIVE EQU 15
EFFECTIVE EQU 10
NOT_VERY_EFFECTIVE EQU 05
NO_EFFECT EQU 00
DEF SUPER_EFFECTIVE EQU 20
DEF MORE_EFFECTIVE EQU 15
DEF EFFECTIVE EQU 10
DEF NOT_VERY_EFFECTIVE EQU 05
DEF NO_EFFECT EQU 00
; enemy AI behavior
DEF BASE_AI_SWITCH_SCORE EQU 10
; wPlayerStatLevels and wEnemyStatLevels indexes (see wram.asm)
; GetStatName arguments (see data/battle/stat_names.asm)
@ -38,43 +38,43 @@ NO_EFFECT EQU 00
const ACCURACY
const EVASION
const ABILITY ; used for BattleCommand_Curse
NUM_LEVEL_STATS EQU const_value
DEF NUM_LEVEL_STATS EQU const_value
; move struct members (see data/moves/moves.asm)
const_def
const MOVE_ANIM ; 0
const MOVE_EFFECT ; 1
const MOVE_POWER ; 2
const MOVE_TYPE ; 3
const MOVE_ACC ; 4
const MOVE_PP ; 5
const MOVE_CHANCE ; 6
MOVE_LENGTH EQU const_value
rsreset
DEF MOVE_ANIM rb ; 0
DEF MOVE_EFFECT rb ; 1
DEF MOVE_POWER rb ; 2
DEF MOVE_TYPE rb ; 3
DEF MOVE_ACC rb ; 4
DEF MOVE_PP rb ; 5
DEF MOVE_CHANCE rb ; 6
DEF MOVE_LENGTH EQU _RS
; stat constants
; indexes for:
; - wPlayerStats and wEnemyStats (see wram.asm)
; - party_struct and battle_struct members (see macros/wram.asm)
; - party_struct and battle_struct members (see macros/ram.asm)
const_def 1
const STAT_HP
const STAT_ATK
const STAT_DEF
const STAT_SPD
const STAT_SATK
NUM_EXP_STATS EQU const_value + -1
DEF NUM_EXP_STATS EQU const_value - 1
const STAT_SDEF
NUM_STATS EQU const_value + -1
NUM_BATTLE_STATS EQU NUM_STATS + -1 ; don't count HP
DEF NUM_STATS EQU const_value - 1
DEF NUM_BATTLE_STATS EQU NUM_STATS - 1 ; don't count HP
; stat formula constants
STAT_MIN_NORMAL EQU 5
STAT_MIN_HP EQU 10
DEF STAT_MIN_NORMAL EQU 5
DEF STAT_MIN_HP EQU 10
MAX_STAT_VALUE EQU 999
DEF MAX_STAT_VALUE EQU 999
; shiny dvs
ATKDEFDV_SHINY EQU $EA
SPDSPCDV_SHINY EQU $AA
DEF ATKDEFDV_SHINY EQU $EA
DEF SPDSPCDV_SHINY EQU $AA
; battle classes (wBattleMode values)
const_def 1
@ -97,7 +97,7 @@ SPDSPCDV_SHINY EQU $AA
const BATTLETYPE_CELEBI
const BATTLETYPE_SUICUNE
; BattleVarPairs indexes (see home/battle.asm)
; BattleVarPairs indexes (see home/battle_vars.asm)
const_def
const BATTLE_VARS_SUBSTATUS1
const BATTLE_VARS_SUBSTATUS2
@ -120,8 +120,9 @@ SPDSPCDV_SHINY EQU $AA
const BATTLE_VARS_LAST_COUNTER_MOVE_OPP
const BATTLE_VARS_LAST_MOVE
const BATTLE_VARS_LAST_MOVE_OPP
DEF NUM_BATTLE_VARS EQU const_value
; BattleVarLocations indexes (see home/battle.asm)
; BattleVarLocations indexes (see home/battle_vars.asm)
const_def
const PLAYER_SUBSTATUS_1
const ENEMY_SUBSTATUS_1
@ -149,71 +150,74 @@ SPDSPCDV_SHINY EQU $AA
const ENEMY_COUNTER_MOVE
const PLAYER_LAST_MOVE
const ENEMY_LAST_MOVE
assert const_value % 2 == 0
DEF NUM_BATTLE_VAR_LOCATION_PAIRS EQU const_value / 2
; status condition bit flags
SLP EQU %111 ; 0-7 turns
DEF SLP_MASK EQU %111 ; 0-7 turns
const_def 3
const PSN
const BRN
const FRZ
const PAR
ALL_STATUS EQU (1 << PSN) | (1 << BRN) | (1 << FRZ) | (1 << PAR) | SLP
DEF ALL_STATUS EQU (1 << PSN) | (1 << BRN) | (1 << FRZ) | (1 << PAR) | SLP_MASK
; wPlayerSubStatus1 or wEnemySubStatus1 bit flags
enum_start 7, -1
enum SUBSTATUS_IN_LOVE
enum SUBSTATUS_ROLLOUT
enum SUBSTATUS_ENDURE
enum SUBSTATUS_PERISH
enum SUBSTATUS_IDENTIFIED
enum SUBSTATUS_PROTECT
enum SUBSTATUS_CURSE
enum SUBSTATUS_NIGHTMARE
const_def
const SUBSTATUS_NIGHTMARE
const SUBSTATUS_CURSE
const SUBSTATUS_PROTECT
const SUBSTATUS_IDENTIFIED
const SUBSTATUS_PERISH
const SUBSTATUS_ENDURE
const SUBSTATUS_ROLLOUT
const SUBSTATUS_IN_LOVE
; wPlayerSubStatus2 or wEnemySubStatus2 bit flags
SUBSTATUS_CURLED EQU 0
const_def
const SUBSTATUS_CURLED
; wPlayerSubStatus3 or wEnemySubStatus3 bit flags
enum_start 7, -1
enum SUBSTATUS_CONFUSED
enum SUBSTATUS_FLYING
enum SUBSTATUS_UNDERGROUND
enum SUBSTATUS_CHARGED
enum SUBSTATUS_FLINCHED
enum SUBSTATUS_IN_LOOP
enum SUBSTATUS_RAMPAGE
enum SUBSTATUS_BIDE
const_def
const SUBSTATUS_BIDE
const SUBSTATUS_RAMPAGE
const SUBSTATUS_IN_LOOP
const SUBSTATUS_FLINCHED
const SUBSTATUS_CHARGED
const SUBSTATUS_UNDERGROUND
const SUBSTATUS_FLYING
const SUBSTATUS_CONFUSED
; wPlayerSubStatus4 or wEnemySubStatus4 bit flags
enum_start 7, -1
enum SUBSTATUS_LEECH_SEED
enum SUBSTATUS_RAGE
enum SUBSTATUS_RECHARGE
enum SUBSTATUS_SUBSTITUTE
enum SUBSTATUS_UNKNOWN_1
enum SUBSTATUS_FOCUS_ENERGY
enum SUBSTATUS_MIST
enum SUBSTATUS_X_ACCURACY
const_def
const SUBSTATUS_X_ACCURACY
const SUBSTATUS_MIST
const SUBSTATUS_FOCUS_ENERGY
const_skip
const SUBSTATUS_SUBSTITUTE
const SUBSTATUS_RECHARGE
const SUBSTATUS_RAGE
const SUBSTATUS_LEECH_SEED
; wPlayerSubStatus5 or wEnemySubStatus5 bit flags
enum_start 7, -1
enum SUBSTATUS_CANT_RUN
enum SUBSTATUS_DESTINY_BOND
enum SUBSTATUS_LOCK_ON
enum SUBSTATUS_ENCORED
enum SUBSTATUS_TRANSFORMED
enum SUBSTATUS_UNKNOWN_2
enum SUBSTATUS_UNKNOWN_3
enum SUBSTATUS_TOXIC
const_def
const SUBSTATUS_TOXIC
const_skip
const_skip
const SUBSTATUS_TRANSFORMED
const SUBSTATUS_ENCORED
const SUBSTATUS_LOCK_ON
const SUBSTATUS_DESTINY_BOND
const SUBSTATUS_CANT_RUN
; wPlayerScreens or wEnemyScreens bit flags
enum_start 4, -1
enum SCREENS_REFLECT
enum SCREENS_LIGHT_SCREEN
enum SCREENS_SAFEGUARD
enum SCREENS_UNUSED
enum SCREENS_SPIKES
const_def
const SCREENS_SPIKES
const_skip
const SCREENS_SAFEGUARD
const SCREENS_LIGHT_SCREEN
const SCREENS_REFLECT
; values in wBattleWeather
const_def
@ -237,9 +241,9 @@ SUBSTATUS_CURLED EQU 0
const BATTLEACTION_SWITCH4
const BATTLEACTION_SWITCH5
const BATTLEACTION_SWITCH6
const BATTLEACTION_A
const BATTLEACTION_B
const BATTLEACTION_C
const_skip
const_skip
const_skip
const BATTLEACTION_SKIPTURN
const BATTLEACTION_STRUGGLE
const BATTLEACTION_FORFEIT
@ -256,6 +260,10 @@ SUBSTATUS_CURLED EQU 0
const LOSE
const DRAW
BATTLERESULT_CAUGHT_CELEBI EQU 6
BATTLERESULT_BOX_FULL EQU 7
BATTLERESULT_BITMASK EQU (1 << BATTLERESULT_CAUGHT_CELEBI) | (1 << BATTLERESULT_BOX_FULL)
DEF BATTLERESULT_CAUGHT_CELEBI EQU 6
DEF BATTLERESULT_BOX_FULL EQU 7
DEF BATTLERESULT_BITMASK EQU (1 << BATTLERESULT_CAUGHT_CELEBI) | (1 << BATTLERESULT_BOX_FULL)
; link_battle_record struct
DEF LINK_BATTLE_RECORD_LENGTH EQU 2 + (NAME_LENGTH - 1) + 2 * 3
DEF NUM_LINK_BATTLE_RECORDS EQU 5

View File

@ -1,11 +1,14 @@
BATTLETOWER_PARTY_LENGTH EQU 3
BATTLETOWER_STREAK_LENGTH EQU 7
DEF BATTLETOWER_PARTY_LENGTH EQU 3
DEF BATTLETOWER_STREAK_LENGTH EQU 7
BATTLETOWER_NUM_UNIQUE_MON EQU 21
BATTLETOWER_NUM_UNIQUE_TRAINERS EQU 70
DEF BATTLETOWER_NUM_UNIQUE_MON EQU 21
DEF BATTLETOWER_NUM_UNIQUE_TRAINERS EQU 70
BATTLETOWER_TRAINERDATALENGTH EQU $24
BATTLE_TOWER_STRUCT_LENGTH EQUS "(NAME_LENGTH + BATTLETOWER_PARTY_LENGTH * NICKNAMED_MON_STRUCT_LENGTH + BATTLETOWER_TRAINERDATALENGTH)"
DEF BATTLETOWER_TRAINERDATALENGTH EQU 18 * 2 ; $24
DEF BATTLE_TOWER_STRUCT_LENGTH EQU NAME_LENGTH + BATTLETOWER_PARTY_LENGTH * NICKNAMED_MON_STRUCT_LENGTH + BATTLETOWER_TRAINERDATALENGTH ; $e0
DEF HONOR_ROLL_ENTRIES EQU 30
DEF HONOR_ROLL_DATA_LENGTH EQU (PLAYER_NAME_LENGTH - 1) * HONOR_ROLL_ENTRIES
; BattleTowerAction setval arguments (see engine/events/battle_tower/battle_tower.asm)
const_def
@ -25,10 +28,10 @@ BATTLE_TOWER_STRUCT_LENGTH EQUS "(NAME_LENGTH + BATTLETOWER_PARTY_LENGTH * NICKN
const BATTLETOWERACTION_0D ; more time stuff in SRAM bank 5
const BATTLETOWERACTION_EGGTICKET
const BATTLETOWERACTION_0F ; check w3_d090
const BATTLETOWERACTION_10 ; dw based on 5:a800
const BATTLETOWERACTION_11 ; store 0 in 5:aa8d
const BATTLETOWERACTION_12 ; store 1 in 5:aa8d
const BATTLETOWERACTION_13 ; check 5:aa8d
const BATTLETOWERACTION_10 ; dw based on s5_a800
const BATTLETOWERACTION_11 ; store 0 in s5_aa8d
const BATTLETOWERACTION_12 ; store 1 in s5_aa8d
const BATTLETOWERACTION_13 ; check s5_aa8d
const BATTLETOWERACTION_14 ; if save file is yours: bit 0, [sBattleTowerSaveFileFlags]
const BATTLETOWERACTION_15 ; set 0, [sBattleTowerSaveFileFlags]
const BATTLETOWERACTION_16 ; update time in SRAM bank 5
@ -44,7 +47,7 @@ BATTLE_TOWER_STRUCT_LENGTH EQUS "(NAME_LENGTH + BATTLETOWER_PARTY_LENGTH * NICKN
; BattleTowerAction return values
; - from BATTLETOWERACTION_CHECKMOBILEEVENT
MOBILE_EVENT_OBJECT_GS_BALL EQU $b
DEF MOBILE_EVENT_OBJECT_GS_BALL EQU $b
; BattleTowerText arguments (see engine/events/battle_tower/trainer_text.asm)
const_def 1
@ -56,6 +59,6 @@ MOBILE_EVENT_OBJECT_GS_BALL EQU $b
const_def
const BATTLETOWER_NO_CHALLENGE
const BATTLETOWER_SAVED_AND_LEFT
const BATTLETOWER_CHALLENGE_IN_PROGESS
const BATTLETOWER_CHALLENGE_IN_PROGRESS
const BATTLETOWER_WON_CHALLENGE
const BATTLETOWER_RECEIVED_REWARD

View File

@ -1,129 +1,129 @@
; collision permissions (see data/collision_permissions.asm)
LANDTILE EQU $00
WATERTILE EQU $01
WALLTILE EQU $0f
TALK EQU $10
; collision permissions (see data/collision/collision_permissions.asm)
DEF LAND_TILE EQU $00
DEF WATER_TILE EQU $01
DEF WALL_TILE EQU $0f
DEF TALK EQU $10
; collision data types (see data/tilesets/*_collision.asm)
; TileCollisionTable indexes (see data/collision_permissions.asm)
COLL_FLOOR EQU $00
COLL_01 EQU $01 ; garbage
COLL_03 EQU $03 ; garbage
COLL_04 EQU $04 ; garbage
COLL_WALL EQU $07
COLL_CUT_08 EQU $08 ; unused
COLL_TALL_GRASS_10 EQU $10 ; unused
COLL_CUT_TREE EQU $12
COLL_LONG_GRASS EQU $14
COLL_HEADBUTT_TREE EQU $15
COLL_TALL_GRASS EQU $18
COLL_CUT_TREE_1A EQU $1a ; unused
COLL_LONG_GRASS_1C EQU $1c ; unused
COLL_HEADBUTT_TREE_1D EQU $1d ; unused
COLL_WATER_21 EQU $21 ; ???
COLL_ICE EQU $23
COLL_WHIRLPOOL EQU $24
COLL_BUOY EQU $27
COLL_CUT_28 EQU $28 ; garbage
COLL_WATER EQU $29
COLL_ICE_2B EQU $2b ; unused
COLL_WHIRLPOOL_2C EQU $2c ; unused
COLL_WATERFALL_RIGHT EQU $30 ; unused
COLL_WATERFALL_LEFT EQU $31 ; unused
COLL_WATERFALL_UP EQU $32 ; unused
COLL_WATERFALL EQU $33
COLL_CURRENT_RIGHT EQU $38 ; unused
COLL_CURRENT_LEFT EQU $39 ; unused
COLL_CURRENT_UP EQU $3a ; unused
COLL_CURRENT_DOWN EQU $3b ; unused
COLL_BRAKE EQU $40 ; unused
COLL_WALK_RIGHT EQU $41 ; unused
COLL_WALK_LEFT EQU $42 ; unused
COLL_WALK_UP EQU $43 ; unused
COLL_WALK_DOWN EQU $44 ; unused
COLL_BRAKE_45 EQU $45 ; garbage
COLL_BRAKE_46 EQU $46 ; unused
COLL_BRAKE_47 EQU $47 ; unused
COLL_GRASS_48 EQU $48 ; unused
COLL_GRASS_49 EQU $49 ; unused
COLL_GRASS_4A EQU $4a ; garbage
COLL_GRASS_4B EQU $4b ; garbage
COLL_GRASS_4C EQU $4c ; unused
COLL_WALK_RIGHT_ALT EQU $50 ; unused
COLL_WALK_LEFT_ALT EQU $51 ; unused
COLL_WALK_UP_ALT EQU $52 ; unused
COLL_WALK_DOWN_ALT EQU $53 ; unused
COLL_BRAKE_ALT EQU $54 ; unused
COLL_BRAKE_55 EQU $55 ; unused
COLL_BRAKE_56 EQU $56 ; unused
COLL_BRAKE_57 EQU $57 ; unused
COLL_5B EQU $5b ; garbage
COLL_PIT EQU $60
COLL_VIRTUAL_BOY EQU $61 ; garbage
COLL_64 EQU $64 ; garbage
COLL_65 EQU $65 ; garbage
COLL_PIT_68 EQU $68 ; unused
COLL_WARP_CARPET_DOWN EQU $70
COLL_DOOR EQU $71
COLL_LADDER EQU $72
COLL_STAIRCASE_73 EQU $73 ; unused
COLL_CAVE_74 EQU $74 ; unused
COLL_DOOR_75 EQU $75 ; unused
COLL_WARP_CARPET_LEFT EQU $76
COLL_WARP_77 EQU $77 ; unused
COLL_WARP_CARPET_UP EQU $78
COLL_DOOR_79 EQU $79 ; unused
COLL_STAIRCASE EQU $7a
COLL_CAVE EQU $7b
COLL_WARP_PANEL EQU $7c
COLL_DOOR_7D EQU $7d ; unused
COLL_WARP_CARPET_RIGHT EQU $7e
COLL_WARP_7F EQU $7f ; unused
COLL_COUNTER EQU $90
COLL_BOOKSHELF EQU $91
COLL_PC EQU $93
COLL_RADIO EQU $94
COLL_TOWN_MAP EQU $95
COLL_MART_SHELF EQU $96
COLL_TV EQU $97
COLL_COUNTER_98 EQU $98 ; unused
COLL_9C EQU $9c ; garbage
COLL_WINDOW EQU $9d
COLL_INCENSE_BURNER EQU $9f
COLL_HOP_RIGHT EQU $a0
COLL_HOP_LEFT EQU $a1
COLL_HOP_UP EQU $a2 ; unused
COLL_HOP_DOWN EQU $a3
COLL_HOP_DOWN_RIGHT EQU $a4
COLL_HOP_DOWN_LEFT EQU $a5
COLL_HOP_UP_RIGHT EQU $a6 ; unused
COLL_HOP_UP_LEFT EQU $a7 ; unused
COLL_RIGHT_WALL EQU $b0
COLL_LEFT_WALL EQU $b1
COLL_UP_WALL EQU $b2
COLL_DOWN_WALL EQU $b3 ; unused
COLL_DOWN_RIGHT_WALL EQU $b4 ; unused
COLL_DOWN_LEFT_WALL EQU $b5 ; unused
COLL_UP_RIGHT_WALL EQU $b6 ; unused
COLL_UP_LEFT_WALL EQU $b7 ; unused
COLL_RIGHT_BUOY EQU $c0 ; unused
COLL_LEFT_BUOY EQU $c1 ; unused
COLL_UP_BUOY EQU $c2 ; unused
COLL_DOWN_BUOY EQU $c3 ; unused
COLL_DOWN_RIGHT_BUOY EQU $c4 ; unused
COLL_DOWN_LEFT_BUOY EQU $c5 ; unused
COLL_UP_RIGHT_BUOY EQU $c6 ; unused
COLL_UP_LEFT_BUOY EQU $c7 ; unused
COLL_FF EQU $ff ; garbage
; TileCollisionTable indexes (see data/collision/collision_permissions.asm)
DEF COLL_FLOOR EQU $00
DEF COLL_01 EQU $01 ; garbage
DEF COLL_03 EQU $03 ; garbage
DEF COLL_04 EQU $04 ; garbage
DEF COLL_WALL EQU $07
DEF COLL_CUT_08 EQU $08 ; unused
DEF COLL_TALL_GRASS_10 EQU $10 ; unused
DEF COLL_CUT_TREE EQU $12
DEF COLL_LONG_GRASS EQU $14
DEF COLL_HEADBUTT_TREE EQU $15
DEF COLL_TALL_GRASS EQU $18
DEF COLL_CUT_TREE_1A EQU $1a ; unused
DEF COLL_LONG_GRASS_1C EQU $1c ; unused
DEF COLL_HEADBUTT_TREE_1D EQU $1d ; unused
DEF COLL_WATER_21 EQU $21 ; unused
DEF COLL_ICE EQU $23
DEF COLL_WHIRLPOOL EQU $24
DEF COLL_BUOY EQU $27
DEF COLL_CUT_28 EQU $28 ; garbage
DEF COLL_WATER EQU $29
DEF COLL_ICE_2B EQU $2b ; unused
DEF COLL_WHIRLPOOL_2C EQU $2c ; unused
DEF COLL_WATERFALL_RIGHT EQU $30 ; unused
DEF COLL_WATERFALL_LEFT EQU $31 ; unused
DEF COLL_WATERFALL_UP EQU $32 ; unused
DEF COLL_WATERFALL EQU $33
DEF COLL_CURRENT_RIGHT EQU $38 ; unused
DEF COLL_CURRENT_LEFT EQU $39 ; unused
DEF COLL_CURRENT_UP EQU $3a ; unused
DEF COLL_CURRENT_DOWN EQU $3b ; unused
DEF COLL_BRAKE EQU $40 ; unused
DEF COLL_WALK_RIGHT EQU $41 ; unused
DEF COLL_WALK_LEFT EQU $42 ; unused
DEF COLL_WALK_UP EQU $43 ; unused
DEF COLL_WALK_DOWN EQU $44 ; unused
DEF COLL_BRAKE_45 EQU $45 ; garbage
DEF COLL_BRAKE_46 EQU $46 ; unused
DEF COLL_BRAKE_47 EQU $47 ; unused
DEF COLL_GRASS_48 EQU $48 ; unused
DEF COLL_GRASS_49 EQU $49 ; unused
DEF COLL_GRASS_4A EQU $4a ; garbage
DEF COLL_GRASS_4B EQU $4b ; garbage
DEF COLL_GRASS_4C EQU $4c ; unused
DEF COLL_WALK_RIGHT_ALT EQU $50 ; unused
DEF COLL_WALK_LEFT_ALT EQU $51 ; unused
DEF COLL_WALK_UP_ALT EQU $52 ; unused
DEF COLL_WALK_DOWN_ALT EQU $53 ; unused
DEF COLL_BRAKE_ALT EQU $54 ; unused
DEF COLL_BRAKE_55 EQU $55 ; unused
DEF COLL_BRAKE_56 EQU $56 ; unused
DEF COLL_BRAKE_57 EQU $57 ; unused
DEF COLL_5B EQU $5b ; garbage
DEF COLL_PIT EQU $60
DEF COLL_VIRTUAL_BOY EQU $61 ; garbage
DEF COLL_64 EQU $64 ; garbage
DEF COLL_65 EQU $65 ; garbage
DEF COLL_PIT_68 EQU $68 ; unused
DEF COLL_WARP_CARPET_DOWN EQU $70
DEF COLL_DOOR EQU $71
DEF COLL_LADDER EQU $72
DEF COLL_STAIRCASE_73 EQU $73 ; unused
DEF COLL_CAVE_74 EQU $74 ; unused
DEF COLL_DOOR_75 EQU $75 ; unused
DEF COLL_WARP_CARPET_LEFT EQU $76
DEF COLL_WARP_77 EQU $77 ; unused
DEF COLL_WARP_CARPET_UP EQU $78
DEF COLL_DOOR_79 EQU $79 ; unused
DEF COLL_STAIRCASE EQU $7a
DEF COLL_CAVE EQU $7b
DEF COLL_WARP_PANEL EQU $7c
DEF COLL_DOOR_7D EQU $7d ; unused
DEF COLL_WARP_CARPET_RIGHT EQU $7e
DEF COLL_WARP_7F EQU $7f ; unused
DEF COLL_COUNTER EQU $90
DEF COLL_BOOKSHELF EQU $91
DEF COLL_PC EQU $93
DEF COLL_RADIO EQU $94
DEF COLL_TOWN_MAP EQU $95
DEF COLL_MART_SHELF EQU $96
DEF COLL_TV EQU $97
DEF COLL_COUNTER_98 EQU $98 ; unused
DEF COLL_9C EQU $9c ; garbage
DEF COLL_WINDOW EQU $9d
DEF COLL_INCENSE_BURNER EQU $9f
DEF COLL_HOP_RIGHT EQU $a0
DEF COLL_HOP_LEFT EQU $a1
DEF COLL_HOP_UP EQU $a2 ; unused
DEF COLL_HOP_DOWN EQU $a3
DEF COLL_HOP_DOWN_RIGHT EQU $a4
DEF COLL_HOP_DOWN_LEFT EQU $a5
DEF COLL_HOP_UP_RIGHT EQU $a6 ; unused
DEF COLL_HOP_UP_LEFT EQU $a7 ; unused
DEF COLL_RIGHT_WALL EQU $b0
DEF COLL_LEFT_WALL EQU $b1
DEF COLL_UP_WALL EQU $b2
DEF COLL_DOWN_WALL EQU $b3 ; unused
DEF COLL_DOWN_RIGHT_WALL EQU $b4 ; unused
DEF COLL_DOWN_LEFT_WALL EQU $b5 ; unused
DEF COLL_UP_RIGHT_WALL EQU $b6 ; unused
DEF COLL_UP_LEFT_WALL EQU $b7 ; unused
DEF COLL_RIGHT_BUOY EQU $c0 ; unused
DEF COLL_LEFT_BUOY EQU $c1 ; unused
DEF COLL_UP_BUOY EQU $c2 ; unused
DEF COLL_DOWN_BUOY EQU $c3 ; unused
DEF COLL_DOWN_RIGHT_BUOY EQU $c4 ; unused
DEF COLL_DOWN_LEFT_BUOY EQU $c5 ; unused
DEF COLL_UP_RIGHT_BUOY EQU $c6 ; unused
DEF COLL_UP_LEFT_BUOY EQU $c7 ; unused
DEF COLL_FF EQU $ff ; garbage
; collision data type nybbles
LO_NYBBLE_GRASS EQU $07
HI_NYBBLE_TALL_GRASS EQU $10
HI_NYBBLE_WATER EQU $20
HI_NYBBLE_CURRENT EQU $30
HI_NYBBLE_WALK EQU $40
HI_NYBBLE_WALK_ALT EQU $50
HI_NYBBLE_WARPS EQU $70
HI_NYBBLE_LEDGES EQU $a0
HI_NYBBLE_SIDE_WALLS EQU $b0
HI_NYBBLE_SIDE_BUOYS EQU $c0
DEF LO_NYBBLE_GRASS EQU $07
DEF HI_NYBBLE_TALL_GRASS EQU $10
DEF HI_NYBBLE_WATER EQU $20
DEF HI_NYBBLE_CURRENT EQU $30
DEF HI_NYBBLE_WALK EQU $40
DEF HI_NYBBLE_WALK_ALT EQU $50
DEF HI_NYBBLE_WARPS EQU $70
DEF HI_NYBBLE_LEDGES EQU $a0
DEF HI_NYBBLE_SIDE_WALLS EQU $b0
DEF HI_NYBBLE_SIDE_BUOYS EQU $c0

View File

@ -1,4 +1,4 @@
; CreditsStrings indexes (see data/credits_strings.asm)
; CreditsStringsPointers indexes (see data/credits_strings.asm)
const_def
const SATOSHI_TAJIRI
const JUNICHI_MASUDA
@ -103,13 +103,14 @@
const US_COORDINATION
const TEXT_TRANSLATION
const PAAD_TESTING
DEF NUM_CREDITS_STRINGS EQU const_value
; CreditsScript indexes (see data/credits_script.asm)
const_def -7
const CREDITS_THEEND
const CREDITS_WAIT2
const CREDITS_MUSIC
const CREDITS_CLEAR
const CREDITS_SCENE
const CREDITS_WAIT
const_def -1, -1
const CREDITS_END
const CREDITS_WAIT
const CREDITS_SCENE
const CREDITS_CLEAR
const CREDITS_MUSIC
const CREDITS_WAIT2
const CREDITS_THEEND

View File

@ -72,3 +72,5 @@
const CRY_AIPOM
const CRY_DUNSPARCE
const CRY_DONPHAN
DEF NUM_CRIES EQU const_value

View File

@ -1,19 +1,30 @@
; decoration attributes
rsreset
DEF DECOATTR_TYPE rb
DEF DECOATTR_NAME rb
DEF DECOATTR_ACTION rb
DEF DECOATTR_EVENT_FLAG rw
DEF DECOATTR_SPRITE rb
DEF DECOATTR_STRUCT_LENGTH EQU _RS
; decoration types
const_value = 1
const_def 1
const DECO_PLANT
const DECO_BED
const DECO_CARPET
const DECO_POSTER
const DECO_DOLL
const DECO_BIGDOLL
DEF NUM_DECO_TYPES EQU const_value - 1
; DecorationNames indexes (see data/decorations/names.asm)
const_value = 1
const_def
const CANCEL_DECO
const PUT_IT_AWAY
const MAGNAPLANT
const TROPICPLANT
const JUMBOPLANT
const TOWN_MAP_D
const TOWN_MAP_POSTER
const FAMICOM
const SUPER_NES
const NINTENDO_64
@ -34,9 +45,10 @@ const_value = 1
const BLUE_CARPET
const YELLOW_CARPET
const GREEN_CARPET
DEF NUM_DECO_NAMES EQU const_value
; DoDecorationAction2.DecoActions indexes (see engine/overworld/decorations.asm)
const_value = 1
const_def 1
const SET_UP_BED
const PUT_AWAY_BED
const SET_UP_CARPET
@ -51,19 +63,20 @@ const_value = 1
const PUT_AWAY_BIG_DOLL
const SET_UP_DOLL
const PUT_AWAY_DOLL
const SET_UP_ORNAMENT
const PUT_AWAY_ORNAMENT
DEF NUM_DECO_ACTIONS EQU const_value - 1
deco: MACRO
DEF __deco_value__ = 0
MACRO deco
const DECO_\1
enum DECOFLAG_\1
DEF DECOFLAG_\1 EQU __deco_value__
DEF __deco_value__ += 1
ENDM
; decorations:
; - DecorationAttributes (see data/decorations/attributes.asm)
; - DecorationIDs (see data/decorations/decorations.asm)
const_def 1
enum_start
; FindOwnedBeds.beds values (see engine/overworld/decorations.asm)
const BEDS
deco FEATHERY_BED
@ -121,7 +134,8 @@ ENDM
deco GEODUDE_DOLL
deco MACHOP_DOLL
deco TENTACOOL_DOLL
NUM_NON_TROPHY_DECOS EQU __enum__
DEF NUM_NON_TROPHY_DECOS EQU __deco_value__
deco GOLD_TROPHY_DOLL
deco SILVER_TROPHY_DOLL
NUM_DECOS EQU __enum__
DEF NUM_DECOS EQU __deco_value__
DEF NUM_DECO_CATEGORIES EQU const_value - 1 - NUM_DECOS

View File

@ -1,4 +1,4 @@
; EngineFlags indexes (see engine/engine_flags.asm)
; EngineFlags indexes (see data/events/engine_flags.asm)
const_def
; wPokegearFlags
const ENGINE_RADIO_CARD
@ -15,14 +15,14 @@
const ENGINE_MOM_SAVING_MONEY
const ENGINE_MOM_ACTIVE
; wUnusedTwoDayTimerOn
const ENGINE_0A
const ENGINE_UNUSED_TWO_DAY_TIMER_ON
; wStatusFlags
const ENGINE_POKEDEX
const ENGINE_UNOWN_DEX
const ENGINE_CAUGHT_POKERUS
const ENGINE_ROCKET_SIGNAL_ON_CH20
const ENGINE_CREDITS_SKIP
const ENGINE_MAIN_MENU_MOBILE_CHOICES ; 10
const ENGINE_MAIN_MENU_MOBILE_CHOICES
; wStatusFlags2
const ENGINE_BUG_CONTEST_TIMER
const ENGINE_SAFARI_ZONE
@ -41,7 +41,7 @@
const ENGINE_PLAINBADGE
const ENGINE_FOGBADGE
const ENGINE_MINERALBADGE
const ENGINE_STORMBADGE ; 20
const ENGINE_STORMBADGE
const ENGINE_GLACIERBADGE
const ENGINE_RISINGBADGE
; wKantoBadges
@ -59,12 +59,12 @@
const ENGINE_UNLOCKED_UNOWNS_S_TO_W
const ENGINE_UNLOCKED_UNOWNS_X_TO_Z
const ENGINE_UNLOCKED_UNOWNS_UNUSED_4
const ENGINE_UNLOCKED_UNOWNS_UNUSED_5 ; 30
const ENGINE_UNLOCKED_UNOWNS_UNUSED_5
const ENGINE_UNLOCKED_UNOWNS_UNUSED_6
const ENGINE_UNLOCKED_UNOWNS_UNUSED_7
; wVisitedSpawns
const ENGINE_FLYPOINT_PLAYERS_HOUSE
const ENGINE_FLYPOINT_VIRIDIAN_POKECENTER
const ENGINE_FLYPOINT_DEBUG
const ENGINE_FLYPOINT_PALLET
const ENGINE_FLYPOINT_VIRIDIAN
const ENGINE_FLYPOINT_PEWTER
@ -76,7 +76,7 @@
const ENGINE_FLYPOINT_CELADON
const ENGINE_FLYPOINT_FUCHSIA
const ENGINE_FLYPOINT_CINNABAR
const ENGINE_FLYPOINT_INDIGO_PLATEAU ; 40
const ENGINE_FLYPOINT_INDIGO_PLATEAU
const ENGINE_FLYPOINT_NEW_BARK
const ENGINE_FLYPOINT_CHERRYGROVE
const ENGINE_FLYPOINT_VIOLET
@ -95,9 +95,9 @@
; wStatusFlags2
const ENGINE_4F
; wDailyFlags1
const ENGINE_KURT_MAKING_BALLS ; 50
const ENGINE_KURT_MAKING_BALLS
const ENGINE_DAILY_BUG_CONTEST
const ENGINE_FISH_SWARM
const ENGINE_QWILFISH_SWARM
const ENGINE_TIME_CAPSULE
const ENGINE_ALL_FRUIT_TREES
const ENGINE_GOT_SHUCKIE_TODAY
@ -113,44 +113,44 @@
const ENGINE_DAILY_MOVE_TUTOR
const ENGINE_BUENAS_PASSWORD
; wSwarmFlags
const ENGINE_BUENAS_PASSWORD_2 ; 60
const ENGINE_BUENAS_PASSWORD_2
const ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
; wGameTimerPause
; wGameTimerPaused
const ENGINE_62
; wPlayerGender
const ENGINE_PLAYER_IS_FEMALE
; wCelebiEvent
const ENGINE_FOREST_IS_RESTLESS
; wDailyRematchFlags
const ENGINE_JACK
const ENGINE_HUEY
const ENGINE_GAVEN
const ENGINE_BETH
const ENGINE_JOSE
const ENGINE_REENA
const ENGINE_JOEY
const ENGINE_WADE
const ENGINE_RALPH
const ENGINE_LIZ
const ENGINE_ANTHONY
const ENGINE_TODD ; 70
const ENGINE_GINA
const ENGINE_ARNIE
const ENGINE_ALAN
const ENGINE_DANA
const ENGINE_CHAD
const ENGINE_TULLY
const ENGINE_BRENT
const ENGINE_TIFFANY
const ENGINE_VANCE
const ENGINE_WILTON
const ENGINE_PARRY
const ENGINE_ERIN
const ENGINE_JACK_READY_FOR_REMATCH
const ENGINE_HUEY_READY_FOR_REMATCH
const ENGINE_GAVEN_READY_FOR_REMATCH
const ENGINE_BETH_READY_FOR_REMATCH
const ENGINE_JOSE_READY_FOR_REMATCH
const ENGINE_REENA_READY_FOR_REMATCH
const ENGINE_JOEY_READY_FOR_REMATCH
const ENGINE_WADE_READY_FOR_REMATCH
const ENGINE_RALPH_READY_FOR_REMATCH
const ENGINE_LIZ_READY_FOR_REMATCH
const ENGINE_ANTHONY_READY_FOR_REMATCH
const ENGINE_TODD_READY_FOR_REMATCH
const ENGINE_GINA_READY_FOR_REMATCH
const ENGINE_ARNIE_READY_FOR_REMATCH
const ENGINE_ALAN_READY_FOR_REMATCH
const ENGINE_DANA_READY_FOR_REMATCH
const ENGINE_CHAD_READY_FOR_REMATCH
const ENGINE_TULLY_READY_FOR_REMATCH
const ENGINE_BRENT_READY_FOR_REMATCH
const ENGINE_TIFFANY_READY_FOR_REMATCH
const ENGINE_VANCE_READY_FOR_REMATCH
const ENGINE_WILTON_READY_FOR_REMATCH
const ENGINE_PARRY_READY_FOR_REMATCH
const ENGINE_ERIN_READY_FOR_REMATCH
; wDailyPhoneItemFlags
const ENGINE_BEVERLY_HAS_NUGGET
const ENGINE_JOSE_HAS_STAR_PIECE
const ENGINE_WADE_HAS_ITEM
const ENGINE_GINA_HAS_LEAF_STONE ; 80
const ENGINE_GINA_HAS_LEAF_STONE
const ENGINE_ALAN_HAS_FIRE_STONE
const ENGINE_DANA_HAS_THUNDERSTONE
const ENGINE_DEREK_HAS_NUGGET
@ -167,7 +167,7 @@
const ENGINE_JOEY_MONDAY_AFTERNOON
const ENGINE_WADE_TUESDAY_NIGHT
const ENGINE_RALPH_WEDNESDAY_MORNING
const ENGINE_LIZ_THURSDAY_AFTERNOON ; 90
const ENGINE_LIZ_THURSDAY_AFTERNOON
const ENGINE_ANTHONY_FRIDAY_NIGHT
const ENGINE_TODD_SATURDAY_MORNING
const ENGINE_GINA_SUNDAY_AFTERNOON
@ -185,6 +185,6 @@
; wPlayerSpriteSetupFlags
const ENGINE_KRIS_IN_CABLE_CLUB
; wSwarmFlags
const ENGINE_DUNSPARCE_SWARM ; a0
const ENGINE_DUNSPARCE_SWARM
const ENGINE_YANMA_SWARM
NUM_ENGINE_FLAGS EQU const_value
DEF NUM_ENGINE_FLAGS EQU const_value

File diff suppressed because it is too large Load Diff

View File

@ -1,47 +1,48 @@
TILE_WIDTH EQU 8 ; pixels
LEN_1BPP_TILE EQU 1 * TILE_WIDTH ; bytes
LEN_2BPP_TILE EQU 2 * TILE_WIDTH ; bytes
DEF TILE_WIDTH EQU 8 ; pixels
DEF LEN_1BPP_TILE EQU 1 * TILE_WIDTH ; bytes
DEF LEN_2BPP_TILE EQU 2 * TILE_WIDTH ; bytes
NUM_PAL_COLORS EQU 4
PAL_COLOR_SIZE EQU 2
PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE
DEF NUM_PAL_COLORS EQU 4
DEF PAL_COLOR_SIZE EQU 2
DEF PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE
PALRGB_WHITE EQUS "palred 31 + palgreen 31 + palblue 31" ; $7fff
DEF PALRGB_WHITE EQU palred 31 + palgreen 31 + palblue 31 ; $7fff
SCREEN_WIDTH EQU 20 ; tiles
SCREEN_HEIGHT EQU 18 ; tiles
SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels
SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels
DEF SCREEN_WIDTH EQU 20 ; tiles
DEF SCREEN_HEIGHT EQU 18 ; tiles
DEF SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels
DEF SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels
BG_MAP_WIDTH EQU 32 ; tiles
BG_MAP_HEIGHT EQU 32 ; tiles
DEF BG_MAP_WIDTH EQU 32 ; tiles
DEF BG_MAP_HEIGHT EQU 32 ; tiles
METATILE_WIDTH EQU 4 ; tiles
SCREEN_META_WIDTH EQU 6 ; metatiles
SCREEN_META_HEIGHT EQU 5 ; metatiles
SURROUNDING_WIDTH EQU SCREEN_META_WIDTH * METATILE_WIDTH ; tiles
SURROUNDING_HEIGHT EQU SCREEN_META_HEIGHT * METATILE_WIDTH ; tiles
DEF METATILE_WIDTH EQU 4 ; tiles
DEF SCREEN_META_WIDTH EQU 6 ; metatiles
DEF SCREEN_META_HEIGHT EQU 5 ; metatiles
DEF SURROUNDING_WIDTH EQU SCREEN_META_WIDTH * METATILE_WIDTH ; tiles
DEF SURROUNDING_HEIGHT EQU SCREEN_META_HEIGHT * METATILE_WIDTH ; tiles
DEF MAP_CONNECTION_PADDING_WIDTH EQU 3 ; metatiles
HP_BAR_LENGTH EQU 6 ; tiles
EXP_BAR_LENGTH EQU 8 ; tiles
HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * TILE_WIDTH ; pixels
EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * TILE_WIDTH ; pixels
DEF HP_BAR_LENGTH EQU 6 ; tiles
DEF EXP_BAR_LENGTH EQU 8 ; tiles
DEF HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * TILE_WIDTH ; pixels
DEF EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * TILE_WIDTH ; pixels
; GetHPPal return values (see home.asm)
HP_GREEN EQU 0
HP_YELLOW EQU 1
HP_RED EQU 2
; GetHPPal return values (see home/tilemap.asm)
DEF HP_GREEN EQU 0
DEF HP_YELLOW EQU 1
DEF HP_RED EQU 2
; sprite_oam_struct members (see macros/wram.asm)
const_def
const SPRITEOAMSTRUCT_YCOORD ; 0
const SPRITEOAMSTRUCT_XCOORD ; 1
const SPRITEOAMSTRUCT_TILE_ID ; 2
const SPRITEOAMSTRUCT_ATTRIBUTES ; 3
SPRITEOAMSTRUCT_LENGTH EQU const_value
NUM_SPRITE_OAM_STRUCTS EQU 40 ; see wVirtualOAM
; sprite_oam_struct members (see macros/ram.asm)
rsreset
DEF SPRITEOAMSTRUCT_YCOORD rb ; 0
DEF SPRITEOAMSTRUCT_XCOORD rb ; 1
DEF SPRITEOAMSTRUCT_TILE_ID rb ; 2
DEF SPRITEOAMSTRUCT_ATTRIBUTES rb ; 3
DEF SPRITEOAMSTRUCT_LENGTH EQU _RS
DEF NUM_SPRITE_OAM_STRUCTS EQU 40 ; see wShadowOAM
SPRITE_GFX_LIST_CAPACITY EQU 32 ; see wUsedSprites
DEF SPRITE_GFX_LIST_CAPACITY EQU 32 ; see wUsedSprites
; PokeAnims indexes (see engine/gfx/pic_animation.asm)
const_def

View File

@ -1,164 +1,162 @@
; Graciously aped from:
; http://nocash.emubase.de/pandocs.htm
; Graciously derived from:
; https://gbdev.io/pandocs/
; https://github.com/gbdev/hardware.inc
; http://gameboy.mongenel.com/dmg/asmmemmap.html
; memory map
VRAM_Begin EQU $8000
VRAM_End EQU $a000
SRAM_Begin EQU $a000
SRAM_End EQU $c000
WRAM0_Begin EQU $c000
WRAM0_End EQU $d000
WRAM1_Begin EQU $d000
WRAM1_End EQU $e000
DEF VRAM_Begin EQU $8000
DEF VRAM_End EQU $a000
DEF SRAM_Begin EQU $a000
DEF SRAM_End EQU $c000
DEF WRAM0_Begin EQU $c000
DEF WRAM0_End EQU $d000
DEF WRAM1_Begin EQU $d000
DEF WRAM1_End EQU $e000
; hardware registers $ff00-$ff80 (see below)
HRAM_Begin EQU $ff80
HRAM_End EQU $ffff
DEF HRAM_Begin EQU $ff80
DEF HRAM_End EQU $ffff
; MBC3
MBC3SRamEnable EQU $0000
MBC3RomBank EQU $2000
MBC3SRamBank EQU $4000
MBC3LatchClock EQU $6000
MBC3RTC EQU $a000
DEF MBC3SRamEnable EQU $0000
DEF MBC3RomBank EQU $2000
DEF MBC3SRamBank EQU $4000
DEF MBC3LatchClock EQU $6000
DEF MBC3RTC EQU $a000
SRAM_DISABLE EQU $00
SRAM_ENABLE EQU $0a
DEF SRAM_DISABLE EQU $00
DEF SRAM_ENABLE EQU $0a
NUM_SRAM_BANKS EQU 4
DEF NUM_SRAM_BANKS EQU 8
RTC_S EQU $08 ; Seconds 0-59 (0-3Bh)
RTC_M EQU $09 ; Minutes 0-59 (0-3Bh)
RTC_H EQU $0a ; Hours 0-23 (0-17h)
RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh)
RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag
DEF RTC_S EQU $08 ; Seconds 0-59 (0-3Bh)
DEF RTC_M EQU $09 ; Minutes 0-59 (0-3Bh)
DEF RTC_H EQU $0a ; Hours 0-23 (0-17h)
DEF RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh)
DEF RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag
; Bit 0 Most significant bit of Day Counter (Bit 8)
; Bit 6 Halt (0=Active, 1=Stop Timer)
; Bit 7 Day Counter Carry Bit (1=Counter Overflow)
; interrupt flags
VBLANK EQU 0
LCD_STAT EQU 1
TIMER EQU 2
SERIAL EQU 3
JOYPAD EQU 4
IE_DEFAULT EQU (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
DEF VBLANK EQU 0
DEF LCD_STAT EQU 1
DEF TIMER EQU 2
DEF SERIAL EQU 3
DEF JOYPAD EQU 4
DEF IE_DEFAULT EQU (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
; OAM attribute flags
OAM_TILE_BANK EQU 3
OAM_OBP_NUM EQU 4 ; non CGB Mode Only
OAM_X_FLIP EQU 5
OAM_Y_FLIP EQU 6
OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
DEF OAM_TILE_BANK EQU 3
DEF OAM_OBP_NUM EQU 4 ; non CGB Mode Only
DEF OAM_X_FLIP EQU 5
DEF OAM_Y_FLIP EQU 6
DEF OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
; BG Map attribute flags
PALETTE_MASK EQU %111
VRAM_BANK_1 EQU 1 << OAM_TILE_BANK ; $08
OBP_NUM EQU 1 << OAM_OBP_NUM ; $10
X_FLIP EQU 1 << OAM_X_FLIP ; $20
Y_FLIP EQU 1 << OAM_Y_FLIP ; $40
PRIORITY EQU 1 << OAM_PRIORITY ; $80
DEF PALETTE_MASK EQU %111
DEF VRAM_BANK_1 EQU 1 << OAM_TILE_BANK ; $08
DEF OBP_NUM EQU 1 << OAM_OBP_NUM ; $10
DEF X_FLIP EQU 1 << OAM_X_FLIP ; $20
DEF Y_FLIP EQU 1 << OAM_Y_FLIP ; $40
DEF PRIORITY EQU 1 << OAM_PRIORITY ; $80
; Hardware registers
rJOYP EQU $ff00 ; Joypad (R/W)
rSB EQU $ff01 ; Serial transfer data (R/W)
rSC EQU $ff02 ; Serial Transfer Control (R/W)
rSC_ON EQU 7
rSC_CGB EQU 1
rSC_CLOCK EQU 0
rDIV EQU $ff04 ; Divider Register (R/W)
rTIMA EQU $ff05 ; Timer counter (R/W)
rTMA EQU $ff06 ; Timer Modulo (R/W)
rTAC EQU $ff07 ; Timer Control (R/W)
rTAC_ON EQU 2
rTAC_4096_HZ EQU 0
rTAC_262144_HZ EQU 1
rTAC_65536_HZ EQU 2
rTAC_16384_HZ EQU 3
rIF EQU $ff0f ; Interrupt Flag (R/W)
rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
rNR20 EQU $ff15 ; Channel 2 Sweep register (R/W)
rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W)
rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W)
rNR31 EQU $ff1b ; Channel 3 Sound Length
rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
rNR40 EQU $ff1f ; Channel 4 Sweep register (R/W)
rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Inital (R/W)
rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
rNR52 EQU $ff26 ; Sound on/off
rWave_0 EQU $ff30
rWave_1 EQU $ff31
rWave_2 EQU $ff32
rWave_3 EQU $ff33
rWave_4 EQU $ff34
rWave_5 EQU $ff35
rWave_6 EQU $ff36
rWave_7 EQU $ff37
rWave_8 EQU $ff38
rWave_9 EQU $ff39
rWave_a EQU $ff3a
rWave_b EQU $ff3b
rWave_c EQU $ff3c
rWave_d EQU $ff3d
rWave_e EQU $ff3e
rWave_f EQU $ff3f
rLCDC EQU $ff40 ; LCD Control (R/W)
rLCDC_BG_PRIORITY EQU 0 ; 0=Off, 1=On
rLCDC_SPRITES_ENABLE EQU 1 ; 0=Off, 1=On
rLCDC_SPRITE_SIZE EQU 2 ; 0=8x8, 1=8x16
rLCDC_BG_TILEMAP EQU 3 ; 0=9800-9BFF, 1=9C00-9FFF
rLCDC_TILE_DATA EQU 4 ; 0=8800-97FF, 1=8000-8FFF
rLCDC_WINDOW_ENABLE EQU 5 ; 0=Off, 1=On
rLCDC_WINDOW_TILEMAP EQU 6 ; 0=9800-9BFF, 1=9C00-9FFF
rLCDC_ENABLE EQU 7 ; 0=Off, 1=On
LCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << rLCDC_WINDOW_ENABLE) | (1 << rLCDC_SPRITES_ENABLE) | (1 << rLCDC_BG_PRIORITY)
rSTAT EQU $ff41 ; LCDC Status (R/W)
rSCY EQU $ff42 ; Scroll Y (R/W)
rSCX EQU $ff43 ; Scroll X (R/W)
rLY EQU $ff44 ; LCDC Y-Coordinate (R)
LY_VBLANK EQU 144
rLYC EQU $ff45 ; LY Compare (R/W)
rDMA EQU $ff46 ; DMA Transfer and Start Address (W)
rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only
rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only
rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
rWY EQU $ff4a ; Window Y Position (R/W)
rWX EQU $ff4b ; Window X Position minus 7 (R/W)
rLCDMODE EQU $ff4c
rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
rBLCK EQU $ff50
rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
rBGPI_AUTO_INCREMENT EQU 7 ; increment rBGPI after write to rBGPD
rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
rOBPI_AUTO_INCREMENT EQU 7 ; increment rOBPI after write to rOBPD
rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data
rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only
rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write)
rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write)
rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only
rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write)
rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only)
rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only)
rIE EQU $ffff ; Interrupt Enable (R/W)
DEF rJOYP EQU $ff00 ; Joypad (R/W)
DEF rSB EQU $ff01 ; Serial transfer data (R/W)
DEF rSC EQU $ff02 ; Serial Transfer Control (R/W)
DEF rSC_ON EQU 7
DEF rSC_CGB EQU 1
DEF rSC_CLOCK EQU 0
DEF rDIV EQU $ff04 ; Divider Register (R/W)
DEF rTIMA EQU $ff05 ; Timer counter (R/W)
DEF rTMA EQU $ff06 ; Timer Modulo (R/W)
DEF rTAC EQU $ff07 ; Timer Control (R/W)
DEF rTAC_ON EQU 2
DEF rTAC_4096_HZ EQU %00
DEF rTAC_262144_HZ EQU %01
DEF rTAC_65536_HZ EQU %10
DEF rTAC_16384_HZ EQU %11
DEF rIF EQU $ff0f ; Interrupt Flag (R/W)
DEF rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W)
DEF rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
DEF rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
DEF rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
DEF rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
DEF rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
DEF rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
DEF rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
DEF rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W)
DEF rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W)
DEF rNR31 EQU $ff1b ; Channel 3 Sound Length
DEF rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
DEF rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
DEF rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
DEF rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
DEF rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
DEF rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
DEF rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Inital (R/W)
DEF rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
DEF rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
DEF rNR52 EQU $ff26 ; Sound on/off
DEF rWave_0 EQU $ff30
DEF rWave_1 EQU $ff31
DEF rWave_2 EQU $ff32
DEF rWave_3 EQU $ff33
DEF rWave_4 EQU $ff34
DEF rWave_5 EQU $ff35
DEF rWave_6 EQU $ff36
DEF rWave_7 EQU $ff37
DEF rWave_8 EQU $ff38
DEF rWave_9 EQU $ff39
DEF rWave_a EQU $ff3a
DEF rWave_b EQU $ff3b
DEF rWave_c EQU $ff3c
DEF rWave_d EQU $ff3d
DEF rWave_e EQU $ff3e
DEF rWave_f EQU $ff3f
DEF rLCDC EQU $ff40 ; LCD Control (R/W)
DEF rLCDC_BG_PRIORITY EQU 0 ; 0=Off, 1=On
DEF rLCDC_SPRITES_ENABLE EQU 1 ; 0=Off, 1=On
DEF rLCDC_SPRITE_SIZE EQU 2 ; 0=8x8, 1=8x16
DEF rLCDC_BG_TILEMAP EQU 3 ; 0=9800-9BFF, 1=9C00-9FFF
DEF rLCDC_TILE_DATA EQU 4 ; 0=8800-97FF, 1=8000-8FFF
DEF rLCDC_WINDOW_ENABLE EQU 5 ; 0=Off, 1=On
DEF rLCDC_WINDOW_TILEMAP EQU 6 ; 0=9800-9BFF, 1=9C00-9FFF
DEF rLCDC_ENABLE EQU 7 ; 0=Off, 1=On
DEF LCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << rLCDC_WINDOW_ENABLE) | (1 << rLCDC_SPRITES_ENABLE) | (1 << rLCDC_BG_PRIORITY)
DEF rSTAT EQU $ff41 ; LCDC Status (R/W)
DEF rSCY EQU $ff42 ; Scroll Y (R/W)
DEF rSCX EQU $ff43 ; Scroll X (R/W)
DEF rLY EQU $ff44 ; LCDC Y-Coordinate (R)
DEF LY_VBLANK EQU 144
DEF rLYC EQU $ff45 ; LY Compare (R/W)
DEF rDMA EQU $ff46 ; DMA Transfer and Start Address (W)
DEF rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only
DEF rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only
DEF rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
DEF rWY EQU $ff4a ; Window Y Position (R/W)
DEF rWX EQU $ff4b ; Window X Position minus 7 (R/W)
DEF rLCDMODE EQU $ff4c
DEF rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
DEF rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
DEF rBLCK EQU $ff50
DEF rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
DEF rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
DEF rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
DEF rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low
DEF rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start
DEF rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port
DEF rRP_LED_ON EQU 0
DEF rRP_RECEIVING EQU 1
DEF rRP_ENABLE_READ_MASK EQU %11000000
DEF rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index
DEF rBGPI_AUTO_INCREMENT EQU 7 ; increment rBGPI after write to rBGPD
DEF rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data
DEF rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index
DEF rOBPI_AUTO_INCREMENT EQU 7 ; increment rOBPI after write to rOBPD
DEF rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data
DEF rOPRI EQU $ff6c ; CGB Mode Only - Object Priority Mode
DEF rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank
DEF rPCM12 EQU $ff76 ; Channel 1 & 2 Amplitude (R)
DEF rPCM34 EQU $ff77 ; Channel 3 & 4 Amplitude (R)
DEF rIE EQU $ffff ; Interrupt Enable (R/W)

View File

@ -39,6 +39,7 @@
const ICON_SLOWPOKE
const ICON_SUDOWOODO
const ICON_BIGMON
DEF NUM_ICONS EQU const_value - 1
; LoadMenuMonIcon.Jumptable indexes (see engine/gfx/mon_icons.asm)
const_def

View File

@ -9,18 +9,18 @@
const D_UP_F ; 6
const D_DOWN_F ; 7
NO_INPUT EQU %00000000
A_BUTTON EQU 1 << A_BUTTON_F
B_BUTTON EQU 1 << B_BUTTON_F
SELECT EQU 1 << SELECT_F
START EQU 1 << START_F
D_RIGHT EQU 1 << D_RIGHT_F
D_LEFT EQU 1 << D_LEFT_F
D_UP EQU 1 << D_UP_F
D_DOWN EQU 1 << D_DOWN_F
DEF NO_INPUT EQU %00000000
DEF A_BUTTON EQU 1 << A_BUTTON_F
DEF B_BUTTON EQU 1 << B_BUTTON_F
DEF SELECT EQU 1 << SELECT_F
DEF START EQU 1 << START_F
DEF D_RIGHT EQU 1 << D_RIGHT_F
DEF D_LEFT EQU 1 << D_LEFT_F
DEF D_UP EQU 1 << D_UP_F
DEF D_DOWN EQU 1 << D_DOWN_F
BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START
D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN
DEF BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START
DEF D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN
R_DPAD EQU %00100000
R_BUTTONS EQU %00010000
DEF R_DPAD EQU %00100000
DEF R_BUTTONS EQU %00010000

View File

@ -103,7 +103,7 @@
const MYSTIC_WATER ; 5f
const TWISTEDSPOON ; 60
const WHT_APRICORN ; 61
const BLACKBELT ; 62
const BLACKBELT_I ; 62
const BLK_APRICORN ; 63
const ITEM_64 ; 64
const PNK_APRICORN ; 65
@ -196,18 +196,27 @@
const MUSIC_MAIL ; bc
const MIRAGE_MAIL ; bd
const ITEM_BE ; be
DEF NUM_ITEMS EQU const_value - 1
add_tm: MACRO
if !DEF(TM01)
TM01 EQU const_value
enum_start 1
endc
define _\@_1, "TM_\1"
const _\@_1
enum \1_TMNUM
DEF __tmhm_value__ = 1
MACRO add_tmnum
DEF \1_TMNUM EQU __tmhm_value__
DEF __tmhm_value__ += 1
ENDM
MACRO add_tm
; Defines three constants:
; - TM_\1: the item id, starting at $bf
; - \1_TMNUM: the learnable TM/HM flag, starting at 1
; - TM##_MOVE: alias for the move id, equal to the value of \1
const TM_\1
DEF TM{02d:__tmhm_value__}_MOVE = \1
add_tmnum \1
ENDM
; see data/moves/tmhm_moves.asm for moves
DEF TM01 EQU const_value
add_tm DYNAMICPUNCH ; bf
add_tm HEADBUTT ; c0
add_tm CURSE ; c1
@ -260,17 +269,20 @@ ENDM
add_tm FIRE_PUNCH ; f0
add_tm FURY_CUTTER ; f1
add_tm NIGHTMARE ; f2
NUM_TMS EQU const_value - TM01 - 2 ; discount ITEM_C3 and ITEM_DC
DEF NUM_TMS EQU __tmhm_value__ - 1
add_hm: MACRO
if !DEF(HM01)
HM01 EQU const_value
endc
define _\@_1, "HM_\1"
const _\@_1
enum \1_TMNUM
MACRO add_hm
; Defines three constants:
; - HM_\1: the item id, starting at $f3
; - \1_TMNUM: the learnable TM/HM flag, starting at 51
; - HM##_MOVE: alias for the move id, equal to the value of \1
const HM_\1
DEF HM_VALUE = __tmhm_value__ - NUM_TMS
DEF HM{02d:HM_VALUE}_MOVE = \1
add_tmnum \1
ENDM
DEF HM01 EQU const_value
add_hm CUT ; f3
add_hm FLY ; f4
add_hm SURF ; f5
@ -278,23 +290,31 @@ ENDM
add_hm FLASH ; f7
add_hm WHIRLPOOL ; f8
add_hm WATERFALL ; f9
NUM_HMS EQU const_value - HM01
DEF NUM_HMS EQU __tmhm_value__ - NUM_TMS - 1
add_mt: MACRO
enum \1_TMNUM
MACRO add_mt
; Defines two constants:
; - \1_TMNUM: the learnable TM/HM flag, starting at 58
; - MT##_MOVE: alias for the move id, equal to the value of \1
DEF MT_VALUE = __tmhm_value__ - NUM_TMS - NUM_HMS
DEF MT{02d:MT_VALUE}_MOVE = \1
add_tmnum \1
ENDM
DEF MT01 EQU const_value
add_mt FLAMETHROWER
add_mt THUNDERBOLT
add_mt ICE_BEAM
NUM_TM_HM_TUTOR EQU __enum__ + -1
DEF NUM_TUTORS = __tmhm_value__ - NUM_TMS - NUM_HMS - 1
DEF NUM_TM_HM_TUTOR EQU NUM_TMS + NUM_HMS + NUM_TUTORS
const ITEM_FA ; fa
USE_SCRIPT_VAR EQU $00
ITEM_FROM_MEM EQU $ff
DEF USE_SCRIPT_VAR EQU $00
DEF ITEM_FROM_MEM EQU $ff
; leftovers from red
SAFARI_BALL EQU $08 ; MOON_STONE
MOON_STONE_RED EQU $0a ; BURN_HEAL
FULL_HEAL_RED EQU $34 ; X_SPEED
DEF SAFARI_BALL EQU $08 ; MOON_STONE
DEF MOON_STONE_RED EQU $0a ; BURN_HEAL
DEF FULL_HEAL_RED EQU $34 ; X_SPEED

View File

@ -1,13 +1,15 @@
; item_attributes struct members (see data/items/attributes.asm)
const_def
const ITEMATTR_PRICE
const ITEMATTR_PRICE_HI
const ITEMATTR_EFFECT
const ITEMATTR_PARAM
const ITEMATTR_PERMISSIONS
const ITEMATTR_POCKET
const ITEMATTR_HELP
ITEMATTR_STRUCT_LENGTH EQU const_value
rsreset
DEF ITEMATTR_PRICE rw
rsset ITEMATTR_PRICE
DEF ITEMATTR_PRICE_LO rb
DEF ITEMATTR_PRICE_HI rb
DEF ITEMATTR_EFFECT rb
DEF ITEMATTR_PARAM rb
DEF ITEMATTR_PERMISSIONS rb
DEF ITEMATTR_POCKET rb
DEF ITEMATTR_HELP rb
DEF ITEMATTR_STRUCT_LENGTH EQU _RS
; item types
const_def 1
@ -15,22 +17,25 @@ ITEMATTR_STRUCT_LENGTH EQU const_value
const KEY_ITEM ; 2
const BALL ; 3
const TM_HM ; 4
DEF NUM_ITEM_TYPES EQU const_value - 1
; item menu types
; UseItem.dw indexes (see engine/items/pack.asm)
; UseRegisteredItem.SwitchTo indexes (see engine/overworld/select_menu.asm)
ITEMMENU_NOUSE EQU 0
ITEMMENU_CURRENT EQU 4
ITEMMENU_PARTY EQU 5
ITEMMENU_CLOSE EQU 6
const_def
const ITEMMENU_NOUSE ; 0
const_skip 3
const ITEMMENU_CURRENT ; 4
const ITEMMENU_PARTY ; 5
const ITEMMENU_CLOSE ; 6
; item actions
CANT_SELECT_F EQU 6
CANT_TOSS_F EQU 7
DEF CANT_SELECT_F EQU 6
DEF CANT_TOSS_F EQU 7
NO_LIMITS EQU 0
CANT_SELECT EQU 1 << CANT_SELECT_F
CANT_TOSS EQU 1 << CANT_TOSS_F
DEF NO_LIMITS EQU 0
DEF CANT_SELECT EQU 1 << CANT_SELECT_F
DEF CANT_TOSS EQU 1 << CANT_TOSS_F
; pack pockets
const_def
@ -38,18 +43,21 @@ CANT_TOSS EQU 1 << CANT_TOSS_F
const BALL_POCKET ; 1
const KEY_ITEM_POCKET ; 2
const TM_HM_POCKET ; 3
NUM_POCKETS EQU const_value
DEF NUM_POCKETS EQU const_value
MAX_ITEMS EQU 20
MAX_BALLS EQU 12
MAX_KEY_ITEMS EQU 25
MAX_PC_ITEMS EQU 50
DEF MAX_ITEMS EQU 20
DEF MAX_BALLS EQU 12
DEF MAX_KEY_ITEMS EQU 25
DEF MAX_PC_ITEMS EQU 50
DEF MAX_ITEM_STACK EQU 99
; mail
MAIL_LINE_LENGTH EQU $10
MAIL_MSG_LENGTH EQU $20
MAILBOX_CAPACITY EQU 10
MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
DEF MAIL_LINE_LENGTH EQU $10
DEF MAIL_MSG_LENGTH EQU $20
DEF MAILBOX_CAPACITY EQU 10
DEF MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
DEF MAIL_STRUCT_LENGTH_JP EQU $2a ; mailmsg_jp struct
; held item effects
const_def
@ -57,13 +65,13 @@ MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
const HELD_BERRY
const HELD_2
const HELD_LEFTOVERS
const HELD_4
const_skip
const HELD_5
const HELD_RESTORE_PP
const HELD_7
const_skip
const HELD_CLEANSE_TAG
const_def 10
const_next 10
const HELD_HEAL_POISON
const HELD_HEAL_FREEZE
const HELD_HEAL_BURN
@ -72,7 +80,7 @@ MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
const HELD_HEAL_STATUS
const HELD_HEAL_CONFUSION
const_def 20
const_next 20
const HELD_PREVENT_POISON
const HELD_PREVENT_BURN
const HELD_PREVENT_FREEZE
@ -80,7 +88,7 @@ MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
const HELD_PREVENT_PARALYZE
const HELD_PREVENT_CONFUSE
const_def 30
const_next 30
const HELD_30
const HELD_ATTACK_UP
const HELD_DEFENSE_UP
@ -91,12 +99,12 @@ MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
const HELD_EVASION_UP
const HELD_38
const_def 40
const HELD_40
const HELD_41
const_next 40
const_skip
const_skip
const HELD_METAL_POWDER
const_def 50
const_next 50
const HELD_NORMAL_BOOST
const HELD_FIGHTING_BOOST
const HELD_FLYING_BOOST
@ -115,7 +123,7 @@ MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
const HELD_DARK_BOOST
const HELD_STEEL_BOOST
const_def 70
const_next 70
const HELD_CATCH_CHANCE
const HELD_71
const HELD_ESCAPE
@ -124,5 +132,5 @@ MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
const HELD_FLINCH
const HELD_AMULET_COIN
const HELD_BRIGHTPOWDER
const HELD_78
const_skip
const HELD_FOCUS_BAND

View File

@ -1,112 +1,112 @@
; Landmarks indexes (see data/maps/landmarks.asm)
const_def
const LANDMARK_SPECIAL ; 00
; Johto landmarks
const SPECIAL_MAP ; 00
const NEW_BARK_TOWN ; 01
const ROUTE_29 ; 02
const CHERRYGROVE_CITY ; 03
const ROUTE_30 ; 04
const ROUTE_31 ; 05
const VIOLET_CITY ; 06
const SPROUT_TOWER ; 07
const ROUTE_32 ; 08
const RUINS_OF_ALPH ; 09
const UNION_CAVE ; 0a
const ROUTE_33 ; 0b
const AZALEA_TOWN ; 0c
const SLOWPOKE_WELL ; 0d
const ILEX_FOREST ; 0e
const ROUTE_34 ; 0f
const GOLDENROD_CITY ; 10
const RADIO_TOWER ; 11
const ROUTE_35 ; 12
const NATIONAL_PARK ; 13
const ROUTE_36 ; 14
const ROUTE_37 ; 15
const ECRUTEAK_CITY ; 16
const TIN_TOWER ; 17
const BURNED_TOWER ; 18
const ROUTE_38 ; 19
const ROUTE_39 ; 1a
const OLIVINE_CITY ; 1b
const LIGHTHOUSE ; 1c
const BATTLE_TOWER ; 1d
const ROUTE_40 ; 1e
const WHIRL_ISLANDS ; 1f
const ROUTE_41 ; 20
const CIANWOOD_CITY ; 21
const ROUTE_42 ; 22
const MT_MORTAR ; 23
const MAHOGANY_TOWN ; 24
const ROUTE_43 ; 25
const LAKE_OF_RAGE ; 26
const ROUTE_44 ; 27
const ICE_PATH ; 28
const BLACKTHORN_CITY ; 29
const DRAGONS_DEN ; 2a
const ROUTE_45 ; 2b
const DARK_CAVE ; 2c
const ROUTE_46 ; 2d
const SILVER_CAVE ; 2e
KANTO_LANDMARK EQU const_value
const PALLET_TOWN ; 2f
const ROUTE_1 ; 30
const VIRIDIAN_CITY ; 31
const ROUTE_2 ; 32
const PEWTER_CITY ; 33
const ROUTE_3 ; 34
const MT_MOON ; 35
const ROUTE_4 ; 36
const CERULEAN_CITY ; 37
const ROUTE_24 ; 38
const ROUTE_25 ; 39
const ROUTE_5 ; 3a
const UNDERGROUND_PATH ; 3b
const ROUTE_6 ; 3c
const VERMILION_CITY ; 3d
const DIGLETTS_CAVE ; 3e
const ROUTE_7 ; 3f
const ROUTE_8 ; 40
const ROUTE_9 ; 41
const ROCK_TUNNEL ; 42
const ROUTE_10 ; 43
const POWER_PLANT ; 44
const LAVENDER_TOWN ; 45
const LAV_RADIO_TOWER ; 46
const CELADON_CITY ; 47
const SAFFRON_CITY ; 48
const ROUTE_11 ; 49
const ROUTE_12 ; 4a
const ROUTE_13 ; 4b
const ROUTE_14 ; 4c
const ROUTE_15 ; 4d
const ROUTE_16 ; 4e
const ROUTE_17 ; 4f
const ROUTE_18 ; 50
const FUCHSIA_CITY ; 51
const ROUTE_19 ; 52
const ROUTE_20 ; 53
const SEAFOAM_ISLANDS ; 54
const CINNABAR_ISLAND ; 55
const ROUTE_21 ; 56
const ROUTE_22 ; 57
const VICTORY_ROAD ; 58
const ROUTE_23 ; 59
const INDIGO_PLATEAU ; 5a
const ROUTE_26 ; 5b
const ROUTE_27 ; 5c
const TOHJO_FALLS ; 5d
const ROUTE_28 ; 5e
const FAST_SHIP ; 5f
const LANDMARK_NEW_BARK_TOWN ; 01
const LANDMARK_ROUTE_29 ; 02
const LANDMARK_CHERRYGROVE_CITY ; 03
const LANDMARK_ROUTE_30 ; 04
const LANDMARK_ROUTE_31 ; 05
const LANDMARK_VIOLET_CITY ; 06
const LANDMARK_SPROUT_TOWER ; 07
const LANDMARK_ROUTE_32 ; 08
const LANDMARK_RUINS_OF_ALPH ; 09
const LANDMARK_UNION_CAVE ; 0a
const LANDMARK_ROUTE_33 ; 0b
const LANDMARK_AZALEA_TOWN ; 0c
const LANDMARK_SLOWPOKE_WELL ; 0d
const LANDMARK_ILEX_FOREST ; 0e
const LANDMARK_ROUTE_34 ; 0f
const LANDMARK_GOLDENROD_CITY ; 10
const LANDMARK_RADIO_TOWER ; 11
const LANDMARK_ROUTE_35 ; 12
const LANDMARK_NATIONAL_PARK ; 13
const LANDMARK_ROUTE_36 ; 14
const LANDMARK_ROUTE_37 ; 15
const LANDMARK_ECRUTEAK_CITY ; 16
const LANDMARK_TIN_TOWER ; 17
const LANDMARK_BURNED_TOWER ; 18
const LANDMARK_ROUTE_38 ; 19
const LANDMARK_ROUTE_39 ; 1a
const LANDMARK_OLIVINE_CITY ; 1b
const LANDMARK_LIGHTHOUSE ; 1c
const LANDMARK_BATTLE_TOWER ; 1d
const LANDMARK_ROUTE_40 ; 1e
const LANDMARK_WHIRL_ISLANDS ; 1f
const LANDMARK_ROUTE_41 ; 20
const LANDMARK_CIANWOOD_CITY ; 21
const LANDMARK_ROUTE_42 ; 22
const LANDMARK_MT_MORTAR ; 23
const LANDMARK_MAHOGANY_TOWN ; 24
const LANDMARK_ROUTE_43 ; 25
const LANDMARK_LAKE_OF_RAGE ; 26
const LANDMARK_ROUTE_44 ; 27
const LANDMARK_ICE_PATH ; 28
const LANDMARK_BLACKTHORN_CITY ; 29
const LANDMARK_DRAGONS_DEN ; 2a
const LANDMARK_ROUTE_45 ; 2b
const LANDMARK_DARK_CAVE ; 2c
const LANDMARK_ROUTE_46 ; 2d
const LANDMARK_SILVER_CAVE ; 2e
DEF KANTO_LANDMARK EQU const_value
const LANDMARK_PALLET_TOWN ; 2f
const LANDMARK_ROUTE_1 ; 30
const LANDMARK_VIRIDIAN_CITY ; 31
const LANDMARK_ROUTE_2 ; 32
const LANDMARK_PEWTER_CITY ; 33
const LANDMARK_ROUTE_3 ; 34
const LANDMARK_MT_MOON ; 35
const LANDMARK_ROUTE_4 ; 36
const LANDMARK_CERULEAN_CITY ; 37
const LANDMARK_ROUTE_24 ; 38
const LANDMARK_ROUTE_25 ; 39
const LANDMARK_ROUTE_5 ; 3a
const LANDMARK_UNDERGROUND_PATH ; 3b
const LANDMARK_ROUTE_6 ; 3c
const LANDMARK_VERMILION_CITY ; 3d
const LANDMARK_DIGLETTS_CAVE ; 3e
const LANDMARK_ROUTE_7 ; 3f
const LANDMARK_ROUTE_8 ; 40
const LANDMARK_ROUTE_9 ; 41
const LANDMARK_ROCK_TUNNEL ; 42
const LANDMARK_ROUTE_10 ; 43
const LANDMARK_POWER_PLANT ; 44
const LANDMARK_LAVENDER_TOWN ; 45
const LANDMARK_LAV_RADIO_TOWER ; 46
const LANDMARK_CELADON_CITY ; 47
const LANDMARK_SAFFRON_CITY ; 48
const LANDMARK_ROUTE_11 ; 49
const LANDMARK_ROUTE_12 ; 4a
const LANDMARK_ROUTE_13 ; 4b
const LANDMARK_ROUTE_14 ; 4c
const LANDMARK_ROUTE_15 ; 4d
const LANDMARK_ROUTE_16 ; 4e
const LANDMARK_ROUTE_17 ; 4f
const LANDMARK_ROUTE_18 ; 50
const LANDMARK_FUCHSIA_CITY ; 51
const LANDMARK_ROUTE_19 ; 52
const LANDMARK_ROUTE_20 ; 53
const LANDMARK_SEAFOAM_ISLANDS ; 54
const LANDMARK_CINNABAR_ISLAND ; 55
const LANDMARK_ROUTE_21 ; 56
const LANDMARK_ROUTE_22 ; 57
const LANDMARK_VICTORY_ROAD ; 58
const LANDMARK_ROUTE_23 ; 59
const LANDMARK_INDIGO_PLATEAU ; 5a
const LANDMARK_ROUTE_26 ; 5b
const LANDMARK_ROUTE_27 ; 5c
const LANDMARK_TOHJO_FALLS ; 5d
const LANDMARK_ROUTE_28 ; 5e
const LANDMARK_FAST_SHIP ; 5f
DEF NUM_LANDMARKS EQU const_value
; used in CaughtData
GIFT_LOCATION EQU $7e
EVENT_LOCATION EQU $7f
const_def $7f, -1
const LANDMARK_EVENT ; $7f
const LANDMARK_GIFT ; $7e
; Regions
const_def
const JOHTO_REGION ; 0
const KANTO_REGION ; 1
NUM_REGIONS EQU const_value
DEF NUM_REGIONS EQU const_value

View File

@ -1,16 +1,25 @@
newgroup: MACRO
const_value = const_value + 1
enum_start 1
MACRO newgroup
;\1: group id
const_skip
DEF MAPGROUP_\1 EQU const_value
DEF CURRENT_NUM_MAPGROUP_MAPS EQUS "NUM_\1_MAPS"
DEF __map_value__ = 1
ENDM
map_const: MACRO
MACRO map_const
;\1: map id
;\2: width: in blocks
;\3: height: in blocks
GROUP_\1 EQU const_value
enum MAP_\1
\1_WIDTH EQU \2
\1_HEIGHT EQU \3
DEF GROUP_\1 EQU const_value
DEF MAP_\1 EQU __map_value__
DEF __map_value__ += 1
DEF \1_WIDTH EQU \2
DEF \1_HEIGHT EQU \3
ENDM
MACRO endgroup
DEF {CURRENT_NUM_MAPGROUP_MAPS} EQU __map_value__ - 1
PURGE CURRENT_NUM_MAPGROUP_MAPS
ENDM
; map group ids
@ -26,8 +35,7 @@ ENDM
; - scripts and events (see data/maps/scripts.asm)
const_def
newgroup ; 1
newgroup OLIVINE ; 1
map_const OLIVINE_POKECENTER_1F, 5, 4 ; 1
map_const OLIVINE_GYM, 5, 8 ; 2
map_const OLIVINE_TIMS_HOUSE, 4, 4 ; 3
@ -42,9 +50,9 @@ ENDM
map_const ROUTE_38, 20, 9 ; 12
map_const ROUTE_39, 10, 18 ; 13
map_const OLIVINE_CITY, 20, 18 ; 14
endgroup
newgroup ; 2
newgroup MAHOGANY ; 2
map_const MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, 4, 4 ; 1
map_const MAHOGANY_GYM, 5, 9 ; 2
map_const MAHOGANY_POKECENTER_1F, 5, 4 ; 3
@ -52,9 +60,9 @@ ENDM
map_const ROUTE_42, 30, 9 ; 5
map_const ROUTE_44, 30, 9 ; 6
map_const MAHOGANY_TOWN, 10, 9 ; 7
endgroup
newgroup ; 3
newgroup DUNGEONS ; 3
map_const SPROUT_TOWER_1F, 10, 8 ; 1
map_const SPROUT_TOWER_2F, 10, 8 ; 2
map_const SPROUT_TOWER_3F, 10, 8 ; 3
@ -146,21 +154,21 @@ ENDM
map_const SAFARI_ZONE_FUCHSIA_GATE_BETA, 5, 4 ; 89
map_const SAFARI_ZONE_BETA, 10, 18 ; 90
map_const VICTORY_ROAD, 10, 36 ; 91
endgroup
newgroup ; 4
newgroup ECRUTEAK ; 4
map_const ECRUTEAK_TIN_TOWER_ENTRANCE, 10, 9 ; 1
map_const WISE_TRIOS_ROOM, 4, 4 ; 2
map_const ECRUTEAK_POKECENTER_1F, 5, 4 ; 3
map_const ECRUTEAK_LUGIA_SPEECH_HOUSE, 4, 4 ; 4
map_const DANCE_THEATRE, 6, 7 ; 5
map_const DANCE_THEATER, 6, 7 ; 5
map_const ECRUTEAK_MART, 6, 4 ; 6
map_const ECRUTEAK_GYM, 5, 9 ; 7
map_const ECRUTEAK_ITEMFINDER_HOUSE, 4, 4 ; 8
map_const ECRUTEAK_CITY, 20, 18 ; 9
endgroup
newgroup ; 5
newgroup BLACKTHORN ; 5
map_const BLACKTHORN_GYM_1F, 5, 9 ; 1
map_const BLACKTHORN_GYM_2F, 5, 9 ; 2
map_const BLACKTHORN_DRAGON_SPEECH_HOUSE, 4, 4 ; 3
@ -171,9 +179,9 @@ ENDM
map_const ROUTE_45, 10, 45 ; 8
map_const ROUTE_46, 10, 18 ; 9
map_const BLACKTHORN_CITY, 20, 18 ; 10
endgroup
newgroup ; 6
newgroup CINNABAR ; 6
map_const CINNABAR_POKECENTER_1F, 5, 4 ; 1
map_const CINNABAR_POKECENTER_2F_BETA, 8, 4 ; 2
map_const ROUTE_19_FUCHSIA_GATE, 5, 4 ; 3
@ -182,9 +190,9 @@ ENDM
map_const ROUTE_20, 30, 9 ; 6
map_const ROUTE_21, 10, 18 ; 7
map_const CINNABAR_ISLAND, 10, 9 ; 8
endgroup
newgroup ; 7
newgroup CERULEAN ; 7
map_const CERULEAN_GYM_BADGE_SPEECH_HOUSE, 4, 4 ; 1
map_const CERULEAN_POLICE_STATION, 4, 4 ; 2
map_const CERULEAN_TRADE_SPEECH_HOUSE, 4, 4 ; 3
@ -202,9 +210,9 @@ ENDM
map_const ROUTE_24, 10, 9 ; 15
map_const ROUTE_25, 30, 9 ; 16
map_const CERULEAN_CITY, 20, 18 ; 17
endgroup
newgroup ; 8
newgroup AZALEA ; 8
map_const AZALEA_POKECENTER_1F, 5, 4 ; 1
map_const CHARCOAL_KILN, 4, 4 ; 2
map_const AZALEA_MART, 6, 4 ; 3
@ -212,18 +220,18 @@ ENDM
map_const AZALEA_GYM, 5, 8 ; 5
map_const ROUTE_33, 10, 9 ; 6
map_const AZALEA_TOWN, 20, 9 ; 7
endgroup
newgroup ; 9
newgroup LAKE_OF_RAGE ; 9
map_const LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 4, 4 ; 1
map_const LAKE_OF_RAGE_MAGIKARP_HOUSE, 4, 4 ; 2
map_const ROUTE_43_MAHOGANY_GATE, 5, 4 ; 3
map_const ROUTE_43_GATE, 5, 4 ; 4
map_const ROUTE_43, 10, 27 ; 5
map_const LAKE_OF_RAGE, 20, 18 ; 6
endgroup
newgroup ; 10
newgroup VIOLET ; 10
map_const ROUTE_32, 10, 45 ; 1
map_const ROUTE_35, 10, 18 ; 2
map_const ROUTE_36, 30, 9 ; 3
@ -241,9 +249,9 @@ ENDM
map_const ROUTE_35_NATIONAL_PARK_GATE, 4, 4 ; 15
map_const ROUTE_36_RUINS_OF_ALPH_GATE, 5, 4 ; 16
map_const ROUTE_36_NATIONAL_PARK_GATE, 5, 4 ; 17
endgroup
newgroup ; 11
newgroup GOLDENROD ; 11
map_const ROUTE_34, 10, 27 ; 1
map_const GOLDENROD_CITY, 20, 18 ; 2
map_const GOLDENROD_GYM, 10, 9 ; 3
@ -263,14 +271,14 @@ ENDM
map_const GOLDENROD_DEPT_STORE_ELEVATOR, 2, 2 ; 17
map_const GOLDENROD_DEPT_STORE_ROOF, 8, 4 ; 18
map_const GOLDENROD_GAME_CORNER, 10, 7 ; 19
map_const GOLDENROD_POKECENTER_1F, 5, 4 ; 20
map_const GOLDENROD_POKECENTER_1F, 16, 16 ; 20
map_const POKECOM_CENTER_ADMIN_OFFICE_MOBILE, 16, 16 ; 21
map_const ILEX_FOREST_AZALEA_GATE, 5, 4 ; 22
map_const ROUTE_34_ILEX_FOREST_GATE, 5, 4 ; 23
map_const DAY_CARE, 5, 4 ; 24
endgroup
newgroup ; 12
newgroup VERMILION ; 12
map_const ROUTE_6, 10, 9 ; 1
map_const ROUTE_11, 20, 9 ; 2
map_const VERMILION_CITY, 20, 18 ; 3
@ -284,18 +292,18 @@ ENDM
map_const VERMILION_GYM, 5, 9 ; 11
map_const ROUTE_6_SAFFRON_GATE, 5, 4 ; 12
map_const ROUTE_6_UNDERGROUND_PATH_ENTRANCE, 4, 4 ; 13
endgroup
newgroup ; 13
newgroup PALLET ; 13
map_const ROUTE_1, 10, 18 ; 1
map_const PALLET_TOWN, 10, 9 ; 2
map_const REDS_HOUSE_1F, 4, 4 ; 3
map_const REDS_HOUSE_2F, 4, 4 ; 4
map_const BLUES_HOUSE, 4, 4 ; 5
map_const OAKS_LAB, 5, 6 ; 6
endgroup
newgroup ; 14
newgroup PEWTER ; 14
map_const ROUTE_3, 30, 9 ; 1
map_const PEWTER_CITY, 20, 18 ; 2
map_const PEWTER_NIDORAN_SPEECH_HOUSE, 4, 4 ; 3
@ -304,9 +312,9 @@ ENDM
map_const PEWTER_POKECENTER_1F, 5, 4 ; 6
map_const PEWTER_POKECENTER_2F_BETA, 8, 4 ; 7
map_const PEWTER_SNOOZE_SPEECH_HOUSE, 4, 4 ; 8
endgroup
newgroup ; 15
newgroup FAST_SHIP ; 15
map_const OLIVINE_PORT, 10, 18 ; 1
map_const VERMILION_PORT, 10, 18 ; 2
map_const FAST_SHIP_1F, 16, 9 ; 3
@ -319,9 +327,9 @@ ENDM
map_const MOUNT_MOON_SQUARE, 15, 9 ; 10
map_const MOUNT_MOON_GIFT_SHOP, 4, 4 ; 11
map_const TIN_TOWER_ROOF, 10, 9 ; 12
endgroup
newgroup ; 16
newgroup INDIGO ; 16
map_const ROUTE_23, 10, 9 ; 1
map_const INDIGO_PLATEAU_POKECENTER_1F, 9, 7 ; 2
map_const WILLS_ROOM, 5, 9 ; 3
@ -330,9 +338,9 @@ ENDM
map_const KARENS_ROOM, 5, 9 ; 6
map_const LANCES_ROOM, 5, 12 ; 7
map_const HALL_OF_FAME, 5, 7 ; 8
endgroup
newgroup ; 17
newgroup FUCHSIA ; 17
map_const ROUTE_13, 30, 9 ; 1
map_const ROUTE_14, 10, 18 ; 2
map_const ROUTE_15, 20, 9 ; 3
@ -346,9 +354,9 @@ ENDM
map_const FUCHSIA_POKECENTER_2F_BETA, 8, 4 ; 11
map_const SAFARI_ZONE_WARDENS_HOME, 5, 4 ; 12
map_const ROUTE_15_FUCHSIA_GATE, 5, 4 ; 13
endgroup
newgroup ; 18
newgroup LAVENDER ; 18
map_const ROUTE_8, 20, 9 ; 1
map_const ROUTE_12, 10, 27 ; 2
map_const ROUTE_10_SOUTH, 10, 9 ; 3
@ -363,25 +371,25 @@ ENDM
map_const LAV_RADIO_TOWER_1F, 10, 4 ; 12
map_const ROUTE_8_SAFFRON_GATE, 5, 4 ; 13
map_const ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; 14
endgroup
newgroup ; 19
newgroup SILVER ; 19
map_const ROUTE_28, 20, 9 ; 1
map_const SILVER_CAVE_OUTSIDE, 20, 18 ; 2
map_const SILVER_CAVE_POKECENTER_1F, 5, 4 ; 3
map_const ROUTE_28_STEEL_WING_HOUSE, 4, 4 ; 4
endgroup
newgroup ; 20
newgroup CABLE_CLUB ; 20
map_const POKECENTER_2F, 8, 4 ; 1
map_const TRADE_CENTER, 5, 4 ; 2
map_const COLOSSEUM, 5, 4 ; 3
map_const TIME_CAPSULE, 5, 4 ; 4
map_const MOBILE_TRADE_ROOM, 5, 4 ; 5
map_const MOBILE_BATTLE_ROOM, 5, 4 ; 6
endgroup
newgroup ; 21
newgroup CELADON ; 21
map_const ROUTE_7, 10, 9 ; 1
map_const ROUTE_16, 10, 9 ; 2
map_const ROUTE_17, 10, 45 ; 3
@ -408,9 +416,9 @@ ENDM
map_const ROUTE_16_GATE, 5, 4 ; 24
map_const ROUTE_7_SAFFRON_GATE, 5, 4 ; 25
map_const ROUTE_17_ROUTE_18_GATE, 5, 4 ; 26
endgroup
newgroup ; 22
newgroup CIANWOOD ; 22
map_const ROUTE_40, 10, 18 ; 1
map_const ROUTE_41, 25, 27 ; 2
map_const CIANWOOD_CITY, 15, 27 ; 3
@ -427,9 +435,9 @@ ENDM
map_const BATTLE_TOWER_HALLWAY, 11, 2 ; 14
map_const ROUTE_40_BATTLE_TOWER_GATE, 5, 4 ; 15
map_const BATTLE_TOWER_OUTSIDE, 10, 14 ; 16
endgroup
newgroup ; 23
newgroup VIRIDIAN ; 23
map_const ROUTE_2, 10, 27 ; 1
map_const ROUTE_22, 20, 9 ; 2
map_const VIRIDIAN_CITY, 20, 18 ; 3
@ -443,9 +451,9 @@ ENDM
map_const ROUTE_2_NUGGET_HOUSE, 4, 4 ; 11
map_const ROUTE_2_GATE, 5, 4 ; 12
map_const VICTORY_ROAD_GATE, 10, 9 ; 13
endgroup
newgroup ; 24
newgroup NEW_BARK ; 24
map_const ROUTE_26, 10, 54 ; 1
map_const ROUTE_27, 40, 9 ; 2
map_const ROUTE_29, 30, 9 ; 3
@ -459,9 +467,9 @@ ENDM
map_const DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11
map_const ROUTE_27_SANDSTORM_HOUSE, 4, 4 ; 12
map_const ROUTE_29_ROUTE_46_GATE, 5, 4 ; 13
endgroup
newgroup ; 25
newgroup SAFFRON ; 25
map_const ROUTE_5, 10, 9 ; 1
map_const SAFFRON_CITY, 20, 18 ; 2
map_const FIGHTING_DOJO, 5, 6 ; 3
@ -477,9 +485,9 @@ ENDM
map_const ROUTE_5_UNDERGROUND_PATH_ENTRANCE, 4, 4 ; 13
map_const ROUTE_5_SAFFRON_GATE, 5, 4 ; 14
map_const ROUTE_5_CLEANSE_TAG_HOUSE, 4, 4 ; 15
endgroup
newgroup ; 26
newgroup CHERRYGROVE ; 26
map_const ROUTE_30, 10, 27 ; 1
map_const ROUTE_31, 20, 9 ; 2
map_const CHERRYGROVE_CITY, 20, 9 ; 3
@ -491,3 +499,6 @@ ENDM
map_const ROUTE_30_BERRY_HOUSE, 4, 4 ; 9
map_const MR_POKEMONS_HOUSE, 4, 4 ; 10
map_const ROUTE_31_VIOLET_GATE, 5, 4 ; 11
endgroup
DEF NUM_MAP_GROUPS EQU const_value ; 26

View File

@ -1,21 +1,24 @@
GROUP_N_A EQU -1
MAP_N_A EQU -1
GROUP_NONE EQU 0
MAP_NONE EQU 0
DEF MAPGROUP_N_A EQU -1
DEF GROUP_N_A EQU -1
DEF MAP_N_A EQU -1
DEF MAPGROUP_NONE EQU 0
DEF GROUP_NONE EQU 0
DEF MAP_NONE EQU 0
; map struct members (see data/maps/maps.asm)
const_def
const MAP_MAPATTRIBUTES_BANK ; 0
const MAP_TILESET ; 1
const MAP_ENVIRONMENT ; 2
const MAP_MAPATTRIBUTES ; 3
const MAP_MAPATTRIBUTES_HI ; 4
const MAP_LOCATION ; 5
const MAP_MUSIC ; 6
const MAP_PALETTE ; 7
const MAP_FISHGROUP ; 8
rsreset
DEF MAP_MAPATTRIBUTES_BANK rb ; 0
DEF MAP_TILESET rb ; 1
DEF MAP_ENVIRONMENT rb ; 2
DEF MAP_MAPATTRIBUTES rw ; 3
DEF MAP_LOCATION rb ; 5
DEF MAP_MUSIC rb ; 6
DEF MAP_PALETTE rb ; 7
DEF MAP_FISHGROUP rb ; 8
DEF MAP_LENGTH EQU _RS
; map environments (wEnvironment)
; EnvironmentColorsPointers indexes (see data/maps/environment_colors.asm)
const_def 1
const TOWN
const ROUTE
@ -24,6 +27,7 @@ MAP_NONE EQU 0
const ENVIRONMENT_5
const GATE
const DUNGEON
DEF NUM_ENVIRONMENTS EQU const_value - 1
; map palettes (wEnvironment)
const_def
@ -32,6 +36,7 @@ MAP_NONE EQU 0
const PALETTE_NITE
const PALETTE_MORN
const PALETTE_DARK
DEF NUM_MAP_PALETTES EQU const_value
; FishGroups indexes (see data/wild/fish.asm)
const_def
@ -49,6 +54,7 @@ MAP_NONE EQU 0
const FISHGROUP_QWILFISH
const FISHGROUP_REMORAID
const FISHGROUP_QWILFISH_NO_SWARM
DEF NUM_FISHGROUPS EQU const_value - 1
; connection directions (see data/maps/data.asm)
const_def
@ -65,8 +71,7 @@ MAP_NONE EQU 0
shift_const NORTH
; SpawnPoints indexes (see data/maps/spawn_points.asm)
const_value = -1
const SPAWN_N_A
const_def
const SPAWN_HOME
const SPAWN_DEBUG
; kanto
@ -97,6 +102,40 @@ const_value = -1
const SPAWN_BLACKTHORN
const SPAWN_MT_SILVER
const SPAWN_FAST_SHIP
NUM_SPAWNS EQU const_value
DEF NUM_SPAWNS EQU const_value
MAX_OUTDOOR_SPRITES EQU 23 ; see engine/overworld/overworld.asm
DEF SPAWN_N_A EQU -1
; Flypoints indexes (see data/maps/flypoints.asm)
const_def
; johto
DEF JOHTO_FLYPOINT EQU const_value
const FLY_NEW_BARK
const FLY_CHERRYGROVE
const FLY_VIOLET
const FLY_AZALEA
const FLY_GOLDENROD
const FLY_ECRUTEAK
const FLY_OLIVINE
const FLY_CIANWOOD
const FLY_MAHOGANY
const FLY_LAKE_OF_RAGE
const FLY_BLACKTHORN
const FLY_MT_SILVER
; kanto
DEF KANTO_FLYPOINT EQU const_value
const FLY_PALLET
const FLY_VIRIDIAN
const FLY_PEWTER
const FLY_CERULEAN
const FLY_VERMILION
const FLY_ROCK_TUNNEL
const FLY_LAVENDER
const FLY_CELADON
const FLY_SAFFRON
const FLY_FUCHSIA
const FLY_CINNABAR
const FLY_INDIGO
DEF NUM_FLYPOINTS EQU const_value
DEF MAX_OUTDOOR_SPRITES EQU 23 ; see engine/overworld/overworld.asm

View File

@ -1,47 +1,47 @@
; object_struct members (see macros/wram.asm)
const_def
const OBJECT_SPRITE ; 00
const OBJECT_MAP_OBJECT_INDEX ; 01
const OBJECT_SPRITE_TILE ; 02
const OBJECT_MOVEMENTTYPE ; 03
const OBJECT_FLAGS1 ; 04
const OBJECT_FLAGS2 ; 05
const OBJECT_PALETTE ; 06
const OBJECT_DIRECTION_WALKING ; 07
const OBJECT_FACING ; 08
const OBJECT_STEP_TYPE ; 09
const OBJECT_STEP_DURATION ; 0a
const OBJECT_ACTION ; 0b
const OBJECT_STEP_FRAME ; 0c
const OBJECT_FACING_STEP ; 0d
const OBJECT_NEXT_TILE ; 0e
const OBJECT_STANDING_TILE ; 0f
const OBJECT_NEXT_MAP_X ; 10
const OBJECT_NEXT_MAP_Y ; 11
const OBJECT_MAP_X ; 12
const OBJECT_MAP_Y ; 13
const OBJECT_INIT_X ; 14
const OBJECT_INIT_Y ; 15
const OBJECT_RADIUS ; 16
const OBJECT_SPRITE_X ; 17
const OBJECT_SPRITE_Y ; 18
const OBJECT_SPRITE_X_OFFSET ; 19
const OBJECT_SPRITE_Y_OFFSET ; 1a
const OBJECT_MOVEMENT_BYTE_INDEX ; 1b
const OBJECT_1C ; 1c
const OBJECT_1D ; 1d
const OBJECT_1E ; 1e
const OBJECT_1F ; 1f
const OBJECT_RANGE ; 20
; 21-27 are not used
OBJECT_STRUCT_LENGTH EQU 40
NUM_OBJECT_STRUCTS EQU 13 ; see wObjectStructs
; object_struct members (see macros/ram.asm)
rsreset
DEF OBJECT_SPRITE rb ; 00
DEF OBJECT_MAP_OBJECT_INDEX rb ; 01
DEF OBJECT_SPRITE_TILE rb ; 02
DEF OBJECT_MOVEMENT_TYPE rb ; 03
DEF OBJECT_FLAGS1 rb ; 04
DEF OBJECT_FLAGS2 rb ; 05
DEF OBJECT_PALETTE rb ; 06
DEF OBJECT_WALKING rb ; 07
DEF OBJECT_DIRECTION rb ; 08
DEF OBJECT_STEP_TYPE rb ; 09
DEF OBJECT_STEP_DURATION rb ; 0a
DEF OBJECT_ACTION rb ; 0b
DEF OBJECT_STEP_FRAME rb ; 0c
DEF OBJECT_FACING rb ; 0d
DEF OBJECT_TILE rb ; 0e
DEF OBJECT_LAST_TILE rb ; 0f
DEF OBJECT_MAP_X rb ; 10
DEF OBJECT_MAP_Y rb ; 11
DEF OBJECT_LAST_MAP_X rb ; 12
DEF OBJECT_LAST_MAP_Y rb ; 13
DEF OBJECT_INIT_X rb ; 14
DEF OBJECT_INIT_Y rb ; 15
DEF OBJECT_RADIUS rb ; 16
DEF OBJECT_SPRITE_X rb ; 17
DEF OBJECT_SPRITE_Y rb ; 18
DEF OBJECT_SPRITE_X_OFFSET rb ; 19
DEF OBJECT_SPRITE_Y_OFFSET rb ; 1a
DEF OBJECT_MOVEMENT_INDEX rb ; 1b
DEF OBJECT_STEP_INDEX rb ; 1c
DEF OBJECT_1D rb ; 1d
DEF OBJECT_1E rb ; 1e
DEF OBJECT_JUMP_HEIGHT rb ; 1f
DEF OBJECT_RANGE rb ; 20
rb_skip 7
DEF OBJECT_LENGTH EQU _RS
DEF NUM_OBJECT_STRUCTS EQU 13 ; see wObjectStructs
; object_struct OBJECT_FACING values
OW_DOWN EQU DOWN << 2
OW_UP EQU UP << 2
OW_LEFT EQU LEFT << 2
OW_RIGHT EQU RIGHT << 2
; object_struct OBJECT_DIRECTION values
DEF OW_DOWN EQU DOWN << 2
DEF OW_UP EQU UP << 2
DEF OW_LEFT EQU LEFT << 2
DEF OW_RIGHT EQU RIGHT << 2
; object_struct OBJECT_FLAGS1 bit flags
const_def
@ -54,14 +54,14 @@ OW_RIGHT EQU RIGHT << 2
const NOCLIP_OBJS_F ; 6
const EMOTE_OBJECT_F ; 7
INVISIBLE EQU 1 << INVISIBLE_F
WONT_DELETE EQU 1 << WONT_DELETE_F
FIXED_FACING EQU 1 << FIXED_FACING_F
SLIDING EQU 1 << SLIDING_F
NOCLIP_TILES EQU 1 << NOCLIP_TILES_F
MOVE_ANYWHERE EQU 1 << MOVE_ANYWHERE_F
NOCLIP_OBJS EQU 1 << NOCLIP_OBJS_F
EMOTE_OBJECT EQU 1 << EMOTE_OBJECT_F
DEF INVISIBLE EQU 1 << INVISIBLE_F
DEF WONT_DELETE EQU 1 << WONT_DELETE_F
DEF FIXED_FACING EQU 1 << FIXED_FACING_F
DEF SLIDING EQU 1 << SLIDING_F
DEF NOCLIP_TILES EQU 1 << NOCLIP_TILES_F
DEF MOVE_ANYWHERE EQU 1 << MOVE_ANYWHERE_F
DEF NOCLIP_OBJS EQU 1 << NOCLIP_OBJS_F
DEF EMOTE_OBJECT EQU 1 << EMOTE_OBJECT_F
; object_struct OBJECT_FLAGS2 bit flags
const_def
@ -70,14 +70,14 @@ EMOTE_OBJECT EQU 1 << EMOTE_OBJECT_F
const OBJ_FLAGS2_2 ; 2
const OVERHEAD_F ; 3
const USE_OBP1_F ; 4
const OBJ_FLAGS2_5 ; 5
const FROZEN_F ; 5
const OBJ_FLAGS2_6 ; 6
const OBJ_FLAGS2_7 ; 7
LOW_PRIORITY EQU 1 << LOW_PRIORITY_F
HIGH_PRIORITY EQU 1 << HIGH_PRIORITY_F
OVERHEAD EQU 1 << OVERHEAD_F
USE_OBP1 EQU 1 << USE_OBP1_F
DEF LOW_PRIORITY EQU 1 << LOW_PRIORITY_F
DEF HIGH_PRIORITY EQU 1 << HIGH_PRIORITY_F
DEF OVERHEAD EQU 1 << OVERHEAD_F
DEF USE_OBP1 EQU 1 << USE_OBP1_F
; object_struct OBJECT_PALETTE bit flags
const_def 5
@ -85,49 +85,48 @@ USE_OBP1 EQU 1 << USE_OBP1_F
const STRENGTH_BOULDER_F ; 6
const BIG_OBJECT_F ; 7
SWIMMING EQU 1 << SWIMMING_F
STRENGTH_BOULDER EQU 1 << STRENGTH_BOULDER_F
BIG_OBJECT EQU 1 << BIG_OBJECT_F
DEF SWIMMING EQU 1 << SWIMMING_F
DEF STRENGTH_BOULDER EQU 1 << STRENGTH_BOULDER_F
DEF BIG_OBJECT EQU 1 << BIG_OBJECT_F
; facing attribute bit flags
RELATIVE_ATTRIBUTES_F EQU 1
ABSOLUTE_TILE_ID_F EQU 2
DEF RELATIVE_ATTRIBUTES_F EQU 1
DEF ABSOLUTE_TILE_ID_F EQU 2
RELATIVE_ATTRIBUTES EQU 1 << RELATIVE_ATTRIBUTES_F
ABSOLUTE_TILE_ID EQU 1 << ABSOLUTE_TILE_ID_F
DEF RELATIVE_ATTRIBUTES EQU 1 << RELATIVE_ATTRIBUTES_F
DEF ABSOLUTE_TILE_ID EQU 1 << ABSOLUTE_TILE_ID_F
; map_object struct members (see macros/wram.asm)
const_def
const MAPOBJECT_OBJECT_STRUCT_ID ; 0
const MAPOBJECT_SPRITE ; 1
const MAPOBJECT_Y_COORD ; 2
const MAPOBJECT_X_COORD ; 3
const MAPOBJECT_MOVEMENT ; 4
const MAPOBJECT_RADIUS ; 5
const MAPOBJECT_HOUR ; 6
const MAPOBJECT_TIMEOFDAY ; 7
const MAPOBJECT_COLOR ; 8
const MAPOBJECT_RANGE ; 9
const MAPOBJECT_SCRIPT_POINTER ; a
const MAPOBJECT_POINTER_HI ; b
const MAPOBJECT_EVENT_FLAG ; c
const MAPOBJECT_FLAG_HI ; d
const MAPOBJECT_E ; unused
const MAPOBJECT_F ; unused
OBJECT_LENGTH EQU const_value
; map_object struct members (see macros/ram.asm)
rsreset
DEF MAPOBJECT_OBJECT_STRUCT_ID rb ; 0
DEF MAPOBJECT_SPRITE rb ; 1
DEF MAPOBJECT_Y_COORD rb ; 2
DEF MAPOBJECT_X_COORD rb ; 3
DEF MAPOBJECT_MOVEMENT rb ; 4
DEF MAPOBJECT_RADIUS rb ; 5
DEF MAPOBJECT_HOUR rb ; 6
DEF MAPOBJECT_TIMEOFDAY rb ; 7
DEF MAPOBJECT_COLOR rb ; 8
DEF MAPOBJECT_RANGE rb ; 9
DEF MAPOBJECT_SCRIPT_POINTER rw ; a
DEF MAPOBJECT_EVENT_FLAG rw ; c
rb_skip 2
DEF MAPOBJECT_LENGTH EQU _RS
DEF NUM_OBJECTS EQU 16
DEF PLAYER_OBJECT EQU 0
; SpriteMovementData struct members (see data/sprites/map_objects.asm)
const_def
const SPRITEMOVEATTR_MOVEMENT ; 0
const SPRITEMOVEATTR_FACING ; 1
const SPRITEMOVEATTR_ACTION ; 2
const SPRITEMOVEATTR_FLAGS1 ; 3
const SPRITEMOVEATTR_FLAGS2 ; 4
const SPRITEMOVEATTR_PALFLAGS ; 5
NUM_SPRITEMOVEDATA_FIELDS EQU const_value
rsreset
DEF SPRITEMOVEATTR_MOVEMENT rb ; 0
DEF SPRITEMOVEATTR_FACING rb ; 1
DEF SPRITEMOVEATTR_ACTION rb ; 2
DEF SPRITEMOVEATTR_FLAGS1 rb ; 3
DEF SPRITEMOVEATTR_FLAGS2 rb ; 4
DEF SPRITEMOVEATTR_PALFLAGS rb ; 5
DEF NUM_SPRITEMOVEDATA_FIELDS EQU _RS
MAPOBJECT_SCREEN_WIDTH EQU (SCREEN_WIDTH / 2) + 2
MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2
DEF MAPOBJECT_SCREEN_WIDTH EQU (SCREEN_WIDTH / 2) + 2
DEF MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2
; SpriteMovementData indexes (see data/sprites/map_objects.asm)
const_def
@ -143,8 +142,8 @@ MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2
const SPRITEMOVEDATA_STANDING_RIGHT ; 09
const SPRITEMOVEDATA_SPINRANDOM_FAST ; 0a
const SPRITEMOVEDATA_PLAYER ; 0b
const SPRITEMOVEDATA_0C ; 0c
const SPRITEMOVEDATA_0D ; 0d
const SPRITEMOVEDATA_INDEXED_1 ; 0c
const SPRITEMOVEDATA_INDEXED_2 ; 0d
const SPRITEMOVEDATA_0E ; 0e
const SPRITEMOVEDATA_0F ; 0f
const SPRITEMOVEDATA_10 ; 10
@ -168,9 +167,9 @@ MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2
const SPRITEMOVEDATA_BOULDERDUST ; 22
const SPRITEMOVEDATA_GRASS ; 23
const SPRITEMOVEDATA_SWIM_WANDER ; 24
NUM_SPRITEMOVEDATA EQU const_value
DEF NUM_SPRITEMOVEDATA EQU const_value
; MapObjectMovementPattern.Pointers indexes (see engine/overworld/map_objects.asm)
; StepFunction_FromMovement.Pointers indexes (see engine/overworld/map_objects.asm)
const_def
const SPRITEMOVEFN_00 ; 00
const SPRITEMOVEFN_RANDOM_WALK_Y ; 01
@ -180,8 +179,8 @@ NUM_SPRITEMOVEDATA EQU const_value
const SPRITEMOVEFN_FAST_RANDOM_SPIN ; 05
const SPRITEMOVEFN_STANDING ; 06
const SPRITEMOVEFN_OBEY_DPAD ; 07
const SPRITEMOVEFN_08 ; 08
const SPRITEMOVEFN_09 ; 09
const SPRITEMOVEFN_INDEXED_1 ; 08
const SPRITEMOVEFN_INDEXED_2 ; 09
const SPRITEMOVEFN_0A ; 0a
const SPRITEMOVEFN_0B ; 0b
const SPRITEMOVEFN_0C ; 0c
@ -200,35 +199,37 @@ NUM_SPRITEMOVEDATA EQU const_value
const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE ; 19
const SPRITEMOVEFN_BOULDERDUST ; 1a
const SPRITEMOVEFN_GRASS ; 1b
DEF NUM_SPRITEMOVEFN EQU const_value
; StepTypesJumptable indexes (see engine/overworld/map_objects.asm)
const_def
const STEP_TYPE_00 ; 00
const STEP_TYPE_SLEEP ; 01
const STEP_TYPE_RESET ; 00
const STEP_TYPE_FROM_MOVEMENT ; 01
const STEP_TYPE_NPC_WALK ; 02
const STEP_TYPE_03 ; 03
const STEP_TYPE_04 ; 04
const STEP_TYPE_05 ; 05
const STEP_TYPE_SLEEP ; 03
const STEP_TYPE_STANDING ; 04
const STEP_TYPE_RESTORE ; 05
const STEP_TYPE_PLAYER_WALK ; 06
const STEP_TYPE_07 ; 07
const STEP_TYPE_CONTINUE_WALK ; 07
const STEP_TYPE_NPC_JUMP ; 08
const STEP_TYPE_PLAYER_JUMP ; 09
const STEP_TYPE_HALF_STEP ; 0a
const STEP_TYPE_TURN ; 0a
const STEP_TYPE_BUMP ; 0b
const STEP_TYPE_TELEPORT_FROM ; 0c
const STEP_TYPE_TELEPORT_TO ; 0d
const STEP_TYPE_SKYFALL ; 0e
const STEP_TYPE_0F ; 0f
const STEP_TYPE_STRENGTH_BOULDER ; 0f
const STEP_TYPE_GOT_BITE ; 10
const STEP_TYPE_ROCK_SMASH ; 11
const STEP_TYPE_RETURN_DIG ; 12
const STEP_TYPE_TRACKING_OBJECT ; 13
const STEP_TYPE_14 ; 14
const STEP_TYPE_15 ; 15
const STEP_TYPE_SCREENSHAKE ; 15
const STEP_TYPE_16 ; 16
const STEP_TYPE_17 ; 17
const STEP_TYPE_18 ; 18
const STEP_TYPE_DELETE ; 18
const STEP_TYPE_SKYFALL_TOP ; 19
DEF NUM_STEP_TYPES EQU const_value
; ObjectActionPairPointers indexes (see engine/overworld/map_object_action.asm)
const_def
@ -249,6 +250,7 @@ NUM_SPRITEMOVEDATA EQU const_value
const OBJECT_ACTION_BOULDER_DUST ; 0e
const OBJECT_ACTION_GRASS_SHAKE ; 0f
const OBJECT_ACTION_SKYFALL ; 10
DEF NUM_OBJECT_ACTIONS EQU const_value
; Facings indexes (see data/sprites/facings.asm)
const_def
@ -284,6 +286,7 @@ NUM_SPRITEMOVEDATA EQU const_value
const FACING_BOULDER_DUST_2 ; 1d
const FACING_GRASS_1 ; 1e
const FACING_GRASS_2 ; 1f
DEF NUM_FACINGS EQU const_value
; DoPlayerMovement.DoStep arguments (see engine/overworld/player_movement.asm)
const_def
@ -295,3 +298,4 @@ NUM_SPRITEMOVEDATA EQU const_value
const STEP_TURN ; 5
const STEP_BACK_LEDGE ; 6
const STEP_WALK_IN_PLACE ; 7
DEF NUM_STEPS EQU const_value

View File

@ -13,58 +13,7 @@
const MAPSETUP_SUBMENU ; fa
const MAPSETUP_BADWARP ; fb
const MAPSETUP_FLY ; fc
; MapSetupCommands indexes (see engine/overworld/map_setup.asm)
; Names taken from Condensation water's scripting compendium
; https://hax.iimarck.us/files/scriptingcodes_eng.htm
const_def
const map_lcd_on ; 00
const map_lcd_off ; 01
const map_sound_off ; 02
const map_music ; 03
const map_start_music ; 04
const map_fade_music ; 05
const map_fade ; 06
const map_bike_music ; 07
const map_music_force ; 08
const map_max_volume ; 09
const map_load_blocks ; 0a
const map_connection_blocks ; 0b
const map_save_screen ; 0c
const map_buffer_screen ; 0d
const map_load_graphics ; 0e
const map_load_tileset ; 0f
const map_time_of_day ; 10
const map_palettes ; 11
const map_wildmons ; 12
const map_sprites ; 13
const map_change_callback ; 14
const map_start_callback ; 15
const map_load_objects ; 16
const map_load_spawn ; 17
const map_load_connection ; 18
const map_load_warp ; 19
const map_load_attributes ; 1a
const map_load_attributes_2 ; 1b
const map_clear_bg_palettes ; 1c
const map_fade_out_palettes ; 1d
const map_fade_in_palettes ; 1e
const map_anchor_screen ; 1f
const map_warp_face ; 20
const map_face_down ; 21
const map_spawn_coord ; 22
const map_player_coord ; 23
const map_prolong_sprites ; 24
const map_delay_sprites ; 25
const map_update_roam ; 26
const map_keep_roam ; 27
const map_fade_out_music ; 28
const map_animations_on ; 29
const map_animations_off ; 2a
const map_keep_palettes ; 2b
const map_text_scroll_off ; 2c
const map_stop_script ; 2d
map_end EQU -1
DEF NUM_MAPSETUP_SCRIPTS EQU const_value - $f1
; callback types
const_def 1

View File

@ -42,3 +42,4 @@
const MART_MT_MOON
const MART_INDIGO_PLATEAU
const MART_UNDERGROUND
DEF NUM_MARTS EQU const_value

View File

@ -63,16 +63,17 @@
const MONMENUITEM_MOVE ; 19
const MONMENUITEM_MAIL ; 20
const MONMENUITEM_ERROR ; 21
DEF NUM_MONMENUITEMS EQU const_value - 1
; MonMenuOptions categories
MONMENU_FIELD_MOVE EQU 0
MONMENU_MENUOPTION EQU 1
DEF MONMENU_FIELD_MOVE EQU 0
DEF MONMENU_MENUOPTION EQU 1
NUM_MONMENU_ITEMS EQU 8
DEF NUM_MONMENU_ITEMS EQU 8
; start/select menu return values
HMENURETURN_SCRIPT EQU %10000000
HMENURETURN_ASM EQU %11111111
DEF HMENURETURN_SCRIPT EQU %10000000
DEF HMENURETURN_ASM EQU %11111111
; PartyMenuQualityPointers indexes (see data/party_menu_qualities.asm)
const_def
@ -86,8 +87,9 @@ HMENURETURN_ASM EQU %11111111
const PARTYMENUACTION_GIVE_MON_FEMALE ; unused
const PARTYMENUACTION_GIVE_ITEM
const PARTYMENUACTION_MOBILE ; mobile
DEF NUM_PARTYMENUACTIONS EQU const_value
; PrintPartyMenuActionText arguments (see engine/pokemon/party_menu.asm)
const_def $f0
const_next $f0
const PARTYMENUTEXT_HEAL_PSN
const PARTYMENUTEXT_HEAL_BRN
const PARTYMENUTEXT_HEAL_FRZ
@ -109,4 +111,4 @@ HMENURETURN_ASM EQU %11111111
const NAME_FRIEND
const NAME_6 ; duplicate of NAME_MON
const NAME_7 ; duplicate of NAME_MON
NUM_NAME_TYPES EQU const_value
DEF NUM_NAME_TYPES EQU const_value

View File

@ -1,10 +1,10 @@
; Boolean checks
FALSE EQU 0
TRUE EQU 1
DEF FALSE EQU 0
DEF TRUE EQU 1
; genders
MALE EQU 0
FEMALE EQU 1
DEF MALE EQU 0
DEF FEMALE EQU 1
; FlagAction arguments (see home/flag.asm)
const_def
@ -13,37 +13,37 @@ FEMALE EQU 1
const CHECK_FLAG
; G/S version ID: 0 = Gold, 1 = Silver (used by checkver)
GS_VERSION EQU 0
; Mystery Gift uses incremented values 1 and 2
DEF GS_VERSION EQU 0
; Pokémon Pikachu 2, a step counter / virtual pet device (used by Mystery Gift)
DEF POKEMON_PIKACHU_2_VERSION EQU 3
DEF RESERVED_GAME_VERSION EQU 4
; save file corruption check values
SAVE_CHECK_VALUE_1 EQU 99
SAVE_CHECK_VALUE_2 EQU 127
DEF SAVE_CHECK_VALUE_1 EQU 99
DEF SAVE_CHECK_VALUE_2 EQU 127
; RTC halted check value
DEF RTC_HALT_VALUE EQU $1234
; time of day boundaries
MORN_HOUR EQU 4 ; 4 AM
DAY_HOUR EQU 10 ; 10 AM
NITE_HOUR EQU 18 ; 6 PM
NOON_HOUR EQU 12 ; 12 PM
MAX_HOUR EQU 24 ; 12 AM
DEF MORN_HOUR EQU 4 ; 4 AM
DEF DAY_HOUR EQU 10 ; 10 AM
DEF NITE_HOUR EQU 18 ; 6 PM
DEF NOON_HOUR EQU 12 ; 12 PM
DEF MAX_HOUR EQU 24 ; 12 AM
; significant money values
START_MONEY EQU 3000
MOM_MONEY EQU 2300
MAX_MONEY EQU 999999
MAX_COINS EQU 9999
DEF START_MONEY EQU 3000
DEF MOM_MONEY EQU 2300
DEF MAX_MONEY EQU 999999
DEF MAX_COINS EQU 9999
; link record
MAX_LINK_RECORD EQU 9999
DEF MAX_LINK_RECORD EQU 9999
; day-care
MAX_DAY_CARE_EXP EQU $500000
DEF MAX_DAY_CARE_EXP EQU $500000
; hall of fame
HOF_MASTER_COUNT EQU 200
; bug-catching contest
BUG_CONTEST_MINUTES EQU 20
BUG_CONTEST_SECONDS EQU 0
BUG_CONTEST_PLAYER EQU 1
NUM_BUG_CONTESTANTS EQU 10 ; not counting the player
BUG_CONTESTANT_SIZE EQU 4
DEF HOF_MASTER_COUNT EQU 200

View File

@ -1,3 +1,40 @@
; MobileAPI calls (see lib/mobile/main.asm:_MobileAPI)
const_def 0, 2
const MOBILEAPI_00
const MOBILEAPI_01
const MOBILEAPI_02
const MOBILEAPI_03
const MOBILEAPI_04
const MOBILEAPI_05
const MOBILEAPI_06
const MOBILEAPI_07
const MOBILEAPI_08
const MOBILEAPI_09
const MOBILEAPI_0A
const MOBILEAPI_0B
const MOBILEAPI_0C
const MOBILEAPI_0D
const MOBILEAPI_0E
const MOBILEAPI_0F
const MOBILEAPI_10
const MOBILEAPI_11
const MOBILEAPI_12
const MOBILEAPI_13
const MOBILEAPI_14
const MOBILEAPI_15
const MOBILEAPI_16
const MOBILEAPI_17
const MOBILEAPI_SETTIMER
const MOBILEAPI_TELEPHONESTATUS
const MOBILEAPI_1A
const MOBILEAPI_1B
const MOBILEAPI_1C
const MOBILEAPI_1D
const MOBILEAPI_1E
const MOBILEAPI_1F
const MOBILEAPI_20
const MOBILEAPI_21
; MobileEZChatCategoryPointers indexes (see mobile/fixed_words.asm)
const_def
const EZCHAT_POKEMON
@ -16,6 +53,47 @@
const EZCHAT_FAREWELLS
const EZCHAT_THISANDTHAT
NUM_KANA EQU 45 ; length of SortedPokemon table (see mobile/fixed_words.asm)
DEF NUM_KANA EQU 45 ; length of SortedPokemon table (see mobile/fixed_words.asm)
MOBILE_LOGIN_PASSWORD_LENGTH EQU 17
DEF MOBILE_LOGIN_PASSWORD_LENGTH EQU 17
DEF MOBILE_PHONE_NUMBER_LENGTH EQU 20
; Maximum amount of time allowed for mobile battles each day
DEF MOBILE_BATTLE_ALLOWED_SECONDS EQU 0
DEF MOBILE_BATTLE_ALLOWED_MINUTES EQU 10
; Trade corner request size
; DION addr $1e + request $8 + Name $5
; + party struct $30 + OT $5 + NICK $5
; + JP Mail struct $2a
DEF MOBILE_EMAIL_LENGTH EQU $1e
DEF TRADE_CORNER_TRADE_INFO_LENGTH EQU 8
DEF TRADE_CORNER_CANCEL_REQUEST_LENGTH EQU MOBILE_EMAIL_LENGTH + TRADE_CORNER_TRADE_INFO_LENGTH
DEF TRADE_CORNER_RECEIVE_TRADE_LENGTH EQU PLAYER_NAME_LENGTH - 1 + PARTYMON_STRUCT_LENGTH + PLAYER_NAME_LENGTH - 1 + MON_NAME_LENGTH - 1 + MAIL_STRUCT_LENGTH
DEF TRADE_CORNER_TRADE_REQUEST_LENGTH EQU TRADE_CORNER_CANCEL_REQUEST_LENGTH + TRADE_CORNER_RECEIVE_TRADE_LENGTH
DEF EASY_CHAT_MESSAGE_WORD_COUNT EQU 4
DEF EASY_CHAT_MESSAGE_LENGTH EQU EASY_CHAT_MESSAGE_WORD_COUNT * 2 ; every word uses 2 bytes
DEF PHONE_NUMBER_LENGTH EQU 8
DEF PHONE_NUMBER_DIGITS_QUANTITY EQU PHONE_NUMBER_LENGTH * 2 ; Two digits are saved per byte (1x 0-10 digit per nybble).
DEF PHONE_NUMBER_DIGITS_MIN_REQUIRED_QUANTITY EQU 6
DEF NUM_CARD_FOLDER_ENTRIES EQU 40
DEF CARD_FOLDER_ENTRY_LENGTH EQU 41
IF DEF(_CRYSTAL_AU)
DEF ZIPCODE_LENGTH EQU 4
DEF NUM_REGION_CODES EQU 25
DEF REGION_CODE_STRING_LENGTH EQU 7
ELIF DEF(_CRYSTAL_EU)
DEF ZIPCODE_LENGTH EQU 7
DEF NUM_REGION_CODES EQU 40
DEF REGION_CODE_STRING_LENGTH EQU 6
ELSE ; US
DEF ZIPCODE_LENGTH EQU 6
DEF NUM_REGION_CODES EQU 64
DEF REGION_CODE_STRING_LENGTH EQU 6
ENDC
DEF ZIPCODE_MAX_LENGTH EQU 7
DEF ZIPCODE_FRAME_RIGHT_MARGIN EQU 1
DEF REGION_NAME_MAX_LENGTH EQU 7

View File

@ -257,13 +257,10 @@
const ROCK_SMASH ; f9
const WHIRLPOOL ; fa
const BEAT_UP ; fb
NUM_ATTACKS EQU const_value + -1
const MOVE_OR_ANIM_FC ; fc
const MOVE_OR_ANIM_FD ; fd
const MOVE_OR_ANIM_FE ; fe
DEF NUM_ATTACKS EQU const_value - 1
; Battle animations use the same constants as the moves up to this point
const_next $ff
const ANIM_SWEET_SCENT_2 ; ff
const ANIM_THROW_POKE_BALL ; 100
const ANIM_SEND_OUT_MON ; 101
@ -288,6 +285,7 @@ NUM_ATTACKS EQU const_value + -1
const ANIM_WOBBLE ; 113
const ANIM_SHAKE ; 114
const ANIM_HIT_CONFUSION ; 115
DEF NUM_BATTLE_ANIMS EQU const_value - 1
; wNumHits uses offsets from ANIM_MISS
const_def

View File

@ -157,3 +157,4 @@
const EFFECT_BEAT_UP
const EFFECT_FLY
const EFFECT_DEFENSE_CURL
DEF NUM_MOVE_EFFECTS EQU const_value

View File

@ -1,7 +1,6 @@
; song ids
; Music indexes (see audio/music_pointers.asm)
const_def
const MUSIC_NONE ; 00
const MUSIC_TITLE ; 01
const MUSIC_ROUTE_1 ; 02
@ -95,7 +94,6 @@
const MUSIC_LAKE_OF_RAGE_ROCKET_RADIO ; 5a
const MUSIC_PRINTER ; 5b
const MUSIC_POST_CREDITS ; 5c
; new to Crystal
const MUSIC_CLAIR ; 5d
const MUSIC_MOBILE_ADAPTER_MENU ; 5e
@ -107,14 +105,15 @@
const MUSIC_SUICUNE_BATTLE ; 64
const MUSIC_BATTLE_TOWER_LOBBY ; 65
const MUSIC_MOBILE_CENTER ; 66
DEF NUM_MUSIC_SONGS EQU const_value
; GetMapMusic picks music for this value (see home/map.asm)
MUSIC_MAHOGANY_MART EQU $64
DEF MUSIC_MAHOGANY_MART EQU $64
; ExitPokegearRadio_HandleMusic uses these values
RESTART_MAP_MUSIC EQU $fe
ENTER_MAP_MUSIC EQU $ff
DEF RESTART_MAP_MUSIC EQU $fe
DEF ENTER_MAP_MUSIC EQU $ff
; GetMapMusic picks music for this bit flag
RADIO_TOWER_MUSIC_F EQU 7
RADIO_TOWER_MUSIC EQU 1 << RADIO_TOWER_MUSIC_F
DEF RADIO_TOWER_MUSIC_F EQU 7
DEF RADIO_TOWER_MUSIC EQU 1 << RADIO_TOWER_MUSIC_F

View File

@ -1,14 +1,16 @@
; npctrade struct members (see data/events/npc_trades.asm)
NPCTRADE_DIALOG EQU 0 ; db
NPCTRADE_GIVEMON EQU 1 ; db
NPCTRADE_GETMON EQU 2 ; db
NPCTRADE_NICK EQU 3 ; ds MON_NAME_LENGTH
NPCTRADE_DVS EQU 14 ; dw
NPCTRADE_ITEM EQU 16 ; db
NPCTRADE_OT_ID EQU 17 ; dw
NPCTRADE_OT_NAME EQU 19 ; ds NAME_LENGTH
NPCTRADE_GENDER EQU 30 ; db
NPCTRADE_PADDING EQU 31 ; db
; npctrade struct members (see data/events/npc_trades.asm)
rsreset
DEF NPCTRADE_DIALOG rb
DEF NPCTRADE_GIVEMON rb
DEF NPCTRADE_GETMON rb
DEF NPCTRADE_NICKNAME rb MON_NAME_LENGTH
DEF NPCTRADE_DVS rw
DEF NPCTRADE_ITEM rb
DEF NPCTRADE_OT_ID rw
DEF NPCTRADE_OT_NAME rb NAME_LENGTH
DEF NPCTRADE_GENDER rb
rb_skip
DEF NPCTRADE_STRUCT_LENGTH EQU _RS
; NPCTrades indexes (see data/events/npc_trades.asm)
const_def
@ -19,7 +21,7 @@ NPCTRADE_PADDING EQU 31 ; db
const NPC_TRADE_CHRIS ; 4
const NPC_TRADE_KIM ; 5
const NPC_TRADE_FOREST ; 6
NUM_NPC_TRADES EQU const_value
DEF NUM_NPC_TRADES EQU const_value
; trade gender limits
const_def

View File

@ -8,9 +8,9 @@
const PHONE_SCHOOLBOY_JACK
const PHONE_POKEFAN_BEVERLY
const PHONE_SAILOR_HUEY
const PHONE_08
const PHONE_09
const PHONE_0A
const_skip
const_skip
const_skip
const PHONE_COOLTRAINERM_GAVEN
const PHONE_COOLTRAINERF_BETH
const PHONE_BIRDKEEPER_JOSE
@ -25,7 +25,7 @@
const PHONE_JUGGLER_IRWIN
const PHONE_BUG_CATCHER_ARNIE
const PHONE_SCHOOLBOY_ALAN
const PHONE_19
const_skip
const PHONE_LASS_DANA
const PHONE_SCHOOLBOY_CHAD
const PHONE_POKEFANM_DEREK
@ -38,6 +38,7 @@
const PHONE_HIKER_PARRY
const PHONE_PICNICKER_ERIN
const PHONE_BUENA
DEF NUM_PHONE_CONTACTS EQU const_value - 1
; SpecialPhoneCallList indexes (see data/phone/special_calls.asm)
const_def
@ -50,22 +51,22 @@
const SPECIALCALL_BIKESHOP
const SPECIALCALL_WORRIED
const SPECIALCALL_MASTERBALL
DEF NUM_SPECIALCALLS EQU const_value - 1
DEF SPECIALCALL_SIZE EQU 6
; phone struct members
const_def
const PHONE_CONTACT_TRAINER_CLASS
const PHONE_CONTACT_TRAINER_NUMBER
const PHONE_CONTACT_MAP_GROUP
const PHONE_CONTACT_MAP_NUMBER
const PHONE_CONTACT_SCRIPT1_TIME
const PHONE_CONTACT_SCRIPT1_BANK
const PHONE_CONTACT_SCRIPT1_ADDR_LO
const PHONE_CONTACT_SCRIPT1_ADDR_HI
const PHONE_CONTACT_SCRIPT2_TIME
const PHONE_CONTACT_SCRIPT2_BANK
const PHONE_CONTACT_SCRIPT2_ADDR_LO
const PHONE_CONTACT_SCRIPT2_ADDR_HI
PHONE_CONTACT_SIZE EQU const_value
rsreset
DEF PHONE_CONTACT_TRAINER_CLASS rb
DEF PHONE_CONTACT_TRAINER_NUMBER rb
DEF PHONE_CONTACT_MAP_GROUP rb
DEF PHONE_CONTACT_MAP_NUMBER rb
DEF PHONE_CONTACT_SCRIPT1_TIME rb
DEF PHONE_CONTACT_SCRIPT1_BANK rb
DEF PHONE_CONTACT_SCRIPT1_ADDR rw
DEF PHONE_CONTACT_SCRIPT2_TIME rb
DEF PHONE_CONTACT_SCRIPT2_BANK rb
DEF PHONE_CONTACT_SCRIPT2_ADDR rw
DEF PHONE_CONTACT_SIZE EQU _RS
; maximum number of pokegear contacts
CONTACT_LIST_SIZE EQU 10
DEF CONTACT_LIST_SIZE EQU 10

View File

@ -10,14 +10,14 @@
; - PokemonPalettes (see data/pokemon/palettes.asm)
; - PokedexDataPointerTable (see data/pokemon/dex_entry_pointers.asm)
; - AlphabeticalPokedexOrder (see data/pokemon/dex_order_alpha.asm)
; - EZChat_SortedPokemon (see data/pokemon/ezchat_order.asm)
; - NewPokedexOrder (see data/pokemon/dex_order_new.asm)
; - Pokered_MonIndices (see data/pokemon/gen1_order.asm)
; - Footprints (see gfx/footprints.asm)
; - AnimationPointers (see gfx/pokemon/anim_pointers.asm)
; - AnimationIdlePointers (see gfx/pokemon/idle_pointers.asm)
; - BitmasksPointers (see gfx/pokemon/bitmask_pointers.asm)
; - FramesPointers (see gfx/pokemon/frame_pointers.asm)
; - Footprints (see gfx/footprints.asm)
; - EZChat_SortedPokemon (see data/pokemon/ezchat_order.asm)
const_def 1
const BULBASAUR ; 01
const IVYSAUR ; 02
@ -170,7 +170,7 @@
const DRAGONITE ; 95
const MEWTWO ; 96
const MEW ; 97
JOHTO_POKEMON EQU const_value
DEF JOHTO_POKEMON EQU const_value
const CHIKORITA ; 98
const BAYLEEF ; 99
const MEGANIUM ; 9a
@ -271,10 +271,9 @@ JOHTO_POKEMON EQU const_value
const LUGIA ; f9
const HO_OH ; fa
const CELEBI ; fb
NUM_POKEMON EQU const_value + -1
const MON_FC ; fc
DEF NUM_POKEMON EQU const_value - 1
const_skip ; fc
const EGG ; fd
const MON_FE ; fe
; Unown forms
; indexes for:
@ -311,4 +310,4 @@ NUM_POKEMON EQU const_value + -1
const UNOWN_X ; 24
const UNOWN_Y ; 25
const UNOWN_Z ; 26
NUM_UNOWN EQU const_value + -1 ; 26
DEF NUM_UNOWN EQU const_value - 1 ; 26

View File

@ -1,38 +1,44 @@
; base data struct members (see data/pokemon/base_stats/*.asm)
BASE_DEX_NO EQUS "(wBaseDexNo - wCurBaseData)"
BASE_STATS EQUS "(wBaseStats - wCurBaseData)"
BASE_HP EQUS "(wBaseHP - wCurBaseData)"
BASE_ATK EQUS "(wBaseAttack - wCurBaseData)"
BASE_SPD EQUS "(wBaseSpeed - wCurBaseData)"
BASE_SAT EQUS "(wBaseSpecialAttack - wCurBaseData)"
BASE_SDF EQUS "(wBaseSpecialDefense - wCurBaseData)"
BASE_TYPES EQUS "(wBaseType - wCurBaseData)"
BASE_TYPE_1 EQUS "(wBaseType1 - wCurBaseData)"
BASE_TYPE_2 EQUS "(wBaseType2 - wCurBaseData)"
BASE_CATCH_RATE EQUS "(wBaseCatchRate - wCurBaseData)"
BASE_EXP EQUS "(wBaseExp - wCurBaseData)"
BASE_ITEMS EQUS "(wBaseItems - wCurBaseData)"
BASE_ITEM_1 EQUS "(wBaseItem1 - wCurBaseData)"
BASE_ITEM_2 EQUS "(wBaseItem2 - wCurBaseData)"
BASE_GENDER EQUS "(wBaseGender - wCurBaseData)"
BASE_UNKNOWN_1 EQUS "(wBaseUnknown1 - wCurBaseData)"
BASE_EGG_STEPS EQUS "(wBaseEggSteps - wCurBaseData)"
BASE_UNKNOWN_2 EQUS "(wBaseUnknown2 - wCurBaseData)"
BASE_PIC_SIZE EQUS "(wBasePicSize - wCurBaseData)"
BASE_PADDING EQUS "(wBasePadding - wCurBaseData)"
BASE_GROWTH_RATE EQUS "(wBaseGrowthRate - wCurBaseData)"
BASE_EGG_GROUPS EQUS "(wBaseEggGroups - wCurBaseData)"
BASE_TMHM EQUS "(wBaseTMHM - wCurBaseData)"
BASE_DATA_SIZE EQUS "(wCurBaseDataEnd - wCurBaseData)"
rsreset
DEF BASE_DEX_NO rb
DEF BASE_STATS rb NUM_STATS
rsset BASE_STATS
DEF BASE_HP rb
DEF BASE_ATK rb
DEF BASE_DEF rb
DEF BASE_SPD rb
DEF BASE_SAT rb
DEF BASE_SDF rb
DEF BASE_TYPES rw
rsset BASE_TYPES
DEF BASE_TYPE_1 rb
DEF BASE_TYPE_2 rb
DEF BASE_CATCH_RATE rb
DEF BASE_EXP rb
DEF BASE_ITEMS rw
rsset BASE_ITEMS
DEF BASE_ITEM_1 rb
DEF BASE_ITEM_2 rb
DEF BASE_GENDER rb
rb_skip
DEF BASE_EGG_STEPS rb
rb_skip
DEF BASE_PIC_SIZE rb
DEF BASE_FRONTPIC rw
DEF BASE_BACKPIC rw
DEF BASE_GROWTH_RATE rb
DEF BASE_EGG_GROUPS rb
DEF BASE_TMHM rb (NUM_TM_HM_TUTOR + 7) / 8
DEF BASE_DATA_SIZE EQU _RS
; gender ratio constants
GENDER_F0 EQU 0 percent
GENDER_F12_5 EQU 12 percent + 1
GENDER_F25 EQU 25 percent
GENDER_F50 EQU 50 percent
GENDER_F75 EQU 75 percent
GENDER_F100 EQU 100 percent - 1
GENDER_UNKNOWN EQU -1
DEF GENDER_F0 EQU 0 percent
DEF GENDER_F12_5 EQU 12 percent + 1
DEF GENDER_F25 EQU 25 percent
DEF GENDER_F50 EQU 50 percent
DEF GENDER_F75 EQU 75 percent
DEF GENDER_F100 EQU 100 percent - 1
DEF GENDER_UNKNOWN EQU -1
; wBaseGrowthRate values
; GrowthRates indexes (see data/growth_rates.asm)
@ -43,6 +49,7 @@ GENDER_UNKNOWN EQU -1
const GROWTH_MEDIUM_SLOW
const GROWTH_FAST
const GROWTH_SLOW
DEF NUM_GROWTH_RATES EQU const_value
; wBaseEggGroups values
const_def 1
@ -63,69 +70,82 @@ GENDER_UNKNOWN EQU -1
const EGG_NONE ; f (Undiscovered)
; pokedex entries (see data/pokemon/dex_entries.asm)
NUM_DEX_ENTRY_BANKS EQU 4
DEF NUM_DEX_ENTRY_BANKS EQU 4
; party_struct members (see macros/wram.asm)
MON_SPECIES EQUS "(wPartyMon1Species - wPartyMon1)"
MON_ITEM EQUS "(wPartyMon1Item - wPartyMon1)"
MON_MOVES EQUS "(wPartyMon1Moves - wPartyMon1)"
MON_ID EQUS "(wPartyMon1ID - wPartyMon1)"
MON_EXP EQUS "(wPartyMon1Exp - wPartyMon1)"
MON_STAT_EXP EQUS "(wPartyMon1StatExp - wPartyMon1)"
MON_HP_EXP EQUS "(wPartyMon1HPExp - wPartyMon1)"
MON_ATK_EXP EQUS "(wPartyMon1AtkExp - wPartyMon1)"
MON_DEF_EXP EQUS "(wPartyMon1DefExp - wPartyMon1)"
MON_SPD_EXP EQUS "(wPartyMon1SpdExp - wPartyMon1)"
MON_SPC_EXP EQUS "(wPartyMon1SpcExp - wPartyMon1)"
MON_DVS EQUS "(wPartyMon1DVs - wPartyMon1)"
MON_PP EQUS "(wPartyMon1PP - wPartyMon1)"
MON_HAPPINESS EQUS "(wPartyMon1Happiness - wPartyMon1)"
MON_PKRUS EQUS "(wPartyMon1PokerusStatus - wPartyMon1)"
MON_CAUGHTDATA EQUS "(wPartyMon1CaughtData - wPartyMon1)"
MON_CAUGHTLEVEL EQUS "(wPartyMon1CaughtLevel - wPartyMon1)"
MON_CAUGHTTIME EQUS "(wPartyMon1CaughtTime - wPartyMon1)"
MON_CAUGHTGENDER EQUS "(wPartyMon1CaughtGender - wPartyMon1)"
MON_CAUGHTLOCATION EQUS "(wPartyMon1CaughtLocation - wPartyMon1)"
MON_LEVEL EQUS "(wPartyMon1Level - wPartyMon1)"
MON_STATUS EQUS "(wPartyMon1Status - wPartyMon1)"
MON_HP EQUS "(wPartyMon1HP - wPartyMon1)"
MON_MAXHP EQUS "(wPartyMon1MaxHP - wPartyMon1)"
MON_ATK EQUS "(wPartyMon1Attack - wPartyMon1)"
MON_DEF EQUS "(wPartyMon1Defense - wPartyMon1)"
MON_SPD EQUS "(wPartyMon1Speed - wPartyMon1)"
MON_SAT EQUS "(wPartyMon1SpclAtk - wPartyMon1)"
MON_SDF EQUS "(wPartyMon1SpclDef - wPartyMon1)"
BOXMON_STRUCT_LENGTH EQUS "(wPartyMon1End - wPartyMon1)"
PARTYMON_STRUCT_LENGTH EQUS "(wPartyMon1StatsEnd - wPartyMon1)"
; party_struct members (see macros/ram.asm)
rsreset
DEF MON_SPECIES rb
DEF MON_ITEM rb
DEF MON_MOVES rb NUM_MOVES
DEF MON_ID rw
DEF MON_EXP rb 3
DEF MON_STAT_EXP rw NUM_EXP_STATS
rsset MON_STAT_EXP
DEF MON_HP_EXP rw
DEF MON_ATK_EXP rw
DEF MON_DEF_EXP rw
DEF MON_SPD_EXP rw
DEF MON_SPC_EXP rw
DEF MON_DVS rw
DEF MON_PP rb NUM_MOVES
DEF MON_HAPPINESS rb
DEF MON_POKERUS rb
DEF MON_CAUGHTDATA rw
rsset MON_CAUGHTDATA
DEF MON_CAUGHTTIME rb
DEF MON_CAUGHTGENDER rb
rsset MON_CAUGHTDATA
DEF MON_CAUGHTLEVEL rb
DEF MON_CAUGHTLOCATION rb
DEF MON_LEVEL rb
DEF BOXMON_STRUCT_LENGTH EQU _RS
DEF MON_STATUS rb
rb_skip
DEF MON_HP rw
DEF MON_MAXHP rw
DEF MON_STATS rw NUM_BATTLE_STATS
rsset MON_STATS
DEF MON_ATK rw
DEF MON_DEF rw
DEF MON_SPD rw
DEF MON_SAT rw
DEF MON_SDF rw
DEF PARTYMON_STRUCT_LENGTH EQU _RS
NICKNAMED_MON_STRUCT_LENGTH EQUS "(PARTYMON_STRUCT_LENGTH + MON_NAME_LENGTH)"
REDMON_STRUCT_LENGTH EQU 44
DEF NICKNAMED_MON_STRUCT_LENGTH EQU PARTYMON_STRUCT_LENGTH + MON_NAME_LENGTH
DEF REDMON_STRUCT_LENGTH EQU 44
; caught data
CAUGHT_TIME_MASK EQU %11000000
CAUGHT_LEVEL_MASK EQU %00111111
DEF CAUGHT_TIME_MASK EQU %11000000
DEF CAUGHT_LEVEL_MASK EQU %00111111
CAUGHT_GENDER_MASK EQU %10000000
CAUGHT_LOCATION_MASK EQU %01111111
DEF CAUGHT_GENDER_MASK EQU %10000000
DEF CAUGHT_LOCATION_MASK EQU %01111111
CAUGHT_BY_UNKNOWN EQU 0
CAUGHT_BY_GIRL EQU 1
CAUGHT_BY_BOY EQU 2
DEF CAUGHT_BY_UNKNOWN EQU 0
DEF CAUGHT_BY_GIRL EQU 1
DEF CAUGHT_BY_BOY EQU 2
CAUGHT_EGG_LEVEL EQU 1
DEF CAUGHT_EGG_LEVEL EQU 1
DEF MON_CRY_LENGTH EQU 6
; maximum number of party pokemon
PARTY_LENGTH EQU 6
DEF PARTY_LENGTH EQU 6
; boxes
MONS_PER_BOX EQU 20
NUM_BOXES EQU 14
DEF MONS_PER_BOX EQU 20
; box: count, species, mons, OTs, nicknames, padding
DEF BOX_LENGTH EQU 1 + MONS_PER_BOX + 1 + (BOXMON_STRUCT_LENGTH + NAME_LENGTH + MON_NAME_LENGTH) * MONS_PER_BOX + 2 ; $450
DEF NUM_BOXES EQU 14
; hall of fame
HOF_MON_LENGTH EQU 1 + 2 + 2 + 1 + (MON_NAME_LENGTH + -1) ; species, id, dvs, level, nick
HOF_LENGTH EQU 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator
NUM_HOF_TEAMS EQU 30
; hof_mon: species, id, dvs, level, nicknames
DEF HOF_MON_LENGTH EQU 1 + 2 + 2 + 1 + (MON_NAME_LENGTH - 1) ; $10
; hall_of_fame: win count, party, terminator
DEF HOF_LENGTH EQU 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; $62
DEF NUM_HOF_TEAMS EQU 30
; evolution types (used in data/pokemon/evos_attacks.asm)
const_def 1
@ -149,14 +169,14 @@ NUM_HOF_TEAMS EQU 30
; wild data
NUM_GRASSMON EQU 7 ; data/wild/*_grass.asm table size
NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size
DEF NUM_GRASSMON EQU 7 ; data/wild/*_grass.asm table size
DEF NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size
GRASS_WILDDATA_LENGTH EQU 2 + (1 + NUM_GRASSMON * 2) * 3
WATER_WILDDATA_LENGTH EQU 2 + (1 + NUM_WATERMON * 2) * 1
FISHGROUP_DATA_LENGTH EQU 1 + 2 * 3
DEF GRASS_WILDDATA_LENGTH EQU 2 + 3 + NUM_GRASSMON * 2 * 3
DEF WATER_WILDDATA_LENGTH EQU 2 + 1 + NUM_WATERMON * 2
DEF FISHGROUP_DATA_LENGTH EQU 1 + 2 * 3
NUM_ROAMMON_MAPS EQU 16 ; RoamMaps table size (see data/wild/roammon_maps.asm)
DEF NUM_ROAMMON_MAPS EQU 16 ; RoamMaps table size (see data/wild/roammon_maps.asm)
; treemon sets
; TreeMons indexes (see data/wild/treemons.asm)
@ -169,7 +189,7 @@ NUM_ROAMMON_MAPS EQU 16 ; RoamMaps table size (see data/wild/roammon_maps.asm)
const TREEMON_SET_LAKE
const TREEMON_SET_FOREST
const TREEMON_SET_ROCK
NUM_TREEMON_SETS EQU const_value
DEF NUM_TREEMON_SETS EQU const_value
; treemon scores
const_def
@ -177,8 +197,8 @@ NUM_TREEMON_SETS EQU const_value
const TREEMON_SCORE_GOOD ; 1
const TREEMON_SCORE_RARE ; 2
; ChangeHappiness arguments (see data/happiness_changes.asm)
const_value = 1
; ChangeHappiness arguments (see data/events/happiness_changes.asm)
const_def 1
const HAPPINESS_GAINLEVEL ; 01
const HAPPINESS_USEDITEM ; 02
const HAPPINESS_USEDXITEM ; 03
@ -198,15 +218,16 @@ const_value = 1
const HAPPINESS_REVIVALHERB ; 11
const HAPPINESS_GROOMING ; 12
const HAPPINESS_GAINLEVELATHOME ; 13
DEF NUM_HAPPINESS_CHANGES EQU const_value - 1
; significant happiness values
BASE_HAPPINESS EQU 70
FRIEND_BALL_HAPPINESS EQU 200
HAPPINESS_TO_EVOLVE EQU 220
HAPPINESS_THRESHOLD_1 EQU 100
HAPPINESS_THRESHOLD_2 EQU 200
DEF BASE_HAPPINESS EQU 70
DEF FRIEND_BALL_HAPPINESS EQU 200
DEF HAPPINESS_TO_EVOLVE EQU 220
DEF HAPPINESS_THRESHOLD_1 EQU 100
DEF HAPPINESS_THRESHOLD_2 EQU 200
; PP
PP_UP_MASK EQU %11000000
PP_UP_ONE EQU %01000000
PP_MASK EQU %00111111
DEF PP_UP_MASK EQU %11000000
DEF PP_UP_ONE EQU %01000000
DEF PP_MASK EQU %00111111

View File

@ -15,6 +15,7 @@
const POKE_FLUTE_RADIO ; 08
const UNOWN_RADIO ; 09
const EVOLUTION_RADIO ; 0a
DEF NUM_RADIO_CHANNELS EQU const_value
; internal indexes for channel segments
const OAKS_POKEMON_TALK_2 ; 0b
const OAKS_POKEMON_TALK_3 ; 0c
@ -93,8 +94,9 @@
const POKEDEX_SHOW_6 ; 55
const POKEDEX_SHOW_7 ; 56
const POKEDEX_SHOW_8 ; 57
DEF NUM_RADIO_SEGMENTS EQU const_value
; PlayRadio.StationPointers indexes (see engine/pokegear/pokegear.asm)
; PlayRadioStationPointers indexes (see engine/pokegear/pokegear.asm)
const_def
const MAPRADIO_POKEMON_CHANNEL
const MAPRADIO_OAKS_POKEMON_TALK
@ -105,17 +107,21 @@
const MAPRADIO_PLACES_PEOPLE
const MAPRADIO_LETS_ALL_SING
const MAPRADIO_ROCKET
DEF NUM_MAP_RADIO_STATIONS EQU const_value
; These tables in engine/pokegear/radio.asm are all sized to a power of 2
; so there's no need for a rejection sampling loop
NUM_OAKS_POKEMON_TALK_ADVERBS EQU 16 ; OaksPKMNTalk8.Adverbs
NUM_OAKS_POKEMON_TALK_ADJECTIVES EQU 16 ; OaksPKMNTalk9.Adjectives
NUM_PNP_PEOPLE_ADJECTIVES EQU 16 ; PeoplePlaces5.Adjectives
NUM_PNP_PLACES_ADJECTIVES EQU 16 ; PeoplePlaces7.Adjectives
DEF NUM_OAKS_POKEMON_TALK_ADVERBS EQU 16 ; OaksPKMNTalk8.Adverbs
DEF NUM_OAKS_POKEMON_TALK_ADJECTIVES EQU 16 ; OaksPKMNTalk9.Adjectives
DEF NUM_PNP_PEOPLE_ADJECTIVES EQU 16 ; PeoplePlaces5.Adjectives
DEF NUM_PNP_PLACES_ADJECTIVES EQU 16 ; PeoplePlaces7.Adjectives
; BuenasPasswordTable sizes (see data/radio/buenas_passwords.asm)
NUM_PASSWORD_CATEGORIES EQU 11
NUM_PASSWORDS_PER_CATEGORY EQU 3
DEF NUM_PASSWORD_CATEGORIES EQU 11
DEF NUM_PASSWORDS_PER_CATEGORY EQU 3
; BuenaPrizeItems size (see data/items/buena_prizes.asm)
DEF NUM_BUENA_PRIZES EQU 9
; GetBuenasPassword.StringFunctionJumpTable indexes (see engine/pokegear/radio.asm)
const_def
@ -123,3 +129,4 @@ NUM_PASSWORDS_PER_CATEGORY EQU 3
const BUENA_ITEM
const BUENA_MOVE
const BUENA_STRING
DEF NUM_BUENA_FUNCTIONS EQU const_value

View File

@ -1,4 +1,5 @@
; GetSGBLayout arguments (see engine/gfx/cgb_layouts.asm and engine/gfx/sgb_layouts.asm)
; CGBLayoutJumptable indexes (see engine/gfx/cgb_layouts.asm)
; SGBLayoutJumptable indexes (see engine/gfx/sgb_layouts.asm)
const_def
const SCGB_BATTLE_GRAYSCALE
const SCGB_BATTLE_COLORS
@ -31,14 +32,21 @@
const SCGB_TRAINER_OR_MON_FRONTPIC_PALS
const SCGB_MYSTERY_GIFT
const SCGB_1E
DEF NUM_SCGB_LAYOUTS EQU const_value
SCGB_PARTY_MENU_HP_PALS EQU -4
SCGB_RAM EQU -1
DEF SCGB_PARTY_MENU_HP_BARS EQU $fc
DEF SCGB_DEFAULT EQU $ff
; GetCrystalCGBLayout arguments (see engine/gfx/crystal_layouts.asm)
const_def
const CRYSTAL_CGB_MOBILE_0
const CRYSTAL_CGB_MOBILE_1
const CRYSTAL_CGB_NAME_CARD
; PredefPals indexes (see gfx/sgb/predef.pal)
; GetPredefPal arguments (see engine/gfx/color.asm)
const_def
const PREDEFPAL_00
const PREDEFPAL_ROUTES
const PREDEFPAL_PALLET
const PREDEFPAL_VIRIDIAN
const PREDEFPAL_PEWTER
@ -74,7 +82,7 @@ SCGB_RAM EQU -1
const PREDEFPAL_RB_GREENMON
const PREDEFPAL_RB_PINKMON
const PREDEFPAL_RB_YELLOWMON
const PREDEFPAL_CGB_BADGE ; RB_GREYMON
const PREDEFPAL_CGB_BADGE ; RB_GRAYMON
const PREDEFPAL_BETA_SHINY_MEWMON
const PREDEFPAL_BETA_SHINY_BLUEMON
const PREDEFPAL_BETA_SHINY_REDMON
@ -84,7 +92,7 @@ SCGB_RAM EQU -1
const PREDEFPAL_BETA_SHINY_GREENMON
const PREDEFPAL_BETA_SHINY_PINKMON
const PREDEFPAL_BETA_SHINY_YELLOWMON
const PREDEFPAL_PARTY_ICON ; BETA_SHINY_GREYMON
const PREDEFPAL_PARTY_ICON ; BETA_SHINY_GRAYMON
const PREDEFPAL_HP_GREEN
const PREDEFPAL_HP_YELLOW
const PREDEFPAL_HP_RED
@ -117,6 +125,7 @@ SCGB_RAM EQU -1
const PREDEFPAL_UNOWN_PUZZLE
const PREDEFPAL_GAMEFREAK_LOGO_OB
const PREDEFPAL_GAMEFREAK_LOGO_BG
DEF NUM_PREDEF_PALS EQU const_value
; SGB system command codes
; http://gbdev.gg8.se/wiki/articles/SGB_Functions#SGB_System_Command_Table
@ -138,7 +147,7 @@ SCGB_RAM EQU -1
const SGB_ICON_EN
const SGB_DATA_SND
const SGB_DATA_TRN
const SGB_MLT_REG
const SGB_MLT_REQ
const SGB_JUMP
const SGB_CHR_TRN
const SGB_PCT_TRN
@ -147,4 +156,4 @@ SCGB_RAM EQU -1
const SGB_MASK_EN
const SGB_OBJ_TRN
PALPACKET_LENGTH EQU $10
DEF PALPACKET_LENGTH EQU $10

View File

@ -1,13 +1,15 @@
; person constants
PLAYER EQU 0
LAST_TALKED EQU -2
; object constants
DEF PLAYER EQU 0
DEF LAST_TALKED EQU -2
; string buffer constants
const_def
const STRING_BUFFER_3 ; use wStringBuffer3
const STRING_BUFFER_4 ; use wStringBuffer4
const STRING_BUFFER_5 ; use wStringBuffer5
NUM_STRING_BUFFERS EQU const_value
DEF NUM_STRING_BUFFERS EQU const_value
DEF STRING_BUFFER_LENGTH EQU 19
; checkmoney/takemoney accounts
const_def
@ -58,7 +60,7 @@ NUM_STRING_BUFFERS EQU const_value
const VAR_MAPGROUP ; 0c
const VAR_MAPNUMBER ; 0d
const VAR_UNOWNCOUNT ; 0e
const VAR_ROOFPALETTE ; 0f
const VAR_ENVIRONMENT ; 0f
const VAR_BOXSPACE ; 10
const VAR_CONTESTMINUTES ; 11
const VAR_XCOORD ; 12
@ -70,12 +72,12 @@ NUM_STRING_BUFFERS EQU const_value
const VAR_BLUECARDBALANCE ; 18
const VAR_BUENASPASSWORD ; 19
const VAR_KENJI_BREAK ; 1a
NUM_VARS EQU const_value ; 1b
DEF NUM_VARS EQU const_value
; variable action types
RETVAR_STRBUF2 EQU (0 << 6)
RETVAR_ADDR_DE EQU (1 << 6)
RETVAR_EXECUTE EQU (2 << 6)
DEF RETVAR_STRBUF2 EQU 0 << 6
DEF RETVAR_ADDR_DE EQU 1 << 6
DEF RETVAR_EXECUTE EQU 2 << 6
; PlayerEventScriptPointers indexes (see engine/overworld/events.asm)
const_def -1
@ -90,18 +92,34 @@ RETVAR_EXECUTE EQU (2 << 6)
const PLAYEREVENT_WHITEOUT
const PLAYEREVENT_HATCH
const PLAYEREVENT_JOYCHANGEFACING
NUM_PLAYER_EVENTS EQU const_value
DEF NUM_PLAYER_EVENTS EQU const_value
; PlayerMovementPointers indexes (see engine/overworld/events.asm)
const_def
const PLAYERMOVEMENT_NORMAL
const PLAYERMOVEMENT_WARP
const PLAYERMOVEMENT_TURN
const PLAYERMOVEMENT_FORCE_TURN
const PLAYERMOVEMENT_FINISH
const PLAYERMOVEMENT_CONTINUE
const PLAYERMOVEMENT_EXIT_WATER
const PLAYERMOVEMENT_JUMP
DEF NUM_PLAYER_MOVEMENTS EQU const_value
; script data sizes (see macros/scripts/maps.asm)
SCENE_SCRIPT_SIZE EQU 4 ; scene_script
CALLBACK_SIZE EQU 3 ; callback
WARP_EVENT_SIZE EQU 5 ; warp_event
COORD_EVENT_SIZE EQU 8 ; coord_event
BG_EVENT_SIZE EQU 5 ; bg_event
OBJECT_EVENT_SIZE EQU 13 ; object_event
DEF SCENE_SCRIPT_SIZE EQU 4 ; scene_script
DEF CALLBACK_SIZE EQU 3 ; callback
DEF WARP_EVENT_SIZE EQU 5 ; warp_event
DEF COORD_EVENT_SIZE EQU 8 ; coord_event
DEF BG_EVENT_SIZE EQU 5 ; bg_event
DEF OBJECT_EVENT_SIZE EQU 13 ; object_event
; A coord_event for scene -1 will always activate,
; regardless of the map's scene variable value.
DEF SCENE_ALWAYS EQU -1
; bg_event types
; TryBGEvent arguments (see engine/overworld/events.asm)
; BGEventJumptable indexes (see engine/overworld/events.asm)
const_def
const BGEVENT_READ
const BGEVENT_UP
@ -112,9 +130,10 @@ OBJECT_EVENT_SIZE EQU 13 ; object_event
const BGEVENT_IFNOTSET
const BGEVENT_ITEM
const BGEVENT_COPY
DEF NUM_BGEVENTS EQU const_value
; object_event types
; TryObjectEvent arguments (see engine/overworld/events.asm)
; ObjectEventTypeArray indexes (see engine/overworld/events.asm)
const_def
const OBJECTTYPE_SCRIPT
const OBJECTTYPE_ITEMBALL
@ -123,24 +142,27 @@ OBJECT_EVENT_SIZE EQU 13 ; object_event
const OBJECTTYPE_4
const OBJECTTYPE_5
const OBJECTTYPE_6
DEF NUM_OBJECT_TYPES EQU const_value
; command queue members
CMDQUEUE_TYPE EQU 0
CMDQUEUE_ADDR EQU 1
CMDQUEUE_03 EQU 3
CMDQUEUE_04 EQU 4
CMDQUEUE_05 EQU 5
CMDQUEUE_ENTRY_SIZE EQU 6
CMDQUEUE_CAPACITY EQU 4
rsreset
DEF CMDQUEUE_TYPE rb
DEF CMDQUEUE_ADDR rb
DEF CMDQUEUE_02 rb
DEF CMDQUEUE_03 rb
DEF CMDQUEUE_04 rb
DEF CMDQUEUE_JUMPTABLE_INDEX rb
DEF CMDQUEUE_ENTRY_SIZE EQU _RS
DEF CMDQUEUE_CAPACITY EQU 4
; HandleQueuedCommand.Jumptable indexes (see engine/overworld/events.asm)
const_def
const CMDQUEUE_NULL
const CMDQUEUE_NULL2
const CMDQUEUE_TYPE1
const CMDQUEUE_STONETABLE
const CMDQUEUE_TYPE3
const CMDQUEUE_TYPE4
NUM_CMDQUEUE_TYPES EQU const_value
DEF NUM_CMDQUEUE_TYPES EQU const_value
; elevfloor macro values
; ElevatorFloorNames indexes (see data/events/elevator_floors.asm)
@ -161,23 +183,26 @@ NUM_CMDQUEUE_TYPES EQU const_value
const FLOOR_10F
const FLOOR_11F
const FLOOR_ROOF
DEF NUM_FLOORS EQU const_value
; showemote arguments
; Emotes indexes (see data/sprites/emotes.asm)
const_def
const EMOTE_SHOCK ; 0
const EMOTE_QUESTION ; 1
const EMOTE_HAPPY ; 2
const EMOTE_SAD ; 3
const EMOTE_HEART ; 4
const EMOTE_BOLT ; 5
const EMOTE_SLEEP ; 6
const EMOTE_FISH ; 7
const EMOTE_SHADOW ; 8
const EMOTE_ROD ; 9
const EMOTE_BOULDER_DUST ; 10
const EMOTE_GRASS_RUSTLE ; 11
EMOTE_FROM_MEM EQU -1
const EMOTE_SHOCK
const EMOTE_QUESTION
const EMOTE_HAPPY
const EMOTE_SAD
const EMOTE_HEART
const EMOTE_BOLT
const EMOTE_SLEEP
const EMOTE_FISH
const EMOTE_SHADOW
const EMOTE_ROD
const EMOTE_BOULDER_DUST
const EMOTE_GRASS_RUSTLE
DEF NUM_EMOTES EQU const_value
DEF EMOTE_FROM_MEM EQU -1
DEF EMOTE_LENGTH EQU 6
; fruittree arguments
; FruitTreeItems indexes (see data/items/fruit_trees.asm)
@ -212,7 +237,7 @@ EMOTE_FROM_MEM EQU -1
const FRUITTREE_PEWTER_CITY_1 ; 1c
const FRUITTREE_PEWTER_CITY_2 ; 1d
const FRUITTREE_FUCHSIA_CITY ; 1e
NUM_FRUIT_TREES EQU const_value + -1
DEF NUM_FRUIT_TREES EQU const_value - 1
; describedecoration arguments
; DescribeDecoration.JumpTable indexes (see engine/overworld/decorations.asm)
@ -222,6 +247,7 @@ NUM_FRUIT_TREES EQU const_value + -1
const DECODESC_RIGHT_DOLL ; 2
const DECODESC_BIG_DOLL ; 3
const DECODESC_CONSOLE ; 4
DEF NUM_DECODESCS EQU const_value
; swarm arguments
; StoreSwarmMapIndices arguments
@ -248,7 +274,7 @@ NUM_FRUIT_TREES EQU const_value + -1
const MAGIKARPLENGTH_TOO_SHORT ; 2
const MAGIKARPLENGTH_BEAT_RECORD ; 3
; SpecialReturnShuckle return values
; ReturnShuckie return values
const_def
const SHUCKIE_WRONG_MON ; 0
const SHUCKIE_REFUSED ; 1
@ -262,6 +288,14 @@ NUM_FRUIT_TREES EQU const_value + -1
const BUGCONTEST_BOXED_MON ; 1
const BUGCONTEST_NO_CATCH ; 2
; Bug-Catching Contest values
DEF BUG_CONTEST_BALLS EQU 20
DEF BUG_CONTEST_MINUTES EQU 20
DEF BUG_CONTEST_SECONDS EQU 0
DEF BUG_CONTEST_PLAYER EQU 1
DEF NUM_BUG_CONTESTANTS EQU 10 ; not counting the player
DEF BUG_CONTESTANT_SIZE EQU 4
; HealMachineAnim setval arguments
; HealMachineAnim.Pointers indexes (see engine/events/heal_machine_anim.asm)
const_def
@ -276,7 +310,7 @@ NUM_FRUIT_TREES EQU const_value + -1
const UNOWNPUZZLE_OMANYTE ; 1
const UNOWNPUZZLE_AERODACTYL ; 2
const UNOWNPUZZLE_HO_OH ; 3
NUM_UNOWN_PUZZLES EQU const_value
DEF NUM_UNOWN_PUZZLES EQU const_value
; DisplayUnownWords setval arguments
; UnownWalls and MenuHeaders_UnownWalls indexes (see data/events/unown_walls.asm)

View File

@ -1,4 +1,4 @@
; link types
; wLinkMode
const_def
const LINK_NULL ; 0
const LINK_TIMECAPSULE ; 1
@ -7,24 +7,38 @@
const LINK_MOBILE ; 4
; hSerialReceive high nybbles
SERIAL_TIMECAPSULE EQU $60
SERIAL_TRADECENTER EQU $70
SERIAL_BATTLE EQU $80
DEF SERIAL_TIMECAPSULE EQU $60
DEF SERIAL_TRADECENTER EQU $70
DEF SERIAL_BATTLE EQU $80
ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01
ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK EQU $02
START_TRANSFER_EXTERNAL_CLOCK EQU $80 ; 1 << rSC_ON
START_TRANSFER_INTERNAL_CLOCK EQU $81 ; (1 << rSC_ON) | 1
DEF ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01
DEF ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK EQU $02
; hSerialConnectionStatus
USING_EXTERNAL_CLOCK EQU $01
USING_INTERNAL_CLOCK EQU $02
CONNECTION_NOT_ESTABLISHED EQU $ff
DEF USING_EXTERNAL_CLOCK EQU $01
DEF USING_INTERNAL_CLOCK EQU $02
DEF CONNECTION_NOT_ESTABLISHED EQU $ff
; length of a patch list (less than any of the signal bytes)
DEF SERIAL_PATCH_LIST_LENGTH EQU $fc
; signals the start of an array of bytes transferred over the link cable
SERIAL_PREAMBLE_BYTE EQU $fd
DEF SERIAL_PREAMBLE_BYTE EQU $fd
; this byte is used when there is no data to send
SERIAL_NO_DATA_BYTE EQU $fe
DEF SERIAL_NO_DATA_BYTE EQU $fe
; signals the end of one part of a patch list (there are two parts) for player/enemy party data
SERIAL_PATCH_LIST_PART_TERMINATOR EQU $ff
DEF SERIAL_PATCH_LIST_PART_TERMINATOR EQU $ff
; used to replace SERIAL_NO_DATA_BYTE
DEF SERIAL_PATCH_REPLACEMENT_BYTE EQU $ff
DEF SERIAL_PREAMBLE_LENGTH EQU 6
DEF SERIAL_RN_PREAMBLE_LENGTH EQU 7
DEF SERIAL_RNS_LENGTH EQU 10
DEF SERIAL_MAIL_PREAMBLE_BYTE EQU $20
DEF SERIAL_MAIL_REPLACEMENT_BYTE EQU $21
DEF SERIAL_MAIL_PREAMBLE_LENGTH EQU 5
; timeout duration after exchanging a byte
DEF SERIAL_LINK_BYTE_TIMEOUT EQU $5000
DEF MAX_MYSTERY_GIFT_PARTNERS EQU 5

View File

@ -1,6 +1,5 @@
; SFX indexes (see audio/sfx_pointers.asm)
const_def
const SFX_DEX_FANFARE_50_79 ; 00
const SFX_ITEM ; 01
const SFX_CAUGHT_MON ; 02
@ -150,8 +149,8 @@
const SFX_FANFARE_2 ; 92
const SFX_REGISTER_PHONE_NUMBER ; 93
const SFX_3RD_PLACE ; 94
const SFX_GET_EGG_FROM_DAY_CARE_MAN ; 95
const SFX_GET_EGG_FROM_DAY_CARE_LADY ; 96
const SFX_GET_EGG_UNUSED ; 95
const SFX_GET_EGG ; 96
const SFX_MOVE_DELETED ; 97
const SFX_2ND_PLACE ; 98
const SFX_1ST_PLACE ; 99
@ -189,7 +188,6 @@
const SFX_TRAIN_ARRIVED ; b9
const SFX_STOP_SLOT ; ba
const SFX_2_BOOPS ; bb
; new to Crystal
const SFX_GLASS_TING ; bc
const SFX_GLASS_TING_2 ; bd
@ -210,3 +208,4 @@
const SFX_TWO_PC_BEEPS ; cc
const SFX_4_NOTE_DITTY ; cd
const SFX_TWINKLE ; ce
DEF NUM_SFX EQU const_value

View File

@ -1,23 +1,37 @@
; sprite_anim_struct members (see macros/wram.asm)
; sprite_anim_struct members (see macros/ram.asm)
rsreset
DEF SPRITEANIMSTRUCT_INDEX rb ; 0
DEF SPRITEANIMSTRUCT_FRAMESET_ID rb ; 1
DEF SPRITEANIMSTRUCT_ANIM_SEQ_ID rb ; 2
DEF SPRITEANIMSTRUCT_TILE_ID rb ; 3
DEF SPRITEANIMSTRUCT_XCOORD rb ; 4
DEF SPRITEANIMSTRUCT_YCOORD rb ; 5
DEF SPRITEANIMSTRUCT_XOFFSET rb ; 6
DEF SPRITEANIMSTRUCT_YOFFSET rb ; 7
DEF SPRITEANIMSTRUCT_DURATION rb ; 8
DEF SPRITEANIMSTRUCT_DURATIONOFFSET rb ; 9
DEF SPRITEANIMSTRUCT_FRAME rb ; a
DEF SPRITEANIMSTRUCT_JUMPTABLE_INDEX rb ; b
DEF SPRITEANIMSTRUCT_VAR1 rb ; c
DEF SPRITEANIMSTRUCT_VAR2 rb ; d
DEF SPRITEANIMSTRUCT_VAR3 rb ; e
DEF SPRITEANIMSTRUCT_VAR4 rb ; f
DEF SPRITEANIMSTRUCT_LENGTH EQU _RS
DEF NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
; wSpriteAnimDict keys (see wram.asm)
; UnusedSpriteAnimGFX indexes (see data/sprite_anims/unused_gfx.asm)
const_def
const SPRITEANIMSTRUCT_INDEX ; 0
const SPRITEANIMSTRUCT_FRAMESET_ID ; 1
const SPRITEANIMSTRUCT_ANIM_SEQ_ID ; 2
const SPRITEANIMSTRUCT_TILE_ID ; 3
const SPRITEANIMSTRUCT_XCOORD ; 4
const SPRITEANIMSTRUCT_YCOORD ; 5
const SPRITEANIMSTRUCT_XOFFSET ; 6
const SPRITEANIMSTRUCT_YOFFSET ; 7
const SPRITEANIMSTRUCT_DURATION ; 8
const SPRITEANIMSTRUCT_DURATIONOFFSET ; 9
const SPRITEANIMSTRUCT_FRAME ; a
const SPRITEANIMSTRUCT_JUMPTABLE_INDEX ; b
const SPRITEANIMSTRUCT_0C ; c
const SPRITEANIMSTRUCT_0D ; d
const SPRITEANIMSTRUCT_0E ; e
const SPRITEANIMSTRUCT_0F ; f
SPRITEANIMSTRUCT_LENGTH EQU const_value
NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_DICT_DEFAULT ; 0
const_skip 4 ; unused
const SPRITE_ANIM_DICT_TEXT_CURSOR ; 5
const SPRITE_ANIM_DICT_GS_SPLASH ; 6
const SPRITE_ANIM_DICT_SLOTS ; 7
const SPRITE_ANIM_DICT_ARROW_CURSOR ; 8
DEF NUM_SPRITE_ANIM_GFX EQU const_value
; wSpriteAnimDict size (see wram.asm)
DEF NUM_SPRITEANIMDICT_ENTRIES EQU 10
; SpriteAnimSeqData indexes (see data/sprite_anims/sequences.asm)
const_def
@ -25,15 +39,15 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_INDEX_GS_TITLE_TRAIL ; 01
const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR ; 02
const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO ; 03
const SPRITE_ANIM_INDEX_GS_INTRO_STAR ; 04
const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE ; 05
const SPRITE_ANIM_INDEX_GS_GAMEFREAK_LOGO_STAR ; 04
const SPRITE_ANIM_INDEX_GS_GAMEFREAK_LOGO_SPARKLE ; 05
const SPRITE_ANIM_INDEX_SLOTS_GOLEM ; 06
const SPRITE_ANIM_INDEX_SLOTS_CHANSEY ; 07
const SPRITE_ANIM_INDEX_SLOTS_EGG ; 08
const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR ; 09
const SPRITE_ANIM_INDEX_RED_WALK ; 0a
const SPRITE_ANIM_INDEX_UNUSED_CURSOR ; 0b
const SPRITE_ANIM_INDEX_DUMMY_GAME ; 0c
const SPRITE_ANIM_INDEX_MEMORY_GAME_CURSOR ; 0c
const SPRITE_ANIM_INDEX_POKEGEAR_ARROW ; 0d
const SPRITE_ANIM_INDEX_TRADE_POKE_BALL ; 0e
const SPRITE_ANIM_INDEX_TRADE_POOF ; 0f
@ -47,7 +61,7 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_INDEX_CUT_TREE ; 17
const SPRITE_ANIM_INDEX_FLY_LEAF ; 18
const SPRITE_ANIM_INDEX_EGG_CRACK ; 19
const SPRITE_ANIM_INDEX_GS_INTRO_HO_OH ; 1a
const SPRITE_ANIM_INDEX_GS_INTRO_HO_OH_LUGIA ; 1a
const SPRITE_ANIM_INDEX_HEADBUTT ; 1b
const SPRITE_ANIM_INDEX_EGG_HATCH ; 1c
const SPRITE_ANIM_INDEX_EZCHAT_CURSOR ; 1d
@ -66,6 +80,7 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_INDEX_INTRO_UNOWN_F ; 2a
const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY ; 2b
const SPRITE_ANIM_INDEX_CELEBI ; 2c
DEF NUM_SPRITE_ANIM_INDEXES EQU const_value
; DoAnimFrame.Jumptable indexes (see engine/gfx/sprite_anims.asm)
const_def
@ -76,14 +91,14 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_SEQ_GS_TITLE_TRAIL ; 04
const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR ; 05
const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO ; 06
const SPRITE_ANIM_SEQ_GS_INTRO_STAR ; 07
const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE ; 08
const SPRITE_ANIM_SEQ_GS_GAMEFREAK_LOGO_STAR ; 07
const SPRITE_ANIM_SEQ_GS_GAMEFREAK_LOGO_SPARKLE ; 08
const SPRITE_ANIM_SEQ_SLOTS_GOLEM ; 09
const SPRITE_ANIM_SEQ_SLOTS_CHANSEY ; 0a
const SPRITE_ANIM_SEQ_SLOTS_EGG ; 0b
const SPRITE_ANIM_SEQ_MAIL_CURSOR ; 0c
const SPRITE_ANIM_SEQ_UNUSED_CURSOR ; 0d
const SPRITE_ANIM_SEQ_DUMMY_GAME_CURSOR ; 0e
const SPRITE_ANIM_SEQ_MEMORY_GAME_CURSOR ; 0e
const SPRITE_ANIM_SEQ_POKEGEAR_ARROW ; 0f
const SPRITE_ANIM_SEQ_TRADE_POKE_BALL ; 10
const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE ; 11
@ -94,7 +109,7 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_SEQ_FLY_FROM ; 16
const SPRITE_ANIM_SEQ_FLY_LEAF ; 17
const SPRITE_ANIM_SEQ_FLY_TO ; 18
const SPRITE_ANIM_SEQ_GS_INTRO_HO_OH ; 19
const SPRITE_ANIM_SEQ_GS_INTRO_HO_OH_LUGIA ; 19
const SPRITE_ANIM_SEQ_EZCHAT_CURSOR ; 1a
const SPRITE_ANIM_SEQ_MOBILE_TRADE_SENT_PULSE ; 1b
const SPRITE_ANIM_SEQ_MOBILE_TRADE_OT_PULSE ; 1c
@ -104,6 +119,7 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_SEQ_INTRO_UNOWN ; 20
const SPRITE_ANIM_SEQ_INTRO_UNOWN_F ; 21
const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY ; 22
DEF NUM_SPRITE_ANIM_SEQS EQU const_value
; SpriteAnimFrameData indexes (see data/sprite_anims/framesets.asm)
const_def
@ -118,8 +134,8 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR ; 08
const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR_BIG ; 09
const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO ; 0a
const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR ; 0b
const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE ; 0c
const SPRITE_ANIM_FRAMESET_GS_GAMEFREAK_LOGO_STAR ; 0b
const SPRITE_ANIM_FRAMESET_GS_GAMEFREAK_LOGO_SPARKLE ; 0c
const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM ; 0d
const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY ; 0e
const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2 ; 0f
@ -143,7 +159,7 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_FRAMESET_EGG_HATCH_2 ; 21
const SPRITE_ANIM_FRAMESET_EGG_HATCH_3 ; 22
const SPRITE_ANIM_FRAMESET_EGG_HATCH_4 ; 23
const SPRITE_ANIM_FRAMESET_GS_INTRO_HO_OH ; 24
const SPRITE_ANIM_FRAMESET_GS_INTRO_HO_OH_LUGIA ; 24
const SPRITE_ANIM_FRAMESET_HEADBUTT ; 25
const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_1 ; 26
const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_2 ; 27
@ -173,6 +189,10 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F ; 3f
const SPRITE_ANIM_FRAMESET_CELEBI_LEFT ; 40
const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT ; 41
const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_8 ; 42
const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_9 ; 43
const SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_10 ; 44
DEF NUM_SPRITE_ANIM_FRAMESETS EQU const_value
; SpriteAnimOAMData indexes (see data/sprite_anims/oam.asm)
const_def
@ -184,10 +204,10 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_OAMSET_GS_INTRO_SHELLDER_2 ; 05
const SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_1 ; 06
const SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_2 ; 07
const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_1 ; 08
const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_2 ; 09
const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_3 ; 0a
const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_4 ; 0b
const SPRITE_ANIM_OAMSET_GS_INTRO_UNUSED_LAPRAS ; 08
const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_1 ; 09
const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_2 ; 0a
const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_3 ; 0b
const SPRITE_ANIM_OAMSET_GS_INTRO_NOTE ; 0c
const SPRITE_ANIM_OAMSET_GS_INTRO_INVISIBLE_NOTE ; 0d
const SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_1 ; 0e
@ -210,11 +230,11 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_2 ; 1f
const SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR ; 20
const SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR_BIG ; 21
const SPRITE_ANIM_OAMSET_GS_INTRO_GAMEFREAK_LOGO ; 22
const SPRITE_ANIM_OAMSET_GS_INTRO_STAR ; 23
const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_1 ; 24
const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2 ; 25
const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_3 ; 26
const SPRITE_ANIM_OAMSET_GS_GAMEFREAK_LOGO ; 22
const SPRITE_ANIM_OAMSET_GS_GAMEFREAK_LOGO_STAR ; 23
const SPRITE_ANIM_OAMSET_GS_GAMEFREAK_LOGO_SPARKLE_1 ; 24
const SPRITE_ANIM_OAMSET_GS_GAMEFREAK_LOGO_SPARKLE_2 ; 25
const SPRITE_ANIM_OAMSET_GS_GAMEFREAK_LOGO_SPARKLE_3 ; 26
const SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1 ; 27
const SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2 ; 28
const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1 ; 29
@ -262,11 +282,11 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_OAMSET_CUT_TREE_4 ; 53
const SPRITE_ANIM_OAMSET_EGG_CRACK ; 54
const SPRITE_ANIM_OAMSET_EGG_HATCH ; 55
const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_1 ; 56
const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_2 ; 57
const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_3 ; 58
const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_4 ; 59
const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_5 ; 5a
const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_1 ; 56
const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_2 ; 57
const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_3 ; 58
const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_4 ; 59
const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_5 ; 5a
const SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2 ; 5b
const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_1 ; 5c
const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_2 ; 5d
@ -316,3 +336,7 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_9 ; 89
const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_10 ; 8a
const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_11 ; 8b
const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_8 ; 8c
const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_9 ; 8d
const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_10 ; 8e
DEF NUM_SPRITE_ANIM_OAMSETS EQU const_value

View File

@ -5,7 +5,7 @@
const SPRITE_CHRIS ; 01
const SPRITE_CHRIS_BIKE ; 02
const SPRITE_GAMEBOY_KID ; 03
const SPRITE_SILVER ; 04
const SPRITE_RIVAL ; 04
const SPRITE_OAK ; 05
const SPRITE_RED ; 06
const SPRITE_BLUE ; 07
@ -43,7 +43,7 @@
const SPRITE_YOUNGSTER ; 27
const SPRITE_LASS ; 28
const SPRITE_TEACHER ; 29
const SPRITE_BUENA ; 2a
const SPRITE_BEAUTY ; 2a
const SPRITE_SUPER_NERD ; 2b
const SPRITE_ROCKER ; 2c
const SPRITE_POKEFAN_M ; 2d
@ -73,7 +73,7 @@
const SPRITE_SLOWPOKE ; 45
const SPRITE_CAPTAIN ; 46
const SPRITE_BIG_LAPRAS ; 47
const SPRITE_GYM_GUY ; 48
const SPRITE_GYM_GUIDE ; 48
const SPRITE_SAILOR ; 49
const SPRITE_BIKER ; 4a
const SPRITE_PHARMACIST ; 4b
@ -104,10 +104,11 @@
const SPRITE_ENTEI ; 64
const SPRITE_RAIKOU ; 65
const SPRITE_STANDING_YOUNGSTER ; 66
DEF NUM_OVERWORLD_SPRITES EQU const_value - 1
; SpriteMons indexes (see data/sprites/sprite_mons.asm)
const_def $80
SPRITE_POKEMON EQU const_value
const_next $80
DEF SPRITE_POKEMON EQU const_value
const SPRITE_UNOWN ; 80
const SPRITE_GEODUDE ; 81
const SPRITE_GROWLITHE ; 82
@ -143,15 +144,16 @@ SPRITE_POKEMON EQU const_value
const SPRITE_GYARADOS ; a0
const SPRITE_LUGIA ; a1
const SPRITE_HO_OH ; a2
DEF NUM_POKEMON_SPRITES EQU const_value - SPRITE_POKEMON
; special GetMonSprite values (see engine/overworld/overworld.asm)
const_def $e0
const_next $e0
const SPRITE_DAY_CARE_MON_1 ; e0
const SPRITE_DAY_CARE_MON_2 ; e1
; wVariableSprites indexes (see wram.asm)
const_def $f0
SPRITE_VARS EQU const_value
const_next $f0
DEF SPRITE_VARS EQU const_value
const SPRITE_CONSOLE ; f0
const SPRITE_DOLL_1 ; f1
const SPRITE_DOLL_2 ; f2

View File

@ -1,12 +1,11 @@
; overworld_sprite struct members (see data/sprites.asm)
const_def
const SPRITEDATA_ADDR ; 0
const SPRITEDATA_ADDR_HI ; 1
const SPRITEDATA_SIZE ; 2
const SPRITEDATA_BANK ; 3
const SPRITEDATA_TYPE ; 4
const SPRITEDATA_PALETTE ; 5
NUM_SPRITEDATA_FIELDS EQU const_value
; overworld_sprite struct members (see data/sprites/sprites.asm)
rsreset
DEF SPRITEDATA_ADDR rw ; 0
DEF SPRITEDATA_SIZE rb ; 2
DEF SPRITEDATA_BANK rb ; 3
DEF SPRITEDATA_TYPE rb ; 4
DEF SPRITEDATA_PALETTE rb ; 5
DEF NUM_SPRITEDATA_FIELDS EQU _RS
; sprite types
const_def 1

View File

@ -1,12 +1,12 @@
; name lengths
NAME_LENGTH EQU 11
PLAYER_NAME_LENGTH EQU 8
BOX_NAME_LENGTH EQU 9
MON_NAME_LENGTH EQU 11
MOVE_NAME_LENGTH EQU 13
ITEM_NAME_LENGTH EQU 13
TRAINER_CLASS_NAME_LENGTH EQU 13
NAME_LENGTH_JAPANESE EQU 6
DEF NAME_LENGTH EQU 11
DEF PLAYER_NAME_LENGTH EQU 8
DEF BOX_NAME_LENGTH EQU 9
DEF MON_NAME_LENGTH EQU 11
DEF MOVE_NAME_LENGTH EQU 13
DEF ITEM_NAME_LENGTH EQU 13
DEF TRAINER_CLASS_NAME_LENGTH EQU 13
DEF NAME_LENGTH_JAPANESE EQU 6
; GetName types (see home/names.asm)
const_def 1
@ -20,27 +20,33 @@ NAME_LENGTH_JAPANESE EQU 6
const MOVE_DESC_NAME_BROKEN ; 8
; see home/text.asm
BORDER_WIDTH EQU 2
TEXTBOX_WIDTH EQU SCREEN_WIDTH
TEXTBOX_INNERW EQU TEXTBOX_WIDTH - BORDER_WIDTH
TEXTBOX_HEIGHT EQU 6
TEXTBOX_INNERH EQU TEXTBOX_HEIGHT - BORDER_WIDTH
TEXTBOX_X EQU 0
TEXTBOX_INNERX EQU TEXTBOX_X + 1
TEXTBOX_Y EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT
TEXTBOX_INNERY EQU TEXTBOX_Y + 2
DEF BORDER_WIDTH EQU 2
DEF TEXTBOX_WIDTH EQU SCREEN_WIDTH
DEF TEXTBOX_INNERW EQU TEXTBOX_WIDTH - BORDER_WIDTH
DEF TEXTBOX_HEIGHT EQU 6
DEF TEXTBOX_INNERH EQU TEXTBOX_HEIGHT - BORDER_WIDTH
DEF TEXTBOX_X EQU 0
DEF TEXTBOX_INNERX EQU TEXTBOX_X + 1
DEF TEXTBOX_Y EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT
DEF TEXTBOX_INNERY EQU TEXTBOX_Y + 2
; see gfx/frames/*.png
DEF TEXTBOX_FRAME_TILES EQU 6
; PrintNum bit flags
const_def 5
const PRINTNUM_MONEY_F ; 5
const PRINTNUM_RIGHTALIGN_F ; 6
const PRINTNUM_LEFTALIGN_F ; 6
const PRINTNUM_LEADINGZEROS_F ; 7
; PrintNum arguments (see engine/math/print_num.asm)
PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F
PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
DEF PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
DEF PRINTNUM_LEFTALIGN EQU 1 << PRINTNUM_LEFTALIGN_F
DEF PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
; character sets (see charmap.asm)
FIRST_REGULAR_TEXT_CHAR EQU $60
FIRST_HIRAGANA_DAKUTEN_CHAR EQU $20
DEF FIRST_REGULAR_TEXT_CHAR EQU $60
DEF FIRST_HIRAGANA_DAKUTEN_CHAR EQU $20
; gfx/font/unown_font.png
DEF FIRST_UNOWN_CHAR EQU $40

View File

@ -21,7 +21,7 @@
const TILESET_LIGHTHOUSE ; 13
const TILESET_PLAYERS_ROOM ; 14
const TILESET_POKECOM_CENTER ; 15
const TILESET_BATTLE_TOWER ; 16
const TILESET_BATTLE_TOWER_INSIDE ; 16
const TILESET_TOWER ; 17
const TILESET_CAVE ; 18
const TILESET_PARK ; 19
@ -36,6 +36,13 @@
const TILESET_KABUTO_WORD_ROOM ; 22
const TILESET_OMANYTE_WORD_ROOM ; 23
const TILESET_AERODACTYL_WORD_ROOM ; 24
DEF NUM_TILESETS EQU const_value - 1
; wTileset struct size
DEF TILESET_LENGTH EQU 15
; roof length (see gfx/tilesets/roofs)
DEF ROOF_LENGTH EQU 9
; bg palette values (see gfx/tilesets/*_palette_map.asm)
; TilesetBGPalette indexes (see gfx/tilesets/bg_tiles.pal)

View File

@ -1,6 +1,9 @@
trainerclass: MACRO
enum \1
const_value = 1
DEF __trainer_class__ = 0
MACRO trainerclass
DEF \1 EQU __trainer_class__
DEF __trainer_class__ += 1
const_def 1
ENDM
; trainer class ids
@ -15,16 +18,16 @@ ENDM
; - BTTrainerClassSprites (see data/trainers/sprites.asm)
; - BTTrainerClassGenders (see data/trainers/genders.asm)
; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see data/trainers/parties.asm)
enum_start
CHRIS EQU __enum__
DEF CHRIS EQU __trainer_class__
trainerclass TRAINER_NONE ; 0
const PHONECONTACT_MOM
const PHONECONTACT_BIKESHOP
const PHONECONTACT_BILL
const PHONECONTACT_ELM
const PHONECONTACT_BUENA
DEF NUM_NONTRAINER_PHONECONTACTS EQU const_value - 1
KRIS EQU __enum__
DEF KRIS EQU __trainer_class__
trainerclass FALKNER ; 1
const FALKNER1
@ -72,7 +75,7 @@ KRIS EQU __enum__
const WILL1
trainerclass CAL ; c
const CAL1
const CAL1 ; unused
const CAL2
const CAL3
@ -182,8 +185,8 @@ KRIS EQU __enum__
const MICHELLE
const DANA1
const ELLEN
const CONNIE2
const CONNIE3
const CONNIE2 ; unused
const CONNIE3 ; unused
const DANA2
const DANA3
const DANA4
@ -205,12 +208,12 @@ KRIS EQU __enum__
const GAVEN3
const BLAKE
const BRIAN
const ERICK
const ANDY
const TYLER
const ERICK ; unused
const ANDY ; unused
const TYLER ; unused
const SEAN
const KEVIN
const STEVE
const STEVE ; unused
const ALLEN
const DARIN
@ -240,19 +243,19 @@ KRIS EQU __enum__
trainerclass BEAUTY ; 1d
const VICTORIA
const SAMANTHA
const JULIE
const JACLYN
const BRENDA
const JULIE ; unused
const JACLYN ; unused
const BRENDA ; unused
const CASSIE
const CAROLINE
const CARLENE
const JESSICA
const RACHAEL
const ANGELICA
const KENDRA
const VERONICA
const CAROLINE ; unused
const CARLENE ; unused
const JESSICA ; unused
const RACHAEL ; unused
const ANGELICA ; unused
const KENDRA ; unused
const VERONICA ; unused
const JULIA
const THERESA
const THERESA ; unused
const VALERIE
const OLIVIA
@ -285,7 +288,7 @@ KRIS EQU __enum__
const GRUNTM_9
const GRUNTM_10
const GRUNTM_11
const GRUNTM_12
const GRUNTM_12 ; unused
const GRUNTM_13
const GRUNTM_14
const GRUNTM_15
@ -295,22 +298,22 @@ KRIS EQU __enum__
const GRUNTM_19
const GRUNTM_20
const GRUNTM_21
const GRUNTM_22
const GRUNTM_23
const GRUNTM_22 ; unused
const GRUNTM_23 ; unused
const GRUNTM_24
const GRUNTM_25
const GRUNTM_26
const GRUNTM_27
const GRUNTM_26 ; unused
const GRUNTM_27 ; unused
const GRUNTM_28
const GRUNTM_29
const GRUNTM_30
const GRUNTM_30 ; unused
const GRUNTM_31
trainerclass GENTLEMAN ; 20
const PRESTON
const EDWARD
const GREGORY
const VIRGIL
const VIRGIL ; unused
const ALFRED
trainerclass SKIER ; 21
@ -382,18 +385,18 @@ KRIS EQU __enum__
const BERKE
const KIRK
const MATHEW
const HAL
const PATON
const DARYL
const WALTER
const TONY
const HAL ; unused
const PATON ; unused
const DARYL ; unused
const WALTER ; unused
const TONY ; unused
const JEROME
const TUCKER
const RICK
const RICK ; unused
const CAMERON
const SETH
const JAMES
const LEWIS
const JAMES ; unused
const LEWIS ; unused
const PARKER
trainerclass SWIMMERF ; 27
@ -404,15 +407,15 @@ KRIS EQU __enum__
const DENISE
const KARA
const WENDY
const LISA
const JILL
const MARY
const KATIE
const LISA ; unused
const JILL ; unused
const MARY ; unused
const KATIE ; unused
const DAWN
const TARA
const TARA ; unused
const NICOLE
const LORI
const JODY
const JODY ; unused
const NIKKI
const DIANA
const BRIANA
@ -435,16 +438,16 @@ KRIS EQU __enum__
trainerclass SUPER_NERD ; 29
const STAN
const ERIC
const GREGG
const JAY
const DAVE
const GREGG ; unused
const JAY ; unused
const DAVE ; unused
const SAM
const TOM
const PAT
const SHAWN
const TERU
const RUSS
const NORTON
const RUSS ; unused
const NORTON ; unused
const HUGH
const MARKUS
@ -485,8 +488,8 @@ KRIS EQU __enum__
const ANTHONY5
trainerclass BIKER ; 2d
const BIKER_BENNY
const KAZU
const BIKER_BENNY ; unused
const KAZU ; unused
const DWAYNE
const HARRIS
const ZEKE
@ -505,8 +508,8 @@ KRIS EQU __enum__
trainerclass FIREBREATHER ; 30
const OTIS
const DICK
const NED
const DICK ; unused
const NED ; unused
const BURT
const BILL
const WALT
@ -517,14 +520,14 @@ KRIS EQU __enum__
const IRWIN1
const FRITZ
const HORTON
const IRWIN2
const IRWIN3
const IRWIN4
const IRWIN2 ; unused
const IRWIN3 ; unused
const IRWIN4 ; unused
trainerclass BLACKBELT_T ; 32
const KENJI1
const KENJI1 ; unused
const YOSHI
const KENJI2
const KENJI2 ; unused
const LAO
const NOB
const KIYO
@ -589,15 +592,15 @@ KRIS EQU __enum__
const LLOYD
const DEAN
const SID
const HARVEY
const DALE
const HARVEY ; unused
const DALE ; unused
const TED
const TODD2
const TODD3
const THOMAS
const LEROY
const DAVID
const JOHN
const THOMAS ; unused
const LEROY ; unused
const DAVID ; unused
const JOHN ; unused
const JERRY
const SPENCER
const TODD4
@ -625,9 +628,9 @@ KRIS EQU __enum__
trainerclass MEDIUM ; 39
const MARTHA
const GRACE
const BETHANY
const MARGRET
const ETHEL
const BETHANY ; unused
const MARGRET ; unused
const ETHEL ; unused
const REBECCA
const DORIS
@ -646,15 +649,15 @@ KRIS EQU __enum__
const BRANDON
const JEREMY
const COLIN
const DEREK2
const DEREK3
const DEREK2 ; unused
const DEREK3 ; unused
const ALEX
const REX
const ALLAN
trainerclass KIMONO_GIRL ; 3c
const NAOKO1
const NAOKO2
const NAOKO_UNUSED ; unused
const NAOKO
const SAYO
const ZUKI
const KUNI
@ -670,13 +673,13 @@ KRIS EQU __enum__
const MEGANDPEG1
const MEGANDPEG2
const LEAANDPIA1
const LEAANDPIA2
const LEAANDPIA2 ; unused
trainerclass POKEFANF ; 3e
const BEVERLY1
const RUTH
const BEVERLY2
const BEVERLY3
const BEVERLY2 ; unused
const BEVERLY3 ; unused
const GEORGIA
const JAIME
@ -700,4 +703,4 @@ KRIS EQU __enum__
trainerclass MYSTICALMAN ; 43
const EUSINE
NUM_TRAINER_CLASSES EQU __enum__
DEF NUM_TRAINER_CLASSES EQU __trainer_class__ - 1

View File

@ -1,19 +1,15 @@
; TrainerClassAttributes struct members (see data/trainers/attributes.asm)
const_def
const TRNATTR_ITEM1 ; 0
const TRNATTR_ITEM2 ; 1
const TRNATTR_BASEMONEY ; 2
const TRNATTR_AI_MOVE_WEIGHTS ; 3
const TRNATTR_AI2 ; 4
const TRNATTR_AI_ITEM_SWITCH ; 5
const TRNATTR_AI4 ; 6
NUM_TRAINER_ATTRIBUTES EQU const_value
rsreset
DEF TRNATTR_ITEM1 rb ; 0
DEF TRNATTR_ITEM2 rb ; 1
DEF TRNATTR_BASEMONEY rb ; 2
DEF TRNATTR_AI_MOVE_WEIGHTS rw ; 3
DEF TRNATTR_AI_ITEM_SWITCH rw ; 5
DEF NUM_TRAINER_ATTRIBUTES EQU _RS
; TRNATTR_AI_MOVE_WEIGHTS bit flags (wEnemyTrainerAIFlags)
; AIScoringPointers indexes (see engine/battle/ai/move.asm)
const_def
const NO_AI
const_value = 0
shift_const AI_BASIC
shift_const AI_SETUP
shift_const AI_TYPES
@ -24,27 +20,24 @@ const_value = 0
shift_const AI_CAUTIOUS
shift_const AI_STATUS
shift_const AI_RISKY
shift_const AI_10
shift_const AI_11
shift_const AI_12
shift_const AI_13
shift_const AI_14
shift_const AI_15
DEF NO_AI EQU 0
; TRNATTR_AI_ITEM_SWITCH bit flags
CONTEXT_USE_F EQU 6
UNKNOWN_USE_F EQU 5
ALWAYS_USE_F EQU 4
SWITCH_SOMETIMES_F EQU 2
SWITCH_RARELY_F EQU 1
SWITCH_OFTEN_F EQU 0
const_def
const SWITCH_OFTEN_F ; 0
const SWITCH_RARELY_F ; 1
const SWITCH_SOMETIMES_F ; 2
const_skip ; 3
const ALWAYS_USE_F ; 4
const UNKNOWN_USE_F ; 5
const CONTEXT_USE_F ; 6
CONTEXT_USE EQU 1 << CONTEXT_USE_F
UNKNOWN_USE EQU 1 << UNKNOWN_USE_F
ALWAYS_USE EQU 1 << ALWAYS_USE_F
SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F
SWITCH_RARELY EQU 1 << SWITCH_RARELY_F
SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F
DEF SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F
DEF SWITCH_RARELY EQU 1 << SWITCH_RARELY_F
DEF SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F
DEF ALWAYS_USE EQU 1 << ALWAYS_USE_F
DEF UNKNOWN_USE EQU 1 << UNKNOWN_USE_F
DEF CONTEXT_USE EQU 1 << CONTEXT_USE_F
; TrainerTypes indexes (see engine/battle/read_trainer_party.asm)
const_def

View File

@ -6,7 +6,7 @@
; - TypeBoostItems (see data/types/type_boost_items.asm)
const_def
PHYSICAL EQU const_value
DEF PHYSICAL EQU const_value
const NORMAL
const FIGHTING
const FLYING
@ -18,28 +18,22 @@ PHYSICAL EQU const_value
const GHOST
const STEEL
UNUSED_TYPES EQU const_value
const TYPE_10
const TYPE_11
const TYPE_12
const TYPE_13
const TYPE_14
const TYPE_15
const TYPE_16
const TYPE_17
const TYPE_18
const CURSE_T
UNUSED_TYPES_END EQU const_value
DEF UNUSED_TYPES EQU const_value
const_next 19
const CURSE_TYPE
DEF UNUSED_TYPES_END EQU const_value
SPECIAL EQU const_value
DEF SPECIAL EQU const_value
const FIRE
const WATER
const GRASS
const ELECTRIC
const PSYCHIC
const PSYCHIC_TYPE
const ICE
const DRAGON
const DARK
TYPES_END EQU const_value
DEF TYPES_END EQU const_value
NUM_TYPES EQU TYPES_END + UNUSED_TYPES - UNUSED_TYPES_END
DEF NUM_TYPES EQU TYPES_END + UNUSED_TYPES - UNUSED_TYPES_END - 1 ; discount BIRD
DEF POKEDEX_TYPE_STRING_LENGTH EQU 9

View File

@ -1,19 +1,19 @@
; wInputType:: ; c2c7
AUTO_INPUT EQU $ff
; wInputType::
DEF AUTO_INPUT EQU $ff
; wDebugFlags:: ; c2cc
; wDebugFlags::
const_def
const DEBUG_BATTLE_F
const DEBUG_FIELD_F
; wCurDexMode:: ; c7d4
; wCurDexMode::
const_def
const DEXMODE_NEW
const DEXMODE_OLD
const DEXMODE_ABC
const DEXMODE_UNOWN
; wMonType:: ; cf5f
; wMonType::
const_def
const PARTYMON ; 0
const OTPARTYMON ; 1
@ -21,23 +21,27 @@ AUTO_INPUT EQU $ff
const TEMPMON ; 3
const WILDMON ; 4
; wGameTimerPause:: ; cfbc
GAMETIMERPAUSE_TIMER_PAUSED_F EQU 0
GAMETIMERPAUSE_MOBILE_7_F EQU 7
; wGameTimerPaused::
DEF GAME_TIMER_PAUSED_F EQU 0
DEF GAME_TIMER_MOBILE_F EQU 7
; wOptions:: ; cfcc
TEXT_DELAY_MASK EQU %111
; wJoypadDisable::
DEF JOYPAD_DISABLE_MON_FAINT_F EQU 6
DEF JOYPAD_DISABLE_SGB_TRANSFER_F EQU 7
; wOptions1::
DEF TEXT_DELAY_MASK EQU %111
const_def 4
const NO_TEXT_SCROLL ; 4
const STEREO ; 5
const BATTLE_SHIFT ; 6
const BATTLE_SCENE ; 7
TEXT_DELAY_FAST EQU %001 ; 1
TEXT_DELAY_MED EQU %011 ; 3
TEXT_DELAY_SLOW EQU %101 ; 5
DEF TEXT_DELAY_FAST EQU %001 ; 1
DEF TEXT_DELAY_MED EQU %011 ; 3
DEF TEXT_DELAY_SLOW EQU %101 ; 5
; wTextboxFrame:: ; cfce
; wTextboxFrame::
const_def
const FRAME_1 ; 0
const FRAME_2 ; 1
@ -47,126 +51,130 @@ TEXT_DELAY_SLOW EQU %101 ; 5
const FRAME_6 ; 5
const FRAME_7 ; 6
const FRAME_8 ; 7
NUM_FRAMES EQU const_value
DEF NUM_FRAMES EQU const_value
; wTextboxFlags:: ; cfcf
; wTextboxFlags::
const_def
const FAST_TEXT_DELAY_F ; 0
const NO_TEXT_DELAY_F ; 1
; wGBPrinterBrightness:: ; cfd0
GBPRINTER_LIGHTEST EQU $00
GBPRINTER_LIGHTER EQU $20
GBPRINTER_NORMAL EQU $40
GBPRINTER_DARKER EQU $60
GBPRINTER_DARKEST EQU $7f
; wGBPrinterBrightness::
DEF GBPRINTER_LIGHTEST EQU $00
DEF GBPRINTER_LIGHTER EQU $20
DEF GBPRINTER_NORMAL EQU $40
DEF GBPRINTER_DARKER EQU $60
DEF GBPRINTER_DARKEST EQU $7f
; wOptions2:: ; cfd1
; wOptions2::
const_def
const MENU_ACCOUNT ; 0
; wWalkingDirection:: ; d043
; wWalkingDirection::
const_def -1
const STANDING ; -1
const DOWN ; 0
const UP ; 1
const LEFT ; 2
const RIGHT ; 3
NUM_DIRECTIONS EQU const_value
DEF NUM_DIRECTIONS EQU const_value
DOWN_MASK EQU 1 << DOWN
UP_MASK EQU 1 << UP
LEFT_MASK EQU 1 << LEFT
RIGHT_MASK EQU 1 << RIGHT
DEF DOWN_MASK EQU 1 << DOWN
DEF UP_MASK EQU 1 << UP
DEF LEFT_MASK EQU 1 << LEFT
DEF RIGHT_MASK EQU 1 << RIGHT
; wFacingDirection:: ; d044
FACE_CURRENT EQU 0
FACE_DOWN EQU 8
FACE_UP EQU 4
FACE_LEFT EQU 2
FACE_RIGHT EQU 1
; wFacingDirection::
const_def NUM_DIRECTIONS - 1, -1
shift_const FACE_DOWN ; 8
shift_const FACE_UP ; 4
shift_const FACE_LEFT ; 2
shift_const FACE_RIGHT ; 1
DEF FACE_CURRENT EQU 0
; wPokemonWithdrawDepositParameter:: ; d10b
PC_WITHDRAW EQU 0
PC_DEPOSIT EQU 1
REMOVE_PARTY EQU 0
REMOVE_BOX EQU 1
DAY_CARE_WITHDRAW EQU 2
DAY_CARE_DEPOSIT EQU 3
; wPokemonWithdrawDepositParameter::
DEF PC_WITHDRAW EQU 0
DEF PC_DEPOSIT EQU 1
DEF REMOVE_PARTY EQU 0
DEF REMOVE_BOX EQU 1
DEF DAY_CARE_WITHDRAW EQU 2
DEF DAY_CARE_DEPOSIT EQU 3
; wPlayerStepFlags:: ; d150
; wPlayerStepFlags::
const_def 4
const PLAYERSTEP_MIDAIR_F ; 4
const PLAYERSTEP_CONTINUE_F ; 5
const PLAYERSTEP_STOP_F ; 6
const PLAYERSTEP_START_F ; 7
; wInitListType:: ; d263
INIT_ENEMYOT_LIST EQU 1
INIT_BAG_ITEM_LIST EQU 2
INIT_OTHER_ITEM_LIST EQU 3
INIT_PLAYEROT_LIST EQU 4
INIT_MON_LIST EQU 5
; wInitListType::
DEF INIT_ENEMYOT_LIST EQU 1
DEF INIT_BAG_ITEM_LIST EQU 2
DEF INIT_OTHER_ITEM_LIST EQU 3
DEF INIT_PLAYEROT_LIST EQU 4
DEF INIT_MON_LIST EQU 5
; wTimeOfDay:: ; d269
; wTimeOfDay::
const_def
const MORN_F ; 0
const DAY_F ; 1
const NITE_F ; 2
const DARKNESS_F ; 3
NUM_DAYTIMES EQU const_value
DEF NUM_DAYTIMES EQU const_value
MORN EQU 1 << MORN_F
DAY EQU 1 << DAY_F
NITE EQU 1 << NITE_F
DARKNESS EQU 1 << DARKNESS_F
DEF MORN EQU 1 << MORN_F
DEF DAY EQU 1 << DAY_F
DEF NITE EQU 1 << NITE_F
DEF DARKNESS EQU 1 << DARKNESS_F
ANYTIME EQU MORN | DAY | NITE
DEF ANYTIME EQU MORN | DAY | NITE
; wBattleAnimFlags:: ; d40f
; wTimeOfDayPalset::
DEF DARKNESS_PALSET EQU (DARKNESS_F << 6) | (DARKNESS_F << 4) | (DARKNESS_F << 2) | DARKNESS_F
; wBattleAnimFlags::
const_def
const BATTLEANIM_STOP_F ; 0
const BATTLEANIM_IN_SUBROUTINE_F ; 1
const BATTLEANIM_IN_LOOP_F ; 2
const BATTLEANIM_KEEPSPRITES_F ; 3
; wPlayerSpriteSetupFlags:: ; d45b
PLAYERSPRITESETUP_FACING_MASK EQU %11
PLAYERSPRITESETUP_FEMALE_TO_MALE_F EQU 2
PLAYERSPRITESETUP_CUSTOM_FACING_F EQU 5
PLAYERSPRITESETUP_SKIP_RELOAD_GFX_F EQU 6
PLAYERSPRITESETUP_RESET_ACTION_F EQU 7
; wPlayerSpriteSetupFlags::
DEF PLAYERSPRITESETUP_FACING_MASK EQU %11
DEF PLAYERSPRITESETUP_FEMALE_TO_MALE_F EQU 2
DEF PLAYERSPRITESETUP_CUSTOM_FACING_F EQU 5
DEF PLAYERSPRITESETUP_SKIP_RELOAD_GFX_F EQU 6
DEF PLAYERSPRITESETUP_RESET_ACTION_F EQU 7
; wPlayerGender:: ; d472
PLAYERGENDER_FEMALE_F EQU 0
; wPlayerGender::
DEF PLAYERGENDER_FEMALE_F EQU 0
; wMapStatus:: ; d432
; wMapStatus::
const_def
const MAPSTATUS_START ; 0
const MAPSTATUS_ENTER ; 1
const MAPSTATUS_HANDLE ; 2
const MAPSTATUS_DONE ; 3
; wMapEventStatus:: ; d433
; wMapEventStatus::
const_def
const MAPEVENTS_ON ; 0
const MAPEVENTS_OFF ; 1
; wScriptFlags:: ; d434
SCRIPT_RUNNING EQU 2
; wScriptFlags::
DEF SCRIPT_RUNNING EQU 2
; wScriptMode:: ; d437
; wScriptMode::
const_def
const SCRIPT_OFF
const SCRIPT_READ
const SCRIPT_WAIT_MOVEMENT
const SCRIPT_WAIT
; wSpawnAfterChampion:: ; d4b5
SPAWN_LANCE EQU 1
SPAWN_RED EQU 2
; wSpawnAfterChampion::
DEF SPAWN_LANCE EQU 1
DEF SPAWN_RED EQU 2
; wCurDay:: ; d4cb
; wCurDay::
const_def
const SUNDAY ; 0
const MONDAY ; 1
@ -176,11 +184,7 @@ SPAWN_RED EQU 2
const FRIDAY ; 5
const SATURDAY ; 6
; wMapObjects:: ; d71e
PLAYER_OBJECT EQU 0
NUM_OBJECTS EQU 16
; wStatusFlags:: ; d84c
; wStatusFlags::
const_def
const STATUSFLAGS_POKEDEX_F ; 0
const STATUSFLAGS_UNOWN_DEX_F ; 1
@ -191,7 +195,7 @@ NUM_OBJECTS EQU 16
const STATUSFLAGS_HALL_OF_FAME_F ; 6
const STATUSFLAGS_MAIN_MENU_MOBILE_CHOICES_F ; 7
; wStatusFlags2:: ; d84d
; wStatusFlags2::
const_def
const STATUSFLAGS2_ROCKETS_IN_RADIO_TOWER_F ; 0
const STATUSFLAGS2_SAFARI_GAME_F ; 1
@ -202,15 +206,15 @@ NUM_OBJECTS EQU 16
const STATUSFLAGS2_REACHED_GOLDENROD_F ; 6
const STATUSFLAGS2_ROCKETS_IN_MAHOGANY_F ; 7
; wMomSavingMoney:: ; d854
MOM_SAVING_SOME_MONEY_F EQU 0
MOM_SAVING_HALF_MONEY_F EQU 1
MOM_SAVING_ALL_MONEY_F EQU 2
MOM_ACTIVE_F EQU 7
; wMomSavingMoney::
DEF MOM_SAVING_SOME_MONEY_F EQU 0
DEF MOM_SAVING_HALF_MONEY_F EQU 1
DEF MOM_SAVING_ALL_MONEY_F EQU 2
DEF MOM_ACTIVE_F EQU 7
MOM_SAVING_MONEY_MASK EQU (1 << MOM_SAVING_SOME_MONEY_F) | (1 << MOM_SAVING_HALF_MONEY_F) | (1 << MOM_SAVING_ALL_MONEY_F)
DEF MOM_SAVING_MONEY_MASK EQU (1 << MOM_SAVING_SOME_MONEY_F) | (1 << MOM_SAVING_HALF_MONEY_F) | (1 << MOM_SAVING_ALL_MONEY_F)
; wJohtoBadges:: ; d857
; wJohtoBadges::
const_def
const ZEPHYRBADGE
const HIVEBADGE
@ -220,9 +224,9 @@ MOM_SAVING_MONEY_MASK EQU (1 << MOM_SAVING_SOME_MONEY_F) | (1 << MOM_SAVING_HALF
const STORMBADGE
const GLACIERBADGE
const RISINGBADGE
NUM_JOHTO_BADGES EQU const_value
DEF NUM_JOHTO_BADGES EQU const_value
; wKantoBadges:: ; d858
; wKantoBadges::
const_def
const BOULDERBADGE
const CASCADEBADGE
@ -232,39 +236,39 @@ NUM_JOHTO_BADGES EQU const_value
const MARSHBADGE
const VOLCANOBADGE
const EARTHBADGE
NUM_KANTO_BADGES EQU const_value
NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
DEF NUM_KANTO_BADGES EQU const_value
DEF NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
; wPokegearFlags:: ; d957
; wPokegearFlags::
const_def
const POKEGEAR_MAP_CARD_F ; 0
const POKEGEAR_RADIO_CARD_F ; 1
const POKEGEAR_PHONE_CARD_F ; 2
const POKEGEAR_EXPN_CARD_F ; 3
const_skip 3
const POKEGEAR_OBTAINED_F ; 7
POKEGEAR_OBTAINED_F EQU 7
; wWhichRegisteredItem::
DEF REGISTERED_POCKET EQU %11000000
DEF REGISTERED_NUMBER EQU %00111111
; wWhichRegisteredItem:: ; d95b
REGISTERED_POCKET EQU %11000000
REGISTERED_NUMBER EQU %00111111
; wPlayerState::
DEF PLAYER_NORMAL EQU 0
DEF PLAYER_BIKE EQU 1
DEF PLAYER_SKATE EQU 2
DEF PLAYER_SURF EQU 4
DEF PLAYER_SURF_PIKA EQU 8
; wPlayerState:: ; d95d
PLAYER_NORMAL EQU 0
PLAYER_BIKE EQU 1
PLAYER_SKATE EQU 2
PLAYER_SURF EQU 4
PLAYER_SURF_PIKA EQU 8
; wCelebiEvent::
DEF CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2
; wCelebiEvent:: ; dbf3
CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2
; wBikeFlags:: ; dbf5
; wBikeFlags::
const_def
const BIKEFLAGS_STRENGTH_ACTIVE_F ; 0
const BIKEFLAGS_ALWAYS_ON_BIKE_F ; 1
const BIKEFLAGS_DOWNHILL_F ; 2
; wDailyFlags1:: ; dc1e
; wDailyFlags1::
const_def
const DAILYFLAGS1_KURT_MAKING_BALLS_F ; 0
const DAILYFLAGS1_BUG_CONTEST_F ; 1
@ -275,7 +279,7 @@ CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2
const DAILYFLAGS1_GOLDENROD_UNDERGROUND_BARGAIN_F ; 6
const DAILYFLAGS1_TRAINER_HOUSE_F ; 7
; wDailyFlags2:: ; dc1f
; wDailyFlags2::
const_def
const DAILYFLAGS2_MT_MOON_SQUARE_CLEFAIRY_F ; 0
const DAILYFLAGS2_UNION_CAVE_LAPRAS_F ; 1
@ -286,7 +290,7 @@ CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2
const DAILYFLAGS2_MOVE_TUTOR_F ; 6
const DAILYFLAGS2_BUENAS_PASSWORD_F ; 7
; wSwarmFlags:: ; dc20
; wSwarmFlags::
const_def
const SWARMFLAGS_BUENAS_PASSWORD_F ; 0
const SWARMFLAGS_GOLDENROD_DEPT_STORE_SALE_F ; 1
@ -294,15 +298,15 @@ CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2
const SWARMFLAGS_YANMA_SWARM_F ; 3
const SWARMFLAGS_MOBILE_4_F ; 4
; wLuckyNumberShowFlag:: ; dc9d
LUCKYNUMBERSHOW_GAME_OVER_F EQU 0
; wLuckyNumberShowFlag::
DEF LUCKYNUMBERSHOW_GAME_OVER_F EQU 0
; wDayCareMan:: ; def5
DAYCAREMAN_HAS_MON_F EQU 0
DAYCAREMAN_MONS_COMPATIBLE_F EQU 5
DAYCAREMAN_HAS_EGG_F EQU 6
DAYCAREMAN_ACTIVE_F EQU 7
; wDayCareMan::
DEF DAYCAREMAN_HAS_MON_F EQU 0
DEF DAYCAREMAN_MONS_COMPATIBLE_F EQU 5
DEF DAYCAREMAN_HAS_EGG_F EQU 6
DEF DAYCAREMAN_ACTIVE_F EQU 7
; wDayCareLady:: ; df2c
DAYCARELADY_HAS_MON_F EQU 0
DAYCARELADY_ACTIVE_F EQU 7
; wDayCareLady::
DEF DAYCARELADY_HAS_MON_F EQU 0
DEF DAYCARELADY_ACTIVE_F EQU 7

View File

@ -1,4 +1,4 @@
INCLUDE "pokecrystal/macros/enum.asm"
INCLUDE "pokecrystal/macros/const.asm"
INCLUDE "pokecrystal/macros/data.asm"
INCLUDE "pokecrystal/macros/gfx.asm"

View File

@ -1,21 +1,23 @@
hlcoord EQUS "coord hl,"
bccoord EQUS "coord bc,"
decoord EQUS "coord de,"
; Coordinate macros
coord: MACRO
DEF hlcoord EQUS "coord hl,"
DEF bccoord EQUS "coord bc,"
DEF decoord EQUS "coord de,"
MACRO coord
; register, x, y[, origin]
if _NARG < 4
ld \1, (\3) * SCREEN_WIDTH + (\2) + wTileMap
ld \1, (\3) * SCREEN_WIDTH + (\2) + wTilemap
else
ld \1, (\3) * SCREEN_WIDTH + (\2) + \4
endc
ENDM
hlbgcoord EQUS "bgcoord hl,"
bcbgcoord EQUS "bgcoord bc,"
debgcoord EQUS "bgcoord de,"
DEF hlbgcoord EQUS "bgcoord hl,"
DEF bcbgcoord EQUS "bgcoord bc,"
DEF debgcoord EQUS "bgcoord de,"
bgcoord: MACRO
MACRO bgcoord
; register, x, y[, origin]
if _NARG < 4
ld \1, (\3) * BG_MAP_WIDTH + (\2) + vBGMap0
@ -24,29 +26,34 @@ bgcoord: MACRO
endc
ENDM
dwcoord: MACRO
MACRO dwcoord
; x, y
rept _NARG / 2
dw (\2) * SCREEN_WIDTH + (\1) + wTileMap
shift
shift
endr
rept _NARG / 2
dw (\2) * SCREEN_WIDTH + (\1) + wTilemap
shift 2
endr
ENDM
ldcoord_a: MACRO
MACRO ldcoord_a
; x, y[, origin]
if _NARG < 3
ld [(\2) * SCREEN_WIDTH + (\1) + wTileMap], a
ld [(\2) * SCREEN_WIDTH + (\1) + wTilemap], a
else
ld [(\2) * SCREEN_WIDTH + (\1) + \3], a
endc
ENDM
lda_coord: MACRO
MACRO lda_coord
; x, y[, origin]
if _NARG < 3
ld a, [(\2) * SCREEN_WIDTH + (\1) + wTileMap]
ld a, [(\2) * SCREEN_WIDTH + (\1) + wTilemap]
else
ld a, [(\2) * SCREEN_WIDTH + (\1) + \3]
endc
ENDM
MACRO menu_coords
; x1, y1, x2, y2
db \2, \1 ; start coords
db \4, \3 ; end coords
ENDM

View File

@ -1,124 +1,101 @@
; Value macros
percent EQUS "* $ff / 100"
; Many arbitrary percentages are simple base-10 or base-16 values:
; - 10 = 4 percent
; - 15 = 6 percent
; - $10 = 6 percent + 1 = 7 percent - 1
; - 20 = 8 percent
; - 25 = 10 percent
; - 30 = 12 percent
; - 40 = 16 percent
; - 50 = 20 percent - 1
; - 60 = 24 percent - 1
; - 70 = 28 percent - 1
; - 80 = 31 percent + 1 = 32 percent - 1
; - 85 = 33 percent + 1 = 34 percent - 1
; - 100 = 39 percent + 1 = 40 percent - 2
; - 120 = 47 percent + 1
; - 123 = 49 percent - 1
; - 160 = 63 percent
; - 180 = 71 percent - 1 = 70 percent + 2
; - 200 = 79 percent - 1
; - 230 = 90 percent + 1
DEF percent EQUS "* $ff / 100"
; e.g. 1 out_of 2 == 50 percent + 1 == $80
DEF out_of EQUS "* $100 /"
MACRO assert_power_of_2
assert (\1) & ((\1) - 1) == 0, "\1 must be a power of 2"
ENDM
; Constant data (db, dw, dl) macros
dwb: MACRO
MACRO dwb
dw \1
db \2
ENDM
dbw: MACRO
MACRO dbw
db \1
dw \2
ENDM
dbbw: MACRO
db \1, \2
dw \3
ENDM
dbww: MACRO
db \1
dw \2, \3
ENDM
dbwww: MACRO
db \1
dw \2, \3, \4
ENDM
dn: MACRO ; nybbles
rept _NARG / 2
MACRO dn ; nybbles
rept _NARG / 2
db ((\1) << 4) | (\2)
shift
shift
endr
shift 2
endr
ENDM
dc: MACRO ; "crumbs"
rept _NARG / 4
MACRO dc ; "crumbs"
rept _NARG / 4
db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4)
shift
shift
shift
shift
endr
shift 4
endr
ENDM
dx: MACRO
x = 8 * ((\1) - 1)
rept \1
db ((\2) >> x) & $ff
x = x + -8
endr
MACRO dt ; three-byte (big-endian)
db LOW((\1) >> 16), HIGH(\1), LOW(\1)
ENDM
dt: MACRO ; three-byte (big-endian)
dx 3, \1
MACRO dd ; four-byte (big-endian)
db HIGH((\1) >> 16), LOW((\1) >> 16), HIGH(\1), LOW(\1)
ENDM
dd: MACRO ; four-byte (big-endian)
dx 4, \1
MACRO bigdw ; big-endian word
db HIGH(\1), LOW(\1)
ENDM
bigdw: MACRO ; big-endian word
dx 2, \1 ; db HIGH(\1), LOW(\1)
ENDM
dba: MACRO ; dbw bank, address
rept _NARG
MACRO dba ; dbw bank, address
rept _NARG
dbw BANK(\1), \1
shift
endr
endr
ENDM
dab: MACRO ; dwb address, bank
rept _NARG
MACRO dab ; dwb address, bank
rept _NARG
dwb \1, BANK(\1)
shift
endr
endr
ENDM
dba_pic: MACRO ; dbw bank, address
MACRO dba_pic ; dbw bank, address
db BANK(\1) - PICS_FIX
dw \1
ENDM
dbpixel: MACRO
if _NARG >= 4
; x tile, x pxl, y tile, y pxl
db \1 * 8 + \3, \2 * 8 + \4
else
; x, y
db \1 * 8, \2 * 8
endc
ENDM
dsprite: MACRO
; y tile, y pxl, x tile, x pxl, vtile offset, attributes
db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, \6
ENDM
menu_coords: MACRO
; x1, y1, x2, y2
db \2, \1 ; start coords
db \4, \3 ; end coords
ENDM
bcd: MACRO
rept _NARG
MACRO bcd
rept _NARG
dn ((\1) % 100) / 10, (\1) % 10
shift
endr
endr
ENDM
sine_table: MACRO
; \1 samples of sin(x) from x=0 to x<32768 (pi radians)
x = 0
rept \1
dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up
x = x + DIV(32768, \1) ; a circle has 65536 "degrees"
endr
MACRO sine_table
; \1 samples of sin(x) from x=0 to x<0.5 turns (pi radians)
for x, \1
dw sin(x * 0.5 / (\1))
endr
ENDM

View File

@ -1,24 +1,60 @@
RGB: MACRO
rept _NARG / 3
dw palred (\1) + palgreen (\2) + palblue (\3)
; Graphics macros
MACRO assert_valid_rgb
rept _NARG
assert 0 <= (\1) && (\1) <= 31, "RGB channel must be 0-31"
shift
shift
shift
endr
endr
ENDM
palred EQUS "(1 << 0) *"
palgreen EQUS "(1 << 5) *"
palblue EQUS "(1 << 10) *"
MACRO RGB
rept _NARG / 3
assert_valid_rgb \1, \2, \3
dw palred (\1) + palgreen (\2) + palblue (\3)
shift 3
endr
ENDM
palettes EQUS "* PALETTE_SIZE"
palette EQUS "+ PALETTE_SIZE *"
color EQUS "+ PAL_COLOR_SIZE *"
DEF palred EQUS "(1 << 0) *"
DEF palgreen EQUS "(1 << 5) *"
DEF palblue EQUS "(1 << 10) *"
tiles EQUS "* LEN_2BPP_TILE"
tile EQUS "+ LEN_2BPP_TILE *"
DEF palettes EQUS "* PALETTE_SIZE"
DEF palette EQUS "+ PALETTE_SIZE *"
DEF color EQUS "+ PAL_COLOR_SIZE *"
DEF tiles EQUS "* LEN_2BPP_TILE"
DEF tile EQUS "+ LEN_2BPP_TILE *"
; extracts the middle two colors from a 2bpp binary palette
; example usage:
; INCBIN "foo.gbcpal", middle_colors
middle_colors EQUS "PAL_COLOR_SIZE, PAL_COLOR_SIZE * 2"
DEF middle_colors EQUS "PAL_COLOR_SIZE, PAL_COLOR_SIZE * 2"
MACRO dbpixel
if _NARG >= 4
; x tile, y tile, x pixel, y pixel
db \1 * TILE_WIDTH + \3, \2 * TILE_WIDTH + \4
else
; x tile, y tile
db \1 * TILE_WIDTH, \2 * TILE_WIDTH
endc
ENDM
MACRO ldpixel
if _NARG >= 5
; register, x tile, y tile, x pixel, y pixel
lb \1, \2 * TILE_WIDTH + \4, \3 * TILE_WIDTH + \5
else
; register, x tile, y tile
lb \1, \2 * TILE_WIDTH, \3 * TILE_WIDTH
endc
ENDM
DEF depixel EQUS "ldpixel de,"
DEF bcpixel EQUS "ldpixel bc,"
MACRO dbsprite
; x tile, y tile, x pixel, y pixel, vtile offset, attributes
db (\2 * TILE_WIDTH) % $100 + \4, (\1 * TILE_WIDTH) % $100 + \3, \5, \6
ENDM

View File

@ -1,145 +1,147 @@
text EQUS "db TX_START," ; Start writing text.
next EQUS "db \"<NEXT>\"," ; Move a line down.
line EQUS "db \"<LINE>\"," ; Start writing at the bottom line.
page EQUS "db \"@\"," ; Start a new Pokédex page.
para EQUS "db \"<PARA>\"," ; Start a new paragraph.
cont EQUS "db \"<CONT>\"," ; Scroll to the next line.
done EQUS "db \"<DONE>\"" ; End a text box.
prompt EQUS "db \"<PROMPT>\"" ; Prompt the player to end a text box (initiating some other event).
DEF text EQUS "db TX_START," ; Start writing text.
DEF next EQUS "db \"<NEXT>\"," ; Move a line down.
DEF line EQUS "db \"<LINE>\"," ; Start writing at the bottom line.
DEF page EQUS "db \"@\"," ; Start a new Pokédex page.
DEF para EQUS "db \"<PARA>\"," ; Start a new paragraph.
DEF cont EQUS "db \"<CONT>\"," ; Scroll to the next line.
DEF done EQUS "db \"<DONE>\"" ; End a text box.
DEF prompt EQUS "db \"<PROMPT>\"" ; Prompt the player to end a text box (initiating some other event).
; TextCommands indexes (see home/text.asm)
enum_start
const_def
enum TX_START ; $00
text_start: MACRO
const TX_START ; $00
MACRO text_start
db TX_START
ENDM
enum TX_RAM ; $01
text_ram: MACRO
const TX_RAM ; $01
MACRO text_ram
db TX_RAM
dw \1
ENDM
enum TX_BCD ; $02
text_bcd: MACRO
const TX_BCD ; $02
MACRO text_bcd
db TX_BCD
dw \1
db \2
ENDM
enum TX_MOVE ; $03
text_move: MACRO
const TX_MOVE ; $03
MACRO text_move
db TX_MOVE
dw \1
ENDM
enum TX_BOX ; $04
text_box: MACRO
const TX_BOX ; $04
MACRO text_box
db TX_BOX
dw \1
db \2, \3
ENDM
enum TX_LOW ; $05
text_low: MACRO
const TX_LOW ; $05
MACRO text_low
db TX_LOW
ENDM
enum TX_WAIT_BUTTON ; $06
text_waitbutton: MACRO
db TX_WAIT_BUTTON
const TX_PROMPT_BUTTON ; $06
MACRO text_promptbutton
db TX_PROMPT_BUTTON
ENDM
enum TX_SCROLL ; $07
text_scroll: MACRO
const TX_SCROLL ; $07
MACRO text_scroll
db TX_SCROLL
ENDM
enum TX_START_ASM ; $08
text_asm: MACRO
const TX_START_ASM ; $08
MACRO text_asm
db TX_START_ASM
ENDM
enum TX_NUM ; $09
text_decimal: MACRO
db TX_NUM
const TX_DECIMAL ; $09
MACRO text_decimal
db TX_DECIMAL
dw \1 ; address
dn \2, \3 ; bytes, digits
ENDM
enum TX_PAUSE ; $0a
text_pause: MACRO
const TX_PAUSE ; $0a
MACRO text_pause
db TX_PAUSE
ENDM
enum TX_SOUND_DEX_FANFARE_50_79 ; $0b
sound_dex_fanfare_50_79: MACRO
const TX_SOUND_DEX_FANFARE_50_79 ; $0b
MACRO sound_dex_fanfare_50_79
db TX_SOUND_DEX_FANFARE_50_79
ENDM
enum TX_DOTS ; $0c
text_dots: MACRO
const TX_DOTS ; $0c
MACRO text_dots
db TX_DOTS
db \1
ENDM
enum TX_LINK_WAIT_BUTTON ; $0d
text_linkwaitbutton: MACRO
db TX_LINK_WAIT_BUTTON
const TX_WAIT_BUTTON ; $0d
MACRO text_waitbutton
db TX_WAIT_BUTTON
ENDM
enum TX_SOUND_DEX_FANFARE_20_49 ; $0e
sound_dex_fanfare_20_49: MACRO
const TX_SOUND_DEX_FANFARE_20_49 ; $0e
MACRO sound_dex_fanfare_20_49
db TX_SOUND_DEX_FANFARE_20_49
ENDM
enum TX_SOUND_ITEM ; $0f
sound_item: MACRO
const TX_SOUND_ITEM ; $0f
MACRO sound_item
db TX_SOUND_ITEM
ENDM
enum TX_SOUND_CAUGHT_MON ; $10
sound_caught_mon: MACRO
const TX_SOUND_CAUGHT_MON ; $10
MACRO sound_caught_mon
db TX_SOUND_CAUGHT_MON
ENDM
enum TX_SOUND_DEX_FANFARE_80_109 ; $11
sound_dex_fanfare_80_109: MACRO
const TX_SOUND_DEX_FANFARE_80_109 ; $11
MACRO sound_dex_fanfare_80_109
db TX_SOUND_DEX_FANFARE_80_109
ENDM
enum TX_SOUND_FANFARE ; $12
sound_fanfare: MACRO
const TX_SOUND_FANFARE ; $12
MACRO sound_fanfare
db TX_SOUND_FANFARE
ENDM
enum TX_SOUND_SLOT_MACHINE_START ; $13
sound_slot_machine_start: MACRO
const TX_SOUND_SLOT_MACHINE_START ; $13
MACRO sound_slot_machine_start
db TX_SOUND_SLOT_MACHINE_START
ENDM
enum TX_STRINGBUFFER ; $14
text_buffer: MACRO
const TX_STRINGBUFFER ; $14
MACRO text_buffer
db TX_STRINGBUFFER
db \1
ENDM
enum TX_DAY ; $15
text_today: MACRO
const TX_DAY ; $15
MACRO text_today
db TX_DAY
ENDM
enum TX_FAR ; $16
text_far: MACRO
const TX_FAR ; $16
MACRO text_far
db TX_FAR
dw \1
db BANK(\1)
ENDM
enum_set $50
DEF NUM_TEXT_CMDS EQU const_value
enum TX_END ; $50
text_end: MACRO
const_next $50
const TX_END ; $50
MACRO text_end
db TX_END
ENDM

11
ram/sram.asm Normal file
View File

@ -0,0 +1,11 @@
SECTION "SRAM bank 5", SRAM, BANK[5]
sMobileEventIndex:: ds 1 ; a000
ds 19
sNumBattleTowerWins:: ds 2 ; a014
ds 101
sLargestMagikarp:: ds 2 ; a07b
ds 2
sBugContestHighscore:: ds 2 ; a07f
ds 2546
sNewsId:: ds 12 ; aa73
sNewsIdBackup:: ds 12 ; aa7f

18
ram/wram.asm Normal file
View File

@ -0,0 +1,18 @@
SECTION "wram", WRAM0[$cd22] ; japan
wcd22:: ds 1 ; cd22
ds 49
wNumRankedPlayers:: ds 4 ; cd54
wOwnRank:: ds 4 ; cd58
wcd5c:: ds 1 ; cd5c
ds 5
wRankingsTable:: ds 1 ; cd62
wRankingsCategory:: ds 1 ; cd63
wRankingsType:: ds 1 ; cd64
ds 2
wQuizQuestionNo:: ds 1 ; cd67
wQuizScore:: ds 1 ; cd68
ds 1
wcd6a:: ds 1 ; cd6a
ds 3
wRankingsUpdateResult:: ds 1 ; cd6e