Previous 199869 Revisions Next

r34512 Tuesday 20th January, 2015 at 17:46:55 UTC by Osso
exidy.c: fixed fax and fax2 save state problem (nw)
[src/mame/drivers]exidy.c
[src/mame/includes]exidy.h

trunk/src/mame/drivers/exidy.c
r243023r243024
186186
187187WRITE8_MEMBER(exidy_state::fax_bank_select_w)
188188{
189   m_fax_bank = data;
190   
191   fax_bank_restore();
192}
193
194void exidy_state::fax_bank_restore()
195{
189196   UINT8 *RAM = memregion("maincpu")->base();
190197
191   membank("bank1")->set_base(&RAM[0x10000 + (0x2000 * (data & 0x1f))]);
192   if ((data & 0x1f) > 0x17)
193      logerror("Banking to unpopulated ROM bank %02X!\n",data & 0x1f);
198   membank("bank1")->set_base(&RAM[0x10000 + (0x2000 * (m_fax_bank & 0x1f))]);
199   if ((m_fax_bank & 0x1f) > 0x17)
200      logerror("Banking to unpopulated ROM bank %02X!\n", m_fax_bank & 0x1f);
194201}
195202
196203
r243023r243024
15431550
15441551   /* reset the ROM bank */
15451552   fax_bank_select_w(space,0,0);
1553   
1554   save_item(NAME(m_fax_bank));
1555   machine().save().register_postload(save_prepost_delegate(FUNC(exidy_state::fax_bank_restore), this));
15461556}
15471557
15481558
trunk/src/mame/includes/exidy.h
r243023r243024
3434
3535   exidy_state(const machine_config &mconfig, device_type type, const char *tag)
3636      : driver_device(mconfig, type, tag),
37      m_maincpu(*this, "maincpu"),
38      m_dac(*this, "dac"),
39      m_samples(*this, "samples"),
40      m_gfxdecode(*this, "gfxdecode"),
41      m_screen(*this, "screen"),
42      m_palette(*this, "palette"),
3743      m_videoram(*this, "videoram"),
3844      m_sprite1_xpos(*this, "sprite1_xpos"),
3945      m_sprite1_ypos(*this, "sprite1_ypos"),
r243023r243024
4248      m_spriteno(*this, "spriteno"),
4349      m_sprite_enable(*this, "sprite_enable"),
4450      m_color_latch(*this, "color_latch"),
45      m_characterram(*this, "characterram"),
46      m_maincpu(*this, "maincpu"),
47      m_dac(*this, "dac"),
48      m_samples(*this, "samples"),
49      m_gfxdecode(*this, "gfxdecode"),
50      m_screen(*this, "screen"),
51      m_palette(*this, "palette") { }
51      m_characterram(*this, "characterram") { }
5252
5353
54   required_device<cpu_device> m_maincpu;
55   optional_device<dac_device> m_dac;
56   optional_device<samples_device> m_samples;
57   required_device<gfxdecode_device> m_gfxdecode;
58   required_device<screen_device> m_screen;
59   required_device<palette_device> m_palette;
60   
5461   required_shared_ptr<UINT8> m_videoram;
5562   required_shared_ptr<UINT8> m_sprite1_xpos;
5663   required_shared_ptr<UINT8> m_sprite1_ypos;
r243023r243024
6168   required_shared_ptr<UINT8> m_color_latch;
6269   required_shared_ptr<UINT8> m_characterram;
6370
64   required_device<cpu_device> m_maincpu;
65   optional_device<dac_device> m_dac;
66   optional_device<samples_device> m_samples;
67   required_device<gfxdecode_device> m_gfxdecode;
68   required_device<screen_device> m_screen;
69   required_device<palette_device> m_palette;
70
7171   UINT8 m_last_dial;
7272   UINT8 m_collision_mask;
7373   UINT8 m_collision_invert;
7474   int m_is_2bpp;
7575   UINT8 m_int_condition;
76   int m_fax_bank;
7677   bitmap_ind16 m_background_bitmap;
7778   bitmap_ind16 m_motion_object_1_vid;
7879   bitmap_ind16 m_motion_object_2_vid;
7980   bitmap_ind16 m_motion_object_2_clip;
81   
8082   DECLARE_WRITE8_MEMBER(fax_bank_select_w);
8183   DECLARE_READ8_MEMBER(exidy_interrupt_r);
84   
8285   DECLARE_CUSTOM_INPUT_MEMBER(teetert_input_r);
86   
8387   DECLARE_DRIVER_INIT(fax);
8488   DECLARE_DRIVER_INIT(sidetrac);
8589   DECLARE_DRIVER_INIT(pepper2);
r243023r243024
9094   DECLARE_DRIVER_INIT(venture);
9195   DECLARE_DRIVER_INIT(spectar);
9296   DECLARE_DRIVER_INIT(phantoma);
97   
9398   virtual void video_start();
9499   DECLARE_MACHINE_START(teetert);
100   
95101   UINT32 screen_update_exidy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
102   
96103   INTERRUPT_GEN_MEMBER(exidy_vblank_interrupt);
104   
97105   void exidy_video_config(UINT8 _collision_mask, UINT8 _collision_invert, int _is_2bpp);
98106   inline void latch_condition(int collision);
99107   inline void set_1_color(int index, int which);
r243023r243024
102110   inline int sprite_1_enabled();
103111   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
104112   void check_collision();
113   void fax_bank_restore();
105114
106115   /* Targ and Spectar samples */
107116   int m_max_freq;


Previous 199869 Revisions Next


© 1997-2024 The MAME Team