#2

Fairlight [FLT] 01

Fairlight [FLT]

1.454 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRT

History

Released
20 October 1987
Code
Woodo
Music
Enlightenment: Druid II by David M. Hanlon (ripped)
Graphics
Woodo
Group
Fairlight — Sweden, founded 14 April 1987

Rated 9.42/10 on CSDb and ranked #2 on intros.c64.org, this is Fairlight's legendary first crack intro — the release that gave the Swedish group its iconic identity. Woodo handled both the code and the artwork, and the soundtrack is a rip of David M. Hanlon's "Enlightenment" from Druid II, preserved in the HVSC under Hanlon's directory. The scrolltext on the accompanying release opens "cracked on the 21st of november 1987... now you can train yourself to kill communists and iranians," a characteristically irreverent product of late-1980s Cold War pop culture. Fairlight was founded in Sweden on 14 April 1987 — only six months before this intro appeared — yet the group would go on to dominate European cracking for years. Hugi devoted issue #38 to the group's history in "The Delight of Eternal Might — The History of Fairlight" and ran a companion interview with Wiklund in the same issue.

Sources: CSDb · docsnyderspage · Hugi #38

flt-01.asm 1.454 lines
// ============================================
// output - Part 1 of 2
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:21
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0801  End: $ffff  (63487 bytes)
// Crunched with Exomizer v2/v3 (with relocation) — depacked by emulation
// Packer entry: $0810 (via BASIC SYS 2064)
// Entry point:  $c000 (49152)
// IRQ handler:  $c174 (irq_c174)
// IRQ handler:  $ea31 (loc_ea31)
//
// Code: 740 bytes, Data: 62747 bytes
// Labels: 111, Subroutines: 3
//
// Verification: 5 line(s) auto-corrected to .byte for exact byte matching
//
// Cross-references: all OK
// ============================================


// --- Region $48db-$48db ---
.pc = $48db "Segment $48db"
        brk

// --- Region $8dd0-$8dd0 ---
.pc = $8dd0 "Segment $8dd0"
        brk

// --- Region $9dd9-$9dd9 ---
.pc = $9dd9 "Segment $9dd9"
        brk

// --- Region $c000-$c1a3 ---
.pc = $c000 "main_c000"

main_c000:
        sei
        lda #$c1
        sta $0315
        lda #$74
        sta $0314
        lda #$01
        sta $d012
        sta $d01a
        lda #$7f
        sta $dc0d
        lda #$1b
        sta $d011
        lda #$94
        sta $dd00
        lda #$12
        sta $d018
        lda #$09
        ldx #$00

loc_c02b:
        sta $d800,x
        inx
        bne loc_c02b
        ldx #$20

loc_c033:
        sta $d900,x
        dex
        bne loc_c033
        lda #$01

loc_c03b:
        sta $d920,x
        sta $da00,x
        sta $db00,x
        inx
        bne loc_c03b
        lda #$00
        sta $d020
        sta $d021
        lda #$0a
        sta $d023
        lda #$02
        sta $d022
        lda #$d8
        sta $d016
        lda #$ff
        sta $d015
        lda #$18
        sta chr_d000
        lda #$48
        sta $d002
        lda #$78
        sta $d004
        lda #$a8
        sta $d008
        lda #$d8
        sta $d00a
        lda #$08
        sta $d00c
        lda #$38
        sta $d00e
        lda #$c0
        sta $d010
        lda #$ff
        sta $d01c
        sta $d01d
        lda #$0d
        ldx #$07

loc_c097:
        sta $d027,x
        dex
        bpl loc_c097
        lda #$05
        sta $d025
        lda #$01
        sta $d026
        lda #$00
        sta $02
        jsr sub_c200
        cli

loc_c0af:
        jmp loc_c0af

bmp_c0b2:
        // === Bitmap data (5 bytes, $c0b2-$c0b6) ===
        .byte $a9,$01,$8d,$19,$d0                   // .....

loc_c0b7:
        jsr sub_cc5e
        inc $02
        ldx $02
        lda $c2c0,x
        ldy #$0e

loc_c0c3:
        sta $d001,y
        dey
        dey
        bpl loc_c0c3
        lda $d001
        cmp #$32
        bne loc_c0d9
        lda #$00

loc_c0d3:
        sta $d01b
        jmp loc_c0f0