summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2012-04-08 13:01:39 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2012-04-08 13:01:39 +0000
commit86b2abfdbb2bd494dc39da7beb015edc0dbe7835 (patch)
tree0e0a97afd88cdd33349bdd3b2a44fea009111bb2
parentee4a9b45b684a137d5360ed7566e1cedd7cbaaa5 (diff)
New NOT WORKING game
-------------------- Dragon World Pretty Chance [Smitdogg, Tjeerd Carter]
-rw-r--r--src/mame/drivers/pgm.c45
-rw-r--r--src/mame/drivers/sigmab98.c1
-rw-r--r--src/mame/includes/pgm.h1
-rw-r--r--src/mame/machine/pgmprot1.c2
-rw-r--r--src/mame/machine/pgmprot2.c38
-rw-r--r--src/mame/machine/pgmprot3.c2
-rw-r--r--src/mame/mame.lst1
7 files changed, 81 insertions, 9 deletions
diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c
index 1094cc2f87e..ab193265bd0 100644
--- a/src/mame/drivers/pgm.c
+++ b/src/mame/drivers/pgm.c
@@ -2496,18 +2496,18 @@ ROM_START( kov2p205 )
ROM_END
/*
-
+
Do Donpachi II
Cave, 2001
-
+
This is a PGM cart containing not a lot....
5x SOP44 mask ROMs (4x 64M, 1x 32M)
-2x EPROMs (1x 4M, 1x 16M)
+2x EPROMs (1x 1M, 1x 16M)
2x PALs (labelled FN U14 and FN U15)
1x custom IGS027A (QFP120)
3x RAMs WINBOND W24257AJ-8N
Some logic IC's, resistors, caps etc.
-
+
*/
@@ -2641,6 +2641,36 @@ ROM_START( dw2001 )
ROM_LOAD( "2001.u7", 0x200000, 0x200000, CRC(4ea62f21) SHA1(318f8a1ff5d4ff029a1c4133fe7acc2fc185d112) )
ROM_END
+
+
+
+ROM_START( dwpc )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "dwpc_v101jp.u22", 0x100000, 0x80000, CRC(b93027c0) SHA1(602e5f651ccb63e6465ebd7762d8d2dcf7d54077) )
+
+ ROM_REGION( 0x4000, "prot", ROMREGION_ERASEFF ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "dwpc_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION32_LE( 0x4000000, "user1", ROMREGION_ERASEFF )
+ ROM_LOAD( "dwpc_v100jp.u12", 0x000000, 0x80000, CRC(0d112126) SHA1(2b569b8ef974d1d9906cc052eee63b869c8d4fa4) ) // external ARM data rom (encrypted)
+
+ ROM_REGION( 0x600000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "dwpc_v100jp.u11", 0x180000, 0x400000, CRC(3aa5a787) SHA1(ef7bb83f7141b24621c86237244fd9f280923ed1) )
+
+ ROM_REGION( 0x400000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "dwpc_v100jp.u2", 0x000000, 0x200000, CRC(e7115763) SHA1(f1bf06e9434a3b962166849f51b9dc3a74d7f2a4) )
+ ROM_LOAD( "dwpc_v100jp.u3", 0x200000, 0x200000, CRC(49c184a4) SHA1(320504adf596c38db56247e9cef02e7c7a363ccb) )
+
+ ROM_REGION( 0x0200000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "dwpc_v100jp.u9", 0x000000, 0x200000, CRC(412b9913) SHA1(52fc42a966575e02991aa92382b855744f44854a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "dwpc_v100jp.u7", 0x200000, 0x200000, CRC(5cf9bada) SHA1(c5868a31e09e6909c724411a402d8964c29584fc) )
+ROM_END
+
/*
Puzzli 2
@@ -3666,7 +3696,7 @@ GAME( 2001, ddp2100, ddp2, pgm_arm_type2, ddp2, ddp2, ROT
// ARM version strings don't match 100% with labels... for 68k ROMs I'm using the build time / date stamp from near the start of the rom, there are some slightly different time stamps later
GAME( 2002, dmnfrnt, pgm, pgm_arm_type3, pgm, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V105, ROM M105XX 08/05/02) (ARM label V105, ROM 08/05/02 S105XX)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k time: 10:24:11 ARM time: 10:33:23
GAME( 2002, dmnfrnta, dmnfrnt, pgm_arm_type3, pgm, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V102, ROM M102XX 06/19/02) (ARM label V102, ROM 05/24/02 S101XX)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k time: 13:44:08 ARM time: 13:04:31
-GAME( 2002, dmnfrntpcb, dmnfrnt, pgm_arm_type3, pgm, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V107KR, ROM M107KR 11/03/03) (ARM label V107KR, ROM 10/16/03 S106KR) (JAMMA PCB)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // works but reports version mismatch (wants internal rom version and region to match external?)
+GAME( 2002, dmnfrntpcb, dmnfrnt, pgm_arm_type3, pgm, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V107KR, ROM M107KR 11/03/03) (ARM label V106KR, ROM 10/16/03 S106KR) (JAMMA PCB)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // works but reports version mismatch (wants internal rom version and region to match external?)
@@ -3725,7 +3755,10 @@ GAME( 1998, drgw3100, drgw3, pgm_022_025_dw, dw3, drgw3, R
GAME( 1998, dwex, pgm, pgm_022_025_dw, dw3, drgw3, ROT0, "IGS", "Dragon World 3 EX (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 2001, dw2001, pgm, pgm_arm_type2, dw2001, dw2001, ROT0, "IGS", "Dragon World 2001", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // V0000 02/21/01 16:05:16
+GAME( 2001, dw2001, pgm, pgm_arm_type2, dw2001, dw2001, ROT0, "IGS", "Dragon World 2001", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 02/21/01 16:05:16
+
+GAME( 2001, dwpc, pgm, pgm_arm_type2, dw2001, dwpc, ROT0, "IGS", "Dragon World Pretty Chance (V101, Japan)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 09/26/01 10:23:26
+
GAME( 1999, puzlstar, pgm, pgm_arm_type1_sim, pstar, pstar, ROT0, "IGS", "Puzzle Star (ver. 100MG)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c
index 61c02999062..298f179fa63 100644
--- a/src/mame/drivers/sigmab98.c
+++ b/src/mame/drivers/sigmab98.c
@@ -1197,6 +1197,7 @@ WRITE8_MEMBER(sigmab98_state::itazuram_palette_w)
logerror("%s: itazuram_palette_w offset = %03x with unknown bank = %02x\n", machine().describe_context(), offset, m_rombank);
}
}
+
READ8_MEMBER(sigmab98_state::itazuram_palette_r)
{
return m_generic_paletteram_8[offset];
diff --git a/src/mame/includes/pgm.h b/src/mame/includes/pgm.h
index 66a44c9fd4b..658d5fb2220 100644
--- a/src/mame/includes/pgm.h
+++ b/src/mame/includes/pgm.h
@@ -325,6 +325,7 @@ DRIVER_INIT( ddp2 );
/* simulations (or missing) */
DRIVER_INIT( dw2001 );
+DRIVER_INIT( dwpc );
INPUT_PORTS_EXTERN( ddp2 );
INPUT_PORTS_EXTERN( kov2 );
diff --git a/src/mame/machine/pgmprot1.c b/src/mame/machine/pgmprot1.c
index d7d63040378..a49db39d8d4 100644
--- a/src/mame/machine/pgmprot1.c
+++ b/src/mame/machine/pgmprot1.c
@@ -1,5 +1,5 @@
/***********************************************************************
- PGM IGA027A (55857E* type) ARM protection simulations & emulation
+ PGM IGS027A (55857E* type) ARM protection simulations & emulation
*guess, the part number might not be directly tied to behavior, see note below
these are simulations of the 'kov' type ARM device
diff --git a/src/mame/machine/pgmprot2.c b/src/mame/machine/pgmprot2.c
index 3cf39f007c8..f531f3d411a 100644
--- a/src/mame/machine/pgmprot2.c
+++ b/src/mame/machine/pgmprot2.c
@@ -1,5 +1,5 @@
/***********************************************************************
- PGM IGA027A (55857F* type) ARM protection emulation
+ PGM IGS027A (55857F* type) ARM protection emulation
*guess, the part number might not be directly tied to behavior, see note below
these are emulation of the 'kov2' type ARM device
@@ -16,6 +16,7 @@
ROMs are not yet dumped
Dragon World 2001 (dw2001)
+ Dragon World Pretty Chance (dwpc)
----
@@ -341,6 +342,41 @@ DRIVER_INIT( dw2001 )
temp16[(0x0090)/2] = 0x0400;
temp16[(0x0092)/2] = 0x1000;
+}
+
+DRIVER_INIT( dwpc )
+{
+ //pgm_arm_type2_state *state = machine.driver_data<pgm_arm_type2_state>();
+ UINT16 *mem16 = (UINT16 *)machine.region("maincpu")->base();
+
+ pgm_basic_init(machine);
+ kov2_latch_init(machine);
+ pgm_mm_decrypt(machine); // encryption is the same as martial masters
+
+ mem16[0x11EDDA / 2] = 0x4e71;
+ mem16[0x11EDDC / 2] = 0x4e71;
+
+ mem16[0x11EDE8 / 2] = 0x4e71;
+
+ mem16[0x11EFC4 / 2] = 0x4e71;
+ mem16[0x11EFC6 / 2] = 0x4e71;
+
+ mem16[0x11EFD2 / 2] = 0x4e71;
+
+
+ /* patch ARM area with fake code */
+ UINT16 *temp16 = (UINT16 *)machine.region("prot")->base();
+ temp16[(0x0000)/2] = 0xd088;
+ temp16[(0x0002)/2] = 0xe59f;
+ temp16[(0x0004)/2] = 0x0680;
+ temp16[(0x0006)/2] = 0xe3a0;
+ temp16[(0x0008)/2] = 0x0001;
+ temp16[(0x000a)/2] = 0xe280;
+ temp16[(0x000c)/2] = 0xff10;
+ temp16[(0x000e)/2] = 0xe12f;
+
+ temp16[(0x0090)/2] = 0x0400;
+ temp16[(0x0092)/2] = 0x1000;
}
diff --git a/src/mame/machine/pgmprot3.c b/src/mame/machine/pgmprot3.c
index 0585908c845..40b863ea7d7 100644
--- a/src/mame/machine/pgmprot3.c
+++ b/src/mame/machine/pgmprot3.c
@@ -1,5 +1,5 @@
/***********************************************************************
- PGM IGA027A (55857G* type) ARM protection emulation
+ PGM IGS027A (55857G* type) ARM protection emulation
*guess, the part number might not be directly tied to behavior, see note below
these are emulation of the 'dmnfrnt' type ARM device
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 3376435850f..f2c15657229 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -8992,6 +8992,7 @@ theglad // (c) 2001
theglada // (c) 2001
thegladpcb
dw2001 // (c) 2001
+dwpc // (c) 2001
py2k2 // (c) 2001
dmnfrnt // (c) 2002
dmnfrnta // (c) 2002