#935

Motiv 8 [M8] 24

Motiv 8 [M8]

2.959 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRTBitmapBMAP

History

Released
August 1994
Code
Crossfire
Graphics
Sun Dancer
Music
Yoko (Simon Andreasen) — "Get Away (Naked Eye Version)"; Snap (Ronny Nilsen) — "ChechnoBankh"
Group
Motiv 8 — Denmark, founded 8 January 1994

CSDb catalogues this as the "Motiv 8 Intro," released in August 1994 — just seven months after the Danish group's founding on 8 January of that year. Crossfire coded the intro, Sun Dancer provided the graphics, and the soundtrack features two SIDs: Yoko's (Simon Andreasen) "Get Away (Naked Eye Version)" and Snap's (Ronny Nilsen) "ChechnoBankh," both preserved in the HVSC. The dual-music arrangement was characteristic of intros that allowed users to switch between tunes. Motiv 8 was part of the strong Danish cracking scene that included groups like Illusion and Starion. Their other ranked intro in this collection is #490 m8-10. The group's roster drew from established Danish and Scandinavian talent — Snap also contributed music to groups like Atlantis, reflecting the interconnected nature of the Nordic scene in the mid-1990s.

Sources: CSDb

m8-24.asm 2.959 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:55
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $07ee  End: $6a04  (25111 bytes)
// Crunched with Beta Dynamic v3 — depacked by emulation
// Packer entry: $080b (via BASIC SYS 2059)
// Entry point:  $0b00 (2816)
// IRQ handler:  $0d91 (irq_0d91)
// IRQ handler:  $0dc0 (irq_0dc0)
// IRQ handler:  $0dea (irq_0dea)
// IRQ handler:  $0e11 (irq_0e11)
// IRQ handler:  $ea31 (irq_ea31)
//
// Code: 2415 bytes, Data: 22696 bytes
// Labels: 326, Subroutines: 22
//
// Cross-references: all OK
// ============================================


// --- Region $0b00-$0b76 ---
.pc = $0b00 "main_0b00"

main_0b00:
        lda $3fff
        sta chr_0b0e
        lda #$00
        sta $3fff
        jmp loc_0cdc

chr_0b0e:
        // === Charset data (2 bytes, $0b0e-$0b0f) ===
        .byte $00,$00                               // char 0 (partial)
// Referenced by: jsr from $0cfc

sub_0b10:
        lda #$2b
        sta smc_0d2f                                // SMC: modifies $0d2f
        lda #$2a
        sta smc_0d40                                // SMC: modifies $0d40
        sta smc_0d51                                // SMC: modifies $0d51
        sta smc_0d62                                // SMC: modifies $0d62
        sta smc_0d73                                // SMC: modifies $0d73
        sta smc_0d84                                // SMC: modifies $0d84
        lda #$01
        sta smc_0d35                                // SMC: modifies $0d35
        sta smc_0d46                                // SMC: modifies $0d46
        sta smc_0d57                                // SMC: modifies $0d57
        sta smc_0d68                                // SMC: modifies $0d68
        sta smc_0d79                                // SMC: modifies $0d79
        sta smc_0d8a                                // SMC: modifies $0d8a
        lda #$01
        sta smc_0f2c                                // SMC: modifies $0f2c
        lda #$e1
        sta smc_0f4e                                // SMC: modifies $0f4e
        lda #$c1
        sta smc_0f70                                // SMC: modifies $0f70
        lda #$a1
        sta smc_0f92                                // SMC: modifies $0f92
        lda #$81
        sta smc_0fb4                                // SMC: modifies $0fb4
        lda #$61
        sta smc_0fd6                                // SMC: modifies $0fd6
        rts

loc_0b59:
        lda chr_0b0e
        sta $3fff
        sei
        ldx #$00

loc_0b62:
        lda chr_0b76,x
        sta $0340,x
        lda #$00
        sta $d400,x
        inx
        cpx #$50
        bne loc_0b62
        cli
        jmp $0340

chr_0b76:
        // === Charset data (1 bytes, $0b76-$0b76) ===
        .byte $78                                   // char 0 (partial)

// --- Region $0bdf-$0c10 ---
.pc = $0bdf "sub_0bdf"
// Referenced by: jsr from $0f23

sub_0bdf:
        nop
        nop
        nop
        nop
        nop
        ldx #$00

loc_0be6:
        lda $06f9,x
        sta $06f8,x
        lda $0721,x
        sta $0720,x
        lda $0749,x
        sta $0748,x
        lda $0771,x
        sta $0770,x
        inx
        cpx #$27
        bne loc_0be6
        inc smc_0c07
.label smc_0c07 = * + 1
        lda #$01                                    // !SMC: modified by $0c83
.label smc_0c09 = * + 1
        cmp #$02                                    // !SMC: modified by $0c88
        beq chr_0c0f
        jmp loc_0c48

chr_0c0f:
        // === Charset data (2 bytes, $0c0f-$0c10) ===
        .byte $a9,$00                               // char 0 (partial)

// --- Region $0c48-$0ca4 ---
.pc = $0c48 "loc_0c48"

loc_0c48:
        lda $f2
        sta $f4
        lda $f3
        sta $f5
        ldy #$00
        lda ($f4),y
        sta $071f
        jsr sub_0c97
        lda ($f4),y
        sta $0747
        jsr sub_0c97
        lda ($f4),y
        sta $076f
        jsr sub_0c97
        lda ($f4),y
        sta $0797
        jsr sub_0c97
        inc $f2
        bne loc_0c78
        inc $f3