Previous 199869 Revisions Next

r35115 Wednesday 18th February, 2015 at 17:43:09 UTC by Osso
quizo.c: added save state support (nw)
[src/mame/drivers]quizo.c

trunk/src/mame/drivers/quizo.c
r243626r243627
3535      : driver_device(mconfig, type, tag),
3636      m_maincpu(*this, "maincpu") { }
3737
38   required_device<cpu_device> m_maincpu;
39
3840   UINT8 *m_videoram;
3941   UINT8 m_port60;
4042   UINT8 m_port70;
43
4144   DECLARE_WRITE8_MEMBER(vram_w);
4245   DECLARE_WRITE8_MEMBER(port70_w);
4346   DECLARE_WRITE8_MEMBER(port60_w);
47
4448   DECLARE_DRIVER_INIT(quizo);
4549   DECLARE_PALETTE_INIT(quizo);
46   UINT32 screen_update_quizo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
47   required_device<cpu_device> m_maincpu;
50
51   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4852};
4953
5054
r243626r243627
8286   }
8387}
8488
85UINT32 quizo_state::screen_update_quizo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
89UINT32 quizo_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8690{
87   UINT8 *videoram = m_videoram;
8891   int x,y;
8992   for(y=0;y<200;y++)
9093   {
9194      for(x=0;x<80;x++)
9295      {
93         int data=videoram[y*80+x];
94         int data1=videoram[y*80+x+0x4000];
96         int data=m_videoram[y*80+x];
97         int data1=m_videoram[y*80+x+0x4000];
9598         int pix;
9699
97100         pix=(data&1)|(((data>>4)&1)<<1)|((data1&1)<<2)|(((data1>>4)&1)<<3);
r243626r243627
115118
116119WRITE8_MEMBER(quizo_state::vram_w)
117120{
118   UINT8 *videoram = m_videoram;
119121   int bank=(m_port70&8)?1:0;
120   videoram[offset+bank*0x4000]=data;
122   m_videoram[offset+bank*0x4000]=data;
121123}
122124
123125WRITE8_MEMBER(quizo_state::port70_w)
r243626r243627
133135      data=0;
134136   }
135137   m_port60=data;
136   membank("bank1")->set_base(&memregion("user1")->base()[rombankLookup[data]*0x4000] );
138   membank("bank1")->set_entry(rombankLookup[data]);
137139}
138140
139141static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, quizo_state )
r243626r243627
218220   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
219221   MCFG_SCREEN_SIZE(320, 200)
220222   MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8, 200-1)
221   MCFG_SCREEN_UPDATE_DRIVER(quizo_state, screen_update_quizo)
223   MCFG_SCREEN_UPDATE_DRIVER(quizo_state, screen_update)
222224   MCFG_SCREEN_PALETTE("palette")
223225
224226   MCFG_PALETTE_ADD("palette", 16)
r243626r243627
265267DRIVER_INIT_MEMBER(quizo_state,quizo)
266268{
267269   m_videoram=auto_alloc_array(machine(), UINT8, 0x4000*2);
270   membank("bank1")->configure_entries(0, 6, memregion("user1")->base(), 0x4000);
271   
272   save_pointer(NAME(m_videoram), 0x4000*2);
273   //save_item(NAME(m_port60));
274   save_item(NAME(m_port70));
268275}
269276
270GAME( 1985, quizo,  0,       quizo,  quizo, quizo_state,  quizo, ROT0, "Seoul Coin Corp.", "Quiz Olympic (set 1)", 0 )
271GAME( 1985, quizoa, quizo,   quizo,  quizo, quizo_state,  quizo, ROT0, "Seoul Coin Corp.", "Quiz Olympic (set 2)", 0 )
277GAME( 1985, quizo,  0,       quizo,  quizo, quizo_state,  quizo, ROT0, "Seoul Coin Corp.", "Quiz Olympic (set 1)", GAME_SUPPORTS_SAVE )
278GAME( 1985, quizoa, quizo,   quizo,  quizo, quizo_state,  quizo, ROT0, "Seoul Coin Corp.", "Quiz Olympic (set 2)", GAME_SUPPORTS_SAVE )


Previous 199869 Revisions Next


© 1997-2024 The MAME Team