Previous 199869 Revisions Next

r21797 Monday 11th March, 2013 at 07:45:16 UTC by Fabio Priuli
checkpoint. nw.
[src/mess/drivers]snes.c

trunk/src/mess/drivers/snes.c
r21796r21797
15701570   DECLARE_WRITE8_MEMBER( snes21_lo_w );
15711571   DECLARE_READ8_MEMBER( snes21_hi_r );
15721572   DECLARE_WRITE8_MEMBER( snes21_hi_w );
1573   DECLARE_READ8_MEMBER( snesfx_hi_r );
1574   DECLARE_READ8_MEMBER( snesfx_lo_r );
1575   DECLARE_WRITE8_MEMBER( snesfx_hi_w );
1576   DECLARE_WRITE8_MEMBER( snesfx_lo_w );
1577   DECLARE_READ8_MEMBER( snespc7110_hi_r );
1578   DECLARE_READ8_MEMBER( snespc7110_lo_r );
1579   DECLARE_WRITE8_MEMBER( snespc7110_hi_w );
1580   DECLARE_WRITE8_MEMBER( snespc7110_lo_w );
1581   DECLARE_READ8_MEMBER( snesdd1_lo_r );
1582   DECLARE_WRITE8_MEMBER( snesdd1_lo_w );
1583   DECLARE_READ8_MEMBER( snesdd1_hi_r );
1584   DECLARE_WRITE8_MEMBER( snesdd1_hi_w );
1573   DECLARE_READ8_MEMBER( snessfx_hi_r );
1574   DECLARE_READ8_MEMBER( snessfx_lo_r );
1575   DECLARE_WRITE8_MEMBER( snessfx_hi_w );
1576   DECLARE_WRITE8_MEMBER( snessfx_lo_w );
1577   DECLARE_READ8_MEMBER( snes7110_hi_r );
1578   DECLARE_READ8_MEMBER( snes7110_lo_r );
1579   DECLARE_WRITE8_MEMBER( snes7110_hi_w );
1580   DECLARE_WRITE8_MEMBER( snes7110_lo_w );
1581   DECLARE_READ8_MEMBER( snessdd1_lo_r );
1582   DECLARE_WRITE8_MEMBER( snessdd1_lo_w );
1583   DECLARE_READ8_MEMBER( snessdd1_hi_r );
1584   DECLARE_WRITE8_MEMBER( snessdd1_hi_w );
15851585   DECLARE_READ8_MEMBER( snesbsx_hi_r );
15861586   DECLARE_WRITE8_MEMBER( snesbsx_hi_w );
15871587   DECLARE_READ8_MEMBER( snesbsx_lo_r );
r21796r21797
18601860
18611861// SuperFX / GSU
18621862
1863READ8_MEMBER( snsnew_state::snesfx_hi_r )
1863READ8_MEMBER( snsnew_state::snessfx_hi_r )
18641864{
18651865   UINT16 address = offset & 0xffff;
18661866
r21796r21797
18861886      return m_slotcart->m_cart->read_ram(space, offset);
18871887}
18881888
1889READ8_MEMBER( snsnew_state::snesfx_lo_r )
1889READ8_MEMBER( snsnew_state::snessfx_lo_r )
18901890{
18911891   UINT16 address = offset & 0xffff;
18921892
r21796r21797
19121912      return m_slotcart->m_cart->read_ram(space, offset);
19131913}
19141914
1915WRITE8_MEMBER( snsnew_state::snesfx_hi_w )
1915WRITE8_MEMBER( snsnew_state::snessfx_hi_w )
19161916{
19171917   UINT16 address = offset & 0xffff;
19181918   if (offset < 0x400000)
r21796r21797
19331933      m_slotcart->m_cart->write_ram(space, offset, data);
19341934}
19351935
1936WRITE8_MEMBER( snsnew_state::snesfx_lo_w )
1936WRITE8_MEMBER( snsnew_state::snessfx_lo_w )
19371937{
1938   snesfx_hi_w(space, offset, data, 0xff);
1938   snessfx_hi_w(space, offset, data, 0xff);
19391939}
19401940
19411941// SPC-7110
19421942
1943READ8_MEMBER( snsnew_state::snespc7110_hi_r )
1943READ8_MEMBER( snsnew_state::snes7110_hi_r )
19441944{
19451945   UINT16 address = offset & 0xffff;
19461946
r21796r21797
19691969   return m_slotcart->m_cart->read_h(space, offset);
19701970}
19711971
1972READ8_MEMBER( snsnew_state::snespc7110_lo_r )
1972READ8_MEMBER( snsnew_state::snes7110_lo_r )
19731973{
19741974   UINT16 address = offset & 0xffff;
19751975
r21796r21797
20012001   return snes_open_bus_r(space, 0);
20022002}
20032003
2004WRITE8_MEMBER( snsnew_state::snespc7110_hi_w )
2004WRITE8_MEMBER( snsnew_state::snes7110_hi_w )
20052005{
2006   snespc7110_lo_w(space, offset, data, 0xff);
2006   snes7110_lo_w(space, offset, data, 0xff);
20072007}
20082008
2009WRITE8_MEMBER( snsnew_state::snespc7110_lo_w )
2009WRITE8_MEMBER( snsnew_state::snes7110_lo_w )
20102010{
20112011   UINT16 address = offset & 0xffff;
20122012   if (offset < 0x400000)
r21796r21797
20362036
20372037// S-DD1
20382038
2039READ8_MEMBER( snsnew_state::snesdd1_lo_r )
2039READ8_MEMBER( snsnew_state::snessdd1_lo_r )
20402040{
20412041   UINT16 address = offset & 0xffff;
20422042
r21796r21797
20622062      return m_slotcart->m_cart->read_l(space, offset);
20632063}
20642064
2065READ8_MEMBER( snsnew_state::snesdd1_hi_r )
2065READ8_MEMBER( snsnew_state::snessdd1_hi_r )
20662066{
20672067   if (offset >= 0x400000)
20682068      return m_slotcart->m_cart->read_h(space, offset);
20692069   else
2070      return snesdd1_lo_r(space, offset, 0xff);
2070      return snessdd1_lo_r(space, offset, 0xff);
20712071}
20722072
2073WRITE8_MEMBER( snsnew_state::snesdd1_lo_w )
2073WRITE8_MEMBER( snsnew_state::snessdd1_lo_w )
20742074{
2075   snesdd1_hi_w(space, offset, data, 0xff);
2075   snessdd1_hi_w(space, offset, data, 0xff);
20762076}
20772077
2078WRITE8_MEMBER( snsnew_state::snesdd1_hi_w )
2078WRITE8_MEMBER( snsnew_state::snessdd1_hi_w )
20792079{
20802080   UINT16 address = offset & 0xffff;
20812081   if (offset < 0x400000)
r21796r21797
22432243         case SNES_DSP4:
22442244         case SNES_OBC1:
22452245         case SNES_SUFAMITURBO:
2246         case SNES_STROM:
22472246         case SNES_BSXLO:
22482247         case SNES_POKEMON:
22492248         case SNES_BANANA:
r21796r21797
22562255            return snes21_lo_r(space, offset, 0xff);
22572256
22582257         case SNES_SFX:
2259            return snesfx_lo_r(space, offset, 0xff);
2258            return snessfx_lo_r(space, offset, 0xff);
22602259
22612260         case SNES_SPC7110:
22622261         case SNES_SPC7110_RTC:
2263            return snespc7110_lo_r(space, offset, 0xff);
2262            return snes7110_lo_r(space, offset, 0xff);
22642263
22652264         case SNES_SDD1:
2266            return snesdd1_lo_r(space, offset, 0xff);
2265            return snessdd1_lo_r(space, offset, 0xff);
22672266
22682267         case SNES_BSX:
22692268            return snesbsx_lo_r(space, offset, 0xff);
r21796r21797
23212320         case SNES_DSP4:
23222321         case SNES_OBC1:
23232322         case SNES_SUFAMITURBO:
2324         case SNES_STROM:
23252323         case SNES_BSXLO:
23262324         case SNES_POKEMON:
23272325         case SNES_BANANA:
r21796r21797
23342332            return snes21_hi_r(space, offset, 0xff);
23352333
23362334         case SNES_SFX:
2337            return snesfx_hi_r(space, offset, 0xff);
2335            return snessfx_hi_r(space, offset, 0xff);
23382336
23392337         case SNES_SPC7110:
23402338         case SNES_SPC7110_RTC:
2341            return snespc7110_hi_r(space, offset, 0xff);
2339            return snes7110_hi_r(space, offset, 0xff);
23422340
23432341         case SNES_SDD1:
2344            return snesdd1_hi_r(space, offset, 0xff);
2342            return snessdd1_hi_r(space, offset, 0xff);
23452343
23462344         case SNES_BSX:
23472345            return snesbsx_hi_r(space, offset, 0xff);
r21796r21797
23992397         case SNES_DSP4:
24002398         case SNES_OBC1:
24012399         case SNES_SUFAMITURBO:
2402         case SNES_STROM:
24032400         case SNES_BSXLO:
24042401         case SNES_POKEMON:
24052402         case SNES_BANANA:
r21796r21797
24142411            break;
24152412
24162413         case SNES_SFX:
2417            snesfx_lo_w(space, offset, data, 0xff);
2414            snessfx_lo_w(space, offset, data, 0xff);
24182415            break;
24192416
24202417         case SNES_SPC7110:
24212418         case SNES_SPC7110_RTC:
2422            snespc7110_lo_w(space, offset, data, 0xff);
2419            snes7110_lo_w(space, offset, data, 0xff);
24232420            break;
24242421
24252422         case SNES_SDD1:
2426            snesdd1_lo_w(space, offset, data, 0xff);
2423            snessdd1_lo_w(space, offset, data, 0xff);
24272424            break;
24282425
24292426         case SNES_BSX:
r21796r21797
24822479         case SNES_DSP4:
24832480         case SNES_OBC1:
24842481         case SNES_SUFAMITURBO:
2485         case SNES_STROM:
24862482         case SNES_BSXLO:
24872483         case SNES_POKEMON:
24882484         case SNES_BANANA:
r21796r21797
24972493            break;
24982494
24992495         case SNES_SFX:
2500            snesfx_hi_w(space, offset, data, 0xff);
2496            snessfx_hi_w(space, offset, data, 0xff);
25012497            break;
25022498
25032499         case SNES_SPC7110:
25042500         case SNES_SPC7110_RTC:
2505            snespc7110_hi_w(space, offset, data, 0xff);
2501            snes7110_hi_w(space, offset, data, 0xff);
25062502            break;
25072503
25082504         case SNES_SDD1:
2509            snesdd1_hi_w(space, offset, data, 0xff);
2505            snessdd1_hi_w(space, offset, data, 0xff);
25102506            break;
25112507
25122508         case SNES_BSX:
r21796r21797
25592555   MACHINE_START_CALL(snes_mess);
25602556
25612557   // in progress...
2558#if 0
25622559   switch (state->m_type)
25632560   {
2561      case SNES_MODE20:
2562      case SNES_BSXLO:
2563      case SNES_SUFAMITURBO:
2564      case SNES_POKEMON:
2565      case SNES_BANANA:
2566      case SNES_CX4:      // this still uses the old simulation instead of emulating the CPU
2567      case SNES_ST010:   // this requires two diff kinds of chip access, so we handle it in snes20_lo/hi_r/w
2568      case SNES_ST011:   // this requires two diff kinds of chip access, so we handle it in snes20_lo/hi_r/w
2569         break;         
2570      case SNES_DSP:
2571         machine.device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x208000, 0x20ffff, 0, 0x9f0000, read8_delegate(FUNC(device_sns_cart_interface::chip_read),state->m_slotcart->m_cart));
2572         machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x208000, 0x20ffff, 0, 0x9f0000, write8_delegate(FUNC(device_sns_cart_interface::chip_write),state->m_slotcart->m_cart));
2573         break;         
2574      case SNES_DSP_2MB:
2575         machine.device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x600000, 0x607fff, 0, 0x8f0000, read8_delegate(FUNC(device_sns_cart_interface::chip_read),state->m_slotcart->m_cart));
2576         machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x600000, 0x607fff, 0, 0x8f0000, write8_delegate(FUNC(device_sns_cart_interface::chip_write),state->m_slotcart->m_cart));
2577         break;
2578      case SNES_DSP4:
2579         machine.device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x308000, 0x30ffff, 0, 0x8f0000, read8_delegate(FUNC(device_sns_cart_interface::chip_read),state->m_slotcart->m_cart));
2580         machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x308000, 0x30ffff, 0, 0x8f0000, write8_delegate(FUNC(device_sns_cart_interface::chip_write),state->m_slotcart->m_cart));
2581         break;
2582      case SNES_OBC1:
2583         machine.device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0xbf0000, read8_delegate(FUNC(device_sns_cart_interface::chip_read),state->m_slotcart->m_cart));
2584         machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0xbf0000, write8_delegate(FUNC(device_sns_cart_interface::chip_write),state->m_slotcart->m_cart));
2585         break;
25642586      case SNES_MODE21:
2565//          machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snsnew_state::snes21_lo_r),state), write8_delegate(FUNC(snsnew_state::snes21_lo_w),state));
2566//          machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snsnew_state::snes21_hi_r),state), write8_delegate(FUNC(snsnew_state::snes21_hi_w),state));
2567//          set_5a22_map(*state->m_maincpu);
2587      case SNES_BSXHI:
2588         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snsnew_state::snes21_lo_r),state), write8_delegate(FUNC(snsnew_state::snes21_lo_w),state));
2589         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snsnew_state::snes21_hi_r),state), write8_delegate(FUNC(snsnew_state::snes21_hi_w),state));
2590         set_5a22_map(*state->m_maincpu);
25682591         break;
25692592      case SNES_DSP_MODE21:
2570//          machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snsnew_state::snes21_lo_r),state), write8_delegate(FUNC(snsnew_state::snes21_lo_w),state));
2571//          machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snsnew_state::snes21_hi_r),state), write8_delegate(FUNC(snsnew_state::snes21_hi_w),state));
2572//          machine.device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0x9f0000, read8_delegate(FUNC(device_sns_cart_interface::chip_read),state->m_slotcart->m_cart));
2573//          machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0x9f0000, write8_delegate(FUNC(device_sns_cart_interface::chip_write),state->m_slotcart->m_cart));
2574//          set_5a22_map(*state->m_maincpu);
2593         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snsnew_state::snes21_lo_r),state), write8_delegate(FUNC(snsnew_state::snes21_lo_w),state));
2594         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snsnew_state::snes21_hi_r),state), write8_delegate(FUNC(snsnew_state::snes21_hi_w),state));
2595         machine.device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x006000, 0x007fff, 0, 0x9f0000, read8_delegate(FUNC(device_sns_cart_interface::chip_read),state->m_slotcart->m_cart));
2596         machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x006000, 0x007fff, 0, 0x9f0000, write8_delegate(FUNC(device_sns_cart_interface::chip_write),state->m_slotcart->m_cart));
2597         set_5a22_map(*state->m_maincpu);
25752598         break;
25762599      case SNES_SRTC:
2577//          machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snsnew_state::snes21_lo_r),state), write8_delegate(FUNC(snsnew_state::snes21_lo_w),state));
2578//          machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snsnew_state::snes21_hi_r),state), write8_delegate(FUNC(snsnew_state::snes21_hi_w),state));
2579//          machine.device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x002800, 0x002800, 0, 0xbf0000, read8_delegate(FUNC(device_sns_cart_interface::chip_read),state->m_slotcart->m_cart));
2580//          machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x002801, 0x002801, 0, 0xbf0000, write8_delegate(FUNC(device_sns_cart_interface::chip_write),state->m_slotcart->m_cart));
2581//          set_5a22_map(*state->m_maincpu);
2600         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snsnew_state::snes21_lo_r),state), write8_delegate(FUNC(snsnew_state::snes21_lo_w),state));
2601         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snsnew_state::snes21_hi_r),state), write8_delegate(FUNC(snsnew_state::snes21_hi_w),state));
2602         machine.device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x002800, 0x002800, 0, 0xbf0000, read8_delegate(FUNC(device_sns_cart_interface::chip_read),state->m_slotcart->m_cart));
2603         machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x002801, 0x002801, 0, 0xbf0000, write8_delegate(FUNC(device_sns_cart_interface::chip_write),state->m_slotcart->m_cart));
2604         set_5a22_map(*state->m_maincpu);
25822605         break;
2606      case SNES_SFX:
2607         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snsnew_state::snessfx_lo_r),state), write8_delegate(FUNC(snsnew_state::snessfx_lo_w),state));
2608         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snsnew_state::snessfx_hi_r),state), write8_delegate(FUNC(snsnew_state::snessfx_hi_w),state));
2609         set_5a22_map(*state->m_maincpu);
2610         break;         
2611      case SNES_SPC7110:
2612      case SNES_SPC7110_RTC:
2613         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snsnew_state::snes7110_lo_r),state), write8_delegate(FUNC(snsnew_state::snes7110_lo_w),state));
2614         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snsnew_state::snes7110_hi_r),state), write8_delegate(FUNC(snsnew_state::snes7110_hi_w),state));
2615         set_5a22_map(*state->m_maincpu);
2616         break;
2617      case SNES_SDD1:
2618         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snsnew_state::snessdd1_lo_r),state), write8_delegate(FUNC(snsnew_state::snessdd1_lo_w),state));
2619         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snsnew_state::snessdd1_hi_r),state), write8_delegate(FUNC(snsnew_state::snessdd1_hi_w),state));
2620         set_5a22_map(*state->m_maincpu);
2621         break;
2622      case SNES_BSX:
2623         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8_delegate(FUNC(snsnew_state::snesbsx_lo_r),state), write8_delegate(FUNC(snsnew_state::snesbsx_lo_w),state));
2624         machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8_delegate(FUNC(snsnew_state::snesbsx_hi_r),state), write8_delegate(FUNC(snsnew_state::snesbsx_hi_w),state));
2625         set_5a22_map(*state->m_maincpu);
2626         break;
25832627   }
2628#endif
25842629}
25852630
25862631static MACHINE_CONFIG_START( snesnew, snsnew_state )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team