NoelFB / Celeste

Celeste Bugs & Issue Tracker + some Source Code
MIT License
3.58k stars 425 forks source link

Game crash at level exit transition when alt-tabbing #30

Open dresswithpockets opened 3 years ago

dresswithpockets commented 3 years ago

Celeste crashes during the level exit transition when alt-tabbing back into the game. I think pressing buttons on my controller at the same time might be part of the replication, but I haven't been able to reliably replicate this issue - maybe about 15% of my attempts end in crash. I've only had this occur when exiting out of B or C sides.

System Details/Game Settings:

image

Stacktrace:

Ver 1.3.1.2
11/19/2020 12:31:13 AM
System.InvalidOperationException: A previous Draw call threw an unhandled exception. See InnerException for details. ---> System.ArgumentException: An item with the same key has already been added.
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at Celeste.PlaybackData.Load()
   at Celeste.Celeste.LoadContent()
   at Microsoft.Xna.Framework.Game.DeviceCreated(Object sender, EventArgs e)
   at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   at Microsoft.Xna.Framework.GraphicsDeviceManager.OnDeviceCreated(Object sender, EventArgs args)
   at Microsoft.Xna.Framework.GraphicsDeviceManager.CreateDevice(GraphicsDeviceInformation newInfo)
   at Microsoft.Xna.Framework.GraphicsDeviceManager.ChangeDevice(Boolean forceCreate)
   at Microsoft.Xna.Framework.GraphicsDeviceManager.EnsureDevicePlatform()
   at Microsoft.Xna.Framework.GraphicsDeviceManager.Microsoft.Xna.Framework.IGraphicsDeviceManager.BeginDraw()
   at Microsoft.Xna.Framework.Game.BeginDraw()
   at Microsoft.Xna.Framework.Game.DrawFrame()
   at Microsoft.Xna.Framework.Game.Paint(Object sender, EventArgs e)
   at Microsoft.Xna.Framework.GameWindow.OnPaint()
   at Microsoft.Xna.Framework.WindowsGameWindow.mainForm_Paint(Object sender, PaintEventArgs e)
   --- End of inner exception stack trace ---
   at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame()
   at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
   at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at Microsoft.Xna.Framework.WindowsGameHost.Run()
   at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
   at Monocle.Engine.RunWithLogging()