src/mess/drivers/pc8801.c
| r10078 | r10079 | |
| 20 | 20 | |
| 21 | 21 | per-game specific TODO: |
| 22 | 22 | - 100 Yen disk(s): reads kanji ports; |
| 23 | - 177: gameplay is too fast; |
| 23 | 24 | - Acro Jet: hangs waiting for an irq; |
| 24 | 25 | - Adrenalin Connection: seems to have an unemulated screen mode; |
| 25 | 26 | - Aggress: crashes after that it shows the title screen; |
| r10078 | r10079 | |
| 460 | 461 | { |
| 461 | 462 | if(vram_sel == 3) |
| 462 | 463 | { |
| 463 | | if(misc_ctrl & 0x10) // high VRAM |
| 464 | if((misc_ctrl & 0x10) == 0) // high VRAM |
| 464 | 465 | return WRAM_BASE + 0xf000; |
| 465 | 466 | |
| 466 | 467 | return WRAM_BASE + 0xf000 + 0x10000; |
| r10078 | r10079 | |
| 480 | 481 | { |
| 481 | 482 | if(vram_sel == 3) |
| 482 | 483 | { |
| 483 | | if(misc_ctrl & 0x10) // high VRAM |
| 484 | if((misc_ctrl & 0x10) == 0) // high VRAM |
| 484 | 485 | return WRAM_BASE + 0xf000; |
| 485 | 486 | |
| 486 | 487 | return WRAM_BASE + 0xf000 + 0x10000; |
| r10078 | r10079 | |
| 519 | 520 | ---- ---x (pbsy?) |
| 520 | 521 | */ |
| 521 | 522 | |
| 522 | | vrtc = (space->machine->primary_screen->vpos() < 200) ? 1 : 0; // vblank |
| 523 | vrtc = (space->machine->primary_screen->vpos() < 200) ? 0 : 1; // vblank |
| 523 | 524 | |
| 524 | 525 | return (vrtc << 5) | 0xc0; |
| 525 | 526 | } |
| r10078 | r10079 | |
| 642 | 643 | { |
| 643 | 644 | misc_ctrl = data; |
| 644 | 645 | |
| 646 | bankr[1] = pc8801_bankswitch_1_r(space->machine); |
| 647 | bankr[3] = pc8801_bankswitch_3_r(space->machine); |
| 648 | bankr[4] = pc8801_bankswitch_4_r(space->machine); |
| 649 | bankw[3] = pc8801_bankswitch_3_w(space->machine); |
| 650 | bankw[4] = pc8801_bankswitch_4_w(space->machine); |
| 651 | |
| 645 | 652 | sound_irq_mask = ((data & 0x80) == 0); |
| 646 | 653 | |
| 647 | 654 | if(data & 0x40) |
| r10078 | r10079 | |
| 1338 | 1345 | ext_rom_bank = 0xff; |
| 1339 | 1346 | gfx_ctrl = 0x31; |
| 1340 | 1347 | window_offset_bank = 0x80; |
| 1341 | | misc_ctrl = 0x90; |
| 1348 | misc_ctrl = 0x80; |
| 1342 | 1349 | layer_mask = 0x00; |
| 1343 | 1350 | bankr[0] = pc8801_bankswitch_0_r(machine); |
| 1344 | 1351 | bankr[1] = pc8801_bankswitch_1_r(machine); |
| r10078 | r10079 | |
| 1449 | 1456 | MCFG_SCREEN_REFRESH_RATE(60) |
| 1450 | 1457 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
| 1451 | 1458 | MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 1452 | | MCFG_SCREEN_SIZE(640, 240) |
| 1459 | MCFG_SCREEN_SIZE(640, 220) |
| 1453 | 1460 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) |
| 1454 | 1461 | MCFG_GFXDECODE( pc8801 ) |
| 1455 | 1462 | MCFG_PALETTE_LENGTH(0x10) |