diff options
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 |
commit | 8671cd30853095ceffa44fd0ef14a4dd85872bbe (patch) | |
tree | ed1a45cb34f823b8e20e25bed4d4fb11399f1984 /src | |
parent | a5967aa333f7e460152026f6b97ea87ed844c31c (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/>
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/taitogn.c | 41 |
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 ) |