diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 9c1fca398cd..fb07463d7ee 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -2506,6 +2506,7 @@ files { MAME_DIR .. "src/mame/drivers/konmedal68k.cpp", MAME_DIR .. "src/mame/drivers/kontest.cpp", MAME_DIR .. "src/mame/drivers/konendev.cpp", + MAME_DIR .. "src/mame/drivers/kpython.cpp", MAME_DIR .. "src/mame/drivers/ksys573.cpp", MAME_DIR .. "src/mame/machine/k573cass.cpp", MAME_DIR .. "src/mame/machine/k573cass.h", @@ -2567,7 +2568,6 @@ files { MAME_DIR .. "src/mame/drivers/pooyan.cpp", MAME_DIR .. "src/mame/includes/pooyan.h", MAME_DIR .. "src/mame/video/pooyan.cpp", - MAME_DIR .. "src/mame/drivers/pyson.cpp", MAME_DIR .. "src/mame/drivers/qdrmfgp.cpp", MAME_DIR .. "src/mame/includes/qdrmfgp.h", MAME_DIR .. "src/mame/video/qdrmfgp.cpp", diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt index 537b1e3e1d2..7b20a5588fa 100644 --- a/src/mame/arcade.flt +++ b/src/mame/arcade.flt @@ -644,6 +644,7 @@ konmedal.cpp konmedal68k.cpp kontest.cpp kopunch.cpp +kpython.cpp ksayakyu.cpp ksys573.cpp kungfur.cpp @@ -990,7 +991,6 @@ pturn.cpp pubtimed.cpp puckpkmn.cpp punchout.cpp -pyson.cpp pzletime.cpp qdrmfgp.cpp qix.cpp diff --git a/src/mame/drivers/pyson.cpp b/src/mame/drivers/kpython.cpp similarity index 72% rename from src/mame/drivers/pyson.cpp rename to src/mame/drivers/kpython.cpp index 92096a01183..36a9e1c276d 100644 --- a/src/mame/drivers/pyson.cpp +++ b/src/mame/drivers/kpython.cpp @@ -2,7 +2,7 @@ // copyright-holders:Guru, Scott Stone /*************************************************************************** -Konami Pyson Hardware Overview +Konami Python/2 Hardware Overview Konami 2001-2005 This system uses a standard GH-006 PS2 main board (the older Playstation 2 square type) with a @@ -32,6 +32,7 @@ Game Title Label Label *Paintball Mania *Perfect Pool *Pool Pocket Fortunes +Pop'n Music 9 *R.P.M. Red World Soccer Winning Eleven Arcade Game Style C18JAA03 DIN5 dongle GCC27JA KN00002 World Soccer Winning Eleven Arcade Game Style 2003 C27JAA03 not used KN00002 @@ -91,7 +92,7 @@ Notes: 48LC2M32B2 - Micron 48LC2M32B2 512k x32-bit x4-banks (64MBit) SDRAM (TSOP86) XC9536 - Xilinx XC9536XL CPLD stamped 'QB22A1' (PLCC44) B22A01.U42 - Fujitsu MBM29F400 512k x8-bit flash ROM stamped 'B22A01' (TSOP48). This is probably - the common-to-all-games Pyson BIOS for the TMPR3927 + the common-to-all-games Python BIOS for the TMPR3927 XCS10XL - Xilinx Spartan XCS10XL FPGA (TQFP144) M48T58Y - ST Microelectronics M48T58Y 8k Timekeeper/NVRAM (DIP28). As well as being used for protection with the Konami game code/year etc (the usual first 16 bytes) it also seems to contain code @@ -147,25 +148,34 @@ Notes: 8PIN_JVS - Common JVS Power Connectors (on other side of the PCB) 6PIN_JVS / + TODO: + More undumped games for Python/2? + Python 2 is based on consumer PS2, can be derived with ps2sony.cpp? + Everything + ***************************************************************************/ #include "emu.h" #include "cpu/mips/mips3.h" #include "cpu/mips/mips1.h" +//#include "cpu/h8/h83664.h" +//#include "machine/ds2430.h" +#include "machine/timekpr.h" #include "emupal.h" #include "screen.h" -class pyson_state : public driver_device +class kpython_state : public driver_device { public: - pyson_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu") + kpython_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_m48t58(*this, "m48t58") { } - void pyson(machine_config &config); + void kpython(machine_config &config); private: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -174,89 +184,122 @@ private: // devices required_device m_maincpu; + required_device m_m48t58; // driver_device overrides virtual void video_start() override; }; -void pyson_state::video_start() +void kpython_state::video_start() { } -uint32_t pyson_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +uint32_t kpython_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return 0; } -void pyson_state::ps2_map(address_map &map) +void kpython_state::ps2_map(address_map &map) { map(0x00000000, 0x01ffffff).ram(); // 32 MB RAM in consumer PS2s, do these have more? map(0x1fc00000, 0x1fdfffff).rom().region("bios", 0); } -static INPUT_PORTS_START( pyson ) +static INPUT_PORTS_START( kpython ) INPUT_PORTS_END -void pyson_state::pyson(machine_config &config) +void kpython_state::kpython(machine_config &config) { R5000LE(config, m_maincpu, 294000000); // imported from namcops2.c driver m_maincpu->set_icache_size(16384); m_maincpu->set_dcache_size(16384); - m_maincpu->set_addrmap(AS_PROGRAM, &pyson_state::ps2_map); + m_maincpu->set_addrmap(AS_PROGRAM, &kpython_state::ps2_map); + + //H83664(config, m_io_mcu, 14000000); // from filter board + + //DS2430(config, m_ds2430); + M48T58(config, m_m48t58); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); - screen.set_screen_update(FUNC(pyson_state::screen_update)); + screen.set_screen_update(FUNC(kpython_state::screen_update)); screen.set_size(640, 480); screen.set_visarea(0, 639, 0, 479); PALETTE(config, "palette").set_entries(65536); } -#define PYSON_BIOS \ - ROM_LOAD( "b22a01.u42", 0x000000, 0x080000, CRC(98de405e) SHA1(4bc268a996825c1bdf6ae277d331fe7bdc0cc00c) ) +#define KPYTHON_BIOS \ + ROM_REGION32_LE(0x200000, "bios", 0) \ + ROM_LOAD( "b22a01.u42", 0x000000, 0x080000, CRC(98de405e) SHA1(4bc268a996825c1bdf6ae277d331fe7bdc0cc00c) ) \ + ROM_REGION(0x8000, "io_mcu", 0) \ + ROM_LOAD( "hd64f3664", 0x0000, 0x8000, NO_DUMP ) // Internal ROM not dumped -ROM_START( pyson ) - ROM_REGION32_LE(0x200000, "bios", 0) - PYSON_BIOS +ROM_START( kpython ) + KPYTHON_BIOS ROM_REGION(0x840000, "key", ROMREGION_ERASE00) + ROM_REGION(0x28, "ds2430", ROMREGION_ERASE00) + ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) DISK_REGION( "ide:0:hdd:image" ) ROM_END ROM_START( wswe ) - ROM_REGION32_LE(0x200000, "bios", 0) - PYSON_BIOS + KPYTHON_BIOS ROM_REGION(0x840000, "key", ROMREGION_ERASE00) - ROM_LOAD( "kn00002.ic002", 0x000000, 0x800000, CRC(bd1770aa) SHA1(be217d6d7648e529953ea25caad904394919644c) ) - ROM_LOAD( "kn00002_spr.ic002", 0x800000, 0x040000, CRC(296c8436) SHA1(c0da440b50dba4ca8eb2b1ee7b6de681769fcf65) ) + ROM_LOAD( "kn00002.ic002", 0x000000, 0x800000, CRC(bd1770aa) SHA1(be217d6d7648e529953ea25caad904394919644c) ) + ROM_LOAD( "kn00002_spr.ic002", 0x800000, 0x040000, CRC(296c8436) SHA1(c0da440b50dba4ca8eb2b1ee7b6de681769fcf65) ) - ROM_REGION(0x2000, "timekeeper", ROMREGION_ERASE00) - ROM_LOAD( "m48t58y.u48", 0x000000, 0x002000, CRC(d4181cb5) SHA1(c5560d1ac043bfe2527fac3fb1989fa8fc53cf8a) ) + ROM_REGION(0x28, "ds2430", ROMREGION_ERASE00) + // Not dumped + + ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) + ROM_LOAD( "m48t58y.u48", 0x000000, 0x002000, CRC(d4181cb5) SHA1(c5560d1ac043bfe2527fac3fb1989fa8fc53cf8a) ) DISK_REGION( "ide:0:hdd:image" ) DISK_IMAGE_READONLY( "c18jaa03", 0, SHA1(b47190aa38f1f3a499b817758e3f29fac54391bd) ) ROM_END ROM_START( wswe2k3 ) - ROM_REGION32_LE(0x200000, "bios", 0) - PYSON_BIOS + KPYTHON_BIOS ROM_REGION(0x840000, "key", ROMREGION_ERASE00) - ROM_LOAD( "kn00002.ic002", 0x000000, 0x800000, CRC(6f5b7309) SHA1(5e9d75497c3a3a92af41b20e41991c9c5837d50a) ) - ROM_LOAD( "kn00002_spr.ic002", 0x800000, 0x040000, CRC(433f7ad9) SHA1(4fd05124d59cdbedd781580e49ff940c5df67d94) ) + ROM_LOAD( "kn00002.ic002", 0x000000, 0x800000, CRC(6f5b7309) SHA1(5e9d75497c3a3a92af41b20e41991c9c5837d50a) ) + ROM_LOAD( "kn00002_spr.ic002", 0x800000, 0x040000, CRC(433f7ad9) SHA1(4fd05124d59cdbedd781580e49ff940c5df67d94) ) - ROM_REGION(0x2000, "timekeeper", ROMREGION_ERASE00) - ROM_LOAD( "m48t58y.u48", 0x000000, 0x002000, CRC(76068de0) SHA1(5f75b88ad04871fb3799fe904658c87524bad94f) ) + ROM_REGION(0x28, "ds2430", ROMREGION_ERASE00) + // Not dumped + + ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) + ROM_LOAD( "m48t58y.u48", 0x000000, 0x002000, CRC(76068de0) SHA1(5f75b88ad04871fb3799fe904658c87524bad94f) ) DISK_REGION( "ide:0:hdd:image" ) DISK_IMAGE_READONLY( "c27jaa03", 0, SHA1(9b2aa900711d88cf5effb3ba6be18726ea006ac4) ) ROM_END +ROM_START( popn9 ) + KPYTHON_BIOS -GAME(2002, pyson, 0, pyson, pyson, pyson_state, empty_init, ROT0, "Konami", "Konami Pyson BIOS", MACHINE_IS_SKELETON|MACHINE_IS_BIOS_ROOT) -GAME(2002, wswe, pyson, pyson, pyson, pyson_state, empty_init, ROT0, "Konami", "World Soccer Winning Eleven Arcade Game Style", MACHINE_IS_SKELETON) -GAME(2003, wswe2k3, pyson, pyson, pyson, pyson_state, empty_init, ROT0, "Konami", "World Soccer Winning Eleven Arcade Game 2003", MACHINE_IS_SKELETON) + ROM_REGION(0x840000, "key", ROMREGION_ERASE00) + // Not dumped + + ROM_REGION(0x28, "ds2430", ROMREGION_ERASE00) + ROM_LOAD("ds2430.u3", 0x00, 0x28, BAD_DUMP CRC(f1511505) SHA1(ed7cd9b2763b3e377df9663943160f9871f65105)) // Placeholder, Not dumped or needs verification from this hardware + + ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */ + ROM_LOAD( "m48t58y.u48", 0x000000, 0x2000, NO_DUMP ) + + DISK_REGION( "ide:0:hdd:image" ) + DISK_IMAGE_READONLY( "c00jab", 0, BAD_DUMP SHA1(3763aaded9b45388a664edd84a3f7f8ff4101be4) ) +ROM_END + + +GAME(2002, kpython, 0, kpython, kpython, kpython_state, empty_init, ROT0, "Konami", "Konami Python BIOS", MACHINE_IS_SKELETON|MACHINE_IS_BIOS_ROOT) +GAME(2002, wswe, kpython, kpython, kpython, kpython_state, empty_init, ROT0, "Konami", "World Soccer Winning Eleven Arcade Game Style", MACHINE_IS_SKELETON) +GAME(2003, wswe2k3, kpython, kpython, kpython, kpython_state, empty_init, ROT0, "Konami", "World Soccer Winning Eleven Arcade Game 2003", MACHINE_IS_SKELETON) +GAME(2003, popn9, kpython, kpython, kpython, kpython_state, empty_init, ROT0, "Konami", "Pop'n Music 9 (ver JAB)", MACHINE_IS_SKELETON) + +// Konami Python 2 (Customized? PS2 SCPH-50000) diff --git a/src/mame/drivers/viper.cpp b/src/mame/drivers/viper.cpp index f41c85361a6..5b114d6f603 100644 --- a/src/mame/drivers/viper.cpp +++ b/src/mame/drivers/viper.cpp @@ -87,7 +87,6 @@ p911 "Distribution error" p911e,j,uc,kc Hangs at POST, with IRQ3 it crashes at first 3d frame p9112 RTC self check bad - popn9 Doesn't boot: bad CHD? sscopex/sogeki Security code error thrild2,a Attract mode with partial graphics. Coins up. Hangs in car selection screen. thrild2c Inf loop on blue screen @@ -533,7 +532,7 @@ private: void mpc8240_epic_init(); void mpc8240_epic_reset(void); - // DS2430, to be device-ified, used at least by pyson.cpp, too + // DS2430, to be device-ified, used at least by kpython.cpp, too enum { DS2430_STATE_ROM_COMMAND = 1, @@ -2736,19 +2735,6 @@ ROM_START(p9112) /* dongle-protected version */ DISK_IMAGE( "b11a02", 0, SHA1(57665664321b78c1913d01f0d2c0b8d3efd42e04) ) ROM_END -ROM_START(popn9) //Note: this is actually a Konami Pyson HW! (PlayStation 2-based) move out of here. - VIPER_BIOS - - ROM_REGION(0x28, "ds2430", ROMREGION_ERASE00) /* DS2430 */ - ROM_LOAD("ds2430.u3", 0x00, 0x28, BAD_DUMP CRC(f1511505) SHA1(ed7cd9b2763b3e377df9663943160f9871f65105)) - - ROM_REGION(0x2000, "m48t58", ROMREGION_ERASE00) /* M48T58 Timekeeper NVRAM */ - ROM_LOAD("nvram.u39", 0x000000, 0x2000, NO_DUMP ) - - DISK_REGION( "ata:0:hdd:image" ) - DISK_IMAGE( "c00jab", 0, BAD_DUMP SHA1(3763aaded9b45388a664edd84a3f7f8ff4101be4) ) -ROM_END - ROM_START(sscopex) VIPER_BIOS @@ -3091,7 +3077,6 @@ GAME(2001, p911e, p911, viper, p911, viper_state, init_vipercf, GAME(2001, p911ea, p911, viper, p911, viper_state, init_vipercf, ROT90, "Konami", "Police 24/7 (ver EAA, alt)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) GAME(2001, p911j, p911, viper, p911, viper_state, init_vipercf, ROT90, "Konami", "Keisatsukan Shinjuku 24ji (ver JAC)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) GAME(2001, p9112, kviper, viper, p911, viper_state, init_vipercf, ROT90, "Konami", "Police 911 2 (VER. UAA:B)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) -GAME(2003, popn9, kviper, viper, viper, viper_state, init_vipercf, ROT0, "Konami", "Pop'n Music 9 (ver JAB)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) GAME(2001, sscopex, kviper, viper, viper, viper_state, init_vipercf, ROT0, "Konami", "Silent Scope EX (ver UAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) GAME(2001, sogeki, sscopex, viper, viper, viper_state, init_vipercf, ROT0, "Konami", "Sogeki (ver JAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) GAME(2002, sscopefh, kviper, viper, viper, viper_state, init_vipercf, ROT0, "Konami", "Silent Scope Fortune Hunter", MACHINE_NOT_WORKING|MACHINE_NO_SOUND) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index b13a9c6b4f5..3bb03db488f 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -35039,10 +35039,11 @@ px8 // pyl601 // pyl601a // -@source:pyson.cpp -pyson // Konami Pyson Bios +@source:kpython.cpp +kpython // Konami Python Bios wswe // World Soccer Winning Eleven wswe2k3 // World Soccer Winning Eleven 2003 +popn9 // 2003 @source:pzletime.cpp pzletime // @@ -41312,7 +41313,6 @@ p911ea // 2001 p911j // 2001 p911kc // 2001 p911uc // 2001 -popn9 // 2003 ppp2nd // 2001 sogeki // 2001 sscopefh // 2002