summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2009-07-20 06:05:54 +0000
committer Aaron Giles <aaron@aarongiles.com>2009-07-20 06:05:54 +0000
commit8671cd30853095ceffa44fd0ef14a4dd85872bbe (patch)
treeed1a45cb34f823b8e20e25bed4d4fb11399f1984
parenta5967aa333f7e460152026f6b97ea87ed844c31c (diff)
From: David Haywood [neohaze@nildram.co.uk]
Sent: Thursday, July 16, 2009 12:15 PM To: Aaron Giles Subject: [Fwd: small fix in patch file, final one] (Gnet update/fix to reset mechanism, tested on real hw) The problem in the old patch was that after g-net makes a card reset, intentionally the lock mechanism should be reenabled. I did not implement it because The old MAME implementation had a wrong card reset: Bios makes an unlock and then a card reset, this was wrong because card reset was mapped wrong In the right way card reset is done via the PCMCIA controller, after this card reset G-NET again has to make a UNLOCK Applied the latest patch, PLEASE DO NOT SUBMIT OR USE THE OLD ONE MB3773 driver is included Best regards *DI Joerg Peter Hartenberger* Tel +43 (316) 403 890 53 Fax +43 (316) 403 890 40** _j.hartenberger@zydacron.com_ ZYDACRON Austria GmbH St.Peter Guertel 4, 8042 Graz, AUSTRIA http://www.zydacron.com <http://www.zydacron.com/>
-rw-r--r--src/mame/drivers/taitogn.c41
1 files changed, 32 insertions, 9 deletions
diff --git a/src/mame/drivers/taitogn.c b/src/mame/drivers/taitogn.c
index dc1d743f6dd..6f08f2acecf 100644
--- a/src/mame/drivers/taitogn.c
+++ b/src/mame/drivers/taitogn.c
@@ -306,6 +306,15 @@ Notes:
Super Puzzle Bobble (Japan)
Usagi
+Type 3 (PCMCIA Compact Flash Adaptor + Compact Flash card, sealed together with the game´s label)
+------
+
+ The Compact Flash card is read protected, it is a custom Sandisk SDCFB-64 Card (64MByte)
+
+ Confirmed usage on.... (not all games listed)
+ Otenami Haiken Final
+ Kollon
+ Zooo
*/
#include "driver.h"
@@ -315,6 +324,7 @@ Notes:
#include "machine/intelfsh.h"
#include "machine/znsec.h"
#include "machine/idectrl.h"
+#include "machine/mb3773.h"
#include "sound/psx.h"
@@ -328,6 +338,22 @@ static unsigned char rf5c296_reg = 0;
static void rf5c296_reg_w(ATTR_UNUSED running_machine *machine, UINT8 reg, UINT8 data)
{
// fprintf(stderr, "rf5c296_reg_w %02x, %02x (%s)\n", reg, data, cpuexec_describe_context(machine));
+ switch (reg)
+ {
+ // Interrupt and General Control Register
+ case 0x03:
+ // Check for card reset
+ if (!(data & 0x40))
+ {
+ devtag_reset(machine, "card");
+ locked = 0x1ff;
+ ide_set_gnet_readlock (devtag_get_device(machine, "card"), 1);
+ }
+ break;
+
+ default:
+ break;
+ }
}
static UINT8 rf5c296_reg_r(ATTR_UNUSED running_machine *machine, UINT8 reg)
@@ -522,8 +548,12 @@ static WRITE32_HANDLER(control_w)
// selection too, but they're always 0.
UINT32 p = control;
+ const device_config *mb3773 = devtag_get_device(space->machine, "mb3773");
+
COMBINE_DATA(&control);
+ mb3773_set_ck(mb3773, 0, (control & 0x20) >> 5);
+
#if 0
if((p ^ control) & ~0x20)
fprintf(stderr, "control = %c%c.%c %c%c%c%c (%s)\n",
@@ -554,15 +584,6 @@ static READ32_HANDLER(control3_r)
static WRITE32_HANDLER(control3_w)
{
COMBINE_DATA(&control3);
-
- /* Not card reset */
- #if 0
- // card reset, maybe
- if(control3 & 2) {
- devtag_reset(space->machine, "card");
- locked = 0x1ff;
- }
- #endif
}
static READ32_HANDLER(gn_1fb70000_r)
@@ -925,6 +946,8 @@ static MACHINE_DRIVER_START( coh3002t )
MDRV_AT28C16_ADD( "at28c16", 0 )
MDRV_IDE_CONTROLLER_ADD( "card", 0 )
MDRV_NVRAM_HANDLER( coh3002t )
+
+ MDRV_MB3773_ADD("mb3773")
MACHINE_DRIVER_END
static INPUT_PORTS_START( coh3002t )