Previous 199869 Revisions Next

r19003 Saturday 17th November, 2012 at 06:19:04 UTC by Barry Rodewald
(MESS) neocd: giving it the right amount of RAM [David Haywood]
[src/mess/drivers]ng_aes.c

trunk/src/mess/drivers/ng_aes.c
r19002r19003
259259}
260260
261261
262static void neogeoSynchroniseZ80(INT32 nExtraCycles)
263{
264262
265}
266263
267static void ZetSetBUSREQLine(INT32 nStatus)
268{
269264
270}
271265
272
273
274
275266static void MapVectorTable(bool bMapBoardROM)
276267{
277268   /*
r19002r19003
13981389         break;
13991390      case 0x0127:
14001391//         bprintf(PRINT_NORMAL, _T("  - NGCD Z80 BUSREQ -> 1 (PC: 0x%06X)\n"), SekGetPC(-1));
1401         neogeoSynchroniseZ80(0);
1402         ZetSetBUSREQLine(1);
1392         curr_space->machine().scheduler().synchronize();
1393         curr_space->machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
1394
14031395         break;
14041396      case 0x0129:
14051397//         bprintf(PRINT_NORMAL, _T("  - NGCD FIX BUSREQ -> 1 (PC: 0x%06X)\n"), SekGetPC(-1));
r19002r19003
14091401      case 0x0141:
14101402//         bprintf(PRINT_NORMAL, _T("  - NGCD OBJ BUSREQ -> 0 (PC: 0x%06X)\n"), SekGetPC(-1));   
14111403         video_reset();
1412         /* NO MAME
1413         NeoSetSpriteSlot(0);
1414         for (INT32 i = 0; i < 4; i++) {
1415            if (NeoCDOBJBankUpdate[i]) {
1416               NeoDecodeSpritesCD(NeoSpriteRAM + (i << 20), NeoSpriteROM[0] + (i << 20), 0x100000);
1417               NeoUpdateSprites((i << 20), 0x100000);
1418            }
1419         }
1420         */
1421
14221404         break;
14231405      case 0x0143:
14241406//         bprintf(PRINT_NORMAL, _T("  - NGCD PCM BUSREQ -> 0 (PC: 0x%06X)\n"), SekGetPC(-1));
14251407         break;
14261408      case 0x0147:
14271409//         bprintf(PRINT_NORMAL, _T("  - NGCD Z80 BUSREQ -> 0 (PC: 0x%06X)\n"), SekGetPC(-1));
1428         neogeoSynchroniseZ80(0);
1429         ZetSetBUSREQLine(0);
1410         curr_space->machine().scheduler().synchronize();
1411         curr_space->machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
14301412         break;
14311413      case 0x0149:
14321414//         bprintf(PRINT_NORMAL, _T("  - NGCD FIX BUSREQ -> 0 (PC: 0x%06X)\n"), SekGetPC(-1));
14331415         video_reset();
1434         
1435         /* NO MAME
1436
1437            NeoSetTextSlot(0);
1438            NeoUpdateText(0, 0x020000, NeoTextRAM, NeoTextROM[0]);
1439         */
14401416         break;
14411417
14421418      // CD mechanism communication
r19002r19003
25992575
26002576static ADDRESS_MAP_START( neocd_main_map, AS_PROGRAM, 16, ng_aes_state )
26012577   AM_RANGE(0x000000, 0x00007f) AM_RAMBANK(NEOGEO_BANK_VECTORS)
2602   AM_RANGE(0x000080, 0x0fffff) AM_RAM
2603   AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x0f0000) AM_RAM AM_SHARE("neocd_work_ram")
2578   AM_RANGE(0x000080, 0x1fffff) AM_RAM AM_SHARE("neocd_work_ram")
26042579   /* some games have protection devices in the 0x200000 region, it appears to map to cart space, not surprising, the ROM is read here too */
26052580   AM_RANGE(0x200000, 0x2fffff) AM_ROMBANK(NEOGEO_BANK_CARTRIDGE)
26062581   AM_RANGE(0x2ffff0, 0x2fffff) AM_WRITE(main_cpu_bank_select_w)
r19002r19003
26652640
26662641
26672642
2643// does the Z80 actually see all of this as RAM on the NeoCD, or is it only actually writable via the transfer areas?
2644static ADDRESS_MAP_START( neocd_audio_map, AS_PROGRAM, 8, ng_aes_state )
2645   AM_RANGE(0x0000, 0x7fff) AM_RAMBANK(NEOGEO_BANK_AUDIO_CPU_MAIN_BANK)
2646   AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(NEOGEO_BANK_AUDIO_CPU_CART_BANK3)
2647   AM_RANGE(0xc000, 0xdfff) AM_RAMBANK(NEOGEO_BANK_AUDIO_CPU_CART_BANK2)
2648   AM_RANGE(0xe000, 0xefff) AM_RAMBANK(NEOGEO_BANK_AUDIO_CPU_CART_BANK1)
2649   AM_RANGE(0xf000, 0xf7ff) AM_RAMBANK(NEOGEO_BANK_AUDIO_CPU_CART_BANK0)
2650   AM_RANGE(0xf800, 0xffff) AM_RAM
2651ADDRESS_MAP_END
2652
2653
2654static ADDRESS_MAP_START( neocd_audio_io_map, AS_IO, 8, ng_aes_state )
2655  /*AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READWRITE(audio_command_r, audio_cpu_clear_nmi_w);*/  /* may not and NMI clear */
2656   AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READ(audio_command_r)
2657   AM_RANGE(0x04, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
2658   AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) /* write - NMI enable / acknowledge? (the data written doesn't matter) */
2659//   AM_RANGE(0x08, 0x08) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_f000_f7ff_r)
2660//   AM_RANGE(0x09, 0x09) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_e000_efff_r)
2661//   AM_RANGE(0x0a, 0x0a) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_c000_dfff_r)
2662//   AM_RANGE(0x0b, 0x0b) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_8000_bfff_r)
2663   AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_WRITE(audio_result_w)
2664   AM_RANGE(0x18, 0x18) AM_MIRROR(0xff00) /* write - NMI disable? (the data written doesn't matter) */
2665ADDRESS_MAP_END
2666
2667
26682668/*************************************
26692669 *
26702670 *  Audio interface
r19002r19003
30693069   MCFG_CPU_MODIFY("maincpu")
30703070   MCFG_CPU_PROGRAM_MAP(neocd_main_map)
30713071
3072   MCFG_CPU_MODIFY("audiocpu")
3073   MCFG_CPU_PROGRAM_MAP(neocd_audio_map)
3074   MCFG_CPU_IO_MAP(neocd_audio_io_map)
3075
3076
30723077   MCFG_MACHINE_START_OVERRIDE(ng_aes_state,neocd)
30733078
30743079   MCFG_TIMER_DRIVER_ADD_PERIODIC("hock_timer", ng_aes_state, neocd_access_timer_callback, attotime::from_hz(75))

Previous 199869 Revisions Next


© 1997-2024 The MAME Team