#5

Papillons Incorporated, The [TPI] 01

Papillons Incorporated, The [TPI]

2.369 lines of code

RasterbarsRSTRMusicSIDBitmapBMAPCharsetCHAR

History

Released
6 January 1988
Code
Alpha
Music
Coco Intro by Superbrain (Markus Müller)
Graphics
Excell
Group
The Papillons Inc. — Denmark, founded November 1986

Rated 9.6/10 on CSDb and ranked #5 on intros.c64.org, this is the signature intro of Denmark's The Papillons Inc., founded in November 1986. Alpha handled the code, Excell contributed graphics, and the soundtrack is "Coco Intro" by Superbrain — the handle of composer Markus Müller, preserved under his directory in the HVSC. The tune's looping synth-pop hook gave the intro its enduring appeal: the ranking places it above all other Papillons releases by a wide margin. CSDb catalogues the release as "The Papillons Intro #1," and the Doc Snyder group page for The Papillons Inc. lists multiple sibling intros but carries no Crack Intro #01 section with specific credits. The title itself — "Coco Intro" — signals that the music was composed for this release rather than ripped from a game, an unusual choice at a time when most crack intros reused SIDs from commercial titles.

Sources: CSDb · docsnyderspage

tpi-01.asm 2.369 lines
// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-01 10:59:34
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0700  End: $d011  (51474 bytes)
// Crunched with Exomizer — depacked by emulation
// Packer entry: $082a (via BASIC SYS 2090)
// Entry point:  $2500 (9472)
// IRQ handler:  $254b (irq_254b)
//
// Code: 3098 bytes, Data: 48376 bytes
// Labels: 244, Subroutines: 29
//
// Cross-references: all OK
// ============================================


// --- Region $2500-$2589 ---
.pc = $2500 "main_2500"

main_2500:
        sei
        jsr sub_2bc4
        ldx #$4b
        ldy #$25
        stx $0314
        sty $0315
        lda #$00
        sta $d020
        sta $d021
        sta $fd
        sta $fb
        lda #$04
        sta $02
        lda #$06
        sta $fc
        lda #$7f
        sta $dc0d
        lda #$11
        sta $d01a
        lda #$19
        sta $d018
        cli

loc_2532:
        jsr sub_5020
        ldx #$05

loc_2537:
        ldy #$00

loc_2539:
        dey
        bne loc_2539
        dex
        bne loc_2537
        jmp loc_2c10

loc_2542:
        stx $0314
        sty $0315
        jmp $ea81

irq_254b:
        lda $d019
        sta $d019
        lda #$1b
        sta $d011
        lda #$d8
        sta $d016
        lda #$31
        sta $d012
        ldx $2860
        ldy #$47

loc_2565:
        lda $2818,y
        sta $2819,y
        dey
        bne loc_2565
        stx $2819
        ldx $269b
        ldy #$60

loc_2576:
        lda dat_263b,y
        sta $263c,y
        dey
        bne loc_2576
        stx $263c
        ldx #$89
        ldy #$25
        jmp loc_2542

chr_2589:
        // === Charset data (1 bytes, $2589-$2589) ===
        .byte $ad                                   // char 0 (partial)

// --- Region $2bc4-$2c5b ---
.pc = $2bc4 "sub_2bc4"
// Referenced by: jsr from $2501

sub_2bc4:
        lda #$0e
        sta $0286
        jsr $e544
        ldx #$08
        ldy #$00
        clc
        jsr $fff0
        lda #$2c
        ldy #$2b
        jsr sub_ab1e
        ldx #$18
        ldy #$0a
        clc
        jsr $fff0
        lda #$ad
        ldy #$2b
        jsr sub_ab1e
        ldy #$00

loc_2bec:
        lda txt_2300,y
        sta $0400,y
        lda #$08
        sta $d800,y
        iny
        bne loc_2bec

loc_2bfa:
        lda $2400,y
        sta $0500,y
        lda #$08
        sta $d900,y
        iny
        cpy #$18
        bne loc_2bfa
        lda #$1b
        sta $d011
        rts

loc_2c10:
        lda $27c7
        bne loc_2c58
        lda $27af
        cmp #$31