authorblues / bizhawk-shuffler-2

A script to randomly shuffle between games played in Bizhawk, with plugins to enhance the experience
MIT License
58 stars 21 forks source link

Shuffler doesn't remove 2nd-to-last active game in fixed order mode #65

Closed ArcaneTheWoof closed 1 year ago

ArcaneTheWoof commented 1 year ago

Description: When using fixed order mode, striking the "mark game as completed" hotkey when playing the 2nd-to-last active game, that game will continue to play indefinitely as though it were the last active game. The log reports that the game has been marked completed, and further strikes of the hotkey cause repeated "game has been marked as completed" reports in the log, but it continues to play. For clarity, "2nd-to-last" here means that when all but two games have been marked as completed, regardless of where the games are in the playlist order, the next game to be marked as completed is "2nd-to-last".

Expected behavior is for the game to end when the hotkey is struck, and for the shuffler to switch to the last still-active game in the playlist.

Steps to reproduce the behavior:

  1. Download and install a fresh copy of the shuffler.
  2. Prepare the shuffler playlist by adding any number of games to the "games" subfolder.
  3. Start the shuffler and set the order mode to "fixed order". 3a. All other settings appear to be irrelevant to the appearance of the bug.
  4. Play each game for any period of time.
  5. Begin marking games as completed using the selected hotkey.
  6. Mark the 2nd-to-last game as complete and observe the log entry.

Environment:

Additional context:

Logs Message.log:

[17:47:19] Platform: WIN
[17:47:19] Bizhawk version: 2.8
[17:47:19] GAME FOUND: Mega Man 2.nes
[17:47:19] GAME FOUND: Mega Man 3 Revamped.nes
[17:47:19] GAME FOUND: Mega Man 4.nes
[17:47:19] GAME FOUND: Mega Man 5.nes
[17:47:19] GAME FOUND: Mega Man 6.nes
[17:47:19] GAME FOUND: Mega Man.nes
[17:47:19] deleting savestates!
[17:51:24] Mega Man 2.nes marked complete
[17:51:35] Mega Man 4.nes marked complete
[17:52:00] Mega Man.nes marked complete
[17:52:10] Mega Man 5.nes marked complete
[17:52:18] Mega Man 3 Revamped.nes marked complete
[17:52:20] Mega Man 3 Revamped.nes marked complete
[17:52:20] Mega Man 3 Revamped.nes marked complete
[17:52:21] Mega Man 3 Revamped.nes marked complete
[17:52:23] Mega Man 3 Revamped.nes marked complete
[17:52:27] shuffler exiting
[17:52:27] saving state on exit

Config.lua:

config=
{
    ["completed_games"] = {[1] = "Mega Man 2.nes",[2] = "Mega Man 4.nes",[3] = "Mega Man.nes",[4] = "Mega Man 5.nes",[5] = "Mega Man 3 Revamped.nes",[6] = "Mega Man 3 Revamped.nes",[7] = "Mega Man 3 Revamped.nes",[8] = "Mega Man 3 Revamped.nes",[9] = "Mega Man 3 Revamped.nes",},
    ["total_swaps"] = 18,
    ["hk_complete"] = "Backslash",
    ["min_swap"] = 20,
    ["shuffle_index"] = 1,
    ["plugins"] = {},
    ["sound"] = true,
    ["nseed"] = 3987831,
    ["current_game"] = "Mega Man 3 Revamped.nes",
    ["max_swap"] = 20,
    ["frame_count"] = 18352,
    ["game_count"] = 6,
    ["seed"] = 20957061,
    ["game_swaps"] = {["Mega Man 6.nes"] = 3,["Mega Man.nes"] = 3,["Mega Man 5.nes"] = 3,["Mega Man 4.nes"] = 3,["Mega Man 3 Revamped.nes"] = 3,["Mega Man 2.nes"] = 3,},
    ["output_timers"] = true,
    ["game_frame_count"] = {["Mega Man 6.nes"] = 3600,["Mega Man.nes"] = 2665,["Mega Man 5.nes"] = 3021,["Mega Man 4.nes"] = 3066,["Mega Man 3 Revamped.nes"] = 3380,["Mega Man 2.nes"] = 2620,},
    ["auto_shuffle"] = true,
}