/* this file houses information previously in konamiic.c / konicdev.c because it has no other home now this has been split into separate files TODO: - It seems shadows can both affect underlying sprites and not. This is currently hardcoded in the drivers; there might be a control bit somewhere. Games requiring shadows to affect sprites behind them: - Surprise Attack (dark glass walls in level 3) - 88 Games (angle indicator in the long jump event) - Sunset Riders (bull's eye in the saloon cutscene) - TMNT 2 (lightbeam in level 4 cave) - Metamorphic Force (double! lightbeam just before the last boss) Games requiring shadows to NOT affect sprites behind them: - Asterix (Asterix's shadow would be over his feet otherwise) - X-Men is dubious, see enemies halfway through level 1 coming from above with boulders over their heads. - scrollcontrol = 30 in Golfing Greats (leader board) Emulated | board #|year CPU tiles sprites priority palette other -----|---- ------- ------------- ------------- ------ ------ ---------------- Hyper Crash GX401 1985 GX400 Twinbee GX412*1985 68000 GX400 Yie Ar Kung Fu GX407*1985 6809 Gradius / Nemesis GX456*1985 68000 GX400 Shao-lins Road GX477*1985 6809 Jail Break GX507*1986 KONAMI-1 005849 PROMs Finalizer GX523*1985 KONAMI-1 005885 PROMs Konami's Ping Pong GX555*1985 Z80 Iron Horse GX560*1986 6809 005885 PROMs Konami GT GX561*1985 68000 GX400 Green Beret GX577*1985 Z80 005849 PROMs Galactic Warriors GX578*1985 68000 GX400 Salamander GX587*1986 68000 GX400 WEC Le Mans 24 GX602*1986 2x68000 BAW / Black Panther GX604*1987 68000 GX400 007593 Combat School / GX611*1987 6309 007121(x2) 007327 Boot Camp Rock 'n Rage / GX620*1986 6309 007342 007420 007327 Koi no Hotrock Mr Kabuki/Mr Goemon GX621*1986 Z80 005849 Jackal GX631*1986 6809 005885(x2) 007327 007343 (address decoder) Contra / Gryzor GX633*1987 6309 007121(x2) 007593 Flak Attack GX669*1987 6309 007121 007327 007452 Devil World / Dark GX687*1987 2x68000 TWIN16 Adventure / Majuu no Oukoku Double Dribble GX690*1986 3x6809 005885(x2) 007327 007452 Kitten Kaboodle / GX712*1988 GX400 007593 051550 Nyan Nyan Panic Chequered Flag GX717*1988 052001 051960 051937(x2) 051316(x2) (roz) 051733 (protection) Fast Lane GX752*1987 6309 007121 051733 (protection) 007801 Hot Chase GX763*1988 2x68000 051316(x3) (roz) 007634 007635 007558 007557 Rack 'Em Up / GX765*1987 6309 007342 007420 007327 007324 The Hustler Haunted Castle GX768*1988 052001 007121(x2) 007327 Ajax / Typhoon GX770*1987 6309+ 052109 051962 051960 051937 PROM 007327 051316 (roz) 052001 Labyrinth Runner / GX771*1987 6309 007121 007593 051733 (protection) 051550 Trick Trap Super Contra GX775*1988 052001 052109 051962 051960 051937 PROM 007327 Battlantis GX777*1987 6309 007342 007420 007327 007324 Vulcan Venture / GX785*1988 2x68000 TWIN16 Gradius 2 City Bomber GX787*1987 68000 GX400 007593 051550 Over Drive GX789*1990 2x68000 053247 053246 053251 051316(x2) (roz) 053249 053250(x2) (road) 053252(*) Hyper Crash GX790 1987 Blades of Steel GX797*1987 6309 007342 007420 007327 051733 (protection) The Main Event GX799*1988 6309 052109 051962 051960 051937 PROM Missing in Action GX808*1989 68000 052109 051962 051960 051937 PROM Missing in Action J GX808*1989 2x68000 TWIN16 Crime Fighters GX821*1989 052526 052109 051962 051960 051937 PROM Special Project Y GX857*1989 6309 052109 051962 051960 051937 PROM 052591 (protection) '88 Games GX861*1988 052001 052109 051962 051960 051937 PROM 051316 (roz) Final Round / GX870*1988 1x68000 TWIN16? Hard Puncher Thunder Cross GX873*1988 052001 052109 051962 051960 051937 PROM 007327 052591 (protection) Aliens GX875*1990 052526 052109 051962 051960 051937 PROM Gang Busters GX878*1988 052526 052109 051962 051960 051937 PROM Devastators GX890*1988 6309 052109 051962 051960 051937 PROM 007324 051733 (protection) Bottom of the Ninth GX891*1989 6809 052109 051962 051960 051937 PROM 051316 (roz) Cue Brick GX903*1989 68000 052109 051962 051960 051937 PROM Cue Brick GX903*1989 2x68000 TWIN16 Punk Shot GX907*1990 68000 052109 051962 051960 051937 053251 Ultraman GX910*1991 68000 ------ ------ 051960 051937 PROM 051316(x3) (roz) 051550 Surprise Attack GX911*1990 053248 052109 051962 053245 053244 053251 Lightning Fighters /GX939*1990 68000 052109 051962 053245 053244 053251 Trigon Gradius 3 GX945*1989 2x68000 052109 051962 051960 051937 PROM Parodius GX955*1990 053248 052109 051962 053245 053244 053251 TMNT GX963*1989 68000 052109 051962 051960 051937 PROM Block Hole GX973*1989 052526 052109 051962 051960 051937 PROM Escape Kids GX975*1991 053248 052109 051962 053247 053246 053251 053252(*) Rollergames GX999*1991 053248 ------ ------ 053245 053244 051316 (roz) 053252(*) Bells & Whistles / GX060*1991 68000 052109 051962 053245 053244 053251 054000 (collision) Detana!! Twin Bee Golfing Greats GX061*1991 68000 052109 051962 053245 053244 053251 053936 (roz+) TMNT 2 GX063*1991 68000 052109 051962 053245 053244 053251 053990 (protection) 051550 Sunset Riders GX064*1991 68000 052109 051962 053245 053244 053251 054358 X-Men GX065*1992 68000 052109 051962 053247 053246 053251 054539 (sound) XEXEX GX067*1991 68000 054157 054156 053247 053246 053251 053250?("road") 054338 (alpha blending) 054539 (sound) Asterix GX068*1992 68000 054157 054156 053245 053244 053251 054358 G.I. Joe GX069*1992 68000 054157 054156 053247 053246 053251 054539 (sound) The Simpsons GX072*1991 053248 052109 051962 053247 053246 053251 Thunder Cross 2 GX073*1991 68000 052109 051962 051960 051937 053251 054000 (collision) Vendetta / GX081*1991 053248 052109 051962 053247 053246 053251 054000 (collision) Crime Fighters 2 Premier Soccer GX101*1993 68000 052109 051962 053245 053244 053251 053936 (roz+) 054986 Hexion GX122*1992 Z80 052591 (protection) 053252(*) Entapous / GX123*1993 68000 054157 054156 055673 053246 055555 053252(*) 054000 053936 (roz+) Gaiapolis Mystic Warrior GX128*1993 68000 054157 054156 055673 053246 055555 054338 (alpha blending) 053252(*) 054539(x2) (sound) Cowboys of Moo Mesa GX151*1992 68000 054157 054156 053247 053246 053251 053252(*) 054338 (alpha blending) 053990 (protection) Violent Storm GX168*1993 68000 054157 054156 055673 053246 055555 054338 (alpha blending) 055550 054539(x2) (sound) Monster Maulers / GX170*1993 68000 054157 054156 055673 053246 055555 053252(*) 055550 054338 (alpha blending) 054539 (sound) 053936 (roz+) Ultimate Battler Dadandarn Bucky 'O Hare GX173*1992 68000 054157 054156 053247 053246 053251 054338 (alpha blending) 054539 (sound) Potrio GX174 1992 Lethal Enforcers GX191*1992 6309 054157(x2) 054156 053245 053244(x2) 054000 054539 (sound) Metamorphic Force GX224*1993 68000 054157 054157 055673 053246 055555 Martial Champion GX234*1993 68000 054157 054156 055673 053246 055555 053252(*) 054338 (alpha blending) 053990 054539 (sound) Run and Gun GX247*1993 68000 (TTL tilemap) 055673 053246 053253(x2) 053252(*) 053936 (roz+) 054539(x2) (sound) Quiz Gakumon no GX248*1993 68000 052109 051962 053245 053244 053251 053990 (protection) 051550 - same board as TMNT2 Susume Polygonet Commander GX305+1993 68020 (TTL tilemap) XC56156-40(3D DSP) 054009(x2) 054010(x2) 054539 (sound) System GX (ver 1) GX300*1993 68020 056832 054156 055673 053246 055555 054338 (alpha blending) 054539(x2) (sound) 053252(*) 053936 (optional on ROM board, roz+) System GX (ver 2) GX300*1995 68020 056832 058143 055673 058142 055555 058144 (alpha blending) 058141 (sound) 053252(*) 053936 (optional on ROM board, roz+) Beatmania DJ Main GX858+1996 68020 056832 058143 056766 055555 058144 (alpha blending) 058141 (sound) 053252(*) Tail to Nose *1989 68000 V-System 051316 (roz) F-1 Grand Prix *1991 2x68000 V-System 053936 (roz+) F-1 Grand Prix Part II *1992 2x68000 V-System 053936 (roz+) Lethal Crash Race *1993 68000 V-System 053936 (roz+) Super Slams *1995 68000 V-System 053936 (roz+) Blazing Tornado *1991 68000 Metro 053936 (roz+) Dragon Ball Z 2 *1994 68000 054157 054156 053247 053246 053251(x2) 053936(x2) (roz+) 053252(*) Notes: * 053252 seems to be just a timing/interrupt controller (see Vendetta schematics). - Old games use 051961 instead of 052109, it is an earlier version functionally equivalent (maybe 052109 had bugs fixed). The list always shows 052109 because the two are exchangeable and 052109's are found also on original boards whose schematics show a 051961. - Starting with the version 2 System GX mainboard, the following chip substitutions took place. All "new" chips are equivalent to their older counterparts, but are in a smaller package (and presumably are made on a smaller process). The exception is the 058141, which is equivalent to 2 54539s (and yet takes less board space than even 1). 058141 = 054539 (x2) (2 sound chips in one) 058142 = 053246 (sprites) 058143 = 054156 (tiles) 058144 = 054338 (alpha blending) Status of the ROM tests in the emulated games: Chequered Flag pass Ajax / Typhoon pass Super Contra pass Over Drive pass The Main Event pass Missing in Action pass Crime Fighters pass Special Project Y pass Konami 88 pass Thunder Cross pass Aliens pass Gang Busters pass Devastators pass Bottom of the Ninth pass Punk Shot pass Surprise Attack pass Lightning Fighters pass Gradius 3 pass Parodius pass TMNT pass Block Hole pass Escape Kids pass Rollergames pass Bells & Whistles pass Golfing Greats pass TMNT 2 pass Sunset Riders pass X-Men pass The Simpsons pass Thunder Cross 2 pass Xexex pass Asterix pass GiJoe pass Vendetta pass Premier Soccer fails 16D 18D 18F (053936) Hexion pass Run and Gun fails 36M (053936) 2U 2Y 5U 5Y (sprites) Quiz Gakumon no Susume pass Dragon Ball Z 2 fails 005885 (this is currently just implemented in the drivers?) ------ Some games use two of these in pair. Jackal even puts together the two 4bpp tilemaps to form a single 8bpp one. It manages sprites and 32x32 or 64x32 tilemap (only Double Dribble uses the 64x32 one). The chip also generates clock and interrupt signals suitable for a 6809. It uses 0x2000 bytes of static RAM for the tilemaps and sprite lists, and two 64kx4bit DRAMs, presumably as a double frame buffer. The maximum addressable ROM is 0x20000 bytes (addressed 16 bits at a time). Tile and sprite data both come from the same ROM space. Double Dribble and Jackal have external circuitry to extend the limits and use separated addressing spaces for sprites and tiles. All games use external circuitry to reuse one or both the tile flip attributes as an additional address bit. Two 256x4 lookup PROMs are also used to increase the color combinations. All tilemap / sprite priority handling is done internally and the chip exports 5 bits of color code, composed of 1 bit indicating tile or sprite, and 4 bits of ROM data remapped through the PROM. inputs: - address lines (A0-A13) - data lines (DB0-DB7) - misc interface stuff - data from the gfx ROMs (RDL0-RDL7, RDU0-RDU7) - data from the tile lookup PROMs (VCD0-VCD3) - data from the sprite lookup PROMs (OCD0-OCD3) outputs: - address lines for tilemap RAM (AX0-AX12) - data lines for tilemap RAM (VO0-VO7) - address lines for the DRAMs (FA0-FA7) - control lines for the DRAMs (NWR0, NWR1, NRAS, NCAS, NFOE) - data lines for the DRAMs (FD0-FD7) - address lines for the gfx ROMs (R0-R15) - address lines for the tile lookup PROMs (VCF0-VCF3, VCB0-VCB3) - address lines for the sprite lookup PROMs (OCB0-OCB3, OCF0-OCF3) - NNMI, NIRQ, NFIR, NCPE, NCPQ, NEQ for the main CPU - misc interface stuff - color code to be output on screen (COL0-COL4) control registers 000: scroll y 001: scroll x (low 8 bits) 002: -------x scroll x (high bit) ----xxx- row/colscroll control 000 = solid scroll (finalizr, ddribble bg) 100 = solid scroll (jackal) 001 = ? (ddribble fg) 011 = colscroll (jackal high scores) 101 = rowscroll (ironhors, jackal map) 003: ------xx high bits of the tile code -----x-- unknown (finalizr) ----x--- selects sprite buffer (and makes a copy to a private buffer?) --x----- unknown (ironhors) -x------ unknown (ironhors) x------- unknown (ironhors, jackal) 004: -------x nmi enable ------x- irq enable -----x-- firq enable ----x--- flip screen */