anes.cpp: notes, makes some sound noises (nw)

This commit is contained in:
angelosa 2017-10-14 05:05:40 +02:00
parent f299029078
commit d1acf72abb

View File

@ -4,6 +4,11 @@
/*
TON PUU MAHJONG (Japan) by ANES
TODO:
- ROM banking;
- blitter, 8bpp with hardcoded palette & writes to ROM area!?
- inputs;
- 1x Z0840008PSC Z80 CPU
- 1x 16.000 XTAL near the Z80
- 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:
virtual void machine_start() override;
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 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, AS_IO, 8, anes_state )
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
static INPUT_PORTS_START( anes )
PORT_START("IN")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("IN0")
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(0x02, 0x02, "SW1:2")
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(0x80, 0x80, "SW1:8")
PORT_START("SW2")
PORT_START("DSW2")
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW2:1")
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW2:2")
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(0x80, 0x80, "SW2:8")
PORT_START("SW3")
PORT_START("DSW3")
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW3:1")
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW3:2")
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(0x80, 0x80, "SW3:8")
PORT_START("SW4")
PORT_START("DSW4")
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW4:1")
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW4:2")
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 )
@ -119,6 +154,7 @@ static MACHINE_CONFIG_START( anes )
MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 2) // Z0840008PSC
MCFG_CPU_PROGRAM_MAP(prg_map)
MCFG_CPU_IO_MAP(io_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", anes_state, irq0_line_hold)
// all wrong
MCFG_SCREEN_ADD("screen", RASTER)
@ -131,8 +167,6 @@ static MACHINE_CONFIG_START( anes )
MCFG_PALETTE_ADD("palette", 0x100)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", anes)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym", YM2413, XTAL_3_579545MHz)
@ -150,4 +184,4 @@ ROM_START( tonpuu )
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 )