-
Notifications
You must be signed in to change notification settings - Fork 239
Open
Description
手柄是个坑,cpu只会发0x4016。 不会0x4017!!! 所以cpu写的时候要这样
FC 的硬件电路设计决定了:4016 的写操作会同时触发 P1 和 P2 两个手柄的锁存动作,根本不需要写 4017。
还有一个原因apu需要写4017,为了不冲突。锁存只发4016!
if (addr == 0x4016)
{
// "Lock In" controller state at this time
//printf("addr: %04X, controller[0]: %02X, controller[1]: %02X\n", addr, controller[0], controller[1]);
//controller_state[addr & 0x0001] = controller[addr & 0x0001];
//printf("addr: %04X, controller_state[0]: %02X, controller_state[1]: %02X\n", addr, controller_state[0], controller_state[1]);
controller_state[0] = controller[0];
controller_state[1] = controller[1];
}
cpu 读手柄是4016,4017交替发。
data = (controller_state[addr & 0x0001] & 0x80) > 0;
controller_state[addr & 0x0001] <<= 1;
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels