#820

Fairlight [FLT] 25

Fairlight [FLT]

1.167 lines of code

RasterbarsRSTRMusicSID

History

Code
Rowdy
Music
David Hanlon
Group
Fairlight — Sweden, founded 14 April 1987

CSDb catalogues this as the "Fairlight Intro (Golden Collection)" — coded by Rowdy with music by David Hanlon. The SID tune is Hanlon's "Enlightenment: Druid II," a composition that became synonymous with Fairlight's crack intros. Doc Snyder's page confirms this association, showing Hanlon's Druid II music appearing across multiple Fairlight intros — a signature sonic identity for the group. Fairlight was a Swedish group founded on 14 April 1987 that became one of the most legendary names in C64 cracking history, later expanding to other platforms. Hugi diskmag covered the group extensively, including a full history article titled "The Delight of Eternal Might." Fairlight's numerous ranked intros — including #2 Flt-01 and #27 Flt-09 — demonstrate the group's sustained creative output. The "Golden Collection" subtitle suggests this intro was associated with a compilation release.

Sources: CSDb · docsnyderspage

flt-25.asm 1.167 lines
// ============================================
// output - Part 1 of 2
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:42
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $ffff  (63488 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $0d18 (3352)
//
// Code: 1012 bytes, Data: 62476 bytes
// Labels: 124, Subroutines: 23
//
// Cross-references: all OK
// ============================================


// --- Region $0d18-$0da9 ---
.pc = $0d18 "main_0d18"

main_0d18:
        jsr $e544
        dex
        stx $0286
        stx $d020
        stx $d021
        stx $d011
        jsr sub_10ae
        jsr sub_1249

loc_0d2e:
        lda #$08
        sta $d8c7,x
        sta $d8f8,x
        lda #$20
        sta $f6f7,x
        sta $d7ff,x
        sta $d9f7,x
        sta $daf6,x
        dex
        bne loc_0d2e
        jsr sub_1005
        lda #$a8
        ldx #$f6
        jsr sub_0f29
        lda #$e4
        ldx #$14
        jsr sub_107e
        lda #$20
        ldx #$f7
        jsr sub_0f29
        lda #$f8
        ldx #$14
        jsr sub_107e
        jsr sub_0f25
        lda #$35
        sta $01

loc_0d6d:
        ldx #$fb
        jsr sub_0e68
        lda #$1b
        sta $d011
        lda #$d8
        sta $d016
        lda $fe
        sec
        sbc #$02
        and #$07
        sta $fe
        bcs loc_0dcd
        ldx #$00

loc_0d89:
        lda $f799,x
        sta $f798,x
        lda $f7c1,x
        sta $f7c0,x
        inx
        cpx #$27
        bne loc_0d89
        lda $fd
        eor #$01
        sta $fd
        beq loc_0dc0
        ldy #$00
        lda #$20
        cmp #$20
        beq loc_0dbc

// --- Region $0dbc-$0de9 ---
.pc = $0dbc "loc_0dbc"

loc_0dbc:
        sta $ff
        bne loc_0dc5

loc_0dc0:
        lda $ff
        clc
        adc #$40

loc_0dc5:
        sta $f7bf
        adc #$80
        sta $f7e7

loc_0dcd:
        jsr sub_0e75
        jsr sub_0f7e
        lda #$10
        sta $d418
        jsr sub_128a
        lda $dc01
        cmp #$ef
        bne loc_0de5
        sta smc_0e76                                // SMC: modifies $0e76

loc_0de5:
        lda #$00
        beq loc_0e19

chr_0de9:
        // === Charset data (1 bytes, $0de9-$0de9) ===
        .byte $aa                                   // char 0 (partial)

// --- Region $0e19-$0eb9 ---
.pc = $0e19 "loc_0e19"

loc_0e19:
        ldx #$97
        ldy #$12
        jsr sub_0e6e
        ldx #$00
        ldy chr_0f40,x
        sty $d021
        pha
        ldx #$59
        jsr sub_0f51
        ldx #$10
        ldy chr_0f40,x
        sty $d021
        pla
        sta $d022
        sta $d023
        ldx #$b9
        jsr sub_0e68
        sta $d021