libretro / gambatte-libretro

Hard fork of Gambatte to the libretro API.
http://sourceforge.net/projects/gambatte/
GNU General Public License v2.0
104 stars 79 forks source link

Palettes notifications are not synchronised with the currently selected palette (Linux / SDL1.2 / RGUI) #238

Open schmurtzm opened 1 year ago

schmurtzm commented 1 year ago

Description

Since this pull request : https://github.com/libretro/gambatte-libretro/pull/204 , it is possible to switch between gambatte palettes via RetroPad L/R that's very nice and works well but when using RGUI on Miyoo Mini (a little linux handheld) each notification doesn't not override the previous one. So if you change quickly 5 palettes you'll see previous palettes names on notifications and you don't know which is the current one. This little problem is very annoying to choose your palette.

One Retroarch for Windows the notifications toasters are not the same and each new palette notification override the previous one in the right way.

A little video to illustrate (I press 3 times R and 2 times L)

https://user-images.githubusercontent.com/7110113/197071605-f1a19c87-a408-4792-854c-13cdb20f2c84.mp4

As you can see the notifications are late.

(I have hesitated to create this issue in Retroarch repo as the callback to enable cores to notify is in Retroarch I'm not very sure.)

Expected behavior

As on retroarch for Windows the new notifications for gambatte palettes should override the previous one.

Actual behavior

On RGUI, each notification is displayed for a determined time so the current selected palette is not synchronised with the current notification.

Steps to reproduce the bug

  1. Use RGUI with old notification style (linux notification style ? Or is it related to SDL 1.2 ?)
  2. run gamebatte core
  3. press L and R multiple time to observe the lack of synchronisation

Version/Commit

You can find this information under Information/System Information

Environment information

schmurtzm commented 1 year ago

May be the solution is around this : https://github.com/jdgleaver/gambatte-libretro/blob/master/libgambatte/libretro/libretro.cpp#L605

Here the RA notifications parameters description : https://github.com/libretro/RetroArch/blob/master/libretro-common/include/libretro.h#L3082

I tried RETRO_MESSAGE_TYPE_NOTIFICATION instead of RETRO_MESSAGE_TYPE_NOTIFICATION_ALT without more success.

Or may be it's more related to Retroarch. The change save state slot notification seems to be overrided as expected.