Previous 199869 Revisions Next

r29192 Wednesday 2nd April, 2014 at 17:26:24 UTC by Miodrag Milanović
removed legacy handler from snes (nw)
[src/mame/includes]snes.h
[src/mame/machine]snes.c
[src/mame/video]snes.c
[src/mess/drivers]snes.c

trunk/src/mess/drivers/snes.c
r29191r29192
19041904      case SNES_SOULBLAD:
19051905         // reads from xxx0-xxx3in range [80-bf] return a fixed sequence of 4bits; reads in range [c0-ff] return open bus
19061906         m_maincpu->space(AS_PROGRAM).install_read_handler(0x808000, 0x808003, 0, 0x3f7ff0, read8_delegate(FUNC(base_sns_cart_slot_device::chip_read),(base_sns_cart_slot_device*)m_cartslot));
1907         m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0xc00000, 0xffffff, FUNC(snes_open_bus_r));
1907         m_maincpu->space(AS_PROGRAM).install_read_handler(0xc00000, 0xffffff, read8_delegate(FUNC(snes_console_state::snes_open_bus_r),this));
19081908         break;
19091909      case SNES_BUGS:
19101910      case SNES_BANANA:
trunk/src/mame/machine/snes.c
r29191r29192
3434
3535void snes_state::video_start()
3636{
37   m_ppu.ppu_start(m_screen);
37   m_ppu.ppu_start(m_screen,this);
3838}
3939
4040UINT32 snes_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
r29191r29192
269269
270270*************************************/
271271
272READ8_HANDLER( snes_open_bus_r )
272READ8_MEMBER( snes_state::snes_open_bus_r )
273273{
274274   static UINT8 recurse = 0;
275275   UINT16 result;
trunk/src/mame/includes/snes.h
r29191r29192
375375   UINT8  blend_exception[SNES_SCR_WIDTH];
376376};
377377
378class snes_state;
379
378380class snes_ppu_class  /* once all the regs are saved in this structure, it would be better to reorganize it a bit... */
379381{
380382public:
r29191r29192
562564   inline UINT32 get_vram_address(running_machine &machine);
563565   UINT8 dbg_video(running_machine &machine, UINT16 curline);
564566
565   void ppu_start(screen_device &screen);
567   void ppu_start(screen_device &screen,snes_state *state);
566568   UINT8 read(address_space &space, UINT32 offset, UINT8 wrio_bit7);
567569   void write(address_space &space, UINT32 offset, UINT8 data);
568570
r29191r29192
575577   UINT16 *m_oam_ram;     /* Object Attribute Memory */
576578   UINT16 *m_cgram;   /* Palette RAM */
577579   UINT8  *m_vram;    /* Video RAM (TODO: Should be 16-bit, but it's easier this way) */
580   
581   snes_state *m_state;
578582};
579583
580584struct snes_cart_info
r29191r29192
713717   DECLARE_READ8_MEMBER(snes_r_bank2);
714718   DECLARE_WRITE8_MEMBER(snes_w_bank1);
715719   DECLARE_WRITE8_MEMBER(snes_w_bank2);
720   DECLARE_READ8_MEMBER(snes_open_bus_r);
716721   TIMER_CALLBACK_MEMBER(snes_nmi_tick);
717722   TIMER_CALLBACK_MEMBER(snes_hirq_tick_callback);
718723   TIMER_CALLBACK_MEMBER(snes_reset_oam_address);
r29191r29192
775780   SNES_COLOR
776781};
777782
778DECLARE_READ8_HANDLER( snes_open_bus_r );
779
780783#endif /* _SNES_H_ */
trunk/src/mame/video/snes.c
r29191r29192
16121612   g_profiler.stop();
16131613}
16141614
1615void snes_ppu_class::ppu_start(screen_device &screen)
1615void snes_ppu_class::ppu_start(screen_device &screen,snes_state *state)
16161616{
16171617   m_screen = &screen;
16181618   running_machine &machine = screen.machine();
1619
1619   m_state = state;
16201620#if SNES_LAYER_DEBUG
16211621   memset(&m_debug_options, 0, sizeof(m_debug_options));
16221622#endif
r29191r29192
19071907         if (h <= 4)
19081908            m_vram[offset] = data;
19091909         else if (h == 6)
1910            m_vram[offset] = snes_open_bus_r(space, 0);
1910            m_vram[offset] = m_state->snes_open_bus_r(space, 0);
19111911         else
19121912         {
19131913            //printf("%d %d VRAM write, CHECK!\n",h,v);
r29191r29192
21182118         }
21192119      case SLHV:      /* Software latch for H/V counter */
21202120         latch_counters(space.machine());
2121         return snes_open_bus_r(space, 0);       /* Return value is meaningless */
2121         return m_state->snes_open_bus_r(space, 0);       /* Return value is meaningless */
21222122      case ROAMDATA:  /* Read data from OAM (DR) */
21232123         m_ppu1_open_bus = oam_read(space, m_oam.address);
21242124         PPU_REG(OAMDATA) = (PPU_REG(OAMDATA) + 1) % 2;
r29191r29192
22132213   }
22142214
22152215   /* note: remaining registers (Namely TM in Super Kick Boxing) returns MDR open bus, not PPU Open Bus! */
2216   return snes_open_bus_r(space, 0);
2216   return m_state->snes_open_bus_r(space, 0);
22172217}
22182218
22192219

Previous 199869 Revisions Next


© 1997-2024 The MAME Team