#354

Vision Soft [VSI] 01

Vision Soft [VSI]

1.620 lines of code

History

Group
Vision Soft — United States

A crack intro from Vision Soft (VSI), an American cracking and fixing group documented on CSDb. The group operated as both a cracker group and a fixing group — converting PAL software for the NTSC C64 hardware used in North America. CSDb notes that Vision Soft was "based in the US with at least two European members (Hoggle and Fingers)," reflecting the transatlantic connections common in the 1980s scene. Known members include Merlin, credited as an NTSC fixer, alongside Hoggle and Fingers. The group produced a small catalogue of five documented releases, including cracks of Kettle, Space Harrier, and Bulldog. Vision Soft's NTSC-fixing role was essential to the North American scene — without groups performing these conversions, many European titles would have displayed incorrectly or crashed on American hardware. No founding date has been confirmed, and no individual credits for this specific intro have been identified. Vision Soft should not be confused with the better-documented Dutch group Vision (VSN).

Sources: CSDb Group

vsi-01.asm 1.620 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:36:59
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0801  End: $ffff  (63487 bytes)
// Crunched with Exomizer v2/v3 (with relocation) — depacked by emulation
// Packer entry: $0810 (via BASIC SYS 2064)
// Entry point:  $c000 (49152)
// IRQ handler:  $c04e (irq_c04e)
// IRQ handler:  $ea31 (loc_ea31)
//
// Code: 407 bytes, Data: 63080 bytes
// Labels: 116, Subroutines: 1
//
// Verification: 5 line(s) auto-corrected to .byte for exact byte matching
//
// Cross-references: all OK
// ============================================


// --- Region $118d-$11a1 ---
.pc = $118d "Segment $118d"
        .byte $b7,$fd                               // lax $fd,y // ILLEGAL
        inc $f9
        tax
        adc $e7da,y
        .byte $97,$f5                               // sax $f5,y // ILLEGAL
        lda $e3,x
        cmp ($60,x)
        bmi loc_1163
        .byte $04,$06                               // nop $06 // ILLEGAL
        .byte $e3,$e1                               // isc ($e1,x) // ILLEGAL

dat_11a1:
        .byte $ef                                   // .

// --- Region $8dd0-$8dd0 ---
.pc = $8dd0 "Segment $8dd0"
        brk

// --- Region $c000-$c0bb ---
.pc = $c000 "main_c000"

main_c000:
        lda #$c4
        sta $0288
        ldx #$00
        txa

loc_c008:
        sta $c900,x
        sta $ca00,x
        inx
        bne loc_c008
        lda $dd02
        ora #$03
        sta $dd02
        lda $dd00
        and #$fc
        sta $dd00
        lda #$12
        sta $d018
        jsr sub_c090
        sei
        lda #$4e
        sta $0314
        lda #$c0
        sta $0315
        cli

loc_c035:
        jsr $ffe4
        beq loc_c035
        sei
        lda #$ea
        sta $0315
        lda #$31
        sta $0314
        cli
        lda #$93
        jsr $ffd2
        jmp loc_c29a

irq_c04e:
        ldx #$00

loc_c050:
        clc
        asl $ca00,x
        bcc loc_c05e
        lda $c9f8,x
        ora #$01
        sta $c9f8,x

loc_c05e:
        inx
        cpx #$a8
        bne loc_c050
        ldx $02
        inx
        cpx #$08
        bne loc_c06c
        ldx #$00

loc_c06c:
        stx $02
        cpx #$00
        bne $c08d
        inc $c076
        lda $c300
        sbc #$40
        asl
        asl
        asl
        sta smc_c083                                // SMC: modifies $c083
        ldx #$00

loc_c082:
.label smc_c083 = * + 1
        lda $c800,x                                 // !SMC: modified by $c07d
        sta $caa0,x
        inx
        cpx #$08
        bne loc_c082
        jmp loc_ea31
// Referenced by: jsr from $c026

sub_c090:
        lda #$00
        sta $d020
        sta $d021
        ldx #$00

loc_c09a:
        lda dat_c0bc,x
        beq loc_c0a6
        jsr $ffd2
        inx
        jmp loc_c09a

loc_c0a6:
        lda #$93
        sta smc_c0b3                                // SMC: modifies $c0b3
        lda #$c1
        sta smc_c0b4                                // SMC: modifies $c0b4
        ldx #$00