the cutting room mirror

Bubsy in Fractured Furry Tales

This article has a talk page!This article has a talk page!
view on tcrf.net

This page details development materials of Bubsy in Fractured Furry Tales.

In 2014, the source code for Fractured Furry Tales was released on AtariAge by user "doctorclu".

Notes#

SEGA.x Files#

Both located in the Songbird folder, these are for Bubsy's controls based on SNES and Genesis versions.

SEGA.ASM#

Located at:Songbird\SEGA.ASM

;===========================
;
; place joysticks in JOY1L and JOY2L in snes format
;
; designed specifically for BUBSY-
;
;       A ->    A,B
;       B ->    X,Y
;       C,JL -> L
;       C,JR -> R
;       
;
; converted for the jaguar joy pads via calling joypad_2_sega
;===========================
segajoy:
    jsr joypad_2_sega
    MOVEM.L A0-A1/D0-D4,-(A7)   

    move.b  sega_pad_1,d0   ;SACBRLDU
    move.b  sega_pad_2,d1
    
    rol.b   #3,d0       ;xxxxxxxx BRLDUSAC x
    asl.w   #1,d0       ;xxxxxxxB RLDUSAC0 x
    ror.b   #3,d0       ;xxxxxxxB AC0RLDUS x
    asl.w   #1,d0       ;xxxxxxBA C0RLDUS0 x
    ror.b   #2,d0       ;xxxxxxBA S0C0RLDU x
    lsr.b   #1,d0       ;xxxxxxBA 0S0C0RLD U
    roxl.w  #2,d0       ;xxxxBA0S 0C0RLDUx x
    ror.b   #2,d0       ;xxxxBA0S Ux0C0RLD x
    asl.w   #1,d0       ;xxxBA0SU x0C0RLD0 x
    ror.b   #2,d0       ;xxxBA0SU D0x0C0RL x
    asl.w   #1,d0       ;xxBA0SUD 0x0C0RL0 x
    ror.b   #2,d0       ;xxBA0SUD L00x0C0R x
    asl.w   #1,d0       ;xBA0SUDL 00x0C0R0 x
    ror.b   #2,d0       ;xBA0SUDL R000x0C0 x
    asl.w   #1,d0       ;BA0SUDLR 000x0C00 x
    btst    #2,d0       ;if C set
    beq.s   .no0c
    move.w  d0,d2       ;move current to mask
    lsr.w   #4,d2       ;0000ABSS UDLR000x x
    and.b   #$30,d2     ;00000000 00LR0000 x
    or.w    #$2000,d0
    and.w   #$fcff,d0
    or.b    d2,d0
.no0c:

    rol.b   #3,d1       ;xxxxxxxx BRLDUSAC x
    asl.w   #1,d1       ;xxxxxxxB RLDUSAC0 x
    ror.b   #3,d1       ;xxxxxxxB AC0RLDUS x
    asl.w   #1,d1       ;xxxxxxBA C0RLDUS0 x
    ror.b   #2,d1       ;xxxxxxBA S0C0RLDU x
    lsr.b   #1,d1       ;xxxxxxBA 0S0C0RLD U
    roxl.w  #2,d1       ;xxxxBA0S 0C0RLDUx x
    ror.b   #2,d1       ;xxxxBA0S Ux0C0RLD x
    asl.w   #1,d1       ;xxxBA0SU x0C0RLD0 x
    ror.b   #2,d1       ;xxxBA0SU D0x0C0RL x
    asl.w   #1,d1       ;xxBA0SUD 0x0C0RL0 x
    ror.b   #2,d1       ;xxBA0SUD L00x0C0R x
    asl.w   #1,d1       ;xBA0SUDL 00x0C0R0 x
    ror.b   #2,d1       ;xBA0SUDL R000x0C0 x
    asl.w   #1,d1       ;BA0SUDLR 000x0C00 x
    btst    #2,d1       ;if C set
    beq.s   .no1c
    move.w  d1,d2       ;move current to mask
    lsr.w   #4,d2       ;0000ABSS UDLR000x x
    and.b   #$30,d2     ;00000000 00LR0000 x
    or.w    #$2000,d1
    and.w   #$fcff,d1
    or.b    d2,d1
.no1c:

    move.w  d1,JOY2L
    move.w  d0,JOY1L

    MOVEM.L (A7)+,A0-A1/D0-D4   
    RTS

SEGA.INC#

Located at: Songbird\SEGA.INC

;************************************************************************
;*
;* 68000 EQUATES 
;* 
;************************************************************************

FlagX       equ     %10000
FlagN       equ     %01000
FlagZ       equ     %00100
FlagV       equ     %00010
FlagC       equ     %00001

;---------------------------------------------------------------------------
;SNES named controller bits, but in format for genesis bubsy

JOY_B       equ %1000000000000000
JOY_Y           equ %0100000000000000
JOY_SELECT  equ %0010000000000000
JOY_C       equ %0010000000000000
JOY_START   equ %0001000000000000
JOY_UP      equ %0000100000000000   ; CONTROLLER BITS
JOY_DOWN    equ %0000010000000000
JOY_LEFT    equ %0000001000000000
JOY_RIGHT   equ %0000000100000000
JOY_A           equ %0000000010000000
JOY_X           equ %0000000001000000
JOY_L           equ %0000000000100000
JOY_R           equ %0000000000010000
JOY_HOR     equ   JOY_LEFT^JOY_RIGHT
JOY_VER     equ   JOY_UP^JOY_DOWN
JOY_ANY     equ   JOY_HOR^JOY_VER
;---------------------------------------------------------------------------

bJOY_UP     =   11
bJOY_DOWN   =   10
bJOY_LEFT   =   9
bJOY_RIGHT  =   8
    

Developer Message#

In Source from Songbird\AISTUFF\HANSEL\HANDGAI.S in "Make Two Cherries" part, there is a comment suggesting that some inappropriate developer comments were deleted.

no smutty comments please

Miscellaneous#

Since this game was built off an already existing game in the franchise, there exists a few leftovers:

  • unused ending files and demo sequences (found in LEVEL01.S of the source code)
  • references to World 4's raft and death sequences (found in BUBCTRL.S of the source code)
  • coordinates to flip the level around (found in LVLTABS.S of the source code)
  • unused ending and credits code (found in ENDING.S and CREDITS.S respectively)
  • references to World 6's data, going unused (found in BUBRAM.S and BUBPAL0.S of the source code)

According to the source code, the level order was different from the final production:

  • Alice in Wonderland: World 5 → World 1
  • Ali Baba and the Forty Thieves: World 1 → World 3
  • Hansel and Gretel: World 3 → World 5

This game (and many others) uses ProTracker v2.2, ported to the Atari Jaguar by Trevor Raynsford.

During Summer CES 1994 (June 23-25, 1994), an early build of Fractured Furry Tales was showcased.

Watch on YouTube

The build didn't have any sound during this time. Everything from the first game remained except for the HUD and World 3's graphics.