Fantasy 06

Fantasy

2.209 lines of code

RasterbarsRSTRMusicSIDScrollerSCRLSpritesSPRT

History

Released
22 October 1989
Code
Excell (Brian K. Hansen) — guest from Ikari
Music
JCH (Jens-Christian Huus) — Laxin'
Graphics
Excell
Charset
Andrew Threlfall (Software Creations, UK)
Group
Fantasy — USA, founded 18 May 1989

Fantasy (USA) habitually recruited Europe's finest coders as guest contributors — and for this October 1989 entry they secured Excell of #6 Ikari for both code and graphics. JCH provided the SID tune Laxin', composed during the prolific period when he held simultaneous membership in Dominators, Ikari, and his own Vibrants. The charset was drawn by Andrew Threlfall, a professional game artist at Software Creations whose pixel fonts circulated widely across the scene. Notably, the intro was packaged as the Fantasy Intro +Editor, allowing Fantasy members to attach and configure it for new cracks without Excell's direct involvement.

Sources: CSDb · CSDb group

fantasy-06.asm 2.209 lines
// ============================================
// fantasy-06 - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 vdisasm-one 1.0 build 1, 2026-03-29 17:54:15
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $2b3c  (9021 bytes)
// Note: PRG was crunched, depacked by emulation
// Packer entry: $080b (via BASIC SYS 2059)
// Entry point:  $0f39 (3897)
// IRQ handler:  $1001 (irq_1001)
// IRQ handler:  $ea31 (irq_ea31)
// IRQ handler:  $6565 (nmi_6565)
//
// Code: 2533 bytes, Data: 6488 bytes
// Labels: 194, Subroutines: 14
//
// Cross-references: all OK
// ============================================


// --- Region $0f39-$0faf ---
.pc = $0f39 "main_0f39"

main_0f39:
        jsr sub_114b
        sei
        lda #$01
        sta $d01a                                   // raster IRQ on
        lda #$7f                                    // disable all CIA1 interrupts
        sta $dc0d                                   // disable all CIA IRQs
        lda #$1b
        sta $d011                                   // text mode, screen on, 25 rows, Y-scroll=3
        lda #$01
        sta $0314                                   // set IRQ handler low byte
        lda #$10
        sta $0315                                   // set IRQ handler high byte
        lda #$00
        sta $c1
        cli

loc_0f5b:
        lda $dc00
        and $dc01
        and #$10
        bne loc_0f5b
        sei
        lda #$37
        sta $01
        jsr $fda3
        jsr $ff5b
        lda #$31
        sta $0314                                   // set IRQ handler low byte
        lda #$ea
        sta $0315                                   // set IRQ handler high byte
        lda #$00
        sta $0286
        sta $d020
        sta $d021
        jsr $e544
        ldx #$18

loc_0f8a:
        sta $d400,x
        dex
        bpl loc_0f8a
        ldx #$00

loc_0f92:
        lda txt_0faf,x
        sta $0400,x
        lda #$00
        sta $d800,x
        inx
        bne loc_0f92
        ldx #$00
        lda #$01

loc_0fa4:
        sta $d800,x
        inx
        cpx #$0f
        bne loc_0fa4
        jmp $040f

txt_0faf:
        .encoding "screencode_mixed"
        .text "i"
        .encoding "petscii_upper"

// --- Region $0fbe-$1028 ---
.pc = $0fbe "loc_0fbe"

loc_0fbe:
        lda #$34
        sta $01
        lda #$3d
        sta $02
        lda #$2b
        sta $03
        lda #$01
        sta $04
        lda #$08
        sta $05

loc_0fd2:
        ldy #$00

loc_0fd4:
        lda ($02),y
        sta ($04),y
        iny
        bne loc_0fd4
        inc $03
        inc $05
        lda $03
        cmp #$ff
        bne loc_0fd2
        lda #$37
        sta $01
        lda #$95
        ldx #$9b
        sta $ae
        stx $af
        sta $2d
        stx $2e
        lda #$01
        sta $2b
        lda #$08
        sta $2c
        cli
        jmp $fce2

// ============================================
// IRQ handler
// ============================================
irq_1001: {
        lda $d019
        sta $d019
        ldx $c1
        inx
        cpx #$07
        bne skip
        ldx #$00
skip:
        stx $c1
        txa
        clc
        asl