summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Scott Stone <tafoid@users.noreply.github.com>2014-10-13 15:43:12 +0000
committer Scott Stone <tafoid@users.noreply.github.com>2014-10-13 15:43:12 +0000
commit1ecd587d3fe857239df5ebc3bbd8415b975f5751 (patch)
treeae6a8ee85fbd1d527f802b50e087baa9d52576d9
parent7c50bbaa07f317907d8fd537c2f508ee6ccd49b9 (diff)
naomi.c:
- Atomiswave controller type register [MetalliC] - Added InitialD Ver3 Cycraft PIC key [anonymous, MetalliC]
-rw-r--r--src/mame/drivers/naomi.c22
-rw-r--r--src/mame/includes/naomi.h2
2 files changed, 22 insertions, 2 deletions
diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c
index 3a4366e5320..e3d63280cf9 100644
--- a/src/mame/drivers/naomi.c
+++ b/src/mame/drivers/naomi.c
@@ -1780,7 +1780,10 @@ READ64_MEMBER(naomi_state::aw_modem_r )
}
return U64(0xffffffffffffffff);
- }
+ } else
+ if (reg == 0x284/4)
+ return U64(0xffffffffffffff00) | aw_ctrl_type;
+
osd_printf_verbose("MODEM: Unmapped read %08x\n", 0x600000+reg*4);
return 0;
@@ -1794,6 +1797,19 @@ WRITE64_MEMBER(naomi_state::aw_modem_w )
reg = decode_reg32_64(offset, mem_mask, &shift);
dat = (UINT32)(data >> shift);
+ if (reg == 0x284/4)
+ {
+ /*
+ 0x00600284 rw ddccbbaa
+ aa/bb/cc/dd - set type of Maple devices at ports 0/1/2/3
+ 0 - regular DC controller, but with 4 analogue channels (default)
+ 1 - DC lightgun
+ 2 - DC mouse/trackball
+ TODO: hook this then MAME have such devices emulated
+ */
+ aw_ctrl_type = dat & 0xFF;
+ }
+
osd_printf_verbose("MODEM: [%08x=%x] write %" I64FMT "x to %x, mask %" I64FMT "x\n", 0x600000+reg*4, dat, data, offset, mem_mask);
}
@@ -8346,7 +8362,7 @@ ROM_START( inidv3cy )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C621A (317-0406-COM)
//(sticker 253-5508-0406)
- ROM_LOAD("317-0406-com.pic", 0x00, 0x4000, NO_DUMP )
+ ROM_LOAD("317-0406-com.pic", 0x00, 0x4000, CRC(fe91a7af) SHA1(3562d8d454ac6e5b73a24d4dc8928ef24687cdf7) )
ROM_END
@@ -8362,6 +8378,8 @@ DRIVER_INIT_MEMBER(naomi_state,atomiswave)
// patch out long startup delay
ROM[0x98e/8] = (ROM[0x98e/8] & U64(0xffffffffffff)) | (UINT64)0x0009<<48;
+
+ aw_ctrl_type = 0;
}
ROM_START( fotns )
diff --git a/src/mame/includes/naomi.h b/src/mame/includes/naomi.h
index be2cae674dd..6a5d1157dc0 100644
--- a/src/mame/includes/naomi.h
+++ b/src/mame/includes/naomi.h
@@ -67,6 +67,8 @@ class naomi_state : public dc_state
int jvsboard_type;
UINT16 actel_id;
+ UINT8 aw_ctrl_type;
+
UINT8 asciihex_to_dec(UINT8 in);
void create_pic_from_retdat();