#243

Genesis Project [G*P] 01

Genesis Project [G*P]

3.707 lines of code

RasterbarsRSTRMusicSIDSpritesSPRT

History

Code
Raistlin
Graphics
Spacie
Music
IQ64 (Trond Kjetil Lindanger)
Released
November 1989
Group
Genesis Project [G*P] -- Germany, founded 1986

Genesis Project Crack Intro #01 -- titled the "Wavy Intro" on CSDb -- is a C64 crack intro released in November 1989 by the German cracking group Genesis Project, self-styled as "Europe's No. 1." The intro was coded by Raistlin, with graphics by Spacie and music by IQ64 (Trond Kjetil Lindanger) using his "Connection" SID composition. Both CSDb and Doc Snyder confirm these credits. Genesis Project was founded in 1986 and became one of the longest-running C64 scene groups, with intros spanning from the late 1980s through modern productions as recent as 2026. Doc Snyder's page documents over twenty numbered crack intros from the group. The release is preserved on CSDb as release #110450, verified through the Doc Snyder link. Other ranked Genesis Project entries include #238 GP Intro #2 and #188 GP Intro #15.

Sources: CSDb · CSDb Group · intros.c64.org · Doc Snyder

gp-01.asm 3.707 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:49
// 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:  $1daa (7594)
// IRQ handler:  $2045 (nmi_2045)
// IRQ handler:  $2022 (irq_2022)
// IRQ handler:  $2046 (irq_2046)
//
// Code: 4083 bytes, Data: 59405 bytes
// Labels: 342, Subroutines: 9
//
// Cross-references: all OK
// ============================================


// --- Region $0dc8-$0dcc ---
.pc = $0dc8 "sub_0dc8"
// Referenced by: jsr from $1ea1

sub_0dc8:
        jmp loc_0dd8

dat_0dcb:
        .byte $4c,$45                               // LE

// --- Region $0dd8-$0e46 ---
.pc = $0dd8 "loc_0dd8"

loc_0dd8:
        lda #$00
        sta smc_0e71                                // SMC: modifies $0e71
        tay
        asl
        clc
        adc smc_0e71
        asl
        sta smc_0e71                                // SMC: modifies $0e71
        lda #$00
        sta $d417
        sta smc_0e60                                // SMC: modifies $0e60
        sta smc_108b                                // SMC: modifies $108b
        lda $1557,y
        and #$0f
        sta $0e52
        cmp #$02
        bcc loc_0e01
        sta smc_108b                                // SMC: modifies $108b

loc_0e01:
        lda $1557,y
        lsr
        lsr
        lsr
        lsr
        sta $0e4b
        jsr sub_0e23
        lda #$1f
        sta $d418
        ldx #$1f

loc_0e15:
        lda #$00
        sta $155a,x
        dex
        bpl loc_0e15
        rts

loc_0e1e:
        lda #$ff
        sta $0e46
// Referenced by: jsr from $0e0b

sub_0e23:
        ldx #$02

loc_0e25:
        ldy $0dd1,x
        lda #$00
        sta $d405,y
        sta $d406,y
        lda #$08
        sta $d404,y
        dex
        bpl loc_0e25
        rts

loc_0e39:
        iny
        lda ($f0),y
        sta $155d,x
        tay
        lda ($f0),y
        jmp loc_0e99

dat_0e45:
        .byte $a9,$01                               // ..

// --- Region $0e56-$12c2 ---
.pc = $0e56 "loc_0e56"

loc_0e56:
        stx $1559
        lda $0dd1,x
        sta loc_156c
.label smc_0e60 = * + 1
        lda #$00                                    // !SMC: modified by $0dec
        beq loc_0e66

dat_0e63:
        .byte $4c,$43,$10                           // LC.

loc_0e66:
        dec $155a,x
        bmi loc_0e6e
        jmp loc_1021

loc_0e6e:
        txa
        clc
.label smc_0e71 = * + 1
        adc #$00                                    // !SMC: modified by $0dda, $0de4
        tay
        lda $1551,y
        sta $f0
        lda $1554,y
        sta $f1
        ldy $155d,x
        lda ($f0),y
        cmp #$fd
        beq loc_0e39
        cmp #$fe
        beq loc_0e1e
        cmp #$ff
        bne loc_0e99
        lda #$00
        sta $1560,x
        sta $155d,x
        tay
        lda ($f0),y

loc_0e99:
        cmp #$c0
        bcc loc_0ea9