mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-11-14 00:56:40 +13:00
EOL Windows->UNIX
This commit is contained in:
parent
1a69d6b888
commit
08b939375e
|
|
@ -1,5 +1,5 @@
|
||||||
; connection directions
|
; connection directions
|
||||||
EAST EQU 1
|
EAST EQU 1
|
||||||
WEST EQU 2
|
WEST EQU 2
|
||||||
SOUTH EQU 4
|
SOUTH EQU 4
|
||||||
NORTH EQU 8
|
NORTH EQU 8
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
; Evolution types
|
; Evolution types
|
||||||
EV_LEVEL EQU 1
|
EV_LEVEL EQU 1
|
||||||
EV_ITEM EQU 2
|
EV_ITEM EQU 2
|
||||||
EV_TRADE EQU 3
|
EV_TRADE EQU 3
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
; list menu ID's
|
; list menu ID's
|
||||||
PCPOKEMONLISTMENU EQU $00 ; PC pokemon withdraw/deposit lists
|
PCPOKEMONLISTMENU EQU $00 ; PC pokemon withdraw/deposit lists
|
||||||
MOVESLISTMENU EQU $01 ; XXX where is this used?
|
MOVESLISTMENU EQU $01 ; XXX where is this used?
|
||||||
PRICEDITEMLISTMENU EQU $02 ; Pokemart buy menu / Pokemart buy/sell choose quantity menu
|
PRICEDITEMLISTMENU EQU $02 ; Pokemart buy menu / Pokemart buy/sell choose quantity menu
|
||||||
ITEMLISTMENU EQU $03 ; Start menu Item menu / Pokemart sell menu
|
ITEMLISTMENU EQU $03 ; Start menu Item menu / Pokemart sell menu
|
||||||
SPECIALLISTMENU EQU $04 ; list of special "items" e.g. floor list in elevators / list of badges
|
SPECIALLISTMENU EQU $04 ; list of special "items" e.g. floor list in elevators / list of badges
|
||||||
|
|
||||||
MONSTER_NAME EQU 1
|
MONSTER_NAME EQU 1
|
||||||
MOVE_NAME EQU 2
|
MOVE_NAME EQU 2
|
||||||
; ???_NAME EQU 3
|
; ???_NAME EQU 3
|
||||||
ITEM_NAME EQU 4
|
ITEM_NAME EQU 4
|
||||||
PLAYEROT_NAME EQU 5
|
PLAYEROT_NAME EQU 5
|
||||||
ENEMYOT_NAME EQU 6
|
ENEMYOT_NAME EQU 6
|
||||||
TRAINER_NAME EQU 7
|
TRAINER_NAME EQU 7
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
; OAM flags used by this game
|
; OAM flags used by this game
|
||||||
OAMFLAG_ENDOFDATA EQU %00000001 ; pseudo OAM flag, only used by game logic
|
OAMFLAG_ENDOFDATA EQU %00000001 ; pseudo OAM flag, only used by game logic
|
||||||
OAMFLAG_CANBEMASKED EQU %00000010 ; pseudo OAM flag, only used by game logic
|
OAMFLAG_CANBEMASKED EQU %00000010 ; pseudo OAM flag, only used by game logic
|
||||||
OAMFLAG_VFLIPPED EQU %00100000 ; OAM flag flips the sprite vertically.
|
OAMFLAG_VFLIPPED EQU %00100000 ; OAM flag flips the sprite vertically.
|
||||||
; Used for making left facing sprites face right and to alternate between left and right foot animation when walking up or down
|
; Used for making left facing sprites face right and to alternate between left and right foot animation when walking up or down
|
||||||
|
|
||||||
; OAM attribute flags
|
; OAM attribute flags
|
||||||
OAM_HFLIP EQU %00100000 ; horizontal flip
|
OAM_HFLIP EQU %00100000 ; horizontal flip
|
||||||
OAM_VFLIP EQU %01000000 ; vertical flip
|
OAM_VFLIP EQU %01000000 ; vertical flip
|
||||||
|
|
|
||||||
|
|
@ -1,97 +1,97 @@
|
||||||
; pokemon's overworld sprites
|
; pokemon's overworld sprites
|
||||||
SPRITE_MON EQU $0
|
SPRITE_MON EQU $0
|
||||||
SPRITE_BALL_M EQU $1
|
SPRITE_BALL_M EQU $1
|
||||||
SPRITE_HELIX EQU $2
|
SPRITE_HELIX EQU $2
|
||||||
SPRITE_FAIRY EQU $3
|
SPRITE_FAIRY EQU $3
|
||||||
SPRITE_BIRD_M EQU $4
|
SPRITE_BIRD_M EQU $4
|
||||||
SPRITE_WATER EQU $5
|
SPRITE_WATER EQU $5
|
||||||
SPRITE_BUG EQU $6
|
SPRITE_BUG EQU $6
|
||||||
SPRITE_GRASS EQU $7
|
SPRITE_GRASS EQU $7
|
||||||
SPRITE_SNAKE EQU $8
|
SPRITE_SNAKE EQU $8
|
||||||
SPRITE_QUADRUPED EQU $9
|
SPRITE_QUADRUPED EQU $9
|
||||||
|
|
||||||
; overworld sprites
|
; overworld sprites
|
||||||
SPRITE_RED EQU $01
|
SPRITE_RED EQU $01
|
||||||
SPRITE_BLUE EQU $02
|
SPRITE_BLUE EQU $02
|
||||||
SPRITE_OAK EQU $03
|
SPRITE_OAK EQU $03
|
||||||
SPRITE_BUG_CATCHER EQU $04
|
SPRITE_BUG_CATCHER EQU $04
|
||||||
SPRITE_SLOWBRO EQU $05
|
SPRITE_SLOWBRO EQU $05
|
||||||
SPRITE_LASS EQU $06
|
SPRITE_LASS EQU $06
|
||||||
SPRITE_BLACK_HAIR_BOY_1 EQU $07
|
SPRITE_BLACK_HAIR_BOY_1 EQU $07
|
||||||
SPRITE_LITTLE_GIRL EQU $08
|
SPRITE_LITTLE_GIRL EQU $08
|
||||||
SPRITE_BIRD EQU $09
|
SPRITE_BIRD EQU $09
|
||||||
SPRITE_FAT_BALD_GUY EQU $0a
|
SPRITE_FAT_BALD_GUY EQU $0a
|
||||||
SPRITE_GAMBLER EQU $0b
|
SPRITE_GAMBLER EQU $0b
|
||||||
SPRITE_BLACK_HAIR_BOY_2 EQU $0c
|
SPRITE_BLACK_HAIR_BOY_2 EQU $0c
|
||||||
SPRITE_GIRL EQU $0d
|
SPRITE_GIRL EQU $0d
|
||||||
SPRITE_HIKER EQU $0e
|
SPRITE_HIKER EQU $0e
|
||||||
SPRITE_FOULARD_WOMAN EQU $0f
|
SPRITE_FOULARD_WOMAN EQU $0f
|
||||||
SPRITE_GENTLEMAN EQU $10
|
SPRITE_GENTLEMAN EQU $10
|
||||||
SPRITE_DAISY EQU $11
|
SPRITE_DAISY EQU $11
|
||||||
SPRITE_BIKER EQU $12
|
SPRITE_BIKER EQU $12
|
||||||
SPRITE_SAILOR EQU $13
|
SPRITE_SAILOR EQU $13
|
||||||
SPRITE_COOK EQU $14
|
SPRITE_COOK EQU $14
|
||||||
SPRITE_BIKE_SHOP_GUY EQU $15
|
SPRITE_BIKE_SHOP_GUY EQU $15
|
||||||
SPRITE_MR_FUJI EQU $16
|
SPRITE_MR_FUJI EQU $16
|
||||||
SPRITE_GIOVANNI EQU $17
|
SPRITE_GIOVANNI EQU $17
|
||||||
SPRITE_ROCKET EQU $18
|
SPRITE_ROCKET EQU $18
|
||||||
SPRITE_MEDIUM EQU $19
|
SPRITE_MEDIUM EQU $19
|
||||||
SPRITE_WAITER EQU $1a
|
SPRITE_WAITER EQU $1a
|
||||||
SPRITE_ERIKA EQU $1b
|
SPRITE_ERIKA EQU $1b
|
||||||
SPRITE_MOM_GEISHA EQU $1c
|
SPRITE_MOM_GEISHA EQU $1c
|
||||||
SPRITE_BRUNETTE_GIRL EQU $1d
|
SPRITE_BRUNETTE_GIRL EQU $1d
|
||||||
SPRITE_LANCE EQU $1e
|
SPRITE_LANCE EQU $1e
|
||||||
SPRITE_OAK_SCIENTIST_AIDE EQU $1f
|
SPRITE_OAK_SCIENTIST_AIDE EQU $1f
|
||||||
SPRITE_OAK_AIDE EQU $20
|
SPRITE_OAK_AIDE EQU $20
|
||||||
SPRITE_ROCKER EQU $21
|
SPRITE_ROCKER EQU $21
|
||||||
SPRITE_SWIMMER EQU $22
|
SPRITE_SWIMMER EQU $22
|
||||||
SPRITE_WHITE_PLAYER EQU $23
|
SPRITE_WHITE_PLAYER EQU $23
|
||||||
SPRITE_GYM_HELPER EQU $24
|
SPRITE_GYM_HELPER EQU $24
|
||||||
SPRITE_OLD_PERSON EQU $25
|
SPRITE_OLD_PERSON EQU $25
|
||||||
SPRITE_MART_GUY EQU $26
|
SPRITE_MART_GUY EQU $26
|
||||||
SPRITE_FISHER EQU $27
|
SPRITE_FISHER EQU $27
|
||||||
SPRITE_OLD_MEDIUM_WOMAN EQU $28
|
SPRITE_OLD_MEDIUM_WOMAN EQU $28
|
||||||
SPRITE_NURSE EQU $29
|
SPRITE_NURSE EQU $29
|
||||||
SPRITE_CABLE_CLUB_WOMAN EQU $2a
|
SPRITE_CABLE_CLUB_WOMAN EQU $2a
|
||||||
SPRITE_MR_MASTERBALL EQU $2b
|
SPRITE_MR_MASTERBALL EQU $2b
|
||||||
SPRITE_LAPRAS_GIVER EQU $2c
|
SPRITE_LAPRAS_GIVER EQU $2c
|
||||||
SPRITE_WARDEN EQU $2d
|
SPRITE_WARDEN EQU $2d
|
||||||
SPRITE_SS_CAPTAIN EQU $2e
|
SPRITE_SS_CAPTAIN EQU $2e
|
||||||
SPRITE_FISHER2 EQU $2f
|
SPRITE_FISHER2 EQU $2f
|
||||||
SPRITE_BLACKBELT EQU $30
|
SPRITE_BLACKBELT EQU $30
|
||||||
SPRITE_GUARD EQU $31
|
SPRITE_GUARD EQU $31
|
||||||
;SPRITE_COP_GUARD EQU $32
|
;SPRITE_COP_GUARD EQU $32
|
||||||
SPRITE_MOM EQU $33
|
SPRITE_MOM EQU $33
|
||||||
SPRITE_BALDING_GUY EQU $34
|
SPRITE_BALDING_GUY EQU $34
|
||||||
SPRITE_YOUNG_BOY EQU $35
|
SPRITE_YOUNG_BOY EQU $35
|
||||||
SPRITE_GAMEBOY_KID EQU $36
|
SPRITE_GAMEBOY_KID EQU $36
|
||||||
SPRITE_GAMEBOY_KID_COPY EQU $37
|
SPRITE_GAMEBOY_KID_COPY EQU $37
|
||||||
SPRITE_CLEFAIRY EQU $38
|
SPRITE_CLEFAIRY EQU $38
|
||||||
SPRITE_AGATHA EQU $39
|
SPRITE_AGATHA EQU $39
|
||||||
SPRITE_BRUNO EQU $3a
|
SPRITE_BRUNO EQU $3a
|
||||||
SPRITE_LORELEI EQU $3b
|
SPRITE_LORELEI EQU $3b
|
||||||
SPRITE_SEEL EQU $3c
|
SPRITE_SEEL EQU $3c
|
||||||
SPRITE_BALL EQU $3d
|
SPRITE_BALL EQU $3d
|
||||||
SPRITE_OMANYTE EQU $3e
|
SPRITE_OMANYTE EQU $3e
|
||||||
SPRITE_BOULDER EQU $3f
|
SPRITE_BOULDER EQU $3f
|
||||||
SPRITE_PAPER_SHEET EQU $40
|
SPRITE_PAPER_SHEET EQU $40
|
||||||
SPRITE_BOOK_MAP_DEX EQU $41
|
SPRITE_BOOK_MAP_DEX EQU $41
|
||||||
SPRITE_CLIPBOARD EQU $42
|
SPRITE_CLIPBOARD EQU $42
|
||||||
SPRITE_SNORLAX EQU $43
|
SPRITE_SNORLAX EQU $43
|
||||||
SPRITE_OLD_AMBER_COPY EQU $44
|
SPRITE_OLD_AMBER_COPY EQU $44
|
||||||
SPRITE_OLD_AMBER EQU $45
|
SPRITE_OLD_AMBER EQU $45
|
||||||
SPRITE_LYING_OLD_MAN_UNUSED_1 EQU $46
|
SPRITE_LYING_OLD_MAN_UNUSED_1 EQU $46
|
||||||
SPRITE_LYING_OLD_MAN_UNUSED_2 EQU $47
|
SPRITE_LYING_OLD_MAN_UNUSED_2 EQU $47
|
||||||
SPRITE_LYING_OLD_MAN EQU $48
|
SPRITE_LYING_OLD_MAN EQU $48
|
||||||
|
|
||||||
; different kinds of people events
|
; different kinds of people events
|
||||||
ITEM EQU $80
|
ITEM EQU $80
|
||||||
TRAINER EQU $40
|
TRAINER EQU $40
|
||||||
|
|
||||||
BOULDER_MOVEMENT_BYTE_2 EQU $10
|
BOULDER_MOVEMENT_BYTE_2 EQU $10
|
||||||
|
|
||||||
; sprite facing directions
|
; sprite facing directions
|
||||||
SPRITE_FACING_DOWN EQU $00
|
SPRITE_FACING_DOWN EQU $00
|
||||||
SPRITE_FACING_UP EQU $04
|
SPRITE_FACING_UP EQU $04
|
||||||
SPRITE_FACING_LEFT EQU $08
|
SPRITE_FACING_LEFT EQU $08
|
||||||
SPRITE_FACING_RIGHT EQU $0C
|
SPRITE_FACING_RIGHT EQU $0C
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,32 @@
|
||||||
; non-volatile statuses
|
; non-volatile statuses
|
||||||
SLP EQU %111 ; sleep counter
|
SLP EQU %111 ; sleep counter
|
||||||
PSN EQU 3
|
PSN EQU 3
|
||||||
BRN EQU 4
|
BRN EQU 4
|
||||||
FRZ EQU 5
|
FRZ EQU 5
|
||||||
PAR EQU 6
|
PAR EQU 6
|
||||||
|
|
||||||
; volatile statuses 1
|
; volatile statuses 1
|
||||||
StoringEnergy EQU 0 ; Bide
|
StoringEnergy EQU 0 ; Bide
|
||||||
ThrashingAbout EQU 1 ; e.g. Thrash
|
ThrashingAbout EQU 1 ; e.g. Thrash
|
||||||
AttackingMultipleTimes EQU 2 ; e.g. Double Kick, Fury Attack
|
AttackingMultipleTimes EQU 2 ; e.g. Double Kick, Fury Attack
|
||||||
Flinched EQU 3
|
Flinched EQU 3
|
||||||
ChargingUp EQU 4 ; e.g. Solar Beam, Fly
|
ChargingUp EQU 4 ; e.g. Solar Beam, Fly
|
||||||
UsingTrappingMove EQU 5 ; e.g. Wrap
|
UsingTrappingMove EQU 5 ; e.g. Wrap
|
||||||
Invulnerable EQU 6 ; charging up Fly/Dig
|
Invulnerable EQU 6 ; charging up Fly/Dig
|
||||||
Confused EQU 7
|
Confused EQU 7
|
||||||
|
|
||||||
; volatile statuses 2
|
; volatile statuses 2
|
||||||
UsingXAccuracy EQU 0
|
UsingXAccuracy EQU 0
|
||||||
ProtectedByMist EQU 1
|
ProtectedByMist EQU 1
|
||||||
GettingPumped EQU 2 ; Focus Energy
|
GettingPumped EQU 2 ; Focus Energy
|
||||||
; EQU 3 ; unused?
|
; EQU 3 ; unused?
|
||||||
HasSubstituteUp EQU 4
|
HasSubstituteUp EQU 4
|
||||||
NeedsToRecharge EQU 5 ; Hyper Beam
|
NeedsToRecharge EQU 5 ; Hyper Beam
|
||||||
UsingRage EQU 6
|
UsingRage EQU 6
|
||||||
Seeded EQU 7
|
Seeded EQU 7
|
||||||
|
|
||||||
; volatile statuses 3
|
; volatile statuses 3
|
||||||
BadlyPoisoned EQU 0
|
BadlyPoisoned EQU 0
|
||||||
HasLightScreenUp EQU 1
|
HasLightScreenUp EQU 1
|
||||||
HasReflectUp EQU 2
|
HasReflectUp EQU 2
|
||||||
Transformed EQU 3
|
Transformed EQU 3
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
; Elemental types
|
; Elemental types
|
||||||
NORMAL EQU $00
|
NORMAL EQU $00
|
||||||
FIGHTING EQU $01
|
FIGHTING EQU $01
|
||||||
FLYING EQU $02
|
FLYING EQU $02
|
||||||
POISON EQU $03
|
POISON EQU $03
|
||||||
GROUND EQU $04
|
GROUND EQU $04
|
||||||
ROCK EQU $05
|
ROCK EQU $05
|
||||||
BUG EQU $07
|
BUG EQU $07
|
||||||
GHOST EQU $08
|
GHOST EQU $08
|
||||||
FIRE EQU $14
|
FIRE EQU $14
|
||||||
WATER EQU $15
|
WATER EQU $15
|
||||||
GRASS EQU $16
|
GRASS EQU $16
|
||||||
ELECTRIC EQU $17
|
ELECTRIC EQU $17
|
||||||
PSYCHIC EQU $18
|
PSYCHIC EQU $18
|
||||||
ICE EQU $19
|
ICE EQU $19
|
||||||
DRAGON EQU $1A
|
DRAGON EQU $1A
|
||||||
|
|
|
||||||
624
home/serial.asm
624
home/serial.asm
|
|
@ -1,312 +1,312 @@
|
||||||
Serial:: ; 2125 (0:2125)
|
Serial:: ; 2125 (0:2125)
|
||||||
push af
|
push af
|
||||||
push bc
|
push bc
|
||||||
push de
|
push de
|
||||||
push hl
|
push hl
|
||||||
ld a, [hSerialConnectionStatus]
|
ld a, [hSerialConnectionStatus]
|
||||||
inc a
|
inc a
|
||||||
jr z, .connectionNotYetEstablished
|
jr z, .connectionNotYetEstablished
|
||||||
ld a, [rSB]
|
ld a, [rSB]
|
||||||
ld [hSerialReceiveData], a
|
ld [hSerialReceiveData], a
|
||||||
ld a, [hSerialSendData]
|
ld a, [hSerialSendData]
|
||||||
ld [rSB], a
|
ld [rSB], a
|
||||||
ld a, [hSerialConnectionStatus]
|
ld a, [hSerialConnectionStatus]
|
||||||
cp USING_INTERNAL_CLOCK
|
cp USING_INTERNAL_CLOCK
|
||||||
jr z, .done
|
jr z, .done
|
||||||
; using external clock
|
; using external clock
|
||||||
ld a, START_TRANSFER_EXTERNAL_CLOCK
|
ld a, START_TRANSFER_EXTERNAL_CLOCK
|
||||||
ld [rSC], a
|
ld [rSC], a
|
||||||
jr .done
|
jr .done
|
||||||
.connectionNotYetEstablished
|
.connectionNotYetEstablished
|
||||||
ld a, [rSB]
|
ld a, [rSB]
|
||||||
ld [hSerialReceiveData], a
|
ld [hSerialReceiveData], a
|
||||||
ld [hSerialConnectionStatus], a
|
ld [hSerialConnectionStatus], a
|
||||||
cp USING_INTERNAL_CLOCK
|
cp USING_INTERNAL_CLOCK
|
||||||
jr z, .usingInternalClock
|
jr z, .usingInternalClock
|
||||||
; using external clock
|
; using external clock
|
||||||
xor a
|
xor a
|
||||||
ld [rSB], a
|
ld [rSB], a
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ld [rDIV], a
|
ld [rDIV], a
|
||||||
.waitLoop
|
.waitLoop
|
||||||
ld a, [rDIV]
|
ld a, [rDIV]
|
||||||
bit 7, a
|
bit 7, a
|
||||||
jr nz, .waitLoop
|
jr nz, .waitLoop
|
||||||
ld a, START_TRANSFER_EXTERNAL_CLOCK
|
ld a, START_TRANSFER_EXTERNAL_CLOCK
|
||||||
ld [rSC], a
|
ld [rSC], a
|
||||||
jr .done
|
jr .done
|
||||||
.usingInternalClock
|
.usingInternalClock
|
||||||
xor a
|
xor a
|
||||||
ld [rSB], a
|
ld [rSB], a
|
||||||
.done
|
.done
|
||||||
ld a, $1
|
ld a, $1
|
||||||
ld [hSerialReceivedNewData], a
|
ld [hSerialReceivedNewData], a
|
||||||
ld a, SERIAL_NO_DATA_BYTE
|
ld a, SERIAL_NO_DATA_BYTE
|
||||||
ld [hSerialSendData], a
|
ld [hSerialSendData], a
|
||||||
pop hl
|
pop hl
|
||||||
pop de
|
pop de
|
||||||
pop bc
|
pop bc
|
||||||
pop af
|
pop af
|
||||||
reti
|
reti
|
||||||
|
|
||||||
; hl = send data
|
; hl = send data
|
||||||
; de = receive data
|
; de = receive data
|
||||||
; bc = length of data
|
; bc = length of data
|
||||||
Serial_ExchangeBytes:: ; 216f (0:216f)
|
Serial_ExchangeBytes:: ; 216f (0:216f)
|
||||||
ld a, 1
|
ld a, 1
|
||||||
ld [hSerialIgnoringInitialData], a
|
ld [hSerialIgnoringInitialData], a
|
||||||
.loop
|
.loop
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld [hSerialSendData], a
|
ld [hSerialSendData], a
|
||||||
call Serial_ExchangeByte
|
call Serial_ExchangeByte
|
||||||
push bc
|
push bc
|
||||||
ld b, a
|
ld b, a
|
||||||
inc hl
|
inc hl
|
||||||
ld a, 48
|
ld a, 48
|
||||||
.waitLoop
|
.waitLoop
|
||||||
dec a
|
dec a
|
||||||
jr nz, .waitLoop
|
jr nz, .waitLoop
|
||||||
ld a, [hSerialIgnoringInitialData]
|
ld a, [hSerialIgnoringInitialData]
|
||||||
and a
|
and a
|
||||||
ld a, b
|
ld a, b
|
||||||
pop bc
|
pop bc
|
||||||
jr z, .storeReceivedByte
|
jr z, .storeReceivedByte
|
||||||
dec hl
|
dec hl
|
||||||
cp SERIAL_PREAMBLE_BYTE
|
cp SERIAL_PREAMBLE_BYTE
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
xor a
|
xor a
|
||||||
ld [hSerialIgnoringInitialData], a
|
ld [hSerialIgnoringInitialData], a
|
||||||
jr .loop
|
jr .loop
|
||||||
.storeReceivedByte
|
.storeReceivedByte
|
||||||
ld [de], a
|
ld [de], a
|
||||||
inc de
|
inc de
|
||||||
dec bc
|
dec bc
|
||||||
ld a, b
|
ld a, b
|
||||||
or c
|
or c
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Serial_ExchangeByte:: ; 219a (0:219a)
|
Serial_ExchangeByte:: ; 219a (0:219a)
|
||||||
xor a
|
xor a
|
||||||
ld [hSerialReceivedNewData], a
|
ld [hSerialReceivedNewData], a
|
||||||
ld a, [hSerialConnectionStatus]
|
ld a, [hSerialConnectionStatus]
|
||||||
cp USING_INTERNAL_CLOCK
|
cp USING_INTERNAL_CLOCK
|
||||||
jr nz, .asm_21a7
|
jr nz, .asm_21a7
|
||||||
ld a, START_TRANSFER_INTERNAL_CLOCK
|
ld a, START_TRANSFER_INTERNAL_CLOCK
|
||||||
ld [rSC], a
|
ld [rSC], a
|
||||||
.asm_21a7
|
.asm_21a7
|
||||||
ld a, [hSerialReceivedNewData]
|
ld a, [hSerialReceivedNewData]
|
||||||
and a
|
and a
|
||||||
jr nz, .asm_21f1
|
jr nz, .asm_21f1
|
||||||
ld a, [hSerialConnectionStatus]
|
ld a, [hSerialConnectionStatus]
|
||||||
cp USING_EXTERNAL_CLOCK
|
cp USING_EXTERNAL_CLOCK
|
||||||
jr nz, .asm_21cc
|
jr nz, .asm_21cc
|
||||||
call IsUnknownCounterZero
|
call IsUnknownCounterZero
|
||||||
jr z, .asm_21cc
|
jr z, .asm_21cc
|
||||||
call WaitLoop_15Iterations
|
call WaitLoop_15Iterations
|
||||||
push hl
|
push hl
|
||||||
ld hl, wUnknownSerialCounter + 1
|
ld hl, wUnknownSerialCounter + 1
|
||||||
inc [hl]
|
inc [hl]
|
||||||
jr nz, .asm_21c3
|
jr nz, .asm_21c3
|
||||||
dec hl
|
dec hl
|
||||||
inc [hl]
|
inc [hl]
|
||||||
.asm_21c3
|
.asm_21c3
|
||||||
pop hl
|
pop hl
|
||||||
call IsUnknownCounterZero
|
call IsUnknownCounterZero
|
||||||
jr nz, .asm_21a7
|
jr nz, .asm_21a7
|
||||||
jp SetUnknownCounterToFFFF
|
jp SetUnknownCounterToFFFF
|
||||||
.asm_21cc
|
.asm_21cc
|
||||||
ld a, [rIE]
|
ld a, [rIE]
|
||||||
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
|
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
|
||||||
cp (1 << SERIAL)
|
cp (1 << SERIAL)
|
||||||
jr nz, .asm_21a7
|
jr nz, .asm_21a7
|
||||||
ld a, [wUnknownSerialCounter2]
|
ld a, [wUnknownSerialCounter2]
|
||||||
dec a
|
dec a
|
||||||
ld [wUnknownSerialCounter2], a
|
ld [wUnknownSerialCounter2], a
|
||||||
jr nz, .asm_21a7
|
jr nz, .asm_21a7
|
||||||
ld a, [wUnknownSerialCounter2 + 1]
|
ld a, [wUnknownSerialCounter2 + 1]
|
||||||
dec a
|
dec a
|
||||||
ld [wUnknownSerialCounter2 + 1], a
|
ld [wUnknownSerialCounter2 + 1], a
|
||||||
jr nz, .asm_21a7
|
jr nz, .asm_21a7
|
||||||
ld a, [hSerialConnectionStatus]
|
ld a, [hSerialConnectionStatus]
|
||||||
cp USING_EXTERNAL_CLOCK
|
cp USING_EXTERNAL_CLOCK
|
||||||
jr z, .asm_21f1
|
jr z, .asm_21f1
|
||||||
ld a, 255
|
ld a, 255
|
||||||
.waitLoop
|
.waitLoop
|
||||||
dec a
|
dec a
|
||||||
jr nz, .waitLoop
|
jr nz, .waitLoop
|
||||||
.asm_21f1
|
.asm_21f1
|
||||||
xor a
|
xor a
|
||||||
ld [hSerialReceivedNewData], a
|
ld [hSerialReceivedNewData], a
|
||||||
ld a, [rIE]
|
ld a, [rIE]
|
||||||
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
|
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
|
||||||
sub (1 << SERIAL)
|
sub (1 << SERIAL)
|
||||||
jr nz, .asm_2204
|
jr nz, .asm_2204
|
||||||
ld [wUnknownSerialCounter2], a
|
ld [wUnknownSerialCounter2], a
|
||||||
ld a, $50
|
ld a, $50
|
||||||
ld [wUnknownSerialCounter2 + 1], a
|
ld [wUnknownSerialCounter2 + 1], a
|
||||||
.asm_2204
|
.asm_2204
|
||||||
ld a, [hSerialReceiveData]
|
ld a, [hSerialReceiveData]
|
||||||
cp SERIAL_NO_DATA_BYTE
|
cp SERIAL_NO_DATA_BYTE
|
||||||
ret nz
|
ret nz
|
||||||
call IsUnknownCounterZero
|
call IsUnknownCounterZero
|
||||||
jr z, .asm_221f
|
jr z, .asm_221f
|
||||||
push hl
|
push hl
|
||||||
ld hl, wUnknownSerialCounter + 1
|
ld hl, wUnknownSerialCounter + 1
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
dec a
|
dec a
|
||||||
ld [hld], a
|
ld [hld], a
|
||||||
inc a
|
inc a
|
||||||
jr nz, .asm_2219
|
jr nz, .asm_2219
|
||||||
dec [hl]
|
dec [hl]
|
||||||
.asm_2219
|
.asm_2219
|
||||||
pop hl
|
pop hl
|
||||||
call IsUnknownCounterZero
|
call IsUnknownCounterZero
|
||||||
jr z, SetUnknownCounterToFFFF
|
jr z, SetUnknownCounterToFFFF
|
||||||
.asm_221f
|
.asm_221f
|
||||||
ld a, [rIE]
|
ld a, [rIE]
|
||||||
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
|
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
|
||||||
cp (1 << SERIAL)
|
cp (1 << SERIAL)
|
||||||
ld a, SERIAL_NO_DATA_BYTE
|
ld a, SERIAL_NO_DATA_BYTE
|
||||||
ret z
|
ret z
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld [hSerialSendData], a
|
ld [hSerialSendData], a
|
||||||
call DelayFrame
|
call DelayFrame
|
||||||
jp Serial_ExchangeByte
|
jp Serial_ExchangeByte
|
||||||
|
|
||||||
WaitLoop_15Iterations:: ; 2231 (0:2231)
|
WaitLoop_15Iterations:: ; 2231 (0:2231)
|
||||||
ld a, 15
|
ld a, 15
|
||||||
.waitLoop
|
.waitLoop
|
||||||
dec a
|
dec a
|
||||||
jr nz, .waitLoop
|
jr nz, .waitLoop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
IsUnknownCounterZero:: ; 2237 (0:2237)
|
IsUnknownCounterZero:: ; 2237 (0:2237)
|
||||||
push hl
|
push hl
|
||||||
ld hl, wUnknownSerialCounter
|
ld hl, wUnknownSerialCounter
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
or [hl]
|
or [hl]
|
||||||
pop hl
|
pop hl
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; a is always 0 when this is called
|
; a is always 0 when this is called
|
||||||
SetUnknownCounterToFFFF:: ; 223f (0:223f)
|
SetUnknownCounterToFFFF:: ; 223f (0:223f)
|
||||||
dec a
|
dec a
|
||||||
ld [wUnknownSerialCounter], a
|
ld [wUnknownSerialCounter], a
|
||||||
ld [wUnknownSerialCounter + 1], a
|
ld [wUnknownSerialCounter + 1], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; This is used to exchange the button press and selected menu item on the link menu.
|
; This is used to exchange the button press and selected menu item on the link menu.
|
||||||
; The data is sent thrice and read twice to increase reliability.
|
; The data is sent thrice and read twice to increase reliability.
|
||||||
Serial_ExchangeLinkMenuSelection:: ; 2247 (0:2247)
|
Serial_ExchangeLinkMenuSelection:: ; 2247 (0:2247)
|
||||||
ld hl, wLinkMenuSelectionSendBuffer
|
ld hl, wLinkMenuSelectionSendBuffer
|
||||||
ld de, wLinkMenuSelectionReceiveBuffer
|
ld de, wLinkMenuSelectionReceiveBuffer
|
||||||
ld c, 2 ; number of bytes to save
|
ld c, 2 ; number of bytes to save
|
||||||
ld a, 1
|
ld a, 1
|
||||||
ld [hSerialIgnoringInitialData], a
|
ld [hSerialIgnoringInitialData], a
|
||||||
.loop
|
.loop
|
||||||
call DelayFrame
|
call DelayFrame
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld [hSerialSendData], a
|
ld [hSerialSendData], a
|
||||||
call Serial_ExchangeByte
|
call Serial_ExchangeByte
|
||||||
ld b, a
|
ld b, a
|
||||||
inc hl
|
inc hl
|
||||||
ld a, [hSerialIgnoringInitialData]
|
ld a, [hSerialIgnoringInitialData]
|
||||||
and a
|
and a
|
||||||
ld a, 0
|
ld a, 0
|
||||||
ld [hSerialIgnoringInitialData], a
|
ld [hSerialIgnoringInitialData], a
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
ld a, b
|
ld a, b
|
||||||
ld [de], a
|
ld [de], a
|
||||||
inc de
|
inc de
|
||||||
dec c
|
dec c
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Serial_PrintWaitingTextAndSyncAndExchangeNybble:: ; 226e (0:226e)
|
Serial_PrintWaitingTextAndSyncAndExchangeNybble:: ; 226e (0:226e)
|
||||||
call SaveScreenTilesToBuffer1
|
call SaveScreenTilesToBuffer1
|
||||||
callab PrintWaitingText
|
callab PrintWaitingText
|
||||||
call Serial_SyncAndExchangeNybble
|
call Serial_SyncAndExchangeNybble
|
||||||
jp LoadScreenTilesFromBuffer1
|
jp LoadScreenTilesFromBuffer1
|
||||||
|
|
||||||
Serial_SyncAndExchangeNybble:: ; 227f (0:227f)
|
Serial_SyncAndExchangeNybble:: ; 227f (0:227f)
|
||||||
ld a, $ff
|
ld a, $ff
|
||||||
ld [wSerialExchangeNybbleReceiveData], a
|
ld [wSerialExchangeNybbleReceiveData], a
|
||||||
.loop1
|
.loop1
|
||||||
call Serial_ExchangeNybble
|
call Serial_ExchangeNybble
|
||||||
call DelayFrame
|
call DelayFrame
|
||||||
call IsUnknownCounterZero
|
call IsUnknownCounterZero
|
||||||
jr z, .next1
|
jr z, .next1
|
||||||
push hl
|
push hl
|
||||||
ld hl, wUnknownSerialCounter + 1
|
ld hl, wUnknownSerialCounter + 1
|
||||||
dec [hl]
|
dec [hl]
|
||||||
jr nz, .next2
|
jr nz, .next2
|
||||||
dec hl
|
dec hl
|
||||||
dec [hl]
|
dec [hl]
|
||||||
jr nz, .next2
|
jr nz, .next2
|
||||||
pop hl
|
pop hl
|
||||||
xor a
|
xor a
|
||||||
jp SetUnknownCounterToFFFF
|
jp SetUnknownCounterToFFFF
|
||||||
.next2
|
.next2
|
||||||
pop hl
|
pop hl
|
||||||
.next1
|
.next1
|
||||||
ld a, [wSerialExchangeNybbleReceiveData]
|
ld a, [wSerialExchangeNybbleReceiveData]
|
||||||
inc a
|
inc a
|
||||||
jr z, .loop1
|
jr z, .loop1
|
||||||
ld b, 10
|
ld b, 10
|
||||||
.loop2
|
.loop2
|
||||||
call DelayFrame
|
call DelayFrame
|
||||||
call Serial_ExchangeNybble
|
call Serial_ExchangeNybble
|
||||||
dec b
|
dec b
|
||||||
jr nz, .loop2
|
jr nz, .loop2
|
||||||
ld b, 10
|
ld b, 10
|
||||||
.loop3
|
.loop3
|
||||||
call DelayFrame
|
call DelayFrame
|
||||||
call Serial_SendZeroByte
|
call Serial_SendZeroByte
|
||||||
dec b
|
dec b
|
||||||
jr nz, .loop3
|
jr nz, .loop3
|
||||||
ld a, [wSerialExchangeNybbleReceiveData]
|
ld a, [wSerialExchangeNybbleReceiveData]
|
||||||
ld [wSerialSyncAndExchangeNybbleReceiveData], a
|
ld [wSerialSyncAndExchangeNybbleReceiveData], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Serial_ExchangeNybble:: ; 22c3 (0:22c3)
|
Serial_ExchangeNybble:: ; 22c3 (0:22c3)
|
||||||
call .doExchange
|
call .doExchange
|
||||||
ld a, [wSerialExchangeNybbleSendData]
|
ld a, [wSerialExchangeNybbleSendData]
|
||||||
add $60
|
add $60
|
||||||
ld [hSerialSendData], a
|
ld [hSerialSendData], a
|
||||||
ld a, [hSerialConnectionStatus]
|
ld a, [hSerialConnectionStatus]
|
||||||
cp USING_INTERNAL_CLOCK
|
cp USING_INTERNAL_CLOCK
|
||||||
jr nz, .doExchange
|
jr nz, .doExchange
|
||||||
ld a, START_TRANSFER_INTERNAL_CLOCK
|
ld a, START_TRANSFER_INTERNAL_CLOCK
|
||||||
ld [rSC], a
|
ld [rSC], a
|
||||||
.doExchange
|
.doExchange
|
||||||
ld a, [hSerialReceiveData]
|
ld a, [hSerialReceiveData]
|
||||||
ld [wSerialExchangeNybbleTempReceiveData], a
|
ld [wSerialExchangeNybbleTempReceiveData], a
|
||||||
and $f0
|
and $f0
|
||||||
cp $60
|
cp $60
|
||||||
ret nz
|
ret nz
|
||||||
xor a
|
xor a
|
||||||
ld [hSerialReceiveData], a
|
ld [hSerialReceiveData], a
|
||||||
ld a, [wSerialExchangeNybbleTempReceiveData]
|
ld a, [wSerialExchangeNybbleTempReceiveData]
|
||||||
and $f
|
and $f
|
||||||
ld [wSerialExchangeNybbleReceiveData], a
|
ld [wSerialExchangeNybbleReceiveData], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Serial_SendZeroByte:: ; 22ed (0:22ed)
|
Serial_SendZeroByte:: ; 22ed (0:22ed)
|
||||||
xor a
|
xor a
|
||||||
ld [hSerialSendData], a
|
ld [hSerialSendData], a
|
||||||
ld a, [hSerialConnectionStatus]
|
ld a, [hSerialConnectionStatus]
|
||||||
cp USING_INTERNAL_CLOCK
|
cp USING_INTERNAL_CLOCK
|
||||||
ret nz
|
ret nz
|
||||||
ld a, START_TRANSFER_INTERNAL_CLOCK
|
ld a, START_TRANSFER_INTERNAL_CLOCK
|
||||||
ld [rSC], a
|
ld [rSC], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Serial_TryEstablishingExternallyClockedConnection:: ; 22fa (0:22fa)
|
Serial_TryEstablishingExternallyClockedConnection:: ; 22fa (0:22fa)
|
||||||
ld a, ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK
|
ld a, ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK
|
||||||
ld [rSB], a
|
ld [rSB], a
|
||||||
xor a
|
xor a
|
||||||
ld [hSerialReceiveData], a
|
ld [hSerialReceiveData], a
|
||||||
ld a, START_TRANSFER_EXTERNAL_CLOCK
|
ld a, START_TRANSFER_EXTERNAL_CLOCK
|
||||||
ld [rSC], a
|
ld [rSC], a
|
||||||
ret
|
ret
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue