summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/hotblock.c
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2015-03-06 18:33:26 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2015-03-06 18:33:26 +0100
commit77c98e46a6f2fc39cf0a12b2aba5567d3ca2bf44 (patch)
tree35537c4af50c27edf16a5591da93e0227b02d001 /src/mame/drivers/hotblock.c
parent6000d9f9fbeed90da444c87338154ef2e339efa0 (diff)
hotblock.c, ironhors.c: added save state support (nw)
Diffstat (limited to 'src/mame/drivers/hotblock.c')
-rw-r--r--src/mame/drivers/hotblock.c57
1 files changed, 29 insertions, 28 deletions
diff --git a/src/mame/drivers/hotblock.c b/src/mame/drivers/hotblock.c
index 06175652e3f..bd6725d711a 100644
--- a/src/mame/drivers/hotblock.c
+++ b/src/mame/drivers/hotblock.c
@@ -50,10 +50,14 @@ class hotblock_state : public driver_device
public:
hotblock_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_vram(*this, "vram"),
m_maincpu(*this, "maincpu"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_vram(*this, "vram") { }
+ /* devices */
+ required_device<cpu_device> m_maincpu;
+ required_device<palette_device> m_palette;
+
/* memory pointers */
required_shared_ptr<UINT8> m_vram;
@@ -63,21 +67,21 @@ public:
/* memory */
UINT8 m_pal[0x10000];
- DECLARE_READ8_MEMBER(hotblock_video_read);
- DECLARE_READ8_MEMBER(hotblock_port4_r);
- DECLARE_WRITE8_MEMBER(hotblock_port4_w);
- DECLARE_WRITE8_MEMBER(hotblock_port0_w);
- DECLARE_WRITE8_MEMBER(hotblock_video_write);
+
+ DECLARE_READ8_MEMBER(video_read);
+ DECLARE_READ8_MEMBER(port4_r);
+ DECLARE_WRITE8_MEMBER(port4_w);
+ DECLARE_WRITE8_MEMBER(port0_w);
+ DECLARE_WRITE8_MEMBER(video_write);
+
virtual void video_start();
- UINT32 screen_update_hotblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(hotblocks_irq);
- required_device<cpu_device> m_maincpu;
- required_device<palette_device> m_palette;
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-READ8_MEMBER(hotblock_state::hotblock_video_read)
+READ8_MEMBER(hotblock_state::video_read)
{
/* right?, anything else?? */
if (m_port0 & 0x20) // port 0 = a8 e8 -- palette
@@ -91,14 +95,14 @@ READ8_MEMBER(hotblock_state::hotblock_video_read)
}
/* port 4 is some kind of eeprom / storage .. used to store the scores */
-READ8_MEMBER(hotblock_state::hotblock_port4_r)
+READ8_MEMBER(hotblock_state::port4_r)
{
// osd_printf_debug("port4_r\n");
return 0x00;
}
-WRITE8_MEMBER(hotblock_state::hotblock_port4_w)
+WRITE8_MEMBER(hotblock_state::port4_w)
{
// osd_printf_debug("port4_w: pc = %06x : data %04x\n", space.device().safe_pc(), data);
// popmessage("port4_w: pc = %06x : data %04x", space.device().safe_pc(), data);
@@ -108,14 +112,14 @@ WRITE8_MEMBER(hotblock_state::hotblock_port4_w)
-WRITE8_MEMBER(hotblock_state::hotblock_port0_w)
+WRITE8_MEMBER(hotblock_state::port0_w)
{
// popmessage("port4_w: pc = %06x : data %04x", space.device().safe_pc(), data);
m_port0 = data;
}
-WRITE8_MEMBER(hotblock_state::hotblock_video_write)
+WRITE8_MEMBER(hotblock_state::video_write)
{
/* right?, anything else?? */
if (m_port0 & 0x20) // port 0 = a8 e8 -- palette
@@ -130,13 +134,13 @@ WRITE8_MEMBER(hotblock_state::hotblock_video_write)
static ADDRESS_MAP_START( hotblock_map, AS_PROGRAM, 8, hotblock_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAM
- AM_RANGE(0x10000, 0x1ffff) AM_READWRITE(hotblock_video_read, hotblock_video_write) AM_SHARE("vram")
+ AM_RANGE(0x10000, 0x1ffff) AM_READWRITE(video_read, video_write) AM_SHARE("vram")
AM_RANGE(0x20000, 0xfffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( hotblock_io, AS_IO, 8, hotblock_state )
- AM_RANGE(0x0000, 0x0000) AM_WRITE(hotblock_port0_w)
- AM_RANGE(0x0004, 0x0004) AM_READWRITE(hotblock_port4_r, hotblock_port4_w)
+ AM_RANGE(0x0000, 0x0000) AM_WRITE(port0_w)
+ AM_RANGE(0x0004, 0x0004) AM_READWRITE(port4_r, port4_w)
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
AM_RANGE(0x8001, 0x8001) AM_DEVREAD("aysnd", ay8910_device, data_r)
ADDRESS_MAP_END
@@ -146,9 +150,11 @@ ADDRESS_MAP_END
void hotblock_state::video_start()
{
save_item(NAME(m_pal));
+ save_item(NAME(m_port0));
+ save_item(NAME(m_port4)); //stored but not read for now
}
-UINT32 hotblock_state::screen_update_hotblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 hotblock_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int y, x, count;
int i;
@@ -200,18 +206,13 @@ static INPUT_PORTS_START( hotblock )
INPUT_PORTS_END
-INTERRUPT_GEN_MEMBER(hotblock_state::hotblocks_irq)/* right? */
-{
- device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
-}
-
static MACHINE_CONFIG_START( hotblock, hotblock_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", I8088, 10000000)
MCFG_CPU_PROGRAM_MAP(hotblock_map)
MCFG_CPU_IO_MAP(hotblock_io)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", hotblock_state, hotblocks_irq)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", hotblock_state, nmi_line_pulse) /* right? */
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -219,7 +220,7 @@ static MACHINE_CONFIG_START( hotblock, hotblock_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(1024,1024)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_DRIVER(hotblock_state, screen_update_hotblock)
+ MCFG_SCREEN_UPDATE_DRIVER(hotblock_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 256)
@@ -240,4 +241,4 @@ ROM_START( hotblock )
ROM_LOAD( "hotblk6.ic5", 0x080000, 0x080000, CRC(3176d231) SHA1(ac22fd0e9820c6714f51a3d8315eb5d43ef91eeb) )
ROM_END
-GAME( 1993, hotblock, 0, hotblock, hotblock, driver_device, 0, ROT0, "NIX?", "Hot Blocks - Tetrix II", 0 )
+GAME( 1993, hotblock, 0, hotblock, hotblock, driver_device, 0, ROT0, "NIX?", "Hot Blocks - Tetrix II", GAME_SUPPORTS_SAVE )