mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
pretty obvious that 1.bin was a bad dump (the other changes are just minor cleanups)
This commit is contained in:
parent
6fb0c0d694
commit
a565657066
@ -1,12 +1,13 @@
|
||||
/***************************************************************************
|
||||
|
||||
Driver by Tomasz Slanina
|
||||
IDSA 4 En Raya
|
||||
|
||||
TODO:
|
||||
- video and irq timings;
|
||||
- there's a waitstate penalty on the VRAM apparently?
|
||||
Driver by Tomasz Slanina
|
||||
|
||||
- unknown Pac-Man gambling game (whats the real title?) sound issues
|
||||
TODO:
|
||||
- video and irq timings;
|
||||
- there's a waitstate penalty on the VRAM apparently?
|
||||
- unknown Pac-Man gambling game (whats the real title?) sound issues
|
||||
|
||||
***************************************************************************
|
||||
|
||||
@ -77,9 +78,7 @@ WRITE8_MEMBER(_4enraya_state::sound_control_w)
|
||||
READ8_MEMBER(_4enraya_state::fenraya_custom_map_r)
|
||||
{
|
||||
UINT8 prom_routing = (m_prom[offset >> 12] & 0xf) ^ 0xf;
|
||||
UINT8 res;
|
||||
|
||||
res = 0;
|
||||
UINT8 res = 0;
|
||||
|
||||
if(prom_routing & 1) //ROM5
|
||||
{
|
||||
@ -131,13 +130,6 @@ WRITE8_MEMBER(_4enraya_state::fenraya_custom_map_w)
|
||||
|
||||
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, _4enraya_state )
|
||||
AM_RANGE(0x0000, 0xffff) AM_READWRITE(fenraya_custom_map_r,fenraya_custom_map_w)
|
||||
#if 0
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM
|
||||
AM_RANGE(0xd000, 0xdfff) AM_WRITE(fenraya_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xe000, 0xefff) AM_WRITE(fenraya_videoram_w)
|
||||
AM_RANGE(0xf000, 0xffff) AM_NOP
|
||||
#endif
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( main_portmap, AS_IO, 8, _4enraya_state )
|
||||
@ -165,6 +157,13 @@ static ADDRESS_MAP_START( unkpacg_main_portmap, AS_IO, 8, _4enraya_state )
|
||||
AM_RANGE(0x30, 0x30) AM_WRITE(sound_control_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Inputs
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( 4enraya )
|
||||
PORT_START("DSW")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:1")
|
||||
@ -193,12 +192,12 @@ static INPUT_PORTS_START( 4enraya )
|
||||
PORT_START("INPUTS")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Down") // "drop" ("down")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Down") // "drop" ("down")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Down") // "drop" ("down")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Down") // "drop" ("down")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Shot") // "fire" ("shot")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Shot") // "fire" ("shot")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Shot") // "fire" ("shot")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Shot") // "fire" ("shot")
|
||||
|
||||
PORT_START("SYSTEM")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
@ -267,9 +266,9 @@ static INPUT_PORTS_START( unkpacg )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const gfx_layout charlayout =
|
||||
{
|
||||
8,8,
|
||||
@ -282,7 +281,7 @@ static const gfx_layout charlayout =
|
||||
};
|
||||
|
||||
static GFXDECODE_START( 4enraya )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 )
|
||||
GFXDECODE_END
|
||||
|
||||
void _4enraya_state::machine_start()
|
||||
@ -292,7 +291,6 @@ void _4enraya_state::machine_start()
|
||||
|
||||
m_prom = memregion("pal_prom")->base();
|
||||
m_rom = memregion("maincpu")->base();
|
||||
|
||||
}
|
||||
|
||||
void _4enraya_state::machine_reset()
|
||||
@ -301,15 +299,6 @@ void _4enraya_state::machine_reset()
|
||||
m_last_snd_ctrl = 0;
|
||||
}
|
||||
|
||||
PALETTE_INIT_MEMBER(_4enraya_state, _4enraya)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* RGB format */
|
||||
for(i=0;i<8;i++)
|
||||
m_palette->set_pen_color(i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( 4enraya, _4enraya_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -318,7 +307,6 @@ static MACHINE_CONFIG_START( 4enraya, _4enraya_state )
|
||||
MCFG_CPU_IO_MAP(main_portmap)
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(_4enraya_state, irq0_line_hold, 4*60) // unknown timing
|
||||
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
@ -340,6 +328,8 @@ static MACHINE_CONFIG_START( 4enraya, _4enraya_state )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( unkpacg, 4enraya )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(unkpacg_main_map)
|
||||
MCFG_CPU_IO_MAP(unkpacg_main_portmap)
|
||||
@ -359,7 +349,7 @@ ROM_START( 4enraya )
|
||||
ROM_LOAD( "4.bin", 0x8000, 0x4000, CRC(f9ec1be7) SHA1(189159129ecbc4f6909c086867b0e02821f5b976) )
|
||||
|
||||
ROM_REGION( 0x6000, "gfx1", 0 )
|
||||
ROM_LOAD( "1.bin", 0x0000, 0x2000, CRC(87f92552) SHA1(d16afd963c30f2e60951876b843e5c1dcbee1cfc) ) // this dump might be bad, blue line on '8' character, 1 byte different from set below
|
||||
ROM_LOAD( "1.bin", 0x0000, 0x2000, CRC(0e5072fd) SHA1(0960e81f7fd52b38111eab2c124cfded5b35aa0b) )
|
||||
ROM_LOAD( "2.bin", 0x2000, 0x2000, CRC(2b0a3793) SHA1(2c3d224251557824bb9641dc2f98a000ab72c4a2) )
|
||||
ROM_LOAD( "3.bin", 0x4000, 0x2000, CRC(f6940836) SHA1(afde21ffa0c141cf73243e50da62ecfd474aaac2) )
|
||||
|
||||
@ -373,7 +363,7 @@ ROM_START( 4enrayaa )
|
||||
ROM_LOAD( "4.bin", 0x8000, 0x4000, CRC(f9ec1be7) SHA1(189159129ecbc4f6909c086867b0e02821f5b976) )
|
||||
|
||||
ROM_REGION( 0x6000, "gfx1", 0 )
|
||||
ROM_LOAD( "(__4enrayaa)1.bin", 0x0000, 0x2000, CRC(0e5072fd) SHA1(0960e81f7fd52b38111eab2c124cfded5b35aa0b) )
|
||||
ROM_LOAD( "1.bin", 0x0000, 0x2000, CRC(0e5072fd) SHA1(0960e81f7fd52b38111eab2c124cfded5b35aa0b) )
|
||||
ROM_LOAD( "2.bin", 0x2000, 0x2000, CRC(2b0a3793) SHA1(2c3d224251557824bb9641dc2f98a000ab72c4a2) )
|
||||
ROM_LOAD( "3.bin", 0x4000, 0x2000, CRC(f6940836) SHA1(afde21ffa0c141cf73243e50da62ecfd474aaac2) )
|
||||
|
||||
@ -384,8 +374,8 @@ ROM_END
|
||||
|
||||
ROM_START(unkpacg)
|
||||
ROM_REGION(0x10000, "maincpu", 0)
|
||||
ROM_LOAD("1.u14", 0x00000, 0x2000, CRC(848c4143) SHA1(3cff26181c58e5f52f1ac81df7d5d43e644585a2))
|
||||
ROM_LOAD("2.u46", 0x08000, 0x2000, CRC(9e6e0bd3) SHA1(f502132a0460108dad243632cc13d9116c534291))
|
||||
ROM_LOAD("1.u14", 0x0000, 0x2000, CRC(848c4143) SHA1(3cff26181c58e5f52f1ac81df7d5d43e644585a2))
|
||||
ROM_LOAD("2.u46", 0x0800, 0x2000, CRC(9e6e0bd3) SHA1(f502132a0460108dad243632cc13d9116c534291))
|
||||
|
||||
ROM_REGION( 0x6000, "gfx1", 0 )
|
||||
ROM_LOAD( "3.u20", 0x2000, 0x2000, CRC(d00b04ea) SHA1(e65901d8586507257d74ab103001207e28fa28af) )
|
||||
@ -393,20 +383,18 @@ ROM_START(unkpacg)
|
||||
ROM_LOAD( "5.u18", 0x0000, 0x2000, CRC(44f272d2) SHA1(b39cbc1f290d9fb2453396906e4da4a682c41ef4) )
|
||||
ROM_END
|
||||
|
||||
DRIVER_INIT_MEMBER(_4enraya_state,unkpacg)
|
||||
{
|
||||
UINT8 *rom = memregion("maincpu")->base();
|
||||
|
||||
DRIVER_INIT_MEMBER(_4enraya_state, unkpacg)
|
||||
{
|
||||
m_snd_latch_bit = 2;
|
||||
|
||||
{
|
||||
for(int i=0x8000;i<0xa000;++i)
|
||||
{
|
||||
rom[i]=BITSWAP8(rom[i], 7,6,5,4,3,2,0,1);
|
||||
}
|
||||
}
|
||||
// descramble rom
|
||||
UINT8 *rom = memregion("maincpu")->base();
|
||||
for (int i = 0x8000; i < 0xa000; i++)
|
||||
rom[i] = BITSWAP8(rom[i], 7,6,5,4,3,2,0,1);
|
||||
}
|
||||
|
||||
|
||||
GAME( 1990, 4enraya, 0, 4enraya, 4enraya, driver_device, 0, ROT0, "IDSA", "4 En Raya (set 1)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1990, 4enrayaa, 4enraya, 4enraya, 4enraya, driver_device, 0, ROT0, "IDSA", "4 En Raya (set 2)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 199?, unkpacg, 0, unkpacg, unkpacg, _4enraya_state, unkpacg, ROT0, "<unknown>", "unknown Pac-Man gambling game", GAME_IMPERFECT_SOUND )
|
||||
GAME( 199?, unkpacg, 0, unkpacg, unkpacg, _4enraya_state, unkpacg, ROT0, "<unknown>", "unknown Pac-Man gambling game", GAME_IMPERFECT_SOUND )
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*************************************************************************
|
||||
|
||||
4enraya
|
||||
IDSA 4 En Raya
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
@ -11,27 +11,33 @@ class _4enraya_state : public driver_device
|
||||
public:
|
||||
_4enraya_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_ay(*this, "aysnd"),
|
||||
m_snd_latch_bit(4),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_ay(*this, "aysnd"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette") { }
|
||||
|
||||
m_palette(*this, "palette"),
|
||||
m_snd_latch_bit(4)
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<ay8910_device> m_ay;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
/* memory pointers */
|
||||
UINT8 m_videoram[0x1000];
|
||||
UINT8 m_workram[0x1000];
|
||||
|
||||
/* video-related */
|
||||
tilemap_t *m_bg_tilemap;
|
||||
tilemap_t *m_bg_tilemap;
|
||||
|
||||
/* sound-related */
|
||||
int m_soundlatch;
|
||||
int m_last_snd_ctrl;
|
||||
UINT8 m_soundlatch;
|
||||
UINT8 m_last_snd_ctrl;
|
||||
UINT8 m_snd_latch_bit;
|
||||
|
||||
UINT8* m_prom;
|
||||
UINT8* m_rom;
|
||||
|
||||
int m_snd_latch_bit;
|
||||
DECLARE_WRITE8_MEMBER(sound_data_w);
|
||||
DECLARE_READ8_MEMBER(fenraya_custom_map_r);
|
||||
DECLARE_WRITE8_MEMBER(fenraya_custom_map_w);
|
||||
@ -39,16 +45,10 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(sound_control_w);
|
||||
DECLARE_DRIVER_INIT(unkpacg);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
|
||||
UINT8* m_prom;
|
||||
UINT8* m_rom;
|
||||
DECLARE_PALETTE_INIT(_4enraya);
|
||||
UINT32 screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
DECLARE_PALETTE_INIT(_4enraya);
|
||||
UINT32 screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
/***************************************************************************
|
||||
|
||||
video.c
|
||||
IDSA 4 En Raya
|
||||
|
||||
Functions to emulate the video hardware of the machine.
|
||||
|
||||
@ -16,13 +16,17 @@ WRITE8_MEMBER(_4enraya_state::fenraya_videoram_w)
|
||||
m_bg_tilemap->mark_tile_dirty(offset & 0x3ff);
|
||||
}
|
||||
|
||||
PALETTE_INIT_MEMBER(_4enraya_state, _4enraya)
|
||||
{
|
||||
/* RGB format */
|
||||
for (int i = 0; i < 8; i++)
|
||||
m_palette->set_pen_color(i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(_4enraya_state::get_tile_info)
|
||||
{
|
||||
int code = m_videoram[tile_index * 2] + (m_videoram[tile_index * 2 + 1] << 8);
|
||||
SET_TILE_INFO_MEMBER(0,
|
||||
code,
|
||||
0,
|
||||
0);
|
||||
SET_TILE_INFO_MEMBER(0, code, 0, 0);
|
||||
}
|
||||
|
||||
void _4enraya_state::video_start()
|
||||
|
Loading…
Reference in New Issue
Block a user