#814

X-Factor [X-F] 14

X-Factor [X-F]

2.529 lines of code

RasterbarsRSTRMusicSIDScrollerSCRL

History

Released
March 1990
Code
Ecco
Music
Antti Hannula, JCH (Jens-Christian Huus), Drax (Thomas Mogensen), Jeroen Tel, Michael Simon
NTSC-Fix
Master Kracker
Group
X-Factor — Denmark, founded 28 May 1989

This March 1990 intro from X-Factor is a multi-tune production coded by Ecco, featuring an exceptional roster of five SID composers. The six-track jukebox includes Antti Hannula's "Weekend," two JCH compositions ("Strike Force" and "Kinetic"), Drax's "Pladumec," Jeroen Tel's "S-Express," and Michael Simon's "Living on Video" — all preserved in the HVSC. Master Kracker provided the NTSC fix. X-Factor was a Danish group founded on 28 May 1989, operating under the abbreviation XF with the motto "The future of today — the legend of tomorrow." Doc Snyder's page documents two X-Factor intros, noting Ecco and Zensonic as the group's primary coders. The sheer density of elite composers — JCH, Drax, and Jeroen Tel rank among the most celebrated SID musicians of all time — makes this intro's soundtrack roster remarkable even by the standards of Danish groups, who had privileged access to Scandinavia's deep pool of SID talent.

Sources: CSDb · docsnyderspage

xf-14.asm 2.529 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: $2aff  (8960 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $1b5d (7005)
// IRQ handler:  $ea31 (irq_ea31)
// IRQ handler:  $1c07 (irq_1c07)
// IRQ handler:  $1c3e (irq_1c3e)
// IRQ handler:  $1c94 (irq_1c94)
// IRQ handler:  $1ccf (irq_1ccf)
// IRQ handler:  $1d04 (irq_1d04)
// IRQ handler:  $1d36 (irq_1d36)
// IRQ handler:  $ea07 (irq_ea07)
//
// Code: 3034 bytes, Data: 5926 bytes
// Labels: 275, Subroutines: 18
//
// Cross-references: all OK
// ============================================


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

sub_1000:
        jmp loc_1040
// Referenced by: jsr from $1c72

sub_1003:
        jmp loc_10dc

dat_1006:
        .byte $01                                   // .

// --- Region $1040-$134e ---
.pc = $1040 "loc_1040"

loc_1040:
        asl
        asl
        asl
        tay
        ldx #$00

loc_1046:
        lda $177b,y
        sta $16e9,x
        sta $16ef,x
        lda $177c,y
        sta $16ec,x
        sta $16f2,x
        iny
        iny
        inx
        cpx #$03
        bne loc_1046
        ldx #$00
        stx $100b
        lda $177b,y
        sta $16e8

loc_106a:
        sta $1765,x
        inc $100b
        lda $16e8
        clc
        adc $177b,y
        sta $16e8
        clc
        adc $100b
        inx
        cpx #$10
        bne loc_106a
        lda $1020
        beq loc_10b3
        ldx #$02

loc_108a:
        lda $177c,y
        sta $100b
        and $16f5,x
        sta dat_1006,x
        dex
        bpl loc_108a
        bit $100b
        bpl loc_10b3
        ldx #$00

loc_10a0:
        lda $177d,y
        sta $16ef,x
        lda $177e,y
        sta $16f2,x
        iny
        iny
        inx
        cpx #$03
        bne loc_10a0

loc_10b3:
        ldy #$00
        tya

loc_10b6:
        sta $d400,y
        iny
        cpy #$1b
        bne loc_10b6
        tay

loc_10bf:
        sta $1014,y
        sta $170d,y
        iny
        cpy #$0c
        bne loc_10bf
        lda #$02
        sta $1716
        sta $1717
        sta $1718
        lda $1009
        sta $d418
        rts

loc_10dc:
        ldx #$02
        lda $fb
        pha
        lda $fc
        pha

loc_10e4:
        lda dat_1006,x
        bne loc_10ec
        jmp loc_161b

loc_10ec:
        lda $1716,x
        beq loc_110a
        cmp $1707,x
        bne loc_1104
        lda #$00
        sta $1707,x