Previous 15994 Revisions Next

r8749 Monday 9th August, 2010 at 21:43:32 UTC by Angelo Salese
[PC-6001]: Fixed joystick irq behaviour, fixes at least Hydlide death bug and Jelda tape load errors
[src/mess/drivers]pc6001.c

src/mess/drivers/pc6001.c
r8748r8749
2121
2222   TODO (game specific):
2323   - (several AX* games, namely Simon, Arabian Rhapsody and others): inputs doesn't work
24   - AX6 - Demo: When AY-based speech talks, screen should be a solid green (plain PC-6001) or solid white (Mk2 version)
24   - AX6 - Demo: When AY-based speech talks, other emus emulates the screen drawing to be a solid green (plain PC-6001) or solid white (Mk2 version),
25                 but, according to an original video reference that I've seen, that screen should actually some kind of weird garbage on it ...
26   - AX6 - Powered Knight: doesn't work too well, according to the asm code it asks the player to press either 'B' or 'C' then a number but
27                           nothing is shown on screen, other emus behaves the same, bad dump?
2528   - AX10 - The Outlaw: gameplay is now broken due of the joycode stuff
26   - Galaxy Mission Part I / II: can't start a play
27   - Portopia Renzoku Satsujin Jiken: hangs after a bunch of text screens
2829   (Mk2 mode 5 games)
30   - 3D Golf Simulation Super Version: gameplay / inputs looks broken
2931   - American Truck: Screen is offset at the loading screen, loading bug?
3032   - Castle Excellent: copyright text drawing is quite bogus, scans text in vertical instead of horizontal?
33   - Dezeni Land (ALL versions) / Hurry Fox 1/2: asks you to "load something", can't do it with current cassette kludge, also, for Dezeni Land(s) keyboard irqs
34                                                 doesn't seem to work too well with halt opcode execution?
35   - Dezeni Land 1/4: dies after loading of main program
36   - Dezeni Land 2: dies at the "load something" screen with presumably wrong stack opcodes
37   - Forts 1: refuses to run, bad dump?
3138   - Forts 2: ASCII gfxs are missing;
32   - Hydlide: pressing down makes the player to die instantly
39   - Grobda: when "get ready" speech plays, screen should be full white but instead it's all black, same issue as AX-6 Demo?
40
3341   - Pac-Man: gameplay is too fast
3442   - Yakyukyo: waits for an irq, check which one;
3543
r8748r8749
972980
973981static WRITE8_HANDLER ( pc6001m2_system_latch_w )
974982{
975//   UINT8 *work_ram = memory_region(space->machine, "maincpu");
976
977//   UINT32 startaddr[] = {WRAM(6), WRAM(6), WRAM(0), WRAM(5) }; //TODO: check me
978
979//   pc6001_video_ram = work_ram + startaddr[(data >> 1) & 0x03];
980
981//   printf("%08x\n",startaddr[(data >> 1) & 0x03]);
982
983983   if((!(sys_latch & 8)) && data & 0x8) //PLAY tape cmd
984984   {
985985      cas_switch = 1;
r8748r8749
13221322   PORT_BIT(0x00000010,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("GRPH") PORT_CODE(KEYCODE_LALT)
13231323INPUT_PORTS_END
13241324
1325static UINT8 check_joy_press(running_machine *machine);
1326
13251327static INTERRUPT_GEN( pc6001_interrupt )
13261328{
1329   cur_keycode = check_joy_press(device->machine);
13271330   irq_vector = 0x16;
13281331   cpu_set_input_line(device, 0, ASSERT_LINE);
13291332}
r8748r8749
15331536         old_key2 = key2;
15341537         old_key3 = key3;
15351538      }
1539      #if 0
15361540      else /* joypad polling */
15371541      {
15381542         cur_keycode = check_joy_press(space->machine);
15391543         if(cur_keycode)
15401544         {
1541            irq_vector = 0x02;
1545            irq_vector = 0x16;
15421546            cputag_set_input_line(machine,"maincpu", 0, ASSERT_LINE);
15431547         }
15441548      }
1549      #endif
15451550   }
15461551}
15471552
r8748r8749
15621567
15631568static MACHINE_RESET(pc6001)
15641569{
1570   UINT8 *work_ram = memory_region(machine, "maincpu");
1571
1572   pc6001_video_ram =  work_ram + 0xc000;
1573
15651574   port_c_8255=0;
1566   //pc6001_video_ram =  pc6001_ram;
15671575
15681576   cpu_set_irq_callback(machine->device("maincpu"),pc6001_irq_callback);
15691577   cas_switch = 0;
r8748r8749
15761584
15771585static MACHINE_RESET(pc6001m2)
15781586{
1587   UINT8 *work_ram = memory_region(machine, "maincpu");
1588
1589   pc6001_video_ram = work_ram + 0xc000 + 0x28000;
1590
15791591   port_c_8255=0;
1580   //pc6001_video_ram =  pc6001_ram;
15811592
15821593   cpu_set_irq_callback(machine->device("maincpu"),pc6001_irq_callback);
15831594   cas_switch = 0;

Previous 15994 Revisions Next


© 1998-2018 The MESS Team