#392

Fantastic 4 Cracking Group [F4CG] 31

Fantastic 4 Cracking Group [F4CG]

5.284 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRTBitmapBMAP

History

Group
Fantastic 4 Cracking Group — Italy, founded 1983

The thirty-first numbered intro from Fantastic 4 Cracking Group, coded by Ze Smasher — one of the group's most prolific contributors. On intros.c64.org, Ze Smasher confirmed authorship while scene member Matt of TC described it as "nearly the perfect Intro." F4CG was founded in Italy in 1983 by Ricky and maintained an extraordinary output spanning more than a decade — CSDb documents over 1,600 releases for the group. Ze Smasher also coded #249 F4CG-55 and #865 F4CG-47, among others in the collection. No music or graphics credits have been identified for this intro. The praise it received from the community reflects the quality standard F4CG maintained across their catalogue. The group's Italian origin placed them at the heart of the Southern European scene, where they competed with and frequently traded with Scandinavian and German groups throughout the late 1980s and early 1990s.

Sources: intros.c64.org · CSDb

f4cg-31.asm 5.284 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:31
// 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:  $0d00 (3328)
// IRQ handler:  $0e17 (irq_0e17)
//
// Code: 4125 bytes, Data: 59363 bytes
// Labels: 569, Subroutines: 31
//
// Cross-references: all OK
// ============================================


// --- Region $0a00-$0a3c ---
.pc = $0a00 "loc_0a00"

loc_0a00:
        sei
        jsr $ff5b
        jsr $fd15
        jsr $fda3
        cli
        lda #$00
        sta $d021
        sta $d020
        sei
        nop
        ldx #$00

loc_0a17:
        lda $0a80,x
        sta $0400,x
        dex
        bpl loc_0a17
        lda #$00
        sta $c6
        lda #$00
        ldx #$08

loc_0a28:
        sta $0277,x
        dex
        bpl loc_0a28
        ldx #$64

loc_0a30:
        lda chr_0a3c,x
        sta $033c,x
        dex
        bpl loc_0a30
        jmp $033c

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

// --- Region $0c00-$0c1a ---
.pc = $0c00 "sub_0c00"
// Referenced by: jsr from $0e26, $0eaf

sub_0c00:
        ldx #$09

loc_0c02:
        dex
        bne loc_0c02

loc_0c05:
.label smc_0c06 = * + 1
        lda $0c20,x                                 // !SMC: modified by $0e30, $0eb4
        sta $d020
        sta $d021
        ldy dat_0c4f,x

loc_0c11:
        dey
        bne loc_0c11
        inx
        cpx #$13
        bne loc_0c05
        rts

chr_0c1a:
        // === Charset data (1 bytes, $0c1a-$0c1a) ===
        .byte $00                                   // char 0 (partial)

// --- Region $0d00-$0ef3 ---
.pc = $0d00 "main_0d00"
main_0d00: {
        jsr $e544
        lda #$00
        sta $d021
        sta $d020
        lda #$18
        sta $d018
        lda #$40
        sta $fe
        lda #$23
        sta $ff
        lda #$04
        sta $fd
        lda #$00
        sta $fc
        ldy #$00
loop1:
        lda ($fe),y
        sta ($fc),y
        iny
        bne loop1
        inc $fd
        inc $ff
        lda $fd
        cmp #$08
        bne loop1
        lda #$38
        sta $fe
        lda #$33
        sta $ff
        lda #$d8
        sta $fd
        lda #$00
        sta $fc
        ldy #$00
loop2:
        lda ($fe),y
        sta ($fc),y
        iny
        bne loop2
        inc $fd
        inc $ff
        lda $fd
        cmp #$dc
        bne loop2
        jsr sub_1048
        lda #$00
        sta $d01b
        lda #$00
        sta $d01d
        lda #$00
        sta $d017
        ldx #$00
loop3:
        lda #$20