| driver | namcos21.c |
| source | namcos21.c (namcos21.c on mamedev.org) |
| games | Air Combat (Japan) Air Combat (US) Cyber Sled (Japan) Cyber Sled (US) Driver's Eyes Solvalou (Japan) Starblade Winning Run 91 Winning Run Suzuka Grand Prix |
| information | 0.55 [Phil Stroffolino] TODO: - Winning Run: Polygon glitches/flicker and posirq effects for bitmap layer not working. - Driver's Eyes: Not yet working. NOTES: - Hardware: There are at least four hardware variations, all of which are based on Namco System2. The main 68k CPUs populate a chunk of shared RAM with an display list describing a scene to be rendered. The main CPUs also specify attributes for a master camera which provides additional global transformations. The display list contains references to specific 3d objects and their position/orientation in 3d space. The master DSP parses the display list and applies high level geometry, emitting matrices and object references. Object references are expanded into meshes (decoded from point ROMs) and passed to the slave DSP, interleaved with local transforms. A collection of slave DSPs transforms, projects, and clips each primitive's vertices. Each slave DSP outputs a stream of quad descriptors. Each quad has a reference color (shared across vertices), and for each vertex the tuple: (screenx,screeny,z-code). The z-code scalar accounts for depth bias. A zbuffer is used while rendering quads, and depth cueing is used to shade pixels according to their depth. WIP: - 0.125u9: Robiza fixed unable to locate Namco System 21 input port 'AN7'. - 0.125u7: Fabio Priuli updated most Namco systems + a couple of old drivers sharing the input handling. - 0.123u3: Couriersud fixed Namco System 21 crashes due to nvram allocation in MACHINE_RESET. Created MACHINE_START and move allocation there. - 19th November 2007: Phil Stroffolino - Many Namco games support a "link up" feature, using the C139 controller. This allows the operator to connect up to 8 PCBs for multiplayer, LAN-style gaming. This is used in a many games, including: The Final Lap series, Cyber Sled, Winning Run, Driver's Eyes, Ridge Racer, Time Crisis ...just to name a few. Driver's Eyes is an interesting use case, as the controller is used to link the separate displays (left, middle, and right monitor) for a single-player game. I've 90% reverse engineered the controller, and completed some tests. But there a more fundamental architectural problem that needs to be solved before it can be supported in a mainstream emulator: how to support emulation where for any game, 1..8 PCB instances might be present? It's not easy to take a driver and modify it to support multiple instances. You'd have to declare additional instances of virtual CPUs, input ports, monitors. Many emulated components are currently written to assume a single instance. Which variants shold be supported for any game - "1 cab"? "5 cabs" Even if these weren't troublesome on their own, emulating "all pcbs" within a single process on a local machine is not practical from a performance perspective. Towards this end, I'm exploring support for running N PCB instances using separate processes for each PCB, and pipes for the inter-CPU communication/synchronization. The goal is to allow PCBs to be emulated on different physical machines if so desired. - 0.120u1: Namco System 21 update [Phil Stroffolino]: Namconb1 sprites no longer broken. Fixed missing 3d gfx in Cyber Sled. Gradient colors in Starblade. More accurate depth cueing. Fixed crash in 2nd stage of Starblade. Fixed lockups in Air Combat and Solvalou. Fixes to sprite priority (see Solvalou mountain range). Hooked up translucency (palette shift) effect. - 0.119u1: Major Namco System 21 update [Phil Stroffolino]. Changes include: Corrections to EPROM handling (affects Namco System2 as well). Scroll fix for sprite emulation in namcoic.c. Working Starblade, Cybersled and Solvalou with full 3D. Graphics should be 100% except for the depth cueing tables, which are internal and need to be reconstructed. Air Combat is improved, but is locking up in 118s because of incomplete watchdog emulation. Winning Run hardware is not yet working in this update. - 22nd September 2007: Phil Stroffolino - I've sorted out most of the remaining graphics quirks with System21 emulation. Changes include: * C355 (sprite) emulation improvements - hooked up mode control for sprite list source location. * Proper mixing of sprite/bitmap layer and polygon colors; adds sprite-based mountain range to Solvalou. * Support for translucency effects using alternate polygon palette banks - fixes windshield in Winning Run, radar in Cyber Sled, an adds various special effects that had been missing. * Identified and hooked up video-enable register. Some mysteries remain: * There are two flavors of polygon rendering: 3d objects from Point ROMs, and dynamically-generated geometry. An example of the latter is the gradients used to draw the horizon in some games. This looks fine in some titles, but in other games (particularly Starblade's high score backdrop), the colors are clear wrong, and there is no obvious mapping from the color parameters to pens in the palette. * System21 hardware supports depth cueing, a technique for fogging polygons, so that polygons further away from the viewer are shaded differently. Only Air Combat explicitly initializes the fog tables, but that doesn't mean that other games don't use it. Winning Run definitely does, judging from screenshots, as does Starblade. I need to determine what the default tables should be. * Apparent DSP emulation bugs cause some of the math calculations to be slightly off - for example, flag-based calculations that determine whether a polygon is a backface aren't working, and so introduce rendering artifacts. - 19th September 2007: Phil Stroffolino - I'm in the process of working around the last few issues affecting System21 emulation, including successful workarounds for lockups in Air Combat and Solvalou, emulation of scanline effects, and color glitches. But one thing that really would be nice is a standalone emulator that can run these games full speed with more modest CPU requirements. As it stands, I can run Starblade only in slow motion on my development laptop, which isn't much fun. Towards this end, I will be packaging and releasing a emulator that runs System21 and System22 titles with hardware accelerated graphics and statically recompiled DSP code. Any suggestions for a name and/or features would be welcome. - 9th September 2007: Phil Stroffolino - I'm publishing a snapshot of the Namco System 21 driver for safe keeping and bug collection purposes. It's currently based on mame098s source tree, as I had many unchecked in changes when taken a hiatus from MAME. If anyone is interested to help update it to 118+, please let me know. Notes and Known Issues: 1. The BIOS is actually named c67.bin, not c68prg. 2. For the newer games (that use multiple DSPs) the pipeline for the 3d data currently needs a manual "poke" to start 3d graphics emulation. Press and hold "N" briefly anytime after the game has finished booting to "kickstart" the 3d layer. 3. Solvalou has sprite-polygon priority issues; in particular, there's a sprite-based mountain range that is supposed to be displayed in the background in-game. 4. Starblade has some bad colors when displaying high scores in attract mode. 5. Air Combat's 3d graphics "lockup" in-game due to timing issues and a software watchdog managed by the DSPs. 6. Cybersled floor polygons sometimes are missing, because of the zbuffer is incorrectly overloaded to also encode transparency. 7. Some polygon glitches/flicker with Winning Run hardware. 8. Driving Eyes hardware is not yet supported at all. - 6th September 2007: Phil Stroffolino - Winning Run (old hardware) uses a single DSP to offload the geometry processing. The 68k CPUs talk to that DSP, that that DSP emits polygon descriptions. The single DSP doesn't have a BIOS like the newer titles. Instead, the master 68k CPU uploads code that slots right into program space 0x000..0xfff. I have not seen a Winning Run board firsthand, but I'd expect it to have a single DSP. The newer titles logically use a pair of DSPs. When I say logically, I mean that the code is written as if there are two DSPs. 1) There is a C67 master DSP with baked-in BIOS. The 68k uploads additional game-specific code, and the master DSP and 68k communicate directly via shared RAM. The master DSP handles high level geometry transforms - setting up camera matix and combining local transforms. 2) The 68k also uploads a chunk of game-specific "Slave DSP" code that again supplements a baked-in C67 BIOS. The slave DSP does vertex transformation and clipping calculations. Logically, there's only a single "Slave DSP." The master DSP doesn't talk directly to the Slave DSP, but rather uses ports to transmit object-rendering commands. So where do the remaining C67 DSPs come in, you ask? As it happens, the load for the "Slave DSP" is much higher than the load for the Master DSP. Starblade is a good example. Some of the scenes feature a tremendous number of polygons - when I first hooked up background graphics, the framerate took a dive. Interestingly, if you overclock the slave DSP by a factor of 4, Starblade runs silky smooth even with all the extra in-game background objects. I believe that the way the real hardware works is that there are four C67 Slave DSPs that are used round-robin style for object vertex processing. When the master DSP transmits object descriptors, they are routed to the next available slave, allowing the load to be distributed in parallel. This isn't exposed at the software level - it's just a best guess at how the real hardware must work. Overclocking is just a simpler means to achieve the same end. Again, this is just a guess. It's also plausible that there is a single master and slave DSP, that both run at freakishly high clock speeds, and that the other DSPs are used for something else i.e. the actual polygon filling, which isn't explicitly done by either the BIOS or uploaded TSM25025 code. - 5th September 2007: Phil Stroffolino - The System21 DSP BIOS has been dumped - many thanks to Ruben. There are two DSPs, a master and slave. As with System22, a common BIOS is used. In System21, one of the input ports is polled at runtime to identify whether the BIOS is being used for a master DSP or a slave DSP, and triggers a jump to the appropriate code variant. Here's a quick summary of BIOS functionality: Self-tests: data and program space RAM, self-tests: communication paths between master/slave dsp, BIOS CRC check, if BIOS CRC is wrong, BIOS attempts to fix itself by copying external data as part of an "EP" operation (eprom?), CRC check of point roms, unused code that operates on point ram, lots of unused (vestigal?) data tables, manages upload of external master DSP code, manages upload of external slave DSP code and processing of some signals from display list. For better or worse, no unexpected or surprising functionality has been found. There were a few uses of the BIOS from the master68k side that hinted at advanced features, but these aren't actually used. The BIOS implements certain behaviors that were HLE'd via hacks in MAME, but emulating it properly doesn't magically fix anything. Tthings that we now know aren't_ handled explicitly by the master/slave DSPs are now confirmed to be behavior innate in external (simulated) hardware. Interesting discoveries: Some input/output ports are used only by BIOS and are now documented. The BIOS use of existing input/output ports is slightly different, and has helped correct their emulation. An "IDC" transfer operation supports block copies from master DSP RAM to slave DSP, via ports. There are two modes: one that copies data raw, and another that interleaves point ROM data. This is particularly important for Air Combat. System21 is well on its way to being fully tamed. Note that the BIOS and master/slave configuration is used with the following PCBs: Starblade, Air Combat, Cybersled and Solvalou. - 0.97u1: Added includes amcos21.h. Major update to Namco System 21 driver [Phil Stroffolino]. - 0.95u4: Mamesick fixed C140 sound routing in the Namco games (namcos2/21.c). - 0.93: Added clock parameter to C140 sound (21390 Hz). - 0.86u1: Added 2x TMS32025 (24MHz) CPU5/6. - 0.78u5: System 21 updates [Phil Stroffolino]: Hooked up preliminary support for System21's 'depth bias' feature, used as a corrective factor when sorting polygons by representative z value. It's not perfect, but a step in the right direction, improved polygon colors in CyberSled, better parsing of CyberSled's display list; title screen and ingame graphics now appear and are mostly correct, hooked up CyberSled input ports; they can be configured with the usual mechanism: hold the 'service' key while flipping the test dipswitch, added near-plane clipping for System21's flat-shaded polygons, hooked up the view transform, used in Starblade to tilt the screen when player is targeting the edges of the playfield, hooked up a private (placeholder) implementation of zdrawgfx() for C355 sprite rendering, adding sprite-tilemap orthogonality for all games using that chip, C355 sprite rendering no longer relies on game-specific hacks for XY placement or cropping, some rudimentary work has been done for "Winning Run '91"; this game runs on prototype System21 hardware, and as such is quite different from the other titles. It uses a 3rd 68k CPU to render graphics to a bitmap layer (there is no sprite chip), but still appears to rely on DSPs for 3d graphics and updated System21 notes/comments. - 0.78u3: Aaron Giles fixed the PROGRAM_WRITE16_MAP (Namco System 21 crach in 0.78u2). - 0.71u2: Added vidhrdwmatrix3d.c. - 0.70u4: Phil Stroffolino improved Namco road emulation. - 0.63: TMS32025 CPU core [Quench]. - 21st October 2002: Aaron Giles fixed some crashes that happened in the Namco 3D games. - 15th October 2002: Aaron Giles converted the Namco 3D graphics emulation to use the generic triangle setup routines. - 24th August 2002: Phil Stroffolino submitted the Namco System 21 and 22 drivers. Starblade and Solvalou are playable though missing some background graphics, the rest suffer from various problems. - 23rd August 2002: Phil Stroffolino reported some progress with the Namco System 21 driver, which supports Starblade, Air Combat, Cyber Sled and Solvalou. All games have full sound support thanks to R. Belmont. Starblade is fully playable, but the other games are preliminary and suffer from various graphics glitches and lack of input ports. - 6th July 2002: Phil Stroffolino updated the Namco System 21 driver, but the 3D graphics remain unemulated. - 0.60: Removed includes amcos21.h. - 0.55: Added namcos21.c driver, vidhrdw amcos21.c and includes amcos21.h. - 11th September 2001: Phil Stroffolino reported some progress with the Namco System 2 driver, specifically the sprites are now perfect but the road is not yet working. - 8th September 2001: Phil Stroffolino improved the Namco System21 driver, but it is still far from perfect. - 30th August 2001: Phil Stroffolino and Aaron Giles added preliminary polygon support to the Namco System 21 driver, but the transformation matrix and projection parameters are not yet correct. - 22nd July 2001: Phil Stroffolino sent in some work-in-progress drivers including Namco System 21, which is coming along nicely minus the 3D graphics. |
| aircombj | Air Combat (Japan)[Jan/01/97]
-------------------
Air Combat by NAMCO
-------------------
Uses Namco's system 21 hardware.
The archive inforamtion:
Location Type ID Checksum
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CPU68 1J 27C4001 MPR-L.AC2 C778
CPU68 1J 27C4001 MPR-L.AC1 9859
CPU68 3J 27C4001 MPR-U.AC2 6DD9
CPU68 3J 27C4001 MPR-U.AC1 97F1
CPU68 12B 27C4001 VOI0.AC1 08CF
CPU68 12C 27C4001 VOI1.AC1 925D
CPU68 12D 27C4001 VOI2.AC1 C498
CPU68 12E 27C4001 VOI3.AC1 DE9F
CPU68 1C 27C4001 EDATA1-L 7F77 [REV.AC1]
CPU68 3A 27C4001 EDATA-U 20F2 [REV.AC1]
CPU68 3C 27C4001 EDATA1-U FA2F [REV.AC1]
CPU68 1A 27C4001 EDATA-L 9E8A
CPU68 8J 27C010 SND0.AC1 71A8
CPU68 6C 27C010 SPR-U.AC2 A3F1
CPU68 6C 27C010 SPR-U.AC1 CA33
CPU68 4C 27C010 SPR-L.AC2 08CE
CPU68 4C 27C010 SPR-L.AC1 473B
OBJ(B) 5S 27C4001 OBJ0.AC1 CB72
OBJ(B) 5X 27C4001 OBJ1.AC1 85E2
OBJ(B) 3S 27C4001 OBJ2.AC1 89DC
OBJ(B) 3X 27C4001 OBJ3.AC1 58FF
OBJ(B) 4S 27C4001 OBJ4.AC1 46D6
OBJ(B) 4X 27C4001 OBJ5.AC1 7B91
OBJ(B) 2S 27C4001 OBJ6.AC1 5736
OBJ(B) 2X 27C4001 OBJ7.AC1 6D45
DSP 2N 27C4001 AC1-POIL.L 8AAF
DSP 2K 27C4001 AC1-POIL.L CF90
DSP 2E 27C4001 AC1-POIH 4D02
NOTE: CPU68 - CPU board
OBJ(B) - Object board
DSP - DSP board
PGN(C) - PGN board
ROMs that have the same locations are the same ROMs
but of a different revision. A 27C4001 is a standard
4 Megabit ROM, like a 27C040. Most of the ROMs used
were masked ROMs like MB34000B-10, HN62344BPC84, etc.
Jumper settings
---------------
CPU68 PCB:
Location Position set alt. setting
JP1 master slave
JP5 27301 27101
JP6 >4M 4M
JP7 4M >4M
JP8 4M >4M
JP9 4M >4M
JP10 ROM EXT [mode]
JP12 4M >4M
JP13 Ron Roff
JP14 GND VCC
DSP PCB: [DSP and DSP support IC type settings]
JP1 VCC GND
JP2 VCC GND
JP3 VCC GND
JP4 GND VCC
JP5 GND VCC
JP6 GND VCC
JP7 GND VCC
JP8 VCC GND
JP9 VCC GND
JP10 GND VCC
JP11 VCC GND
JP12 VCC GND
JP13 GND VCC
JP14 VCC GND
JP15 VCC GND
JP16 GND VCC
JP17 VCC GND
JP18 VCC GND
OBJ(C) PCB:
JP1 1-4M 8M
JP2 4M 1-2M
JP3 4M 1M, 2M, 8M
JP6 HP1 HP2
JP7 non-interlaced interlaced [optional RGB setting]
JP8 68000 68020
JP9 VP2 VP1
JP10 master slave
JP11 master slave
JP12 master slave
JP13 master slave
JP14 master slave
JP15 master slave
1 2 3 where: 1 - VCC
JP16 o o |o| 2 - 10MA
JP17 o o |o| 3 - *10MA
[4M, 1-4M, 8M, etc are ROM size settings]
PNG(C) PCB:
JP1 NJ3 FFD15
JP2 NJ2 FFD14
JP3 NJ1 FFD13
JP4 NJ0 FFD12
JP5 FFD11 GND
JP6 GND FFD10
END
[Jul/28/2001]
--------------------------
Air Combat by NAMCO (1991)
--------------------------
Location Device File ID Checksum
-------------------------------------------------
CPU68 1J 27C4001 MPR-L.AC1 9859 [ main program ] [ rev AC1 ]
CPU68 3J 27C4001 MPR-U.AC1 97F1 [ main program ] [ rev AC1 ]
CPU68 1J 27C4001 MPR-L.AC2 C778 [ main program ] [ rev AC2 ]
CPU68 3J 27C4001 MPR-U.AC2 6DD9 [ main program ] [ rev AC2 ]
CPU68 1C MB834000 EDATA1-L.AC1 7F77 [ data ]
CPU68 3C MB834000 EDATA1-U.AC1 FA2F [ data ]
CPU68 3A MB834000 EDATA-U.AC1 20F2 [ data ]
CPU68 1A MB834000 EDATA-L.AC1 9E8A [ data ]
CPU68 12B MB834000 VOI0.AC1 08CF [ voice 0 ]
CPU68 12C MB834000 VOI1.AC1 925D [ voice 1 ]
CPU68 12D MB834000 VOI2.AC1 C498 [ voice 2 ]
CPU68 12E MB834000 VOI3.AC1 DE9F [ voice 3 ]
CPU68 8J 27C010 SND0.AC1 71A8 [ voice prog ]
CPU68 4C 27C010 SPR-L.AC1 473B [ sound prog L ] [ rev AC1 ]
CPU68 6C 27C010 SPR-U.AC1 CA33 [ sound prog U ] [ rev AC1 ]
CPU68 4C 27C010 SPR-L.AC2 08CE [ sound prog L ] [ rev AC2 ]
CPU68 6C 27C010 SPR-U.AC2 A3F1 [ sound prog U ] [ rev AC2 ]
OBJ(B) 5S HN62344 OBJ0.AC1 CB72 [ object data ]
OBJ(B) 5X HN62344 OBJ1.AC1 85E2 [ object data ]
OBJ(B) 3S HN62344 OBJ2.AC1 89DC [ object data ]
OBJ(B) 3X HN62344 OBJ3.AC1 58FF [ object data ]
OBJ(B) 4S HN62344 OBJ4.AC1 46D6 [ object data ]
OBJ(B) 4X HN62344 OBJ5.AC1 7B91 [ object data ]
OBJ(B) 2S HN62344 OBJ6.AC1 5736 [ object data ]
OBJ(B) 2X HN62344 OBJ7.AC1 6D45 [ object data ]
DSP 2N HN62344 AC1-POIL.L 8AAF [ DSP data ]
DSP 2K HN62344 AC1-POIL.U CF90 [ DSP data ]
DSP 2E HN62344 AC1-POIH 4D02 [ DSP data ]
DSP 17D GAL16V8A 3PDSP5.JED 6C00
OBJ(B) 17N PLHS18P8 3P0BJ3.JED 4342
OBJ(B) 17N PLHS18P8 3POBJ4.JED 1143
NOTE: CPU68 - CPU board 2252961002 (2252971002)
OBJ(B) - Object board 8623961803 (8623963803)
DSP - DSP board 8623961703 (8623963703)
PGN(C) - PGN board 2252961300 (8623963600)
Uses Keycustom 326
Namco System 21 Hardware
ROMs that have the same locations are different revisions
of the same ROMs (AC1 or AC2).
Jumper settings:
Location Position set alt. setting
----------------------------------------
CPU68 PCB:
JP2 /D-ST /VBL
JP3 NC
JP4 NC
JP5 27301 27101
JP6 >4M 4M
JP7 4M >4M
JP8 4M >4M
JP9 4M >4M
JP10 ROM EXT [mode]
JP11 NC
JP12 4M >4M
JP13 Ron Roff
JP14 GND VCC
DSP PCB: [DSP and DSP support IC type settings]
JP1 VCC GND
JP2 VCC GND
JP3 VCC GND
JP4 GND VCC
JP5 GND VCC
JP6 GND VCC
JP7 GND VCC
JP8 VCC GND
JP9 VCC GND
JP10 GND VCC
JP11 VCC GND
JP12 VCC GND
JP13 GND VCC
JP14 VCC GND
JP15 VCC GND
JP16 GND VCC
JP17 VCC GND
JP18 VCC GND
OBJ(C) PCB:
JP1 1-4M 8M
JP2 4M 1-2M
JP3 4M 1M, 2M, 8M
JP6 HP1 HP2
JP7 non-interlaced interlaced [optional video setting]
JP8 68000 68020
JP9 VP2 VP1
JP10 master slave
JP11 master slave
JP12 master slave
JP13 master slave
JP14 master slave
JP15 master slave
1 2 3 where: 1 - VCC
JP16 o o |o| 2 - 10MA
JP17 o o |o| 3 - *10MA
[4M, 1-4M, 8M, etc are ROM size settings]
PNG(C) PCB:
JP1 NJ3 FFD15
JP2 NJ2 FFD14
JP3 NJ1 FFD13
JP4 NJ0 FFD12
JP5 FFD11 GND
JP6 GND FFD10
Brief hardware overview
-----------------------
CPU68 PCB:
----------
Main processor - MC68000 12MHz
Voice processor - MC68B09EP
- 140 custom (120 pin PQFP)
Sound processor - MC68000 12MHz
- 121 custom (64 pin PQFP)
- YM2151
Various RAMs and custom PQFPs and DIPs.
Empty sockets - C68PRG, EDATA0-U, EDATA0-L
DSP PCB:
--------
Main processor - 317 custom (178 pin PQFP, small package)
Sub-processor - 195 custom (160 pin PQFP)
DSP processors - 198 custom X4 (160 pin PQFP) (40MHz)
DSP support - WYBUX1G1 X4 (68 pin QCC) (TMS320C25 int 544 word RAM, 4K ROM)
- 327 custom X5 (24 pin DIP)
Misc support (?)- WYBUX1G1 x1 (68 pin QCC) (TMS320C25 int 544 word RAM, 4K ROM)
- 197 custom x2 (24 pin DIP)
- Misc custom ICs and PLDs
- KeyCustom 326
Empty sockets - SD00, SD0E, SD10, SD1E, SD20, SD2E, SD30, SD3E, MD0, MDE
and 3 with the other DSP data ROMs
OBJECT PCB:
-----------
Processors? - 186 custom (160 pin PQFP)
- 187 custom (160 pin PQFP)
Video processor?- 138 custom (80 pin PQFP)
- Misc PLDs and custom ICs
PNG(C) PCB:
-----------
?
DRAMs, SRAMs, Dual port RAMs, custom PQFPs, PAL(SYS21PC1)
Air Combat PAL's
================
PLHS18P8A/B
Fuse map produced by universal programmer*
QF2600*
L00000 000000000000000000000000000000000000*
L00036 000000000000000000000000000000000000*
L00072 000000000000000000000000000000000000*
L00108 000000000000000000000000000000000000*
L00144 000000000000000000000000000000000000*
L00180 000000000000000000000000000000000000*
L00216 000000000000000000000000000000000000*
L00252 000000000000000000000000000000000000*
L00288 000000000000000000000000000000000000*
L00324 000000000000000000000000000000000000*
L00360 000000000000000000000000000000000000*
L00396 000000000000000000000000000000000000*
L00432 000000000000000000000000000000000000*
L00468 000000000000000000000000000000000000*
L00504 000000000000000000000000000000000000*
L00540 000000000000000000000000000000000000*
L00576 000000000000000000000000000000000000*
L00612 000000000000000000000000000000000000*
L00648 111111111111111111111111111111111111*
L00684 111111011111111111111111111111111011*
L00720 111111111111111111111111111011111011*
L00756 010101110111011101110111011111111011*
L00792 000000000000000000000000000000000000*
L00828 000000000000000000000000000000000000*
L00864 000000000000000000000000000000000000*
L00900 000000000000000000000000000000000000*
L00936 000000000000000000000000000000000000*
L00972 111111111111111111111111111111111111*
L01008 111111011111111111111111111111111110*
L01044 111111111111111111111111111011111110*
L01080 010101110111011101110111011111111110*
L01116 000000000000000000000000000000000000*
L01152 000000000000000000000000000000000000*
L01188 000000000000000000000000000000000000*
L01224 000000000000000000000000000000000000*
L01260 000000000000000000000000000000000000*
L01296 111111111111111111111111111111111111*
L01332 111111011111111111111111111111101111*
L01368 111111111111111111111111111011101111*
L01404 010101110111011101110111011111101111*
L01440 000000000000000000000000000000000000*
L01476 000000000000000000000000000000000000*
L01512 000000000000000000000000000000000000*
L01548 000000000000000000000000000000000000*
L01584 000000000000000000000000000000000000*
L01620 111111111111111111111111111111111111*
L01656 111111011111111111111111111110111111*
L01692 111111111111111111111111111010111111*
L01728 010101110111011101110111011110111111*
L01764 000000000000000000000000000000000000*
L01800 000000000000000000000000000000000000*
L01836 000000000000000000000000000000000000*
L01872 000000000000000000000000000000000000*
L01908 000000000000000000000000000000000000*
L01944 000000000000000000000000000000000000*
L01980 000000000000000000000000000000000000*
L02016 000000000000000000000000000000000000*
L02052 000000000000000000000000000000000000*
L02088 000000000000000000000000000000000000*
L02124 000000000000000000000000000000000000*
L02160 000000000000000000000000000000000000*
L02196 000000000000000000000000000000000000*
L02232 000000000000000000000000000000000000*
L02268 000000000000000000000000000000000000*
L02304 000000000000000000000000000000000000*
L02340 000000000000000000000000000000000000*
L02376 000000000000000000000000000000000000*
L02412 000000000000000000000000000000000000*
L02448 000000000000000000000000000000000000*
L02484 000000000000000000000000000000000000*
L02520 000000000000000000000000000000000000*
L02556 000000000000000000000000000000000000*
L02592 00111100*
C4342*
790E
PLHS18P8A/B
Fuse map produced by universal programmer*
QF2600*
L00000 000000000000000000000000000000000000*
L00036 000000000000000000000000000000000000*
L00072 000000000000000000000000000000000000*
L00108 000000000000000000000000000000000000*
L00144 000000000000000000000000000000000000*
L00180 000000000000000000000000000000000000*
L00216 000000000000000000000000000000000000*
L00252 000000000000000000000000000000000000*
L00288 000000000000000000000000000000000000*
L00324 000000000000000000000000000000000000*
L00360 000000000000000000000000000000000000*
L00396 000000000000000000000000000000000000*
L00432 000000000000000000000000000000000000*
L00468 000000000000000000000000000000000000*
L00504 000000000000000000000000000000000000*
L00540 000000000000000000000000000000000000*
L00576 000000000000000000000000000000000000*
L00612 000000000000000000000000000000000000*
L00648 111111111111111111111111111111111111*
L00684 111111011111111111111111111111110111*
L00720 000000000000000000000000000000000000*
L00756 000000000000000000000000000000000000*
L00792 000000000000000000000000000000000000*
L00828 000000000000000000000000000000000000*
L00864 000000000000000000000000000000000000*
L00900 000000000000000000000000000000000000*
L00936 000000000000000000000000000000000000*
L00972 000000000000000000000000000000000000*
L01008 000000000000000000000000000000000000*
L01044 000000000000000000000000000000000000*
L01080 000000000000000000000000000000000000*
L01116 000000000000000000000000000000000000*
L01152 000000000000000000000000000000000000*
L01188 000000000000000000000000000000000000*
L01224 000000000000000000000000000000000000*
L01260 000000000000000000000000000000000000*
L01296 000000000000000000000000000000000000*
L01332 000000000000000000000000000000000000*
L01368 000000000000000000000000000000000000*
L01404 000000000000000000000000000000000000*
L01440 000000000000000000000000000000000000*
L01476 000000000000000000000000000000000000*
L01512 000000000000000000000000000000000000*
L01548 000000000000000000000000000000000000*
L01584 000000000000000000000000000000000000*
L01620 000000000000000000000000000000000000*
L01656 000000000000000000000000000000000000*
L01692 000000000000000000000000000000000000*
L01728 000000000000000000000000000000000000*
L01764 000000000000000000000000000000000000*
L01800 000000000000000000000000000000000000*
L01836 000000000000000000000000000000000000*
L01872 000000000000000000000000000000000000*
L01908 000000000000000000000000000000000000*
L01944 000000000000000000000000000000000000*
L01980 000000000000000000000000000000000000*
L02016 000000000000000000000000000000000000*
L02052 000000000000000000000000000000000000*
L02088 000000000000000000000000000000000000*
L02124 000000000000000000000000000000000000*
L02160 000000000000000000000000000000000000*
L02196 000000000000000000000000000000000000*
L02232 000000000000000000000000000000000000*
L02268 111111111111111111111111111111111111*
L02304 101110111011011110110110010101011111*
L02340 000000000000000000000000000000000000*
L02376 000000000000000000000000000000000000*
L02412 000000000000000000000000000000000000*
L02448 000000000000000000000000000000000000*
L02484 000000000000000000000000000000000000*
L02520 000000000000000000000000000000000000*
L02556 000000000000000000000000000000000000*
L02592 00100001*
C1143*
777F
GAL16V8A/B/B-7/C/Z
fuse map produced by universal device programmer*
QF2194*
L00000 00000000000000000000000000000000*
L00032 00000000000000000000000000000000*
L00064 00000000000000000000000000000000*
L00096 00000000000000000000000000000000*
L00128 00000000000000000000000000000000*
L00160 00000000000000000000000000000000*
L00192 00000000000000000000000000000000*
L00224 00000000000000000000000000000000*
L00256 00000000000000000000000000000000*
L00288 00000000000000000000000000000000*
L00320 00000000000000000000000000000000*
L00352 00000000000000000000000000000000*
L00384 00000000000000000000000000000000*
L00416 00000000000000000000000000000000*
L00448 00000000000000000000000000000000*
L00480 00000000000000000000000000000000*
L00512 11111111111111111111111111111111*
L00544 11111111111111111111111111111011*
L00576 11111111111111111111111111101111*
L00608 00000000000000000000000000000000*
L00640 00000000000000000000000000000000*
L00672 00000000000000000000000000000000*
L00704 00000000000000000000000000000000*
L00736 00000000000000000000000000000000*
L00768 01111111111111011111111111111111*
L00800 11110111111111011111111111111111*
L00832 11111111111110011111111111111111*
L00864 11111111111111010111111111111111*
L00896 11111111111111011111101111111111*
L00928 11111111111111011111111110111111*
L00960 10111001111101111011011101111111*
L00992 00000000000000000000000000000000*
L01024 01111111111111111101111111111111*
L01056 11110111111111111101111111111111*
L01088 11111111111110111101111111111111*
L01120 11111111111111110101111111111111*
L01152 11111111111111111101101111111111*
L01184 11111111111111111101111101111111*
L01216 10111001111101111011011110111111*
L01248 00000000000000000000000000000000*
L01280 00000000000000000000000000000000*
L01312 00000000000000000000000000000000*
L01344 00000000000000000000000000000000*
L01376 00000000000000000000000000000000*
L01408 00000000000000000000000000000000*
L01440 00000000000000000000000000000000*
L01472 00000000000000000000000000000000*
L01504 00000000000000000000000000000000*
L01536 01111111111111111111111111011111*
L01568 11110111111111111111111111011111*
L01600 11111111111110111111111111011111*
L01632 11111111111111110111111111011111*
L01664 11111111111111111111011111011111*
L01696 11111111111111111111111101011111*
L01728 10111001111101111011101110111111*
L01760 00000000000000000000000000000000*
L01792 11111111101111111111111111111111*
L01824 10101011111101110111101110111111*
L01856 00000000000000000000000000000000*
L01888 00000000000000000000000000000000*
L01920 00000000000000000000000000000000*
L01952 00000000000000000000000000000000*
L01984 00000000000000000000000000000000*
L02016 00000000000000000000000000000000*
L02048 00011010*
L02056 1000110000000000000000000000000000000000000000000000000000000000*
L02120 11100101*
L02128 1111111111111111111111111111111111111111111111111111111111111111*
L02192 01*
C6C00*
2BB7
-
[Jan/29/2000]
エアーコンバット SYS21
KEY CUSTOM 326
ROMのシルク印刷準拠で、ac1poih〜ac1poiluはpo1ではなくpoiです。
スターブレード等ではシールにpo0とかpo1と印刷されてるんですが…
尚、シール等に印刷されているROMネームが一部長すぎる為
省略しているモノもあります。(EDATA 1L等)
- |
| cybsled | Cyber Sled (US)[Aug/18/2001]
Cyber Sled
(C) Namco, 1994
This game runs on Namco system 21 hardware.
This system comprises 4 PCB's that slot into a back pane, which are housed in
a metal box.
1st PCB. (Uppermost)
--------------------
PCB No. 8623961703 DSP (8623963703)
OSC: 40.000MHz
RAM: HM62832 x 2, M5M5189 x 4, ISSI IS61C68 x 16 (*1)
Keycus C362
Namco Custom 197 (28 pin NDIP)
Namco Custom 327 (24 pin NDIP) x 4, each one located next to a chip 67
Namco Custom chip 67 (68 pin PLCC)
Located together are....
Namco Custom 197 (28 pin NDIP)
Namco Custom 327 (28 pin NDIP)
PAL 16V8 (NAMCO CODE = 3PDSP5)
PAL 16L8 (NAMCO CODE = 3PDSP4)
Dip Switch 4 position. switches 1 + 2 are OFF, while 3 + 4 are ON.
MB3771
Namco Custom chip 317 IDC (180 pin PQFP)
Namco Custom chip 195 (160 pin PQFP)
PAL 16L8 (NAMCO CODE = 3PDSP1)
PAL 16L8 (NAMCO CODE = 3PDSP2)
ROMS:
(*2) SOCKETS SD3E + SD3O, SD2E + SD2O, SD1E + SD1O, SD0E + SD0O all unpopulated
Sockets MDE + MD0 unpopulated
CY1POIH_1.2F TMS27C040
CY1POIH_2.2J TMS27C040
CY1POIL_U1.2K TMS27C040
CY1POIL_U2.2L TMS27C040
CY1POIL_L1.2N TMS27C040
CY1POIL_L1.2P TMS27C040
RAM (*1) located adjacent to (*2) unpopulated sockets (in 4 banks of 4 chips).
Also adjacent to these 4 pairs of sockets are 4 x Namco Custom chip 67 (68 pin PLCC)
and adjacent to those are 4 x Namco Custom chip 342 (160 pin PQFP)
There are 3 leds (red/green/yellow) connected to each 342 chip. (12 leds total)
Since those ROM sockets are unpopulated, perhaps the above custom chips are unused?
Note, on the PCB next to each chip 67 is silkscreened TMS320C25
2nd PCB
-------
NO ROMS
PCB Number: 2252961301 SYS21 PGN(C) (2252982301)
OSC: 20.000MHz
RAM: HM62256 x 10
84256 x 4
CY7C128 x 5
M5M5178 x 4
OTHER:
MB8422-90LP
L7A0565 316 (111) x 1 (100 PIN PQFP)
150 (64 PIN PQFP)
167 (128 PIN PQFP)
L7A0564 x 2 (100 PIN PQFP)
157 x 16 (24 PIN NDIP)
PAL16L8 (NAMCO CODE = S21PGNPC1)
JUMPERS:
JP6 GND O O-O FFD10
JP5 GND O O-O FFD11
JP4 NJ0 O-O O FFD12
JP3 NJ1 O-O O FFD13
JP2 NJ2 O-O O FFD14
JP1 NJ3 O-O O FFD15
3rd PCB (very similar in looks to Namco System 2 CPU PCB)
-------
PCB Number: (2252971002) 2252961002 CPU68
CPU: MC68000P12 x 2
SND: MC68B09EP, YM2151, YM3012
XTAL: 3.579545 MHz
OSC: 49.152 MHz
DIP: 8 POSITION x 1 (All switches OFF)
RAM: MB8464 x 2, MCM2018 x 2, HM65256 x 4, HM62256 x 2
Other:
Sharp PC900
Sharp PC910
HN58C65P (EEPROM)
MB3771
PAL 16L8 (NAMCO CODE = SYS87B-2B)
PAL 20L10 (NAMCO CODE = WR-C2)
PAL 20L8 (NAMCO CODE = SYS21C1)
MB87077-SK x 2 (24 pin NDIP, located in sound section)
LB1760 (16 pin DIP, located next to SYS87B-2B)
CY7C132 (48 PIN DIP)
Namco Custom:
140 (120 pin PQFP)
148 x 2 (64 pin PQFP)
C68 (64 pin PQFP)
139 (64 pin PQFP)
137 (28 pin NDIP)
149 (28 pin NDIP, near C68)
ROMS:
CY2MPRU.3J MX27C4000 \ Main Program
CY2MPRL.1J MX27C4000 /
CY2SPRU.6C MX27C4000 \ Sub Program
CY2SPRL.4C MX27C4000 /
CY1SND0.8J 27C010 Sound Program
Socket SND1 unpopulated
Socket C68PRG unpopulated
Socket EDATA1U and EDATA1L unpopulated
CY1EDATA0U.3B MX27C4000 \ E Data 0 Upper?
CY1EDATA0L.1B MX27C4000 / E Data 0 Lower?
CY1DATAU.3A MX27C4000 \ Data Upper?
CY1DATAL.1A MX27C4000 / Data Lower?
CY_VOI0.12B 4M MASK
CY_VOI0.12C 4M MASK
CY_VOI0.12D 4M MASK
CY_VOI0.12E 4M MASK
4th PCB (bottom-most)
---------------------
PCB Number: 8623961803 OBJ(B) (8623963803)
OSC: 38.76922 MHz
There is a 6 wire plug joining this PCB with the CPU PCB. It appears to be video cable (RGB, Sync etc..)
Jumpers:
JP1 1,2,4M SHORTED (Other setting is 8M)
JP2 4M SHORTED (Other setting is 1,2M)
JP3 4M SHORTED (4 x 2 pin block, Other settings are 1M or 2M or 8M)
JP4 1-2 \
JP5 2-3 / Hardwired on PCB
JP6 HP1 SHORTED (Other setting is HP2)
JP7 INTERLACE SHORTED (Other setting is NON-INTERLACE)
JP8 68000 SHORTED (Other setting is 68020)
JP9 VP2 SHORTED (Other setting is VP1)
JP10 MASTER SHORTED (Other setting is SLAVE)
JP11-JP15 MASTER SHORTED (Other setting is SLAVE)
Namco Custom Chips:
C355 (160 pin PQFP)
187 (120 pin PQFP)
138 (64 pin PQFP)
165 (28 pin NDIP)
PALs:
PAL22P10 (Namco Code = PBOBJ1)
PAL16P8 (Namco code = 3POBJ4)
PAL22P10 (Namco Code = PBOBJ5)
PAL16P8 (Namco code = 3POBJ3)
RAM:
Fujitsu 84256 x 5 (28 Pin DIP)
Hitachi HM65256 x 32 (surface-mounted, 28 pin SOP)
ROMs: Type
CY_OBJ0.5S MB834000
CY_OBJ1.5X MB834000
CY_OBJ2.3S MB834000
CY_OBJ3.3X MB834000
CY_OBJ4.4S MB834000
CY_OBJ5.4X MB834000
CY_OBJ6.2S MB834000
CY_OBJ7.2X MB834000
Note! I used full ROM label as filename, so some filenames are longer than 8 characters !
[UNMAMED]
Game description from Duncan:
CyberSled is a distant descendant of Battlezone. Two players (versus each other
or the computer) duke it out in hovertanks inside a closed arena.
It featured selectable vehicles, lots of multiplayer options and a training mode
for getting used to the dual-joystick controls. Graphics are similar to Solvalou
in that they're untextured polygons. The game was ported to the PlayStation when that
system was first released a couple of years later.
Of the System 21 games, Winning Run '91, Solvalou, Air Combat (US and Japan), Starblade
and Cyber Sled are dumped.
More information (R. Belmont):
System 21 hardware lineup is:
CPU Board: 2 68000 CPUs (master/slave for main game), 1 6809 for sound
(the CPU board itself is the same as Namco System 2 already in MAME, including the
same memory map, sound chips and interrupt controller chip. The video part of the memory
map is of course different though).
Math board: *5* DSPs for 3D math (might be TMS32c020s, but I can't find my S21 board
scans now to double-check.) Each DSP has it's own RAM and ROMs IIRC.
Video board: custom undocumented Namco polygon generator hardware
- |
| driveyes | Driver's Eyes[ARCADE RACING HISTORY] Driver's Eyes by Namco "Winning Run had more money lavished on it by Namco, I played a sit down motion simulator version, and a large three screen version which went on to become Driver's Eyes. Driver's Eyes - was the three screen multiple track variant to Winning Run. The games were different as there were improvements to the driving environment and the hardware was much more stable. Also with Hard Drivin' being such a International hit Namco wanted to make their game play more like that to try and capture the market." - |
| solvalou | Solvalou (Japan)[Jan/29/2000] ナムコ 1991 システム21 ポリゴナイザー ソルバルウ (POLYGONIZER SOLVALOU[jp] KEY CUSTOM 325 - |
| starblad | Starblade[Jan/29/2000] ナムコ 1991 スターブレード SYS21 STARBLADE KEY CUSTOM ナシ - |
| winrun91 | Winning Run 91[Jul/28/2001] WINNING RUN '91 (c)namco SYSTEM 21 OLD VER.(CPU/NPN/PGN/GRA) CPU : 68000 68000 6809 SOUND : YM2151 C140 CUSTOM : C324 VOICE MASKROM : "R91-1A VOI-1" "R91-1A VOI-3" (REV.A ?) - [ARCADE RACING HISTORY] Winning Run by Namco First person view, F1 racing game This is a polygon-based game, it was released shortly after Hard Drivin', but unlike Hard Drivin' that used software rendering for it's graphics, "Winning Run used a special CGI board, known as the 'Polygoniser' which would go on to become the model for the System 21 and so on". - |
| winrun | Winning Run Suzuka Grand Prix[Jul/13/99] WINNING RUN SUZUKA GP (NAMCO) wrt-snd0.bin prog wrt-voi1.bin pcm1 wrt-voi3.bin pcm2 ROMのシール番号は実機と違うかもしれません。 - |