Même problème avec cette deuxième version. Ça freeze, « Pas de réponse ».
D'après un debug rapide, ça reste coincé dans une boucle qui appelle SDL_Delay avec un délai de 5ms. Cette boucle se trouve dans une fonction qui est appelée avec comme argument -1. C'est juste avant que tu fasses un « xxxxxx = "PreMenu"; » dans ton code, à priori.
Cette même boucle ne se termine que si Mix_PlayingMusic renvoie false (d'après « test eax, eax; je exit_loop »). Et du coup j'ai flairé le problème : mes drivers audio ne sont pas installés sur ce PC, et ton jeu n'aime pas ça

.
Tak tak, j'aurais pu gagner 20 minutes si c'était du logiciel libre.