#687

X-Factor [X-F] 04

X-Factor [X-F]

5.468 lines of code

RasterbarsRSTRMusicSIDScrollerSCRL

History

Released
6 December 1991
Code
Ecco
Music
Link (Klaus Groengaard), Markus Schneider, Jason Brooke, Scortia, Stein Pedersen, Jeff (Soeren Lund), Reyn Ouwehand
Group
X-Factor — Denmark, founded 28 May 1989

Released on 6 December 1991, this is the fourth numbered crack intro from X-Factor, a Danish group founded on 28 May 1989 with the motto "the future of today — the legend of tomorrow." Ecco handled the code — the same coder credited on Doc Snyder's Page for X-Factor's first intro. What sets this intro apart is its extraordinary music selection — CSDb lists eight SID tunes from seven different composers, including Link, Markus Schneider, Jason Brooke, Scortia, Stein Pedersen, Jeff, and Reyn Ouwehand. This multi-tune approach created a jukebox-style intro where listeners could cycle through tracks. The HVSC preserves all eight tunes, spanning compositions like "Visage," "Lingo," "Lawn Tennis," "CoverGirl Strip Poker," "Tjong," "Intro-Sucker," "Effe Snel," and "Bass-Spass." X-Factor maintained a website at xfactor.dk and was part of the Danish scene alongside groups like Dominators and Triad.

Sources: CSDb · Doc Snyder's Page

xf-04.asm 5.468 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:37:03
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $ffff  (63488 bytes)
// Crunched with Exomizer v2/v3 (with relocation) — depacked by emulation
// Packer entry: $0810 (via BASIC SYS 2064)
// Entry point:  $2800 (10240)
// IRQ handler:  $ea31 (irq_ea31)
// IRQ handler:  $2860 (irq_2860)
// IRQ handler:  $2891 (irq_2891)
// IRQ handler:  $28c0 (irq_28c0)
// IRQ handler:  $290a (irq_290a)
// IRQ handler:  $2964 (irq_2964)
//
// Code: 3781 bytes, Data: 59707 bytes
// Labels: 444, Subroutines: 14
//
// Cross-references: all OK
// ============================================


// --- Region $0820-$0824 ---
.pc = $0820 "sub_0820"
// Referenced by: jsr from $ffed

sub_0820:
        .byte $80,$07                               // nop #$07 // ILLEGAL
        .byte $07,$07                               // slo $07 // ILLEGAL

chr_0824:
        // === Charset data (1 bytes, $0824-$0824) ===
        .byte $07                                   // char 0 (partial)

// --- Region $0f04-$0f0b ---
.pc = $0f04 "sub_0f04"
// Referenced by: jsr from $ffe7

sub_0f04:
        .byte $ff,$ff,$ff                           // isc $ffff,x // ILLEGAL
        .byte $ff,$3f,$7f                           // isc $7f3f,x // ILLEGAL

chr_0f0a:
        // === Charset data (2 bytes, $0f0a-$0f0b) ===
        .byte $ff,$7f                               // char 0 (partial)

// --- Region $1000-$1006 ---
.pc = $1000 "sub_1000"
// Referenced by: jsr from $29eb

sub_1000:
        jmp loc_1020
// Referenced by: jsr from $2954, $f7ce

sub_1003:
        jmp loc_108d

scr_1006:
        // === Screen RAM (1 bytes, $1006-$1006) ===
        .encoding "screencode_mixed"
        .text "a"
        .encoding "petscii_upper"

// --- Region $1020-$1251 ---
.pc = $1020 "loc_1020"

loc_1020:
        asl
        asl
        asl
        tay
        ldx #$00

loc_1026:
        lda $16bb,y
        sta $1627,x
        sta $162d,x
        lda $16bc,y
        sta $162a,x
        sta $1630,x
        iny
        iny
        inx
        cpx #$03
        bne loc_1026
        lda $16bb,y
        sta $16b6
        sta $16b7
        lda $1011
        beq loc_1078
        ldx #$02

loc_104f:
        lda $16bc,y
        sta $1633
        and $1634,x
        sta scr_1006,x
        dex
        bpl loc_104f
        bit $1633
        bpl loc_1078
        ldx #$00

loc_1065:
        lda $16bd,y
        sta $162d,x
        lda $16be,y
        sta $1630,x
        iny
        iny
        inx
        cpx #$03
        bne loc_1065

loc_1078:
        ldy #$00
        tya

loc_107b:
        sta $d400,y
        sta $1643,y
        iny
        cpy #$1b
        bne loc_107b
        lda $1009
        sta $d418
        rts

loc_108d:
        lda $fb
        pha
        lda $fc
        pha
        ldx #$02
        dec $16b6
        bpl loc_10a0
        lda $16b7
        sta $16b6

loc_10a0:
        lda scr_1006,x
        bne loc_10a8
        jmp loc_155a

loc_10a8:
        lda $16b6
        bne loc_10b5