Previous 199869 Revisions Next

r19399 Saturday 8th December, 2012 at 08:16:09 UTC by David Haywood
stop "neocdz lresort" and "neocdz kof98" from stomping over their own z80 data.. (nw)
[hash]neocd.xml
[src/mame/includes]neogeo.h
[src/mess/drivers]ng_aes.c

trunk/src/mess/drivers/ng_aes.c
r19398r19399
394394
395395      case 0x0104:
396396//          bprintf(PRINT_NORMAL, _T("  - NGCD 0xE00000 area -> 0x%02X (PC: 0x%06X)\n"), byteValue, SekGetPC(-1));
397         nActiveTransferArea = byteValue;
397         if (ACCESSING_BITS_0_7)
398         {
399            nActiveTransferArea = byteValue;
400         }
398401         break;
399402
400403      case 0x0120:
r19398r19399
407410         break;
408411      case 0x0126:
409412//          bprintf(PRINT_NORMAL, _T("  - NGCD Z80 BUSREQ -> 1 (PC: 0x%06X)\n"), SekGetPC(-1));
413         m_has_z80_bus = false;
410414         space.machine().scheduler().synchronize();
411415         m_audiocpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
412416         break;
r19398r19399
425429         break;
426430      case 0x0146:
427431//          bprintf(PRINT_NORMAL, _T("  - NGCD Z80 BUSREQ -> 0 (PC: 0x%06X)\n"), SekGetPC(-1));
432         m_has_z80_bus = true;
428433         space.machine().scheduler().synchronize();
429434         m_audiocpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
430435         break;
r19398r19399
582587         YM2610ADPCMAROM[nADPCMTransferBank + ((sekAddress & 0x0FFFFF) >> 1)] = byteValue;
583588         break;
584589      case 4:                     // Z80
585         if ((sekAddress & 0xfffff) >= 0x20000) break;
586590
587         NeoZ80ROMActive[(sekAddress & 0x1FFFF) >> 1] = byteValue;
591         // kof98 and lresort attempt to write here when the system still has the z80 bank
592         // it seems they attempt to write regular samples (not even deltat) maybe there is
593         // some kind of fall-through behavior, or it shouldn't be allowed to select a
594         // transfer area without the bus? - this should really be checked on hw
595         if (m_has_z80_bus)
596         {
597            YM2610ADPCMAROM[nADPCMTransferBank + ((sekAddress & 0x0FFFFF) >> 1)] = byteValue;
598         }
599         else
600         {
601      //   printf("sekAddress %08x %02x\n", sekAddress, data);
602            if ((sekAddress & 0xfffff) >= 0x20000) break;
603            NeoZ80ROMActive[(sekAddress & 0x1FFFF) >> 1] = byteValue;
604         }
588605         break;
589606      case 5:                     // Text
590607         NeoTextRAM[(sekAddress & 0x3FFFF) >> 1] = byteValue;
trunk/src/mame/includes/neogeo.h
r19398r19399
4545      m_has_sprite_bus = true;
4646      m_has_text_bus = true;
4747      m_has_ymrom_bus = true;
48      m_has_z80_bus = true;
4849   }
4950
5051   /* memory pointers */
r19398r19399
239240   bool m_has_sprite_bus;
240241   bool m_has_text_bus;
241242   bool m_has_ymrom_bus;
243   bool m_has_z80_bus;
242244};
243245
244246
trunk/hash/neocd.xml
r19398r19399
552552     </part>
553553  </software>
554554
555  <!-- sound doesn't work? -->
556  <software name="kof98" supported="no">
555  <software name="kof98">
557556     <description>King of Fighters '98, The - The Slugfest (1998)(SNK)(JP)[!][King of Fighters '98, The - Dream Match Never Ends][NGCD-2420 MT A04, NGCD-2421]</description>
558557     <year>199?</year>
559558     <publisher>SNK</publisher>
r19398r19399
597596     </part>
598597  </software>
599598
600  <!-- sound doesn't work? -->
601  <software name="lresort" supported="no">
599  <software name="lresort">
602600     <description>Last Resort (1994)(SNK)(JP-US)[!]</description>
603601     <year>199?</year>
604602     <publisher>SNK</publisher>

Previous 199869 Revisions Next


© 1997-2024 The MAME Team