★

Scouse Cracking Group [SCG] 04

Scouse Cracking Group [SCG]

1.420 lines of code

RasterbarsRSTRScrollerSCRL

History

Released
23 May 1987
Code
Unknown (likely Dr.J or Mog)
Music
None
Graphics
Unknown
Group
Scouse Cracking Group — Liverpool, UK, founded July 1986

Liverpool's Scouse Cracking Group delivered one of the most visually striking British intros of 1987: a large custom-charset logo flanked by animated rasterbars that appear to pass both in front of and behind the lettering — an illusion achieved by precise IRQ-timed writes to $D020 and $D021 interleaved with the logo's character rows. A stabilized single-IRQ routine using a double $D012 compare keeps the bars locked across 28 crack releases, making this one of the most-used UK intros of its year. SCG was voted fourth-best cracker group in Illegal magazine issue #19 (August 1987), and this intro was their calling card at the height of that recognition.

Sources: CSDb · CSDb group · Demozoo

scg-04.asm 1.420 lines
// ============================================
// scg-04 - Part 1 of 2
// ============================================
// KickAssembler syntax
// Generated by Restore 64 vdisasm-one 1.0 build 1, 2026-03-29 17:54:23
// 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:  $1000 (4096)
// IRQ handler:  $106d (irq_106d)
//
// Code: 1132 bytes, Data: 62356 bytes
// Labels: 148, Subroutines: 10
//
// Cross-references: all OK
// ============================================


// --- Region $0814-$0851 ---
.pc = $0814 "sub_0814"
// Referenced by: jsr from $ffd9

sub_0814:
        sbc #$eb
        nop
        nop
        .byte $3f,$fa,$ea                           // rla $eafa,x // ILLEGAL
        nop
        nop
        sbc #$e9
        sbc #$ff
        nop
        nop
        nop
        sbc #$e9
        sbc #$e9
        .byte $3f,$fa,$ea                           // rla $eafa,x // ILLEGAL
        nop
        sbc #$eb
        nop
        nop
        .byte $3f,$fa,$ea                           // rla $eafa,x // ILLEGAL
        nop
        sbc #$eb
        nop
        nop
        .byte $3f,$fa,$ea                           // rla $eafa,x // ILLEGAL
        nop
        nop
        sbc #$e9
        sbc #$fd
        sbc #$e9
        sbc #$e9
        sbc #$ea
        nop
        .byte $0f,$0e,$0e                           // slo $0e0e // ILLEGAL
        asl $0e0e
        asl.abs $000e
        brk

// --- Region $09db-$09e0 ---
.pc = $09db "loc_09db"

loc_09db:
        brk

dat_09dc:
        .byte $00                                   // .

loc_09dd:
        brk

dat_09de:
        .byte $00                                   // .

loc_09df:
        brk

loc_09e0:
        brk

// --- Region $0a2c-$0a61 ---
.pc = $0a2c "Program $0a2c"
        eor $fd,x
        lda #$a9
        sbc $a9a9,x
        lda #$55
        sbc $a9a9,x
        sbc $a9a9,x
        lda #$55
        sbc $a9a9,x
        sbc $e9e9,x
        sbc #$e9
        sbc #$a9
        lda #$d0
        bcc loc_09db
        bcc loc_09dd
.label loc_0a4e = * + 1
        bcc loc_09df
        bcc loc_0a4e
        sbc #$e9
        sbc #$e9
        sbc #$e9
        sbc #$fd
        sbc #$e9
        sbc #$e9
        lda #$a5
        sty $00,x
        brk

// --- Region $0e0f-$0e17 ---
.pc = $0e0f "sub_0e0f"
// Referenced by: jsr from $1410

sub_0e0f:
        brk

dat_0e10:
        .byte $a9,$69,$e9,$a9,$a9                   // .i...
        lda $54
        brk

// --- Region $0f03-$0f03 ---
.pc = $0f03 "Program $0f03"
        brk

// --- Region $0f14-$0f14 ---
.pc = $0f14 "sub_0f14"
// Referenced by: jsr from $142e

sub_0f14:
        brk

// --- Region $1000-$119a ---
.pc = $1000 "main_1000"

main_1000:
        sei
        lda #$08
        jsr $ffd2
        lda #$93
        jsr $ffd2
        lda #$0b
        sta $d022
        lda #$0c
        sta $d024
        lda #$12
        sta $d018                                   // screen=$0400, charset=$0800