Merge pull request #244 from daid/master

This commit is contained in:
Pierre de La Morinerie 2020-05-20 11:24:51 +02:00 committed by GitHub
commit b3f8159a79
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 2124 additions and 822 deletions

View File

@ -4,45 +4,7 @@
; Contains pointers to wRequests data.
; (The requests themselves load data in bank 8.)
BGMapToLoadAdjustementTable::
dw $0000 ; disabled
dw BGCopyRequest01
dw BGCopyRequest02
dw BGCopyRequest03
dw BGCopyRequest04
dw BGCopyRequest05
dw BGCopyRequest06
dw $D651
dw BGCopyRequest08
dw BGCopyRequest09
dw BGCopyRequest0A
dw BGCopyRequest0B
dw BGCopyRequest0C
dw BGCopyRequest0D
dw BGCopyRequest0E
dw BGCopyRequest0F
dw BGCopyRequest10
dw BGCopyRequest11
dw BGCopyRequest12
dw BGCopyRequest13
dw BGCopyRequest14
dw BGCopyRequest15
dw BGCopyRequest16
dw BGCopyRequest17
dw BGCopyRequest18
dw BGCopyRequest19
dw BGCopyRequest1A
dw BGCopyRequest1B
dw BGCopyRequest1C
dw BGCopyRequest1D
dw BGCopyRequest1E
dw BGCopyRequest1F
dw BGCopyRequest20
dw BGCopyRequest21
dw BGCopyRequest22
dw BGCopyRequest23
dw BGCopyRequest24
dw BGCopyRequest25
include "data/backgrounds/background_tile_commands_pointers.asm"
; Retrieve the address of a wRequest for loading a given background.
; Input:
@ -50,7 +12,7 @@ BGMapToLoadAdjustementTable::
; Returns:
; de an address to a wRequest for loading BG data
GetBGCopyRequest::
ld hl, BGMapToLoadAdjustementTable ; $4577: $21 $2B $45
ld hl, BackgroundTileCommandsPointersTable ; $4577: $21 $2B $45
ld b, $00 ; $457A: $06 $00
ld a, [wBGMapToLoad] ; $457C: $FA $FF $D6
sla a ; $457F: $CB $27

View File

@ -4166,7 +4166,7 @@ func_018_5E5D::
and a ; $5E63: $A7
jr nz, jr_018_5E79 ; $5E64: $20 $13
ld a, $0A ; $5E66: $3E $0A
ld a, GAMEPLAY_WF_MURAL ; $5E66: $3E $0A
call func_018_4CB0 ; $5E68: $CD $B0 $4C
call GetEntityTransitionCountdown ; $5E6B: $CD $05 $0C
ld [hl], $20 ; $5E6E: $36 $20

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,40 @@
BackgroundTileCommandsPointersTable::
dw $0000
dw BackgroundTileCommands01 ; $56CC
dw BackgroundTileCommands02 ; $6748
dw BackgroundTileCommands03 ; $6336
dw BackgroundTileCommands04 ; $6328
dw BackgroundTileCommands05 ; $644D
dw BackgroundTileCommands06 ; $6589
dw $D651
dw BackgroundTileCommands08 ; $62E9
dw BackgroundTileCommands09 ; $67C9
dw BackgroundTileCommands0A ; $698F
dw BackgroundTileCommands0B ; $68F6
dw BackgroundTileCommands0C ; $6660
dw BackgroundTileCommands0D ; $6A6D
dw BackgroundTileCommands0E ; $6AEE
dw BackgroundTileCommands0F ; $6D80
dw BackgroundTileCommands10 ; $6F8B
dw BackgroundTileCommands11 ; $710A
dw BackgroundTileCommands12 ; $7422
dw BackgroundTileCommands13 ; $75E3
dw BackgroundTileCommands14 ; $62A8
dw BackgroundTileCommands15 ; $7283
dw BackgroundTileCommands16 ; $578C
dw BackgroundTileCommands17 ; $5AF5
dw BackgroundTileCommands18 ; $5BC8
dw BackgroundTileCommands19 ; $5D0C
dw BackgroundTileCommands1A ; $5E5B
dw BackgroundTileCommands1B ; $5F47
dw BackgroundTileCommands1C ; $6004
dw BackgroundTileCommands1D ; $6004
dw BackgroundTileCommands1E ; $4E9A
dw BackgroundTileCommands1F ; $5050
dw BackgroundTileCommands20 ; $51EF
dw BackgroundTileCommands21 ; $538E
dw BackgroundTileCommands22 ; $552D
dw BackgroundTileCommands23 ; $7781
dw BackgroundTileCommands24 ; $4DD4
dw BackgroundTileCommands25 ; $6C37

View File

@ -1,780 +0,0 @@
; Disassembly of "game.gbc"
; This file was created with mgbdis v1.3 - Game Boy ROM disassembler by Matt Currie.
; https://github.com/mattcurrie/mgbdis
BGCopyRequest24::
db $9B, $E0, $53, $7C, $98, $00, $53, $7C, $98, $20, $53, $7C, $98, $40, $53, $7C
db $98, $60, $53, $7C, $98, $80, $53, $7C, $98, $A0, $53, $7C, $98, $C0, $53, $7C
db $98, $C0, $03, $2A, $2B, $04, $14, $98, $CE, $03, $2A, $2B, $04, $14, $98, $E0
db $53, $7C, $98, $E0, $03, $39, $7F, $7F, $1E, $98, $EE, $05, $39, $7F, $7F, $1E
db $3A, $3B, $99, $00, $13, $7F, $7F, $7F, $7F, $04, $14, $7C, $7C, $2A, $2B, $04
db $14, $2A, $2B, $7F, $7F, $7F, $7F, $7F, $7F, $99, $20, $53, $7F, $99, $25, $03
db $1E, $3A, $3B, $39, $99, $2B, $01, $1E, $39, $99, $40, $53, $7F, $99, $60, $53
db $7F, $99, $80, $53, $7F, $99, $A0, $53, $7F, $99, $C0, $53, $7F, $99, $E0, $53
db $7F, $9A, $00, $53, $7F, $9A, $20, $53, $7F, $99, $86, $07, $24, $25, $26, $26
db $29, $29, $27, $28, $99, $A7, $05, $34, $35, $36, $36, $37, $38, $99, $C7, $05
db $24, $25, $26, $26, $27, $28, $99, $E7, $05, $24, $25, $26, $26, $27, $28, $9A
db $06, $07, $24, $25, $26, $26, $29, $29, $27, $28, $9A, $26, $07, $24, $25, $26
db $26, $29, $29, $27, $28, $00
BGCopyRequest1E::
db $99, $E0, $13, $1B, $1B, $48, $49, $30, $31, $32, $33, $7F, $5A, $74, $74, $7F
db $5A, $30, $31, $32, $33, $30, $31, $98, $00, $13, $1B, $1B, $48, $49, $1A, $5A
db $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $74, $74, $5A, $7F, $24, $25, $98, $20
db $13, $1B, $1B, $48, $49, $5A, $1A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $74
db $74, $7F, $5A, $34, $35, $98, $40, $13, $1B, $1B, $48, $49, $5E, $5E, $5E, $5E
db $5E, $5E, $5A, $7F, $5A, $7F, $74, $74, $5A, $7F, $20, $21, $98, $60, $13, $1B
db $1B, $48, $49, $5F, $5F, $5F, $5F, $5F, $5F, $7F, $5A, $7F, $5A, $74, $74, $7F
db $5A, $30, $31, $98, $80, $13, $1B, $1B, $48, $49, $2C, $2D, $2E, $2F, $2C, $2D
db $5A, $7F, $5A, $7F, $74, $74, $5A, $7F, $24, $25, $98, $A0, $13, $1B, $1B, $48
db $49, $3C, $3D, $3E, $3F, $3C, $3D, $7F, $5A, $7F, $5A, $74, $74, $7F, $5A, $34
db $35, $98, $C0, $13, $1B, $1B, $48, $49, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F
db $74, $74, $74, $74, $1A, $5A, $20, $21, $98, $E0, $13, $1B, $1B, $48, $49, $7F
db $5A, $7F, $5A, $7F, $5A, $7F, $5A, $74, $74, $74, $74, $5A, $1A, $30, $31, $99
db $00, $13, $1B, $1B, $48, $49, $5A, $7F, $5A, $7F, $5A, $7F, $74, $74, $74, $74
db $5A, $7F, $14, $16, $24, $25, $99, $20, $13, $1B, $1B, $48, $49, $7F, $5A, $7F
db $5A, $7F, $5A, $74, $74, $74, $74, $7F, $5A, $15, $17, $34, $35, $99, $40, $13
db $1B, $1B, $48, $49, $5A, $7F, $5A, $7F, $5A, $7F, $74, $74, $5A, $7F, $5A, $7F
db $14, $16, $20, $21, $99, $60, $13, $1B, $1B, $48, $49, $7F, $5A, $7F, $5A, $7F
db $5A, $74, $74, $7F, $5A, $7F, $5A, $15, $17, $30, $31, $99, $80, $13, $1B, $1B
db $48, $49, $5A, $7F, $5A, $7F, $5A, $7F, $74, $74, $5A, $7F, $5A, $7F, $20, $21
db $22, $29, $99, $A0, $13, $1B, $1B, $48, $49, $7F, $5A, $7F, $5A, $7F, $5A, $74
db $74, $7F, $5A, $7F, $5A, $30, $31, $32, $33, $99, $C0, $13, $1B, $1B, $48, $49
db $20, $21, $22, $23, $5A, $7F, $74, $74, $5A, $7F, $20, $21, $22, $29, $28, $21
db $99, $E0, $13, $1B, $1B, $48, $49, $30, $31, $32, $33, $7F, $5A, $74, $74, $7F
db $5A, $30, $31, $32, $33, $30, $31, $9A, $00, $13, $1B, $1B, $48, $49, $24, $25
db $26, $27, $5A, $7F, $74, $74, $5A, $7F, $24, $25, $28, $21, $22, $29, $9A, $20
db $13, $1B, $1B, $48, $49, $34, $35, $36, $37, $7F, $5A, $74, $74, $7F, $5A, $34
db $35, $30, $31, $32, $33, $00
BGCopyRequest1F::
db $98, $00, $13, $26, $27, $5A, $7F, $44, $56, $55, $56, $55, $56, $55, $56, $55
db $56, $55, $56, $55, $56, $55, $56, $98, $20, $13, $36, $37, $7F, $5A, $54, $56
db $55, $56, $55, $56, $55, $56, $55, $56, $55, $56, $55, $56, $55, $56, $98, $40
db $13, $22, $23, $5A, $7F, $5A, $7F, $EF, $EF, $EF, $EF, $EF, $EF, $EF, $EF, $EF
db $EF, $5A, $7F, $5A, $7F, $98, $60, $13, $32, $33, $7F, $5A, $7F, $5A, $EF, $EF
db $EF, $EF, $EF, $EF, $EF, $EF, $EF, $EF, $7F, $5A, $7F, $5A, $98, $80, $13, $26
db $27, $5A, $7F, $EF, $EF, $EF, $EF, $1A, $5A, $1A, $5A, $1A, $5A, $EF, $EF, $EF
db $EF, $5A, $7F, $98, $A0, $13, $36, $37, $7F, $5A, $EF, $EF, $EF, $EF, $5A, $1A
db $5A, $1A, $5A, $1A, $EF, $EF, $EF, $EF, $7F, $5A, $98, $C0, $13, $22, $23, $5A
db $7F, $EF, $EF, $1A, $5A, $EF, $EF, $E0, $E1, $EF, $EF, $1A, $5A, $EF, $EF, $5A
db $7F, $98, $E0, $13, $32, $33, $7F, $5A, $EF, $EF, $5A, $1A, $EF, $EF, $F0, $F1
db $EF, $EF, $5A, $1A, $EF, $EF, $7F, $5A, $99, $00, $13, $26, $27, $5A, $7F, $EF
db $EF, $1A, $5A, $EF, $EF, $E2, $E3, $EF, $EF, $1A, $5A, $EF, $EF, $5A, $7F, $99
db $20, $13, $36, $37, $7F, $5A, $EF, $EF, $5A, $1A, $EF, $EF, $F2, $F3, $EF, $EF
db $5A, $1A, $EF, $EF, $7F, $5A, $99, $40, $13, $22, $23, $5A, $7F, $EF, $EF, $1A
db $5A, $EF, $EF, $EF, $EF, $EF, $EF, $1A, $5A, $EF, $EF, $5A, $7F, $99, $60, $13
db $32, $33, $7F, $5A, $EF, $EF, $5A, $1A, $EF, $EF, $EF, $EF, $EF, $EF, $5A, $1A
db $EF, $EF, $7F, $5A, $99, $80, $13, $26, $27, $5A, $7F, $EF, $EF, $EF, $EF, $1A
db $5A, $1A, $5A, $1A, $5A, $EF, $EF, $EF, $EF, $74, $74, $99, $A0, $13, $36, $37
db $7F, $5A, $EF, $EF, $EF, $EF, $5A, $1A, $5A, $1A, $5A, $1A, $EF, $EF, $EF, $EF
db $74, $74, $99, $C0, $13, $22, $23, $5A, $7F, $5A, $7F, $EF, $EF, $EF, $EF, $EF
db $EF, $EF, $EF, $EF, $EF, $5A, $7F, $5A, $7F, $99, $E0, $13, $32, $33, $7F, $5A
db $7F, $5A, $EF, $EF, $EF, $EF, $EF, $EF, $EF, $EF, $EF, $EF, $7F, $5A, $7F, $5A
db $9A, $00, $13, $26, $27, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A
db $7F, $5A, $7F, $5A, $7F, $5A, $7F, $9A, $20, $13, $36, $37, $7F, $5A, $7F, $5A
db $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $00
BGCopyRequest20::
db $98, $00, $13, $24, $25, $26, $27, $24, $25, $26, $27, $75, $75, $75, $75, $75
db $75, $24, $25, $26, $27, $24, $25, $98, $20, $13, $34, $35, $36, $37, $34, $35
db $36, $37, $75, $75, $75, $75, $75, $75, $34, $35, $36, $37, $34, $35, $98, $40
db $13, $74, $74, $74, $74, $E6, $E7, $E7, $E7, $E7, $E8, $75, $75, $5A, $7F, $5A
db $7F, $5A, $7F, $5A, $7F, $98, $60, $13, $74, $74, $74, $74, $E9, $7C, $7C, $7C
db $7C, $F9, $75, $75, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $98, $80, $13, $5A
db $7F, $74, $74, $E9, $7C, $7C, $7C, $7C, $F9, $5E, $5E, $1A, $5A, $5A, $7F, $5A
db $7F, $5A, $7F, $98, $A0, $13, $7F, $5A, $74, $74, $F6, $F7, $F7, $F7, $F7, $F8
db $5F, $5F, $5A, $1A, $7F, $5A, $7F, $5A, $7F, $5A, $98, $C0, $13, $5A, $7F, $74
db $74, $2C, $2D, $2E, $2F, $2C, $2D, $2E, $2F, $EC, $EC, $75, $75, $5A, $7F, $5A
db $7F, $98, $E0, $13, $7F, $5A, $74, $74, $3C, $3D, $3E, $3F, $3C, $3D, $3E, $3F
db $FC, $FC, $75, $75, $7F, $5A, $7F, $5A, $99, $00, $13, $5A, $7F, $74, $74, $74
db $74, $74, $74, $74, $EC, $75, $75, $75, $75, $75, $75, $75, $75, $5A, $7F, $99
db $20, $13, $7F, $5A, $74, $74, $74, $74, $74, $74, $74, $FC, $75, $75, $75, $75
db $75, $75, $75, $75, $7F, $5A, $99, $40, $13, $5A, $7F, $5A, $7F, $1A, $5A, $75
db $75, $75, $75, $75, $75, $75, $75, $75, $75, $5A, $7F, $5A, $7F, $99, $60, $13
db $7F, $5A, $7F, $5A, $5A, $1A, $75, $75, $75, $75, $75, $75, $75, $75, $75, $75
db $7F, $5A, $7F, $5A, $99, $80, $13, $74, $74, $74, $74, $5A, $7F, $5A, $7F, $5A
db $7F, $5A, $7F, $5A, $7F, $5A, $7F, $1A, $5A, $5A, $7F, $99, $A0, $13, $74, $74
db $74, $74, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $5A, $1A
db $7F, $5A, $99, $C0, $13, $22, $23, $74, $74, $74, $74, $74, $74, $74, $74, $74
db $74, $74, $74, $74, $74, $74, $74, $74, $74, $99, $E0, $13, $32, $33, $74, $74
db $74, $74, $74, $74, $74, $74, $74, $74, $74, $74, $74, $74, $74, $74, $74, $74
db $9A, $00, $13, $26, $27, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A
db $7F, $5A, $7F, $5A, $7F, $5A, $7F, $9A, $20, $13, $36, $37, $7F, $5A, $7F, $5A
db $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $00
BGCopyRequest21::
db $98, $00, $13, $92, $7C, $92, $7C, $92, $83, $5A, $7F, $5A, $7F, $5A, $7F, $75
db $75, $82, $7C, $92, $7C, $24, $25, $98, $20, $13, $7C, $92, $7C, $84, $80, $89
db $7F, $5A, $7F, $5A, $7F, $5A, $75, $75, $82, $92, $7C, $92, $8E, $8F, $98, $40
db $13, $92, $7C, $92, $83, $5A, $7F, $5A, $7F, $5A, $7F, $5A, $7F, $75, $75, $82
db $7C, $92, $7C, $28, $21, $98, $60, $13, $7C, $84, $80, $89, $7F, $5A, $7F, $5A
db $7F, $5A, $7F, $5A, $75, $75, $88, $80, $85, $92, $30, $31, $98, $80, $13, $92
db $83, $8C, $8D, $5A, $7F, $14, $16, $14, $16, $5A, $7F, $5A, $7F, $1A, $5A, $82
db $7C, $24, $25, $98, $A0, $13, $7C, $83, $9C, $9D, $7F, $5A, $15, $17, $15, $17
db $7F, $5A, $7F, $5A, $5A, $1A, $82, $92, $8E, $8F, $98, $C0, $13, $92, $83, $5A
db $7F, $14, $16, $20, $21, $22, $23, $14, $16, $1A, $5A, $75, $75, $82, $7C, $28
db $21, $98, $E0, $13, $7C, $83, $7F, $5A, $15, $17, $30, $31, $32, $33, $15, $17
db $5A, $1A, $75, $75, $82, $92, $30, $31, $99, $00, $13, $92, $83, $5A, $7F, $14
db $16, $24, $25, $26, $27, $14, $16, $5A, $7F, $75, $75, $82, $7C, $24, $25, $99
db $20, $13, $7C, $83, $7F, $5A, $15, $17, $34, $35, $36, $37, $15, $17, $7F, $5A
db $75, $75, $82, $92, $8E, $8F, $99, $40, $13, $92, $83, $5A, $7F, $5A, $7F, $14
db $16, $14, $16, $5A, $7F, $75, $75, $75, $75, $82, $7C, $28, $21, $99, $60, $13
db $7C, $83, $7F, $5A, $7F, $5A, $15, $17, $15, $17, $7F, $5A, $75, $75, $75, $75
db $82, $92, $30, $31, $99, $80, $13, $92, $83, $5A, $7F, $5A, $7F, $1A, $5A, $8C
db $8D, $5A, $7F, $75, $75, $8A, $81, $92, $7C, $24, $25, $99, $A0, $13, $7C, $83
db $7F, $5A, $7F, $5A, $5A, $1A, $9C, $9D, $7F, $5A, $75, $75, $82, $92, $7C, $92
db $8E, $8F, $99, $C0, $13, $92, $86, $81, $81, $81, $8B, $5A, $7F, $5A, $7F, $5A
db $7F, $75, $75, $82, $7C, $92, $7C, $28, $21, $99, $E0, $13, $7C, $92, $7C, $92
db $7C, $83, $7F, $5A, $7F, $5A, $7F, $5A, $75, $75, $82, $92, $7C, $92, $30, $31
db $9A, $00, $13, $92, $7C, $92, $7C, $92, $83, $5A, $7F, $5A, $7F, $75, $75, $75
db $75, $82, $7C, $92, $7C, $24, $25, $9A, $20, $13, $7C, $92, $7C, $92, $7C, $83
db $7F, $5A, $7F, $5A, $75, $75, $75, $75, $82, $92, $7C, $92, $8E, $8F, $00
BGCopyRequest22::
db $98, $00, $13, $76, $76, $49, $59, $AC, $AD, $AC, $AD, $AC, $AD, $AC, $AD, $AC
db $AD, $44, $56, $48, $51, $45, $45, $98, $20, $13, $76, $76, $49, $59, $BC, $BD
db $BC, $BD, $BC, $BD, $BC, $BD, $BC, $BD, $44, $56, $44, $56, $55, $56, $98, $40
db $13, $45, $45, $52, $59, $AC, $AD, $AC, $AD, $AC, $AD, $AC, $AD, $AA, $AB, $44
db $56, $44, $56, $55, $56, $98, $60, $13, $55, $56, $55, $47, $BC, $BD, $BC, $BD
db $BC, $BD, $BC, $BD, $BA, $BB, $54, $56, $44, $56, $55, $56, $98, $80, $13, $55
db $56, $55, $47, $AC, $AD, $AC, $AD, $AC, $AD, $AC, $AD, $AC, $AD, $AC, $AD, $44
db $56, $55, $56, $98, $A0, $13, $55, $56, $55, $57, $BC, $BD, $BC, $BD, $BC, $BD
db $BC, $BD, $BC, $BD, $BC, $BD, $54, $56, $55, $56, $98, $C0, $13, $AC, $AD, $AC
db $AD, $AC, $AD, $AC, $AD, $AC, $AD, $AE, $AF, $AC, $AD, $AC, $AD, $AA, $AB, $AC
db $AD, $98, $E0, $13, $BC, $BD, $BC, $BD, $BC, $BD, $BC, $BD, $BC, $BD, $BE, $BF
db $BC, $BD, $BC, $BD, $BA, $BB, $BC, $BD, $99, $00, $13, $4A, $4A, $4A, $4D, $AC
db $AD, $AC, $AD, $AE, $AF, $AC, $AD, $AC, $AD, $A8, $A9, $AC, $AD, $AC, $AD, $99
db $20, $13, $45, $45, $5D, $59, $BC, $BD, $BC, $BD, $BE, $BF, $BC, $BD, $BC, $BD
db $B8, $B9, $BC, $BD, $BC, $BD, $99, $40, $13, $76, $76, $49, $59, $1C, $1D, $1C
db $1D, $1C, $1D, $1C, $1D, $1C, $1D, $1C, $1D, $1C, $1D, $1C, $1D, $99, $60, $13
db $76, $76, $49, $59, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F
db $1E, $1F, $1E, $1F, $99, $80, $13, $45, $45, $52, $59, $1E, $1F, $1E, $1F, $1E
db $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $99, $A0, $13, $55, $56
db $55, $47, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F
db $1E, $1F, $99, $C0, $13, $55, $56, $55, $47, $1E, $1F, $1E, $1F, $1E, $1F, $1E
db $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $99, $E0, $13, $55, $56, $55, $57
db $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F
db $9A, $00, $13, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E
db $1F, $1E, $1F, $1E, $1F, $1E, $1F, $9A, $20, $13, $1E, $1F, $1E, $1F, $1E, $1F
db $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $1E, $1F, $00
BGCopyRequest01::
db $98, $00, $53, $AC, $98, $20, $53, $AC, $98, $40, $53, $AC, $98, $60, $53, $AC
db $98, $80, $53, $AC, $98, $A0, $53, $AC, $98, $C0, $53, $AC, $98, $E0, $53, $AC
db $99, $00, $53, $AC, $99, $20, $53, $AC, $99, $40, $53, $AC, $99, $60, $53, $AC
db $99, $80, $53, $AC, $99, $A0, $53, $AC, $99, $C0, $53, $AC, $99, $E0, $53, $AC
db $9A, $00, $53, $AC, $9A, $20, $53, $AC, $98, $49, $00, $1F, $98, $68, $02, $06
db $44, $0A, $98, $88, $02, $16, $15, $1A, $98, $A7, $04, $07, $15, $15, $15, $19
db $98, $C6, $07, $07, $15, $15, $15, $15, $15, $08, $09, $98, $E5, $09, $07, $15
db $15, $15, $15, $15, $15, $15, $15, $19, $99, $03, $0D, $17, $18, $15, $15, $15
db $15, $15, $15, $15, $15, $15, $15, $08, $09, $99, $21, $11, $17, $18, $15, $15
db $15, $15, $15, $15, $15, $15, $15, $15, $15, $15, $15, $15, $08, $09, $99, $40
db $13, $82, $83, $0C, $0D, $0C, $0D, $0E, $0F, $0E, $0F, $0E, $0F, $0E, $0F, $0C
db $0D, $0C, $0D, $82, $83, $99, $60, $01, $92, $93, $99, $72, $01, $92, $93, $00
BGCopyRequest16:: ; Ending water spout
db $9C, $00, $5F, $A0, $9C, $20, $5F, $A0, $9C, $40, $5F, $A0, $9C, $60, $5F, $A0
db $9C, $80, $5F, $A0, $9C, $A0, $5F, $A0, $9C, $C0, $5F, $A0, $9C, $E0, $5F, $A0
db $9D, $00, $5F, $A0, $9D, $20, $5F, $A0, $9D, $40, $5F, $A0, $9D, $60, $5F, $A0
db $9D, $80, $5F, $A0, $9D, $A0, $5F, $A0, $9D, $C0, $5F, $A0, $9D, $E0, $5F, $A0
db $9E, $00, $5F, $A0, $9E, $20, $5F, $A0, $9E, $40, $13, $A0, $A0, $A0, $A0, $A0
db $83, $84, $85, $86, $87, $88, $89, $8A, $8B, $8C, $A0, $A0, $A0, $A0, $A0, $9E
db $60, $13, $A0, $A0, $A0, $A0, $92, $93, $94, $95, $96, $97, $98, $99, $9A, $9B
db $9C, $9D, $A0, $A0, $A0, $A0, $9E, $80, $13, $A0, $A0, $A0, $A1, $A2, $A3, $A4
db $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC, $AD, $AE, $A0, $A0, $A0, $9E, $A0, $13
db $A0, $A0, $B0, $B1, $B2, $B3, $B4, $B5, $B6, $B7, $B8, $B9, $BA, $BB, $BC, $BD
db $BE, $BF, $A0, $A0, $9E, $C0, $13, $A0, $A0, $C0, $C1, $C2, $C3, $C4, $C5, $C6
db $C7, $8E, $8F, $CA, $CB, $CC, $CD, $CE, $CF, $A0, $A0, $9E, $E0, $13, $A0, $A0
db $A0, $82, $F2, $F3, $F4, $F5, $F6, $F7, $F8, $F9, $FA, $FB, $FC, $FD, $8D, $A0
db $A0, $A0, $9F, $00, $13, $A0, $A0, $A0, $A0, $A0, $A0, $80, $81, $80, $81, $80
db $81, $80, $81, $A0, $A0, $A0, $A0, $A0, $A0, $9F, $20, $13, $A0, $A0, $A0, $A0
db $A0, $A0, $90, $91, $90, $91, $90, $91, $90, $91, $A0, $A0, $A0, $A0, $A0, $A0
db $9F, $40, $13, $A0, $A0, $A0, $A0, $A0, $A0, $80, $81, $80, $81, $80, $81, $80
db $81, $A0, $A0, $A0, $A0, $A0, $A0, $9F, $60, $13, $A0, $A0, $A0, $A0, $A0, $A0
db $90, $91, $90, $91, $90, $91, $90, $91, $A0, $A0, $A0, $A0, $A0, $A0, $9F, $80
db $13, $A0, $A0, $A0, $A0, $A0, $A0, $80, $81, $80, $81, $80, $81, $80, $81, $A0
db $A0, $A0, $A0, $A0, $A0, $9F, $A0, $13, $A0, $A0, $A0, $A0, $A0, $A0, $90, $91
db $90, $91, $90, $91, $90, $91, $A0, $A0, $A0, $A0, $A0, $A0, $9F, $C0, $13, $A0
db $A0, $A0, $A0, $A0, $A0, $80, $81, $80, $81, $80, $81, $80, $81, $A0, $A0, $A0
db $A0, $A0, $A0, $9F, $E0, $13, $A0, $A0, $A0, $A0, $A0, $A0, $90, $91, $90, $91
db $90, $91, $90, $91, $A0, $A0, $A0, $A0, $A0, $A0, $98, $00, $5F, $A0, $98, $20
db $5F, $A0, $98, $40, $5F, $A0, $98, $60, $5F, $A0, $98, $80, $5F, $A0, $98, $A0
db $5F, $A0, $98, $C0, $5F, $A0, $98, $E0, $5F, $A0, $99, $00, $5F, $A0, $99, $20
db $5F, $A0, $99, $40, $5F, $A0, $99, $60, $5F, $A0, $99, $80, $5F, $A0, $99, $A0
db $5F, $A0, $99, $C0, $5F, $A0, $99, $E0, $5F, $A0, $9A, $00, $5F, $A0, $9A, $20
db $5F, $A0, $9B, $00, $5F, $A0, $9B, $20, $5F, $A0, $9B, $40, $5F, $A0, $9B, $80
db $5F, $A0, $9B, $A0, $5F, $A0, $9B, $C0, $5F, $A0, $9B, $E0, $5F, $A0, $98, $80
db $13, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $03, $04
db $03, $04, $A0, $A0, $A0, $98, $A0, $13, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0
db $03, $04, $A0, $A0, $02, $10, $11, $10, $30, $04, $03, $04, $98, $C0, $13, $A0
db $A0, $A0, $A0, $A0, $12, $04, $03, $30, $30, $30, $04, $00, $01, $00, $6B, $30
db $30, $30, $30, $98, $E0, $13, $A0, $A0, $A0, $A0, $02, $5A, $10, $30, $30, $30
db $30, $10, $04, $A0, $03, $30, $30, $11, $10, $11, $99, $00, $13, $A0, $A0, $A0
db $A0, $00, $01, $00, $10, $11, $21, $00, $00, $21, $12, $5A, $10, $11, $01, $00
db $01, $99, $20, $13, $04, $A0, $A0, $A0, $A0, $A0, $A0, $00, $01, $A0, $A0, $A0
db $A0, $00, $01, $00, $01, $A0, $A0, $A0, $99, $40, $13, $30, $04, $A0, $A0, $A0
db $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $99
db $60, $13, $10, $0F, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0
db $A0, $A0, $03, $04, $A0, $A0, $99, $80, $13, $A0, $A0, $A0, $A0, $A0, $A0, $A0
db $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $12, $30, $30, $04, $A0, $99, $A0, $13
db $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $A0, $03, $04, $A0, $02, $5A
db $20, $10, $0F, $A0, $99, $C0, $13, $A0, $A0, $A0, $A0, $A0, $A0, $12, $04, $03
db $30, $30, $30, $0F, $A0, $00, $01, $00, $01, $A0, $A0, $99, $E0, $13, $A0, $12
db $04, $A0, $A0, $A0, $00, $20, $10, $10, $10, $30, $04, $A0, $A0, $A0, $A0, $A0
db $A0, $A0, $9A, $00, $13, $A0, $00, $10, $04, $03, $04, $03, $71, $6B, $10, $10
db $10, $0F, $A0, $A0, $A0, $A0, $03, $04, $A0, $9A, $20, $13, $A0, $02, $5A, $10
db $30, $11, $10, $30, $11, $11, $11, $01, $A0, $A0, $12, $04, $03, $30, $0F, $A0
db $9A, $40, $53, $A0, $9A, $60, $53, $A0, $9A, $80, $53, $A0, $9A, $A0, $53, $A0
db $9A, $C0, $53, $A0, $9A, $E0, $53, $A0, $9B, $00, $53, $A0, $9B, $20, $53, $A0
db $9B, $40, $53, $A0, $9B, $60, $53, $A0, $9B, $80, $53, $A0, $9B, $A0, $53, $A0
db $9B, $C0, $53, $A0, $9B, $E0, $53, $A0, $00
BGCopyRequest17::
db $98, $00, $5F, $AC, $98, $20, $5F, $AC, $98, $40, $5F, $AC, $98, $60, $5F, $AC
db $98, $80, $5F, $AC, $98, $A0, $5F, $AC, $98, $C0, $5F, $AC, $98, $E0, $5F, $AC
db $99, $00, $5F, $AC, $99, $20, $5F, $AC, $99, $40, $5F, $AC, $99, $60, $5F, $AC
db $99, $80, $5F, $AC, $99, $A0, $5F, $AC, $99, $C0, $5F, $AC, $99, $E0, $5F, $AC
db $9A, $00, $5F, $AC, $9A, $20, $5F, $AC, $98, $02, $03, $E5, $E6, $E1, $E2, $98
db $22, $03, $F5, $F6, $F1, $F2, $98, $40, $07, $E3, $E4, $E7, $E8, $A0, $A1, $80
db $81, $98, $52, $01, $E3, $E4, $98, $60, $07, $F3, $F4, $F7, $AE, $B0, $B1, $90
db $91, $98, $72, $01, $F3, $F4, $98, $80, $13, $E7, $E8, $AE, $AE, $AE, $AE, $A0
db $A1, $80, $81, $E3, $E4, $E1, $E2, $AC, $AC, $E5, $E6, $E7, $E8, $98, $A0, $13
db $F7, $AE, $AE, $AE, $AE, $AE, $B0, $B1, $90, $91, $F3, $F4, $F1, $F2, $AC, $AC
db $F5, $F6, $F7, $AE, $98, $C0, $13, $82, $83, $82, $83, $82, $83, $82, $83, $82
db $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $98, $E0, $13, $92, $93
db $92, $93, $92, $93, $92, $93, $92, $93, $92, $93, $92, $93, $92, $93, $92, $93
db $92, $93, $00
BGCopyRequest18::
db $98, $00, $5F, $AC, $98, $20, $5F, $AC, $98, $40, $5F, $AC, $98, $60, $5F, $AC
db $98, $80, $5F, $AC, $98, $A0, $5F, $AC, $98, $C0, $5F, $AC, $98, $E0, $5F, $AC
db $99, $00, $5F, $AC, $99, $20, $5F, $AC, $99, $40, $5F, $AC, $99, $60, $5F, $AC
db $99, $80, $5F, $AC, $99, $A0, $5F, $AC, $99, $C0, $5F, $AC, $99, $E0, $5F, $AC
db $9A, $00, $5F, $AC, $9A, $20, $5F, $AC, $98, $00, $07, $56, $73, $AE, $AE, $AE
db $AE, $AE, $3E, $98, $0E, $05, $56, $73, $AE, $AE, $AE, $AE, $98, $20, $07, $72
db $AE, $AE, $AE, $AE, $AE, $3D, $3F, $98, $2E, $05, $72, $AE, $AE, $AE, $AE, $AE
db $98, $40, $07, $AE, $AE, $AE, $AE, $AE, $AE, $74, $67, $98, $4E, $05, $45, $AE
db $AE, $AE, $AE, $AE, $98, $60, $07, $AE, $AE, $AE, $AE, $AE, $AE, $AE, $75, $98
db $6E, $05, $78, $79, $AE, $AE, $AE, $AE, $98, $80, $07, $45, $AE, $2C, $2D, $45
db $AE, $2C, $2D, $98, $90, $03, $7A, $4B, $AE, $3E, $98, $A0, $06, $78, $79, $3C
db $AC, $78, $79, $3C, $98, $B1, $02, $7B, $3D, $3F, $98, $C8, $03, $84, $85, $9D
db $9F, $98, $E8, $03, $A2, $A3, $BF, $F0, $99, $08, $03, $F8, $FA, $FC, $FD, $99
db $28, $03, $FE, $FF, $05, $0B, $98, $E0, $01, $74, $67, $99, $00, $01, $AE, $75
db $99, $20, $01, $2C, $2D, $99, $40, $00, $3C, $99, $44, $03, $56, $73, $74, $67
db $99, $64, $03, $72, $AE, $AE, $75, $99, $84, $03, $7A, $4B, $AE, $3E, $99, $A5
db $02, $7B, $3D, $3F, $99, $92, $01, $56, $73, $99, $B2, $01, $72, $AE, $99, $D2
db $01, $7A, $4B, $99, $F3, $00, $7B, $9A, $13, $00, $57, $9A, $32, $01, $70, $71
db $99, $C2, $02, $56, $73, $66, $99, $E2, $03, $72, $AE, $76, $77, $9A, $00, $07
db $56, $73, $AE, $AE, $AE, $AE, $74, $67, $9A, $20, $07, $72, $AE, $AE, $AE, $AE
db $AE, $AE, $75, $00
BGCopyRequest19::
db $98, $00, $5F, $AC, $98, $20, $5F, $AC, $98, $40, $5F, $AC, $98, $60, $5F, $AC
db $98, $80, $5F, $AC, $98, $A0, $5F, $AC, $98, $C0, $5F, $AC, $98, $E0, $5F, $AC
db $99, $00, $5F, $AC, $99, $20, $5F, $AC, $99, $40, $5F, $AC, $99, $60, $5F, $AC
db $99, $80, $5F, $AC, $99, $A0, $5F, $AC, $99, $C0, $5F, $AC, $99, $E0, $5F, $AC
db $9A, $00, $5F, $AC, $9A, $20, $5F, $AC, $9A, $40, $5F, $AC, $9A, $60, $5F, $AC
db $9A, $80, $5F, $AC, $9A, $A0, $5F, $AC, $9A, $E0, $5F, $AC, $9B, $C0, $5F, $AC
db $9B, $E0, $5F, $AC, $98, $12, $01, $E5, $E6, $98, $32, $01, $F5, $F6, $98, $40
db $01, $80, $81, $98, $4C, $07, $E5, $E6, $E1, $E2, $E3, $E4, $E7, $E8, $98, $60
db $01, $90, $91, $98, $6C, $07, $F5, $F6, $F1, $F2, $F3, $F4, $F7, $AE, $98, $80
db $13, $A0, $A1, $E1, $E2, $AC, $E3, $E4, $E1, $E2, $AC, $E3, $E4, $E7, $E8, $A0
db $A1, $E7, $E8, $A0, $A1, $98, $A0, $13, $B0, $B1, $F1, $F2, $AC, $F3, $F4, $F1
db $F2, $AC, $F3, $F4, $F7, $AE, $B0, $B1, $F7, $AE, $B0, $B1, $98, $C0, $13, $82
db $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82
db $83, $82, $83, $98, $E0, $13, $92, $93, $92, $93, $92, $93, $92, $93, $92, $93
db $92, $93, $92, $93, $92, $93, $92, $93, $92, $93, $99, $68, $03, $86, $87, $88
db $89, $99, $86, $05, $94, $95, $96, $97, $98, $99, $99, $A6, $07, $A4, $A5, $A6
db $A7, $A8, $A9, $AA, $AB, $99, $C4, $0C, $B2, $B3, $B4, $B5, $B6, $B7, $B8, $B9
db $BA, $BB, $BC, $BD, $BE, $99, $E2, $0F, $C0, $C1, $C2, $C3, $C4, $C5, $C6, $C7
db $C8, $C9, $CA, $CB, $CC, $CD, $CE, $CF, $9A, $02, $0F, $D0, $D1, $D2, $D3, $D4
db $D5, $D6, $D7, $D8, $D9, $DA, $DB, $DC, $DD, $DE, $DF, $9A, $22, $0F, $E0, $6C
db $6D, $6E, $6F, $6C, $6D, $6E, $6F, $6C, $6D, $6E, $6F, $6C, $6D, $EF, $00
BGCopyRequest1A::
db $98, $00, $53, $AC, $98, $20, $53, $AC, $98, $28, $03, $50, $51, $52, $53, $98
db $40, $53, $AC, $98, $48, $05, $60, $61, $62, $63, $64, $65, $98, $60, $53, $AC
db $98, $80, $53, $AC, $98, $92, $01, $E5, $E6, $98, $A0, $53, $AC, $98, $A4, $01
db $64, $65, $98, $B2, $01, $F5, $F6, $98, $C0, $53, $AC, $98, $C0, $01, $80, $81
db $98, $CC, $07, $E5, $E6, $E1, $E2, $E3, $E4, $E7, $E8, $98, $E0, $53, $AC, $98
db $E0, $01, $90, $91, $98, $EC, $07, $F5, $F6, $F1, $F2, $F3, $F4, $F7, $AE, $99
db $00, $13, $A0, $A1, $E1, $E2, $AC, $E3, $E4, $E1, $E2, $AC, $E3, $E4, $E7, $E8
db $A0, $A1, $E7, $E8, $A0, $A1, $99, $20, $13, $B0, $B1, $F1, $F2, $AC, $F3, $F4
db $F1, $F2, $AC, $F3, $F4, $F7, $AE, $B0, $B1, $F7, $AE, $B0, $B1, $99, $40, $1F
db $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83
db $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83
db $99, $60, $1F, $92, $93, $92, $93, $92, $93, $92, $93, $92, $93, $92, $93, $92
db $93, $92, $93, $92, $93, $92, $93, $92, $93, $92, $93, $92, $93, $92, $93, $92
db $93, $92, $93, $99, $80, $5F, $AC, $99, $A0, $5F, $AC, $99, $C0, $5F, $AC, $99
db $E0, $5F, $AC, $9A, $00, $5F, $AC, $9A, $20, $5F, $AC, $00
BGCopyRequest1B::
db $9B, $C0, $5F, $AC, $9B, $E0, $5F, $AC, $98, $00, $5F, $AC, $98, $20, $5F, $AC
db $98, $40, $5F, $AC, $98, $60, $5F, $AC, $98, $80, $5F, $AC, $98, $A0, $5F, $AC
db $98, $C0, $5F, $AC, $98, $E0, $5F, $AC, $99, $00, $5F, $AC, $99, $20, $5F, $AC
db $99, $40, $5F, $AC, $99, $60, $5F, $AC, $99, $80, $5F, $AC, $99, $A0, $5F, $AC
db $99, $C0, $5F, $AC, $99, $E0, $5F, $AC, $9A, $00, $5F, $AC, $9A, $20, $5F, $AC
db $9A, $40, $5F, $AC, $9A, $60, $5F, $AC, $98, $01, $05, $58, $59, $5A, $5B, $5C
db $5D, $98, $21, $05, $68, $69, $6A, $6B, $6C, $6D, $98, $31, $02, $58, $59, $5A
db $98, $51, $02, $68, $69, $6A, $98, $60, $01, $5C, $5D, $98, $80, $07, $6C, $6D
db $AC, $AC, $50, $51, $52, $53, $98, $A4, $05, $60, $61, $62, $63, $64, $65, $99
db $40, $03, $50, $51, $52, $53, $99, $4F, $03, $50, $51, $52, $53, $99, $60, $03
db $60, $61, $62, $63, $99, $6D, $05, $64, $65, $60, $61, $62, $63, $99, $E3, $01
db $64, $65, $9A, $00, $01, $64, $65, $9A, $10, $01, $64, $65, $00
BGCopyRequest1C::
BGCopyRequest1D::
db $98, $00, $5F, $AC, $98, $20, $5F, $AC, $98, $40, $5F, $AC, $98, $60, $5F, $AC
db $98, $80, $5F, $AC, $98, $A0, $5F, $AC, $98, $C0, $5F, $AC, $98, $E0, $5F, $AC
db $99, $00, $5F, $AC, $99, $20, $5F, $AC, $99, $40, $5F, $AC, $99, $60, $5F, $AC
db $99, $80, $5F, $AC, $99, $A0, $5F, $AC, $99, $C0, $5F, $AC, $99, $E0, $5F, $AC
db $9A, $00, $5F, $AC, $9A, $20, $5F, $AC, $9A, $40, $5F, $AC, $9A, $60, $5F, $AC
db $9A, $80, $5F, $AC, $9A, $A0, $5F, $AC, $9A, $C0, $5F, $AC, $9A, $E0, $5F, $AC
db $9B, $00, $5F, $AC, $9B, $20, $5F, $AC, $9B, $40, $5F, $AC, $9B, $60, $5F, $AC
db $9B, $80, $5F, $AC, $9B, $A0, $5F, $AC, $9B, $C0, $5F, $AC, $9B, $E0, $5F, $AC
db $9A, $40, $01, $6C, $6D, $9A, $46, $03, $50, $51, $52, $53, $9A, $66, $03, $60
db $61, $62, $63, $9A, $90, $03, $E3, $E4, $E1, $E2, $9A, $B0, $03, $F3, $F4, $F1
db $F2, $9A, $CE, $05, $E3, $E4, $E7, $E8, $A0, $A1, $9A, $EE, $05, $F3, $F4, $F7
db $AE, $B0, $B1, $9B, $04, $03, $50, $51, $52, $53, $9B, $0E, $05, $22, $23, $02
db $03, $23, $AE, $9B, $24, $03, $60, $61, $62, $63, $9B, $2E, $05, $32, $33, $12
db $13, $AE, $AE, $9B, $40, $03, $E3, $E4, $E1, $E2, $9B, $4B, $01, $64, $65, $9B
db $50, $03, $22, $23, $02, $03, $9B, $60, $03, $F3, $F4, $F1, $F2, $9B, $70, $03
db $32, $33, $12, $13, $9B, $80, $08, $E7, $E8, $A0, $A1, $80, $81, $AC, $64, $65
db $9B, $92, $01, $22, $23, $9B, $A0, $05, $F7, $AE, $B0, $B1, $90, $91, $9B, $B2
db $01, $F5, $F6, $9B, $C0, $05, $03, $00, $01, $AE, $20, $21, $9B, $CC, $07, $E5
db $E6, $E1, $E2, $E3, $E4, $E7, $E8, $9B, $E0, $05, $13, $10, $11, $AE, $30, $31
db $9B, $EC, $07, $F5, $F6, $F1, $F2, $F3, $F4, $F7, $AE, $98, $00, $03, $AE, $AE
db $20, $21, $98, $0A, $09, $E3, $E4, $E7, $E8, $A0, $A1, $E7, $E8, $A0, $A1, $98
db $20, $03, $AE, $AE, $30, $31, $98, $2A, $09, $F3, $F4, $F7, $AE, $B0, $B1, $F7
db $23, $B0, $B1, $98, $40, $03, $02, $03, $E1, $E2, $98, $4A, $09, $22, $23, $02
db $03, $23, $AE, $AE, $AE, $AE, $AE, $98, $60, $03, $12, $13, $F1, $F2, $98, $6A
db $09, $32, $33, $12, $13, $23, $AE, $23, $AE, $AE, $AE, $98, $80, $03, $AE, $AE
db $20, $21, $98, $8C, $07, $22, $23, $02, $03, $23, $AE, $AE, $AE, $98, $A0, $03
db $AE, $AE, $30, $31, $98, $AC, $07, $32, $33, $12, $13, $AE, $AE, $AE, $AE, $98
db $C0, $03, $AE, $AE, $E1, $E2, $98, $CC, $07, $E3, $E4, $E7, $E8, $AE, $AE, $AE
db $AE, $98, $E0, $03, $AE, $AE, $F1, $F2, $98, $EC, $07, $F3, $F4, $F7, $AE, $AE
db $AE, $AE, $AE, $99, $00, $05, $02, $03, $00, $01, $80, $81, $99, $0A, $09, $E5
db $E6, $E7, $E8, $AE, $AE, $AE, $AE, $AE, $AE, $99, $20, $05, $12, $13, $10, $11
db $90, $91, $99, $2A, $09, $F5, $F6, $F7, $AE, $AE, $AE, $AE, $AE, $AE, $AE, $99
db $40, $13, $23, $AE, $AE, $AE, $A0, $A1, $E1, $E2, $AC, $AC, $22, $23, $AE, $AE
db $AE, $AE, $AE, $AE, $AE, $AE, $99, $60, $13, $AE, $AE, $AE, $23, $B0, $B1, $F1
db $F2, $AC, $AC, $32, $33, $23, $AE, $AE, $AE, $AE, $AE, $AE, $AE, $99, $80, $13
db $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83, $82, $83
db $82, $83, $82, $83, $99, $A0, $13, $92, $93, $92, $93, $92, $93, $92, $93, $92
db $93, $92, $93, $92, $93, $92, $93, $92, $93, $92, $93, $9C, $00, $5F, $AC, $9C
db $20, $5F, $AC, $9C, $40, $5F, $AC, $9C, $60, $5F, $AC, $9C, $80, $5F, $AC, $9C
db $A0, $5F, $AC, $9C, $C0, $5F, $AC, $9C, $E0, $5F, $AC, $9D, $00, $5F, $AC, $9D
db $20, $5F, $AC, $9D, $40, $5F, $AC, $9D, $60, $5F, $AC, $9D, $80, $5F, $AC, $9D
db $A0, $5F, $AC, $9D, $C0, $5F, $AC, $9D, $E0, $5F, $AC, $9E, $00, $5F, $AC, $9E
db $20, $5F, $AC, $00
BGCopyRequest14::
db $9A, $00, $53, $7E, $9A, $20, $53, $7E, $9A, $40, $53, $7E, $9A, $60, $53, $7E
db $9A, $80, $53, $7E, $9A, $A0, $53, $7E, $9A, $C0, $53, $7E, $9A, $E0, $53, $7E
db $9B, $00, $53, $7E, $9B, $20, $53, $7E, $9B, $40, $53, $7E, $9B, $60, $53, $7E
db $9B, $80, $53, $7E, $9B, $A0, $53, $7E, $9B, $C0, $53, $7E, $9B, $E0, $53, $7E
db $00
BGCopyRequest08:: ; World Map screen
db $98, $00, $13, $FC, $3B, $52, $52, $52, $52, $52, $52, $52, $52, $52, $52, $52
db $52, $52, $52, $52, $52, $3C, $FC, $9A, $20, $13, $FC, $4B, $4F, $4E, $4E, $4E
db $4E, $4D, $53, $53, $4F, $4E, $4D, $53, $53, $53, $53, $53, $4C, $FC, $98, $20
db $CF, $FC, $98, $33, $CF, $FC, $98, $21, $CF, $50, $98, $32, $CF, $51, $00
BGCopyRequest04::
db $99, $E6, $0A, $04, $11, $00, $12, $04, $7E, $7E, $02, $0E, $0F, $18
BGCopyRequest03::
db $98, $00, $48, $8F, $98, $01, $00, $9F, $98, $03, $00, $9F, $98, $05, $00, $9F
db $98, $07, $00, $9F, $98, $09, $00, $9F, $98, $20, $08, $9F, $80, $81, $82, $83
db $84, $89, $8F, $9F, $98, $40, $08, $8F, $90, $91, $92, $93, $94, $AA, $9F, $8F
db $98, $60, $08, $9F, $8A, $8B, $8C, $8D, $8E, $AF, $8F, $9F, $98, $80, $52, $8F
db $98, $81, $00, $9F, $98, $83, $00, $9F, $98, $85, $00, $9F, $98, $87, $00, $9F
db $98, $89, $00, $9F, $98, $8B, $00, $9F, $98, $8D, $00, $9F, $98, $8F, $00, $9F
db $98, $91, $00, $9F, $98, $93, $00, $9F, $98, $A0, $CB, $9F, $98, $C0, $00, $8F
db $99, $00, $00, $8F, $99, $40, $00, $8F, $99, $80, $00, $8F, $99, $C0, $00, $8F
db $9A, $00, $00, $8F, $9A, $20, $00, $9F, $9A, $21, $50, $8F, $9A, $22, $00, $9F
db $9A, $24, $00, $9F, $9A, $26, $00, $9F, $9A, $28, $00, $9F, $9A, $2A, $00, $9F
db $9A, $2C, $00, $9F, $9A, $2E, $00, $9F, $9A, $30, $00, $9F, $9A, $32, $00, $8F
db $98, $B3, $CA, $8F, $98, $D3, $00, $9F, $99, $13, $00, $9F, $99, $53, $00, $9F
db $99, $93, $00, $9F, $99, $D3, $00, $9F, $9A, $13, $00, $9F, $9A, $33, $00, $9F
db $98, $0A, $49, $7F, $98, $29, $4A, $7F, $98, $69, $4A, $A2, $98, $49, $0A, $A1
db $A0, $A1, $A5, $A6, $A0, $A1, $A5, $A6, $A0, $A1, $98, $2C, $01, $A3, $A4, $98
db $30, $01, $A3, $A4, $98, $6C, $01, $A7, $A8, $98, $70, $01, $A7, $A8, $98, $C4
db $00, $AB, $99, $24, $00, $AC, $99, $84, $00, $AD, $99, $C2, $4F, $A9, $9A, $32
db $00, $9F, $9A, $33, $00, $8F, $00
BGCopyRequest05::
db $98, $00, $50, $8F, $98, $01, $00, $9F, $98, $03, $00, $9F, $98, $05, $00, $9F
db $98, $07, $00, $9F, $98, $09, $00, $9F, $98, $0B, $00, $9F, $98, $0D, $00, $9F
db $98, $0F, $00, $9F, $98, $11, $00, $9F, $98, $20, $07, $9F, $85, $86, $87, $88
db $8F, $9F, $8F, $98, $40, $07, $8F, $95, $96, $97, $98, $99, $8F, $9F, $98, $60
db $07, $9F, $9A, $9B, $9C, $9D, $9E, $9F, $8F, $98, $30, $00, $9F, $98, $50, $00
db $8F, $98, $70, $00, $9F, $98, $12, $41, $7F, $98, $31, $42, $7F, $98, $51, $02
db $A1, $A0, $A1, $98, $71, $42, $A2, $98, $80, $52, $8F, $98, $81, $00, $9F, $98
db $83, $00, $9F, $98, $85, $00, $9F, $98, $87, $00, $9F, $98, $89, $00, $9F, $98
db $8B, $00, $9F, $98, $8D, $00, $9F, $98, $8F, $00, $9F, $98, $91, $00, $9F, $98
db $93, $00, $9F, $98, $A0, $C9, $9F, $98, $C0, $00, $8F, $99, $00, $00, $8F, $99
db $40, $00, $8F, $99, $80, $00, $8F, $99, $C0, $00, $8F, $98, $B3, $C9, $8F, $98
db $D3, $00, $9F, $99, $13, $00, $9F, $99, $53, $00, $9F, $99, $93, $00, $9F, $99
db $D3, $00, $9F, $9A, $20, $52, $9F, $9A, $21, $00, $8F, $9A, $23, $00, $8F, $9A
db $25, $00, $8F, $9A, $27, $00, $8F, $9A, $29, $00, $8F, $9A, $2B, $00, $8F, $9A
db $2D, $00, $8F, $9A, $2F, $00, $8F, $9A, $31, $00, $8F, $9A, $33, $00, $8F, $98
db $C2, $06, $00, $01, $02, $03, $04, $05, $06, $99, $02, $06, $07, $08, $09, $0A
db $0B, $0C, $0D, $99, $42, $06, $0E, $0F, $10, $11, $12, $13, $14, $99, $82, $04
db $15, $16, $17, $18, $19, $98, $CB, $06, $1A, $1B, $1C, $1D, $1E, $1F, $20, $99
db $0B, $06, $21, $22, $23, $24, $25, $26, $27, $99, $4B, $06, $28, $29, $2A, $2B
db $2C, $2D, $2E, $99, $8B, $04, $2F, $30, $31, $32, $3E, $00
BGCopyRequest06:: ; ERASE WHICH PLAYER?
db $98, $00, $52, $8F, $98, $01, $00, $9F, $98, $03, $00, $9F, $98, $05, $00, $9F
db $98, $07, $00, $9F, $98, $09, $00, $9F, $98, $0B, $00, $9F, $98, $0D, $00, $9F
db $98, $0F, $00, $9F, $98, $11, $00, $9F, $98, $13, $00, $9F, $98, $20, $D1, $9F
db $98, $40, $00, $8F, $98, $80, $00, $8F, $98, $C0, $00, $8F, $99, $00, $00, $8F
db $99, $40, $00, $8F, $99, $80, $00, $8F, $99, $C0, $00, $8F, $9A, $00, $00, $8F
db $98, $33, $D1, $8F, $98, $53, $00, $9F, $98, $93, $00, $9F, $98, $D3, $00, $9F
db $99, $13, $00, $9F, $99, $53, $00, $9F, $99, $93, $00, $9F, $99, $D3, $00, $9F
db $9A, $13, $00, $9F, $9A, $21, $50, $8F, $9A, $22, $00, $9F, $9A, $24, $00, $9F
db $9A, $26, $00, $9F, $9A, $28, $00, $9F, $9A, $2A, $00, $9F, $9A, $2C, $00, $9F
db $9A, $2E, $00, $9F, $9A, $30, $00, $9F, $9A, $32, $00, $9F, $98, $42, $0A, $04
db $11, $00, $12, $04, $7E, $16, $07, $08, $02, $07, $98, $8A, $07, $0F, $0B, $00
db $18, $04, $11, $7E, $3C, $98, $C4, $00, $AB, $99, $24, $00, $AC, $99, $84, $00
db $AD, $99, $C2, $4F, $A9, $99, $E4, $0D, $11, $04, $13, $14, $11, $0D, $7E, $13
db $0E, $7E, $0C, $04, $0D, $14, $00
BGCopyRequest0C::
db $98, $00, $52, $8F, $98, $01, $00, $9F, $98, $03, $00, $9F, $98, $05, $00, $9F
db $98, $07, $00, $9F, $98, $09, $00, $9F, $98, $0B, $00, $9F, $98, $0D, $00, $9F
db $98, $0F, $00, $9F, $98, $11, $00, $9F, $98, $13, $00, $9F, $98, $20, $D1, $9F
db $98, $40, $00, $8F, $98, $80, $00, $8F, $98, $C0, $00, $8F, $99, $00, $00, $8F
db $99, $40, $00, $8F, $99, $80, $00, $8F, $99, $C0, $00, $8F, $9A, $00, $00, $8F
db $98, $33, $D1, $8F, $98, $53, $00, $9F, $98, $93, $00, $9F, $98, $D3, $00, $9F
db $99, $13, $00, $9F, $99, $53, $00, $9F, $99, $93, $00, $9F, $99, $D3, $00, $9F
db $9A, $13, $00, $9F, $9A, $21, $50, $8F, $9A, $22, $00, $9F, $9A, $24, $00, $9F
db $9A, $26, $00, $9F, $9A, $28, $00, $9F, $9A, $2A, $00, $9F, $9A, $2C, $00, $9F
db $9A, $2E, $00, $9F, $9A, $30, $00, $9F, $9A, $32, $00, $9F, $99, $C2, $4F, $A9
db $98, $42, $0A, $02, $0E, $0F, $18, $7E, $0F, $0B, $00, $18, $04, $11, $98, $84
db $0C, $3F, $05, $11, $0E, $0C, $3F, $7E, $7E, $7E, $3F, $13, $0E, $3F, $98, $C3
db $00, $AB, $98, $CC, $00, $AB, $99, $23, $00, $AC, $99, $2C, $00, $AC, $99, $83
db $00, $AD, $99, $8C, $00, $AD, $99, $E4, $0D, $11, $04, $13, $14, $11, $0D, $7E
db $13, $0E, $7E, $0C, $04, $0D, $14, $00
BGCopyRequest02::
db $9C, $00, $53, $7F, $9C, $20, $53, $7F, $9C, $40, $53, $7F, $9C, $60, $53, $7F
db $9C, $80, $53, $7F, $9C, $A0, $53, $7F, $9C, $C0, $53, $7F, $9C, $E0, $53, $7F
db $9D, $00, $53, $7F, $9D, $20, $53, $7F, $9D, $40, $53, $7F, $9D, $60, $53, $7F
db $9D, $80, $53, $7F, $9D, $A0, $53, $7F, $9D, $C0, $53, $7F, $9D, $E0, $53, $7F
db $9E, $00, $53, $7F, $9E, $20, $53, $7F, $9C, $00, $0E, $BD, $7F, $7F, $7F, $BE
db $BB, $7F, $7F, $7F, $BE, $CF, $7F, $7F, $7F, $7F, $9C, $20, $0E, $BC, $7F, $7F
db $7F, $BF, $BC, $7F, $7F, $7F, $BF, $7F, $7F, $7F, $7F, $7F, $9C, $40, $53, $CC
db $9C, $68, $CE, $8D, $9C, $E9, $49, $7F, $9D, $09, $49, $7F, $9D, $0A, $C8, $7F
db $00
BGCopyRequest09::
db $9A, $14, $0B, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $9A
db $34, $0B, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $9A, $54
db $0B, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $9A, $74, $0B
db $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $9A, $94, $0B, $7C
db $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $9A, $B4, $0B, $7C, $7C
db $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $9A, $D4, $0B, $2C, $2D, $7C
db $7C, $7C, $7C, $7C, $7C, $7C, $7C, $2A, $2B, $9A, $F4, $0B, $7F, $3D, $7C, $7C
db $7C, $7C, $7C, $7C, $7C, $7C, $3A, $7F, $9B, $14, $0B, $7F, $7F, $2C, $2D, $7C
db $7C, $7C, $7C, $2A, $2B, $7F, $7F, $9B, $34, $0B, $7F, $7F, $7F, $3D, $3E, $3F
db $3E, $3F, $3A, $7F, $7F, $7F, $98, $14, $0B, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $7C, $7C, $7C, $7C, $7C, $98, $34, $0B, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $7C, $7C, $7C, $7C, $98, $54, $0B, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $7C, $7C, $7C, $98, $74, $0B, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $7C, $7C, $98, $94, $0B, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $7C, $98, $B4, $0B, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $98, $D4, $0B, $2C, $2D, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $2A, $2B, $98
db $F4, $0B, $7F, $3D, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $3A, $7F, $99, $14
db $0B, $7F, $7F, $2C, $2D, $7C, $7C, $7C, $7C, $2A, $2B, $7F, $7F, $99, $34, $0B
db $7F, $7F, $7F, $3D, $3E, $3F, $3E, $3F, $3A, $7F, $7F, $7F, $00
BGCopyRequest0B::
db $9C, $00, $5F, $7E, $9C, $20, $5F, $7E, $9C, $40, $5F, $7E, $9C, $60, $5F, $7E
db $9C, $80, $5F, $7E, $9C, $A0, $5F, $7E, $9C, $C0, $5F, $7E, $9C, $E0, $5F, $7E
db $9D, $00, $5F, $7E, $9D, $20, $5F, $7E, $9D, $40, $5F, $7E, $9D, $60, $5F, $7E
db $9D, $80, $5F, $7E, $9D, $A0, $5F, $7E, $9D, $C0, $5F, $7E, $9D, $E0, $5F, $7E
db $9E, $00, $5F, $7E, $9E, $20, $5F, $7E, $9E, $40, $5F, $7E, $9E, $60, $5F, $7E
db $9E, $80, $5F, $7E, $9E, $A0, $5F, $7E, $9E, $C0, $5F, $7E, $9E, $E0, $5F, $7E
db $9F, $00, $5F, $7E, $9F, $20, $5F, $7E, $9F, $40, $5F, $7E, $9F, $60, $5F, $7E
db $9F, $80, $5F, $7E, $9F, $A0, $5F, $7E, $9F, $C0, $5F, $7E, $9F, $E0, $5F, $7E
db $9C, $A9, $41, $7F, $9C, $C8, $43, $7F, $9C, $E7, $45, $7F, $9D, $07, $45, $7F
db $9D, $28, $43, $7F, $9D, $49, $41, $7F, $00
BGCopyRequest0A:: ; Game Over
db $98, $65, $4B, $7F, $98, $83, $4D, $7F, $98, $A3, $4D, $7F, $98, $C3, $4D, $7F
db $98, $E3, $4D, $7F, $99, $03, $4D, $7F, $99, $23, $4D, $7F, $99, $43, $4D, $7F
db $99, $63, $4D, $7F, $99, $83, $4D, $7F, $99, $A3, $4D, $7F, $99, $C3, $4D, $7F
db $98, $42, $0F, $90, $91, $92, $93, $94, $98, $99, $98, $99, $98, $99, $98, $99
db $98, $99, $A4, $98, $62, $02, $95, $96, $97, $98, $82, $8B, $9E, $9C, $9E, $9C
db $9E, $9C, $9E, $9C, $9E, $9C, $9E, $A5, $99, $E3, $0E, $9A, $9B, $9A, $9B, $9A
db $9B, $9A, $9B, $9A, $9B, $9A, $9B, $9A, $9B, $A6, $98, $71, $8B, $9D, $9F, $9D
db $9F, $9D, $9F, $9D, $9F, $9D, $9F, $9D, $9F, $9A, $03, $0E, $A7, $A8, $A7, $A8
db $A7, $A8, $A7, $A8, $A7, $A8, $A7, $A8, $A7, $A8, $A7, $98, $86, $47, $A2, $98
db $A5, $09, $A0, $80, $81, $82, $83, $84, $85, $86, $87, $A1, $98, $C5, $09, $A0
db $88, $89, $8A, $8B, $8C, $8D, $8E, $8F, $A1, $98, $E6, $47, $A3, $99, $05, $0A
db $A9, $AA, $AB, $AC, $AD, $B0, $B1, $B2, $B3, $B4, $B5, $99, $45, $07, $A9, $AA
db $AB, $AC, $AD, $B6, $B7, $B8, $99, $85, $05, $B0, $B1, $B2, $B3, $B4, $B5, $99
db $A5, $0A, $C5, $C6, $C7, $C8, $C9, $CA, $A9, $AA, $CB, $CC, $CD, $00
BGCopyRequest0D:: ; Save + Quit menu
db $98, $A5, $4B, $7F, $98, $C3, $4D, $7F, $98, $E3, $4D, $7F, $99, $03, $4D, $7F
db $99, $23, $4D, $7F, $99, $43, $4D, $7F, $98, $82, $0F, $90, $91, $92, $93, $94
db $98, $99, $98, $99, $98, $99, $98, $99, $98, $99, $A4, $98, $A2, $02, $95, $96
db $97, $98, $C2, $84, $9E, $9C, $9E, $9C, $9E, $98, $B1, $85, $9D, $9F, $9D, $9F
db $9D, $9F, $99, $62, $0F, $A5, $9A, $9B, $9A, $9B, $9A, $9B, $9A, $9B, $9A, $9B
db $9A, $9B, $9A, $9B, $A6, $99, $82, $0F, $A8, $A7, $A8, $A7, $A8, $A7, $A8, $A7
db $A8, $A7, $A8, $A7, $A8, $A7, $A8, $A7, $98, $E5, $09, $B9, $BA, $BB, $BC, $BD
db $C0, $C1, $C2, $C3, $C4, $99, $25, $07, $A9, $AA, $AB, $AC, $AD, $B6, $B7, $B8
db $00
BGCopyRequest0E::
db $98, $00, $5F, $7F, $98, $20, $5F, $7F, $98, $40, $5F, $7F, $98, $60, $5F, $7F
db $98, $80, $1F, $80, $81, $82, $83, $80, $81, $82, $83, $80, $81, $82, $83, $80
db $81, $82, $83, $80, $81, $82, $83, $80, $81, $82, $83, $80, $81, $82, $83, $80
db $81, $82, $83, $98, $A0, $1F, $84, $85, $86, $87, $84, $85, $86, $87, $84, $85
db $86, $87, $84, $85, $86, $87, $84, $85, $86, $87, $84, $85, $86, $87, $84, $85
db $86, $87, $84, $85, $86, $87, $98, $C0, $1F, $88, $89, $8A, $8B, $88, $89, $8A
db $8B, $88, $89, $8A, $8B, $88, $89, $8A, $8B, $88, $89, $8A, $8B, $88, $89, $8A
db $8B, $88, $89, $8A, $8B, $88, $89, $8A, $8B, $98, $E0, $5F, $7C, $99, $00, $5F
db $7C, $99, $20, $5F, $7C, $99, $40, $1F, $90, $91, $92, $93, $90, $91, $92, $93
db $90, $91, $92, $93, $90, $91, $92, $93, $90, $91, $92, $93, $90, $91, $92, $93
db $90, $91, $92, $93, $90, $91, $92, $93, $99, $60, $1F, $94, $95, $96, $97, $94
db $95, $96, $97, $94, $95, $96, $97, $94, $95, $96, $97, $94, $95, $96, $97, $94
db $95, $96, $97, $94, $95, $96, $97, $94, $95, $96, $97, $99, $80, $1F, $8C, $8D
db $8E, $8F, $8C, $8D, $8E, $8F, $8C, $8D, $8E, $8F, $8C, $8D, $8E, $8F, $8C, $8D
db $8E, $8F, $8C, $8D, $8E, $8F, $8C, $8D, $8E, $8F, $8C, $8D, $8E, $8F, $99, $A0
db $1F, $98, $99, $9A, $9B, $98, $99, $9A, $9B, $98, $99, $9A, $9B, $98, $99, $9A
db $9B, $98, $99, $9A, $9B, $98, $99, $9A, $9B, $98, $99, $9A, $9B, $98, $99, $9A
db $9B, $99, $C0, $1F, $7F, $7F, $9C, $9D, $7F, $7F, $9C, $9D, $7F, $7F, $9C, $9D
db $7F, $7F, $9C, $9D, $7F, $7F, $9C, $9D, $7F, $7F, $9C, $9D, $7F, $7F, $9C, $9D
db $7F, $7F, $9C, $9D, $99, $E0, $5F, $7F, $9A, $00, $5F, $7F, $9A, $20, $5F, $7F
db $9A, $40, $5F, $7F, $9A, $60, $5F, $7F, $00
BGCopyRequest25::
db $98, $00, $5F, $7F, $98, $20, $5F, $7F, $98, $40, $5F, $7F, $98, $60, $5F, $7F
db $98, $80, $1F, $80, $81, $82, $83, $80, $81, $82, $83, $80, $81, $82, $83, $80
db $81, $82, $83, $80, $81, $82, $83, $80, $81, $82, $83, $80, $81, $82, $83, $80
db $81, $82, $83, $98, $A0, $1F, $84, $85, $86, $87, $84, $85, $86, $87, $84, $85
db $86, $87, $84, $85, $86, $87, $84, $85, $86, $87, $84, $85, $86, $87, $84, $85
db $86, $87, $84, $85, $86, $87, $98, $C0, $1F, $88, $89, $8A, $8B, $88, $89, $8A
db $8B, $88, $89, $8A, $8B, $88, $89, $8A, $8B, $88, $89, $8A, $8B, $88, $89, $8A
db $8B, $88, $89, $8A, $8B, $88, $89, $8A, $8B, $98, $E0, $5F, $7D, $99, $00, $5F
db $7D, $99, $20, $5F, $7D, $99, $40, $1F, $90, $91, $92, $93, $90, $91, $92, $93
db $90, $91, $92, $93, $90, $91, $92, $93, $90, $91, $92, $93, $90, $91, $92, $93
db $90, $91, $92, $93, $90, $91, $92, $93, $99, $60, $1F, $94, $95, $96, $97, $94
db $95, $96, $97, $94, $95, $96, $97, $94, $95, $96, $97, $94, $95, $96, $97, $94
db $95, $96, $97, $94, $95, $96, $97, $94, $95, $96, $97, $99, $80, $1F, $8C, $8D
db $8E, $8F, $8C, $8D, $8E, $8F, $8C, $8D, $8E, $8F, $8C, $8D, $8E, $8F, $8C, $8D
db $8E, $8F, $8C, $8D, $8E, $8F, $8C, $8D, $8E, $8F, $8C, $8D, $8E, $8F, $99, $A0
db $1F, $98, $99, $9A, $9B, $98, $99, $9A, $9B, $98, $99, $9A, $9B, $98, $99, $9A
db $9B, $98, $99, $9A, $9B, $98, $99, $9A, $9B, $98, $99, $9A, $9B, $98, $99, $9A
db $9B, $99, $C0, $1F, $7F, $7F, $9C, $9D, $7F, $7F, $9C, $9D, $7F, $7F, $9C, $9D
db $7F, $7F, $9C, $9D, $7F, $7F, $9C, $9D, $7F, $7F, $9C, $9D, $7F, $7F, $9C, $9D
db $7F, $7F, $9C, $9D, $99, $E0, $5F, $7F, $9A, $00, $5F, $7F, $9A, $20, $5F, $7F
db $9A, $40, $5F, $7F, $9A, $60, $5F, $7F, $00
BGCopyRequest0F:: ; Link bracing himself in the intro
db $98, $00, $5F, $7F, $98, $20, $5F, $7F, $98, $40, $1F, $7F, $7F, $7F, $7F, $7F
db $7F, $7F, $7F, $A0, $A1, $A2, $A3, $A4, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F
db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $98, $60, $1F, $7F, $7F
db $7F, $7F, $7F, $7F, $7F, $27, $28, $29, $2A, $B3, $B4, $7F, $7F, $7F, $7F, $7F
db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $98, $80
db $1F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $A5, $A6, $A7, $A8, $A9, $7F, $7F, $7F
db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F
db $7F, $98, $A0, $1F, $7F, $7F, $9E, $7F, $7F, $7F, $7F, $B0, $B1, $B2, $AA, $AB
db $7F, $AC, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F
db $7F, $7F, $7F, $7F, $98, $C0, $1F, $7F, $7F, $9F, $AD, $7F, $7F, $B7, $A1, $A2
db $B9, $BA, $BB, $BC, $BD, $BE, $BF, $C0, $C1, $7F, $7F, $7F, $7F, $7F, $7F, $7F
db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $98, $E0, $1F, $7F, $7F, $AE, $AF, $B5, $C2
db $C3, $B1, $B2, $C5, $C6, $C7, $C8, $C9, $CA, $CB, $CC, $CD, $7F, $7F, $7F, $7F
db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $99, $00, $1F, $7F, $7F, $CE
db $CF, $B8, $D0, $D1, $A2, $A3, $D2, $D3, $D4, $D5, $D6, $D7, $D8, $D9, $7F, $7F
db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $99, $20, $1F
db $7F, $7F, $7F, $DC, $DD, $DE, $C4, $26, $B3, $DF, $E0, $E1, $E2, $E3, $E4, $E5
db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F
db $99, $40, $1F, $7F, $7F, $7F, $7F, $E8, $E9, $EA, $EB, $DA, $7F, $EC, $ED, $EE
db $EF, $F0, $F1, $F2, $F3, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F
db $7F, $7F, $7F, $99, $60, $1F, $7F, $7F, $7F, $7F, $B0, $B1, $F4, $F5, $F6, $F7
db $F8, $F9, $FA, $FB, $FC, $FD, $FE, $FF, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F
db $7F, $7F, $7F, $7F, $7F, $7F, $99, $80, $1F, $7F, $7F, $7F, $A0, $A1, $A2, $A3
db $00, $01, $02, $03, $04, $05, $06, $07, $08, $09, $0A, $7F, $7F, $7F, $7F, $7F
db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $99, $A0, $1F, $7F, $7F, $7F, $B0
db $B1, $B2, $B3, $0B, $0C, $0D, $0E, $0F, $10, $11, $12, $13, $7F, $7F, $7F, $7F
db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $99, $C0, $1F, $7F
db $7F, $A0, $A1, $A2, $A3, $A4, $7F, $7F, $7F, $14, $15, $16, $17, $18, $19, $7F
db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $99
db $E0, $1F, $7F, $7F, $B0, $B1, $B2, $B3, $B4, $7F, $7F, $DB, $E6, $E7, $1A, $1B
db $1C, $1D, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F
db $7F, $7F, $9A, $00, $5F, $7F, $9A, $20, $5F, $7F, $9A, $40, $5F, $7F, $9A, $60
db $5F, $7F, $9B, $A0, $5F, $7F, $9B, $C0, $5F, $7F, $00
BGCopyRequest10::
db $98, $00, $1F, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $7C, $7C, $7C, $7C, $7C, $7C, $7C, $44, $45, $7D, $7D, $7D, $7D, $7D, $7D, $7D
db $7D, $7D, $7D, $98, $20, $1F, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $7C, $7C, $7C, $7C, $7C, $7C, $40, $41, $42, $43, $7D, $7D, $7D, $7D, $7D, $7D
db $7D, $7D, $7D, $7D, $7D, $7D, $98, $40, $1F, $7C, $7C, $7C, $7C, $40, $41, $42
db $43, $47, $48, $49, $4A, $40, $41, $42, $43, $7D, $7D, $7D, $7D, $7D, $7D, $7D
db $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $98, $60, $1F, $40, $41, $42, $43
db $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D
db $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $98, $80, $5F, $7D
db $98, $A0, $5F, $7D, $98, $C0, $5F, $7D, $98, $E0, $5F, $7D, $99, $00, $1F, $38
db $39, $3A, $3B, $38, $39, $3A, $3B, $38, $39, $3A, $3B, $38, $39, $3A, $3B, $38
db $39, $3A, $3B, $38, $39, $3A, $3B, $38, $39, $3A, $3B, $38, $39, $3A, $3B, $99
db $20, $1F, $3C, $3D, $3E, $3F, $3C, $3D, $3E, $3F, $3C, $3D, $3E, $3F, $3C, $3D
db $3E, $3F, $3C, $3D, $3E, $3F, $3C, $3D, $3E, $3F, $3C, $3D, $3E, $3F, $3C, $3D
db $3E, $3F, $99, $40, $1F, $60, $61, $62, $63, $60, $61, $62, $63, $60, $61, $62
db $63, $60, $61, $62, $63, $60, $61, $62, $63, $60, $61, $62, $63, $60, $61, $62
db $63, $60, $61, $62, $63, $99, $60, $1F, $4E, $4F, $4E, $4F, $4E, $4F, $4E, $4F
db $4E, $4F, $4E, $4F, $4E, $4F, $4E, $4F, $4E, $4F, $4E, $4F, $4E, $4F, $4E, $4F
db $4E, $4F, $4E, $4F, $4E, $4F, $4E, $4F, $99, $80, $5F, $7E, $99, $A0, $5F, $7E
db $99, $C0, $5F, $64, $99, $E0, $1F, $30, $31, $32, $33, $30, $31, $32, $33, $30
db $31, $32, $33, $30, $31, $32, $33, $30, $31, $32, $33, $30, $31, $32, $33, $30
db $31, $32, $33, $30, $31, $32, $33, $9A, $00, $1F, $34, $35, $36, $37, $34, $35
db $36, $37, $34, $35, $36, $37, $34, $35, $36, $37, $34, $35, $36, $37, $34, $35
db $36, $37, $34, $35, $36, $37, $34, $35, $36, $37, $9A, $20, $5F, $7C, $00
BGCopyRequest11::
db $98, $00, $53, $7E, $98, $20, $53, $7E, $98, $40, $13, $7E, $7E, $80, $81, $82
db $83, $84, $85, $86, $87, $88, $89, $8A, $8B, $8C, $8D, $8E, $8F, $7E, $7E, $98
db $60, $13, $7E, $7E, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99, $9A, $9B
db $9C, $9D, $9E, $9F, $7E, $7E, $98, $80, $13, $7E, $7E, $A0, $A1, $A2, $A3, $A4
db $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC, $AD, $AE, $AF, $7E, $7E, $98, $A0, $13
db $7E, $7E, $B0, $B1, $B2, $B3, $B4, $B5, $B6, $B7, $B8, $B9, $BA, $BB, $BC, $BD
db $BE, $BF, $7E, $7E, $98, $C0, $13, $7E, $7E, $C0, $C1, $C2, $C3, $C4, $C5, $C6
db $C7, $C8, $C9, $CA, $CB, $CC, $CD, $CE, $CF, $7E, $7E, $98, $E0, $13, $7E, $7E
db $D0, $D1, $D2, $D3, $D4, $D5, $D6, $D7, $D8, $D9, $DA, $DB, $DC, $DD, $DE, $DF
db $7E, $7E, $99, $00, $13, $7E, $7E, $E0, $E1, $E2, $E3, $E4, $E5, $E6, $E7, $E8
db $E9, $EA, $EB, $EC, $ED, $EE, $EF, $7E, $7E, $99, $20, $13, $7E, $7E, $75, $7E
db $78, $77, $75, $78, $79, $2B, $2C, $79, $79, $77, $75, $78, $77, $75, $7E, $7E
db $99, $40, $13, $77, $78, $7C, $79, $7C, $7C, $7C, $7C, $50, $51, $52, $53, $7C
db $7C, $7C, $7C, $7C, $7C, $77, $78, $99, $60, $13, $7C, $7C, $7C, $73, $74, $76
db $73, $7A, $54, $55, $56, $57, $7A, $74, $76, $73, $74, $7C, $7C, $7C, $99, $80
db $13, $7C, $7C, $73, $75, $78, $77, $78, $79, $58, $59, $5A, $5B, $79, $79, $77
db $75, $7E, $74, $7C, $7C, $99, $A0, $13, $7C, $7C, $77, $7A, $7A, $74, $73, $74
db $5C, $5D, $5E, $5F, $73, $74, $73, $7A, $7E, $78, $7C, $7C, $99, $C0, $13, $7C
db $7C, $7C, $77, $75, $7E, $7E, $7E, $7E, $7E, $7E, $7E, $7E, $7E, $7E, $75, $78
db $7C, $7C, $7C, $99, $E0, $13, $7C, $7C, $7C, $65, $66, $67, $68, $69, $6A, $6B
db $6C, $6D, $6E, $6F, $70, $71, $72, $7C, $7C, $7C, $9A, $00, $13, $7C, $7C, $7C
db $7C, $44, $45, $7D, $2D, $2E, $2D, $2E, $2D, $2E, $7D, $4C, $4D, $7C, $7C, $7C
db $7C, $9A, $20, $13, $7C, $7C, $44, $45, $7D, $7D, $7D, $7D, $7D, $7D, $7D, $7D
db $7D, $7D, $7D, $7D, $4C, $4D, $7C, $7C, $00
BGCopyRequest15:: ; Face Shrine mural
db $98, $00, $13, $00, $01, $02, $03, $00, $01, $02, $03, $00, $01, $02, $03, $00
db $01, $02, $03, $00, $01, $02, $03, $98, $20, $13, $10, $11, $12, $13, $10, $11
db $12, $13, $10, $11, $12, $13, $10, $11, $12, $13, $10, $11, $12, $13, $98, $40
db $13, $02, $03, $04, $05, $06, $07, $06, $07, $07, $06, $06, $07, $06, $07, $07
db $07, $06, $08, $00, $01, $98, $60, $13, $12, $13, $09, $0A, $0B, $14, $0C, $0D
db $0E, $0F, $0B, $15, $14, $15, $0B, $14, $16, $17, $10, $11, $98, $80, $13, $00
db $03, $18, $19, $1A, $1B, $1C, $1D, $1E, $1F, $20, $21, $22, $1E, $20, $22, $24
db $25, $00, $03, $98, $A0, $13, $10, $13, $26, $27, $28, $29, $2A, $2B, $2C, $22
db $21, $37, $21, $22, $1F, $20, $42, $2D, $10, $13, $98, $C0, $13, $02, $03, $18
db $2E, $2F, $30, $42, $1D, $40, $21, $1F, $22, $20, $1F, $37, $21, $40, $31, $00
db $01, $98, $E0, $13, $12, $13, $32, $33, $34, $42, $35, $36, $1D, $22, $20, $1F
db $39, $37, $38, $39, $42, $2D, $10, $11, $99, $00, $13, $00, $03, $3A, $3B, $2B
db $2C, $3C, $1D, $3D, $3E, $3F, $42, $40, $40, $40, $40, $3C, $31, $00, $03, $99
db $20, $13, $10, $13, $18, $41, $42, $3C, $1D, $42, $43, $44, $45, $40, $42, $40
db $42, $1D, $46, $31, $10, $13, $99, $40, $13, $02, $03, $18, $47, $48, $49, $4A
db $4B, $48, $49, $4A, $4C, $4D, $4E, $3C, $4F, $50, $2D, $00, $01, $99, $60, $13
db $12, $13, $51, $52, $53, $54, $55, $56, $57, $58, $56, $58, $59, $5A, $5B, $5C
db $5D, $2D, $10, $11, $99, $80, $13, $02, $03, $5E, $5F, $60, $61, $62, $63, $64
db $65, $63, $64, $66, $67, $68, $69, $6A, $31, $00, $03, $99, $A0, $13, $10, $13
db $18, $6B, $6C, $6D, $70, $6E, $6F, $70, $6E, $6F, $71, $72, $42, $73, $50, $2D
db $10, $13, $99, $C0, $13, $02, $03, $26, $41, $42, $1D, $3C, $1D, $74, $75, $76
db $1D, $40, $1D, $35, $36, $77, $78, $00, $01, $99, $E0, $13, $12, $13, $79, $10
db $7B, $7A, $7B, $7A, $7C, $7D, $23, $7A, $7B, $7B, $7A, $7A, $7F, $13, $10, $11
db $9A, $00, $13, $00, $01, $02, $03, $00, $01, $02, $03, $00, $01, $02, $03, $00
db $01, $02, $03, $00, $01, $02, $03, $9A, $20, $13, $10, $11, $12, $13, $10, $11
db $12, $13, $10, $11, $12, $13, $10, $11, $12, $13, $10, $11, $12, $13, $00
BGCopyRequest12::
db $98, $00, $53, $05, $98, $20, $53, $05, $98, $40, $53, $05, $98, $60, $53, $05
db $98, $80, $53, $05, $98, $A0, $53, $05, $98, $C0, $53, $05, $98, $E0, $53, $05
db $99, $00, $53, $05, $99, $20, $53, $05, $99, $40, $53, $05, $99, $60, $53, $05
db $99, $80, $53, $05, $99, $A0, $53, $05, $99, $C0, $53, $05, $99, $E0, $53, $05
db $9A, $00, $53, $05, $9A, $20, $53, $05, $98, $00, $53, $05, $98, $20, $53, $05
db $98, $40, $13, $05, $05, $05, $05, $05, $7B, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $7C, $7E, $05, $05, $05, $05, $05, $98, $60, $13, $05, $05, $05, $05, $05, $7F
db $00, $01, $02, $03, $04, $05, $06, $07, $7F, $05, $05, $05, $05, $05, $98, $80
db $13, $05, $05, $05, $05, $05, $7F, $10, $11, $12, $13, $14, $15, $16, $17, $7F
db $05, $05, $05, $05, $05, $98, $A0, $13, $05, $05, $05, $05, $05, $7F, $20, $21
db $22, $23, $24, $25, $26, $27, $7F, $05, $05, $05, $05, $05, $98, $C0, $13, $05
db $05, $05, $05, $05, $7F, $30, $31, $32, $33, $34, $35, $36, $37, $7F, $05, $05
db $05, $05, $05, $98, $E0, $13, $05, $05, $05, $05, $05, $7F, $40, $41, $42, $43
db $44, $45, $46, $47, $7F, $05, $05, $05, $05, $05, $99, $00, $13, $05, $05, $05
db $05, $05, $7F, $50, $51, $52, $53, $54, $55, $56, $57, $7F, $05, $05, $05, $05
db $05, $99, $20, $13, $05, $05, $05, $05, $05, $7F, $60, $61, $62, $63, $64, $65
db $66, $67, $7F, $05, $05, $05, $05, $05, $99, $40, $13, $05, $05, $05, $05, $05
db $7F, $70, $71, $72, $73, $74, $75, $76, $77, $7F, $05, $05, $05, $05, $05, $99
db $60, $13, $05, $05, $05, $05, $05, $7F, $08, $09, $0A, $0B, $0C, $0D, $0E, $0F
db $7F, $68, $05, $05, $05, $05, $99, $80, $13, $05, $05, $05, $05, $05, $7F, $18
db $19, $1A, $1B, $1C, $1D, $1E, $1F, $7F, $78, $79, $05, $05, $05, $99, $A0, $13
db $05, $05, $05, $05, $05, $7D, $3E, $4D, $4E, $58, $69, $6A, $6B, $6C, $6D, $6E
db $6F, $05, $05, $05, $99, $C0, $13, $05, $05, $05, $05, $05, $05, $05, $05, $05
db $05, $28, $29, $2A, $2B, $2C, $2D, $2E, $2F, $05, $05, $99, $E0, $13, $05, $05
db $05, $05, $05, $05, $05, $05, $05, $05, $38, $39, $3A, $3B, $3C, $3D, $3D, $3F
db $05, $05, $9A, $00, $13, $05, $05, $05, $05, $05, $05, $05, $05, $05, $05, $48
db $49, $4A, $4B, $4C, $3D, $3D, $4F, $05, $05, $9A, $20, $13, $05, $05, $05, $05
db $05, $05, $05, $05, $05, $05, $05, $59, $5A, $5B, $5C, $5D, $5E, $5F, $05, $05
db $00
BGCopyRequest13:: ; Marin at the beach cutscene
db $98, $00, $53, $7C, $98, $20, $53, $7C, $98, $40, $53, $7C, $98, $60, $13, $06
db $07, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $7C, $08, $09, $98, $80, $13, $7F, $16, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $17, $7F, $98, $A0, $13, $7F, $7F, $06
db $07, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $08, $09, $06, $07, $08, $09, $7F
db $7F, $98, $C0, $13, $0D, $0E, $0F, $20, $7C, $7C, $7C, $7C, $7C, $7C, $7C, $7C
db $17, $7F, $7F, $16, $0A, $0B, $0C, $0D, $98, $E0, $13, $1D, $1E, $1F, $30, $06
db $07, $7C, $7C, $7C, $7C, $08, $09, $7F, $7F, $7F, $7F, $1A, $1B, $1C, $1D, $99
db $00, $13, $24, $25, $26, $27, $7F, $16, $7C, $7C, $7C, $7C, $17, $7F, $7F, $7F
db $7F, $7F, $21, $22, $23, $24, $99, $20, $13, $34, $35, $36, $37, $50, $51, $50
db $51, $50, $51, $50, $51, $50, $51, $50, $51, $31, $32, $33, $34, $99, $40, $13
db $2B, $2C, $2D, $2E, $52, $53, $52, $53, $52, $53, $52, $53, $52, $53, $52, $53
db $28, $29, $2A, $2B, $99, $60, $13, $3B, $3C, $54, $55, $54, $55, $54, $55, $54
db $55, $54, $55, $54, $55, $54, $55, $54, $55, $3A, $3B, $99, $80, $13, $3E, $3F
db $56, $57, $56, $57, $56, $57, $56, $57, $56, $57, $56, $57, $56, $57, $56, $57
db $3D, $3E, $99, $A0, $13, $3E, $3F, $00, $01, $00, $01, $00, $01, $00, $01, $00
db $01, $00, $01, $00, $01, $00, $01, $3D, $3E, $99, $C0, $13, $3E, $3F, $10, $11
db $10, $11, $10, $11, $10, $11, $10, $11, $10, $11, $04, $05, $10, $11, $3D, $3E
db $99, $E0, $13, $43, $44, $45, $46, $04, $05, $02, $18, $19, $38, $39, $4E, $4F
db $03, $14, $15, $40, $41, $42, $43, $9A, $00, $13, $4A, $4B, $4C, $4D, $14, $15
db $12, $13, $12, $13, $12, $13, $12, $13, $12, $13, $47, $48, $49, $4A, $9A, $20
db $13, $12, $13, $12, $13, $12, $13, $12, $13, $12, $13, $12, $13, $12, $13, $12
db $13, $12, $13, $12, $13, $9A, $40, $53, $7C, $9A, $60, $53, $7C, $9A, $80, $53
db $7C, $9A, $A0, $53, $7C, $9A, $C0, $53, $7C, $9A, $E0, $53, $7C, $9B, $00, $53
db $7C, $9B, $20, $53, $7C, $9B, $40, $53, $7C, $9B, $60, $53, $7C, $9B, $80, $53
db $7C, $9B, $A0, $53, $7C, $9B, $C0, $53, $7C, $9B, $E0, $53, $7C, $00
BGCopyRequest23::
db $98, $00, $13, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $04, $05, $06, $07, $7F
db $7F, $7F, $7F, $7F, $7F, $7F, $7F, $98, $20, $13, $7F, $7F, $7F, $7F, $7F, $7F
db $7F, $7F, $30, $7F, $7F, $40, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $98, $40
db $13, $7F, $7F, $7F, $7F, $7F, $00, $01, $02, $03, $03, $01, $01, $02, $08, $09
db $7F, $7F, $7F, $7F, $7F, $98, $60, $13, $7F, $7F, $7F, $7F, $7F, $10, $11, $12
db $13, $14, $15, $16, $17, $18, $19, $7F, $7F, $7F, $7F, $7F, $98, $80, $13, $7F
db $7F, $7F, $7F, $7F, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $7F, $7F
db $7F, $7F, $7F, $98, $A0, $13, $7F, $7F, $7F, $7F, $7F, $10, $31, $32, $33, $34
db $35, $36, $37, $38, $39, $7F, $7F, $7F, $7F, $7F, $98, $C0, $13, $7F, $7F, $7F
db $7F, $7F, $20, $41, $42, $43, $44, $45, $46, $47, $48, $49, $7F, $7F, $7F, $7F
db $7F, $98, $E0, $13, $7F, $7F, $7F, $7F, $7F, $50, $51, $52, $53, $54, $55, $56
db $57, $58, $59, $7F, $7F, $7F, $7F, $7F, $99, $00, $13, $7F, $7F, $7F, $7F, $7F
db $60, $61, $62, $63, $45, $65, $66, $67, $68, $69, $7F, $7F, $7F, $7F, $7F, $99
db $20, $13, $7F, $7F, $7F, $7F, $7F, $70, $71, $72, $73, $75, $75, $76, $77, $78
db $79, $7F, $7F, $7F, $7F, $7F, $99, $40, $13, $7F, $7F, $7F, $7F, $7F, $0A, $0B
db $0C, $0D, $0E, $0F, $77, $4B, $4C, $4D, $7F, $7F, $7F, $7F, $7F, $99, $60, $13
db $7F, $7F, $7F, $7F, $7F, $1A, $1B, $1C, $1D, $1E, $1F, $5A, $5B, $5C, $5D, $7F
db $7F, $7F, $7F, $7F, $99, $80, $13, $7F, $7F, $7F, $7F, $7F, $2A, $2B, $2C, $2D
db $2E, $2F, $6A, $6B, $1B, $6D, $7F, $7F, $7F, $7F, $7F, $99, $A0, $13, $7F, $7F
db $7F, $7F, $7F, $3A, $3B, $3C, $3D, $3E, $3F, $7A, $7B, $7C, $7D, $7F, $7F, $7F
db $7F, $7F, $99, $C0, $13, $7F, $7F, $7F, $7F, $6E, $4A, $64, $64, $6C, $64, $4A
db $4A, $6C, $4A, $64, $6F, $7F, $7F, $7F, $7F, $99, $E0, $13, $7F, $7F, $7F, $7F
db $7F, $7F, $04, $05, $7F, $4E, $4F, $7F, $06, $07, $7F, $7F, $7F, $7F, $7F, $7F
db $9A, $00, $13, $7F, $7F, $7F, $7F, $7F, $7F, $30, $7F, $7F, $4E, $4F, $7F, $7F
db $40, $7F, $7F, $7F, $7F, $7F, $7F, $9A, $20, $13, $7F, $7F, $7F, $7F, $7F, $7F
db $40, $7F, $7F, $5E, $5F, $7F, $7F, $30, $7F, $7F, $7F, $7F, $7F, $7F, $00, $00

View File

@ -63,7 +63,7 @@ include "data/objects_tilemaps/indoor.cgb.asm"
ColorDungeonObjectsTilemap::
include "data/objects_tilemaps/color_dungeon.asm"
include "data/objects/physics.asm"
include "data/bg_copy_requests.asm"
include "data/backgrounds/background_tile_commands.asm"
; Maps and dialogs
section "bank9",romx[$4000],bank[$09]

143
tools/generate_background_data.py Executable file
View File

@ -0,0 +1,143 @@
#!/usr/bin/env python3
#
# Parse the ROM, and output asm files with the entities pointer tables and data.
import os
import argparse
from textwrap import dedent
from lib.background_parser import *
from lib.utils import BANK
background_descriptors = [
BackgroundTableDescriptor(
name = 'background_tile_commands',
address = BANK(0x20) + 0x052B,
length = 0x4C,
data = BackgroundDescriptor(
address = BANK(0x08) + 0x0DD4,
length = 0x2B4C
)
),
# TODO: The attributes are split into multiple areas where they are stored.
# so we need to split the output into multiple files and make sure not to decode any code.
# But we only need a single pointer list.
#BackgroundTableDescriptor(
# name = 'background_attributes',
# address = BANK(0x24) + 0x1C4B,
# length = 0x4C,
# data = BackgroundDescriptor(
# address = BANK(0x24) + 0x1C97,
# length = 0x203A
# )
#)
]
def to_camel_case(snake_str):
"""Convert a string from snake_case to CamelCase"""
return ''.join(w.title() for w in snake_str.split('_'))
class PointersTableFormatter:
@classmethod
def to_asm(cls, table_name):
return f"{to_camel_case(table_name)}PointersTable::\n"
class PointerFormatter:
@classmethod
def to_asm(cls, table_name, pointer):
if pointer.index == 0 or (pointer.index == 7 and pointer.address > 0xD000): # ignore wrong pointers
return f" dw ${pointer.address:04X}\n"
label = "{}{:02X}".format(to_camel_case(table_name), pointer.index)
return f" dw {label} ; ${pointer.address:04X}\n"
class BackgroundCommandFormatter:
@classmethod
def to_asm(cls, command, table_name, pointers):
asm = ""
for pointer in pointers:
if (pointer.address & 0x3FFF) == (command.address & 0x3FFF):
label = "{}{:02X}".format(to_camel_case(table_name), pointer.index)
asm += f"{label} ; ${pointer.address:04X}\n"
if asm != "":
asm = "\n" + asm
if isinstance(command, BackgroundCommandEnd):
asm += f" db $00 ; end of draw commands\n"
elif isinstance(command, BackgroundCommandSingle):
if command.vertical:
asm += " db ${:02X}, ${:02X}, ${:02X}, ${:02X} ; draw column of {:d}x the same tile\n".format(command.target_address >> 8, command.target_address & 0xFF, (command.amount - 1) | 0xC0, command.data, command.amount)
else:
asm += " db ${:02X}, ${:02X}, ${:02X}, ${:02X} ; draw row of {:d}x the same tile\n".format(command.target_address >> 8, command.target_address & 0xFF, (command.amount - 1) | 0x40, command.data, command.amount)
elif isinstance(command, BackgroundCommandMultiple):
if command.vertical:
asm += " db ${:02X}, ${:02X}, ${:02X} ; draw column of {:d} tiles\n".format(command.target_address >> 8, command.target_address & 0xFF, (len(command.data) - 1) | 0x80, len(command.data))
else:
asm += " db ${:02X}, ${:02X}, ${:02X}; draw row of {:d} tiles\n".format(command.target_address >> 8, command.target_address & 0xFF, (len(command.data) - 1), len(command.data))
asm += " db " + ", ".join(map(lambda b: "${:02X}".format(b), command.data)) + "\n"
else:
raise RuntimeError("Unknown command: %s" % (command))
return asm
if __name__ == "__main__":
arg_parser = argparse.ArgumentParser()
arg_parser.add_argument("rompath", nargs="?", metavar="rompath", type=str)
arg_parser.add_argument("target", nargs="?", metavar="target", type=str)
arg_parser.add_argument("--dump", metavar="dump", action="store_const", const=True)
args = arg_parser.parse_args()
rom_path = args.rompath or 'Zelda.gbc'
target_dir = args.target or os.path.join('src', 'data', 'backgrounds')
dump = args.dump
disclaimer = "; File generated automatically by `tools/generate_background_data.py`\n\n"
for background_descriptor in background_descriptors:
# Parse background table and lists
background_table_parser = BackgroundTableParser(rom_path, background_descriptor)
pointers_file = open(os.path.join(target_dir, background_table_parser.name + '_pointers.asm'), 'w')
pointers_file.write(PointersTableFormatter.to_asm(background_table_parser.name))
# Append to the pointers file
for index, pointer in enumerate(background_table_parser.pointers):
pointers_file.write(PointerFormatter.to_asm(background_table_parser.name, pointer))
pointers_file.write("\n")
# Write entities
background_file = open(os.path.join(target_dir, background_table_parser.name + '.asm'), 'w')
background_file.write(disclaimer)
for index, command in enumerate(background_table_parser.list):
background_file.write(BackgroundCommandFormatter.to_asm(command, background_table_parser.name, background_table_parser.pointers))
if dump:
mem = {}
for command in background_table_parser.list:
for pointer in background_table_parser.pointers:
if (pointer.address & 0x3FFF) == (command.address & 0x3FFF):
label = "{}{:02X}".format(to_camel_case(background_table_parser.name), pointer.index)
print(f"{label}:")
if isinstance(command, BackgroundCommandEnd) and mem:
start = min(mem.keys()) & 0xFFE0
end = (max(mem.keys()) | 0x001F) + 1
for row in range(start, end, 0x20):
print(("".join(map(lambda addr: "{:02X}".format(mem[addr]) if addr in mem else " ", range(row, row+0x20)))).rstrip())
mem = {}
elif isinstance(command, BackgroundCommandSingle):
address = command.target_address
for n in range(command.amount):
mem[address] = command.data
if command.vertical:
address += 0x20
else:
address += 1
elif isinstance(command, BackgroundCommandMultiple):
address = command.target_address
for n in range(len(command.data)):
mem[address] = command.data[n]
if command.vertical:
address += 0x20
else:
address += 1
background_file.close()
pointers_file.close()

View File

@ -0,0 +1,109 @@
from collections import namedtuple
# Describe the location of a entities pointers table
BackgroundTableDescriptor = namedtuple('BackgroundTableDescriptor', ['name', 'address', 'length', 'data'])
# Describe the location of a list of entities
BackgroundDescriptor = namedtuple('BackgroundDescriptor', ['address', 'length'])
# Represent a pointer in a pointers table
Pointer = namedtuple('Pointer', ['index', 'address'])
class BackgroundTableParser:
"""
Parse a entities pointers table and its associated entities from a EntitiesTableDescriptor.
"""
def __init__(self, rom_path, table_descriptor):
self.table_descriptor = table_descriptor
self.name = table_descriptor.name
with open(rom_path, 'rb') as rom_file:
rom = rom_file.read()
self.pointers = self._parse_pointers_table(rom, table_descriptor)
self.list = BackgroundListsParser(rom, table_descriptor.data).list
def pointers_for_list(self, list):
local_list_address = list.address - (0x16 * 0x4000) + 0x4000
return [pointer for pointer in self.pointers if pointer.address == local_list_address]
def _parse_pointers_table(self, rom, table_descriptor):
"""Return an array of words in the pointers table"""
# Figure out where the bytes for this pointer are located
table_address = table_descriptor.address
pointers_count = table_descriptor.length // 2
pointers = []
for index in range(0, pointers_count):
pointer_address = table_address + (index * 2)
# Grab the two bytes making up the partial pointer
lower_byte = rom[pointer_address]
higher_byte = rom[pointer_address + 1]
# Combine the two bytes into a single pointer (0x byte1 byte2)
target_address = (higher_byte << 8) + lower_byte
# Store the data into the parsed pointers table
pointer = Pointer(index = index, address = target_address)
pointers.append(pointer)
return pointers
END_OF_LIST = 0x00
class BackgroundListsParser:
"""
Parse an area containing lists of background draw commands (one list per background entry).
"""
def __init__(self, rom, entities_descriptor):
self.list = []
self._parse(rom, entities_descriptor)
def _parse(self, rom, descriptor):
"""Walk the lists, and parse data for each list"""
address = descriptor.address
end_address = descriptor.address + descriptor.length
while address < end_address:
address_high = rom[address]
if address_high == END_OF_LIST:
self.list.append(BackgroundCommandEnd(address))
address += 1
continue
address_low = rom[address+1]
draw_address = (address_high << 8) | address_low
command = rom[address+2] & 0xC0
count = (rom[address + 2] & 0x3F) + 1
if (command & 0xC0) == 0x00:
self.list.append(BackgroundCommandMultiple(address, draw_address, False, rom[address+3:address+3+count]))
address += 3 + count
elif (command & 0xC0) == 0x40:
self.list.append(BackgroundCommandSingle(address, draw_address, False, rom[address+3], count))
address += 4
elif (command & 0xC0) == 0x80:
self.list.append(BackgroundCommandMultiple(address, draw_address, True, rom[address+3:address+3+count]))
address += 3 + count
else:
self.list.append(BackgroundCommandSingle(address, draw_address, True, rom[address+3], count))
address += 4
class BackgroundCommandEnd():
def __init__(self, address):
self.address = address
class BackgroundCommandMultiple:
def __init__(self, address, target_address, vertical, data):
self.address = address
self.target_address = target_address
self.vertical = vertical
self.data = data
class BackgroundCommandSingle:
def __init__(self, address, target_address, vertical, data, amount):
self.address = address
self.target_address = target_address
self.vertical = vertical
self.data = data
self.amount = amount