Previous 199869 Revisions Next

r34657 Tuesday 27th January, 2015 at 13:15:43 UTC by MetalliC
Naomi: Mahjong panel simulation

note: there is more errors in JVS (host?) producing 'JVS checksum error's, resulting wrong reading of KEY2 line
[src/mame/drivers]naomi.c
[src/mame/includes]naomi.h
[src/mame/machine]naomi.c

trunk/src/mame/drivers/naomi.c
r243168r243169
24002400   PORT_INCLUDE( naomi_mie )
24012401   PORT_INCLUDE( naomi_debug )
24022402
2403   PORT_START("P1") /* inputs are all there, it needs a mux write mechanism of some sort ... */
2404   PORT_DIPNAME( 0x0100, 0x0000, "SYSA" )
2405   PORT_DIPSETTING(    0x0000, DEF_STR( Off ) )
2406   PORT_DIPSETTING(    0x0100, DEF_STR( On ) )
2407   PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Unknown ) )
2408   PORT_DIPSETTING(    0x0000, DEF_STR( Off ) )
2409   PORT_DIPSETTING(    0x0200, DEF_STR( On ) )
2410   PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Unknown ) )
2411   PORT_DIPSETTING(    0x0000, DEF_STR( Off ) )
2412   PORT_DIPSETTING(    0x0400, DEF_STR( On ) )
2413   PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Unknown ) )
2414   PORT_DIPSETTING(    0x0000, DEF_STR( Off ) )
2415   PORT_DIPSETTING(    0x0800, DEF_STR( On ) )
2416   PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) )
2417   PORT_DIPSETTING(    0x0000, DEF_STR( Off ) )
2418   PORT_DIPSETTING(    0x1000, DEF_STR( On ) )
2419   PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) )
2420   PORT_DIPSETTING(    0x0000, DEF_STR( Off ) )
2421   PORT_DIPSETTING(    0x2000, DEF_STR( On ) )
2422   PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) )
2423   PORT_DIPSETTING(    0x0000, DEF_STR( Off ) )
2424   PORT_DIPSETTING(    0x4000, DEF_STR( On ) )
2425   PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) )
2426   PORT_DIPSETTING(    0x0000, DEF_STR( Off ) )
2427   PORT_DIPSETTING(    0x8000, DEF_STR( On ) )
2403   PORT_START("OUTPUT")
2404   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_OUTPUT) PORT_CHANGED_MEMBER(DEVICE_SELF, naomi_state,naomi_mp_w, NULL)
24282405
2429   PORT_START("KEY1")
2430   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) //TODO: mahjong panel test & service buttons are presumably here
2406   PORT_START("P1")
2407   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL )  PORT_CUSTOM_MEMBER(DEVICE_SELF, naomi_state,naomi_mp_r, "KEY1\0KEY2\0KEY3\0KEY4\0KEY5")
2408   PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_UNUSED )
24312409
2410   PORT_START("KEY1")
2411   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
2412   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
2413   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
2414   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_MAHJONG_FLIP_FLOP )
2415   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
2416   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
2417   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
2418   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_MAHJONG_LAST_CHANCE )
24322419   PORT_START("KEY2")
24332420   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
24342421   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 )
r243168r243169
24402427   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_MAHJONG_A )
24412428   PORT_START("KEY3")
24422429   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
2443   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
2430   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_MAHJONG_BET )
24442431   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_MAHJONG_REACH )
24452432   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_MAHJONG_N )
24462433   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_MAHJONG_J )
r243168r243169
24672454   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_MAHJONG_D )
24682455INPUT_PORTS_END
24692456
2457static INPUT_PORTS_START( suchie3 )
2458   PORT_INCLUDE( naomi_mp )
2459   PORT_MODIFY("P1")
2460   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL )  PORT_CUSTOM_MEMBER(DEVICE_SELF, naomi_state,naomi_mp_r, "KEY5\0KEY2\0KEY3\0KEY4\0KEY1")
2461INPUT_PORTS_END
2462
24702463// Atomiswave - inputs are read as standard Dreamcast controllers.
24712464// Controller bit patterns:
24722465//
r243168r243169
90559048
90569049/* 841-xxxxx ("Licensed by Sega" Naomi cart games)*/
90579050/* 0001 */ GAME( 1999, pstone,   naomi, naomim2, naomi,   naomi_state, naomi,  ROT0,  "Capcom",          "Power Stone (JPN, USA, EUR, ASI, AUS)", GAME_FLAGS )
9058/* 0002 */ GAME( 1999, suchie3,  naomi, naomim2, naomi_mp,naomi_state,naomi_mp,ROT0,  "Jaleco",          "Idol Janshi Suchie-Pai 3 (JPN)", GAME_FLAGS )
9051/* 0002 */ GAME( 1999, suchie3,  naomi, naomim2, suchie3, naomi_state,naomi_mp,ROT0,  "Jaleco",          "Idol Janshi Suchie-Pai 3 (JPN)", GAME_FLAGS )
90599052/* 0003 */ GAME( 1999, doa2,     naomi, naomim2, naomi,   naomi_state, naomi,  ROT0,  "Tecmo",           "Dead or Alive 2 (JPN, USA, EXP, KOR, AUS)", GAME_FLAGS )
90609053/* 0003 */ GAME( 2000, doa2m,    doa2,  naomim2, naomi,   naomi_state, naomi,  ROT0,  "Tecmo",           "Dead or Alive 2 Millennium (JPN, USA, EXP, KOR, AUS)", GAME_FLAGS )
90619054/* 0004 */ GAME( 1999, shangril, naomi, naomim2, naomi_mp,naomi_state,naomi_mp,ROT0,  "Marvelous Ent.",  "Dengen Tenshi Taisen Janshi Shangri-la (JPN, USA, EXP, KOR, AUS)", GAME_FLAGS )
trunk/src/mame/includes/naomi.h
r243168r243169
6262   DECLARE_READ64_MEMBER( aw_modem_r );
6363   DECLARE_WRITE64_MEMBER( aw_modem_w );
6464
65   UINT8 m_mp_mux;
66   DECLARE_CUSTOM_INPUT_MEMBER(naomi_mp_r);
67   DECLARE_INPUT_CHANGED_MEMBER(naomi_mp_w);
68
6569   inline int decode_reg32_64(UINT32 offset, UINT64 mem_mask, UINT64 *shift);
6670
67   int jvsboard_type;
6871   UINT16 actel_id;
6972
7073   UINT8 aw_ctrl_type;
trunk/src/mame/machine/naomi.c
r243168r243169
192192{
193193   //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this); // rev e bios
194194   m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r),this)); // rev h bios
195   jvsboard_type = JVSBD_DEFAULT;
196195   actel_id = 0xffff;
197196
198197   create_pic_from_retdat();
r243168r243169
201200DRIVER_INIT_MEMBER(naomi_state,naomi2)
202201{
203202   m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi2_biose_idle_skip_r),this)); // rev e bios
204   jvsboard_type = JVSBD_DEFAULT;
205203   actel_id = 0xffff;
206204
207205   create_pic_from_retdat();
208206}
209207
208INPUT_CHANGED_MEMBER(naomi_state::naomi_mp_w)
209{
210   m_mp_mux = newval;
211}
212CUSTOM_INPUT_MEMBER(naomi_state::naomi_mp_r)
213{
214   const char *tagptr = (const char *)param;
215   UINT8 retval = 0;
216
217   for (int i = 0x80; i >= 0x08; i >>= 1)
218   {
219      if (m_mp_mux & i)
220         retval |= ioport(tagptr)->read_safe(0);
221      tagptr += strlen(tagptr) + 1;
222   }
223   return retval;
224}
225
210226DRIVER_INIT_MEMBER(naomi_state,naomi_mp)
211227{
212228   //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this); // rev e bios
213229   m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r),this)); // rev h bios
214   jvsboard_type = JVSBD_MAHJONG;
215230   actel_id = 0xffff;
231   m_mp_mux = 0;
216232
217233   create_pic_from_retdat();
218234}
r243168r243169
221237{
222238   m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this)); // rev e bios
223239   //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r),this)); // rev h bios
224   jvsboard_type = JVSBD_DEFAULT;
225240   actel_id = 0xffff;
226241
227242   create_pic_from_retdat();
r243168r243169
231246{
232247   m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2ad238, 0xc2ad23f, read64_delegate(FUNC(naomi_state::naomi_biose_idle_skip_r),this)); // rev e bios
233248   //m_maincpu->space(AS_PROGRAM).install_read_handler(0xc2b0600, 0xc2b0607, read64_delegate(FUNC(naomi_state::naomi_biosh_idle_skip_r),this)); // rev h bios
234   jvsboard_type = JVSBD_MAHJONG;
235249   actel_id = 0xffff;
250   m_mp_mux = 0;
236251
237252   create_pic_from_retdat();
238253}


Previous 199869 Revisions Next


© 1997-2024 The MAME Team