diff options
author | Michaël Banaan Ananas <happppp@users.noreply.github.com> | 2012-09-09 18:24:17 +0000 |
---|---|---|
committer | Michaël Banaan Ananas <happppp@users.noreply.github.com> | 2012-09-09 18:24:17 +0000 |
commit | db910043a6dcd0684cf1be04a1456eb1593db321 (patch) | |
tree | abdd1436cbd151b6ba4333705510eb1bef10cca8 /src/mame | |
parent | f91d58a9b953ba71481955d60be58648c9e98245 (diff) |
update notes 2
Diffstat (limited to 'src/mame')
-rw-r--r-- | src/mame/drivers/homerun.c | 30 | ||||
-rw-r--r-- | src/mame/video/homerun.c | 7 |
2 files changed, 26 insertions, 11 deletions
diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c index 022f40b2307..b267e8fa620 100644 --- a/src/mame/drivers/homerun.c +++ b/src/mame/drivers/homerun.c @@ -9,8 +9,8 @@ sprites in NES format etc) Todo : - - voice ( unemulated D7756C ) - - controls/dips + - dump remaining sample roms + - improve controls/dips - better emulation of gfx bank switching (problematic in ganjaja) - is there 2 player mode ? @@ -60,6 +60,9 @@ Notes: WRITE8_MEMBER(homerun_state::homerun_d7756c_control_w) { + // d4: start pin + // d5: reset pin(?) + // other bits: unused? device_t *device = machine().device("d7756c"); upd7759_reset_w(device, ~data & 0x20); upd7759_start_w(device, ~data & 0x10); @@ -110,18 +113,22 @@ static INPUT_PORTS_START( homerun ) PORT_START("IN0") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, homerun_state, homerun_40_r, NULL) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ? + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // ? + PORT_BIT( 0x37, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_START("IN2") - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0xdf, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START("DSW") PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("DIPSW:1,2") @@ -143,21 +150,21 @@ static INPUT_PORTS_START( dynashot ) PORT_START("IN0") PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, homerun_state, homerun_40_r, NULL) - PORT_BIT( 0xb7, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0xb7, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START("IN1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_START("IN2") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) - PORT_BIT( 0xdf, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0xdf, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START("DSW") PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("DIPSW:1,2") @@ -188,7 +195,8 @@ static INPUT_PORTS_START( ganjaja ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("P1 Right / Scissors") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) // unused? PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, homerun_state, ganjaja_hopper_status_r, NULL) - PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_START("IN2") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // bit masked with IN0 IPT_COIN1, maybe coin lockout? @@ -201,7 +209,7 @@ static INPUT_PORTS_START( ganjaja ) PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) ) PORT_DIPNAME( 0x02, 0x02, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DIPSW:2") PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) // game will boot with 1 credit inserted PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "DIPSW:3" ) PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "DIPSW:4" ) PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "DIPSW:5" ) diff --git a/src/mame/video/homerun.c b/src/mame/video/homerun.c index 34f7a8dd931..73bc0dbb5e2 100644 --- a/src/mame/video/homerun.c +++ b/src/mame/video/homerun.c @@ -10,6 +10,8 @@ #define half_screen 116 +/**************************************************************************/ + WRITE8_MEMBER(homerun_state::homerun_scrollhi_w) { // d0: scroll y high bit @@ -68,6 +70,9 @@ WRITE8_MEMBER(homerun_state::homerun_color_w) palette_set_color(machine(), offset, MAKE_RGB(r,g,b)); } + +/**************************************************************************/ + TILE_GET_INFO_MEMBER(homerun_state::get_homerun_tile_info) { int tileno = (m_videoram[tile_index]) + ((m_videoram[tile_index + 0x1000] & 0x38) << 5) + ((m_gfx_ctrl & 1) << 11); @@ -76,12 +81,14 @@ TILE_GET_INFO_MEMBER(homerun_state::get_homerun_tile_info) SET_TILE_INFO_MEMBER(0, tileno, palno, 0); } + VIDEO_START( homerun ) { homerun_state *state = machine.driver_data<homerun_state>(); state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homerun_state::get_homerun_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); } + static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) { homerun_state *state = machine.driver_data<homerun_state>(); |