libretro / bsnes-mercury

Fork of bsnes with various performance improvements.
GNU General Public License v3.0
47 stars 39 forks source link

BSNES Mercury cores (Balanced and Performance tested) crash on various games when pressing volume up or down on Android device. #54

Open gannon345 opened 6 years ago

gannon345 commented 6 years ago

Description

BSNES Mercury cores (Balanced and Performance tested) crash on various games when pressing volume up or down on Android device. Tested on a Nvidia Shield K1 tablet.

Issue is specific to BSNES cores. Does not occur in SNES9x core.

Expected behavior

Volume turns up or down.

Actual behavior

Retroarch crashes with an unexpected error

Steps to reproduce the bug

Launch a SNES game with the BSNES Mercury Performance or Balanced core. Press volume up or volume down hardware keys on Android phone or tablet.

I tested the problem on a Shield k1 tablet and confirmed it across multiple games. Tested 1.0 and 1.1 known good dumps of Mega Man X, as well as F-Zero, Legend of Zelda: Link to the Past, and Starfox.

All games not impacted. Tested Super Baseball 2020 and volume controls work.

Bisect Results

Unsure when issue started occurring, only encountered it today (9/16/2017) on RA 1.6.7.

Version/Commit

Google Play Store current version (1.6.7)

Environment information

anyputer commented 6 years ago

Yup, it also crashes for me. I was wondering why it constantly kept crashing. lmao It even crashes randomly!

ghost commented 6 years ago

cant seem to replicate this on my crappy android device using Legend of Zelda: Link to the Past with latest f-droid-available retroarch and bsnes-mercury balanced core. possible to get and post logcat?

gannon345 commented 6 years ago

How do I pull a logcat? I'll test it out when I can.

spinktvis commented 6 years ago

Logs from my OnePlus 5, one when I was running stock OOS OB3 8.0.0. Forgot which RetroArch version.

https://hastebin.com/emahufekaw.sql

Today's logs from latest Phoenix 8.1.0 ROM. Today's are using RetroArch 1.7.0 from play store.

Both times using bsnes-mercury-balanced.

https://hastebin.com/qigojeqowe.scala

ghost commented 6 years ago

As evidenced by this line in your last log @spinktvis:

01-27 15:23:47.893 F/DEBUG (17643): signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0xd0842d2c

This looks like the same problem as https://github.com/libretro/QuickNES_Core/issues/37 which was able to be fixed in software with a gcc workaround. The same should apply here, but the trick would be to find exactly what variable/struct it is that is somehow being misaligned.

@fr500 @twinaphex Maybe one of you guys could test other cores on similar devices with such kernel issues, like the Shield Tablet?

andres-asm commented 6 years ago

I was never able to replicate this on my devices but there was a related recent crash that was fixed by https://github.com/libretro/bsnes-mercury/commit/b62603777f0353f62c00540ee2e104aaf1be91ac