Rename Konami Python driver to kpython.cpp, Add notes (#7359)

* Move popn9 into kpython.cpp


* viper.cpp: Fix source name

* kpython.cpp: Add notes for popn9 ds2430 data

* kpython.cpp: internal ROM of H8 mcu isn't 32 bit
This commit is contained in:
cam900 2020-10-17 21:20:17 +09:00 committed by GitHub
parent 8503844d1c
commit f9deebb781
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 83 additions and 55 deletions

View File

@ -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",

View File

@ -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

View File

@ -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(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)

View File

@ -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)

View File

@ -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