summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/namconb1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/namconb1.cpp')
-rw-r--r--src/mame/drivers/namconb1.cpp55
1 files changed, 44 insertions, 11 deletions
diff --git a/src/mame/drivers/namconb1.cpp b/src/mame/drivers/namconb1.cpp
index 077b2be5e2f..0c67eb74324 100644
--- a/src/mame/drivers/namconb1.cpp
+++ b/src/mame/drivers/namconb1.cpp
@@ -272,7 +272,6 @@ GFX: Custom 145 ( 80 pin PQFP)
*/
#include "emu.h"
#include "includes/namconb1.h"
-#include "machine/namcoic.h"
#include "cpu/m68000/m68000.h"
#include "machine/namcomcu.h"
@@ -700,10 +699,10 @@ void namconb1_state::namconb1_am(address_map &map)
map(0x208000, 0x2fffff).ram();
map(0x400000, 0x40001f).rw(FUNC(namconb1_state::namconb1_cpureg_r), FUNC(namconb1_state::namconb1_cpureg_w));
map(0x580000, 0x5807ff).rw(m_eeprom, FUNC(eeprom_parallel_28xx_device::read), FUNC(eeprom_parallel_28xx_device::write));
- map(0x600000, 0x61ffff).rw(FUNC(namconb1_state::c355_obj_ram_r), FUNC(namconb1_state::c355_obj_ram_w)).share("objram");
- map(0x620000, 0x620007).rw(FUNC(namconb1_state::c355_obj_position_r), FUNC(namconb1_state::c355_obj_position_w));
- map(0x640000, 0x64ffff).rw(FUNC(namconb1_state::c123_tilemap_videoram_r), FUNC(namconb1_state::c123_tilemap_videoram_w));
- map(0x660000, 0x66003f).rw(FUNC(namconb1_state::c123_tilemap_control_r), FUNC(namconb1_state::c123_tilemap_control_w));
+ map(0x600000, 0x61ffff).rw(m_c355spr, FUNC(namco_c355spr_device::spriteram_r), FUNC(namco_c355spr_device::spriteram_w)).share("objram");
+ map(0x620000, 0x620007).rw(m_c355spr, FUNC(namco_c355spr_device::position_r), FUNC(namco_c355spr_device::position_w));
+ map(0x640000, 0x64ffff).rw(m_c123tmap, FUNC(namco_c123tmap_device::videoram_r), FUNC(namco_c123tmap_device::videoram_w));
+ map(0x660000, 0x66003f).rw(m_c123tmap, FUNC(namco_c123tmap_device::control_r), FUNC(namco_c123tmap_device::control_w));
map(0x680000, 0x68000f).ram().share("spritebank32");
map(0x6e0000, 0x6e001f).r(FUNC(namconb1_state::custom_key_r)).nopw();
map(0x700000, 0x707fff).rw(m_c116, FUNC(namco_c116_device::read), FUNC(namco_c116_device::write));
@@ -717,13 +716,13 @@ void namconb1_state::namconb2_am(address_map &map)
map(0x200000, 0x207fff).rw(FUNC(namconb1_state::share_r), FUNC(namconb1_state::share_w));
map(0x208000, 0x2fffff).ram();
map(0x400000, 0x4fffff).rom().region("data", 0);
- map(0x600000, 0x61ffff).rw(FUNC(namconb1_state::c355_obj_ram_r), FUNC(namconb1_state::c355_obj_ram_w)).share("objram");
- map(0x620000, 0x620007).rw(FUNC(namconb1_state::c355_obj_position_r), FUNC(namconb1_state::c355_obj_position_w));
+ map(0x600000, 0x61ffff).rw(m_c355spr, FUNC(namco_c355spr_device::spriteram_r), FUNC(namco_c355spr_device::spriteram_w)).share("objram");
+ map(0x620000, 0x620007).rw(m_c355spr, FUNC(namco_c355spr_device::position_r), FUNC(namco_c355spr_device::position_w));
map(0x640000, 0x64000f).ram(); /* unknown xy offset */
- map(0x680000, 0x68ffff).rw(FUNC(namconb1_state::c123_tilemap_videoram_r), FUNC(namconb1_state::c123_tilemap_videoram_w));
- map(0x6c0000, 0x6c003f).rw(FUNC(namconb1_state::c123_tilemap_control_r), FUNC(namconb1_state::c123_tilemap_control_w));
- map(0x700000, 0x71ffff).rw(FUNC(namconb1_state::c169_roz_videoram_r), FUNC(namconb1_state::c169_roz_videoram_w)).share("rozvideoram");
- map(0x740000, 0x74001f).rw(FUNC(namconb1_state::c169_roz_control_r), FUNC(namconb1_state::c169_roz_control_w));
+ map(0x680000, 0x68ffff).rw(m_c123tmap, FUNC(namco_c123tmap_device::videoram_r), FUNC(namco_c123tmap_device::videoram_w));
+ map(0x6c0000, 0x6c003f).rw(m_c123tmap, FUNC(namco_c123tmap_device::control_r), FUNC(namco_c123tmap_device::control_w));
+ map(0x700000, 0x71ffff).rw(m_c169roz, FUNC(namco_c169roz_device::videoram_r), FUNC(namco_c169roz_device::videoram_w));
+ map(0x740000, 0x74001f).rw(m_c169roz, FUNC(namco_c169roz_device::control_r), FUNC(namco_c169roz_device::control_w));
map(0x800000, 0x807fff).rw(m_c116, FUNC(namco_c116_device::read), FUNC(namco_c116_device::write));
map(0x900008, 0x90000f).ram().share("spritebank32");
map(0x940000, 0x94000f).ram().share("tilebank32");
@@ -1096,6 +1095,20 @@ MACHINE_CONFIG_START(namconb1_state::namconb1)
MCFG_PALETTE_ADD("palette", 0x2000)
MCFG_PALETTE_ENABLE_SHADOWS()
+ NAMCO_C355SPR(config, m_c355spr, 0);
+ m_c355spr->set_palette_tag("palette");
+ m_c355spr->set_gfxdecode_tag("gfxdecode");
+ m_c355spr->set_is_namcofl(false);
+ m_c355spr->set_tile_callback(namco_c355spr_device::c355_obj_code2tile_delegate(&namconb1_state::NB1objcode2tile, this));
+ m_c355spr->set_palxor(0x0);
+ m_c355spr->set_gfxregion(NAMCONB1_SPRITEGFX);
+
+ NAMCO_C123TMAP(config, m_c123tmap, 0);
+ m_c123tmap->set_gfxdecode_tag("gfxdecode");
+ m_c123tmap->set_tile_callback(namco_c123tmap_device::c123_tilemap_delegate(&namconb1_state::NB1TilemapCB, this));
+ m_c123tmap->set_maskregion_tag(NAMCONB1_TILEMASKREGION);
+ m_c123tmap->set_gfxregion(NAMCONB1_TILEGFX);
+
NAMCO_C116(config, m_c116, 0);
m_c116->set_palette(m_palette);
@@ -1119,17 +1132,37 @@ MACHINE_CONFIG_START(namconb1_state::namconb2)
MCFG_SCREEN_UPDATE_DRIVER(namconb1_state, screen_update_namconb2)
MCFG_DEVICE_REPLACE("gfxdecode", GFXDECODE, "palette", gfx_namconb2)
+
+ NAMCO_C169ROZ(config, m_c169roz, 0);
+ m_c169roz->set_gfxdecode_tag("gfxdecode");
+ m_c169roz->set_is_namcofl(false);
+ m_c169roz->set_ram_words(0x20000/2);
+ m_c169roz->set_maskregion_tag(NAMCONB1_ROTMASKREGION);
+ m_c169roz->set_gfxregion(NAMCONB1_ROTGFX);
+
MACHINE_CONFIG_END
MACHINE_CONFIG_START(namconb1_state::machbrkr)
namconb2(config);
+ m_c123tmap->set_tile_callback(namco_c123tmap_device::c123_tilemap_delegate(&namconb1_state::NB2TilemapCB_machbrkr, this));
+
+ m_c169roz->set_tile_callback(namco_c169roz_device::c169_tilemap_delegate(&namconb1_state::NB2RozCB_machbrkr, this));
+
+ m_c355spr->set_tile_callback(namco_c355spr_device::c355_obj_code2tile_delegate(&namconb1_state::NB2objcode2tile_machbrkr, this));
+
MCFG_VIDEO_START_OVERRIDE(namconb1_state,machbrkr)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(namconb1_state::outfxies)
namconb2(config);
+ m_c123tmap->set_tile_callback(namco_c123tmap_device::c123_tilemap_delegate(&namconb1_state::NB2TilemapCB_outfxies, this));
+
+ m_c169roz->set_tile_callback(namco_c169roz_device::c169_tilemap_delegate(&namconb1_state::NB2RozCB_outfxies, this));
+
+ m_c355spr->set_tile_callback(namco_c355spr_device::c355_obj_code2tile_delegate(&namconb1_state::NB2objcode2tile_outfxies, this));
+
MCFG_VIDEO_START_OVERRIDE(namconb1_state,outfxies)
MACHINE_CONFIG_END