############################################################################### # # File: milliped.keg # # Description: # # This file contains the definition for Millipede. # # Author: Kevin Brisley # ############################################################################### # # The name of the game. # Millipede.Name: Millipede # # The desired FPS. # Millipede.FramesPerSecond: 60 # # The history and anecdote files. # Millipede.HistoryFile: milliped.his Millipede.TalesFile: milliped.tal # # Address spaces. # Millipede.NumSpaces: 1 # # The first address space is used by the Game CPU. It includes the following: # 0x00000-0x0FFFF (64K): Game RAM/ROM. # Millipede.Space1.Size: 0x10000 Millipede.Space1.NumROMs: 5 Millipede.Space1.ROM1.Description: 136013.104 @ 0x04000 Millipede.Space1.ROM2.Description: 136013.103 @ 0x05000 Millipede.Space1.ROM3.Description: 136013.102 @ 0x06000 Millipede.Space1.ROM4.Description: 136013.101 @ 0x07000 Millipede.Space1.ROM5.Description: 136013.101 @ 0x0f000 # # CPUs. # Millipede.NumCPUs: 1 # # CPU 1 (game). # Millipede.CPU1.Description: Game Millipede.CPU1.Type: 6502 Millipede.CPU1.ClockSpeed: 1000000 Millipede.CPU1.Space: 1 Millipede.CPU1.IValue: INT_IRQ # # The number of inputs. # Millipede.NumInputs: 8 Millipede.Input1.Description: Coin 1 Millipede.Input1.CPU: 1 Millipede.Input1.Location: 0x02000 Millipede.Input1.Default: 0xf8 Millipede.Input2.Description: Coin 2 Millipede.Input2.CPU: 1 Millipede.Input2.Location: 0x02001 Millipede.Input2.Default: 0xf0 Millipede.Input3.Description: Controls 1 Millipede.Input3.CPU: 1 Millipede.Input3.Location: 0x02010 Millipede.Input3.Default: 0xff Millipede.Input4.Description: Controls 2 Millipede.Input4.CPU: 1 Millipede.Input4.Location: 0x02011 Millipede.Input4.Default: 0xff Millipede.Input5.Description: Dip Switch 1 Millipede.Input5.CPU: 1 Millipede.Input5.Location: 0x00408 Millipede.Input5.Default: 0x14 Millipede.Input6.Description: Dip Switch 2 Millipede.Input6.CPU: 1 Millipede.Input6.Location: 0x00808 Millipede.Input6.Default: 0x02 Millipede.Input7.Description: Random Number Millipede.Input7.CPU: 1 Millipede.Input7.Location: 0x0040a Millipede.Input7.Random: 0-255 Millipede.Input8.Description: Random Number Millipede.Input8.CPU: 1 Millipede.Input8.Location: 0x0080a Millipede.Input8.Random: 0-255 # # The number of outputs. # Millipede.NumOutputs: 0 # # The keys used in the game. # Millipede.NumKeys: 13 # Player 1 Fire Millipede.Key1.Key: KEY_SPACE Millipede.Key1.Joy: JOY_B1 Millipede.Key1.Mask: 0x10 Millipede.Key1.Input: 1 Millipede.Key1.Default: Off/1 # Player 1 Down Millipede.Key2.Key: KEY_DOWN Millipede.Key2.Joy: JOY_DOWN Millipede.Key2.Mask: 0x04 Millipede.Key2.Input: 3 Millipede.Key2.Default: Off/1 # Player 1 Up Millipede.Key3.Key: KEY_UP Millipede.Key3.Joy: JOY_UP Millipede.Key3.Mask: 0x08 Millipede.Key3.Input: 3 Millipede.Key3.Default: Off/1 # Player 1 Right Millipede.Key4.Key: KEY_RIGHT Millipede.Key4.Joy: JOY_RIGHT Millipede.Key4.Mask: 0x01 Millipede.Key4.Input: 3 Millipede.Key4.Default: Off/1 # Player 1 Left Millipede.Key5.Key: KEY_LEFT Millipede.Key5.Joy: JOY_LEFT Millipede.Key5.Mask: 0x02 Millipede.Key5.Input: 3 Millipede.Key5.Default: Off/1 # Player 1 Start Millipede.Key6.Key: KEY_1 Millipede.Key6.Mask: 0x20 Millipede.Key6.Input: 1 Millipede.Key6.Default: Off/1 # Coin 1 Millipede.Key7.Key: KEY_3 Millipede.Key7.Mask: 0x40 Millipede.Key7.Input: 3 Millipede.Key7.Default: Off/1 # Player 2 Fire Millipede.Key8.Key: KEY_A Millipede.Key8.Mask: 0x10 Millipede.Key8.Input: 2 Millipede.Key8.Default: Off/1 # Player 2 Down Millipede.Key9.Key: KEY_K Millipede.Key9.Mask: 0x04 Millipede.Key9.Input: 4 Millipede.Key9.Default: Off/1 # Player 2 Up Millipede.Key10.Key: KEY_I Millipede.Key10.Mask: 0x08 Millipede.Key10.Input: 4 Millipede.Key10.Default: Off/1 # Player 2 Right Millipede.Key11.Key: KEY_L Millipede.Key11.Mask: 0x01 Millipede.Key11.Input: 4 Millipede.Key11.Default: Off/1 # Player 2 Left Millipede.Key12.Key: KEY_J Millipede.Key12.Mask: 0x02 Millipede.Key12.Input: 4 Millipede.Key12.Default: Off/1 # Player 2 Start Millipede.Key13.Key: KEY_2 Millipede.Key13.Mask: 0x20 Millipede.Key13.Input: 2 Millipede.Key13.Default: Off/1 # # The dip switches used in the game. # Millipede.NumDips: 12 # Lives (1 of 2) Millipede.Dip1.Description: Lives (1 of 2) Millipede.Dip1.Mask: 0x08 Millipede.Dip1.Input: 5 Millipede.Dip1.Default: On/1 # Lives (2 of 2) Millipede.Dip2.Description: Lives (2 of 2) Millipede.Dip2.Mask: 0x04 Millipede.Dip2.Input: 5 Millipede.Dip2.Default: Off/0 # Bonus Life (1 of 2) Millipede.Dip3.Description: Bonus Life (1 of 2) Millipede.Dip3.Mask: 0x20 Millipede.Dip3.Input: 5 Millipede.Dip3.Default: On/1 # Bonus Life (2 of 2) Millipede.Dip4.Description: Bonus Life (2 of 2) Millipede.Dip4.Mask: 0x10 Millipede.Dip4.Input: 5 Millipede.Dip4.Default: Off/0 # Starting Score Select Millipede.Dip5.Description: Starting Score Select Millipede.Dip5.Mask: 0x80 Millipede.Dip5.Input: 5 Millipede.Dip5.Default: On/1 # Millipede Head Millipede.Dip6.Description: Millipede Head Millipede.Dip6.Mask: 0x01 Millipede.Dip6.Input: 5 Millipede.Dip6.Default: Off/0 # Beetle Difficulty Millipede.Dip7.Description: Beetle Difficulty Millipede.Dip7.Mask: 0x02 Millipede.Dip7.Input: 5 Millipede.Dip7.Default: Off/0 # Spider Difficulty Millipede.Dip8.Description: Spider Difficulty Millipede.Dip8.Mask: 0x40 Millipede.Dip8.Input: 5 Millipede.Dip8.Default: Off/0 # Bonus Setting (1 of 2) Millipede.Dip9.Description: Bonus Setting (1 of 2) Millipede.Dip9.Mask: 0x08 Millipede.Dip9.Input: 6 Millipede.Dip9.Default: Off/0 # Bonus Setting (2 of 2) Millipede.Dip10.Description: Bonus Setting (1 of 2) Millipede.Dip10.Mask: 0x04 Millipede.Dip10.Input: 6 Millipede.Dip10.Default: Off/0 # Language (1 of 2) Millipede.Dip11.Description: Language (1 of 2) Millipede.Dip11.Mask: 0x02 Millipede.Dip11.Input: 6 Millipede.Dip11.Default: Off/0 # Language (2 of 2) Millipede.Dip12.Description: Language (2 of 2) Millipede.Dip12.Mask: 0x01 Millipede.Dip12.Input: 6 Millipede.Dip12.Default: Off/0 # # Screen Resolution. # Millipede.ScreenWidth: 256 Millipede.ScreenHeight: 256 # # Graphics Sets. # Millipede.NumGfxSets: 2 # # The first set contains the character set. # Millipede.GfxSet1.Width: 8 Millipede.GfxSet1.Height: 8 Millipede.GfxSet1.Number: 256 Millipede.GfxSet1.BPP: 2 Millipede.GfxSet1.BPs: 0 16384 Millipede.GfxSet1.XBits: 0 8 16 24 32 40 48 56 Millipede.GfxSet1.YBits: 7 6 5 4 3 2 1 0 Millipede.GfxSet1.Increment: 64 Millipede.GfxSet1.NumROMs: 2 Millipede.GfxSet1.ROM1.Description: 136013.106 Millipede.GfxSet1.ROM2.Description: 136013.107 # # The second set contains the sprites. # Millipede.GfxSet2.Width: 16 Millipede.GfxSet2.Height: 8 Millipede.GfxSet2.Number: 128 Millipede.GfxSet2.BPP: 2 Millipede.GfxSet2.BPs: 0 16384 Millipede.GfxSet2.XBits: 0 8 16 24 32 40 48 56 \ 64 72 80 88 96 104 112 120 Millipede.GfxSet2.YBits: 7 6 5 4 3 2 1 0 Millipede.GfxSet2.Increment: 128 Millipede.GfxSet2.NumROMs: 2 Millipede.GfxSet2.ROM1.Description: 136013.106 Millipede.GfxSet2.ROM2.Description: 136013.107 # # Graphic Layers # Millipede.NumGfxLayers: 2 ############################################################################### # The first layer renders the characters. # # The video RAM starts at 0x01000 and is mapped as follows: # # 0x13ff 0x13df 0x13bf ... 0x103f 0x101f # 0x13fe 0x13de 0x13be ... 0x103e 0x101e # ... ... ... ... ... # 0x13e0 0x13c0 0x13a0 ... 0x1020 0x1000 ############################################################################### Millipede.GfxLayer1.Lightweight: Yes Millipede.GfxLayer1.Space: 1 Millipede.GfxLayer1.GfxSet: 1 Millipede.GfxLayer1.Palette: 1 Millipede.GfxLayer1.ColourTable: 1 Millipede.GfxLayer1.Transparency: Off Millipede.GfxLayer1.Clipping: 8,247,0,255 Millipede.GfxLayer1.NumChars: 1024 Millipede.GfxLayer1.NumDirty: 1 Millipede.GfxLayer1.Dirty1.Start: 0x01000 Millipede.GfxLayer1.Dirty1.End: 0x013ff Millipede.GfxLayer1.Dirty1.CharsPerLoc: 1 Millipede.GfxLayer1.Dirty1.Assign: # Millipede.GfxLayer1.NumCharNums: 1 Millipede.GfxLayer1.CharNum1.Value: \ @(0x01000 + #) & 0x40 ? \ (@(0x01000 + #) & 0x3f) + 0xc0 : (@(0x01000 + #) & 0x3f) + 0x40 Millipede.GfxLayer1.NumColours: 1 Millipede.GfxLayer1.Colour1.Value: 0 Millipede.GfxLayer1.NumXPoss: 1 Millipede.GfxLayer1.XPos1.Value: (# / 32 + 1) * 8 Millipede.GfxLayer1.NumYPoss: 1 Millipede.GfxLayer1.YPos1.Value: (31 - # % 32) * 8 ############################################################################### # The second layer renders the sprites. # # The sprite RAM starts at 0x013c0. There are 16 sprites and 4 bytes per # sprite. The following indicate the usage: # # 0x13c0-0x13cf: sprite number. # 0x13d0-0x13df: X position. # 0x13e0-0x13ef: Y position. # 0x13f0-0x13ff: Colour (not currently used). ############################################################################### Millipede.GfxLayer2.Space: 1 Millipede.GfxLayer2.GfxSet: 2 Millipede.GfxLayer2.Palette: 1 Millipede.GfxLayer2.ColourTable: 1 Millipede.GfxLayer2.Clipping: 8,247,0,255 Millipede.GfxLayer2.Transparency: On Millipede.GfxLayer2.NumChars: 16 Millipede.GfxLayer2.NumDirty: 1 Millipede.GfxLayer2.Dirty1.Start: 0x013c0 Millipede.GfxLayer2.Dirty1.End: 0x013ff Millipede.GfxLayer2.Dirty1.CharsPerLoc: 1 Millipede.GfxLayer2.Dirty1.Assign: # % 16 Millipede.GfxLayer2.NumCharNums: 1 Millipede.GfxLayer2.CharNum1.Value: \ @(0x013c0 + #) & 0x01 ? \ (@(0x013c0 + #) & 0x3f) / 2 + 64 : (@(0x013c0 + #) & 0x3f) / 2 Millipede.GfxLayer2.NumColours: 1 Millipede.GfxLayer2.Colour1.Value: 0 Millipede.GfxLayer2.NumXPoss: 1 Millipede.GfxLayer2.XPos1.Value: 248 - @(0x013d0 + #) Millipede.GfxLayer2.NumYPoss: 1 Millipede.GfxLayer2.YPos1.Value: 248 - @(0x013e0 + #) Millipede.GfxLayer2.NumEnables: 1 Millipede.GfxLayer2.Enable1.Value: @(0x013e0 + #) < 0xf8 Millipede.GfxLayer2.NumHFlips: 1 Millipede.GfxLayer2.HFlip1.Value: @(0x013c0 + #) & 0x80 Millipede.GfxLayer2.NumVFlips: 1 Millipede.GfxLayer2.VFlip1.Value: 0 # # Colour Palettes # Millipede.NumPalettes: 1 Millipede.Palette1.NumColours: 16 Millipede.Palette1.MaxValue: 255 Millipede.Palette1.Colour1.RGB: 0x00/0x00/0x00 Millipede.Palette1.Colour2.RGB: 0x94/0x00/0xd8 Millipede.Palette1.Colour3.RGB: 0xd8/0x00/0x00 Millipede.Palette1.Colour4.RGB: 0xf8/0x64/0xd8 Millipede.Palette1.Colour5.RGB: 0x00/0xd8/0x00 Millipede.Palette1.Colour6.RGB: 0x00/0xf8/0xd8 Millipede.Palette1.Colour7.RGB: 0xd8/0xd8/0x94 Millipede.Palette1.Colour8.RGB: 0xd8/0xf8/0xd8 Millipede.Palette1.Colour9.RGB: 0xf8/0x94/0x44 Millipede.Palette1.Colour10.RGB: 0x00/0x00/0xd8 Millipede.Palette1.Colour11.RGB: 0xf8/0x00/0x00 Millipede.Palette1.Colour12.RGB: 0xff/0x00/0xff Millipede.Palette1.Colour13.RGB: 0x00/0xf8/0x00 Millipede.Palette1.Colour14.RGB: 0x00/0xff/0xff Millipede.Palette1.Colour15.RGB: 0xf8/0xf8/0x00 Millipede.Palette1.Colour16.RGB: 0xff/0xff/0xff # # The colour lookup table. # Millipede.NumColourTables: 1 Millipede.ColourTable1.NumEntries: 32 Millipede.ColourTable1.List: \ 0x00,0x02,0x09,0x06,0x00,0x0c,0x01,0x08, \ 0x00,0x04,0x02,0x0e,0x00,0x02,0x04,0x0b, \ 0x00,0x0e,0x04,0x0a,0x00,0x0c,0x08,0x0e, \ 0x00,0x07,0x0a,0x03,0x00,0x05,0x0a,0x07