Ich weiß zwar nicht woran das Problem liegt (vermutlich an $game_temp), aber im neueren Maker (Ace) wird der Index des letzten Saves so berechnet:
Code:
  def self.latest_savefile_index
    savefile_max.times.max_by {|i| savefile_time_stamp(i) }
  end

def self.savefile_time_stamp(index)
    File.mtime(make_filename(index)) rescue Time.at(0)
  end
Bin mir sicher, diese Vorgehensweise würde auch im XP funktionieren.