summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--scripts/target/mame/arcade.lua2
-rw-r--r--src/mame/arcade.flt2
-rw-r--r--src/mame/drivers/kpython.cpp (renamed from src/mame/drivers/pyson.cpp)111
-rw-r--r--src/mame/drivers/viper.cpp17
-rw-r--r--src/mame/mame.lst6
5 files changed, 83 insertions, 55 deletions
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
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<mips3_device> m_maincpu;
+ required_device<m48t58_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(0x28, "ds2430", ROMREGION_ERASE00)
+ // Not dumped
- ROM_REGION(0x2000, "timekeeper", ROMREGION_ERASE00)
- ROM_LOAD( "m48t58y.u48", 0x000000, 0x002000, CRC(d4181cb5) SHA1(c5560d1ac043bfe2527fac3fb1989fa8fc53cf8a) )
+ 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
+
+ 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)
-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)
+// 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