Previous 15994 Revisions Next

r8964 Monday 30th August, 2010 at 21:30:26 UTC by Angelo Salese
[MZ-2500]: Implemented 4096 color mode and fixed floppy_mon behaviour, fixing Ys 3 booting
[src/mess/drivers]mz2500.c

src/mess/drivers/mz2500.c
r8963r8964
3535   - The Black Onyx: hangs at the title screen, background should also animate;
3636   - The Tower of Druaga: has a small priority/layer clearance bug at the digital / analog screen select;
3737   - Xevious: has issues with the window effects, it should actually be applied on TV layer and not CG.
38   - Ys 3: crashes if you try to load it with different DSW settings
38   - Ys 3: has garbage on top / bottom (note: you have to load both disks at start-up otherwise it refuses to run)
3939
4040    memory map:
4141    0x00000-0x3ffff Work RAM
r8963r8964
177177               if(pen)
178178               {
179179                  if((y*8+yi-s_y) >= 0 && (y*8+yi-s_y) < 200)
180                     *BITMAP_ADDR16(bitmap, (y*8+yi-s_y), x*8+xi) = machine->pens[pen];
180                     *BITMAP_ADDR16(bitmap, (y*8+yi-s_y), x*8+xi) = machine->pens[pen+(pal_select ? 0x000 : 0x208)];
181181               }
182182            }
183183         }
r8963r8964
261261                  {
262262                     if((y*8+yi-s_y) >= 0 && (y*8+yi-s_y) < 200)
263263                     {
264                        *BITMAP_ADDR16(bitmap, (y*8+yi-s_y), (x*8+xi)*2+0) = machine->pens[pen];
265                        *BITMAP_ADDR16(bitmap, (y*8+yi-s_y), (x*8+xi)*2+1) = machine->pens[pen];
264                        *BITMAP_ADDR16(bitmap, (y*8+yi-s_y), (x*8+xi)*2+0) = machine->pens[pen+(pal_select ? 0x000 : 0x208)];
265                        *BITMAP_ADDR16(bitmap, (y*8+yi-s_y), (x*8+xi)*2+1) = machine->pens[pen+(pal_select ? 0x000 : 0x208)];
266266                     }
267267                  }
268268                  else
269269                  {
270270                     if((y*8+yi-s_y) >= 0 && (y*8+yi-s_y) < 200)
271                        *BITMAP_ADDR16(bitmap, (y*8+yi-s_y), x*8+xi) = machine->pens[pen];
271                        *BITMAP_ADDR16(bitmap, (y*8+yi-s_y), x*8+xi) = machine->pens[pen+(pal_select ? 0x000 : 0x208)];
272272                  }
273273               }
274274            }
r8963r8964
440440
441441   //popmessage("%02x",cg_mask);
442442
443   if(pal_select)
444   {
445      draw_cg_screen(screen->machine,bitmap,cliprect,0);
446      draw_tv_screen(screen->machine,bitmap,cliprect);
447      draw_cg_screen(screen->machine,bitmap,cliprect,1);
443   draw_cg_screen(screen->machine,bitmap,cliprect,0);
444   draw_tv_screen(screen->machine,bitmap,cliprect);
445   draw_cg_screen(screen->machine,bitmap,cliprect,1);
448446   //   popmessage("%02x (%02x %02x) (%02x %02x) (%02x %02x) (%02x %02x)",cg_reg[0x0f],cg_reg[0x10],cg_reg[0x11],cg_reg[0x12],cg_reg[0x13],cg_reg[0x14],cg_reg[0x15],cg_reg[0x16],cg_reg[0x17]);
449   }
450   else //4096 mode colors
451   {
452      draw_tv_screen(screen->machine,bitmap,cliprect);
453   }
454447
455448    return 0;
456449}
r8963r8964
858851   {
859852      case 0xdc:
860853         wd17xx_set_drive(dev,data & 3);
861         floppy_mon_w(floppy_get_device(space->machine, data & 3), (data & 0x80) ? ASSERT_LINE : CLEAR_LINE);
854         floppy_mon_w(floppy_get_device(space->machine, data & 3), (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
862855         floppy_drive_set_ready_state(floppy_get_device(space->machine, data & 3), 1,0);
863856         break;
864857      case 0xdd:
r8963r8964
16281621//   printf("%02x\n",data);
16291622   fdc_reverse = (data & 2) ? 0x00 : 0xff;
16301623   pal_select = (data & 4) ? 1 : 0;
1631   if((data & 4) == 0)
1632      printf("Warning: 4096 color mode used\n");
16331624}
16341625
16351626static const ym2203_interface ym2203_interface_1 =

Previous 15994 Revisions Next


© 1998-2018 The MESS Team