Merge pull request #514 from Rangi42/master

[Ready to merge] Named constants for sprite movement data bit flags + other minor fixes
This commit is contained in:
yenatch 2018-06-04 00:47:16 -04:00 committed by GitHub
commit d596a0c83b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
45 changed files with 600 additions and 504 deletions

View File

@ -1775,7 +1775,7 @@ Music_Vibrato: ; e8882
swap a swap a
srl a ; halve srl a ; halve
ld e, a ld e, a
adc a, 0; round up adc 0 ; round up
swap a swap a
or e or e
ld [hl], a ld [hl], a

View File

@ -5,8 +5,8 @@ ENDM
map_const: MACRO map_const: MACRO
;\1: map id ;\1: map id
;\2: height: in blocks ;\2: width: in blocks
;\3: width: in blocks ;\3: height: in blocks
GROUP_\1 EQU const_value GROUP_\1 EQU const_value
enum MAP_\1 enum MAP_\1
\1_WIDTH EQU \2 \1_WIDTH EQU \2

View File

@ -44,16 +44,54 @@ OW_LEFT EQU LEFT << 2
OW_RIGHT EQU RIGHT << 2 OW_RIGHT EQU RIGHT << 2
; object_struct OBJECT_FLAGS1 bit flags ; object_struct OBJECT_FLAGS1 bit flags
INVISIBLE EQU 0 const_def
FIXED_FACING EQU 2 const INVISIBLE_F ; 0
SLIDING EQU 3 const WONT_DELETE_F ; 1
EMOTE_OBJECT EQU 7 const FIXED_FACING_F ; 2
const SLIDING_F ; 3
const NOCLIP_TILES_F ; 4
const MOVE_ANYWHERE_F ; 5
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
; object_struct OBJECT_FLAGS2 bit flags ; object_struct OBJECT_FLAGS2 bit flags
LOW_PRIORITY EQU 0 const_def
HIGH_PRIORITY EQU 1 const LOW_PRIORITY_F ; 0
OVERHEAD EQU 3 const HIGH_PRIORITY_F ; 1
const OBJ_FLAGS2_2 ; 2
const OVERHEAD_F ; 3
const USE_OBP1_F ; 4
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
; object_struct OBJECT_PALETTE bit flags
const_def 5
const SWIMMING_F ; 5
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
; facing attribute bit flags
RELATIVE_ATTRIBUTES_F EQU 1
ABSOLUTE_TILE_ID_F EQU 2
RELATIVE_ATTRIBUTES EQU 1 << RELATIVE_ATTRIBUTES_F
ABSOLUTE_TILE_ID EQU 1 << ABSOLUTE_TILE_ID_F
; map_object struct members (see macros/wram.asm) ; map_object struct members (see macros/wram.asm)
const_def const_def
@ -75,8 +113,18 @@ OVERHEAD EQU 3
const MAPOBJECT_F ; unused const MAPOBJECT_F ; unused
OBJECT_LENGTH EQU const_value OBJECT_LENGTH EQU const_value
MAPOBJECT_SCREEN_HEIGHT EQU 11 ; SpriteMovementData struct members (see data/sprites/map_objects.asm)
MAPOBJECT_SCREEN_WIDTH EQU 12 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
MAPOBJECT_SCREEN_WIDTH EQU (SCREEN_WIDTH / 2) + 2
MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2
; SpriteMovementData indexes (see data/sprites/map_objects.asm) ; SpriteMovementData indexes (see data/sprites/map_objects.asm)
@ -119,7 +167,6 @@ MAPOBJECT_SCREEN_WIDTH EQU 12
const SPRITEMOVEDATA_GRASS ; 23 const SPRITEMOVEDATA_GRASS ; 23
const SPRITEMOVEDATA_SWIM_WANDER ; 24 const SPRITEMOVEDATA_SWIM_WANDER ; 24
NUM_SPRITEMOVEDATA EQU const_value NUM_SPRITEMOVEDATA EQU const_value
SPRITEMOVEDATA_FIELDS EQU 6
; MapObjectMovementPattern.Pointers indexes (see engine/overworld/map_objects.asm) ; MapObjectMovementPattern.Pointers indexes (see engine/overworld/map_objects.asm)
const_def const_def

View File

@ -15,9 +15,9 @@
const SCGB_GS_TITLE_SCREEN const SCGB_GS_TITLE_SCREEN
const SCGB_0D const SCGB_0D
const SCGB_MOVE_LIST const SCGB_MOVE_LIST
const SCGB_0F const SCGB_BETA_PIKACHU_MINIGAME
const SCGB_POKEDEX_SEARCH_OPTION const SCGB_POKEDEX_SEARCH_OPTION
const SCGB_11 const SCGB_BETA_POKER
const SCGB_POKEPIC const SCGB_POKEPIC
const SCGB_13 const SCGB_13
const SCGB_PACKPALS const SCGB_PACKPALS
@ -75,40 +75,40 @@ SCGB_RAM EQU -1
const PREDEFPAL_RB_PINKMON const PREDEFPAL_RB_PINKMON
const PREDEFPAL_RB_YELLOWMON const PREDEFPAL_RB_YELLOWMON
const PREDEFPAL_CGB_BADGE ; RB_GREYMON const PREDEFPAL_CGB_BADGE ; RB_GREYMON
const PREDEFPAL_MEWMON_NITE const PREDEFPAL_BETA_SHINY_MEWMON
const PREDEFPAL_BLUEMON_NITE const PREDEFPAL_BETA_SHINY_BLUEMON
const PREDEFPAL_REDMON_NITE const PREDEFPAL_BETA_SHINY_REDMON
const PREDEFPAL_CYANMON_NITE const PREDEFPAL_BETA_SHINY_CYANMON
const PREDEFPAL_PURPLEMON_NITE const PREDEFPAL_BETA_SHINY_PURPLEMON
const PREDEFPAL_BROWNMON_NITE const PREDEFPAL_BETA_SHINY_BROWNMON
const PREDEFPAL_GREENMON_NITE const PREDEFPAL_BETA_SHINY_GREENMON
const PREDEFPAL_PINKMON_NITE const PREDEFPAL_BETA_SHINY_PINKMON
const PREDEFPAL_YELLOWMON_NITE const PREDEFPAL_BETA_SHINY_YELLOWMON
const PREDEFPAL_PARTY_ICON ; GREYMON_NITE const PREDEFPAL_PARTY_ICON ; BETA_SHINY_GREYMON
const PREDEFPAL_HP_GREEN const PREDEFPAL_HP_GREEN
const PREDEFPAL_HP_YELLOW const PREDEFPAL_HP_YELLOW
const PREDEFPAL_HP_RED const PREDEFPAL_HP_RED
const PREDEFPAL_POKEGEAR const PREDEFPAL_POKEGEAR
const PREDEFPAL_33 const PREDEFPAL_BETA_LOGO_1
const PREDEFPAL_34 const PREDEFPAL_BETA_LOGO_2
const PREDEFPAL_GS_INTRO_GAMEFREAK_LOGO const PREDEFPAL_GS_INTRO_GAMEFREAK_LOGO
const PREDEFPAL_GS_INTRO_SHELLDER_LAPRAS const PREDEFPAL_GS_INTRO_SHELLDER_LAPRAS
const PREDEFPAL_37 const PREDEFPAL_BETA_INTRO_LAPRAS
const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG
const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB
const PREDEFPAL_GS_INTRO_STARTERS_TRANSITION const PREDEFPAL_GS_INTRO_STARTERS_TRANSITION
const PREDEFPAL_3B const PREDEFPAL_BETA_INTRO_VENUSAUR
const PREDEFPAL_PACK ; GS_INTRO_CHARIZARD const PREDEFPAL_PACK ; GS_INTRO_CHARIZARD
const PREDEFPAL_SLOT_MACHINE_0 const PREDEFPAL_SLOT_MACHINE_0
const PREDEFPAL_SLOT_MACHINE_1 const PREDEFPAL_SLOT_MACHINE_1
const PREDEFPAL_SLOT_MACHINE_2 const PREDEFPAL_SLOT_MACHINE_2
const PREDEFPAL_SLOT_MACHINE_3 const PREDEFPAL_SLOT_MACHINE_3
const PREDEFPAL_SCGB_11_0 const PREDEFPAL_BETA_POKER_0
const PREDEFPAL_SCGB_11_1 const PREDEFPAL_BETA_POKER_1
const PREDEFPAL_SCGB_11_2 const PREDEFPAL_BETA_POKER_2
const PREDEFPAL_SCGB_11_3 const PREDEFPAL_BETA_POKER_3
const PREDEFPAL_45 const PREDEFPAL_BETA_RADIO
const PREDEFPAL_46 const PREDEFPAL_BETA_POKEGEAR
const PREDEFPAL_47 const PREDEFPAL_47
const PREDEFPAL_GS_TITLE_SCREEN_0 const PREDEFPAL_GS_TITLE_SCREEN_0
const PREDEFPAL_GS_TITLE_SCREEN_1 const PREDEFPAL_GS_TITLE_SCREEN_1

View File

@ -1,6 +1,6 @@
anim_obj_gfx: MACRO anim_obj_gfx: MACRO
; # tiles, label ; # tiles, label
db \1 db \1
dba \2 dba \2
ENDM ENDM

View File

@ -10,4 +10,4 @@ TileCollisionStdScripts:
dbw COLL_TV, tv dbw COLL_TV, tv
dbw COLL_WINDOW, window dbw COLL_WINDOW, window
dbw COLL_INCENSE_BURNER, incenseburner dbw COLL_INCENSE_BURNER, incenseburner
db -1 ; end db -1 ; end

View File

@ -15,5 +15,5 @@ TimeCapsule_CatchRateItems: ; 28785
db ITEM_DC, BERRY db ITEM_DC, BERRY
db ITEM_FA, BERRY db ITEM_FA, BERRY
db -1, BERRY db -1, BERRY
db 0 ; end db 0 ; end
; 2879e ; 2879e

View File

@ -50,24 +50,24 @@ FacingWeirdTree2: ; standing down
db 4 ; # db 4 ; #
db 0, 0, 0, $00 db 0, 0, 0, $00
db 0, 8, 0, $01 db 0, 8, 0, $01
db 8, 0, 2, $02 db 8, 0, RELATIVE_ATTRIBUTES, $02
db 8, 8, 2, $03 db 8, 8, RELATIVE_ATTRIBUTES, $03
; 409c ; 409c
FacingStepDown1: ; walking down 1 FacingStepDown1: ; walking down 1
db 4 ; # db 4 ; #
db 0, 0, 0, $80 db 0, 0, 0, $80
db 0, 8, 0, $81 db 0, 8, 0, $81
db 8, 0, 2, $82 db 8, 0, RELATIVE_ATTRIBUTES, $82
db 8, 8, 2, $83 db 8, 8, RELATIVE_ATTRIBUTES, $83
; 40ad ; 40ad
FacingStepDown3: ; walking down 2 FacingStepDown3: ; walking down 2
db 4 ; # db 4 ; #
db 0, 8, X_FLIP, $80 db 0, 8, X_FLIP, $80
db 0, 0, X_FLIP, $81 db 0, 0, X_FLIP, $81
db 8, 8, 2 | X_FLIP, $82 db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $82
db 8, 0, 2 | X_FLIP, $83 db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $83
; 40be ; 40be
FacingStepUp0: FacingStepUp0:
@ -75,24 +75,24 @@ FacingStepUp2: ; standing up
db 4 ; # db 4 ; #
db 0, 0, 0, $04 db 0, 0, 0, $04
db 0, 8, 0, $05 db 0, 8, 0, $05
db 8, 0, 2, $06 db 8, 0, RELATIVE_ATTRIBUTES, $06
db 8, 8, 2, $07 db 8, 8, RELATIVE_ATTRIBUTES, $07
; 40cf ; 40cf
FacingStepUp1: ; walking up 1 FacingStepUp1: ; walking up 1
db 4 ; # db 4 ; #
db 0, 0, 0, $84 db 0, 0, 0, $84
db 0, 8, 0, $85 db 0, 8, 0, $85
db 8, 0, 2, $86 db 8, 0, RELATIVE_ATTRIBUTES, $86
db 8, 8, 2, $87 db 8, 8, RELATIVE_ATTRIBUTES, $87
; 40e0 ; 40e0
FacingStepUp3: ; walking up 2 FacingStepUp3: ; walking up 2
db 4 ; # db 4 ; #
db 0, 8, X_FLIP, $84 db 0, 8, X_FLIP, $84
db 0, 0, X_FLIP, $85 db 0, 0, X_FLIP, $85
db 8, 8, 2 | X_FLIP, $86 db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $86
db 8, 0, 2 | X_FLIP, $87 db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $87
; 40f1 ; 40f1
FacingStepLeft0: FacingStepLeft0:
@ -100,8 +100,8 @@ FacingStepLeft2: ; standing left
db 4 ; # db 4 ; #
db 0, 0, 0, $08 db 0, 0, 0, $08
db 0, 8, 0, $09 db 0, 8, 0, $09
db 8, 0, 2, $0a db 8, 0, RELATIVE_ATTRIBUTES, $0a
db 8, 8, 2, $0b db 8, 8, RELATIVE_ATTRIBUTES, $0b
; 4102 ; 4102
FacingStepRight0: FacingStepRight0:
@ -109,8 +109,8 @@ FacingStepRight2: ; standing right
db 4 ; # db 4 ; #
db 0, 8, X_FLIP, $08 db 0, 8, X_FLIP, $08
db 0, 0, X_FLIP, $09 db 0, 0, X_FLIP, $09
db 8, 8, 2 | X_FLIP, $0a db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $0a
db 8, 0, 2 | X_FLIP, $0b db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $0b
; 4113 ; 4113
FacingStepLeft1: FacingStepLeft1:
@ -118,8 +118,8 @@ FacingStepLeft3: ; walking left
db 4 ; # db 4 ; #
db 0, 0, 0, $88 db 0, 0, 0, $88
db 0, 8, 0, $89 db 0, 8, 0, $89
db 8, 0, 2, $8a db 8, 0, RELATIVE_ATTRIBUTES, $8a
db 8, 8, 2, $8b db 8, 8, RELATIVE_ATTRIBUTES, $8b
; 4124 ; 4124
FacingStepRight1: FacingStepRight1:
@ -127,58 +127,58 @@ FacingStepRight3: ; walking right
db 4 ; # db 4 ; #
db 0, 8, X_FLIP, $88 db 0, 8, X_FLIP, $88
db 0, 0, X_FLIP, $89 db 0, 0, X_FLIP, $89
db 8, 8, 2 | X_FLIP, $8a db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $8a
db 8, 0, 2 | X_FLIP, $8b db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $8b
; 4135 ; 4135
FacingFishDown: ; fishing down FacingFishDown: ; fishing down
db 5 ; # db 5 ; #
db 0, 0, 0, $00 db 0, 0, 0, $00
db 0, 8, 0, $01 db 0, 8, 0, $01
db 8, 0, 2, $02 db 8, 0, RELATIVE_ATTRIBUTES, $02
db 8, 8, 2, $03 db 8, 8, RELATIVE_ATTRIBUTES, $03
db 16, 0, 4, $fc db 16, 0, ABSOLUTE_TILE_ID, $fc
; 414a ; 414a
FacingFishUp: ; fishing up FacingFishUp: ; fishing up
db 5 ; # db 5 ; #
db 0, 0, 0, $04 db 0, 0, 0, $04
db 0, 8, 0, $05 db 0, 8, 0, $05
db 8, 0, 2, $06 db 8, 0, RELATIVE_ATTRIBUTES, $06
db 8, 8, 2, $07 db 8, 8, RELATIVE_ATTRIBUTES, $07
db -8, 0, 4, $fc db -8, 0, ABSOLUTE_TILE_ID, $fc
; 415f ; 415f
FacingFishLeft: ; fishing left FacingFishLeft: ; fishing left
db 5 ; # db 5 ; #
db 0, 0, 0, $08 db 0, 0, 0, $08
db 0, 8, 0, $09 db 0, 8, 0, $09
db 8, 0, 2, $0a db 8, 0, RELATIVE_ATTRIBUTES, $0a
db 8, 8, 2, $0b db 8, 8, RELATIVE_ATTRIBUTES, $0b
db 5, -8, 4 | X_FLIP, $fd db 5, -8, ABSOLUTE_TILE_ID | X_FLIP, $fd
; 4174 ; 4174
FacingFishRight: ; fishing right FacingFishRight: ; fishing right
db 5 ; # db 5 ; #
db 0, 8, X_FLIP, $08 db 0, 8, X_FLIP, $08
db 0, 0, X_FLIP, $09 db 0, 0, X_FLIP, $09
db 8, 8, 2 | X_FLIP, $0a db 8, 8, RELATIVE_ATTRIBUTES | X_FLIP, $0a
db 8, 0, 2 | X_FLIP, $0b db 8, 0, RELATIVE_ATTRIBUTES | X_FLIP, $0b
db 5, 16, 4, $fd db 5, 16, ABSOLUTE_TILE_ID, $fd
; 4189 ; 4189
FacingEmote: ; emote FacingEmote: ; emote
db 4 ; # db 4 ; #
db 0, 0, 4, $f8 db 0, 0, ABSOLUTE_TILE_ID, $f8
db 0, 8, 4, $f9 db 0, 8, ABSOLUTE_TILE_ID, $f9
db 8, 0, 4, $fa db 8, 0, ABSOLUTE_TILE_ID, $fa
db 8, 8, 4, $fb db 8, 8, ABSOLUTE_TILE_ID, $fb
; 419a ; 419a
FacingShadow: ; shadow FacingShadow: ; shadow
db 2 ; # db 2 ; #
db 0, 0, 4, $fc db 0, 0, ABSOLUTE_TILE_ID, $fc
db 0, 8, 4 | X_FLIP, $fc db 0, 8, ABSOLUTE_TILE_ID | X_FLIP, $fc
; 41a3 ; 41a3
FacingBigDollSymmetric: ; big snorlax or lapras doll FacingBigDollSymmetric: ; big snorlax or lapras doll
@ -237,28 +237,28 @@ FacingBigDollAsymmetric: ; big doll other than snorlax or lapras
FacingBoulderDust1: ; boulder dust 1 FacingBoulderDust1: ; boulder dust 1
db 4 ; # db 4 ; #
db 0, 0, 4, $fe db 0, 0, ABSOLUTE_TILE_ID, $fe
db 0, 8, 4, $fe db 0, 8, ABSOLUTE_TILE_ID, $fe
db 8, 0, 4, $fe db 8, 0, ABSOLUTE_TILE_ID, $fe
db 8, 8, 4, $fe db 8, 8, ABSOLUTE_TILE_ID, $fe
; 4250 ; 4250
FacingBoulderDust2: ; boulder dust 2 FacingBoulderDust2: ; boulder dust 2
db 4 ; # db 4 ; #
db 0, 0, 4, $ff db 0, 0, ABSOLUTE_TILE_ID, $ff
db 0, 8, 4, $ff db 0, 8, ABSOLUTE_TILE_ID, $ff
db 8, 0, 4, $ff db 8, 0, ABSOLUTE_TILE_ID, $ff
db 8, 8, 4, $ff db 8, 8, ABSOLUTE_TILE_ID, $ff
; 4261 ; 4261
FacingGrass1: ; 4261 FacingGrass1: ; 4261
db 2 ; # db 2 ; #
db 8, 0, 4, $fe db 8, 0, ABSOLUTE_TILE_ID, $fe
db 8, 8, 4 | X_FLIP, $fe db 8, 8, ABSOLUTE_TILE_ID | X_FLIP, $fe
; 426a ; 426a
FacingGrass2: ; 426a FacingGrass2: ; 426a
db 2 ; # db 2 ; #
db 9, -1, 4, $fe db 9, -1, ABSOLUTE_TILE_ID, $fe
db 9, 9, 4 | X_FLIP, $fe db 9, 9, ABSOLUTE_TILE_ID | X_FLIP, $fe
; 4273 ; 4273

View File

@ -5,304 +5,304 @@ SpriteMovementData:: ; 4273
db SPRITEMOVEFN_00 ; movement function db SPRITEMOVEFN_00 ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000010 ; flags1 db WONT_DELETE ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_STILL ; SPRITEMOVEDATA_STILL
db SPRITEMOVEFN_STANDING ; movement function db SPRITEMOVEFN_STANDING ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00001100 ; flags1 db FIXED_FACING | SLIDING ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_WANDER ; SPRITEMOVEDATA_WANDER
db SPRITEMOVEFN_RANDOM_WALK_XY ; movement function db SPRITEMOVEFN_RANDOM_WALK_XY ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_SPINRANDOM_SLOW ; SPRITEMOVEDATA_SPINRANDOM_SLOW
db SPRITEMOVEFN_SLOW_RANDOM_SPIN ; movement function db SPRITEMOVEFN_SLOW_RANDOM_SPIN ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_WALK_UP_DOWN ; SPRITEMOVEDATA_WALK_UP_DOWN
db SPRITEMOVEFN_RANDOM_WALK_Y ; movement function db SPRITEMOVEFN_RANDOM_WALK_Y ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_WALK_LEFT_RIGHT ; SPRITEMOVEDATA_WALK_LEFT_RIGHT
db SPRITEMOVEFN_RANDOM_WALK_X ; movement function db SPRITEMOVEFN_RANDOM_WALK_X ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_STANDING_DOWN ; SPRITEMOVEDATA_STANDING_DOWN
db SPRITEMOVEFN_STANDING ; movement function db SPRITEMOVEFN_STANDING ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_STANDING_UP ; SPRITEMOVEDATA_STANDING_UP
db SPRITEMOVEFN_STANDING ; movement function db SPRITEMOVEFN_STANDING ; movement function
db UP ; facing db UP ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_STANDING_LEFT ; SPRITEMOVEDATA_STANDING_LEFT
db SPRITEMOVEFN_STANDING ; movement function db SPRITEMOVEFN_STANDING ; movement function
db LEFT ; facing db LEFT ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_STANDING_RIGHT ; SPRITEMOVEDATA_STANDING_RIGHT
db SPRITEMOVEFN_STANDING ; movement function db SPRITEMOVEFN_STANDING ; movement function
db RIGHT ; facing db RIGHT ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_SPINRANDOM_FAST ; SPRITEMOVEDATA_SPINRANDOM_FAST
db SPRITEMOVEFN_FAST_RANDOM_SPIN ; movement function db SPRITEMOVEFN_FAST_RANDOM_SPIN ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_PLAYER ; SPRITEMOVEDATA_PLAYER
db SPRITEMOVEFN_OBEY_DPAD ; movement function db SPRITEMOVEFN_OBEY_DPAD ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000010 ; flags1 db WONT_DELETE ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_0C ; SPRITEMOVEDATA_0C
db SPRITEMOVEFN_08 ; movement function db SPRITEMOVEFN_08 ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_0D ; SPRITEMOVEDATA_0D
db SPRITEMOVEFN_09 ; movement function db SPRITEMOVEFN_09 ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_0E ; SPRITEMOVEDATA_0E
db SPRITEMOVEFN_0A ; movement function db SPRITEMOVEFN_0A ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_0F ; SPRITEMOVEDATA_0F
db SPRITEMOVEFN_0B ; movement function db SPRITEMOVEFN_0B ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_10 ; SPRITEMOVEDATA_10
db SPRITEMOVEFN_0C ; movement function db SPRITEMOVEFN_0C ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_11 ; SPRITEMOVEDATA_11
db SPRITEMOVEFN_0D ; movement function db SPRITEMOVEFN_0D ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_12 ; SPRITEMOVEDATA_12
db SPRITEMOVEFN_0E ; movement function db SPRITEMOVEFN_0E ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_FOLLOWING ; SPRITEMOVEDATA_FOLLOWING
db SPRITEMOVEFN_FOLLOW ; movement function db SPRITEMOVEFN_FOLLOW ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000010 ; flags1 db WONT_DELETE ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_SCRIPTED ; SPRITEMOVEDATA_SCRIPTED
db SPRITEMOVEFN_SCRIPTED ; movement function db SPRITEMOVEFN_SCRIPTED ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000010 ; flags1 db WONT_DELETE ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_BIGDOLLSYM ; SPRITEMOVEDATA_BIGDOLLSYM
db SPRITEMOVEFN_BIG_SNORLAX ; movement function db SPRITEMOVEFN_BIG_SNORLAX ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_BIG_DOLL_SYM ; action db OBJECT_ACTION_BIG_DOLL_SYM ; action
db %00101110 ; flags1 db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
db %00000001 ; flags2 db LOW_PRIORITY ; flags2
db %11000000 ; palette flags db STRENGTH_BOULDER | BIG_OBJECT ; palette flags
; SPRITEMOVEDATA_POKEMON ; SPRITEMOVEDATA_POKEMON
db SPRITEMOVEFN_BOUNCE ; movement function db SPRITEMOVEFN_BOUNCE ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_BOUNCE ; action db OBJECT_ACTION_BOUNCE ; action
db %00101110 ; flags1 db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_SUDOWOODO ; SPRITEMOVEDATA_SUDOWOODO
db SPRITEMOVEFN_STANDING ; movement function db SPRITEMOVEFN_STANDING ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00001100 ; flags1 db FIXED_FACING | SLIDING ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_SMASHABLE_ROCK ; SPRITEMOVEDATA_SMASHABLE_ROCK
db SPRITEMOVEFN_STANDING ; movement function db SPRITEMOVEFN_STANDING ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00101110 ; flags1 db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
db %00010000 ; flags2 db USE_OBP1 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_STRENGTH_BOULDER ; SPRITEMOVEDATA_STRENGTH_BOULDER
db SPRITEMOVEFN_STRENGTH ; movement function db SPRITEMOVEFN_STRENGTH ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00101110 ; flags1 db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %01000000 ; palette flags db STRENGTH_BOULDER ; palette flags
; SPRITEMOVEDATA_FOLLOWNOTEXACT ; SPRITEMOVEDATA_FOLLOWNOTEXACT
db SPRITEMOVEFN_FOLLOWNOTEXACT ; movement function db SPRITEMOVEFN_FOLLOWNOTEXACT ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000010 ; flags1 db WONT_DELETE ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_SHADOW ; SPRITEMOVEDATA_SHADOW
db SPRITEMOVEFN_SHADOW ; movement function db SPRITEMOVEFN_SHADOW ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_00 ; action db OBJECT_ACTION_00 ; action
db %10001110 ; flags1 db WONT_DELETE | FIXED_FACING | SLIDING | EMOTE_OBJECT ; flags1
db %00000001 ; flags2 db LOW_PRIORITY ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_EMOTE ; SPRITEMOVEDATA_EMOTE
db SPRITEMOVEFN_EMOTE ; movement function db SPRITEMOVEFN_EMOTE ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_EMOTE ; action db OBJECT_ACTION_EMOTE ; action
db %10001110 ; flags1 db WONT_DELETE | FIXED_FACING | SLIDING | EMOTE_OBJECT ; flags1
db %00000010 ; flags2 db HIGH_PRIORITY ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_SCREENSHAKE ; SPRITEMOVEDATA_SCREENSHAKE
db SPRITEMOVEFN_SCREENSHAKE ; movement function db SPRITEMOVEFN_SCREENSHAKE ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_00 ; action db OBJECT_ACTION_00 ; action
db %10000010 ; flags1 db WONT_DELETE | EMOTE_OBJECT ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE ; SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE
db SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE ; movement function db SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE ; movement function
db LEFT ; facing db LEFT ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_SPINCLOCKWISE ; SPRITEMOVEDATA_SPINCLOCKWISE
db SPRITEMOVEFN_SPIN_CLOCKWISE ; movement function db SPRITEMOVEFN_SPIN_CLOCKWISE ; movement function
db RIGHT ; facing db RIGHT ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_BIGDOLLASYM ; SPRITEMOVEDATA_BIGDOLLASYM
db SPRITEMOVEFN_STRENGTH ; movement function db SPRITEMOVEFN_STRENGTH ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_BIG_DOLL_ASYM ; action db OBJECT_ACTION_BIG_DOLL_ASYM ; action
db %00101110 ; flags1 db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
db %00000001 ; flags2 db LOW_PRIORITY ; flags2
db %11000000 ; palette flags db STRENGTH_BOULDER | BIG_OBJECT ; palette flags
; SPRITEMOVEDATA_BIGDOLL ; SPRITEMOVEDATA_BIGDOLL
db SPRITEMOVEFN_STRENGTH ; movement function db SPRITEMOVEFN_STRENGTH ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_BIG_DOLL ; action db OBJECT_ACTION_BIG_DOLL ; action
db %00101110 ; flags1 db WONT_DELETE | FIXED_FACING | SLIDING | MOVE_ANYWHERE ; flags1
db %00000001 ; flags2 db LOW_PRIORITY ; flags2
db %11000000 ; palette flags db STRENGTH_BOULDER | BIG_OBJECT ; palette flags
; SPRITEMOVEDATA_BOULDERDUST ; SPRITEMOVEDATA_BOULDERDUST
db SPRITEMOVEFN_BOULDERDUST ; movement function db SPRITEMOVEFN_BOULDERDUST ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_BOULDER_DUST ; action db OBJECT_ACTION_BOULDER_DUST ; action
db %10001110 ; flags1 db WONT_DELETE | FIXED_FACING | SLIDING | EMOTE_OBJECT ; flags1
db %00000001 ; flags2 db LOW_PRIORITY ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_GRASS ; SPRITEMOVEDATA_GRASS
db SPRITEMOVEFN_GRASS ; movement function db SPRITEMOVEFN_GRASS ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_GRASS_SHAKE ; action db OBJECT_ACTION_GRASS_SHAKE ; action
db %10001110 ; flags1 db WONT_DELETE | FIXED_FACING | SLIDING | EMOTE_OBJECT ; flags1
db %00000010 ; flags2 db HIGH_PRIORITY ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; SPRITEMOVEDATA_SWIM_WANDER ; SPRITEMOVEDATA_SWIM_WANDER
db SPRITEMOVEFN_RANDOM_WALK_XY ; movement function db SPRITEMOVEFN_RANDOM_WALK_XY ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00100000 ; palette flags db SWIMMING ; palette flags
; 25 ; 25
db SPRITEMOVEFN_00 ; movement function db SPRITEMOVEFN_00 ; movement function
db DOWN ; facing db DOWN ; facing
db OBJECT_ACTION_STAND ; action db OBJECT_ACTION_STAND ; action
db %00000000 ; flags1 db 0 ; flags1
db %00000000 ; flags2 db 0 ; flags2
db %00000000 ; palette flags db 0 ; palette flags
; 4357 ; 4357

View File

@ -109,11 +109,11 @@ TypeMatchups: ; 34bb1
db STEEL, ROCK, SUPER_EFFECTIVE db STEEL, ROCK, SUPER_EFFECTIVE
db STEEL, STEEL, NOT_VERY_EFFECTIVE db STEEL, STEEL, NOT_VERY_EFFECTIVE
db -2 ; end db -2 ; end (with Foresight)
; Foresight removes Ghost's immunities. ; Foresight removes Ghost's immunities.
db NORMAL, GHOST, NO_EFFECT db NORMAL, GHOST, NO_EFFECT
db FIGHTING, GHOST, NO_EFFECT db FIGHTING, GHOST, NO_EFFECT
db -1 ; end (with Foresight) db -1 ; end
; 34cfd ; 34cfd

View File

@ -1,6 +1,6 @@
treemon_map: MACRO treemon_map: MACRO
map_id \1 map_id \1
db \2 ; treemon set db \2 ; treemon set
ENDM ENDM
TreeMonMaps: ; b825e TreeMonMaps: ; b825e

View File

@ -44,7 +44,7 @@ These are known bugs and glitches in the original Pokémon Crystal game: code th
- [Two tiles in the `port` tileset are drawn incorrectly](#two-tiles-in-the-port-tileset-are-drawn-incorrectly) - [Two tiles in the `port` tileset are drawn incorrectly](#two-tiles-in-the-port-tileset-are-drawn-incorrectly)
- [`LoadMetatiles` wraps around past 128 blocks](#loadmetatiles-wraps-around-past-128-blocks) - [`LoadMetatiles` wraps around past 128 blocks](#loadmetatiles-wraps-around-past-128-blocks)
- [Surfing directly across a map connection does not load the new map](#surfing-directly-across-a-map-connection-does-not-load-the-new-map) - [Surfing directly across a map connection does not load the new map](#surfing-directly-across-a-map-connection-does-not-load-the-new-map)
- [`Function6ec1` does not correctly limit object movement](#function6ec1-does-not-correctly-limit-object-movement) - [Swimming NPCs aren't limited by their movement radius](#swimming-npcs-arent-limited-by-their-movement-radius)
- [`CheckOwnMon` only checks the first five letters of OT names](#checkownmon-only-checks-the-first-five-letters-of-ot-names) - [`CheckOwnMon` only checks the first five letters of OT names](#checkownmon-only-checks-the-first-five-letters-of-ot-names)
- [Catching a Transformed Pokémon always catches a Ditto](#catching-a-transformed-pokémon-always-catches-a-ditto) - [Catching a Transformed Pokémon always catches a Ditto](#catching-a-transformed-pokémon-always-catches-a-ditto)
- [Using a Park Ball in normal battles has a corrupt animation](#using-a-park-ball-in-normal-battles-has-a-corrupt-animation) - [Using a Park Ball in normal battles has a corrupt animation](#using-a-park-ball-in-normal-battles-has-a-corrupt-animation)
@ -1185,20 +1185,20 @@ In [home/map.asm](/home/map.asm):
*To do:* Identify specific code causing this bug and fix it. *To do:* Identify specific code causing this bug and fix it.
## `Function6ec1` does not correctly limit object movement ## Swimming NPCs aren't limited by their movement radius
This bug is why the Lapras in [maps/UnionCaveB2F.asm](/maps/UnionCaveB2F.asm), which uses `SPRITEMOVEDATA_SWIM_WANDER`, is not restricted by its `1, 1` movement radius. This bug is why the Lapras in [maps/UnionCaveB2F.asm](/maps/UnionCaveB2F.asm), which uses `SPRITEMOVEDATA_SWIM_WANDER`, is not restricted by its `1, 1` movement radius.
In [engine/overworld/npc_movement.asm](/engine/overworld/npc_movement.asm): This is a bug with `CanObjectMoveInDirection` in [engine/overworld/npc_movement.asm](/engine/overworld/npc_movement.asm):
```asm ```asm
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
bit 4, [hl] ; lost, uncomment next line to fix bit NOCLIP_TILES_F, [hl] ; lost, uncomment next line to fix
; jr nz, .resume ; jr nz, .noclip_tiles
``` ```
**Fix:** Uncomment `jr nz, .resume`. **Fix:** Uncomment `jr nz, .noclip_tiles`.
## `CheckOwnMon` only checks the first five letters of OT names ## `CheckOwnMon` only checks the first five letters of OT names

View File

@ -36,7 +36,7 @@ GLOBAL PICS_FIX
push hl push hl
push bc push bc
sub BANK(Pics_1) - PICS_FIX sub BANK("Pics 1") - PICS_FIX
ld c, a ld c, a
ld b, 0 ld b, 0
ld hl, .PicsBanks ld hl, .PicsBanks
@ -47,33 +47,33 @@ GLOBAL PICS_FIX
ret ret
.PicsBanks: ; 511d4 .PicsBanks: ; 511d4
db BANK(Pics_1) + 0 db BANK("Pics 1") ; BANK("Pics 1") + 0
db BANK(Pics_1) + 1 db BANK("Pics 2") ; BANK("Pics 1") + 1
db BANK(Pics_1) + 2 db BANK("Pics 3") ; BANK("Pics 1") + 2
db BANK(Pics_1) + 3 db BANK("Pics 4") ; BANK("Pics 1") + 3
db BANK(Pics_1) + 4 db BANK("Pics 5") ; BANK("Pics 1") + 4
db BANK(Pics_1) + 5 db BANK("Pics 6") ; BANK("Pics 1") + 5
db BANK(Pics_1) + 6 db BANK("Pics 7") ; BANK("Pics 1") + 6
db BANK(Pics_1) + 7 db BANK("Pics 8") ; BANK("Pics 1") + 7
db BANK(Pics_1) + 8 db BANK("Pics 9") ; BANK("Pics 1") + 8
db BANK(Pics_1) + 9 db BANK("Pics 10") ; BANK("Pics 1") + 9
db BANK(Pics_1) + 10 db BANK("Pics 11") ; BANK("Pics 1") + 10
db BANK(Pics_1) + 11 db BANK("Pics 12") ; BANK("Pics 1") + 11
db BANK(Pics_1) + 12 db BANK("Pics 13") ; BANK("Pics 1") + 12
db BANK(Pics_1) + 13 db BANK("Pics 14") ; BANK("Pics 1") + 13
db BANK(Pics_1) + 14 db BANK("Pics 15") ; BANK("Pics 1") + 14
db BANK(Pics_1) + 15 db BANK("Pics 16") ; BANK("Pics 1") + 15
db BANK(Pics_1) + 16 db BANK("Pics 17") ; BANK("Pics 1") + 16
db BANK(Pics_1) + 17 db BANK("Pics 18") ; BANK("Pics 1") + 17
db BANK(Pics_1) + 18 db BANK("Pics 19") ; BANK("Pics 1") + 18
db BANK(Pics_1) + 19 db BANK("Pics 20") ; BANK("Pics 1") + 19
db BANK(Pics_1) + 20 db BANK("Pics 21") ; BANK("Pics 1") + 20
db BANK(Pics_1) + 21 db BANK("Pics 22") ; BANK("Pics 1") + 21
db BANK(Pics_1) + 22 db BANK("Pics 23") ; BANK("Pics 1") + 22
db BANK(Pics_1) + 23 db BANK("Pics 24") ; BANK("Pics 1") + 23
``` ```
**Fix:** Use `dba` instead of `dba_pic`, and don't call `FixPicBank` to modify `a`. **Fix:** Use `dba` instead of `dba_pic`, delete `FixPicBank`, and remove all four calls to `FixPicBank`.
## `PokemonPicPointers` and `UnownPicPointers` are assumed to start at the same address ## `PokemonPicPointers` and `UnownPicPointers` are assumed to start at the same address

View File

@ -1055,7 +1055,7 @@ AI_Smart_TrapTarget: ; 38a71
jr nz, .asm_38a91 jr nz, .asm_38a91
ld a, [wPlayerSubStatus1] ld a, [wPlayerSubStatus1]
and 1<<SUBSTATUS_IN_LOVE | 1<<SUBSTATUS_ROLLOUT | 1<<SUBSTATUS_IDENTIFIED | 1<<SUBSTATUS_NIGHTMARE and 1 << SUBSTATUS_IN_LOVE | 1 << SUBSTATUS_ROLLOUT | 1 << SUBSTATUS_IDENTIFIED | 1 << SUBSTATUS_NIGHTMARE
jr nz, .asm_38a91 jr nz, .asm_38a91
; Else, 50% chance to greatly encourage this move if it's the player's Pokemon first turn. ; Else, 50% chance to greatly encourage this move if it's the player's Pokemon first turn.
@ -1569,7 +1569,7 @@ AI_Smart_DefrostOpponent: ; 38ccb
; No move has EFFECT_DEFROST_OPPONENT, so this layer is unused. ; No move has EFFECT_DEFROST_OPPONENT, so this layer is unused.
ld a, [wEnemyMonStatus] ld a, [wEnemyMonStatus]
and $20 and 1 << FRZ
ret z ret z
dec [hl] dec [hl]
dec [hl] dec [hl]
@ -1847,7 +1847,7 @@ AI_Smart_MeanLook: ; 38dfb
; 80% chance to greatly encourage this move if the player is either ; 80% chance to greatly encourage this move if the player is either
; in love, identified, stuck in Rollout, or has a Nightmare. ; in love, identified, stuck in Rollout, or has a Nightmare.
ld a, [wPlayerSubStatus1] ld a, [wPlayerSubStatus1]
and 1<<SUBSTATUS_IN_LOVE | 1<<SUBSTATUS_ROLLOUT | 1<<SUBSTATUS_IDENTIFIED | 1<<SUBSTATUS_NIGHTMARE and 1 << SUBSTATUS_IN_LOVE | 1 << SUBSTATUS_ROLLOUT | 1 << SUBSTATUS_IDENTIFIED | 1 << SUBSTATUS_NIGHTMARE
jr nz, .asm_38e26 jr nz, .asm_38e26
; Otherwise, discourage this move unless the player only has not very effective moves against the enemy. ; Otherwise, discourage this move unless the player only has not very effective moves against the enemy.

View File

@ -364,7 +364,7 @@ CantMove: ; 341f0
ld a, BATTLE_VARS_SUBSTATUS3 ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr call GetBattleVarAddr
ld a, [hl] ld a, [hl]
and $ff ^ (1<<SUBSTATUS_BIDE + 1<<SUBSTATUS_RAMPAGE + 1<<SUBSTATUS_CHARGED) and $ff ^ (1 << SUBSTATUS_BIDE | 1 << SUBSTATUS_RAMPAGE | 1 << SUBSTATUS_CHARGED)
ld [hl], a ld [hl], a
call ResetFuryCutterCount call ResetFuryCutterCount

View File

@ -39,12 +39,19 @@ PokemonCenterPC: ; 1559a
dw PlaceNthMenuStrings dw PlaceNthMenuStrings
dw .JumpTable dw .JumpTable
PCPC_PLAYERS_PC EQU 0
PCPC_BILLS_PC EQU 1
PCPC_OAKS_PC EQU 2
PCPC_HALL_OF_FAME EQU 3
PCPC_TURN_OFF EQU 4
.JumpTable: .JumpTable:
dw PlayersPC, .String_PlayersPC ; entries correspond to PCPC_* constants
dw BillsPC, .String_BillsPC dw PlayersPC, .String_PlayersPC
dw OaksPC, .String_OaksPC dw BillsPC, .String_BillsPC
dw OaksPC, .String_OaksPC
dw HallOfFamePC, .String_HallOfFame dw HallOfFamePC, .String_HallOfFame
dw TurnOffPC, .String_TurnOff dw TurnOffPC, .String_TurnOff
.String_PlayersPC: db "<PLAYER>'s PC@" .String_PlayersPC: db "<PLAYER>'s PC@"
.String_BillsPC: db "BILL's PC@" .String_BillsPC: db "BILL's PC@"
@ -53,33 +60,42 @@ PokemonCenterPC: ; 1559a
.String_TurnOff: db "TURN OFF@" .String_TurnOff: db "TURN OFF@"
.WhichPC: .WhichPC:
; before pokedex ; before Pokédex
db 3 ; items db 3
db 1, 0, 4 ; bill's, player's, turn off db PCPC_BILLS_PC
db -1 db PCPC_PLAYERS_PC
db PCPC_TURN_OFF
db -1 ; end
; before Hall Of Fame ; before Hall Of Fame
db 4 ; items db 4
db 1, 0, 2, 4 ; bill's, player's, oak's, turn off db PCPC_BILLS_PC
db -1 db PCPC_PLAYERS_PC
db PCPC_OAKS_PC
db PCPC_TURN_OFF
db -1 ; end
; postgame ; postgame
db 5 ; items db 5
db 1, 0, 2, 3, 4 ; bill's, player's, oak's, hall of fame, turn off db PCPC_BILLS_PC
db -1 db PCPC_PLAYERS_PC
db PCPC_OAKS_PC
db PCPC_HALL_OF_FAME
db PCPC_TURN_OFF
db -1 ; end
.ChooseWhichPCListToUse: .ChooseWhichPCListToUse:
call CheckReceivedDex call CheckReceivedDex
jr nz, .got_dex jr nz, .got_dex
ld a, $0 ld a, 0 ; before Pokédex
ret ret
.got_dex .got_dex
ld a, [wHallOfFameCount] ld a, [wHallOfFameCount]
and a and a
ld a, $1 ld a, 1 ; before Hall Of Fame
ret z ret z
ld a, $2 ld a, 2 ; postgame
ret ret
; 15650 ; 15650
@ -244,7 +260,16 @@ PlayersPCMenuData: ; 0x15736
dw PlaceNthMenuStrings dw PlaceNthMenuStrings
dw .PlayersPCMenuPointers dw .PlayersPCMenuPointers
PLAYERSPC_WITHDRAW_ITEM EQU 0
PLAYERSPC_DEPOSIT_ITEM EQU 1
PLAYERSPC_TOSS_ITEM EQU 2
PLAYERSPC_MAIL_BOX EQU 3
PLAYERSPC_DECORATION EQU 4
PLAYERSPC_TURN_OFF EQU 5
PLAYERSPC_LOG_OFF EQU 6
.PlayersPCMenuPointers: ; 0x15746 .PlayersPCMenuPointers: ; 0x15746
; entries correspond to PLAYERSPC_* constants
dw PlayerWithdrawItemMenu, .WithdrawItem dw PlayerWithdrawItemMenu, .WithdrawItem
dw PlayerDepositItemMenu, .DepositItem dw PlayerDepositItemMenu, .DepositItem
dw PlayerTossItemMenu, .TossItem dw PlayerTossItemMenu, .TossItem
@ -261,32 +286,24 @@ PlayersPCMenuData: ; 0x15736
.TurnOff: db "TURN OFF@" .TurnOff: db "TURN OFF@"
.LogOff: db "LOG OFF@" .LogOff: db "LOG OFF@"
WITHDRAW_ITEM EQU 0
DEPOSIT_ITEM EQU 1
TOSS_ITEM EQU 2
MAIL_BOX EQU 3
DECORATION EQU 4
TURN_OFF EQU 5
LOG_OFF EQU 6
.PlayersPCMenuList1: .PlayersPCMenuList1:
db 5 db 5
db WITHDRAW_ITEM db PLAYERSPC_WITHDRAW_ITEM
db DEPOSIT_ITEM db PLAYERSPC_DEPOSIT_ITEM
db TOSS_ITEM db PLAYERSPC_TOSS_ITEM
db MAIL_BOX db PLAYERSPC_MAIL_BOX
db TURN_OFF db PLAYERSPC_TURN_OFF
db -1 db -1 ; end
.PlayersPCMenuList2: .PlayersPCMenuList2:
db 6 db 6
db WITHDRAW_ITEM db PLAYERSPC_WITHDRAW_ITEM
db DEPOSIT_ITEM db PLAYERSPC_DEPOSIT_ITEM
db TOSS_ITEM db PLAYERSPC_TOSS_ITEM
db MAIL_BOX db PLAYERSPC_MAIL_BOX
db DECORATION db PLAYERSPC_DECORATION
db LOG_OFF db PLAYERSPC_LOG_OFF
db -1 db -1 ; end
PC_DisplayTextWaitMenu: ; 157bb PC_DisplayTextWaitMenu: ; 157bb
ld a, [wOptions] ld a, [wOptions]
@ -461,13 +478,14 @@ PlayerDepositItemMenu: ; 0x1588b
ret ret
.dw .dw
dw .tossable ; entries correspond to ITEMMENU_* constants
dw .tossable ; ITEMMENU_NOUSE
dw .no_toss dw .no_toss
dw .no_toss dw .no_toss
dw .no_toss dw .no_toss
dw .tossable dw .tossable ; ITEMMENU_CURRENT
dw .tossable dw .tossable ; ITEMMENU_PARTY
dw .tossable dw .tossable ; ITEMMENU_CLOSE
.no_toss .no_toss
ret ret

View File

@ -48,7 +48,7 @@ LoadSGBLayoutCGB: ; 8d59
dw _CGB_GSTitleScreen dw _CGB_GSTitleScreen
dw _CGB0d dw _CGB0d
dw _CGB_MoveList dw _CGB_MoveList
dw _CGB0f dw _CGB_BetaPikachuMinigame
dw _CGB_PokedexSearchOption dw _CGB_PokedexSearchOption
dw _CGB11 dw _CGB11
dw _CGB_Pokepic dw _CGB_Pokepic
@ -532,7 +532,7 @@ _CGB_GSIntro: ; 9122
; 9195 ; 9195
_CGB11: ; 9195 _CGB11: ; 9195
ld hl, Palettes_SCGB_11 ld hl, BetaPokerPals
ld de, wBGPals1 ld de, wBGPals1
ld bc, 5 palettes ld bc, 5 palettes
ld a, BANK(wBGPals1) ld a, BANK(wBGPals1)
@ -790,8 +790,8 @@ _CGB_MoveList: ; 9373
ret ret
; 93a6 ; 93a6
_CGB0f: ; 93a6 _CGB_BetaPikachuMinigame: ; 93a6
ld hl, PalPacket_SCGB_0F + 1 ld hl, PalPacket_BetaPikachuMinigame + 1
call CopyFourPalettes call CopyFourPalettes
call WipeAttrMap call WipeAttrMap
call ApplyAttrMap call ApplyAttrMap

View File

@ -182,12 +182,12 @@ Unreferenced_Function8b4d:
ld a, [hSGB] ld a, [hSGB]
and a and a
ret z ret z
ld hl, PalPacket_Function8b4d ld hl, PalPacket_BetaIntroVenusaur
jp PushSGBPals_ jp PushSGBPals_
.cgb .cgb
ld de, wOBPals1 ld de, wOBPals1
ld a, PREDEFPAL_3B ld a, PREDEFPAL_BETA_INTRO_VENUSAUR
call GetPredefPal call GetPredefPal
jp LoadHLPaletteIntoDE jp LoadHLPaletteIntoDE
@ -1349,8 +1349,8 @@ INCLUDE "gfx/pokegear/pokegear.pal"
FemalePokegearPals: FemalePokegearPals:
INCLUDE "gfx/pokegear/pokegear_f.pal" INCLUDE "gfx/pokegear/pokegear_f.pal"
Palettes_SCGB_11: BetaPokerPals:
INCLUDE "gfx/unknown/b789.pal" INCLUDE "gfx/beta_poker/beta_poker.pal"
SlotMachinePals: SlotMachinePals:
INCLUDE "gfx/slots/slots.pal" INCLUDE "gfx/slots/slots.pal"

View File

@ -252,7 +252,7 @@ GLOBAL PICS_FIX
push hl push hl
push bc push bc
sub BANK(Pics_1) - PICS_FIX sub BANK("Pics 1") - PICS_FIX
ld c, a ld c, a
ld b, 0 ld b, 0
ld hl, .PicsBanks ld hl, .PicsBanks
@ -263,30 +263,30 @@ GLOBAL PICS_FIX
ret ret
.PicsBanks: ; 511d4 .PicsBanks: ; 511d4
db BANK(Pics_1) + 0 db BANK("Pics 1") ; BANK("Pics 1") + 0
db BANK(Pics_1) + 1 db BANK("Pics 2") ; BANK("Pics 1") + 1
db BANK(Pics_1) + 2 db BANK("Pics 3") ; BANK("Pics 1") + 2
db BANK(Pics_1) + 3 db BANK("Pics 4") ; BANK("Pics 1") + 3
db BANK(Pics_1) + 4 db BANK("Pics 5") ; BANK("Pics 1") + 4
db BANK(Pics_1) + 5 db BANK("Pics 6") ; BANK("Pics 1") + 5
db BANK(Pics_1) + 6 db BANK("Pics 7") ; BANK("Pics 1") + 6
db BANK(Pics_1) + 7 db BANK("Pics 8") ; BANK("Pics 1") + 7
db BANK(Pics_1) + 8 db BANK("Pics 9") ; BANK("Pics 1") + 8
db BANK(Pics_1) + 9 db BANK("Pics 10") ; BANK("Pics 1") + 9
db BANK(Pics_1) + 10 db BANK("Pics 11") ; BANK("Pics 1") + 10
db BANK(Pics_1) + 11 db BANK("Pics 12") ; BANK("Pics 1") + 11
db BANK(Pics_1) + 12 db BANK("Pics 13") ; BANK("Pics 1") + 12
db BANK(Pics_1) + 13 db BANK("Pics 14") ; BANK("Pics 1") + 13
db BANK(Pics_1) + 14 db BANK("Pics 15") ; BANK("Pics 1") + 14
db BANK(Pics_1) + 15 db BANK("Pics 16") ; BANK("Pics 1") + 15
db BANK(Pics_1) + 16 db BANK("Pics 17") ; BANK("Pics 1") + 16
db BANK(Pics_1) + 17 db BANK("Pics 18") ; BANK("Pics 1") + 17
db BANK(Pics_1) + 18 db BANK("Pics 19") ; BANK("Pics 1") + 18
db BANK(Pics_1) + 19 db BANK("Pics 20") ; BANK("Pics 1") + 19
db BANK(Pics_1) + 20 db BANK("Pics 21") ; BANK("Pics 1") + 20
db BANK(Pics_1) + 21 db BANK("Pics 22") ; BANK("Pics 1") + 21
db BANK(Pics_1) + 22 db BANK("Pics 23") ; BANK("Pics 1") + 22
db BANK(Pics_1) + 23 db BANK("Pics 24") ; BANK("Pics 1") + 23
Function511ec: ; 511ec Function511ec: ; 511ec
ld a, c ld a, c

View File

@ -38,9 +38,9 @@ LoadSGBLayout: ; 864c
dw .SGB_GSTitleScreen dw .SGB_GSTitleScreen
dw .SGB0d dw .SGB0d
dw .SGB_MoveList dw .SGB_MoveList
dw .SGB0f dw .SGB_BetaPikachuMinigame
dw .SGB_PokedexSearchOption dw .SGB_PokedexSearchOption
dw .SGB11 dw .SGB_BetaPoker
dw .SGB12 dw .SGB12
dw .SGB13 dw .SGB13
dw .SGB_PackPals dw .SGB_PackPals
@ -346,18 +346,18 @@ endr
ret ret
; 8897 ; 8897
.SGB0f: ; 8897 .SGB_BetaPikachuMinigame: ; 8897
ld hl, PalPacket_SCGB_0F ld hl, PalPacket_BetaPikachuMinigame
ld de, BlkPacket_9a86 ld de, BlkPacket_9a86
ret ret
; 889e ; 889e
.SGB11: ; 889e .SGB_BetaPoker: ; 889e
ld hl, BlkPacket_9a86 ld hl, BlkPacket_9a86
ld de, wPlayerLightScreenCount ; ??? ld de, wPlayerLightScreenCount ; ???
ld bc, PALPACKET_LENGTH ld bc, PALPACKET_LENGTH
call CopyBytes call CopyBytes
ld hl, PalPacket_SCGB_11 ld hl, PalPacket_BetaPoker
ld de, BlkPacket_9a86 ld de, BlkPacket_9a86
ret ret
; 88b1 ; 88b1

View File

@ -571,11 +571,11 @@ RegisterItem: ; 103c2
ld a, [wCurrPocket] ld a, [wCurrPocket]
rrca rrca
rrca rrca
and $c0 and REGISTERED_POCKET
ld b, a ld b, a
ld a, [wCurItemQuantity] ld a, [wCurItemQuantity]
inc a inc a
and $3f and REGISTERED_NUMBER
or b or b
ld [wWhichRegisteredItem], a ld [wWhichRegisteredItem], a
ld a, [wCurItem] ld a, [wCurItem]
@ -1283,7 +1283,7 @@ DrawPackGFX: ; 1089d
ld a, [wCurrPocket] ld a, [wCurrPocket]
maskbits NUM_POCKETS maskbits NUM_POCKETS
ld e, a ld e, a
ld d, $0 ld d, 0
ld a, [wBattleType] ld a, [wBattleType]
cp BATTLETYPE_TUTORIAL cp BATTLETYPE_TUTORIAL
jr z, .male_dude jr z, .male_dude

View File

@ -47,7 +47,7 @@ SetFacingStandAction: ; 44b5
SetFacingStepAction: ; 44c1 SetFacingStepAction: ; 44c1
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
bit SLIDING, [hl] bit SLIDING_F, [hl]
jp nz, SetFacingCurrent jp nz, SetFacingCurrent
ld hl, OBJECT_STEP_FRAME ld hl, OBJECT_STEP_FRAME
@ -59,7 +59,7 @@ SetFacingStepAction: ; 44c1
rrca rrca
rrca rrca
and %00000011 maskbits NUM_DIRECTIONS
ld d, a ld d, a
call GetSpriteDirection call GetSpriteDirection
@ -74,7 +74,7 @@ SetFacingStepAction: ; 44c1
SetFacingSkyfall: ; 44e4 SetFacingSkyfall: ; 44e4
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
bit SLIDING, [hl] bit SLIDING_F, [hl]
jp nz, SetFacingCurrent jp nz, SetFacingCurrent
ld hl, OBJECT_STEP_FRAME ld hl, OBJECT_STEP_FRAME
@ -86,7 +86,7 @@ SetFacingSkyfall: ; 44e4
rrca rrca
rrca rrca
and %00000011 maskbits NUM_DIRECTIONS
ld d, a ld d, a
call GetSpriteDirection call GetSpriteDirection
@ -101,7 +101,7 @@ SetFacingSkyfall: ; 44e4
SetFacingBumpAction: ; 4508 SetFacingBumpAction: ; 4508
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
bit SLIDING, [hl] bit SLIDING_F, [hl]
jp nz, SetFacingCurrent jp nz, SetFacingCurrent
ld hl, OBJECT_STEP_FRAME ld hl, OBJECT_STEP_FRAME
@ -112,7 +112,7 @@ SetFacingBumpAction: ; 4508
rrca rrca
rrca rrca
rrca rrca
and %00000011 maskbits NUM_DIRECTIONS
ld d, a ld d, a
call GetSpriteDirection call GetSpriteDirection
@ -245,7 +245,7 @@ SetFacingWeirdTree: ; 45ab
ld a, [hl] ld a, [hl]
inc a inc a
ld [hl], a ld [hl], a
and %00001100 maskbits NUM_DIRECTIONS, 2
rrca rrca
rrca rrca
add FACING_WEIRD_TREE_0 add FACING_WEIRD_TREE_0

View File

@ -93,7 +93,7 @@ Function437b: ; 437b
.ok2 .ok2
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
bit 1, [hl] bit WONT_DELETE_F, [hl]
jr nz, .yes2 jr nz, .yes2
call DeleteMapObject call DeleteMapObject
scf scf
@ -146,7 +146,7 @@ Function437b: ; 437b
.HandleObjectAction: .HandleObjectAction:
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
bit INVISIBLE, [hl] bit INVISIBLE_F, [hl]
jr nz, SetFacingStanding jr nz, SetFacingStanding
ld hl, OBJECT_FLAGS2 ld hl, OBJECT_FLAGS2
add hl, bc add hl, bc
@ -161,7 +161,7 @@ Function437b: ; 437b
Function4440: ; 4440 Function4440: ; 4440
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
bit INVISIBLE, [hl] bit INVISIBLE_F, [hl]
jr nz, SetFacingStanding jr nz, SetFacingStanding
asm_4448: asm_4448:
ld de, ObjectActionPairPointers + 2 ; use second column ld de, ObjectActionPairPointers + 2 ; use second column
@ -233,7 +233,7 @@ Function462a: ; 462a
UpdateTallGrassFlags: ; 463f UpdateTallGrassFlags: ; 463f
ld hl, OBJECT_FLAGS2 ld hl, OBJECT_FLAGS2
add hl, bc add hl, bc
bit OVERHEAD, [hl] bit OVERHEAD_F, [hl]
jr z, .ok jr z, .ok
ld hl, OBJECT_NEXT_TILE ld hl, OBJECT_NEXT_TILE
add hl, bc add hl, bc
@ -260,13 +260,13 @@ SetTallGrassFlags: ; 4661
.set .set
ld hl, OBJECT_FLAGS2 ld hl, OBJECT_FLAGS2
add hl, bc add hl, bc
set OVERHEAD, [hl] set OVERHEAD_F, [hl]
ret ret
.reset .reset
ld hl, OBJECT_FLAGS2 ld hl, OBJECT_FLAGS2
add hl, bc add hl, bc
res OVERHEAD, [hl] res OVERHEAD_F, [hl]
ret ret
; 4679 ; 4679
@ -298,7 +298,7 @@ InitStep: ; 4690
ld [hl], a ld [hl], a
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
bit FIXED_FACING, [hl] bit FIXED_FACING_F, [hl]
jr nz, GetNextTile jr nz, GetNextTile
add a add a
add a add a
@ -696,7 +696,7 @@ MapObjectMovementPattern: ; 47dd
and %00000011 and %00000011
or 0 or 0
call InitStep call InitStep
call Function6ec1 call CanObjectMoveInDirection
jr c, .ok2 jr c, .ok2
ld de, SFX_STRENGTH ld de, SFX_STRENGTH
call PlaySFX call PlaySFX
@ -1049,7 +1049,7 @@ MapObjectMovementPattern: ; 47dd
.RandomWalkContinue: .RandomWalkContinue:
call InitStep call InitStep
call Function6ec1 ; check whether the object can move in that direction call CanObjectMoveInDirection ; check whether the object can move in that direction
jr c, .NewDuration jr c, .NewDuration
call UpdateTallGrassFlags call UpdateTallGrassFlags
ld hl, OBJECT_ACTION ld hl, OBJECT_ACTION
@ -2155,7 +2155,7 @@ DespawnEmote: ; 5579
push af push af
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, de add hl, de
bit EMOTE_OBJECT, [hl] bit EMOTE_OBJECT_F, [hl]
jr z, .next jr z, .next
ld hl, OBJECT_SPRITE ld hl, OBJECT_SPRITE
add hl, de add hl, de
@ -2444,7 +2444,7 @@ Function56cd: ; 56cd
ld [hUsedSpriteTile], a ld [hUsedSpriteTile], a
ld hl, OBJECT_PALETTE ld hl, OBJECT_PALETTE
add hl, bc add hl, bc
bit 7, [hl] bit BIG_OBJECT_F, [hl]
jr z, .ok7 jr z, .ok7
ld a, d ld a, d
add 2 add 2
@ -2574,7 +2574,7 @@ ContinueSpawnFacing: ; 57db
_SetPlayerPalette: ; 57e2 _SetPlayerPalette: ; 57e2
ld a, d ld a, d
and %10000000 and 1 << 7
ret z ret z
ld bc, 0 ; debug? ld bc, 0 ; debug?
ld hl, OBJECT_FACING ld hl, OBJECT_FACING
@ -2584,13 +2584,13 @@ _SetPlayerPalette: ; 57e2
ld [hl], a ld [hl], a
ld a, d ld a, d
swap a swap a
and %00000111 and PALETTE_MASK
ld d, a ld d, a
ld bc, wPlayerStruct ld bc, wPlayerStruct
ld hl, OBJECT_PALETTE ld hl, OBJECT_PALETTE
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
and %11111000 and $ff ^ PALETTE_MASK
or d or d
ld [hl], a ld [hl], a
ret ret
@ -2918,10 +2918,10 @@ InitSprites: ; 5991
ld e, PRIORITY_LOW ld e, PRIORITY_LOW
ld hl, OBJECT_FLAGS2 ld hl, OBJECT_FLAGS2
add hl, bc add hl, bc
bit LOW_PRIORITY, [hl] bit LOW_PRIORITY_F, [hl]
jr nz, .add jr nz, .add
ld e, PRIORITY_NORM ld e, PRIORITY_NORM
bit HIGH_PRIORITY, [hl] bit HIGH_PRIORITY_F, [hl]
jr z, .add jr z, .add
ld e, PRIORITY_HIGH ld e, PRIORITY_HIGH
jr .add jr .add
@ -2973,35 +2973,35 @@ InitSprites: ; 5991
ld hl, OBJECT_SPRITE_TILE ld hl, OBJECT_SPRITE_TILE
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
and %01111111 and $ff ^ (1 << 7)
ld [hFFC1], a ld [hFFC1], a
xor a xor a
bit 7, [hl] bit 7, [hl]
jr nz, .skip1 jr nz, .skip1
or %00001000 or VRAM_BANK_1
.skip1 .skip1
ld hl, OBJECT_FLAGS2 ld hl, OBJECT_FLAGS2
add hl, bc add hl, bc
ld e, [hl] ld e, [hl]
bit 7, e bit 7, e
jr z, .skip2 jr z, .skip2
or %10000000 or PRIORITY
.skip2 .skip2
bit 4, e bit USE_OBP1_F, e
jr z, .skip3 jr z, .skip3
or %00010000 or OBP_NUM
.skip3 .skip3
ld hl, OBJECT_PALETTE ld hl, OBJECT_PALETTE
add hl, bc add hl, bc
ld d, a ld d, a
ld a, [hl] ld a, [hl]
and %00000111 and PALETTE_MASK
or d or d
ld d, a ld d, a
xor a xor a
bit 3, e bit OVERHEAD_F, e
jr z, .skip4 jr z, .skip4
or %10000000 or PRIORITY
.skip4 .skip4
ld [hFFC2], a ld [hFFC2], a
ld hl, OBJECT_SPRITE_X ld hl, OBJECT_SPRITE_X
@ -3063,7 +3063,7 @@ InitSprites: ; 5991
ld e, [hl] ld e, [hl]
inc hl inc hl
ld a, [hFFC1] ld a, [hFFC1]
bit 2, e bit ABSOLUTE_TILE_ID_F, e
jr z, .nope1 jr z, .nope1
xor a xor a
.nope1 .nope1
@ -3072,7 +3072,7 @@ InitSprites: ; 5991
ld [bc], a ; tile id ld [bc], a ; tile id
inc c inc c
ld a, e ld a, e
bit 1, a bit RELATIVE_ATTRIBUTES_F, a
jr z, .nope2 jr z, .nope2
ld a, [hFFC2] ld a, [hFFC2]
or e or e

View File

@ -377,42 +377,42 @@ Movement_tree_shake: ; 5279
Movement_remove_sliding: ; 5293 Movement_remove_sliding: ; 5293
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
res SLIDING, [hl] res SLIDING_F, [hl]
jp ContinueReadingMovement jp ContinueReadingMovement
; 529c ; 529c
Movement_set_sliding: ; 529c Movement_set_sliding: ; 529c
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
set SLIDING, [hl] set SLIDING_F, [hl]
jp ContinueReadingMovement jp ContinueReadingMovement
; 52a5 ; 52a5
Movement_remove_fixed_facing: ; 52a5 Movement_remove_fixed_facing: ; 52a5
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
res FIXED_FACING, [hl] res FIXED_FACING_F, [hl]
jp ContinueReadingMovement jp ContinueReadingMovement
; 52ae ; 52ae
Movement_fix_facing: ; 52ae Movement_fix_facing: ; 52ae
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
set FIXED_FACING, [hl] set FIXED_FACING_F, [hl]
jp ContinueReadingMovement jp ContinueReadingMovement
; 52b7 ; 52b7
Movement_show_object: ; 52b7 Movement_show_object: ; 52b7
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
res INVISIBLE, [hl] res INVISIBLE_F, [hl]
jp ContinueReadingMovement jp ContinueReadingMovement
; 52c0 ; 52c0
Movement_hide_object: ; 52c0 Movement_hide_object: ; 52c0
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
set INVISIBLE, [hl] set INVISIBLE_F, [hl]
jp ContinueReadingMovement jp ContinueReadingMovement
; 52c9 ; 52c9
@ -838,7 +838,7 @@ JumpStep: ; 548a
ld hl, OBJECT_FLAGS2 ld hl, OBJECT_FLAGS2
add hl, bc add hl, bc
res OVERHEAD, [hl] res OVERHEAD_F, [hl]
ld hl, OBJECT_ACTION ld hl, OBJECT_ACTION
add hl, bc add hl, bc

View File

@ -1,37 +1,38 @@
Function6ec1: ; 6ec1 CanObjectMoveInDirection: ; 6ec1
ld hl, OBJECT_PALETTE ld hl, OBJECT_PALETTE
add hl, bc add hl, bc
bit 5, [hl] bit SWIMMING_F, [hl]
jr z, .not_bit_5 jr z, .not_swimming
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
bit 4, [hl] ; lost, uncomment next line to fix bit NOCLIP_TILES_F, [hl] ; lost, uncomment next line to fix
; jr nz, .resume ; jr nz, .noclip_tiles
push hl push hl
push bc push bc
call Function6f2c call WillObjectBumpIntoLand
pop bc pop bc
pop hl pop hl
ret c ret c
jr .resume jr .continue
.not_bit_5 .not_swimming
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
bit 4, [hl] bit NOCLIP_TILES_F, [hl]
jr nz, .resume jr nz, .noclip_tiles
push hl push hl
push bc push bc
call Function6f07 call WillObjectBumpIntoWater
pop bc pop bc
pop hl pop hl
ret c ret c
.resume .noclip_tiles
bit 6, [hl] .continue
jr nz, .bit_6 bit NOCLIP_OBJS_F, [hl]
jr nz, .noclip_objs
push hl push hl
push bc push bc
@ -40,9 +41,9 @@ Function6ec1: ; 6ec1
pop hl pop hl
ret c ret c
.bit_6 .noclip_objs
bit 5, [hl] bit MOVE_ANYWHERE_F, [hl]
jr nz, .bit_5 jr nz, .move_anywhere
push hl push hl
call HasObjectReachedMovementLimit call HasObjectReachedMovementLimit
pop hl pop hl
@ -53,13 +54,13 @@ Function6ec1: ; 6ec1
pop hl pop hl
ret c ret c
.bit_5 .move_anywhere
and a and a
ret ret
; 6f07 ; 6f07
Function6f07: ; 6f07 WillObjectBumpIntoWater: ; 6f07
call Function6f5f call Function6f5f
ret c ret c
ld hl, OBJECT_NEXT_MAP_X ld hl, OBJECT_NEXT_MAP_X
@ -78,12 +79,12 @@ Function6f07: ; 6f07
ld d, a ld d, a
call GetTileCollision call GetTileCollision
and a ; LANDTILE and a ; LANDTILE
jr z, Function6f3e jr z, WillObjectBumpIntoTile
scf scf
ret ret
; 6f2c ; 6f2c
Function6f2c: ; 6f2c WillObjectBumpIntoLand: ; 6f2c
call Function6f5f call Function6f5f
ret c ret c
ld hl, OBJECT_NEXT_TILE ld hl, OBJECT_NEXT_TILE
@ -91,12 +92,12 @@ Function6f2c: ; 6f2c
ld a, [hl] ld a, [hl]
call GetTileCollision call GetTileCollision
cp WATERTILE cp WATERTILE
jr z, Function6f3e jr z, WillObjectBumpIntoTile
scf scf
ret ret
; 6f3e ; 6f3e
Function6f3e: ; 6f3e WillObjectBumpIntoTile: ; 6f3e
ld hl, OBJECT_NEXT_TILE ld hl, OBJECT_NEXT_TILE
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
@ -331,7 +332,7 @@ IsNPCAtCoord: ; 7041
ld hl, OBJECT_PALETTE ld hl, OBJECT_PALETTE
add hl, bc add hl, bc
bit 7, [hl] bit BIG_OBJECT_F, [hl]
jr z, .got jr z, .got
call Function7171 call Function7171

View File

@ -684,7 +684,7 @@ DoPlayerMovement:: ; 80000
ld hl, OBJECT_PALETTE ld hl, OBJECT_PALETTE
add hl, bc add hl, bc
bit 6, [hl] bit STRENGTH_BOULDER_F, [hl]
jr z, .not_boulder jr z, .not_boulder
ld hl, OBJECT_FLAGS2 ld hl, OBJECT_FLAGS2
@ -696,7 +696,7 @@ DoPlayerMovement:: ; 80000
ld hl, OBJECT_RANGE ld hl, OBJECT_RANGE
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
and $fc and %11111100
or d or d
ld [hl], a ld [hl], a

View File

@ -1071,7 +1071,7 @@ ApplyObjectFacing:
jr c, .not_visible ; STILL_SPRITE jr c, .not_visible ; STILL_SPRITE
ld hl, OBJECT_FLAGS1 ld hl, OBJECT_FLAGS1
add hl, bc add hl, bc
bit FIXED_FACING, [hl] bit FIXED_FACING_F, [hl]
jr nz, .not_visible jr nz, .not_visible
pop de pop de
ld a, e ld a, e

View File

@ -96,9 +96,9 @@ _BillsPC: ; e3fd
dw BillsPC_SeeYa dw BillsPC_SeeYa
.items ; e4c4 .items ; e4c4
db 5 db 5 ; # items
db 0 ; WITHDRAW db 0 ; WITHDRAW
db 1; DEPOSIT db 1 ; DEPOSIT
db 2 ; CHANGE BOX db 2 ; CHANGE BOX
db 3 ; MOVE PKMN db 3 ; MOVE PKMN
db 4 ; SEE YA! db 4 ; SEE YA!

View File

@ -1497,29 +1497,29 @@ CalcMonStatC: ; e17b
jr z, .Special jr z, .Special
cp STAT_SDEF cp STAT_SDEF
jr z, .Special jr z, .Special
; DV_HP = (DV_ATK & 1) << 3 + (DV_DEF & 1) << 2 + (DV_SPD & 1) << 1 + (DV_SPC & 1) ; DV_HP = (DV_ATK & 1) << 3 | (DV_DEF & 1) << 2 | (DV_SPD & 1) << 1 | (DV_SPC & 1)
push bc push bc
ld a, [hl] ld a, [hl]
swap a swap a
and $1 and 1
add a add a
add a add a
add a add a
ld b, a ld b, a
ld a, [hli] ld a, [hli]
and $1 and 1
add a add a
add a add a
add b add b
ld b, a ld b, a
ld a, [hl] ld a, [hl]
swap a swap a
and $1 and 1
add a add a
add b add b
ld b, a ld b, a
ld a, [hl] ld a, [hl]
and $1 and 1
add b add b
pop bc pop bc
jr .GotDV jr .GotDV

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

After

Width:  |  Height:  |  Size: 356 B

View File

@ -20,7 +20,6 @@ INCLUDE "data/trainers/pic_pointers.asm"
SECTION "Pics 1", ROMX SECTION "Pics 1", ROMX
Pics_1::
HoOhFrontpic: INCBIN "gfx/pokemon/ho_oh/front.animated.2bpp.lz" HoOhFrontpic: INCBIN "gfx/pokemon/ho_oh/front.animated.2bpp.lz"
MachampFrontpic: INCBIN "gfx/pokemon/machamp/front.animated.2bpp.lz" MachampFrontpic: INCBIN "gfx/pokemon/machamp/front.animated.2bpp.lz"
@ -794,3 +793,21 @@ INCBIN "gfx/pokemon/unown_y/back.2bpp.lz"
INCBIN "gfx/pokemon/unown_p/back.2bpp.lz" INCBIN "gfx/pokemon/unown_p/back.2bpp.lz"
INCBIN "gfx/pokemon/unown_i/back.2bpp.lz" INCBIN "gfx/pokemon/unown_i/back.2bpp.lz"
INCBIN "gfx/pokemon/unown_r/back.2bpp.lz" INCBIN "gfx/pokemon/unown_r/back.2bpp.lz"
; Sections "Pics 20" to "Pics 24" are not used for any graphics,
; but entries for their banks exist in FixPicBank (see engine/gfx/load_pics.asm).
SECTION "Pics 20", ROMX
SECTION "Pics 21", ROMX
SECTION "Pics 22", ROMX
SECTION "Pics 23", ROMX
SECTION "Pics 24", ROMX

View File

@ -21,10 +21,10 @@ PalPacket_GSTitleScreen:
sgb_pal_set GS_TITLE_SCREEN_0, GS_TITLE_SCREEN_1, GS_TITLE_SCREEN_2, GS_TITLE_SCREEN_3 sgb_pal_set GS_TITLE_SCREEN_0, GS_TITLE_SCREEN_1, GS_TITLE_SCREEN_2, GS_TITLE_SCREEN_3
PalPacket_SCGB_13: PalPacket_SCGB_13:
sgb_pal_set GREENMON_NITE, CGB_BADGE, RB_BROWNMON, 00 sgb_pal_set BETA_SHINY_GREENMON, CGB_BADGE, RB_BROWNMON, 00
PalPacket_SCGB_11: PalPacket_BetaPoker:
sgb_pal_set SCGB_11_0, SCGB_11_1, SCGB_11_2, SCGB_11_3 sgb_pal_set BETA_POKER_0, BETA_POKER_1, BETA_POKER_2, BETA_POKER_3
PalPacket_UnownPuzzle: PalPacket_UnownPuzzle:
sgb_pal_set UNOWN_PUZZLE, UNOWN_PUZZLE, UNOWN_PUZZLE, UNOWN_PUZZLE sgb_pal_set UNOWN_PUZZLE, UNOWN_PUZZLE, UNOWN_PUZZLE, UNOWN_PUZZLE
@ -35,8 +35,8 @@ PalPacket_9bd6:
PalPacket_GSIntroShellderLapras: PalPacket_GSIntroShellderLapras:
sgb_pal_set GS_INTRO_SHELLDER_LAPRAS, 00, 00, 00 sgb_pal_set GS_INTRO_SHELLDER_LAPRAS, 00, 00, 00
UnreferencedPalPacket_9bf6: UnreferencedPalPacket_BetaIntroLapras:
sgb_pal_set 37, 00, 00, 00 sgb_pal_set BETA_INTRO_LAPRAS, 00, 00, 00
PalPacket_GSIntroJigglypuffPikachu: PalPacket_GSIntroJigglypuffPikachu:
sgb_pal_set GS_INTRO_JIGGLYPUFF_PIKACHU_BG, GS_INTRO_JIGGLYPUFF_PIKACHU_OB, 00, 00 sgb_pal_set GS_INTRO_JIGGLYPUFF_PIKACHU_BG, GS_INTRO_JIGGLYPUFF_PIKACHU_OB, 00, 00
@ -44,13 +44,13 @@ PalPacket_GSIntroJigglypuffPikachu:
PalPacket_GSIntroStartersTransition: PalPacket_GSIntroStartersTransition:
sgb_pal_set GS_INTRO_STARTERS_TRANSITION, 00, 00, 00 sgb_pal_set GS_INTRO_STARTERS_TRANSITION, 00, 00, 00
PalPacket_Function8b4d: PalPacket_BetaIntroVenusaur:
sgb_pal_set 3B, 00, 00, 00 sgb_pal_set BETA_INTRO_VENUSAUR, 00, 00, 00
PalPacket_Pack: PalPacket_Pack:
sgb_pal_set PACK, 00, 00, 00 sgb_pal_set PACK, 00, 00, 00
PalPacket_SCGB_0F: PalPacket_BetaPikachuMinigame:
sgb_pal_set GS_INTRO_JIGGLYPUFF_PIKACHU_OB, 00, 00, 00 sgb_pal_set GS_INTRO_JIGGLYPUFF_PIKACHU_OB, 00, 00, 00
PalPacket_PartyMenu: PalPacket_PartyMenu:
@ -69,7 +69,7 @@ PalPacket_SlotMachine:
sgb_pal_set SLOT_MACHINE_0, SLOT_MACHINE_1, SLOT_MACHINE_2, SLOT_MACHINE_3 sgb_pal_set SLOT_MACHINE_0, SLOT_MACHINE_1, SLOT_MACHINE_2, SLOT_MACHINE_3
PalPacket_SCGB_06: PalPacket_SCGB_06:
sgb_pal_set 33, 34, DIPLOMA, RB_PURPLEMON sgb_pal_set BETA_LOGO_1, BETA_LOGO_2, DIPLOMA, RB_PURPLEMON
PalPacket_Diploma: PalPacket_Diploma:
sgb_pal_set DIPLOMA, 00, 00, 00 sgb_pal_set DIPLOMA, 00, 00, 00

View File

@ -35,40 +35,40 @@
RGB 31,31,31, 30,22,24, 28,15,21, 00,00,00 ; PREDEFPAL_RB_PINKMON RGB 31,31,31, 30,22,24, 28,15,21, 00,00,00 ; PREDEFPAL_RB_PINKMON
RGB 31,31,31, 31,28,14, 26,20,00, 00,00,00 ; PREDEFPAL_RB_YELLOWMON RGB 31,31,31, 31,28,14, 26,20,00, 00,00,00 ; PREDEFPAL_RB_YELLOWMON
RGB 31,31,31, 26,21,22, 15,15,18, 00,00,00 ; PREDEFPAL_CGB_BADGE RGB 31,31,31, 26,21,22, 15,15,18, 00,00,00 ; PREDEFPAL_CGB_BADGE
RGB 31,31,31, 23,19,13, 14,12,17, 00,00,00 ; PREDEFPAL_MEWMON_NITE RGB 31,31,31, 23,19,13, 14,12,17, 00,00,00 ; PREDEFPAL_SHINY_MEWMON
RGB 31,31,31, 16,18,21, 10,12,18, 00,00,00 ; PREDEFPAL_BLUEMON_NITE RGB 31,31,31, 16,18,21, 10,12,18, 00,00,00 ; PREDEFPAL_SHINY_BLUEMON
RGB 31,31,31, 22,15,16, 17,02,05, 00,00,00 ; PREDEFPAL_REDMON_NITE RGB 31,31,31, 22,15,16, 17,02,05, 00,00,00 ; PREDEFPAL_SHINY_REDMON
RGB 31,31,31, 15,20,20, 05,16,16, 00,00,00 ; PREDEFPAL_CYANMON_NITE RGB 31,31,31, 15,20,20, 05,16,16, 00,00,00 ; PREDEFPAL_SHINY_CYANMON
RGB 31,31,31, 23,15,19, 14,04,12, 00,00,00 ; PREDEFPAL_PURPLEMON_NITE RGB 31,31,31, 23,15,19, 14,04,12, 00,00,00 ; PREDEFPAL_SHINY_PURPLEMON
RGB 31,31,31, 20,17,18, 18,13,11, 00,00,00 ; PREDEFPAL_BROWNMON_NITE RGB 31,31,31, 20,17,18, 18,13,11, 00,00,00 ; PREDEFPAL_SHINY_BROWNMON
RGB 31,31,31, 23,21,16, 12,12,10, 00,00,00 ; PREDEFPAL_GREENMON_NITE RGB 31,31,31, 23,21,16, 12,12,10, 00,00,00 ; PREDEFPAL_SHINY_GREENMON
RGB 31,31,31, 21,25,29, 30,22,24, 00,00,00 ; PREDEFPAL_PINKMON_NITE RGB 31,31,31, 21,25,29, 30,22,24, 00,00,00 ; PREDEFPAL_SHINY_PINKMON
RGB 31,31,31, 26,23,16, 29,14,09, 00,00,00 ; PREDEFPAL_YELLOWMON_NITE RGB 31,31,31, 26,23,16, 29,14,09, 00,00,00 ; PREDEFPAL_SHINY_YELLOWMON
RGB 31,31,31, 18,18,18, 10,10,10, 00,00,00 ; PREDEFPAL_PARTY_ICON RGB 31,31,31, 18,18,18, 10,10,10, 00,00,00 ; PREDEFPAL_PARTY_ICON
RGB 31,31,31, 30,26,15, 00,23,00, 00,00,00 ; PREDEFPAL_HP_GREEN RGB 31,31,31, 30,26,15, 00,23,00, 00,00,00 ; PREDEFPAL_HP_GREEN
RGB 31,31,31, 30,26,15, 31,23,00, 00,00,00 ; PREDEFPAL_HP_YELLOW RGB 31,31,31, 30,26,15, 31,23,00, 00,00,00 ; PREDEFPAL_HP_YELLOW
RGB 31,31,31, 30,26,15, 31,00,00, 00,00,00 ; PREDEFPAL_HP_RED RGB 31,31,31, 30,26,15, 31,00,00, 00,00,00 ; PREDEFPAL_HP_RED
RGB 31,31,31, 29,26,19, 27,20,14, 00,00,00 ; PREDEFPAL_POKEGEAR RGB 31,31,31, 29,26,19, 27,20,14, 00,00,00 ; PREDEFPAL_POKEGEAR
RGB 31,31,31, 24,20,10, 21,00,04, 00,00,00 ; PREDEFPAL_33 RGB 31,31,31, 24,20,10, 21,00,04, 00,00,00 ; PREDEFPAL_BETA_LOGO_1
RGB 31,31,31, 31,20,10, 21,00,04, 00,00,00 ; PREDEFPAL_34 RGB 31,31,31, 31,20,10, 21,00,04, 00,00,00 ; PREDEFPAL_BETA_LOGO_2
RGB 31,31,31, 30,26,16, 16,12,09, 00,00,00 ; PREDEFPAL_GS_INTRO_GAMEFREAK_LOGO RGB 31,31,31, 30,26,16, 16,12,09, 00,00,00 ; PREDEFPAL_GS_INTRO_GAMEFREAK_LOGO
RGB 31,31,31, 15,28,26, 12,22,26, 03,16,14 ; PREDEFPAL_GS_INTRO_SHELLDER_LAPRAS RGB 31,31,31, 15,28,26, 12,22,26, 03,16,14 ; PREDEFPAL_GS_INTRO_SHELLDER_LAPRAS
RGB 31,31,31, 15,28,26, 23,24,24, 00,00,00 ; PREDEFPAL_37 RGB 31,31,31, 15,28,26, 23,24,24, 00,00,00 ; PREDEFPAL_BETA_INTRO_LAPRAS
RGB 31,31,24, 07,27,19, 26,20,10, 19,12,08 ; PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG RGB 31,31,24, 07,27,19, 26,20,10, 19,12,08 ; PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG
RGB 31,31,31, 31,28,14, 31,13,31, 00,00,00 ; PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB RGB 31,31,31, 31,28,14, 31,13,31, 00,00,00 ; PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB
RGB 31,31,31, 16,18,21, 10,12,18, 00,00,00 ; PREDEFPAL_GS_INTRO_STARTERS_TRANSITION RGB 31,31,31, 16,18,21, 10,12,18, 00,00,00 ; PREDEFPAL_GS_INTRO_STARTERS_TRANSITION
RGB 31,31,31, 23,21,16, 12,12,10, 00,00,00 ; PREDEFPAL_3B RGB 31,31,31, 23,21,16, 12,12,10, 00,00,00 ; PREDEFPAL_BETA_INTRO_VENUSAUR
RGB 31,31,31, 31,14,00, 07,11,15, 00,00,00 ; PREDEFPAL_PACK RGB 31,31,31, 31,14,00, 07,11,15, 00,00,00 ; PREDEFPAL_PACK
RGB 31,31,31, 26,21,22, 26,10,06, 00,00,00 ; PREDEFPAL_SLOT_MACHINE_0 RGB 31,31,31, 26,21,22, 26,10,06, 00,00,00 ; PREDEFPAL_SLOT_MACHINE_0
RGB 31,31,31, 30,27,04, 24,20,11, 00,00,00 ; PREDEFPAL_SLOT_MACHINE_1 RGB 31,31,31, 30,27,04, 24,20,11, 00,00,00 ; PREDEFPAL_SLOT_MACHINE_1
RGB 31,31,31, 31,13,25, 24,20,11, 00,00,00 ; PREDEFPAL_SLOT_MACHINE_2 RGB 31,31,31, 31,13,25, 24,20,11, 00,00,00 ; PREDEFPAL_SLOT_MACHINE_2
RGB 31,31,31, 16,19,29, 24,20,11, 00,00,00 ; PREDEFPAL_SLOT_MACHINE_3 RGB 31,31,31, 16,19,29, 24,20,11, 00,00,00 ; PREDEFPAL_SLOT_MACHINE_3
RGB 31,31,31, 30,22,24, 18,18,18, 16,10,07 ; PREDEFPAL_SCGB_11_0 RGB 31,31,31, 30,22,24, 18,18,18, 16,10,07 ; PREDEFPAL_BETA_POKER_0
RGB 31,31,31, 21,25,29, 18,18,18, 16,10,07 ; PREDEFPAL_SCGB_11_1 RGB 31,31,31, 21,25,29, 18,18,18, 16,10,07 ; PREDEFPAL_BETA_POKER_1
RGB 31,31,31, 20,26,16, 18,18,18, 16,10,07 ; PREDEFPAL_SCGB_11_2 RGB 31,31,31, 20,26,16, 18,18,18, 16,10,07 ; PREDEFPAL_BETA_POKER_2
RGB 31,31,31, 31,28,14, 18,18,18, 16,10,07 ; PREDEFPAL_SCGB_11_3 RGB 31,31,31, 31,28,14, 18,18,18, 16,10,07 ; PREDEFPAL_BETA_POKER_3
RGB 31,31,31, 18,18,18, 26,10,06, 00,00,00 ; PREDEFPAL_45 RGB 31,31,31, 18,18,18, 26,10,06, 00,00,00 ; PREDEFPAL_BETA_RADIO
RGB 31,31,31, 30,22,24, 28,15,21, 00,00,00 ; PREDEFPAL_46 RGB 31,31,31, 30,22,24, 28,15,21, 00,00,00 ; PREDEFPAL_BETA_POKEGEAR
RGB 31,31,31, 26,20,00, 16,19,29, 00,00,00 ; PREDEFPAL_47 RGB 31,31,31, 26,20,00, 16,19,29, 00,00,00 ; PREDEFPAL_47
RGB 31,31,31, 16,02,30, 15,20,31, 00,00,00 ; PREDEFPAL_GS_TITLE_SCREEN_0 RGB 31,31,31, 16,02,30, 15,20,31, 00,00,00 ; PREDEFPAL_GS_TITLE_SCREEN_0
RGB 31,31,31, 16,13,04, 15,20,31, 00,00,00 ; PREDEFPAL_GS_TITLE_SCREEN_1 RGB 31,31,31, 16,13,04, 15,20,31, 00,00,00 ; PREDEFPAL_GS_TITLE_SCREEN_1

View File

@ -1,107 +1,107 @@
; group 0 (unused) ; group 0 (unused)
RGB 21,21,21, 11,11,11 ; morn/day RGB 21,21,21, 11,11,11 ; morn/day
RGB 21,21,21, 11,11,11; nite RGB 21,21,21, 11,11,11 ; nite
; group 1 (Olivine) ; group 1 (Olivine)
RGB 14,17,31, 07,11,15 ; morn/day RGB 14,17,31, 07,11,15 ; morn/day
RGB 09,09,17, 05,07,13; nite RGB 09,09,17, 05,07,13 ; nite
; group 2 (Mahogany) ; group 2 (Mahogany)
RGB 12,19,00, 06,10,00 ; morn/day RGB 12,19,00, 06,10,00 ; morn/day
RGB 06,09,07, 04,05,06; nite RGB 06,09,07, 04,05,06 ; nite
; group 3 (dungeons) ; group 3 (dungeons)
RGB 21,21,21, 11,11,11 ; morn/day RGB 21,21,21, 11,11,11 ; morn/day
RGB 21,21,21, 17,08,07; nite RGB 21,21,21, 17,08,07 ; nite
; group 4 (Ecruteak) ; group 4 (Ecruteak)
RGB 31,19,00, 27,10,05 ; morn/day RGB 31,19,00, 27,10,05 ; morn/day
RGB 15,07,02, 11,04,02; nite RGB 15,07,02, 11,04,02 ; nite
; group 5 (Blackthorn) ; group 5 (Blackthorn)
RGB 11,10,16, 05,06,07 ; morn/day RGB 11,10,16, 05,06,07 ; morn/day
RGB 03,04,08, 00,00,00; nite RGB 03,04,08, 00,00,00 ; nite
; group 6 (Cinnabar) ; group 6 (Cinnabar)
RGB 31,10,00, 18,06,00 ; morn/day RGB 31,10,00, 18,06,00 ; morn/day
RGB 18,05,09, 17,08,07; nite RGB 18,05,09, 17,08,07 ; nite
; group 7 (Cerulean) ; group 7 (Cerulean)
RGB 17,27,31, 05,15,31 ; morn/day RGB 17,27,31, 05,15,31 ; morn/day
RGB 07,08,22, 07,07,16; nite RGB 07,08,22, 07,07,16 ; nite
; group 8 (Azalea) ; group 8 (Azalea)
RGB 22,20,10, 17,14,03 ; morn/day RGB 22,20,10, 17,14,03 ; morn/day
RGB 11,11,05, 10,09,07; nite RGB 11,11,05, 10,09,07 ; nite
; group 9 (Lake of Rage) ; group 9 (Lake of Rage)
RGB 31,08,04, 09,09,08 ; morn/day RGB 31,08,04, 09,09,08 ; morn/day
RGB 18,05,09, 09,09,08; nite RGB 18,05,09, 09,09,08 ; nite
; group 10 (Violet) ; group 10 (Violet)
RGB 24,14,31, 13,07,21 ; morn/day RGB 24,14,31, 13,07,21 ; morn/day
RGB 12,03,18, 09,03,15; nite RGB 12,03,18, 09,03,15 ; nite
; group 11 (Goldenrod) ; group 11 (Goldenrod)
RGB 25,25,00, 20,17,08 ; morn/day RGB 25,25,00, 20,17,08 ; morn/day
RGB 12,12,00, 10,09,05; nite RGB 12,12,00, 10,09,05 ; nite
; group 12 (Vermilion) ; group 12 (Vermilion)
RGB 27,23,01, 23,11,00 ; morn/day RGB 27,23,01, 23,11,00 ; morn/day
RGB 15,11,01, 11,10,01; nite RGB 15,11,01, 11,10,01 ; nite
; group 13 (Pallet) ; group 13 (Pallet)
RGB 27,28,31, 17,19,22 ; morn/day RGB 27,28,31, 17,19,22 ; morn/day
RGB 14,14,18, 10,09,13; nite RGB 14,14,18, 10,09,13 ; nite
; group 14 (Pewter) ; group 14 (Pewter)
RGB 19,19,16, 10,12,15 ; morn/day RGB 19,19,16, 10,12,15 ; morn/day
RGB 09,09,11, 04,05,07; nite RGB 09,09,11, 04,05,07 ; nite
; group 15 (Mount Moon Square) ; group 15 (Mount Moon Square)
RGB 14,17,31, 07,11,15 ; morn/day RGB 14,17,31, 07,11,15 ; morn/day
RGB 09,13,19, 07,07,16; nite RGB 09,13,19, 07,07,16 ; nite
; group 16 (Indigo) ; group 16 (Indigo)
RGB 21,21,21, 13,13,13 ; morn/day RGB 21,21,21, 13,13,13 ; morn/day
RGB 11,11,19, 07,07,12; nite RGB 11,11,19, 07,07,12 ; nite
; group 17 (Fuchsia) ; group 17 (Fuchsia)
RGB 31,18,29, 17,13,20 ; morn/day RGB 31,18,29, 17,13,20 ; morn/day
RGB 14,06,12, 11,03,10; nite RGB 14,06,12, 11,03,10 ; nite
; group 18 (Lavender) ; group 18 (Lavender)
RGB 23,15,31, 16,05,31 ; morn/day RGB 23,15,31, 16,05,31 ; morn/day
RGB 12,07,17, 08,06,10; nite RGB 12,07,17, 08,06,10 ; nite
; group 19 (Silver Cave) ; group 19 (Silver Cave)
RGB 21,21,25, 16,16,16 ; morn/day RGB 21,21,25, 16,16,16 ; morn/day
RGB 13,13,13, 07,07,07; nite RGB 13,13,13, 07,07,07 ; nite
; group 20 (Cable Club) ; group 20 (Cable Club)
RGB 21,21,21, 11,11,11 ; morn/day RGB 21,21,21, 11,11,11 ; morn/day
RGB 21,21,21, 11,11,11; nite RGB 21,21,21, 11,11,11 ; nite
; group 21 (Celadon) ; group 21 (Celadon)
RGB 19,31,15, 31,22,02 ; morn/day RGB 19,31,15, 31,22,02 ; morn/day
RGB 12,13,09, 09,12,03; nite RGB 12,13,09, 09,12,03 ; nite
; group 22 (Cianwood) ; group 22 (Cianwood)
RGB 15,10,31, 07,05,15 ; morn/day RGB 15,10,31, 07,05,15 ; morn/day
RGB 06,05,17, 02,02,08; nite RGB 06,05,17, 02,02,08 ; nite
; group 23 (Viridian) ; group 23 (Viridian)
RGB 21,31,07, 13,25,04 ; morn/day RGB 21,31,07, 13,25,04 ; morn/day
RGB 09,14,08, 06,10,04; nite RGB 09,14,08, 06,10,04 ; nite
; group 24 (New Bark) ; group 24 (New Bark)
RGB 20,31,14, 11,23,05 ; morn/day RGB 20,31,14, 11,23,05 ; morn/day
RGB 09,13,08, 06,09,04; nite RGB 09,13,08, 06,09,04 ; nite
; group 25 (Saffron) ; group 25 (Saffron)
RGB 31,26,00, 31,15,00 ; morn/day RGB 31,26,00, 31,15,00 ; morn/day
RGB 13,13,01, 08,08,01; nite RGB 13,13,01, 08,08,01 ; nite
; group 26 (Cherrygrove) ; group 26 (Cherrygrove)
RGB 31,14,28, 31,05,21 ; morn/day RGB 31,14,28, 31,05,21 ; morn/day
RGB 14,07,17, 13,00,08; nite RGB 14,07,17, 13,00,08 ; nite

View File

@ -227,26 +227,7 @@ CompareLong:: ; 31e4
; 31f3 ; 31f3
INCLUDE "home/tilemap.asm" INCLUDE "home/tilemap.asm"
INCLUDE "home/hp_pals.asm"
SetHPPal:: ; 334e
; Set palette for hp bar pixel length e at hl.
call GetHPPal
ld [hl], d
ret
; 3353
GetHPPal:: ; 3353
; Get palette for hp bar pixel length e in d.
ld d, HP_GREEN
ld a, e
cp (50 * 48 / 100)
ret nc
inc d ; HP_YELLOW
cp (21 * 48 / 100)
ret nc
inc d ; HP_RED
ret
; 335f
CountSetBits:: ; 0x335f CountSetBits:: ; 0x335f
; Count the number of set bits in b bytes starting from hl. ; Count the number of set bits in b bytes starting from hl.

View File

@ -1,7 +1,7 @@
CopyBytes:: ; 0x3026 CopyBytes:: ; 0x3026
; copy bc bytes from hl to de ; copy bc bytes from hl to de
inc b ; we bail the moment b hits 0, so include the last run inc b ; we bail the moment b hits 0, so include the last run
inc c ; same thing; include last byte inc c ; same thing; include last byte
jr .HandleLoop jr .HandleLoop
.CopyByte: .CopyByte:
ld a, [hli] ld a, [hli]
@ -39,8 +39,8 @@ SwapBytes:: ; 0x3034
ByteFill:: ; 0x3041 ByteFill:: ; 0x3041
; fill bc bytes with the value of a, starting at hl ; fill bc bytes with the value of a, starting at hl
inc b ; we bail the moment b hits 0, so include the last run inc b ; we bail the moment b hits 0, so include the last run
inc c ; same thing; include last byte inc c ; same thing; include last byte
jr .HandleLoop jr .HandleLoop
.PutByte: .PutByte:
ld [hli], a ld [hli], a

19
home/hp_pals.asm Normal file
View File

@ -0,0 +1,19 @@
SetHPPal:: ; 334e
; Set palette for hp bar pixel length e at hl.
call GetHPPal
ld [hl], d
ret
; 3353
GetHPPal:: ; 3353
; Get palette for hp bar pixel length e in d.
ld d, HP_GREEN
ld a, e
cp (HP_BAR_LENGTH_PX * 50 / 100) ; 24
ret nc
inc d ; HP_YELLOW
cp (HP_BAR_LENGTH_PX * 21 / 100) ; 10
ret nc
inc d ; HP_RED
ret
; 335f

View File

@ -482,10 +482,10 @@ GetSpriteMovementFunction:: ; 1a2f
xor a xor a
.ok .ok
ld hl, SpriteMovementData ld hl, SpriteMovementData + SPRITEMOVEATTR_MOVEMENT
ld e, a ld e, a
ld d, 0 ld d, 0
rept SPRITEMOVEDATA_FIELDS rept NUM_SPRITEMOVEDATA_FIELDS
add hl, de add hl, de
endr endr
ld a, [hl] ld a, [hl]
@ -497,15 +497,15 @@ GetInitialFacing:: ; 1a47
push de push de
ld e, a ld e, a
ld d, 0 ld d, 0
ld hl, SpriteMovementData + 1 ; init facing ld hl, SpriteMovementData + SPRITEMOVEATTR_FACING
rept SPRITEMOVEDATA_FIELDS rept NUM_SPRITEMOVEDATA_FIELDS
add hl, de add hl, de
endr endr
ld a, BANK(SpriteMovementData) ld a, BANK(SpriteMovementData)
call GetFarByte call GetFarByte
add a add a
add a add a
and $c maskbits NUM_DIRECTIONS, 2
pop de pop de
pop bc pop bc
ret ret
@ -537,8 +537,8 @@ CopySpriteMovementData:: ; 1a61
push de push de
ld e, a ld e, a
ld d, 0 ld d, 0
ld hl, SpriteMovementData + 1 ; init facing ld hl, SpriteMovementData + SPRITEMOVEATTR_FACING
rept SPRITEMOVEDATA_FIELDS rept NUM_SPRITEMOVEDATA_FIELDS
add hl, de add hl, de
endr endr
ld b, h ld b, h
@ -549,7 +549,7 @@ endr
inc bc inc bc
rlca rlca
rlca rlca
and %00001100 maskbits NUM_DIRECTIONS, 2
ld hl, OBJECT_FACING ld hl, OBJECT_FACING
add hl, de add hl, de
ld [hl], a ld [hl], a
@ -654,7 +654,7 @@ SetSpriteDirection:: ; 1af8
and %11110011 and %11110011
ld e, a ld e, a
pop af pop af
and %00001100 maskbits NUM_DIRECTIONS, 2
or e or e
ld [hl], a ld [hl], a
ret ret
@ -664,6 +664,6 @@ GetSpriteDirection:: ; 1b07
ld hl, OBJECT_FACING ld hl, OBJECT_FACING
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
and %00001100 maskbits NUM_DIRECTIONS, 2
ret ret
; 1b0f ; 1b0f

View File

@ -36,8 +36,10 @@ jumptable: MACRO
ENDM ENDM
maskbits: MACRO maskbits: MACRO
; masks just enough bits to cover the argument ; masks just enough bits to cover the first argument
; the second argument is an optional shift amount
; e.g. "maskbits 26" becomes "and %00011111" (since 26 - 1 = %00011001) ; e.g. "maskbits 26" becomes "and %00011111" (since 26 - 1 = %00011001)
; and "maskbits 3, 2" becomes "and %00001100" (since "maskbits 3" becomes %00000011)
; example usage in rejection sampling: ; example usage in rejection sampling:
; .loop ; .loop
; call Random ; call Random
@ -50,7 +52,11 @@ if x + 1 < (\1)
x = x << 1 | 1 x = x << 1 | 1
endc endc
endr endr
if _NARG == 2
and x << (\2)
else
and x and x
endc
ENDM ENDM
calc_sine_wave: MACRO calc_sine_wave: MACRO

View File

@ -46,10 +46,10 @@ GoldenrodGameCornerPokefanM3Script:
turnobject GOLDENRODGAMECORNER_POKEFAN_M3, RIGHT turnobject GOLDENRODGAMECORNER_POKEFAN_M3, RIGHT
end end
GoldenrodGmeCornerCoinVendorScript: GoldenrodGameCornerCoinVendorScript:
jumpstd gamecornercoinvendor jumpstd gamecornercoinvendor
GoldenrodGmeCornerTMVendorScript: GoldenrodGameCornerTMVendorScript:
faceplayer faceplayer
opentext opentext
writetext GoldenrodGameCornerPrizeVendorIntroText writetext GoldenrodGameCornerPrizeVendorIntroText
@ -57,7 +57,7 @@ GoldenrodGmeCornerTMVendorScript:
checkitem COIN_CASE checkitem COIN_CASE
iffalse GoldenrodGameCornerPrizeVendor_NoCoinCaseScript iffalse GoldenrodGameCornerPrizeVendor_NoCoinCaseScript
writetext GoldenrodGameCornerPrizeVendorWhichPrizeText writetext GoldenrodGameCornerPrizeVendorWhichPrizeText
GoldenrodGmeCornerTMVendor_LoopScript: ; 056c36 GoldenrodGameCornerTMVendor_LoopScript: ; 056c36
special DisplayCoinCaseBalance special DisplayCoinCaseBalance
loadmenu GoldenrodGameCornerTMVendorMenuHeader loadmenu GoldenrodGameCornerTMVendorMenuHeader
verticalmenu verticalmenu
@ -76,7 +76,7 @@ GoldenrodGmeCornerTMVendor_LoopScript: ; 056c36
giveitem TM_THUNDER giveitem TM_THUNDER
iffalse GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript iffalse GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript
takecoins 5500 takecoins 5500
jump GoldenrodGmeCornerTMVendor_FinishScript jump GoldenrodGameCornerTMVendor_FinishScript
.Blizzard: .Blizzard:
checkcoins 5500 checkcoins 5500
@ -87,7 +87,7 @@ GoldenrodGmeCornerTMVendor_LoopScript: ; 056c36
giveitem TM_BLIZZARD giveitem TM_BLIZZARD
iffalse GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript iffalse GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript
takecoins 5500 takecoins 5500
jump GoldenrodGmeCornerTMVendor_FinishScript jump GoldenrodGameCornerTMVendor_FinishScript
.FireBlast: .FireBlast:
checkcoins 5500 checkcoins 5500
@ -98,19 +98,19 @@ GoldenrodGmeCornerTMVendor_LoopScript: ; 056c36
giveitem TM_FIRE_BLAST giveitem TM_FIRE_BLAST
iffalse GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript iffalse GoldenrodGameCornerPrizeMonVendor_NoRoomForPrizeScript
takecoins 5500 takecoins 5500
jump GoldenrodGmeCornerTMVendor_FinishScript jump GoldenrodGameCornerTMVendor_FinishScript
GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript: GoldenrodGameCornerPrizeVendor_ConfirmPurchaseScript:
writetext GoldenrodGameCornerPrizeVendorConfirmPrizeText writetext GoldenrodGameCornerPrizeVendorConfirmPrizeText
yesorno yesorno
end end
GoldenrodGmeCornerTMVendor_FinishScript: GoldenrodGameCornerTMVendor_FinishScript:
waitsfx waitsfx
playsound SFX_TRANSACTION playsound SFX_TRANSACTION
writetext GoldenrodGameCornerPrizeVendorHereYouGoText writetext GoldenrodGameCornerPrizeVendorHereYouGoText
waitbutton waitbutton
jump GoldenrodGmeCornerTMVendor_LoopScript jump GoldenrodGameCornerTMVendor_LoopScript
GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript: GoldenrodGameCornerPrizeVendor_NotEnoughCoinsScript:
writetext GoldenrodGameCornerPrizeVendorNeedMoreCoinsText writetext GoldenrodGameCornerPrizeVendorNeedMoreCoinsText
@ -477,8 +477,8 @@ GoldenrodGameCorner_MapEvents:
bg_event 12, 1, BGEVENT_LEFT, GoldenrodGameCornerLeftTheirDrinkScript bg_event 12, 1, BGEVENT_LEFT, GoldenrodGameCornerLeftTheirDrinkScript
db 12 ; object events db 12 ; object events
object_event 3, 2, SPRITE_CLERK, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGmeCornerCoinVendorScript, -1 object_event 3, 2, SPRITE_CLERK, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerCoinVendorScript, -1
object_event 16, 2, SPRITE_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGmeCornerTMVendorScript, -1 object_event 16, 2, SPRITE_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerTMVendorScript, -1
object_event 18, 2, SPRITE_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPrizeMonVendorScript, -1 object_event 18, 2, SPRITE_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPrizeMonVendorScript, -1
object_event 8, 7, SPRITE_PHARMACIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, DAY, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPharmacistScript, -1 object_event 8, 7, SPRITE_PHARMACIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, DAY, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPharmacistScript, -1
object_event 8, 7, SPRITE_PHARMACIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, NITE, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPharmacistScript, -1 object_event 8, 7, SPRITE_PHARMACIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, NITE, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPharmacistScript, -1

View File

@ -63,15 +63,17 @@ RandyScript:
end end
GiftSpearowMail: GiftSpearowMail:
db FLOWER_MAIL db FLOWER_MAIL
db "DARK CAVE leads" db "DARK CAVE leads"
next "to another road@" next "to another road@"
GiftSpearowName: GiftSpearowName:
db "KENYA@" db "KENYA@"
GiftSpearowOTName: GiftSpearowOTName:
db "RANDY@" db "RANDY@"
db 0 db 0 ; filler
Route35GoldenrodGatePokefanFScript: Route35GoldenrodGatePokefanFScript:
faceplayer faceplayer

View File

@ -83,7 +83,7 @@ EnableMobile: ; 100082
call DoubleSpeed call DoubleSpeed
xor a xor a
ld [rIF], a ld [rIF], a
ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL ld a, 1 << VBLANK | 1 << LCD_STAT | 1 << TIMER | 1 << SERIAL
ld [rIE], a ld [rIE], a
xor a xor a
ld [hMapAnims], a ld [hMapAnims], a

View File

@ -234,17 +234,22 @@ ROMX $5a
"Pics 19" "Pics 19"
ROMX $5b ROMX $5b
"bank5B" "bank5B"
"Pics 20"
ROMX $5c ROMX $5c
"Mobile 5C" "Mobile 5C"
"Pics 21"
ROMX $5d ROMX $5d
"Crystal Phone Text 2" "Crystal Phone Text 2"
"Pics 22"
ROMX $5e ROMX $5e
"UpdateBattleHUDs" "UpdateBattleHUDs"
"Songs 5" "Songs 5"
"Crystal Sound Effects" "Crystal Sound Effects"
"Mobile 5E" "Mobile 5E"
"Pics 23"
ROMX $5f ROMX $5f
"Mobile 5F" "Mobile 5F"
"Pics 24"
ROMX $60 ROMX $60
"Map Scripts 13" "Map Scripts 13"
"Pokedex Entries 001-064" "Pokedex Entries 001-064"

View File

@ -2421,7 +2421,7 @@ wMapObjectsEnd::
wObjectMasks:: ds NUM_OBJECTS ; d81e wObjectMasks:: ds NUM_OBJECTS ; d81e
wVariableSprites:: ds 16; d82e wVariableSprites:: ds $100 - SPRITE_VARS ; d82e
wEnteredMapFromContinue:: db ; d83e wEnteredMapFromContinue:: db ; d83e
ds 2 ds 2