pokecrystal/home.asm

300 lines
4.1 KiB
NASM
Raw Normal View History

2018-01-09 05:36:15 +00:00
INCLUDE "constants.asm"
2013-11-29 07:30:08 +00:00
2017-12-16 02:32:43 +00:00
SECTION "NULL", ROM0
NULL::
2013-11-29 07:30:08 +00:00
INCLUDE "home/rst.asm"
INCLUDE "home/interrupts.asm"
2013-11-29 07:30:08 +00:00
2017-12-16 02:32:43 +00:00
SECTION "Header", ROM0
2013-11-29 07:30:08 +00:00
Start::
2013-11-29 07:30:08 +00:00
nop
jp _Start
2017-12-16 02:32:43 +00:00
SECTION "Home", ROM0
2013-11-29 07:30:08 +00:00
INCLUDE "home/init.asm"
INCLUDE "home/vblank.asm"
INCLUDE "home/delay.asm"
INCLUDE "home/rtc.asm"
INCLUDE "home/fade.asm"
INCLUDE "home/lcd.asm"
INCLUDE "home/time.asm"
INCLUDE "home/serial.asm"
INCLUDE "home/joypad.asm"
INCLUDE "home/decompress.asm"
INCLUDE "home/palettes.asm"
INCLUDE "home/copy.asm"
INCLUDE "home/text.asm"
INCLUDE "home/video.asm"
INCLUDE "home/map_objects.asm"
INCLUDE "home/sine.asm"
INCLUDE "home/movement.asm"
INCLUDE "home/menu_window.asm"
2013-11-29 07:30:08 +00:00
INCLUDE "home/menu.asm"
INCLUDE "home/handshake.asm"
INCLUDE "home/game_time.asm"
INCLUDE "home/map.asm"
InexplicablyEmptyFunction:: ; 2d43
2018-01-02 17:49:25 +00:00
; unused
2013-11-29 07:30:08 +00:00
; Inexplicably empty.
; Seen in PredefPointers.
rept 16
2013-11-29 07:30:08 +00:00
nop
endr
2013-11-29 07:30:08 +00:00
ret
; 2d54
INCLUDE "home/farcall.asm"
INCLUDE "home/predef.asm"
INCLUDE "home/window.asm"
INCLUDE "home/flag.asm"
2018-01-02 15:04:21 +00:00
Unreferenced_Function2ebb:: ; 2ebb
ld a, [wMonStatusFlags]
2013-11-29 07:30:08 +00:00
bit 1, a
ret z
2015-09-09 23:27:07 +00:00
2013-11-29 07:30:08 +00:00
ld a, [hJoyDown]
bit B_BUTTON_F, a
2013-11-29 07:30:08 +00:00
ret
; 2ec6
xor_a:: ; 2ec6
2013-11-29 07:30:08 +00:00
xor a
ret
; 2ec8
xor_a_dec_a:: ; 2ec8
2013-11-29 07:30:08 +00:00
xor a
dec a
ret
; 2ecb
2018-01-02 15:04:21 +00:00
Unreferenced_Function2ecb:: ; 2ecb
2013-11-29 07:30:08 +00:00
push hl
ld hl, wMonStatusFlags
2013-11-29 07:30:08 +00:00
bit 1, [hl]
pop hl
ret
; 2ed3
INCLUDE "home/sprite_updates.asm"
2013-11-29 07:30:08 +00:00
INCLUDE "home/string.asm"
INCLUDE "home/region.asm"
2013-11-29 07:30:08 +00:00
2015-10-24 14:34:19 +00:00
ret_2f3e:: ; 2f3e
2013-11-29 07:30:08 +00:00
ret
; 2f3f
INCLUDE "home/item.asm"
INCLUDE "home/random.asm"
INCLUDE "home/sram.asm"
; Register aliases
_hl_:: ; 2fec
jp hl
2013-11-29 07:30:08 +00:00
; 2fed
_de_:: ; 2fed
2013-11-29 07:30:08 +00:00
push de
ret
; 2fef
INCLUDE "home/double_speed.asm"
INCLUDE "home/clear_sprites.asm"
2013-11-29 07:30:08 +00:00
INCLUDE "home/copy2.asm"
INCLUDE "home/copy_tilemap.asm"
INCLUDE "home/copy_name.asm"
2013-11-29 07:30:08 +00:00
IsInArray:: ; 30e1
2013-11-29 07:30:08 +00:00
; Find value a for every de bytes in array hl.
; Return index in b and carry if found.
ld b, 0
ld c, a
.loop
ld a, [hl]
cp -1
2013-11-29 07:30:08 +00:00
jr z, .NotInArray
cp c
jr z, .InArray
inc b
add hl, de
jr .loop
.NotInArray:
2013-11-29 07:30:08 +00:00
and a
ret
.InArray:
2013-11-29 07:30:08 +00:00
scf
ret
; 30f4
SkipNames:: ; 0x30f4
2014-05-21 20:21:46 +00:00
; Skip a names.
ld bc, NAME_LENGTH
2013-11-29 07:30:08 +00:00
and a
ret z
.loop
add hl, bc
dec a
jr nz, .loop
ret
; 0x30fe
INCLUDE "home/math.asm"
INCLUDE "home/print_text.asm"
2013-11-29 07:30:08 +00:00
CallPointerAt:: ; 31be
2013-11-29 07:30:08 +00:00
ld a, [hROMBank]
push af
ld a, [hli]
rst Bankswitch
ld a, [hli]
ld h, [hl]
ld l, a
call _hl_
pop hl
ld a, h
rst Bankswitch
ret
; 31cd
2015-11-01 17:44:30 +00:00
QueueScript:: ; 31cd
; Push pointer hl in the current bank to wQueuedScriptBank.
2013-11-29 07:30:08 +00:00
ld a, [hROMBank]
2015-11-01 17:44:30 +00:00
FarQueueScript:: ; 31cf
; Push pointer a:hl to wQueuedScriptBank.
ld [wQueuedScriptBank], a
2013-11-29 07:30:08 +00:00
ld a, l
2015-11-01 17:44:30 +00:00
ld [wQueuedScriptAddr], a
2013-11-29 07:30:08 +00:00
ld a, h
2015-11-01 17:44:30 +00:00
ld [wQueuedScriptAddr + 1], a
2013-11-29 07:30:08 +00:00
ret
; 31db
StringCmp:: ; 31db
2013-11-29 07:30:08 +00:00
; Compare c bytes at de and hl.
; Return z if they all match.
.loop
2013-11-29 07:30:08 +00:00
ld a, [de]
cp [hl]
ret nz
inc de
inc hl
dec c
jr nz, .loop
2013-11-29 07:30:08 +00:00
ret
; 0x31e4
CompareLong:: ; 31e4
2013-11-29 07:30:08 +00:00
; Compare bc bytes at de and hl.
; Return carry if they all match.
ld a, [de]
cp [hl]
jr nz, .Diff
inc de
inc hl
dec bc
ld a, b
or c
jr nz, CompareLong
scf
ret
.Diff:
2013-11-29 07:30:08 +00:00
and a
ret
; 31f3
INCLUDE "home/tilemap.asm"
2013-11-29 07:30:08 +00:00
SetHPPal:: ; 334e
2013-11-29 07:30:08 +00:00
; Set palette for hp bar pixel length e at hl.
call GetHPPal
ld [hl], d
ret
; 3353
GetHPPal:: ; 3353
2013-11-29 07:30:08 +00:00
; Get palette for hp bar pixel length e in d.
ld d, HP_GREEN
2013-11-29 07:30:08 +00:00
ld a, e
2016-05-27 14:41:59 +00:00
cp (50 * 48 / 100)
2013-11-29 07:30:08 +00:00
ret nc
inc d ; HP_YELLOW
2016-05-27 14:41:59 +00:00
cp (21 * 48 / 100)
2013-11-29 07:30:08 +00:00
ret nc
inc d ; HP_RED
2013-11-29 07:30:08 +00:00
ret
; 335f
CountSetBits:: ; 0x335f
2013-11-29 07:30:08 +00:00
; Count the number of set bits in b bytes starting from hl.
2015-02-10 23:14:41 +00:00
; Return in a, c and [wd265].
2013-11-29 07:30:08 +00:00
ld c, 0
.next
ld a, [hli]
ld e, a
ld d, 8
.count
srl e
ld a, 0
adc c
ld c, a
dec d
jr nz, .count
dec b
jr nz, .next
ld a, c
2015-02-10 23:14:41 +00:00
ld [wd265], a
2013-11-29 07:30:08 +00:00
ret
; 0x3376
GetWeekday:: ; 3376
2018-01-23 22:39:09 +00:00
ld a, [wCurDay]
2013-11-29 07:30:08 +00:00
.mod
sub 7
jr nc, .mod
add 7
ret
; 3380
INCLUDE "home/pokedex_flags.asm"
INCLUDE "home/names.asm"
INCLUDE "home/scrolling_menu.asm"
INCLUDE "home/stone_queue.asm"
INCLUDE "home/trainers.asm"
INCLUDE "home/mon_stats.asm"
2014-07-18 17:26:15 +00:00
INCLUDE "home/cry.asm"
INCLUDE "home/print_level.asm"
INCLUDE "home/mon_data.asm"
INCLUDE "home/print_bcd.asm"
INCLUDE "home/mon_data_2.asm"
INCLUDE "home/battle.asm"
INCLUDE "home/sprite_anims.asm"
INCLUDE "home/audio.asm"
INCLUDE "home/mobile.asm"