// else if (offset >= 0xF17C00 && offset <= 0xF17C01)
// return anajoy_byte_read(offset);
else if (offset >= 0xF14000 && offset <= 0xF14003)
- return JoystickReadByte(offset) | EepromReadByte(offset);
+// return JoystickReadByte(offset) | EepromReadByte(offset);
+ {
+ uint16_t value = JoystickReadWord(offset & 0xFE);
+
+ if (offset & 0x01)
+ value &= 0xFF;
+ else
+ value >>= 8;
+
+ // This is wrong, should only have the lowest bit from $F14001
+ return value | EepromReadByte(offset);
+ }
else if (offset >= 0xF14000 && offset <= 0xF1A0FF)
return EepromReadByte(offset);
}*/
else if ((offset >= 0xF14000) && (offset <= 0xF14003))
{
- JoystickWriteByte(offset, data);
+WriteLog("JERRYWriteByte: Unhandled byte write to JOYSTICK by %s.\n", whoName[who]);
+// JoystickWriteByte(offset, data);
+ JoystickWriteWord(offset & 0xFE, (uint16_t)data);
+// This is wrong, EEPROM is never written here
EepromWriteByte(offset, data);
return;
}