deltabeard / Peanut-GB

A Game Boy (DMG) emulator single header library written in C99. Performance is prioritised over accuracy.
https://projects.deltabeard.com/peanutgb/
329 stars 41 forks source link

Joypad interrupt does not fire #34

Open pinobatch opened 5 years ago

pinobatch commented 5 years ago

The Lawnmower Man for Game Boy reportedly will not start unless joypad interrupts are implemented.

To reproduce:

  1. Build Peanut-GB on Xubuntu 18.04
  2. Start the attached test ROM "Telling LYs?" tellinglys-0.02.zip
  3. Press any button

Expect: Display advances from title screen to conversation

Actual: Title screen does not disappear

(If you do issue joypad interrupts, but you don't vary the LY when they're issued, you'll get a different error message.)

deltabeard commented 5 years ago

I've committed patch 298440b0cc8062f19477a8b29462c7bb4dd88568 to the joypad_intr branch which adds joypad interrupts. As you've said, because I don't vary LY, I get the following error message in Telling LYs: FIRSTWHITE_0000000000

However, The Lawnmower Man still remains on a blank screen on startup with this patch. But I think that may be due to the poor timing and LCD emulation. I will have to investigate further.

I'll keep this issue open whilst I consider the "varying LY" issue with joypad interrupts.