lgblgblgb / xemu

Emulations (running on Linux/Unix/Windows/macOS, utilizing SDL2) of some - mainly - 8 bit machines, including the Commodore LCD, Commodore 65, and the MEGA65 as well.
https://github.com/lgblgblgb/xemu/wiki
GNU General Public License v2.0
208 stars 32 forks source link

MEGA65: Cursor left/up keys don't set bits in $D60F #341

Closed dillof closed 2 years ago

dillof commented 2 years ago

Describe the bug When you press the cursor left and cursor up keys, bits 0 and 1 of register $D06F should be set, respectively.

Used version of the project

**** The Evolving MEGA65 emulator from LGB ****
This software is part of the Xemu project: https://github.com/lgblgblgb/xemu
CREATED: travis@lgb on Darwin 18.7.0 at Tue Apr 26 10:24:46 GMT 2022
CREATED: clang 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.33.8) 64LE for osx
VERSION: https://github.com/lgblgblgb/xemu.git master 08ed0450f53a65a285dcac802373aea4f9c6450d 20220426121838 official-build
EMULATE: MEGA65 (mega65): xmega65 (../../build/bin/xmega65.native) for mega65 on osx (native) using cc

To Reproduce Run the following program:

10 PRINT PEEK(DEC("D60F"))
20 GOTO 10

Expected behavior Then press the cursor keys, the value printed should change depending on pressed keys.

Computer/Device (please complete the following information):

lgblgblgb commented 2 years ago

Thanks for the report. Yes, it's not even emulated. I guess about ~20% of all MEGA65 registers (and their all bits) are emulated, there so many that almost impossible to do it in a life-time [ok it was a bit overstatement, I admit ...] ;) Thus I usually go onto the "on demand" route, if something is missing for somebody, I do it, like now I will. Currently (from Xemu source code):

// D60F bit 5, real hardware (1), emulation (0), other bits are not emulated yet by Xemu, so I give simply zero
return 0;
lgblgblgb commented 2 years ago

In next now.