summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorGravatarGravatar R. Belmont <rb6502@users.noreply.github.com>2009-08-02 23:58:59 +0000
committerGravatarGravatar R. Belmont <rb6502@users.noreply.github.com>2009-08-02 23:58:59 +0000
commit70d825920b93a9492bf96f99e0011ed16c14a5df (patch)
tree5f94d5ccbbea81fd07356f88ad0cb11cd765bb72
parent213c72af7f710f9cb41325f22845828d40afd6e4 (diff)
39in1 updatemame0133u1
Protection cheat, now playable, removed GAME_NOT_WORKING. Yes, the cheat sucks and yes this redefines slow, but I was able to coin up and play Mappy :)
-rw-r--r--src/mame/drivers/39in1.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/mame/drivers/39in1.c b/src/mame/drivers/39in1.c
index 6429d12a67d..6942f23f09e 100644
--- a/src/mame/drivers/39in1.c
+++ b/src/mame/drivers/39in1.c
@@ -18,10 +18,6 @@
* TODO:
* PXA255 peripherals
*
- * 65b8: load from 138288+14 must be zero, if BNE at 65c0 is taken = deathq
- *
- * 6740: System Check Error death (don't let it branch here)
- *
**************************************************************************/
#include "driver.h"
@@ -1228,11 +1224,11 @@ static UINT32 seed, magic;
static UINT32 state = 0;
static READ32_HANDLER( cpld_r )
{
-// printf("CPLD read @ %x (PC %x state %d)\n", offset, cpu_get_pc(space->cpu), state);
+// if (cpu_get_pc(space->cpu) != 0xe3af4) printf("CPLD read @ %x (PC %x state %d)\n", offset, cpu_get_pc(space->cpu), state);
if (cpu_get_pc(space->cpu) == 0x3f04)
{
- return 0x63;
+ return 0xf0; // any non-zero value works here
}
else if (cpu_get_pc(space->cpu) == 0xe3af4)
{
@@ -1302,6 +1298,16 @@ static WRITE32_HANDLER( cpld_w )
// }
}
+static READ32_HANDLER( prot_cheater_r )
+{
+ return 0x37;
+}
+
+static DRIVER_INIT( 39in1 )
+{
+ memory_install_read32_handler (cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xa0151648, 0xa015164b, 0, 0, prot_cheater_r);
+}
+
static ADDRESS_MAP_START( 39in1_map, ADDRESS_SPACE_PROGRAM, 32 )
AM_RANGE(0x00000000, 0x0007ffff) AM_ROM
AM_RANGE(0x00400000, 0x005fffff) AM_ROM AM_REGION("data", 0)
@@ -1452,7 +1458,6 @@ static MACHINE_DRIVER_START( 39in1 )
MDRV_SCREEN_REFRESH_RATE(60)
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
- //MDRV_SCREEN_RAW_PARAMS(16777216/4, 308, 0, 240, 228, 0, 160) // completely bogus for this h/w
MDRV_SCREEN_SIZE(1024, 1024)
MDRV_SCREEN_VISIBLE_AREA(0, 295, 0, 479)
MDRV_PALETTE_LENGTH(256)
@@ -1489,5 +1494,5 @@ ROM_END
ROM_LOAD( "16mflash.bin", 0x000000, 0x200000, CRC(a089f0f8) SHA1(e975eadd9176a8b9e416229589dfe3158cba22cb) )
ROM_END*/
-GAME(2004, 39in1, 0, 39in1, 39in1, 0, ROT270, "<unknown>", "39 in 1 MAME bootleg", GAME_NOT_WORKING|GAME_NO_SOUND)
+GAME(2004, 39in1, 0, 39in1, 39in1, 39in1, ROT270, "<unknown>", "39 in 1 MAME bootleg", GAME_NO_SOUND)
//GAME(2004, arm4in1, 0, 39in1, 39in1, 0, ROT0, "<unknown>", "4 in 1 MAME bootleg", GAME_NOT_WORKING|GAME_NO_SOUND)