diff options
Diffstat (limited to 'src/mame/includes/namcoic.h')
-rw-r--r-- | src/mame/includes/namcoic.h | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/src/mame/includes/namcoic.h b/src/mame/includes/namcoic.h new file mode 100644 index 00000000000..58caa966cac --- /dev/null +++ b/src/mame/includes/namcoic.h @@ -0,0 +1,175 @@ +/* namcoic.h + +Custom Chips: Final Lap Assault LuckyWld System21 NA1/2 NB1/2 + C45 Land Generator * * + C65 I/O Controller * * + C68 * * + C70 * + C95 * * + C102 ROZ:Memory Access Control * + C106 OBJ:X-Axis Zoom Control * * + C107 Land Line Buffer * + C116 Screen Waveform Generator * * * * + C121 Yamaha YM2151 Sound Gen * * * + C123 GFX:Tile Mem Decoder * * * * + C134 OBJ:Address Generator * * + C135 OBJ:Line matching * * + C137 Clock Generator IC * * * * * + C138 * + C139 Serial I/F Controller * * * * + C140 24 Channel PCM * * * + C145 GFX:Tile Memory Access * * * * + C146 OBJ:Line Buf Steering * * + C148 CPU Bus Manager * * * * + C149 Mouse/Trackball Decoder * * * * + C156 Pixel Stream Combo * * * * + C160 Control * + C165 * + C169 ROZ(B) * * + C187 * * * + C210 * + C215 * + C218 * + C219 * + C329 CPU? * + C347 GfxObj * + C352 PCM * + C355 Motion Obj(B) * * * + C373 LAND-related * + C382 * + C383 * + C384 GFX(3) * + C385 * + C390 Key Custom * + + +General Support +--------------- +C65 - This is the I/O Microcontroller, handles all input/output devices. 63705 uC, CPU4 in Namco System2. +C137 - Takes System clock and generates all sub-system clocks, doesnt need emulation, not accessed via CPU +C139 - Serial Interface Controller +C148 - Does some Memory Decode, Interrupt Handling, 3 bit PIO port, Bus Controller +C149 - Does decoding of mouse/trackball input streams for the I/O Controller. (Offset Square wave) + + +Tile Fields Static/Scrolled +--------------------------- +Combination of these two devices and associated RAM & TileGFX produces a pixel stream that is fed +into the Pixel stream decoder. + +C145 - Tile Screen Memory Access controller +C123 - Tile Memory decoder Part 1, converts X,Y,Tile into character ROM address index + + +Pixel Stream Decode +------------------- +These two devices take the pixel streams from the tilefield generator and the associated graphics board +and combine them to form an RGB data stream that is fed to the monitor. + +C156 - Pixel stream combiner +Takes tile field & graphics board streams and generates the priorisied pixel, then does the lookup to +go from palettised to 24bit RGB pixel. + +C116 - Screen Waveform Generator +Takes RGB24 pixel stream from C156 and generates the waveform signals for the monitor, also generates +the line interrupt and controls screen blanking,shift, etc. + +Object Control +-------------- +C106 - Generates memory output clocks to generate X-Axis Zoom for Line Buffer Writes +C134 - Object Memory Address Generator. Sequences the sprite memory contents to the hardware. +C135 - Checks is object is displayed on Current output line. +C146 - Steers the Decode Object Pixel data to the correct line buffer A or B + +ROZ +--- +C102 - Controls CPU access to ROZ Memory Area. +*/ + +/***********************************************************************************/ + +/*----------- defined in drivers/namcoic.c -----------*/ + +void namco_tilemap_init( + int gfxbank, void *pMaskROM, + void (*cb)( UINT16 code, int *gfx, int *mask) ); +void namco_tilemap_draw( mame_bitmap *bitmap, const rectangle *cliprect, int pri ); +void namco_tilemap_invalidate( void ); +WRITE16_HANDLER( namco_tilemapvideoram16_w ); +READ16_HANDLER( namco_tilemapvideoram16_r ); +WRITE16_HANDLER( namco_tilemapcontrol16_w ); +READ16_HANDLER( namco_tilemapcontrol16_r ); + +READ32_HANDLER( namco_tilemapvideoram32_r ); +WRITE32_HANDLER( namco_tilemapvideoram32_w ); +READ32_HANDLER( namco_tilemapcontrol32_r ); +WRITE32_HANDLER( namco_tilemapcontrol32_w ); + +READ32_HANDLER( namco_tilemapvideoram32_le_r ); +WRITE32_HANDLER( namco_tilemapvideoram32_le_w ); +READ32_HANDLER( namco_tilemapcontrol32_le_r ); +WRITE32_HANDLER( namco_tilemapcontrol32_le_w ); + +/***********************************************************************************/ + +/* Namco System II Sprite Rendering */ +void namcos2_draw_sprites(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int pri, int control ); + +void namcos2_draw_sprites_metalhawk(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int pri ); + +/***********************************************************************************/ +/* C355 Motion Object Emulation */ + +/* for palXOR, supply either 0x0 (normal) or 0xf (palette mapping reversed) */ +void namco_obj_init( int gfxbank, int palXOR, int (*code2tile)( int code ) ); +void namco_obj_draw(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int pri ); + +WRITE16_HANDLER( namco_obj16_w ); +READ16_HANDLER( namco_obj16_r ); + +WRITE32_HANDLER( namco_obj32_w ); +READ32_HANDLER( namco_obj32_r ); +WRITE32_HANDLER( namco_obj32_le_w ); +READ32_HANDLER( namco_obj32_le_r ); + +WRITE16_HANDLER( namco_spritepos16_w ); +READ16_HANDLER( namco_spritepos16_r ); + +WRITE32_HANDLER( namco_spritepos32_w ); +READ32_HANDLER( namco_spritepos32_r ); + +/***********************************************************************************/ +/* C169 ROZ Layer Emulation */ + +void namco_roz_init( int gfxbank, int maskregion ); +void namco_roz_draw( mame_bitmap *bitmap, const rectangle *cliprect, int pri ); + +READ16_HANDLER( namco_rozcontrol16_r ); +WRITE16_HANDLER( namco_rozcontrol16_w ); +READ16_HANDLER( namco_rozbank16_r ); +WRITE16_HANDLER( namco_rozbank16_w ); +READ16_HANDLER( namco_rozvideoram16_r ); +WRITE16_HANDLER( namco_rozvideoram16_w ); + +READ32_HANDLER( namco_rozcontrol32_r ); +WRITE32_HANDLER( namco_rozcontrol32_w ); +READ32_HANDLER( namco_rozcontrol32_le_r ); +WRITE32_HANDLER( namco_rozcontrol32_le_w ); +READ32_HANDLER( namco_rozbank32_r ); +WRITE32_HANDLER( namco_rozbank32_w ); +READ32_HANDLER( namco_rozvideoram32_r ); +WRITE32_HANDLER( namco_rozvideoram32_w ); +READ32_HANDLER( namco_rozvideoram32_le_r ); +WRITE32_HANDLER( namco_rozvideoram32_le_w ); + +/***********************************************************************************/ +/* C45 Land (Road) Emulation */ + +void namco_road_init(running_machine *machine, int gfxbank ); +void namco_road_set_transparent_color(pen_t pen); +void namco_road_draw(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int pri ); + +READ16_HANDLER( namco_road16_r ); +WRITE16_HANDLER( namco_road16_w ); + +/***********************************************************************************/ |