the cutting room mirror

Animaniacs Game Pack

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

Animaniacs Game Pack is a compilation of five arcade-style games featuring characters from the hit TV show Animaniacs. In each game, you play as one of the three Warner siblings: Yakko, Wakko, and Princess Angelina Contessa Louisa Francesca Banana Fanna Bo Besca III (but we'll call her Dot).

This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: Need some verification about publishers, maybe release dates as well.)

Intro/Menus#

An undocumented menu bar can appear on the main menu by pressing M, from showing the credits, choosing any game, clearing high scores and quiting, with it options for "CDSpeed" and "SysSpeed".

You can't make the menu disappear unless you wait for an animation to play when doing nothing for a while.

File

About GamePack

Clear High Scores

Tee Off

Smoocher

PropShop

Baloney

Belchinator

Sound

Win95 Mixer

Loud

6

5

4

3

2

Quiet

Off

CDSpeed

High

Minimum

SysSpeed

High

Med

Slow

Real Slow

(Source: Original TCRF research)

Unused Graphics#

Image

File

Cast

Type / ID

Internal Name

Description

START.DXR

Internal

Bitmap 6

6

An earlier version of the "Insert CD" message. "Animaniacs" is misspelled. The used version of this message is stored in STARTWIN.DXR.

START.DXR

Internal

Bitmap 7

7

An earlier version of screen resolution/color depth message. The game is referred to by a slightly different name, "Wacky Pack CD", and "Animaniacs" is misspelled again. The used version of this message is stored in STARTWIN.DXR and is not an image; instead it is generated as text so it can show what the current resolution and color depth are compared to the recommendation.

Baloney's Balloon Bop#

Uncompiled Script#

Text

File

Cast

Type / ID

Internal Name

Description

  set SndBoing = the number of member "boing"
  set SndFloor = the number of member "Floor"
  set SndBaloney = the number of member "BalOhBoy"
  set SndPop =  -1 + the number of member "balloon pop 1"
  set SndMusic8 = the number of member  "1 abc"
  set SndBalHit8 = the number of member "anvil hit blony 1"
  set SndFreeHit = the number of member "freeze hit fast"
  set SndPowerUp = the number of member "Tramp stretch"

BALONEY.DXR

Internal

Text 43

43

A snippet of Lingo script that the developers copied into a Text element, related to sound effect assignments.

Belchinator Too#

Cheat Codes#

The game checks for a large number of cheat codes on the pause menu. While the level select codes have been known, the rest were only discovered through decompiling the game's Lingo scripts. The codes are listed in the order that they are stored in the game's scripts.

This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: What does the NARF code do?

Cheat

Effect

TELE1

Teleport to Level 1 - Loading Docks.

TELE2

Teleport to Level 2 - Storage.

TELE3

Teleport to Level 3 - Manufacturing.

TELE4

Teleport to Level 4 - Manufacturing.

TELE5

Teleport to Level 5 - Computer Center.

TELE6

Teleport to Level 6 - Brain Trust.

TELE7

Teleport to Level 7 - The Terrible Think Tank!!

WACKYSACK

Gives full ammo, all keys, full armor, full belch shield, fully reveals map, disables force fields, and removes all enemies from the level.

FOODSTUFF

Gives full ammo.

FABOO

Gives full body armor.

DANCE

Gives full belch shield.

LOCKSMITH

Gives all keys.

SESAME

Turns off all force fields in the level.

PONDERING

Fully reveals the map.

HELLONURSE

Grants invincibility.

EGAD

All enemies die in one hit.

ALONE

Removes all the enemies from the level, with the exception of any that are currently on screen.

NARF

Unknown effect. Plays the sound for breaking boxes when activated.

MORTAL

Disables the invincibility effect from the HELLONURSE code.

NORMAL

Disables the effects of other cheats, except for inventory/ammo.

Unused Graphics#

Image

File

Cast

Type / ID

Internal Name

Description

BELCH.DXR

Internal

Bitmap 436

436

A tile for the map device, but with the screen turned on and reading "MAP DEVICE ACTIVE". Presumably, the tile was meant to change to this once the player activated a map device, but instead nothing happens.

Unused Audio#

Sound

File

Cast

Type / ID

Internal Name

Description

BSOUNDS.CXT

BSOUNDS

Sound 2

key

Similar to the clips played when grabbing a colored key, but the second half has been replaced with a clip of Wakko saying "Faboo!"

MONSTER1.CXT MONSTER2.CXT

MONSTER1 MONSTER2

Sound 297

Empty

A voice saying "Sound Missing" is located in the Cast files for Dump-T and ForkFace. Each enemy file uses Sound 297 for the projectile firing sound, but these enemies don't fire projectiles. This dummy sound effect is present to fill the slot.

In addition, the enemy death sounds cannot be heard in their entirety in-game. The game only allows one sound effect to play at a time, so the enemy's own explosion cuts off the end of each clip. As it turns out, they tend to have a little more to say.

Sound

File

Cast

Type / ID

Internal Name

Description

MONSTER1.CXT

MONSTER1

Sound 296

Robbie Die

Dump-T deflates a little bit longer.

MONSTER2.CXT

MONSTER2

Sound 296

R3 Die Rats

ForkFace says "Rats", which is completely cut off in-game.

MONSTER3.CXT

MONSTER3

Sound 296

M3 Trek Bot die

Spark-E's death sound has a cut-off fade at the end.

MONSTER4.CXT

MONSTER4

Sound 296

Yeow

PopCycle is supposed to say "Yeow", but in-game it ends up sounding more like "Yeo-".

MONSTER5.CXT

MONSTER5

Sound 296

R2ish die

Ashcan 451 says "Mommy", but is partially cut off in-game.

MONSTER6.CXT

MONSTER6

Sound 296

M6 Bunny Die

Bun-EE 2000 never gets to finish saying "Stop him".

MONSTER7.CXT

MONSTER7

Sound 296

M7 Mouse Die

KnowBot's death sound has a cut-off fade at the end.

Prop Shop Drop#

Unused Graphics#

Image

File

Cast

Type / ID

Internal Name

Description

PROPSHOP.DXR

scripts

Bitmap 48

48

An early, misspelled "Success" message.

PROPSHOP.DXR

things

Bitmap 204

204

A tank! This was meant to be a fourth vehicle type. It seems that in the tank you would be able to shoot and destroy obstacles instead of having to avoid them. Unfortunately, this is the only graphic that remains for it. There is a lot of code still present in the game for handling the tank, including firing controls, but additional Lingo script knowledge is required to modify the game to attempt using it (due to inaccurate Macromedia Director decompilation, the scripts cannot be recompiled as-is).

Unused Audio#

This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: There are more potentially unused sound effects, possibly related to the tank and projectile impacts with enemies. Need to determine which ones are actually completely unused and weren't repurposed.

Sound

File

Cast

Type / ID

Internal Name

Description

PROPSHOP.DXR

sounds

Sound 64

Pickup Clean Necks

This is supposed to be the pickup sound for the tissue boxes in Level 3, but the ice cube pickup sound is used instead.

PROPSHOP.DXR

sounds

Sound 77

Pickup Cowboy Hat

This is supposed to be the pickup sound for the cowboy hats in Level 2, but the sound effect "object shot 3" is used instead.

PROPSHOP.DXR

sounds

Sound 111

jump 4

Based on the name and position in the cast, this may have been a jumping sound for the tank vehicle.

PROPSHOP.DXR

sounds

Sound 121

land 4

Based on the name and position in the cast, this may have been a landing sound for the tank vehicle.

PROPSHOP.DXR

sounds

Sound 134

Tank Shoot

Sound effect for the unused tank vehicle.

PROPSHOP.DXR

sounds

Sound 143

Tank

Sound effect for the unused tank vehicle.

PROPSHOP.DXR

sounds

Sound 144

Tank End

Sound effect for the unused tank vehicle.

PROPSHOP.DXR

sounds

Sound 145

Tank Start

Sound effect for the unused tank vehicle.

PROPSHOP.DXR

sounds

Sound 170

Tank hit 1

Sound effect for the unused tank vehicle.

PROPSHOP.DXR

sounds

Sound 171

Tank hit 2

Sound effect for the unused tank vehicle.

PROPSHOP.DXR

sounds

Sound 172

tank hit 3

Sound effect for the unused tank vehicle.

PROPSHOP.DXR

sounds

Sound 173

end game

Based on the name, this is supposed to be played at the end of the game, but it is never heard.

PROPSHOP.DXR

Untitled-1

Sound 19

intro10

An introduction for a removed tenth level! This is the only remnant of the level; no graphics, layout or music exists.

Dot: Collect all the hats you can find for the romance movie, Chapeau Chateaux.

Yakko: The viewers'll flip their lids for that one!

Level Editor#

AnimaniacsGP_PropShop_LevelEditor.png

A rudimentary level editor used by the developers is hidden in the game. However, it cannot be accessed normally - the game must be in "Author" mode, meaning it is being run within the Macromedia Director editor (only possible by removing the protection on PROPSHOP.DXR). When running in Author mode, the level editor can be opened from the main menu by holding Ctrl while clicking on High Scores.

The editor allows you to navigate the levels, create and manipulate objects. Level designs can be saved as text files and loaded. The Test button will run the level with the edited design.

Level Select#

AnimaniacsGP_PropShop_LevelSelect.png

A hidden level select screen is in the game, but it is completely removed from the code and cannot be accessed through gameplay. The only way to access it is by opening an unprotected PROPSHOP.DXR in Macromedia Director and going to the marker "password". Once accessed this way, it functions normally - clicking a button will go to that level.

Uncompiled Scripts#

Text

File

Cast

Type / ID

Internal Name

Description

on shotcontrol
  global speed,howfar,curpal,Odometer,animlist
  global Objectfrequency,NextObject,NextObjectMile
  global slippery,oldmove,playerpos,shottime,AmmoCount,PowerUpRef,GameTime
  global playerdef,playerdir,playercast,LastPlayerDir,playerinc,gear
  if AmmoCount < 0 then exit
  if the key3flag of sprite 48 then 
    if the timer > shottime then
      
      set AmmoCount = AmmoCount - 1
      
      case PowerUpRef of
        0:
          set shottime = the timer + 30            
          makeprojectile the loc of sprite 60,playerinc* point (1.2,-1) 
        1:
          set shottime = the timer + 9            
          makeprojectile the loc of sprite 60,playerinc* point (1.2,-1) 
        2:
          set shottime = the timer + 6            
          makeprojectile the loc of sprite 60,playerinc* point (1.2,-1) 
        3:
          set shottime = the timer + 15            
          makeprojectile the loc of sprite 60,playerinc* point (1.2,-1) +point(-8,-4)
          makeprojectile the loc of sprite 60,playerinc* point (1.2,-1) +point(0,-6)
          makeprojectile the loc of sprite 60,playerinc* point (1.2,-1) +point(8,-4)
        4:
          set shottime = the timer + 9            
          makeprojectile the loc of sprite 60,playerinc* point (1.2,-1) 
        5:
          if the locv of speed < 24 then 
            set speed = speed + point(0,1)
          end if
        6:set powerupref = 0
          set Gametime = Gametime + 600
        7:
          set shottime = the timer + 20            
          makeprojectile the loc of sprite 60,playerinc* point (1.2,-1) +point(0,-6)
          makeprojectile the loc of sprite 60+point(0,15),playerinc* point (1.2,-1)+point(0,-6)
          makeprojectile the loc of sprite 60+point(0,30),playerinc* point (1.2,-1) +point(0,-6)
        8:
          set shottime = the timer + 15            
          makeprojectile the loc of sprite 60,playerinc* point (1.2,-1) +point(0,-6)
        9:
          set shottime = the timer + 15            
          makeprojectile the loc of sprite 60,playerinc* point (1.2,-1) +point(0,-3)
      end case
      
    end if
  end if
end

PROPSHOP.DXR

scripts

Text 35

old shot control

Earlier code for the "shotcontrol" function which was used for the tank vehicle.

Unused Text#

Text

File

Cast

Type / ID

Internal Name

Description

[4742: [416, 22], 4742: [319, 20], 4743: [216, 20], 4744: [106, 20], 4751: [380, 20], 4751: [168, 20], 4751: [262, 22], 4757: [381, 1], 4759: [291, 1], 4761: [227, 1], 4763: [170, 1], 4765: [238, 1], 4767: [300, 1], 4769: [408, 1], 4771: [137, 22], 4773: [137, 22], 4776: [303, 32], 4778: [381, 3], 4780: [116, 3], 4784: [215, 15], 4784: [419, 15], 4787: [406, 2], 4790: [240, 2], 4793: [115, 15], 4793: [297, 15], 4796: [220, 2], 4799: [395, 2], 4802: [373, 15], 4802: [201, 15], 4811: [84, 19], 4811: [159, 19], 4811: [447, 19], 4811: [394, 19], 4812: [270, 17], 4820: [382, 14], 4820: [145, 16], 4824: [400, 14], 4824: [116, 16], 4828: [435, 14], 4828: [89, 16], 4832: [287, 22], 4835: [381, 4], 4835: [179, 4], 4838: [337, 20], 4838: [231, 20], 4841: [288, 20], 4845: [424, 1], 4845: [99, 1], 4848: [426, 1], 4848: [103, 1], 4854: [210, 2], 4857: [114, 2], 4860: [410, 2], 4863: [357, 2], 4866: [276, 2], 4869: [273, 5], 4869: [425, 5], 4869: [112, 5], 4876: [263, 34], 4879: [251, 22], 4883: [427, 20], 4883: [103, 20], 4885: [202, 14], 4890: [326, 5], 4890: [229, 14], 4893: [128, 22], 4894: [329, 5], 4895: [254, 14], 4899: [275, 14], 4900: [421, 22], 4902: [136, 22], 4903: [418, 13], 4903: [309, 14], 4906: [137, 22], 4907: [296, 14], 4909: [142, 17], 4911: [140, 17], 4912: [266, 16], 4916: [246, 16], 4920: [218, 16], 4920: [119, 22], 4924: [117, 22], 4924: [202, 16], 4928: [124, 17], 4928: [284, 17], 4935: [97, 20], 4935: [179, 33], 4936: [267, 20], 4938: [175, 20], 4940: [19, 8], 4946: [16, 9], 4947: [294, 1], 4949: [343, 1], 4951: [294, 1], 4953: [355, 1], 4957: [267, 20], 4957: [400, 20], 4957: [134, 20], 4959: [16, 10], 4960: [313, 3], 4962: [313, 3], 4964: [312, 3], 4966: [313, 3], 4969: [16, 10], 4973: [366, 22], 4976: [264, 33], 4978: [285, 1], 4981: [393, 2], 4984: [108, 2], 4985: [437, 12], 4987: [343, 2], 4989: [99, 22], 4992: [71, 1], 4994: [442, 1], 4996: [432, 1], 4997: [16, 10], 4998: [72, 1], 5000: [191, 32], 5002: [271, 18], 5003: [158, 7], 5003: [380, 7], 5007: [381, 35], 5008: [273, 1], 5011: [184, 1], 5016: [273, 22]]

PROPSHOP.DXR

Internal

Field 140

140

What appears to be a partial level design. If saved into a text file, it can be loaded into the game using the level editor. It is made up of a mix of level themes and lacks objects, suggesting that the object definitions may have been shuffled around since the level was made. It is also not a full level, being much shorter than the final levels.

put mmessagelist(xtra "fileio")
-- "xtra fileio -- CH May96
new object me -- create a new child instance
-- FILEIO --
fileName object me -- return fileName string of the open file
status object me -- return the error code of the last method called
error object me, int error -- return the error string of the error
setFilterMask me, string mask -- set the filter mask for dialogs
openFile object me, string fileName, int mode -- opens named file. valid modes: 0=r/w 1=r 2=w
closeFile object me -- close the file
displayOpen object me -- displays an open dialog and returns the selected fileName to lingo
displaySave object me, string title, string defaultFileName -- displays save dialog and returns selected fileName to lingo
createFile object me, string fileName -- creates a new file called fileName
setPosition object me, int position -- set the file position
getPosition object me -- get the file position
getLength object me -- get the length of the open file
writeChar object me, string theChar -- write a single character (by ASCII code) to the file
writeString object me, string theString -- write a null-terminated string to the file
readChar object me -- read the next character of the file and return it as an ASCII code value
readLine object me -- read the next line of the file (including the next RETURN) and return as a string
readFile object me -- read from current position to EOF and return as a string
readWord object me -- read the next word of the file and return it as a string
readToken object me, string skip, string break -- read the next token and return it as a string
getFinderInfo object me -- get the finder info for the open file (Mac Only)
setFinderInfo object me, string attributes -- set the finder info for the open file (Mac Only)
delete object me -- deletes the open file
+ version xtraRef -- display fileIO version and build information in the message window
* getOSDirectory -- returns the full path to the Mac System Folder or Windows Directory
"

PROPSHOP.DXR

Internal

Text 230

230

Console output of the function reference for the "fileio" Director Xtra.

Brain Storm

Car attempts to keep a constant speed.  If an object is hit, the car decelerates and has to reaccelerate back to normal speed.  -- Add high speed power up, that allows the player to ram 

PROPSHOP.DXR

Internal

Text 231

231

Developer brainstorming notes. The idea of ramming objects is not used in the game; it may have later transformed into the tank vehicle concept, which was also removed.

Smoocher#

Cheat Codes#

The game checks for a few cheat codes on the pause menu. These were not previously known and were only discovered through decompiling the game's Lingo scripts. When typed, a sprite will appear to confirm entry; based on the internal names for these this is believed to be a caricature of Greg Izzo, one of the programmers.

Cheat

Sprite Displayed

Effect

CORNCOB

Level select cheat. A sound will play after "CORNCOB" is typed; follow up by typing anything from "LEVEL02" through "LEVEL14". The "Cheater" sprite appears to confirm entry. Then start a new game to start at the respective level you typed.

ROSEBUD

AnimaniacsGP_Dot_Bitmap627-greghappy.png AnimaniacsGP_Dot_Bitmap626-gregmad.png

Enables and disables what is referred to in the code as "death memory". The first time this is typed, the "Harder" sprite appears, and the number of enemies remaining in each level will reset every time you die, making the game more difficult. Typing it again will show the "Easier" sprite and set the "death memory" behavior back to normal (the number of enemies remaining will stay the same after dying).

Unused Graphics#

Image

File

Cast

Type / ID

Internal Name

Description

DOT.DXR

charcast

Bitmap 21

21

A scratchpad testing different fonts to use for the high score screen.

DOT.DXR

charcast

Bitmap 568

Picture 3

The caricature used for the cheat messages, but without the blue outline. Bitmap 569 is the same but mirrored.

DOT.DXR

charcast

Bitmap 571

Picture 3

A scratchpad for the caricature used for the cheat messages, with a few ideas for the glowing outline. Bitmap 572 is the same but mirrored.

DOT.DXR

charcast

Bitmap 634

Picture 3

The caricature's jaw on its own. It's very long.

DOT.DXR

charcast

Bitmap 635

Picture 3

The caricature's jaw again but with a complete mouth. Again, it's very long.

DOT.DXR

charcast

Bitmap 636

Picture 3

The caricature's head without the mouth, presumably so that Bitmap 634 or 635 could attach to it.

DOT.DXR

charcast

Bitmap 658

Picture 3

A scratchpad for the "Cheater" speech bubble. The text is slightly smaller and colored orange instead of red.

AnimaniacsGP_Dot_dotcst_DotStandN.pngAnimaniacsGP_Dot_dotcst_DotWalkN.gif

AnimaniacsGP_Dot_dotcst_DotStandNE.pngAnimaniacsGP_Dot_dotcst_DotWalkNE.gif

AnimaniacsGP_Dot_dotcst_DotStandE.pngAnimaniacsGP_Dot_dotcst_DotWalkE.gif

AnimaniacsGP_Dot_dotcst_DotStandSE.pngAnimaniacsGP_Dot_dotcst_DotWalkSE.gif

AnimaniacsGP_Dot_dotcst_DotStandS.pngAnimaniacsGP_Dot_dotcst_DotWalkS.gif

DOT.DXR

dot.cst

Bitmap 1 through Bitmap 72

Isometic sprites for Dot, similar in style to the Wakko sprites in Belchinator Too. Only 5 directions are shown here, as the remaining frames are the same but mirrored. Only standing and walking animations are present. Perhaps this game was going to be considerably different?

DOT.DXR

Internal

Bitmap 55

55

A primitive "Game Over" screen.

DOT.DXR

Internal

Bitmap 57

57

A primitive "You Win!" screen.

DOT.DXR

Internal

Bitmap 259

joyness junk for greg.PICT

A sprite sheet/scratchpad for various designs of the TNT item. It appears that they were meant to be themed based on the level, but in the final a variant similar to the "generic" design pictured is used for all levels.

DOT.DXR

Internal

Bitmap 268

268

The early "generic" TNT on its own, with a message saying "dontshowme".

DOT.DXR

Internal

Bitmap 326

326

A crudely assembled title card for "Level 1 Round 2". Identical ones exist for the remaining 13 levels as Bitmaps 327 through 341. There are no "Round 2" levels in the game, so it is not clear what these would have been.

DOT.DXR

Internal

Bitmap 377

377

A "Done" button. Probably for a menu.

DOT.DXR

Internal

Bitmap 385

Picture 2

An unused level using primitive graphics. It also shows a placeholder HUD; in Smoocher the level backgrounds are a single image that also includes the HUD graphics.

DOT.DXR

Internal

Bitmap 826

line.1.1

A crudely drawn "New Game" menu item, in the same style as the early title cards.

DOT.DXR

Internal

Bitmap 831

line.2.1

A crudely drawn "Continue Game" menu item, in the same style as the early title cards.

DOT.DXR

Internal

Bitmap 836

line.3.1

A crudely drawn "Options" menu item, in the same style as the early title cards.

DOT.DXR

Internal

Bitmap 841

line.4.1

A crudely drawn "High Scores" menu item, in the same style as the early title cards.

DOT.DXR

Internal

Bitmap 846

line.5.1

A crudely drawn "Instructions" menu item, in the same style as the early title cards.

DOT.DXR

Internal

Bitmap 851

line.6.1

A crudely drawn "Exit Game" menu item, in the same style as the early title cards.

DOT.DXR

menustuff

Bitmap 132

132

A slightly more refined version of the menu, with the text faded out. This style was kept for the Options menu in the final game.

DOT.DXR

menustuff

Bitmap 133

optionpanel1

A slightly more refined version of the menu, with the text readable. This style was kept for the Options menu in the final game.

DOT.DXR

menustuff

Bitmap 134

optionpanel1.1

Highlight for "New Game" in the unused menu style.

DOT.DXR

menustuff

Bitmap 135

optionpanel1.2

Highlight for "Continue Game" in the unused menu style.

DOT.DXR

menustuff

Bitmap 136

optionpanel1.3

Highlight for "Options" in the unused menu style.

DOT.DXR

menustuff

Bitmap 138

optionpanel1.4

Highlight for "High Scores" in the unused menu style.

DOT.DXR

menustuff

Bitmap 139

optionpanel1.5

Highlight for "Instructions" in the unused menu style.

DOT.DXR

menustuff

Bitmap 140

optionpanel1.6

Highlight for "Exit Game" in the unused menu style.

DOT.DXR

Untitled-1

Bitmap 72

72

An icon of Wakko that is used in Belchinator Too.

Unused Audio#

There are nearly as many unused sounds as used ones!

Sound

File

Cast

Type / ID

Internal Name

Description

DOT.DXR

Internal

Sound 521

old.heart.2p

Based on the name, presumably an old heart collection sound.

DOT.DXR

Internal

Sound 522

old.heart.3p

Based on the name, presumably an old heart collection sound.

DOT.DXR

Internal

Sound 523

old.2 point

Based on the name, presumably an old heart collection sound.

DOT.DXR

Internal

Sound 524

old.Hrt1

Based on the name, presumably an old heart collection sound.

DOT.DXR

Internal

Sound 541

Kiss 1

A kissing sound, which you would expect to be used in a game about kissing. The final sound set does not have any kissing sounds except a single Dot voice line.

DOT.DXR

Internal

Sound 542

Kiss 2

Another kissing sound.

DOT.DXR

Internal

Sound 543

Multi Kiss 1

Yet another kissing sound. It's unclear why it is called "Multi Kiss 1" when it is still a single kiss.

DOT.DXR

Internal

Sound 571

TNT1

Alternate sound for the TNT item.

DOT.DXR

Internal

Sound 572

TNT2

Alternate sound for the TNT item.

DOT.DXR

Internal

Sound 575

TNT4 w/Bell

Alternate sound for the TNT item. This one is very similar to the final sound, but using a slightly different explosion.

DOT.DXR

Internal

Sound 586

Jmp1

Unused jump sound.

DOT.DXR

Internal

Sound 587

Jmp2

Unused jump sound. A second copy of this sound is stored as Sound 601, also unused.

DOT.DXR

Internal

Sound 588

Jmp3

Unused jump sound.

DOT.DXR

Internal

Sound 589

Jmp4

Unused jump sound.

DOT.DXR

Internal

Sound 631

Shoot 3

Unused shooting sound.

DOT.DXR

Internal

Sound 632

Shoot 4

Unused shooting sound.

DOT.DXR

Internal

Sound 633

Shoot 5

Unused shooting sound.

DOT.DXR

Internal

Sound 634

Shoot1

Unused shooting sound.

DOT.DXR

Internal

Sound 635

Shoot2

Unused shooting sound.

DOT.DXR

Internal

Sound 641

NO HEART 1

The used "low hearts" sound, but without Dot's voice line at the end.

DOT.DXR

Internal

Sound 661

charkill1

Cartoon slipping sound. The name is unclear as to whether it was meant for killing an enemy or the player dying.

DOT.DXR

Internal

Sound 662

charkill2

Cartoon slipping sound. The name is unclear as to whether it was meant for killing an enemy or the player dying.

DOT.DXR

Internal

Sound 676

deaddot1

Unused death jingle.

DOT.DXR

Internal

Sound 677

deaddot2

Unused death sound.

DOT.DXR

Internal

Sound 693

jump3

Unused jump sound. This sound is listed in the cast order alongside the used jumping sounds, but is excluded from the list of random jump sounds to use.

DOT.DXR

Internal

Sound 705

lowhearts.1

A different "low hearts" sound, structured similarly to the used sound but with a different warning tone.

DOT.DXR

Internal

Sound 706

lowhearts.1

Same as lowhearts.0, but without Dot's voice line.

DOT.DXR

Internal

Sound 707

lowhearts.2

A voice saying "You need more hearts!" Yet another unused "low hearts" sound.

DOT.DXR

Internal

Sound 728

shot8

Unused shooting sound. This sound is listed in the cast order alongside the used shooting sounds, but is excluded from the list of random shooting sounds to use.

DOT.DXR

Internal

Sound 752

2 point

Unused heart collection sound.

DOT.DXR

Internal

Sound 753

2 Point.2

Unused heart collection sound.

Unused Text#

Text

File

Cast

Type / ID

Internal Name

Description

Why Cant I,32650,9
Stop Playing,29250,9
James,27300,9
Lars,25950,8
James T.,19850,7
Kirk,18550,7
Jason,17000,7

DOT.DXR

Internal

Field 168

holddefault high scores

An early default high score table.

updated: 9/8/97 3:53 PM

DOT.DXR

Internal

Field 422

lastchange

A revision date.

Tee Off Mini Golf#

Hole Editor#

After decompiling via ProjectorRays, open it in Adobe/Macromedia Director (so it would run in author mode) and start the game. Now in-game, press E to turn on the hole editor. (Change to a different hole so the cubes wont look like giant golf balls.)

The user is able to add, edit and delete cubes, and able to test the hole.

(Source: Original TCRF research)

Skip to Near Hole#

Press C to be near the hole. It isn't protected with needing to be run in author mode unlike the previous one.

(Source: Original TCRF research)

Uncompiled Scripts#

There are a whole bunch of old scripts lurking in various Field and Text elements. Presumably, the developers copied the contents of the scripts into these as a form of temporarily storing of a "known good" version of the script... but never removed them. Notably, this means the comments are intact; these are not recoverable when decompiling already-compiled Lingo scripts.

Text

File

Cast

Type / ID

Internal Name

Description

on moveball
  
  global CubeList
  -- with bounds
  if not grounded then set ball.xyinc = ball.xyinc + point(0.0,1.0)
  set nextxy = ball.xy + ball.xyinc
  set modifier = point(1,1)
  
  repeat with xxx in CubeList
    if xxx<> 0 then
      if ball.z > getat(xxx,3) and ball.z< getat(xxx,2) then
        if inside(ball.xy,getat(xxx,1)) then
          -- figure out how we hit it (which side) to figure out ricochette.
          -- set engines for fudge factor seven
          
          set temp.xy = ball.xy - ball.xyinc -- back it up to see what happened.
          if not inside(ball.xy, getat(xxx,1)) then
            -- 
            set ball.xyinc = - ball.xyinc
            set nextxy = ball.xy + ball.xyinc
          else
            set ball.zinc = - ball.zinc
            set ball.z = ball.z + ball.zinc
          end if
        end if
      end if
    end if
  end repeat
  
  if the locv of nextxy > 440 and not grounded then 
    
    set modifier = point(1,-1)
    set ball.xyinc = ball.xyinc * .7
    set ball.zinc = ball.zinc * .7
    if the locv of ball.xyinc <6 then
      set grounded = 1
      set the locv of ball.xy = 440
      set the locv of ball.xyinc = 0
    end if
    
  end if    
  if the loch of nextxy < 20 or the loch of nextxy > 570 then 
    if ( not OutOfBounds) and (the locv of nextxy > 400) then
      set modifier = modifier * point(-1,1) 
    else
      set OutOfBounds = 1-- ha ha, it went out
      -- keepbouncing
    end if
  end if
  
  if (grounded  and ball.z < 200) or OutOfBounds then 
    set ball.xyinc = ball.xyinc * .95
    set ball.zinc = ball.zinc * .95
  end if  
  
  set ball.xyinc = ball.xyinc * modifier  
  set ball.xy = ball.xy + ball.xyinc   
  set nextz = ball.z + ball.zinc  
  if nextz > 300 or nextz < 1 then 
    if ( not OutOfBounds) and (the locv of nextxy > 400) then
      set ball.zinc = -ball.zinc   
    else
      set OutOfBounds = 1
    end if
  end if
  set ball.z = ball.z + ball.zinc  
  if abs(ball.zinc) < .5 and abs(the loch of ball.xyinc) < .5 then set stopped = 1  
  
  if abs(the loch of ball.xy - 315)< 30 and abs(the locv of ball.xy - 447) < 30 and abs(ball.z - 284)< 15 then 
    set swingstage = 6
    ---alert "Hole in One!"
  end if
end

GOLF.DXR

Internal

Text 104

104

A very early version of the "moveball" function, which appears to only have very basic functionality implemented.

global boundrymap --  2 lists from front to back for each side 
-- noting each change in boundry position.  drawn on top of background.

global holemap -- map consists of a list of objects sorted by z position
-- each object contains a screen rect and an objectref
--
--  type eachobject
--    maprect     :  rectangle for hit detection
--    object_ref  :  lookup in objectlist
--  end type

global objectlist -- list of all possible objects located on screen
-- in most cases the object will simply point to a animation (in the score)
-- to be played if the ball enters this area.
-- The animation will be keyed to either stop the ball or continue it's movement
--
--  type objectdefs
--    id_tag      :  Used in hard code for special objects.
--    Object_type :  1=nonanimate,2=continuous,3=reacts,4=react_control
--    Object_angle:  modifier on ball's increment
--    static_anim :  list of castmembers    
--    hit_anim    :  list of castmembers
--    hit_snd     :  member of sound to play when hit
--  end type
--

on initbuild
  
  set objectlist = []
  -- object types :
  --   channel entrance 
  --   water hazzard
  --   road way
  --   sand hazard
  --   waterfall
  --   barrels
  --   
  
end

on placeobject
  --  set plotz = 1 + ball.z/2.5
  --  set dotsrc = Init.DotRect + rect(ball.xy,ball.xy)
  --  puppetsprite 9,1
  --  set the stretch of sprite 99 = 1
  --  set the rect of sprite 99 =  map(dotsrc, refrect , getat(spacelist,plotz)) 
end

on defineobject
  
end

on showmap -- assumes that holemap has already been sorted
  set startchan = 10
  repeat with xxx in holemap
    
  end repeat
end

on sortmap
  
end

GOLF.DXR

Internal

Field 145

145

Various global and function definitions, and a whole lot of commented out lines.

on moveball  
  global CubeList,holeinfo,thishole,animlist
  -- with bounds
  if not grounded then set ball.xyinc = ball.xyinc + point(0.0,1.0)
  set nextxy = ball.xy + ball.xyinc
  set modifier = point(1,1)  
  set farpoint = 0
  repeat with counter = 1 to count(CubeList)
    set acube  = getat( CubeList,counter)
    if listp(acube) then      
      if getat(acube,2) > farpoint then set farpoint = getat(acube,2)
      if (ball.z > getat(acube,3) and ball.z< getat(acube,2)) then
        if inside(nextxy+point(0,-15),getat(acube,1)) then        
          -- figure out how we hit it (which side) to figure out ricochette.
          -- set engines for fudge factor seven
          set tempid = getat(acube,4)
          --          put acube
          case tempid of         
            "water" :
              set OutOfBounds = 2
              set ball.xyinc = point(0,0)
              set ball.zinc = 0
              puppetsound 2, "splash"
              exit repeat
              
            "green" :
              set doit = 1
              put "who's horny?"
              if count(animlist) then set tanimstep = getat(getat(animlist,1),2) -- what step of animation is playing
              case thishole of -- the green of each hole has different effects
                "1.1":-- nothing special
                "2.1":-- castle -- is drawbridge open?
                  if tanimstep > 4 then set doit = 0
                "3.1":-- windmill -- is gate open
                "4.1":-- lighthouse?
                "5.1":-- (old castle)
                "6.1":-- (old windmill)
                "7.1":-- racetrack -- is track clear
                "8.2":-- bridges -- ball bounces or rolls back.
                  
              end case
              if doit then
                set ball.z = 480 -(ball.z - getat(acube,3))
                set ball.zinc = ball.zinc * 4
                set ball.xyinc = ball.xyinc * 4
                set the loch of sprite 99 = -500
                puppetsprite 99,0
                go ("g"&char 1 of thishole)
                abort
              else
                set temp.xy = nextxy - ball.xyinc -- back it up to see what happened.
                if not inside(temp.xy+point(0,-15), getat(acube,1)) then
                  set modifier = point(-1,1)
                  puppetsound 2,("i"&random(9))
                  --set ball.xyinc = - ball.xyinc
                  set nextxy = ball.xy + ball.xyinc
                end if
                set tempz = ball.z - ball.zinc
                if not (tempz > getat(acube,3) and tempz < getat(acube,2)) then
                  set ball.zinc = - ball.zinc
                  puppetsound 2,("i"&random(9))
                  set ball.z = ball.z + ball.zinc*2
                end if
              end if
            "bridge":
              
              if grounded then
                set ball.zinc = ball.zinc - .5                   
              else
                set temp = ( ball.z - getat( acube,2 ) )/( getat( acube,3) - getat( acube,2) )
                set temp2 = (the top of getat(acube,1) * (1-temp)) + (the bottom of getat(acube,1) * (temp))
                if the locv of ball.xy > ( temp2 ) then
                  set the locv of ball.xy = temp2 - 5
                  set ball.zinc = ball.zinc -3
                  set modifier = point(1,-1)
                  puppetsound 2,("b"&random(5))
                end if  
              end if                  
              
            "seg" :              
              set ruct = value(char 3 of thishole)
              set ruct = ruct + 1
              set thishole = char 1 to 2 of thishole & string(ruct)              
              set CubeList = getaprop(holeinfo,thishole) -- first calculation
              set the loch of ball.xy = 450
              set ball.z = 10
              set temp = ball.xyinc
              set ball.xyinc = point(-ball.zinc, the locv of ball.xyinc)
              set ball.zinc = getat(temp, 1)/8              
              set the rect of sprite 99 = rect(-105,-105,-100,-100)
              set the loc of sprite 99 = point (-400,-400)
              
              go marker("p"&thishole) + 3
              abort
              
            otherwise:
              set temp.xy = nextxy - ball.xyinc -- back it up to see what happened.
              if not inside(temp.xy+point(0,-15), getat(acube,1)) then
                set modifier = point(-1,1)
                puppetsound 2,("i"&random(9))
                --set ball.xyinc = - ball.xyinc
                set nextxy = ball.xy + ball.xyinc
              end if
              set tempz = ball.z - ball.zinc
              if not (tempz > getat(acube,3) and tempz < getat(acube,2)) then
                set ball.zinc = - ball.zinc
                puppetsound 2,("i"&random(9))
                set ball.z = ball.z + ball.zinc*2
              end if
          end case   
          exit repeat
        end if
      end if
    end if
  end repeat
  
  --  if ball.z > farpoint then set OutOfBounds = 1
  
  if the locv of nextxy > 440 and not grounded then 
    puppetsound 2,("b"&random(5))
    set modifier = modifier * point(1,-1)
    set ball.xyinc = ball.xyinc * .7
    set ball.zinc = ball.zinc * .7
    if the locv of ball.xyinc <6 then
      set grounded = 1
      set the locv of ball.xy = 440
      set the locv of ball.xyinc = 0
    end if
    
  end if    
  
  if the loch of nextxy < 0 or the loch of nextxy > 600 then     
    set OutOfBounds = 1-- ha ha, it went out    
  end if
  
  if (grounded  and ball.z < 200) or OutOfBounds then 
    set ball.xyinc = ball.xyinc * .98
    set ball.zinc = ball.zinc * .98
  end if  
  
  set ball.xyinc = ball.xyinc * modifier  
  set ball.xy = ball.xy + ball.xyinc   
  set nextz = ball.z + ball.zinc  
  if nextz > 400 or nextz < 1 then 
    if ( not OutOfBounds) and (the locv of nextxy > 400) then
      set ball.zinc = -ball.zinc   
    else
      --      put "Out!"
      set OutOfBounds = 1
    end if
  end if
  set ball.z = ball.z + ball.zinc  
  if abs(ball.zinc) < 1 and abs(the loch of ball.xyinc) < 1 and the locv of nextxy =440 then set stopped = 1    
end

GOLF.DXR

Internal

Text 146

146

A later, but still incomplete version of the "moveball" function. Now it appears to have checks for terrain types, but not all are implemented. There's also an interesting "put" command in there...

on formatscripts 
  repeat with xxx = 1 to the number of members in castlib 1
    if the type of member xxx = #script then
      set the text of member "text" = the scriptText of member xxx
      set the font of member "text" = "chicago"
      set the scriptText of member xxx = the text of member "text" 
    end if
  end repeat
end

GOLF.DXR

Internal

Field 190

190

An earlier version of the "formatscripts" function.

Unused Text#

Text

File

Cast

Type / ID

Internal Name

Description

Define size of object using size guide.

GOLF.DXR

Internal

Text 32

32

Vertical

GOLF.DXR

Internal

Text 35

35

Horizontal

GOLF.DXR

Internal

Text 36

36

point(767.3890, 456.5105) point(1.8075, -1.1297)

GOLF.DXR

Internal

Field 67

test9

Some coordinates.

File Info#

As usual for games made with Macromedia.

File

Director Version

About

Copyright

Created by

Modified by

Filepath

Most of the files

6.0

0

0

Andrew Keplinger - FUNNYBONE Interactive

Andrew Keplinger - FUNNYBONE Interactive

Animaniacs Game Pack:files

BELCH.DXR

6.0

0

0

Keith Laverty - Funnybone Interactive

Andrew Keplinger - FUNNYBONE Interactive

Animaniacs Game Pack:files

DOT.DXR

6.0

0

0

Andrew Keplinger - The Cute Company

Andrew Keplinger - FUNNYBONE Interactive

Animaniacs Game Pack:files

GO.DXR

6.0

0

0

Keith Laverty - Funnybone Interactive

Andrew Keplinger - FUNNYBONE Interactive

Animaniacs Game Pack:files

INTRO.DXR

6.0

0

0

Keith Laverty - Funnybone Interactive

Andrew Kpelinger - FBI

Animaniacs Game Pack:files

START2.DXR

6.0

0

0

Andrew Keplinger - Vandal Grafix

Andrew Keplinger - FUNNYBONE Interactive

Animaniacs Game Pack:files

WAITANIM.DXR

6.0

0

0

John Piel - FUNNYBONE INTERACTIVE

Andrew Keplinger - FUNNYBONE Interactive

Animaniacs Game Pack:files

Version Differences#

There are two separate versions in circulation: v1.0 and v1.0o. It appears that v1.0o was only distributed in OEM bundles with new PCs. The game's data files appear to be identical between the two versions, but changes have been made to the AutoRun executable (Teaser.exe) and setup routines.

In both versions, there is an audio file, Saucy.wav present in the root of the disc:

Audio

Transcript

The Brain: I am The Brain, your leader. I command you to play many games and be very entertained.

This file is unused in v1.0. However, in v1.0o, it plays when Teaser.exe is opened. This appears to have been an oversight; v1.0o makes a minor change to Teaser.ini to enable this:

[Environment]
Audio=saucy.wav

(Source: Original TCRF research)

References#


  1. PC Gamer, Volume 4, Number 12↩︎
  2. Ultra Game Players, Issue 99↩︎