#511

Hokuto Force [HF] 16

Hokuto Force [HF]

2.209 lines of code

MusicSIDScrollerSCRLSpritesSPRT

History

Released
March 2004
Music
JCH (Jens-Christian Huus) — "Strike Force"
Graphics
Black
Group
Hokuto Force — Italy, founded 1988

A crack intro from Italy's Hokuto Force, featuring graphics by Black and music from JCH (Jens-Christian Huus) — his "Strike Force" composition preserved in the HVSC. The coder is not individually identified on CSDb. Released in March 2004, this arrived well into the preservation era when Hokuto Force had become one of the most active groups dedicated to re-releasing and fixing classic C64 software. Founded in 1988 in Italy, the group operates under the tagline "To serve and preserve" and maintains a website at hokutoforce.c64.org. Doc Snyder's page documents an extensive catalogue of Hokuto Force intros with credits spanning coders including Xenox, Twilight, The Chaos Engineer, Wolf, Nadira, Jesder, Didi, and Yado. The group frequently collaborated with Alpha Flight, Excess, and other preservation crews. JCH's music appearing in a 2004 intro shows how the Danish composer's vast catalogue of SIDs remained the go-to source for crack intro soundtracks decades after their original composition.

Sources: CSDb · docsnyderspage

hf-16.asm 2.209 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:47
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $2fff  (10240 bytes)
// Crunched with Cruncher AB — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// IRQ handler:  $089b (irq_089b)
//
// Code: 2707 bytes, Data: 7533 bytes
// Labels: 234, Subroutines: 16
//
// Cross-references: all OK
// ============================================


// --- Region $080d-$0c53 ---
.pc = $080d "main_080d"

main_080d:
        jsr $e518
        lda #$00
        sta $02
        sta $03
        sta $05
        jsr $e536
        lda #$1b
        sta $04
        lda #$00
        jsr sub_1000
        lda #$06
        sta smc_0de6                                // SMC: modifies $0de6
        ldx #$0e
        ldy #$03
        stx smc_08a6                                // SMC: modifies $08a6
        sty smc_08a8                                // SMC: modifies $08a8
        lda #$02
        sta smc_0deb                                // SMC: modifies $0deb
        ldx #$08
        ldy #$0a
        stx $08c1
        sty $08c3
        ldx #$00

loc_0844:
        lda $1fd8,x
        sta $06a8,x
        ora #$80
        sta $06d0,x
        lda #$0f
        sta $db48,x
        sta $db70,x
        inx
        cpx #$28
        bcc loc_0844
        ldx #$00
        txa

loc_085f:
        sta dat_2700,x
        inx
        bne loc_085f
        sei
        lda #$01
        sta $dc0d
        sta $d01a
        lda #$9b
        ldx #$08
        sta $0314
        stx $0315
        lda #$31
        sta $d012
        lda #$1b
        sta $d011
        cli

smc_0883:
        jsr sub_0de0                                // !SMC: modified by $0de2
        jmp smc_0883

dat_0889:
        .byte $4c,$ef,$0d                           // L..

loc_088c:
        inc $d019
        sta $0314
        stx $0315
        sty $d012
        jmp $ea81

irq_089b:
        lda #$12
        sta $d016
        lda #$18
        sta $d018
.label smc_08a6 = * + 1
        ldx #$0a                                    // !SMC: modified by $082d
.label smc_08a8 = * + 1
        ldy #$0f                                    // !SMC: modified by $0830
        stx $d022
        sty $d023
        jsr sub_0bc5
        lda #$bb
        ldx #$08
        ldy #$7a
        jmp loc_088c

loc_08bb:
        lda #$11
        sta $d016
        ldx #$03
        ldy #$01
        stx $d022
        sty $d023
        jsr sub_0b81
        lda #$d6
        ldx #$08
        ldy #$aa
        jmp loc_088c

dat_08d6:
        .byte $ea,$ea,$ea,$ea                       // ....

loc_08da:
        nop
        nop
        lda #$08
        sta $d016
        lda #$1a
        sta $d018
        lda #$ef
        ldx #$08
        ldy #$d7
        jmp loc_088c

loc_08ef:
        jsr sub_096d
        lda #$00
        sta $d020
        sta $d021
        jsr sub_0c35
        jsr sub_09e6
        jsr sub_091e
        jsr sub_0d53
        jsr sub_1003
        lda $dc01
        cmp #$ef