############################################################################### # # File: btime.keg # # Description: # # This file contains the definition for Burgertime. # # Author: Kevin Brisley # ############################################################################### # # The name of the game. # BTime.Name: Burgertime # # The number of FPS desired. # BTime.FramesPerSecond: 60 # # The history and anecdote files. # BTime.HistoryFile: btime.his BTime.TalesFile: btime.tal # # Address spaces. # BTime.NumSpaces: 1 # # The first address space is used by the Game CPU. It includes the following: # 0x00000-0x0FFFF (64K): Game RAM/ROM # 0x10000-0x107FF (2K): To store the map ROM # 0x10800-0x10800 (1Byte): To store the map number # BTime.Space1.Size: 0x10801 BTime.Space1.NumROMs: 6 BTime.Space1.ROM1.Description: ab05a1.12b @ 0x0B000 BTime.Space1.ROM2.Description: ab04.9b @ 0x0C000 BTime.Space1.ROM3.Description: ab06.13b @ 0x0D000 BTime.Space1.ROM4.Description: ab05.10b @ 0x0E000 BTime.Space1.ROM5.Description: ab07.15b @ 0x0F000 BTime.Space1.ROM6.Description: ab03.6b @ 0x10000 BTime.Space1.NumPatchFiles: 1 BTime.Space1.PatchFile1: btime.pch # # The second address space is 64K and is used by the Sound CPU. # This is currently not used. # #BTime.Space2.Size: 0x10000 #BTime.Space2.NumROMs: 1 #BTime.Space2.ROM1.Description: ab14.12h @ 0x0F000 # # The details on the loading/saving high scores. # BTime.HiScore.File: btime.scr BTime.HiScore.CPU: 1 BTime.HiScore.Delay: 55800 BTime.HiScore.NumRanges: 2 BTime.HiScore.Range1.Location: 0x00036 BTime.HiScore.Range1.Length: 15 BTime.HiScore.Range2.Location: 0x00048 BTime.HiScore.Range2.Length: 15 # # CPUs. # BTime.NumCPUs: 1 # # CPU 1 (game). # BTime.CPU1.Description: Game BTime.CPU1.Type: 6502b BTime.CPU1.ClockSpeed: 1500000 BTime.CPU1.IntsPerFrame: 12 BTime.CPU1.Space: 1 # # CPU 2 (sound). # The sound CPU is currently not used. # #BTime.CPU2.Description: Sound #BTime.CPU2.Type: 6502_ASM #BTime.CPU2.Space: 2 # # The number of inputs. # BTime.NumInputs: 5 BTime.Input1.Description: Player 1 Controls BTime.Input1.CPU: 1 BTime.Input1.Location: 0x04000 BTime.Input2.Description: Player 2 Controls BTime.Input2.CPU: 1 BTime.Input2.Location: 0x04001 BTime.Input3.Description: Coin Slot Controls BTime.Input3.CPU: 1 BTime.Input3.Location: 0x04002 BTime.Input4.Description: Dip Switches 1 BTime.Input4.CPU: 1 BTime.Input4.Location: 0x04003 BTime.Input5.Description: Dip Switches 2 BTime.Input5.CPU: 1 BTime.Input5.Location: 0x04004 # # The number of outputs. # BTime.NumOutputs: 5 BTime.Output1.Description: Coinbox Enable BTime.Output1.CPU: 1 BTime.Output1.WLocation: 0x04000 BTime.Output2.Description: Not Used BTime.Output2.CPU: 1 BTime.Output2.WLocation: 0x04001 BTime.Output3.Description: Unknown BTime.Output3.CPU: 1 BTime.Output3.WLocation: 0x04002 BTime.Output4.Description: Sound BTime.Output4.CPU: 1 BTime.Output4.WLocation: 0x04003 BTime.Output5.Description: Map Number BTime.Output5.CPU: 1 BTime.Output5.WLocation: 0x04004 BTime.Output5.Location: 0x10800 BTime.Output5.NumConversions: 7 BTime.Output5.ConversionList: 0x13, 0x00, \ 0x10, 0x01, \ 0x11, 0x02, \ 0x12, 0x03, \ 0x17, 0x04, \ 0x14, 0x05, \ 0x00, 0x07 # # The keys used in the game. # BTime.NumKeys: 15 # Player 1 Up. BTime.Key1.Key: KEY_UP BTime.Key1.Joy: JOY_UP BTime.Key1.Mask: 0x04 BTime.Key1.Input: 1 BTime.Key1.Default: Off/1 # Player 1 Down. BTime.Key2.Key: KEY_DOWN BTime.Key2.Joy: JOY_DOWN BTime.Key2.Mask: 0x08 BTime.Key2.Input: 1 BTime.Key2.Default: Off/1 # Player 1 Left. BTime.Key3.Key: KEY_LEFT BTime.Key3.Joy: JOY_LEFT BTime.Key3.Mask: 0x02 BTime.Key3.Input: 1 BTime.Key3.Default: Off/1 # Player 1 Right. BTime.Key4.Key: KEY_RIGHT BTime.Key4.Joy: JOY_RIGHT BTime.Key4.Mask: 0x01 BTime.Key4.Input: 1 BTime.Key4.Default: Off/1 # Player 1 Salt/Pepper. BTime.Key5.Key: KEY_SPACE BTime.Key5.Joy: JOY_B1 BTime.Key5.Mask: 0x10 BTime.Key5.Input: 1 BTime.Key5.Default: Off/1 # Player 2 Up. BTime.Key6.Key: KEY_W BTime.Key6.Mask: 0x04 BTime.Key6.Input: 2 BTime.Key6.Default: Off/1 # Player 2 Down. BTime.Key7.Key: KEY_S BTime.Key7.Mask: 0x08 BTime.Key7.Input: 2 BTime.Key7.Default: Off/1 # Player 2 Left. BTime.Key8.Key: KEY_A BTime.Key8.Mask: 0x02 BTime.Key8.Input: 2 BTime.Key8.Default: Off/1 # Player 2 Right. BTime.Key9.Key: KEY_D BTime.Key9.Mask: 0x01 BTime.Key9.Input: 2 BTime.Key9.Default: Off/1 # Player 2 Salt/Pepper. BTime.Key10.Key: KEY_P BTime.Key10.Mask: 0x10 BTime.Key10.Input: 2 BTime.Key10.Default: Off/1 # Coin Slot 1. BTime.Key11.Key: KEY_3 BTime.Key11.Joy: JOY_B2 BTime.Key11.Mask: 0x40 BTime.Key11.Input: 3 BTime.Key11.Default: Off/0 BTime.Key11.IValue: INT_NMI # Coin Slot 2. BTime.Key12.Key: KEY_4 BTime.Key12.Mask: 0x80 BTime.Key12.Input: 3 BTime.Key12.Default: Off/0 BTime.Key12.IValue: INT_NMI # 1 Player Start. BTime.Key13.Key: KEY_1 BTime.Key13.Joy: JOY_B3 BTime.Key13.Mask: 0x01 BTime.Key13.Input: 3 BTime.Key13.Default: Off/1 # 2 Player Start. BTime.Key14.Key: KEY_2 BTime.Key14.Joy: JOY_B4 BTime.Key14.Mask: 0x02 BTime.Key14.Input: 3 BTime.Key14.Default: Off/1 # Tilt (not sure what this is for but it goes into an endless loop if it is # set to 0). BTime.Key15.Key: KEY_T BTime.Key15.Mask: 0x04 BTime.Key15.Input: 3 BTime.Key15.Default: Off/1 # # The dip switches used in the game. # BTime.NumDips: 13 # First switch for credits based on coin slot 1. BTime.Dip1.Description: Coin Slot 1 (bit 1) BTime.Dip1.Mask: 0x01 BTime.Dip1.Input: 4 BTime.Dip1.Default: Off/1 # Second switch for credits based on coin slot 1. BTime.Dip2.Description: Coin Slot 1 (bit 2) BTime.Dip2.Mask: 0x02 BTime.Dip2.Input: 4 BTime.Dip2.Default: Off/1 # First switch for credits based on coin slot 2. BTime.Dip3.Description: Coin Slot 2 (bit 1) BTime.Dip3.Mask: 0x04 BTime.Dip3.Input: 4 BTime.Dip3.Default: Off/1 # Second switch for credits based on coin slot 2. BTime.Dip4.Description: Coin Slot 2 (bit 2) BTime.Dip4.Mask: 0x08 BTime.Dip4.Input: 4 BTime.Dip4.Default: Off/1 # First switch for diagnostic mode. BTime.Dip5.Description: Diagnostics (bit 1) BTime.Dip5.Mask: 0x10 BTime.Dip5.Input: 4 BTime.Dip5.Default: Off/1 # Second switch for diagnostic mode. BTime.Dip6.Description: Diagnostics (bit 2) BTime.Dip6.Mask: 0x20 BTime.Dip6.Input: 4 BTime.Dip6.Default: Off/1 # Cocktail/Upright part 1 BTime.Dip7.Description: Cocktail/Upright Controls (bit 1) BTime.Dip7.Mask: 0x40 BTime.Dip7.Input: 4 BTime.Dip7.Default: On/0 # Cocktail/Upright part 2 BTime.Dip8.Description: Cocktail/Upright Controls (bit 2) BTime.Dip8.Mask: 0x80 BTime.Dip8.Input: 4 BTime.Dip8.Default: On/0 # 3 or 5 chefs to start. BTime.Dip9.Description: Number of Chefs BTime.Dip9.Mask: 0x01 BTime.Dip9.Input: 5 BTime.Dip9.Default: Off/1 # First switch to determine when bonus chefs are awarded. BTime.Dip10.Description: Bonus Chef (bit 1) BTime.Dip10.Mask: 0x02 BTime.Dip10.Input: 5 BTime.Dip10.Default: Off/1 # Second switch to determine when bonus chefs are awarded. BTime.Dip11.Description: Bonus Chef (bit 2) BTime.Dip11.Mask: 0x04 BTime.Dip11.Input: 5 BTime.Dip11.Default: Off/1 # 4 or 6 pursuers. BTime.Dip12.Description: Number of Pursuers BTime.Dip12.Mask: 0x08 BTime.Dip12.Input: 5 BTime.Dip12.Default: Off/1 # Pepper awarded at end of level? BTime.Dip13.Description: End of Level Pepper BTime.Dip13.Mask: 0x10 BTime.Dip13.Input: 5 BTime.Dip13.Default: Off/1 # # The faked vblank. # BTime.VBlank.Use: Yes BTime.VBlank.Description: HV Blank BTime.VBlank.Input: 4 BTime.VBlank.Mask: 0x80 BTime.VBlank.Default: On # # Screen Resolution. # BTime.ScreenHeight: 256 BTime.ScreenWidth: 256 # # Graphics Sets. # BTime.NumGfxSets: 3 # # The first character set contains all of the foreground graphics including # text, burger pieces, etc. # BTime.GfxSet1.Width: 8 BTime.GfxSet1.Height: 8 BTime.GfxSet1.Number: 1024 BTime.GfxSet1.BPP: 3 BTime.GfxSet1.BPs: 0 65536 131072 BTime.GfxSet1.XBits: 0 8 16 24 32 40 48 56 BTime.GfxSet1.YBits: 7 6 5 4 3 2 1 0 BTime.GfxSet1.Increment: 64 BTime.GfxSet1.NumROMs: 6 BTime.GfxSet1.ROM1.Description: ab8.13k BTime.GfxSet1.ROM2.Description: ab9.15k BTime.GfxSet1.ROM3.Description: ab10.10k BTime.GfxSet1.ROM4.Description: ab11.12k BTime.GfxSet1.ROM5.Description: ab12.7k BTime.GfxSet1.ROM6.Description: ab13.9k # # The second character set contains the background map pieces. # BTime.GfxSet2.Width: 16 BTime.GfxSet2.Height: 16 BTime.GfxSet2.Number: 64 BTime.GfxSet2.BPP: 3 BTime.GfxSet2.BPs: 0 16384 32768 BTime.GfxSet2.XBits: 0 8 16 24 32 40 48 56 \ 64 72 80 88 96 104 112 120 BTime.GfxSet2.YBits: 7 6 5 4 3 2 1 0 \ 135 134 133 132 131 130 129 128 BTime.GfxSet2.Increment: 256 BTime.GfxSet2.NumROMs: 3 BTime.GfxSet2.ROM1.Description: ab02.4b BTime.GfxSet2.ROM2.Description: ab01.3b BTime.GfxSet2.ROM3.Description: ab00.1b # # The third character set contains the sprites. # BTime.GfxSet3.Width: 16 BTime.GfxSet3.Height: 16 BTime.GfxSet3.Number: 128 BTime.GfxSet3.BPP: 3 BTime.GfxSet3.BPs: 0 32768 65536 BTime.GfxSet3.XBits: 0 8 16 24 32 40 48 56 \ 64 72 80 88 96 104 112 120 BTime.GfxSet3.YBits: 7 6 5 4 3 2 1 0 \ 135 134 133 132 131 130 129 128 BTime.GfxSet3.Increment: 256 BTime.GfxSet3.NumROMs: 3 BTime.GfxSet3.ROM1.Description: ab8.13k BTime.GfxSet3.ROM2.Description: ab10.10k BTime.GfxSet3.ROM3.Description: ab12.7k # # Graphic Layers. # BTime.NumGfxLayers: 3 ############################################################################### # The first layer renders the background map graphics. # # This is done through hardware in the following manner: # # The map number is written to a hardware location which we store # in 0x10800. There is a map ROM which we store at 0x10000. The # map number is multiplied by 256 and this is used as an offset into # the map ROM to draw the map. The map consists of 256 characters # starting at this offset in the following arrangement (where o is the # offset): # # 0x10000+o 0x10001+o 0x10002+o ... 0x1000e+o 0x1000f+o # 0x10010+o 0x10011+o 0x10012+o ... 0x1001e+o 0x1001f+o # ... ... ... ... ... # 0x100f0+o 0x100f1+o 0x100f2+o ... 0x100fe+o 0x100ff+o ############################################################################### BTime.GfxLayer1.Lightweight: Yes BTime.GfxLayer1.Space: 1 BTime.GfxLayer1.GfxSet: 2 BTime.GfxLayer1.Palette: 2 BTime.GfxLayer1.Transparency: Off BTime.GfxLayer1.NumChars: 256 BTime.GfxLayer1.NumDirty: 1 BTime.GfxLayer1.Dirty1.Start: 0x10800 BTime.GfxLayer1.Dirty1.End: 0x10800 BTime.GfxLayer1.Dirty1.CharsPerLoc: 256 BTime.GfxLayer1.Dirty1.Assign: $ BTime.GfxLayer1.NumCharNums: 1 BTime.GfxLayer1.CharNum1.Value: @((0x10000 + #) + @0x10800 * 256) BTime.GfxLayer1.NumColours: 1 BTime.GfxLayer1.Colour1.Value: 0 BTime.GfxLayer1.NumXPoss: 1 BTime.GfxLayer1.XPos1.Value: (# % 16) * 16 BTime.GfxLayer1.NumYPoss: 1 BTime.GfxLayer1.YPos1.Value: (# / 16) * 16 ############################################################################### # The second layer renders the foreground characters (burger pieces, text, # etc.) # # There are two banks of video RAM starting at 0x01000 and 0x01400. # It is mapped as follows: # # (0x1400<<8)|0x1000 (0x1401<<8)|0x1001 ... (0x141f<<8)|0x101f # (0x1420<<8)|0x1020 (0x1421<<8)|0x1021 ... (0x143f<<8)|0x103f # ... ... ... # (0x17e0<<8)|0x13e0 (0x17e1<<8)|0x13e1 ... (0x173f<<8)|0x133f ############################################################################### BTime.GfxLayer2.Lightweight: Yes BTime.GfxLayer2.Space: 1 BTime.GfxLayer2.GfxSet: 1 BTime.GfxLayer2.Palette: 1 BTime.GfxLayer2.Transparency: On BTime.GfxLayer2.BlankChar: 0 BTime.GfxLayer2.NumChars: 1024 BTime.GfxLayer2.NumDirty: 1 BTime.GfxLayer2.Dirty1.Start: 0x1000 BTime.GfxLayer2.Dirty1.End: 0x17ff BTime.GfxLayer2.Dirty1.Assign: # % 0x400 BTime.GfxLayer2.NumCharNums: 1 BTime.GfxLayer2.CharNum1.Value: @(0x01400 + #) << 8 | @(0x01000 + #) BTime.GfxLayer2.NumColours: 1 BTime.GfxLayer2.Colour1.Value: 0 BTime.GfxLayer2.NumXPoss: 1 BTime.GfxLayer2.XPos1.Value: (# % 32) * 8 BTime.GfxLayer2.NumYPoss: 1 BTime.GfxLayer2.YPos1.Value: (# / 32) * 8 ############################################################################### # The third layer renders the sprites. # # The sprite RAM starts at 0x01800. There are 4 sequential bytes per # sprite and 8 sprites. The following describes the 4 bytes: # # 0 : bit 1 indicates horizontal flip. # 1 : Sprite Number # 2 : X Position (from the right of the screen) and enable. # 3 : Y Position. ############################################################################### BTime.GfxLayer3.Space: 1 BTime.GfxLayer3.GfxSet: 3 BTime.GfxLayer3.Palette: 1 BTime.GfxLayer3.Transparency: On BTime.GfxLayer3.NumChars: 8 BTime.GfxLayer3.NumDirty: 1 BTime.GfxLayer3.Dirty1.Start: 0x1800 BTime.GfxLayer3.Dirty1.End: 0x181f BTime.GfxLayer3.Dirty1.Assign: # / 4 BTime.GfxLayer3.NumCharNums: 1 BTime.GfxLayer3.CharNum1.Value: @(0x01801 + 4 * #) BTime.GfxLayer3.NumColours: 1 BTime.GfxLayer3.Colour1.Value: 0 BTime.GfxLayer3.NumXPoss: 1 BTime.GfxLayer3.XPos1.Value: 239 - @(0x01802 + 4 * #) BTime.GfxLayer3.NumYPoss: 1 BTime.GfxLayer3.YPos1.Value: @(0x01803 + 4 * #) BTime.GfxLayer3.NumEnables: 1 BTime.GfxLayer3.Enable1.Value: @(0x01802 + 4 * #) BTime.GfxLayer3.NumHFlips: 1 BTime.GfxLayer3.HFlip1.Value: @(0x01800 + 4 * #) & 0x02 BTime.GfxLayer3.NumVFlips: 1 BTime.GfxLayer3.VFlip1.Value: 0 # # Colour Palettes # BTime.NumPalettes: 2 BTime.Palette1.NumColours: 8 BTime.Palette1.MaxValue: 255 BTime.Palette1.Colour1.RGB: 0x00/0x00/0x00 BTime.Palette1.Colour2.RGB: 0xff/0xff/0xd1 BTime.Palette1.Colour3.RGB: 0xff/0xbe/0x00 BTime.Palette1.Colour4.RGB: 0xff/0xff/0x00 BTime.Palette1.Colour5.RGB: 0xff/0x00/0x00 BTime.Palette1.Colour6.RGB: 0x00/0xff/0x00 BTime.Palette1.Colour7.RGB: 0xd1/0x6f/0x00 BTime.Palette1.Colour8.RGB: 0x6f/0xbe/0x00 BTime.Palette2.NumColours: 8 BTime.Palette2.MaxValue: 255 BTime.Palette2.Colour1.RGB: 0x00/0x00/0x00 BTime.Palette2.Colour2.RGB: 0xbe/0xbe/0x90 BTime.Palette2.Colour3.RGB: 0x00/0xff/0xd1 BTime.Palette2.Colour4.RGB: 0x00/0x00/0xd1 BTime.Palette2.Colour5.RGB: 0xff/0xff/0x00 BTime.Palette2.Colour6.RGB: 0xff/0x00/0x00 BTime.Palette2.Colour7.RGB: 0xff/0xff/0x00 BTime.Palette2.Colour8.RGB: 0xff/0x00/0xd1