2018-12-29 18:43:59 +00:00
|
|
|
;license:MIT
|
2020-11-25 22:52:59 +00:00
|
|
|
;(c) 2018-2020 by 4am/qkumba
|
2018-12-29 18:43:59 +00:00
|
|
|
;
|
|
|
|
; reverse engineered from Sapphire's crack screen of 'Crystal Castles'
|
|
|
|
;
|
2018-11-01 02:25:59 +00:00
|
|
|
!cpu 6502
|
2021-10-16 01:34:39 +00:00
|
|
|
!to "build/FX.INDEXED/CRYSTAL",plain
|
2018-11-01 02:25:59 +00:00
|
|
|
*=$6000
|
|
|
|
|
2020-11-27 00:58:20 +00:00
|
|
|
!source "src/fx/macros.a"
|
|
|
|
|
2020-11-25 22:52:59 +00:00
|
|
|
ldx #0
|
|
|
|
stx $51
|
|
|
|
ldx #4
|
|
|
|
stx $50
|
|
|
|
ldx #$17
|
|
|
|
stx $53
|
2020-11-26 02:54:10 +00:00
|
|
|
+READ_ROM_NO_WRITE
|
2020-11-25 22:52:59 +00:00
|
|
|
--- lda $53
|
|
|
|
jsr $FBC1 ; BASCALC
|
|
|
|
ldy #$27
|
|
|
|
-- ldx $51
|
|
|
|
lda @table1, x
|
|
|
|
ldx $50
|
|
|
|
!byte $2C
|
|
|
|
- lsr
|
|
|
|
lsr
|
|
|
|
dex
|
|
|
|
bne -
|
|
|
|
and #3
|
|
|
|
dec $50
|
|
|
|
bne +
|
|
|
|
ldx #4
|
|
|
|
stx $50
|
|
|
|
inc $51
|
|
|
|
+ sta ($28), y
|
|
|
|
dey
|
|
|
|
bpl --
|
|
|
|
dec $53
|
|
|
|
bpl ---
|
|
|
|
iny
|
|
|
|
sty $54
|
|
|
|
lda #<Coordinates
|
|
|
|
sta $FE
|
|
|
|
ldx #>Coordinates
|
|
|
|
stx $FF
|
|
|
|
--- ldx #0
|
|
|
|
-- txa
|
|
|
|
jsr $FBC1 ; BASCALC
|
|
|
|
- lda ($28), y
|
|
|
|
cmp $54
|
|
|
|
bne +
|
|
|
|
tya
|
|
|
|
pha
|
|
|
|
txa
|
|
|
|
jsr @stainc
|
|
|
|
pla
|
|
|
|
jsr @stainc
|
|
|
|
tay
|
|
|
|
+ iny
|
|
|
|
cpy #$28
|
|
|
|
bne -
|
|
|
|
lda #$FF
|
|
|
|
jsr @stainc2
|
|
|
|
inx
|
|
|
|
cpx #$18
|
|
|
|
bcc --
|
|
|
|
inc $54
|
|
|
|
lda $54
|
|
|
|
cmp #4
|
|
|
|
bne ---
|
2020-11-26 02:54:10 +00:00
|
|
|
+READ_RAM1_WRITE_RAM1
|
2020-11-25 22:52:59 +00:00
|
|
|
|
|
|
|
lda #$80
|
|
|
|
sta Coordinates+$840
|
|
|
|
|
2018-11-01 02:25:59 +00:00
|
|
|
lda #$01
|
|
|
|
sta $FD
|
|
|
|
@outerloop
|
|
|
|
dec $FD
|
2020-11-25 22:52:59 +00:00
|
|
|
lda #<Coordinates
|
2018-11-01 02:25:59 +00:00
|
|
|
sta $FE
|
2020-11-25 22:52:59 +00:00
|
|
|
lda #>Coordinates
|
2018-11-01 02:25:59 +00:00
|
|
|
sta $FF
|
|
|
|
ldy #$00
|
|
|
|
@loop
|
|
|
|
lda ($fe),y
|
|
|
|
bpl @copy
|
|
|
|
lda #$10
|
|
|
|
jsr WaitForKeyWithTimeout
|
|
|
|
bmi @exit
|
|
|
|
bpl @next ; always branches
|
|
|
|
@copy
|
|
|
|
tax
|
|
|
|
iny
|
|
|
|
lda ($fe),y
|
|
|
|
tay
|
|
|
|
txa
|
|
|
|
bit $FD
|
|
|
|
bpl +
|
|
|
|
jsr HGRBlockCopy
|
|
|
|
beq @next ; always branches
|
|
|
|
+ jsr HGRBlockToWhite
|
|
|
|
@next
|
|
|
|
inc $FE
|
|
|
|
bne +
|
|
|
|
inc $FF
|
|
|
|
+ inc $FE
|
|
|
|
bne +
|
|
|
|
inc $FF
|
|
|
|
+ ldy #$00
|
|
|
|
lda ($FE),y
|
|
|
|
cmp #$80
|
|
|
|
bne @loop
|
|
|
|
bit $FD
|
|
|
|
bpl @outerloop
|
|
|
|
@exit rts
|
|
|
|
|
2020-11-25 22:52:59 +00:00
|
|
|
@stainc2 jsr @stainc
|
|
|
|
@stainc ldy #0
|
|
|
|
sta ($FE), y
|
|
|
|
inc $FE
|
|
|
|
bne +
|
|
|
|
inc $FF
|
|
|
|
+ rts
|
|
|
|
|
|
|
|
@table1
|
|
|
|
!byte $05, $AF, $05, $AF, $06, $90, $FA, $50, $FA, $50, $50, $5A, $F0, $5A, $F0, $0F
|
|
|
|
!byte $A5, $0F, $A5, $05, $A5, $05, $AF, $05, $AF, $FA, $50, $FA, $50, $5A, $FA, $50
|
|
|
|
!byte $5A, $F0, $5A, $A5, $0F, $A5, $05, $AF, $0F, $A5, $05, $AF, $05, $50, $FA, $50
|
|
|
|
!byte $5A, $F0, $50, $FE, $54, $5E, $F4, $0B, $A1, $01, $AB, $01, $A1, $0B, $A1, $01
|
|
|
|
!byte $AB, $FE, $54, $5E, $F4, $5E, $FE, $54, $FE, $54, $5E, $A1, $01, $AB, $01, $AB
|
|
|
|
!byte $0B, $A1, $0B, $A1, $01, $54, $5E, $F4, $5E, $F4, $54, $FE, $54, $FE, $54, $01
|
|
|
|
!byte $AB, $01, $AB, $01, $A1, $0B, $A1, $0B, $A1, $5E, $F0, $5A, $F0, $5A, $3A, $50
|
|
|
|
!byte $FA, $50, $FA, $AF, $01, $AB, $01, $A8, $3E, $54, $FE, $54, $FE, $AB, $01, $AB
|
|
|
|
!byte $01, $A8, $A1, $0B, $A1, $0B, $A1, $5E, $F4, $5E, $F4, $5E, $54, $FE, $54, $FE
|
|
|
|
!byte $54, $01, $AB, $01, $AB, $01, $0B, $A1, $0B, $A1, $01, $54, $5E, $F4, $5E, $F4
|
|
|
|
!byte $FE, $50, $FA, $50, $5A, $A5, $05, $AF, $05, $AF, $A5, $0F, $A5, $05, $AF, $FA
|
|
|
|
!byte $50, $5A, $F0, $5A, $50, $FA, $50, $5A, $F0, $0F, $A5, $05, $AF, $05, $0F, $A5
|
|
|
|
!byte $05, $AF, $05, $50, $FA, $50, $5A, $F0, $FA, $50, $5A, $F0, $5A, $A5, $0F, $A5
|
|
|
|
!byte $05, $AF, $A5, $05, $AF, $05, $AF, $FA, $50, $FA, $50, $5A, $50, $5A, $F0, $5A
|
|
|
|
!byte $F0, $0F, $A5, $0F, $A5, $05, $05, $AF, $05, $AF, $06, $90, $FA, $50, $FA, $50
|
|
|
|
|
2018-11-01 02:25:59 +00:00
|
|
|
!source "src/wait.a"
|
|
|
|
!source "src/fx/fx.hgr.common.a"
|
2020-11-14 02:24:30 +00:00
|
|
|
+HGR_WHITE_ROUTINES
|
|
|
|
+HGR_BLOCK_COPY_ROUTINES
|
2020-11-25 22:52:59 +00:00
|
|
|
Coordinates
|