From 02c84bd29327b1e101f981ef4bc2a0fa7c77b314 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Wed, 28 Aug 2013 05:59:58 +0000 Subject: [PATCH] new (not working) 25pacman parent, this will need a fair bit of work, PCB is significantly different, it saves to Flash etc. and probably uploads the palette instead of having a ROM (nw) From Brian Troha, but wasn't given any other credit. --- src/mame/drivers/20pacgal.c | 49 +++++++++++++++++++++++++++++++++--- src/mame/includes/20pacgal.h | 10 ++++++++ src/mame/mame.lst | 3 ++- 3 files changed, 58 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/20pacgal.c b/src/mame/drivers/20pacgal.c index 031a99b699f..3a0f4779d7c 100644 --- a/src/mame/drivers/20pacgal.c +++ b/src/mame/drivers/20pacgal.c @@ -201,6 +201,24 @@ WRITE8_MEMBER(_20pacgal_state::sprite_lookup_w) m_sprite_color_lookup[offset] = data; } +// wrong +static ADDRESS_MAP_START( 25pacman_map, AS_PROGRAM, 8, _25pacman_state ) +// AM_RANGE(0x00000, 0x3ffff) AM_DEVREAD("flash", sst_39vf020_device, read ) AM_MIRROR( 0x0c0000 ) // (always fall through if nothing else is mapped?) + AM_RANGE(0x00000, 0x3ffff) AM_ROM AM_REGION("flash", 0) + + AM_RANGE(0xc8000, 0xc9fff) AM_READ_BANK("bank1") AM_WRITE(ram_48000_w) + + AM_RANGE(0x04000, 0x047ff) AM_RAM AM_SHARE("video_ram") + AM_RANGE(0x04800, 0x05fff) AM_RAM + AM_RANGE(0x06000, 0x06fff) AM_RAM AM_SHARE("char_gfx_ram") + AM_RANGE(0x0a000, 0x0afff) AM_RAM + +// AM_RANGE(0x0c000, 0x0dfff) AM_WRITE(sprite_gfx_w) +// AM_RANGE(0x0e000, 0x0e17f) AM_WRITE(sprite_ram_w) + + +ADDRESS_MAP_END + static ADDRESS_MAP_START( 20pacgal_map, AS_PROGRAM, 8, _20pacgal_state ) AM_RANGE(0x00000, 0x03fff) AM_ROM AM_RANGE(0x04000, 0x07fff) AM_ROM @@ -221,7 +239,6 @@ static ADDRESS_MAP_START( 20pacgal_map, AS_PROGRAM, 8, _20pacgal_state ) ADDRESS_MAP_END - /************************************* * * I/O port handlers @@ -367,6 +384,16 @@ static MACHINE_CONFIG_START( 20pacgal, _20pacgal_state ) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED_CLASS( 25pacman, 20pacgal, _25pacman_state ) + + /* basic machine hardware */ + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(25pacman_map) + + MCFG_SST_39VF020_ADD("flash") // wrong type, should be AM29LV20 +MACHINE_CONFIG_END + + /************************************* * @@ -379,7 +406,7 @@ MACHINE_CONFIG_END Pacman - 25th Anniversary Edition */ -ROM_START( 25pacman ) /* Revision 2.00 */ +ROM_START( 25pacmano ) /* Revision 2.00 */ ROM_REGION( 0x100000, "maincpu", 0 ) ROM_LOAD( "pacman_25th_rev2.0.u13", 0x00000, 0x40000, CRC(99a52784) SHA1(6222c2eb686e65ba23ca376ff4392be1bc826a03) ) /* Label printed Rev 2.0, program says Rev 2.00 */ @@ -387,6 +414,19 @@ ROM_START( 25pacman ) /* Revision 2.00 */ ROM_LOAD( "pacman_25th.u14", 0x0000, 0x8000, CRC(c19d9ad0) SHA1(002581fbc2c32cdf7cfb0b0f64061591a462ec14) ) /* Same as the MS. Pacman / Galaga graphics rom */ ROM_END +// guzuta v2.2 PCB +// this uses the main FLASH rom to save things instead of eeprom (type is AM29LV20) +// different memory map.. no palette rom +ROM_START( 25pacman ) /* Revision 3.00 */ + ROM_REGION( 0x40000, "flash", 0 ) + ROM_LOAD( "pacman25ver3.u1", 0x00000, 0x40000, CRC(55b0076e) SHA1(4544cc193bdd22bfc88d096083ccc4069cac4607) ) /* program says Rev 3.00 */ + ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASE00 ) + + ROM_REGION( 0x8000, "proms", 0 ) /* palette */ + // shouldn't be loading this! must be uploaded somewhere + ROM_LOAD( "pacman_25th.u14", 0x0000, 0x8000, CRC(c19d9ad0) SHA1(002581fbc2c32cdf7cfb0b0f64061591a462ec14) ) +ROM_END + /* Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion */ @@ -440,6 +480,8 @@ ROM_START( 20pacgalr0 ) /* Version 1.00 */ ROM_END + + DRIVER_INIT_MEMBER(_20pacgal_state,20pacgal) { m_sprite_pal_base = 0x00<<2; @@ -458,7 +500,8 @@ DRIVER_INIT_MEMBER(_20pacgal_state,25pacman) * *************************************/ -GAME( 2005, 25pacman, 0, 20pacgal, 25pacman, _20pacgal_state, 25pacman, ROT90, "Namco", "Pac-Man - 25th Anniversary Edition (Rev 2.00)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE) +GAME( 2006, 25pacman, 0, 25pacman, 25pacman, _20pacgal_state, 25pacman, ROT90, "Namco", "Pac-Man - 25th Anniversary Edition (Rev 3.00)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) +GAME( 2005, 25pacmano, 25pacman, 20pacgal, 25pacman, _20pacgal_state, 25pacman, ROT90, "Namco", "Pac-Man - 25th Anniversary Edition (Rev 2.00)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE) GAME( 2000, 20pacgal, 0, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.08)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE) GAME( 2000, 20pacgalr4, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.04)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE) diff --git a/src/mame/includes/20pacgal.h b/src/mame/includes/20pacgal.h index 6e7630df8e6..b28aa418cf2 100644 --- a/src/mame/includes/20pacgal.h +++ b/src/mame/includes/20pacgal.h @@ -7,6 +7,7 @@ ***************************************************************************/ #include "machine/eepromser.h" #include "sound/namco.h" +#include "machine/intelfsh.h" class _20pacgal_state : public driver_device { @@ -71,5 +72,14 @@ public: }; +class _25pacman_state : public _20pacgal_state +{ +public: + _25pacman_state(const machine_config &mconfig, device_type type, const char *tag) + : _20pacgal_state(mconfig, type, tag) + { } + +}; + /*----------- defined in video/20pacgal.c -----------*/ MACHINE_CONFIG_EXTERN( 20pacgal_video ); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index db5f2035491..88a83998744 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -1095,7 +1095,8 @@ gdvsgd // Misc Namco games 30test // (c) 1997 -25pacman // (c) 2005 Ver 2.0 - Same hardware as 20pacgal +25pacman // (c) 2006 Ver 3.0 +25pacmano // (c) 2005 Ver 2.0 - Same hardware as 20pacgal 20pacgal // (c) 2000 Ver 1.08 20pacgalr4 // (c) 2000 Ver 1.04 20pacgalr3 // (c) 2000 Ver 1.03