From 6dc5f8fa0166e497f1d47045f7619a7d04ef05fd Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 25 Jun 2018 19:42:56 +0200 Subject: tmmjprd.cpp: small clean-ups (nw) --- src/mame/drivers/tmmjprd.cpp | 261 ++++++++++++++++++------------------------- 1 file changed, 107 insertions(+), 154 deletions(-) diff --git a/src/mame/drivers/tmmjprd.cpp b/src/mame/drivers/tmmjprd.cpp index 2649958eff9..a6082bd3b3b 100644 --- a/src/mame/drivers/tmmjprd.cpp +++ b/src/mame/drivers/tmmjprd.cpp @@ -1,11 +1,11 @@ // license:BSD-3-Clause // copyright-holders:David Haywood -/* tmmjprd.c +/* tmmjprd.cpp - - split from rabbit.c (it uses the same GFX chip, but is otherwise a different PCB, and until the methods + - split from rabbit.cpp (it uses the same GFX chip, but is otherwise a different PCB, and until the methods of configuring the graphic chip are understood it's easier to work on them here) - - in 16x16 tile mode, the offset into tileram doesn't neccessarily align to 16x16 tiles! This makes using the + - in 16x16 tile mode, the offset into tileram doesn't necessarily align to 16x16 tiles! This makes using the tilemap system excessively difficult, as it expects predecoded tiles which simply isn't possible here. This is used for the girls in the intro at least, they specify 16x16 tiles on non 16x16 boundaries. (basically the physical tile rom addressing doesn't change between modes even if the data type does) @@ -19,9 +19,6 @@ - Video has a 'blitter' but it isn't used by these games, it is used by Rabbit - - tmpdoki isn't a dual screen game, we should remove the dual screen layout from VIDEO_UPDATE and from the MACHINE_DRIVER, also notice that MAME - doesn't have a macro for removing previously declared screens. - - sprites from one screen are overlapping on the other, probably there's a way to limit them to a single screen - priority is wrong. @@ -51,8 +48,20 @@ public: m_palette(*this, "palette"), m_tilemap_regs(*this, "tilemap_regs.%u", 0), m_spriteregs(*this, "spriteregs"), - m_spriteram(*this, "spriteram") { } + m_spriteram(*this, "spriteram"), + m_gfxroms(*this, "gfx2"), + m_pl1(*this, "PL1.%u", 1), + m_pl2(*this, "PL2.%u", 1), + m_system(*this, "SYSTEM") { } + + void tmmjprd(machine_config &config); + void tmpdoki(machine_config &config); +protected: + virtual void machine_start() override; + virtual void video_start() override; + +private: required_device m_maincpu; required_device m_eeprom; required_device m_gfxdecode; @@ -62,70 +71,51 @@ public: required_shared_ptr m_spriteregs; required_shared_ptr m_spriteram; + required_region_ptr m_gfxroms; + + required_ioport_array<5> m_pl1; + required_ioport_array<5> m_pl2; + required_ioport m_system; + std::unique_ptr m_tilemap_ram[4]; uint8_t m_mux_data; uint8_t m_system_in; - double m_old_brt1; - double m_old_brt2; - - DECLARE_WRITE32_MEMBER(tilemap0_w); - DECLARE_WRITE32_MEMBER(tilemap1_w); - DECLARE_WRITE32_MEMBER(tilemap2_w); - DECLARE_WRITE32_MEMBER(tilemap3_w); - DECLARE_READ32_MEMBER(tilemap0_r); - DECLARE_READ32_MEMBER(tilemap1_r); - DECLARE_READ32_MEMBER(tilemap2_r); - DECLARE_READ32_MEMBER(tilemap3_r); + double m_old_brt[2]; + emu_timer *m_blit_done_timer; + + template DECLARE_WRITE32_MEMBER(tilemap_w); + template DECLARE_READ32_MEMBER(tilemap_r); DECLARE_READ32_MEMBER(randomtmmjprds); DECLARE_READ32_MEMBER(mux_r); - DECLARE_WRITE32_MEMBER(brt_1_w); - DECLARE_WRITE32_MEMBER(brt_2_w); + template DECLARE_WRITE32_MEMBER(brt_w); DECLARE_WRITE32_MEMBER(eeprom_write); - virtual void machine_start() override; - virtual void video_start() override; - uint32_t screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(scanline); +#if 0 + TIMER_CALLBACK_MEMBER(blit_done); +#endif + void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int screen); void draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int x,int y,int sizex,int sizey, uint32_t tiledata, uint8_t* rom); void draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, uint32_t*tileram, uint32_t*tileregs, uint8_t*rom ); - void tmmjprd(machine_config &config); - void tmpdoki(machine_config &config); - void tmmjprd_map(address_map &map); -}; - - -WRITE32_MEMBER(tmmjprd_state::tilemap0_w) -{ - COMBINE_DATA(&m_tilemap_ram[0][offset]); -} - + void main_map(address_map &map); +}; -WRITE32_MEMBER(tmmjprd_state::tilemap1_w) -{ - COMBINE_DATA(&m_tilemap_ram[1][offset]); -} - -WRITE32_MEMBER(tmmjprd_state::tilemap2_w) -{ - COMBINE_DATA(&m_tilemap_ram[2][offset]); -} - -WRITE32_MEMBER(tmmjprd_state::tilemap3_w) +template +WRITE32_MEMBER(tmmjprd_state::tilemap_w) { - COMBINE_DATA(&m_tilemap_ram[3][offset]); + COMBINE_DATA(&m_tilemap_ram[Tilemap][offset]); } void tmmjprd_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int screen) { - int xpos,ypos,tileno,xflip,yflip, colr; + int xpos,ypos; gfx_element *gfx = m_gfxdecode->gfx(0); - int xoffs; // int todraw = (m_spriteregs[5]&0x0fff0000)>>16; // how many sprites to draw (start/end reg..) what is the other half? // uint32_t *source = (m_spriteram+ (todraw*2))-2; @@ -133,7 +123,7 @@ void tmmjprd_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect uint32_t *source = m_spriteram+(0xc000/4)-2; uint32_t *finish = m_spriteram; - xoffs = (screen & 1)*320; + int xoffs = (screen & 1)*320; for(;source>finish;source-=2) { @@ -184,10 +174,10 @@ void tmmjprd_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ypos&=0x7ff; } - xflip = (source[0]&0x00008000)>>15; - yflip = (source[0]&0x00004000)>>14; - tileno = (source[1]&0x0003ffff); - colr = (source[1]&0x0ff00000)>>20; + int xflip = (source[0]&0x00008000)>>15; + int yflip = (source[0]&0x00004000)>>14; + int tileno = (source[1]&0x0003ffff); + int colr = (source[1]&0x0ff00000)>>20; // the tiles in this are 8bpp, it can probably do the funky sub-tile addressing for them too tho.. tileno >>=1; @@ -204,8 +194,7 @@ void tmmjprd_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, i int colour = (tiledata&0x0ff00000)>>20; int depth = (tiledata&0x10000000)>>28; //int flipxy = (tiledata&0x60000000)>>29; - // 0x80000000 (blank tile like metro.c?) - int drawx,drawy; + // 0x80000000 (blank tile like metro.cpp?) int count; // entirely off right @@ -225,9 +214,9 @@ void tmmjprd_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, i return; count = 0; - for (drawy=y;drawy> 20; scrollx = (tileregs[2] & 0x0000fff0) >> 4; - count = 0; - for (y=0;ybase(); - bitmap.fill(m_palette->black_pen(), cliprect); - draw_tilemap(bitmap, cliprect, m_tilemap_ram[3].get(), m_tilemap_regs[3], gfxroms ); + draw_tilemap(bitmap, cliprect, m_tilemap_ram[3].get(), m_tilemap_regs[3], m_gfxroms ); draw_sprites(bitmap,cliprect, 1); - draw_tilemap(bitmap, cliprect, m_tilemap_ram[2].get(), m_tilemap_regs[2], gfxroms ); + draw_tilemap(bitmap, cliprect, m_tilemap_ram[2].get(), m_tilemap_regs[2], m_gfxroms ); /* popmessage("%08x %08x %08x %08x %08x %08x", @@ -353,13 +337,11 @@ uint32_t tmmjprd_state::screen_update_left(screen_device &screen, bitmap_ind16 & uint32_t tmmjprd_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - uint8_t* gfxroms = memregion("gfx2")->base(); - bitmap.fill(m_palette->black_pen(), cliprect); - draw_tilemap(bitmap, cliprect, m_tilemap_ram[1].get(), m_tilemap_regs[1], gfxroms ); + draw_tilemap(bitmap, cliprect, m_tilemap_ram[1].get(), m_tilemap_regs[1], m_gfxroms ); draw_sprites(bitmap,cliprect, 0); - draw_tilemap(bitmap, cliprect, m_tilemap_ram[0].get(), m_tilemap_regs[0], gfxroms ); + draw_tilemap(bitmap, cliprect, m_tilemap_ram[0].get(), m_tilemap_regs[0], m_gfxroms ); return 0; } @@ -379,28 +361,13 @@ void tmmjprd_state::video_start() save_pointer(NAME(m_tilemap_ram[2]), 0x8000); save_pointer(NAME(m_tilemap_ram[3]), 0x8000); - save_item(NAME(m_old_brt1)); - save_item(NAME(m_old_brt2)); + save_item(NAME(m_old_brt)); } -READ32_MEMBER(tmmjprd_state::tilemap0_r) +template +READ32_MEMBER(tmmjprd_state::tilemap_r) { - return m_tilemap_ram[0][offset]; -} - -READ32_MEMBER(tmmjprd_state::tilemap1_r) -{ - return m_tilemap_ram[1][offset]; -} - -READ32_MEMBER(tmmjprd_state::tilemap2_r) -{ - return m_tilemap_ram[2][offset]; -} - -READ32_MEMBER(tmmjprd_state::tilemap3_r) -{ - return m_tilemap_ram[3][offset]; + return m_tilemap_ram[Tilemap][offset]; } READ32_MEMBER(tmmjprd_state::randomtmmjprds) @@ -462,7 +429,7 @@ void tmmjprd_state::do_blit() if (!blt_amount) { if(BLITLOG) osd_printf_debug("end of blit list\n"); - machine().scheduler().timer_set(attotime::from_usec(500), timer_expired_delegate(FUNC(tmmjprd_state::blit_done),this)); + m_blit_done_timer->adjust(attotime::from_usec(500); return; } @@ -526,6 +493,10 @@ WRITE32_MEMBER(tmmjprd_state::blitter_w) void tmmjprd_state::machine_start() { +#if 0 + m_blit_done_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tmmjprd_state::blit_done), this)); +#endif + save_item(NAME(m_mux_data)); save_item(NAME(m_system_in)); } @@ -552,15 +523,15 @@ WRITE32_MEMBER(tmmjprd_state::eeprom_write) READ32_MEMBER(tmmjprd_state::mux_r) { - m_system_in = ioport("SYSTEM")->read(); + m_system_in = m_system->read(); switch(m_mux_data) { - case 0x01: return (m_system_in & 0xff) | (ioport("PL1_1")->read()<<8) | (ioport("PL2_1")->read()<<16) | 0xff000000; - case 0x02: return (m_system_in & 0xff) | (ioport("PL1_2")->read()<<8) | (ioport("PL2_2")->read()<<16) | 0xff000000; - case 0x04: return (m_system_in & 0xff) | (ioport("PL1_3")->read()<<8) | (ioport("PL2_3")->read()<<16) | 0xff000000; - case 0x08: return (m_system_in & 0xff) | (ioport("PL1_4")->read()<<8) | (ioport("PL2_4")->read()<<16) | 0xff000000; - case 0x10: return (m_system_in & 0xff) | (ioport("PL1_5")->read()<<8) | (ioport("PL2_5")->read()<<16) | 0xff000000; + case 0x01: return (m_system_in & 0xff) | m_pl1[0]->read()<<8 | m_pl2[0]->read()<<16 | 0xff000000; + case 0x02: return (m_system_in & 0xff) | m_pl1[1]->read()<<8 | m_pl2[1]->read()<<16 | 0xff000000; + case 0x04: return (m_system_in & 0xff) | m_pl1[2]->read()<<8 | m_pl2[2]->read()<<16 | 0xff000000; + case 0x08: return (m_system_in & 0xff) | m_pl1[3]->read()<<8 | m_pl2[3]->read()<<16 | 0xff000000; + case 0x10: return (m_system_in & 0xff) | m_pl1[4]->read()<<8 | m_pl2[4]->read()<<16 | 0xff000000; } return (m_system_in & 0xff) | 0xffffff00; @@ -577,7 +548,7 @@ static INPUT_PORTS_START( tmmjprd ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) // CHECK! - PORT_START("PL1_1") + PORT_START("PL1.1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(1) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_PLAYER(1) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_PLAYER(1) @@ -586,7 +557,7 @@ static INPUT_PORTS_START( tmmjprd ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("PL1_2") + PORT_START("PL1.2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_PLAYER(1) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_PLAYER(1) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_PLAYER(1) @@ -595,7 +566,7 @@ static INPUT_PORTS_START( tmmjprd ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) //bet button PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("PL1_3") + PORT_START("PL1.3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_PLAYER(1) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_PLAYER(1) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_PLAYER(1) @@ -604,17 +575,17 @@ static INPUT_PORTS_START( tmmjprd ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("PL1_4") + PORT_START("PL1.4") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_PLAYER(1) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_PLAYER(1) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_PLAYER(1) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_PLAYER(1) PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("PL1_5") + PORT_START("PL1.5") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("PL2_1") + PORT_START("PL2.1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_PLAYER(2) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_PLAYER(2) @@ -623,7 +594,7 @@ static INPUT_PORTS_START( tmmjprd ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("PL2_2") + PORT_START("PL2.2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_PLAYER(2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_PLAYER(2) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_PLAYER(2) @@ -632,7 +603,7 @@ static INPUT_PORTS_START( tmmjprd ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) //bet button PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("PL2_3") + PORT_START("PL2.3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_PLAYER(2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_PLAYER(2) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_PLAYER(2) @@ -641,14 +612,14 @@ static INPUT_PORTS_START( tmmjprd ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("PL2_4") + PORT_START("PL2.4") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_PLAYER(2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_PLAYER(2) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_PLAYER(2) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_PLAYER(2) PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("PL2_5") + PORT_START("PL2.5") PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END @@ -657,56 +628,36 @@ INPUT_PORTS_END /* notice that data & 0x4 is always cleared on brt_1 and set on brt_2. * * My wild guess is that bits 0,1 and 2 controls what palette entries to dim. */ -WRITE32_MEMBER(tmmjprd_state::brt_1_w) +template +WRITE32_MEMBER(tmmjprd_state::brt_w) { - int i; - double brt; - int bank; - data>>=24; - brt = ((data & 0x78)>>3) / 15.0; - bank = data & 0x4 ? 0x800 : 0; //guess + double brt = ((data & 0x78)>>3) / 15.0; + int bank = data & 0x4 ? 0x800 : 0; //guess - if(data & 0x80 && m_old_brt1 != brt) + if(data & 0x80 && m_old_brt[Number] != brt) { - m_old_brt1 = brt; - for (i = bank; i < 0x800+bank; i++) + m_old_brt[Number] = brt; + for (int i = bank; i < 0x800+bank; i++) m_palette->set_pen_contrast(i, brt); } } -WRITE32_MEMBER(tmmjprd_state::brt_2_w) -{ - int i; - double brt; - int bank; - - data>>=24; - brt = ((data & 0x78)>>3) / 15.0; - bank = data & 0x4 ? 0x800 : 0; //guess - if(data & 0x80 && m_old_brt2 != brt) - { - m_old_brt2 = brt; - for (i = bank; i < 0x800+bank; i++) - m_palette->set_pen_contrast(i, brt); - } -} - -void tmmjprd_state::tmmjprd_map(address_map &map) +void tmmjprd_state::main_map(address_map &map) { map(0x000000, 0x1fffff).rom(); map(0x200010, 0x200013).r(FUNC(tmmjprd_state::randomtmmjprds)); // gfx chip status? /* check these are used .. */ // AM_RANGE(0x200010, 0x200013) AM_WRITEONLY AM_SHARE("viewregs0") - map(0x200100, 0x200117).writeonly().share("tilemap_regs.0"); // tilemap regs1 - map(0x200120, 0x200137).writeonly().share("tilemap_regs.1"); // tilemap regs2 - map(0x200140, 0x200157).writeonly().share("tilemap_regs.2"); // tilemap regs3 - map(0x200160, 0x200177).writeonly().share("tilemap_regs.3"); // tilemap regs4 - map(0x200200, 0x20021b).writeonly().share("spriteregs"); // sprregs? + map(0x200100, 0x200117).writeonly().share(m_tilemap_regs[0]); // tilemap regs1 + map(0x200120, 0x200137).writeonly().share(m_tilemap_regs[1]); // tilemap regs2 + map(0x200140, 0x200157).writeonly().share(m_tilemap_regs[2]); // tilemap regs3 + map(0x200160, 0x200177).writeonly().share(m_tilemap_regs[3]); // tilemap regs4 + map(0x200200, 0x20021b).writeonly().share(m_spriteregs); // sprregs? // AM_RANGE(0x200300, 0x200303) AM_WRITE(rombank_w) // used during rom testing, rombank/area select + something else? - map(0x20040c, 0x20040f).w(FUNC(tmmjprd_state::brt_1_w)); - map(0x200410, 0x200413).w(FUNC(tmmjprd_state::brt_2_w)); + map(0x20040c, 0x20040f).w(FUNC(tmmjprd_state::brt_w<0>)); + map(0x200410, 0x200413).w(FUNC(tmmjprd_state::brt_w<1>)); // AM_RANGE(0x200500, 0x200503) AM_WRITEONLY AM_SHARE("viewregs7") // AM_RANGE(0x200700, 0x20070f) AM_WRITE(blitter_w) AM_SHARE("blitterregs") // AM_RANGE(0x200800, 0x20080f) AM_WRITEONLY AM_SHARE("viewregs9") // never changes? @@ -714,12 +665,12 @@ void tmmjprd_state::tmmjprd_map(address_map &map) /* hmm */ // AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("viewregs10") /* tilemaps */ - map(0x280000, 0x283fff).rw(FUNC(tmmjprd_state::tilemap0_r), FUNC(tmmjprd_state::tilemap0_w)); - map(0x284000, 0x287fff).rw(FUNC(tmmjprd_state::tilemap1_r), FUNC(tmmjprd_state::tilemap1_w)); - map(0x288000, 0x28bfff).rw(FUNC(tmmjprd_state::tilemap2_r), FUNC(tmmjprd_state::tilemap2_w)); - map(0x28c000, 0x28ffff).rw(FUNC(tmmjprd_state::tilemap3_r), FUNC(tmmjprd_state::tilemap3_w)); + map(0x280000, 0x283fff).rw(FUNC(tmmjprd_state::tilemap_r<0>), FUNC(tmmjprd_state::tilemap_w<0>)); + map(0x284000, 0x287fff).rw(FUNC(tmmjprd_state::tilemap_r<1>), FUNC(tmmjprd_state::tilemap_w<1>)); + map(0x288000, 0x28bfff).rw(FUNC(tmmjprd_state::tilemap_r<2>), FUNC(tmmjprd_state::tilemap_w<2>)); + map(0x28c000, 0x28ffff).rw(FUNC(tmmjprd_state::tilemap_r<3>), FUNC(tmmjprd_state::tilemap_w<3>)); /* ?? is palette ram shared with sprites in this case or just a different map */ - map(0x290000, 0x29bfff).ram().share("spriteram"); + map(0x290000, 0x29bfff).ram().share(m_spriteram); map(0x29c000, 0x29ffff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette"); map(0x400000, 0x400003).r(FUNC(tmmjprd_state::mux_r)).w(FUNC(tmmjprd_state::eeprom_write)); @@ -770,13 +721,13 @@ TIMER_DEVICE_CALLBACK_MEMBER(tmmjprd_state::scanline) } MACHINE_CONFIG_START(tmmjprd_state::tmmjprd) - MCFG_DEVICE_ADD("maincpu",M68EC020,24000000) /* 24 MHz */ - MCFG_DEVICE_PROGRAM_MAP(tmmjprd_map) + MCFG_DEVICE_ADD(m_maincpu,M68EC020,24000000) /* 24 MHz */ + MCFG_DEVICE_PROGRAM_MAP(main_map) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmmjprd_state, scanline, "lscreen", 0, 1) - MCFG_DEVICE_ADD("eeprom", EEPROM_SERIAL_93C46_16BIT, eeprom_serial_streaming::ENABLE) + MCFG_DEVICE_ADD(m_eeprom, EEPROM_SERIAL_93C46_16BIT, eeprom_serial_streaming::ENABLE) - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tmmjprd) + MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, m_palette, gfx_tmmjprd) // MCFG_SCREEN_ADD("screen", RASTER) // MCFG_SCREEN_REFRESH_RATE(60) @@ -784,7 +735,7 @@ MACHINE_CONFIG_START(tmmjprd_state::tmmjprd) // MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update) // MCFG_SCREEN_SIZE(64*16, 64*16) // MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_PALETTE_ADD("palette", 0x1000) + MCFG_PALETTE_ADD(m_palette, 0x1000) MCFG_PALETTE_FORMAT(XGRB) @@ -797,7 +748,7 @@ MACHINE_CONFIG_START(tmmjprd_state::tmmjprd) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1) MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_left) - MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_PALETTE(m_palette) MCFG_SCREEN_ADD("rscreen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -806,7 +757,7 @@ MACHINE_CONFIG_START(tmmjprd_state::tmmjprd) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1) MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_right) - MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_PALETTE(m_palette) /* sound hardware */ @@ -821,6 +772,8 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(tmmjprd_state::tmpdoki) tmmjprd(config); MCFG_DEFAULT_LAYOUT(layout_horizont) + + MCFG_DEVICE_REMOVE("rscreen") MACHINE_CONFIG_END -- cgit v1.2.3