Previous 199869 Revisions Next

r21493 Friday 1st March, 2013 at 00:35:57 UTC by Angelo Salese
Text decoding ...
[src/mame/drivers]gunpey.c

trunk/src/mame/drivers/gunpey.c
r21492r21493
212212   DECLARE_READ8_MEMBER(gunpey_inputs_r);
213213   DECLARE_WRITE8_MEMBER(gunpey_blitter_w);
214214   DECLARE_WRITE8_MEMBER(gunpey_output_w);
215   DECLARE_WRITE16_MEMBER(gunpey_vram_bank_w);
215216   DECLARE_DRIVER_INIT(gunpey);
216217   virtual void video_start();
217218   virtual void palette_init();
218219   UINT32 screen_update_gunpey(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
219220   TIMER_DEVICE_CALLBACK_MEMBER(gunpey_scanline);
220221   void gunpey_irq_check(UINT8 irq_type);
222   UINT16 m_vram_bank;
221223};
222224
223225
r21492r21493
231233   //UINT16 *blit_buffer = m_blit_buffer;
232234   int x,y;
233235   int count;
236   UINT16 vram_bank = m_vram_bank & 0x7fff;
234237
235238   bitmap.fill(machine().pens[0], cliprect); //black pen
236239
237   for(count = 0x800/2;count<0x4800/2;count+=0x10/2)
240   vram_bank ^= 0x2000;
241
242   for(count = vram_bank/2;count<(vram_bank+0x2000)/2;count+=0x10/2)
238243   {
239      if(!(m_wram[count+0/2] & 1))
244      if(!(m_wram[count+0] & 1))
240245      {
241246         x = (m_wram[count+3] >> 8) | ((m_wram[count+4] & 0xff) << 8);
242247         y = m_wram[count+4] >> 8;
r21492r21493
245250
246251         UINT32 val = (m_wram[count+1] << 16) | ((m_wram[count+2]));
247252         int letter = -1;
248
253/*
254-- TEST MODE --
255I/O TEST
256MONITOR TEST
257CG-ROM VIEWER
258CHARACTER CHECK
259SOUND TEST
260*/
249261         // these are going to be co-ordinates in the bitmap, probably not the ROM, but the one the 'blitter' (gfx unpack device?) creates
250         if (val == 0x8080a03a) { col = 0xffff00; letter ='I'; } // 18d0 - I
251         if (val == 0x4080a03b) { col = 0xff0000; letter ='O'; } //      - O
262         if (val == 0x2080203b) { letter = ' '; }
263         if (val == 0x0080203b) { letter = '-'; }
264         if (val == 0x4080203b) { letter = '/'; }
265         if (val == 0x6080203b) { letter = '0'; }
266         if (val == 0x8080403a) { letter = '1'; }
267         if (val == 0xa080403a) { letter = '2'; }
268         if (val == 0xc080403a) { letter = '3'; }
269         if (val == 0xe080403a) { letter = '4'; }
270         if (val == 0x0080403b) { letter = '5'; }
271         if (val == 0x2080403b) { letter = '6'; }
272         if (val == 0x4080403b) { letter = '7'; }
273         if (val == 0x6080403b) { letter = '8'; }
274         if (val == 0x8080603a) { letter = '9'; }
252275
276         if (val == 0x8080803a) { letter = 'A'; }
277         if (val == 0xa080803a) { letter = 'B'; }
278         if (val == 0xc080803a) { letter = 'C'; }
279         if (val == 0xe080803a) { letter = 'D'; }
280         if (val == 0x0080803b) { letter = 'E'; }
281         if (val == 0x2080803b) { letter = 'F'; }
282         if (val == 0x4080803b) { letter = 'G'; }
283         if (val == 0x6080803b) { letter = 'H'; }
284         if (val == 0x8080a03a) { letter = 'I'; }
285         if (val == 0xa080a03a) { letter = 'J'; }
286         if (val == 0xc080a03a) { letter = 'K'; }
287         if (val == 0xe080a03a) { letter = 'L'; }
288         if (val == 0x0080a03b) { letter = 'M'; }
289         if (val == 0x2080a03b) { letter = 'N'; }
290         if (val == 0x4080a03b) { letter = 'O'; }
291         if (val == 0x6080a03b) { letter = 'P'; }
292         if (val == 0x8080c03a) { letter = 'Q'; }
293         if (val == 0xa080c03a) { letter = 'R'; }
294         if (val == 0xc080c03a) { letter = 'S'; }
295         if (val == 0xe080c03a) { letter = 'T'; }
296         if (val == 0x0080c03b) { letter = 'U'; }
297         if (val == 0x2080c03b) { letter = 'V'; }
298         if (val == 0x4080c03b) { letter = 'W'; }
299         if (val == 0x6080c03b) { letter = 'X'; }
300         if (val == 0x8080e03a) { letter = 'Y'; }
301         if (val == 0xa080e03a) { letter = 'Z'; }
302
253303#ifndef USE_FAKE_ROM
254304         letter = -1;
255305#endif
256306         x-=0x1100;
257307
258308         if (letter != -1)
259            drawgfx_opaque(bitmap,cliprect,machine().gfx[1],letter,0,0,0,x,y);
309            drawgfx_opaque(bitmap,cliprect,machine().gfx[1],letter,1,0,0,x,y);
260310         else
261311         {
262312            for(int yi=0;yi<8;yi++)
r21492r21493
410460   downcast<okim6295_device *>(m_oki)->set_bank_base((data & 0x0f) * 0x40000);
411461}
412462
463WRITE16_MEMBER(gunpey_state::gunpey_vram_bank_w)
464{
465   COMBINE_DATA(&m_vram_bank);
466}
467
413468/***************************************************************************************/
414469
415470static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 16, gunpey_state )
r21492r21493
430485   AM_RANGE(0x7fc8, 0x7fc9) AM_READWRITE8(gunpey_status_r,  gunpey_status_w, 0xffff )
431486   AM_RANGE(0x7fd0, 0x7fdf) AM_WRITE8(gunpey_blitter_w, 0xffff )
432487   //AM_RANGE(0x7FF0, 0x7FF1) AM_RAM
488   AM_RANGE(0x7fee, 0x7fef) AM_WRITE(gunpey_vram_bank_w)
433489
434490ADDRESS_MAP_END
435491
r21492r21493
593649static GFXLAYOUT_RAW( gunpey, 2048, 1, 2048*8, 2048*8 )
594650static GFXDECODE_START( gunpey )
595651   GFXDECODE_ENTRY( "blit_data", 0, gunpey,     0x0000, 0x1 )
596   GFXDECODE_ENTRY( "fakerom", 0x18000, fake_layout,   0x0, 2  )
652   GFXDECODE_ENTRY( "fakerom", 0x18000, fake_layout,   0x0, 2  )
597653
598654GFXDECODE_END
599655

Previous 199869 Revisions Next


© 1997-2024 The MAME Team