#447

Fantastic 4 Cracking Group [F4CG] 59

Fantastic 4 Cracking Group [F4CG]

3.070 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRT

History

Group
Fantastic 4 Cracking Group — Italy, founded 1983

The fifty-ninth numbered intro from Fantastic 4 Cracking Group — deep into the Italian group's prolific catalogue. No individual credits for code, music, or graphics have been confirmed, though community discussion on intros.c64.org debated the origins of the charset. Rough suggested the character set came from a Hysteric intro, while Secret Man proposed it might be from a Beastie Boys or Bros production — indicating that charset reuse and trading was common practice across cracking groups. F4CG was founded in Italy in 1983 by Ricky and is documented on CSDb with over 1,600 releases, making them one of the most long-lived groups on the Commodore 64. Scene member TWR praised the intro simply as "Neat. Really neat." The high intro number demonstrates the group's relentless productivity during their peak years. Other F4CG intros in this collection include #14 F4CG-32 and #118 F4CG-63.

Sources: intros.c64.org · CSDb

f4cg-59.asm 3.070 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:37
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $313f  (10560 bytes)
// Note: PRG was crunched, depacked by emulation
// Packer entry: $080b (via BASIC SYS 2059)
// Entry point:  $2240 (8768)
// IRQ handler:  $2323 (irq_2323)
// IRQ handler:  $23f0 (irq_23f0)
// IRQ handler:  $2464 (irq_2464)
// IRQ handler:  $ea31 (irq_ea31)
//
// Code: 2839 bytes, Data: 7721 bytes
// Labels: 243, Subroutines: 19
//
// Cross-references: all OK
// ============================================


// --- Region $1000-$1003 ---
.pc = $1000 "loc_1000"

loc_1000:
        jmp loc_1081

spr_1003:
        // === Sprite data (1 bytes, $1003-$1003) ===
        .byte $4c

// --- Region $1081-$165c ---
.pc = $1081 "loc_1081"

loc_1081:
.label smc_1082 = * + 1
        lda #$ff                                    // !SMC: modified by $1b93
        bmi loc_10e2

dat_1085:
        .byte $f0,$4c,$0a                           // .L.

loc_1088:
        asl
        asl
        tay
        lda $171b,y
        sta $10f7
        lda $171c,y
        sta $10eb
        ldx #$00

loc_1099:
        iny
        iny
        lda $171b,y
        sta $1036,x
        lda $171c,y
        sta $1039,x
        lda #$01
        sta $101b,x
        sta $1080
        lda #$00
        sta $1033,x
        sta $1030,x
        sta $103c,x
        sta $1024,x
        inx
        cpx #$03
        bne loc_1099
        sta $107f
        sta smc_1299
        ldx #$18

loc_10ca:
        sta $d400,x
        dex
        bpl loc_10ca
        stx smc_1082
        sta $d404
        sta $d40b
        sta $d412
        lda #$0f
        sta $d418
        rts

loc_10e2:
        cld
        ldx #$02
        dec $1080
        bpl loc_10f1
        lda #$00
        sta $1080
        bne loc_1104

loc_10f1:
        dec $107f
        bpl loc_1104
        lda #$02
        sta $107f
        dec $101b
        dec $101c
        dec $101d

loc_1104:
        lda $101b,x
        beq loc_110c
        jmp loc_12bc

loc_110c:
        sta $105d,x
        sta $1021,x
        lda $1036,x
        sta $fe
        lda $1039,x
        sta $ff
        ldy $1033,x
        lda ($fe),y
        bpl loc_1163
        cmp #$fe
        bcc loc_1136
        bne loc_112c
        inc smc_1082

loc_112c:
        lda #$00
        sta $1033,x
        tay
        lda ($fe),y
        bpl loc_1163

loc_1136:
        cmp #$e0
        bcc loc_1147
        sbc #$e0
        sta $103c,x
        inc $1033,x
        iny
        lda ($fe),y
        bpl loc_1163

loc_1147:
        cmp #$c0
        bcc loc_1158
        sbc #$c0
        sta $1024,x
        inc $1033,x
        iny