facing structs and other movement stuff

This commit is contained in:
yenatch
2013-11-28 00:54:43 -05:00
parent 7d2b45cc3d
commit ddfda26725

447
main.asm
View File

@@ -3455,255 +3455,277 @@ PushOAMEnd
; 4049 ; 4049
DataPointers4049: ; 4049 Facings: ; 4049
dw Data408b dw Facing00
dw Data409c dw Facing01
dw Data408b dw Facing02
dw Data40ad dw Facing03
dw Data40be dw Facing04
dw Data40cf dw Facing05
dw Data40be dw Facing06
dw Data40e0 dw Facing07
dw Data40f1 dw Facing08
dw Data4113 dw Facing09
dw Data40f1 dw Facing10
dw Data4113 dw Facing11
dw Data4102 dw Facing12
dw Data4124 dw Facing13
dw Data4102 dw Facing14
dw Data4124 dw Facing15
dw Data4135 dw Facing16
dw Data414a dw Facing17
dw Data415f dw Facing18
dw Data4174 dw Facing19
dw Data4189 dw Facing20
dw Data419a dw Facing21
dw Data4206 dw Facing22
dw Data41a3 dw Facing23
dw Data408b dw Facing24
dw Data41e4 dw Facing25
dw Data408b dw Facing26
dw Data41f5 dw Facing27
dw Data423f dw Facing28
dw Data4250 dw Facing29
dw Data4261 dw Facing30
dw Data426a dw Facing31
dw $0000 FacingsEnd: dw 0
; 408b
Data408b: ; 408b NUM_FACINGS EQU (FacingsEnd - Facings) / 2
; Tables used as a reference to transform OAM data.
; Format:
; db y, x, attributes, tile index
; Attributes:
X_FLIP EQU 1 << 5
Y_FLIP EQU 1 << 6
BEHIND_BG EQU 1 << 7
Facing00:
Facing02:
Facing24:
Facing26: ; 408b
db 4 ; # db 4 ; #
db $00, $00, $00, $00 db 0, 0, 0, $00
db $00, $08, $00, $01 db 0, 8, 0, $01
db $08, $00, $02, $02 db 8, 0, 2, $02
db $08, $08, $02, $03 db 8, 8, 2, $03
; 409c ; 409c
Data409c: ; 409c Facing01: ; 409c
db 4 ; # db 4 ; #
db $00, $00, $00, $80 db 0, 0, 0, $80
db $00, $08, $00, $81 db 0, 8, 0, $81
db $08, $00, $02, $82 db 8, 0, 2, $82
db $08, $08, $02, $83 db 8, 8, 2, $83
; 40ad ; 40ad
Data40ad: ; 40ad Facing03: ; 40ad
db 4 ; # db 4 ; #
db $00, $08, $20, $80 db 0, 8, X_FLIP, $80
db $00, $00, $20, $81 db 0, 0, X_FLIP, $81
db $08, $08, $22, $82 db 8, 8, 2 | X_FLIP, $82
db $08, $00, $22, $83 db 8, 0, 2 | X_FLIP, $83
; 40be ; 40be
Data40be: ; 40be Facing04:
Facing06: ; 40be
db 4 ; # db 4 ; #
db $00, $00, $00, $04 db 0, 0, 0, $04
db $00, $08, $00, $05 db 0, 8, 0, $05
db $08, $00, $02, $06 db 8, 0, 2, $06
db $08, $08, $02, $07 db 8, 8, 2, $07
; 40cf ; 40cf
Data40cf: ; 40cf Facing05: ; 40cf
db 4 ; # db 4 ; #
db $00, $00, $00, $84 db 0, 0, 0, $84
db $00, $08, $00, $85 db 0, 8, 0, $85
db $08, $00, $02, $86 db 8, 0, 2, $86
db $08, $08, $02, $87 db 8, 8, 2, $87
; 40e0 ; 40e0
Data40e0: ; 40e0 Facing07: ; 40e0
db 4 ; # db 4 ; #
db $00, $08, $20, $84 db 0, 8, X_FLIP, $84
db $00, $00, $20, $85 db 0, 0, X_FLIP, $85
db $08, $08, $22, $86 db 8, 8, 2 | X_FLIP, $86
db $08, $00, $22, $87 db 8, 0, 2 | X_FLIP, $87
; 40f1 ; 40f1
Data40f1: ; 40f1 Facing08:
Facing10: ; 40f1
db 4 ; # db 4 ; #
db $00, $00, $00, $08 db 0, 0, 0, $08
db $00, $08, $00, $09 db 0, 8, 0, $09
db $08, $00, $02, $0a db 8, 0, 2, $0a
db $08, $08, $02, $0b db 8, 8, 2, $0b
; 4102 ; 4102
Data4102: ; 4102 Facing12:
Facing14: ; 4102
db 4 ; # db 4 ; #
db $00, $08, $20, $08 db 0, 8, X_FLIP, $08
db $00, $00, $20, $09 db 0, 0, X_FLIP, $09
db $08, $08, $22, $0a db 8, 8, 2 | X_FLIP, $0a
db $08, $00, $22, $0b db 8, 0, 2 | X_FLIP, $0b
; 4113 ; 4113
Data4113: ; 4113 Facing09:
Facing11: ; 4113
db 4 ; # db 4 ; #
db $00, $00, $00, $88 db 0, 0, 0, $88
db $00, $08, $00, $89 db 0, 8, 0, $89
db $08, $00, $02, $8a db 8, 0, 2, $8a
db $08, $08, $02, $8b db 8, 8, 2, $8b
; 4124 ; 4124
Data4124: ; 4124 Facing13:
Facing15: ; 4124
db 4 ; # db 4 ; #
db $00, $08, $20, $88 db 0, 8, X_FLIP, $88
db $00, $00, $20, $89 db 0, 0, X_FLIP, $89
db $08, $08, $22, $8a db 8, 8, 2 | X_FLIP, $8a
db $08, $00, $22, $8b db 8, 0, 2 | X_FLIP, $8b
; 4135 ; 4135
Data4135: ; 4135 Facing16: ; 4135
db 5 ; # db 5 ; #
db $00, $00, $00, $00 db 0, 0, 0, $00
db $00, $08, $00, $01 db 0, 8, 0, $01
db $08, $00, $02, $02 db 8, 0, 2, $02
db $08, $08, $02, $03 db 8, 8, 2, $03
db $10, $00, $04, $fc db 16, 0, 4, $fc
; 414a ; 414a
Data414a: ; 414a Facing17: ; 414a
db 5 ; # db 5 ; #
db $00, $00, $00, $04 db 0, 0, 0, $04
db $00, $08, $00, $05 db 0, 8, 0, $05
db $08, $00, $02, $06 db 8, 0, 2, $06
db $08, $08, $02, $07 db 8, 8, 2, $07
db $f8, $00, $04, $fc db -8, 0, 4, $fc
; 415f ; 415f
Data415f: ; 415f Facing18: ; 415f
db 5 ; # db 5 ; #
db $00, $00, $00, $08 db 0, 0, 0, $08
db $00, $08, $00, $09 db 0, 8, 0, $09
db $08, $00, $02, $0a db 8, 0, 2, $0a
db $08, $08, $02, $0b db 8, 8, 2, $0b
db $05, $f8, $24, $fd db 5, -8, 4 | X_FLIP, $fd
; 4174 ; 4174
Data4174: ; 4174 Facing19: ; 4174
db 5 ; # db 5 ; #
db $00, $08, $20, $08 db 0, 8, X_FLIP, $08
db $00, $00, $20, $09 db 0, 0, X_FLIP, $09
db $08, $08, $22, $0a db 8, 8, 2 | X_FLIP, $0a
db $08, $00, $22, $0b db 8, 0, 2 | X_FLIP, $0b
db $05, $10, $04, $fd db 5, 16, 4, $fd
; 4189 ; 4189
Data4189: ; 4189 Facing20: ; 4189
db 4 ; # db 4 ; #
db $00, $00, $04, $f8 db 0, 0, 4, $f8
db $00, $08, $04, $f9 db 0, 8, 4, $f9
db $08, $00, $04, $fa db 8, 0, 4, $fa
db $08, $08, $04, $fb db 8, 8, 4, $fb
; 419a ; 419a
Data419a: ; 419a Facing21: ; 419a
db 2 ; # db 2 ; #
db $00, $00, $04, $fc db 0, 0, 4, $fc
db $00, $08, $24, $fc db 0, 8, 4 | X_FLIP, $fc
; 41a3 ; 41a3
Data41a3: ; 41a3 Facing23: ; 41a3
db 16 ; # db 16 ; #
db $00, $00, $00, $00 db 0, 0, 0, $00
db $00, $08, $00, $01 db 0, 8, 0, $01
db $08, $00, $00, $02 db 8, 0, 0, $02
db $08, $08, $00, $03 db 8, 8, 0, $03
db $10, $00, $00, $04 db 16, 0, 0, $04
db $10, $08, $00, $05 db 16, 8, 0, $05
db $18, $00, $00, $06 db 24, 0, 0, $06
db $18, $08, $00, $07 db 24, 8, 0, $07
db $00, $18, $20, $00 db 0, 24, X_FLIP, $00
db $00, $10, $20, $01 db 0, 16, X_FLIP, $01
db $08, $18, $20, $02 db 8, 24, X_FLIP, $02
db $08, $10, $20, $03 db 8, 16, X_FLIP, $03
db $10, $18, $20, $04 db 16, 24, X_FLIP, $04
db $10, $10, $20, $05 db 16, 16, X_FLIP, $05
db $18, $18, $20, $06 db 24, 24, X_FLIP, $06
db $18, $10, $20, $07 db 24, 16, X_FLIP, $07
; 41e4 ; 41e4
Data41e4: ; 41e4 Facing25: ; 41e4
db 4 ; # db 4 ; #
db $00, $00, $00, $04 db 0, 0, 0, $04
db $00, $08, $00, $05 db 0, 8, 0, $05
db $08, $00, $00, $06 db 8, 0, 0, $06
db $08, $08, $00, $07 db 8, 8, 0, $07
; 41f5 ; 41f5
Data41f5: ; 41f5 Facing27: ; 41f5
db 4 ; # db 4 ; #
db $00, $08, $20, $04 db 0, 8, X_FLIP, $04
db $00, $00, $20, $05 db 0, 0, X_FLIP, $05
db $08, $08, $20, $06 db 8, 8, X_FLIP, $06
db $08, $00, $20, $07 db 8, 0, X_FLIP, $07
; 4206 ; 4206
Data4206: ; 4206 Facing22: ; 4206
db 14 ; # db 14 ; #
db $00, $00, $00, $00 db 0, 0, 0, $00
db $00, $08, $00, $01 db 0, 8, 0, $01
db $08, $00, $00, $04 db 8, 0, 0, $04
db $08, $08, $00, $05 db 8, 8, 0, $05
db $10, $08, $00, $07 db 16, 8, 0, $07
db $18, $08, $00, $0a db 24, 8, 0, $0a
db $00, $18, $00, $03 db 0, 24, 0, $03
db $00, $10, $00, $02 db 0, 16, 0, $02
db $08, $18, $20, $02 db 8, 24, X_FLIP, $02
db $08, $10, $00, $06 db 8, 16, 0, $06
db $10, $18, $00, $09 db 16, 24, 0, $09
db $10, $10, $00, $08 db 16, 16, 0, $08
db $18, $18, $20, $04 db 24, 24, X_FLIP, $04
db $18, $10, $00, $0b db 24, 16, 0, $0b
; 423f ; 423f
Data423f: ; 423f Facing28: ; 423f
db 4 ; # db 4 ; #
db $00, $00, $04, $fe db 0, 0, 4, $fe
db $00, $08, $04, $fe db 0, 8, 4, $fe
db $08, $00, $04, $fe db 8, 0, 4, $fe
db $08, $08, $04, $fe db 8, 8, 4, $fe
; 4250 ; 4250
Data4250: ; 4250 Facing29: ; 4250
db 4 ; # db 4 ; #
db $00, $00, $04, $ff db 0, 0, 4, $ff
db $00, $08, $04, $ff db 0, 8, 4, $ff
db $08, $00, $04, $ff db 8, 0, 4, $ff
db $08, $08, $04, $ff db 8, 8, 4, $ff
; 4261 ; 4261
Data4261: ; 4261 Facing30: ; 4261
db 2 ; # db 2 ; #
db $08, $00, $04, $fe db 8, 0, 4, $fe
db $08, $08, $24, $fe db 8, 8, 4 | X_FLIP, $fe
; 426a ; 426a
Data426a: ; 426a Facing31: ; 426a
db 2 ; # db 2 ; #
db $09, $ff, $04, $fe db 9, -1, 4, $fe
db $09, $09, $24, $fe db 9, 9, 4 | X_FLIP, $fe
; 4273 ; 4273
Data4273: ; 4273 Data4273: ; 4273
INCBIN "baserom.gbc",$4273,$4357 - $4273 INCBIN "baserom.gbc",$4273,$4357 - $4273
; 4357 ; 4357
@@ -4399,7 +4421,7 @@ Function46e9: ; 46e9
add a add a
ld l, a ld l, a
ld h, 0 ld h, 0
ld de, .Steps ld de, StepVectors
add hl, de add hl, de
ld d, [hl] ld d, [hl]
inc hl inc hl
@@ -4410,7 +4432,7 @@ Function46e9: ; 46e9
ret ret
; 4700 ; 4700
.Steps ; 4700 StepVectors: ; 4700
; x, y, duration, speed ; x, y, duration, speed
; slow ; slow
db 0, 1, $10, $01 db 0, 1, $10, $01
@@ -7142,56 +7164,62 @@ Function5a0d: ; 5a0d
ld a, [hl] ld a, [hl]
and $7f and $7f
ld [$ffc1], a ld [$ffc1], a
xor a xor a
bit 7, [hl] bit 7, [hl]
jr nz, .asm_5a1d jr nz, .asm_5a1d
or $8 or 8
.asm_5a1d .asm_5a1d
ld hl, $0005 ld hl, $0005
add hl, bc add hl, bc
ld e, [hl] ld e, [hl]
bit 7, e bit 7, e
jr z, .asm_5a28 jr z, .asm_5a28
or $80 or $80
.asm_5a28 .asm_5a28
bit 4, e bit 4, e
jr z, .asm_5a2e jr z, .asm_5a2e
or $10 or $10
.asm_5a2e .asm_5a2e
ld hl, $0006 ld hl, $0006
add hl, bc add hl, bc
ld d, a ld d, a
ld a, [hl] ld a, [hl]
and $7 and 7
or d or d
ld d, a ld d, a
xor a xor a
bit 3, e bit 3, e
jr z, .asm_5a3f jr z, .asm_5a3f
or $80 or $80
.asm_5a3f .asm_5a3f
ld [$ffc2], a ld [$ffc2], a
ld hl, $0017 ld hl, $0017
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
ld hl, $0019 ld hl, $0019
add hl, bc add hl, bc
add [hl] add [hl]
add $8 add 8
ld e, a ld e, a
ld a, [$d14c] ld a, [$d14c]
add e add e
ld [$ffbf], a ld [$ffbf], a
ld hl, $0018 ld hl, $0018
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
ld hl, $001a ld hl, $001a
add hl, bc add hl, bc
add [hl] add [hl]
add $c add $c
ld e, a ld e, a
ld a, [$d14d] ld a, [$d14d]
@@ -7201,15 +7229,15 @@ Function5a0d: ; 5a0d
ld hl, $000d ld hl, $000d
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
cp $ff cp -1
jp z, .asm_5abe jp z, .done
cp $20 cp NUM_FACINGS
jp nc, .asm_5abe jp nc, .done
ld l, a ld l, a
ld h, 0 ld h, 0
add hl, hl add hl, hl
ld bc, DataPointers4049 ld bc, Facings
add hl, bc add hl, bc
ld a, [hli] ld a, [hli]
ld h, [hl] ld h, [hl]
@@ -7224,19 +7252,24 @@ Function5a0d: ; 5a0d
cp SpritesEnd % $100 cp SpritesEnd % $100
jr nc, .full jr nc, .full
.loop .addsprite
ld a, [$ffc0] ld a, [$ffc0]
add [hl] add [hl]
inc hl inc hl
ld [bc], a ld [bc], a
inc c inc c
ld a, [$ffbf] ld a, [$ffbf]
add [hl] add [hl]
inc hl inc hl
ld [bc], a ld [bc], a
inc c inc c
ld e, [hl] ld e, [hl]
inc hl inc hl
ld a, [$ffc1] ld a, [$ffc1]
bit 2, e bit 2, e
jr z, .asm_5aa3 jr z, .asm_5aa3
@@ -7244,8 +7277,10 @@ Function5a0d: ; 5a0d
.asm_5aa3 .asm_5aa3
add [hl] add [hl]
inc hl inc hl
ld [bc], a ld [bc], a
inc c inc c
ld a, e ld a, e
bit 1, a bit 1, a
jr z, .asm_5aaf jr z, .asm_5aaf
@@ -7256,15 +7291,16 @@ Function5a0d: ; 5a0d
or d or d
ld [bc], a ld [bc], a
inc c inc c
ld a, [$ffbe] ld a, [$ffbe]
dec a dec a
ld [$ffbe], a ld [$ffbe], a
jr nz, .loop jr nz, .addsprite
ld a, c ld a, c
ld [$ffbd], a ld [$ffbd], a
.asm_5abe .done
xor a xor a
ret ret
@@ -7286,21 +7322,22 @@ Function5ac2: ; 5ac2
; 5ace ; 5ace
.Addresses ; 5ace .Addresses ; 5ace
dw $d4d6 dw PlayerStruct
dw $d4fe dw ObjectStruct1
dw $d526 dw ObjectStruct2
dw $d54e dw ObjectStruct3
dw $d576 dw ObjectStruct4
dw $d59e dw ObjectStruct5
dw $d5c6 dw ObjectStruct6
dw $d5ee dw ObjectStruct7
dw $d616 dw ObjectStruct8
dw $d63e dw ObjectStruct9
dw $d666 dw ObjectStruct10
dw $d68e dw ObjectStruct11
dw $d6b6 dw ObjectStruct12
; 5ae8 ; 5ae8
Function5ae8: ; 5ae8 Function5ae8: ; 5ae8
ld de, MUSIC_NONE ld de, MUSIC_NONE
call PlayMusic call PlayMusic