mickelson / attract

A graphical front-end for command line emulators that hides the underlying operating system and is intended to be controlled with a joystick or gamepad.
http://attractmode.org
GNU General Public License v3.0
393 stars 113 forks source link

Bug with commit 6feddfadb8adc233dbe77c0de531c9baf016c090 #747

Open amergin6699 opened 1 year ago

amergin6699 commented 1 year ago

Hi Mickelson,

Since this commit https://github.com/mickelson/attract/commit/6feddfadb8adc233dbe77c0de531c9baf016c090 , playing a sound in the ToNewlist transition hang AM in what appears to be an infinite loop.

this only happens after a game has been launched and you want to return to displaymenu or launch game again.

Sometime the loop stay 20-30 secs, sometime it crash AM.

This happen only when you have a filter with PlayedCount in your attract.cfg

Tested on Win7 and Win10

here is a simple test you can do to see the problem

Launch a game, exit and try to launch the game again or return to display menu, it will hang

disable TrackUsage and this not happen.

attract.cfg

display Test
    layout               test
    romlist              Atari 2600
    in_cycle             yes
    in_menu              yes
    filter               All
    filter               Favourites
        rule                 Favourite equals 1
    filter               "Most Played Games"
        sort_by              PlayedCount
        reverse_order        true
        rule                 PlayedCount not_contains 0

layout

local Sound = fe.add_sound("test.mp3" );

fe.add_transition_callback( "transition" );

function transition( ttype, var, ttime )
{
    switch ( ttype )
    {
        case Transition.ToNewList:
           Sound.playing = true;
        break;
    }
}

Thank you for your work