Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

GMEdit

A high-end code editor for all things GameMaker · By YellowAfterlife

GMedit latest builder not working

A topic by PolyCrunch Games created Aug 25, 2022 Views: 215 Replies: 2
Viewing posts 1 to 3

Hi YAL,

I finally updated the builder plugin from your github but it's giving me this stacktrace:

Writing Chunk... OPTN size ... 0.00 MB
Writing Chunk... LANG size ... 0.00 MB
Writing Chunk... EXTN size ... 0.00 MB
Unhandled exception. System.Exception: Can't find PE header
   at GMAssetCompiler.Machines.Windows.GetDllMachineType(String dllPath)
   at GMAssetCompiler.Machines.Windows.UnmanagedDllIs64Bit(String dllPath)
   at GMAssetCompiler.Machines.Windows.CheckDllMachineType(String _proxyFilename)
   at GMAssetCompiler.Machines.Windows.IsProxyValid(String _proxyFilename)
   at GMAssetCompiler.WADSaver`1.WriteExtensions(IList`1 _data, Stream _s, IFF _iff)
   at GMAssetCompiler.IFFChunkHandler`1.Save(Stream _stream, IFF _iff)
   at GMAssetCompiler.IFF.WriteChunks(Stream _stream, TextWriter _out)
   at GMAssetCompiler.WADSaver`1.Save(GMAssets _assets, Stream _stream, List`1 _extraFilenames, Dictionary`2 _extraAttributes)
   at GMAssetCompiler.IFFSaver.Save(GMAssets _assets, String _name)
   at GMAssetCompiler.Program.CompileProject(GMAssets _file)
   at GMAssetCompiler.Program.Main(String[] _args)

I'm on 2022.6 if that makes any difference.

Developer

I have pushed a new version. There were two factors to this:

  • A recent .NET 6 Mac fix PR changed the target machine flag from 64 (Windows) to 2 (Mac) and I didn’t notice this when merging my own and new changes. This was causing GM compiler to attempt checking the header of DyLib, which in turn crashes the compiler if the file isn’t a valid DLL (fixed in beta I think)
  • Steamworks extension in particular is as bleeding edge as it gets (it also already dropped x86 support despite x86 still being supported in stable) and requires a lot of additional (and undocumented!) logic that I had to spend a day to implement.

Thanks the fix worked perfectly.