#417

Papillons Incorporated, The [TPI] 03

Papillons Incorporated, The [TPI]

3.437 lines of code

RasterbarsRSTR

History

Released
22 April 1987
Group
The Papillons Inc. — Denmark, founded November 1986

Alpha coded this intro — the third in The Papillons Inc.'s numbered series — while Ben Daglish's "We M.U.S.I.C. 3" provides the ripped soundtrack. Andrew Sleigh contributed the charset. Released on 22 April 1987, this predates the group's more celebrated later intros such as TPI-02 and #5 TPI-01. The Papillons Inc. were a Danish group founded in November 1986, with Alpha (Lennart) serving as their sole coder and cracker. Daglish was one of the most prominent British game composers of the mid-1980s, and his tunes were frequently ripped for crack intros across the European scene. The group dissolved in August 1988, leaving behind a compact but well-regarded catalogue of six numbered intros. Despite Denmark's smaller scene compared to neighbouring Sweden, TPI earned respect through the consistent quality of Alpha's work.

Sources: CSDb · CSDb — Group

tpi-03.asm 3.437 lines
// ============================================
// output - Part 1 of 3
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:36:51
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0800  End: $ffff  (63488 bytes)
// Crunched with NSU Packer 1.1 — depacked by emulation
// Packer entry: $080d (via BASIC SYS 2061)
// Entry point:  $2a00 (10752)
// IRQ handler:  $ea31 (irq_ea31)
// IRQ handler:  $2ab3 (irq_2ab3)
// IRQ handler:  $c7d3 (irq_c7d3)
//
// Code: 3382 bytes, Data: 60106 bytes
// Labels: 379, Subroutines: 23
//
// Cross-references: all OK
// ============================================


// --- Region $2a00-$2a66 ---
.pc = $2a00 "main_2a00"

main_2a00:
        jsr sub_2cf3
        jsr sub_2bed
        jsr sub_2bd8
        jsr sub_2a9c
        ldy #$00

loc_2a0e:
        inc $2bbe
        jsr sub_2a82
        lda $2bbe
        cmp $2bc3,y
        bne loc_2a0e
        cpy #$06
        beq loc_2a33
        iny

loc_2a21:
        dec $2bbe
        jsr sub_2a82
        lda $2bbe
        cmp $2bc3,y
        bne loc_2a21
        iny
        jmp loc_2a0e

loc_2a33:
        nop
        jsr sub_2a82
        jsr $ffe4
        bne loc_2a3f
        jmp loc_2a33

loc_2a3f:
        sei
        lda #$31
        sta $0314
        lda #$ea
        sta $0315
        lda #$37
        sta $01
        lda #$f0
        sta $d01a
        lda #$00
        sta $dc0d
        cli
        jsr $fda3
        jsr $fd15
        jsr $ff5b
        jmp loc_fce2

chr_2a65:
        // === Charset data (2 bytes, $2a65-$2a66) ===
        .byte $18,$79                               // char 0 (partial)

// --- Region $2a82-$2aec ---
.pc = $2a82 "sub_2a82"

// Referenced by: jsr from $2a11, $2a24, $2a34, $ef9b, $efae, $efbe
sub_2a82: {
        tya
        pha
        ldx #$00
        ldy #$00
loop:
        iny
        bne loop
        inx
        cpx #$0a
        bne loop
        jsr sub_2d3c
        jsr sub_2fd8
        jsr sub_c834
        pla
        tay
        rts
}
// Referenced by: jsr from $2a09, $ef93

sub_2a9c:
        sei
        lda #$11
        sta $d01a
        lda #$7f
        sta $dc0d
        lda #$b3
        sta $0314
        lda #$2a
        sta $0315
        cli
        rts

irq_2ab3:
        lda $d019
        sta $d019
        inc $02
        ldx $02
        cpx #$06
        bne loc_2ac5
        ldx #$00
        stx $02

loc_2ac5:
        lda tbl_2ba5,x
        sta $d011
        lda tbl_2bab,x
        sta $d016
        lda tbl_2bb1,x
        sta $d018
        lda tbl_lo_2bb7,x
        sta $d020
        sta $d021
        lda tbl_hi_2bbd,x
        sta $d012
        cpx #$04
        bpl spr_2aed
        jmp irq_ea31

// --- Region $2bd8-$2c7a ---
.pc = $2bd8 "sub_2bd8"
// Referenced by: jsr from $2a06, $ef90; jmp from $f105

sub_2bd8:
        lda #$00
        sta $0341