mirror of
https://github.com/holub/mame
synced 2025-07-03 17:08:39 +03:00
anes.cpp: notes, makes some sound noises (nw)
This commit is contained in:
parent
f299029078
commit
d1acf72abb
@ -4,6 +4,11 @@
|
|||||||
/*
|
/*
|
||||||
TON PUU MAHJONG (Japan) by ANES
|
TON PUU MAHJONG (Japan) by ANES
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
- ROM banking;
|
||||||
|
- blitter, 8bpp with hardcoded palette & writes to ROM area!?
|
||||||
|
- inputs;
|
||||||
|
|
||||||
- 1x Z0840008PSC Z80 CPU
|
- 1x Z0840008PSC Z80 CPU
|
||||||
- 1x 16.000 XTAL near the Z80
|
- 1x 16.000 XTAL near the Z80
|
||||||
- 1x YM2413 sound chip
|
- 1x YM2413 sound chip
|
||||||
@ -31,28 +36,72 @@ public:
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
DECLARE_WRITE8_MEMBER(vram_offset_w);
|
||||||
|
DECLARE_WRITE8_MEMBER(blit_trigger_w);
|
||||||
|
|
||||||
|
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void machine_start() override;
|
virtual void machine_start() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
uint8_t m_vram_offset[3];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
uint32_t anes_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER(anes_state::vram_offset_w)
|
||||||
|
{
|
||||||
|
m_vram_offset[offset] = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER(anes_state::blit_trigger_w)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
operation is:
|
||||||
|
checks for bit 4 to be high in port $16
|
||||||
|
writes either 0 or 3 to port $04
|
||||||
|
writes a 0 to port $00
|
||||||
|
writes an offset to ports $0c / $0d / $0e
|
||||||
|
writes 1 to port $0b, writes to program space, writes 2 to port $0b, writes to program space
|
||||||
|
writes a mode to port $0b, writes to trigger port $0a
|
||||||
|
*/
|
||||||
|
|
||||||
|
//printf("%02x%02x%02x\n",m_vram_offset[0],m_vram_offset[1],m_vram_offset[2]);
|
||||||
|
}
|
||||||
|
|
||||||
static ADDRESS_MAP_START( prg_map, AS_PROGRAM, 8, anes_state )
|
static ADDRESS_MAP_START( prg_map, AS_PROGRAM, 8, anes_state )
|
||||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
AM_RANGE(0x0000, 0xefff) AM_ROM
|
||||||
|
AM_RANGE(0xf000, 0xffff) AM_RAM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( io_map, AS_IO, 8, anes_state )
|
static ADDRESS_MAP_START( io_map, AS_IO, 8, anes_state )
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
|
|
||||||
|
AM_RANGE(0x07, 0x07) AM_WRITENOP // mux write
|
||||||
|
AM_RANGE(0x08, 0x09) AM_DEVWRITE("ym", ym2413_device, write)
|
||||||
|
AM_RANGE(0x0a, 0x0a) AM_WRITE(blit_trigger_w)
|
||||||
|
// AM_RANGE(0x0b, 0x0b) AM_WRITE(blit_mode_w)
|
||||||
|
AM_RANGE(0x0c, 0x0e) AM_WRITE(vram_offset_w)
|
||||||
|
AM_RANGE(0x11, 0x11) AM_READ_PORT("DSW1")
|
||||||
|
AM_RANGE(0x12, 0x12) AM_READ_PORT("DSW2")
|
||||||
|
AM_RANGE(0x13, 0x13) AM_READ_PORT("DSW3")
|
||||||
|
AM_RANGE(0x14, 0x15) AM_READNOP // mux read
|
||||||
|
AM_RANGE(0x16, 0x16) AM_READ_PORT("IN0") AM_WRITENOP
|
||||||
|
// AM_RANGE(0xfe, 0xfe) banking? unknown ROM range
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
static INPUT_PORTS_START( anes )
|
static INPUT_PORTS_START( anes )
|
||||||
PORT_START("IN")
|
PORT_START("IN0")
|
||||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // blitter busy status
|
||||||
|
PORT_BIT( 0xef, IP_ACTIVE_LOW, IPT_UNKNOWN ) // used, coin?
|
||||||
|
|
||||||
PORT_START("SW1")
|
PORT_START("DSW1")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1")
|
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW1:2")
|
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW1:2")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW1:3")
|
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW1:3")
|
||||||
@ -62,7 +111,7 @@ static INPUT_PORTS_START( anes )
|
|||||||
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW1:7")
|
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW1:7")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW1:8")
|
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW1:8")
|
||||||
|
|
||||||
PORT_START("SW2")
|
PORT_START("DSW2")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW2:1")
|
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW2:1")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW2:2")
|
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW2:2")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW2:3")
|
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW2:3")
|
||||||
@ -72,7 +121,7 @@ static INPUT_PORTS_START( anes )
|
|||||||
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW2:7")
|
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW2:7")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW2:8")
|
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW2:8")
|
||||||
|
|
||||||
PORT_START("SW3")
|
PORT_START("DSW3")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW3:1")
|
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW3:1")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW3:2")
|
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW3:2")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW3:3")
|
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW3:3")
|
||||||
@ -82,7 +131,7 @@ static INPUT_PORTS_START( anes )
|
|||||||
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW3:7")
|
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW3:7")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW3:8")
|
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW3:8")
|
||||||
|
|
||||||
PORT_START("SW4")
|
PORT_START("DSW4")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW4:1")
|
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW4:1")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW4:2")
|
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW4:2")
|
||||||
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW4:3")
|
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW4:3")
|
||||||
@ -98,20 +147,6 @@ void anes_state::machine_start()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 anes_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static const gfx_layout gfx_layout =
|
|
||||||
{
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static GFXDECODE_START( anes )
|
|
||||||
GFXDECODE_ENTRY( "gfx1", 0, gfx_layout, 0x0, 16)
|
|
||||||
GFXDECODE_END
|
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( anes )
|
static MACHINE_CONFIG_START( anes )
|
||||||
@ -119,6 +154,7 @@ static MACHINE_CONFIG_START( anes )
|
|||||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 2) // Z0840008PSC
|
MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 2) // Z0840008PSC
|
||||||
MCFG_CPU_PROGRAM_MAP(prg_map)
|
MCFG_CPU_PROGRAM_MAP(prg_map)
|
||||||
MCFG_CPU_IO_MAP(io_map)
|
MCFG_CPU_IO_MAP(io_map)
|
||||||
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", anes_state, irq0_line_hold)
|
||||||
|
|
||||||
// all wrong
|
// all wrong
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
@ -131,8 +167,6 @@ static MACHINE_CONFIG_START( anes )
|
|||||||
|
|
||||||
MCFG_PALETTE_ADD("palette", 0x100)
|
MCFG_PALETTE_ADD("palette", 0x100)
|
||||||
|
|
||||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", anes)
|
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
MCFG_SOUND_ADD("ym", YM2413, XTAL_3_579545MHz)
|
MCFG_SOUND_ADD("ym", YM2413, XTAL_3_579545MHz)
|
||||||
@ -150,4 +184,4 @@ ROM_START( tonpuu )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
GAME( 200?, tonpuu, 0, anes, anes, anes_state, 0, ROT0, "ANES", "Ton Puu Mahjong", MACHINE_IS_SKELETON )
|
GAME( 200?, tonpuu, 0, anes, anes, anes_state, 0, ROT0, "ANES", "Ton Puu Mahjong [BET] (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
|
||||||
|
Loading…
Reference in New Issue
Block a user