#530

X-Ray 04

X-Ray

1.002 lines of code

RasterbarsRSTRScrollerSCRLSpritesSPRTBitmapBMAP

History

Released
July 1991
Code
Trigger
Graphics
Jatagan
Group
X-Ray — Germany, founded 1988

A silent X-Ray intro coded by Trigger with graphics from Jatagan — the same core team behind several other X-Ray productions. Released in July 1991, this arrived during X-Ray's peak activity period. Doc Snyder's page documents the scrolltext, which reveals the cracker Chrysagon handled the accompanying game crack. The visual presentation relies on Jatagan's artwork and a scrolltext — a clean, functional design without audio. X-Ray was a German group founded in 1988, operating under the tagline "Outta Schnapz!" This is one of two X-Ray entries in the rankings alongside #165 X-Ray-01. The consistent pairing of Trigger and Jatagan across multiple productions reflects the stable coder-graphician partnership that defined X-Ray's visual identity throughout their active years in the German scene.

Sources: CSDb · docsnyderspage

xray-04.asm 1.002 lines
// ============================================
// xray-04 - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 vdisasm-one 1.0 build 1, 2026-03-29 17:54:29
// 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:  $0b40 (2880)
// IRQ handler:  $0c6b (irq_0c6b)
//
// Code: 834 bytes, Data: 62654 bytes
// Labels: 87, Subroutines: 8
//
// Cross-references: all OK
// ============================================


// --- Region $0b40-$0bf5 ---
.pc = $0b40 "main_0b40"

main_0b40:
        sei
        lda #$00
        sta $d020
        sta $d021
        lda #$01
        sta $0286
        jsr $e544
        lda #$e1
        sta $0328
        lda #$08
        jsr $ffd2
        lda #$1f
        sta $d015
        sta $d01c
        lda #$0b
        sta $d025
        lda #$0f
        sta $d026
        ldx #$04

loc_0b6f:
        lda #$0c
        sta $d027,x
        lda chr_0c0d,x
        sta $07f8,x
        dex
        bpl loc_0b6f
        lda #$85
        sta $03
        lda #$0d
        sta $04
        lda #$07
        sta $02
        lda #$12
        sta $d018                                   // screen=$0400, charset=$0800
        lda #$6b
        sta $0314                                   // set IRQ handler low byte
        lda #$0c
        sta $0315                                   // set IRQ handler high byte
        lda #$01
        sta $dc0d                                   // clear, timer A
        sta $d01a                                   // raster IRQ on
        lda #$1b
        sta $d011                                   // text mode, screen on, 25 rows, Y-scroll=3
        cli

loc_0ba6:
        lda #$41

loc_0ba8:
        cmp $d012
        bne loc_0ba8
        ldx #$00

loc_0baf:
        jsr sub_0c12
        inx
        cpx #$44
        bne loc_0baf
        lda #$1d
        sta $d011                                   // text mode, screen on, 25 rows, Y-scroll=5
        lda #$a9

loc_0bbe:
        cmp $d012
        bne loc_0bbe

loc_0bc3:
        jsr sub_0c12
        dex
        bpl loc_0bc3
        lda #$1b
        sta $d011                                   // text mode, screen on, 25 rows, Y-scroll=3
        lda #$ef
        cmp $dc01
        bne loc_0ba6
        sei
        lda #$c8
        sta $d016                                   // hires, 40 cols, X-scroll=0
        jsr $fd15
        jsr $fda3
        jsr $ff5b
        ldx #$19

loc_0be6:
        lda $0bf3,x
        sta $033b,x
        dex
        bne loc_0be6
        inc $01
        jmp loc_0fe0

chr_0bf4:
        // === Charset data (2 bytes, $0bf4-$0bf5) ===
        .byte $bd,$00                               // char 0 (partial)

// --- Region $0c05-$0c25 ---
.pc = $0c05 "Program $0c05"
        lda #$37
        sta $01
// Referenced by: jsr from $0e0b, $ff5e

sub_0c09:
        cli
        jmp loc_fce2

chr_0c0d:
        // === Charset data (5 bytes, $0c0d-$0c11) ===
        .byte $2c,$2b,$2a,$29,$28                   // char 0 (partial)
// Referenced by: jsr from $0baf, $0bc3, $fd0c, $fd20

sub_0c12:
        lda $d012
        ora #$18
        .byte $2b,$07                               // anc #$07 // ILLEGAL
        sta $d011
        lda chr_0c26,x
        sta $d020
        sta $d021
        rts

// --- Region $0c6b-$0d02 ---
.pc = $0c6b "irq_0c6b"

// ============================================
// IRQ handler