Experimental Method

So, what is this page about?

This is to document a discovery made by greenpepperman14 on Discord

So basically, you can substitute ANY data.win (or a data.win equivalent, like game.droid) into GX.GAMES Exported files, and the game that the new data.win came from would actually load and play

This is only possible because, when compiling with the VM option on any platform, all scripts, objects, and other assets are located within the data.win, or their platform specific equivalent, and when compiling a VM Web Build, the other files are basically just a game.unx loader, which can be changed to load other files (like data.win files) by renaming them to game.unx

So the HTML file is basically just a Front-End for the Game Canvas, but also calls the JS file

The JS files are tied to the old game.unx, but can still load the new file just fine, but it just wont call specific files that the new file expects

The WASM file is less known, but I guess that is a sort of wrapper, that converts the instructions from the game.unx to something that the Browser can understand

The .data file that is sometimes present in these web ports are specifically compiled for the original game.unx, so it won't work for the new one

ALSO

This requires both the Web Build files and the replacement data.win file to be compiled by VM, NOT YYC

This is because YYC compiles scripts and objects into the executable, instead of the data.win, so it will absolutely not run

So what does this mean?

This method means that you can port really any GMS2 project to the browser without any Source Code, and without ever touching GameMaker.

But the nature of how this works means there will be many problems, such as:

  1. You can't fix any problems with the port, as you would need source code to do that
  2. The new game.unx file might rely on extensions, networking, or external files, which this method cannot provide, which depending on the game, it may mean this method won't work at all

Data.WIN Platform Specific Equivalents

There are many data.win equivalents that are platform specific, so here are a list of them:

  • data.win..............Windows Compiled
  • game.unx..............Linux Compiled / Web Assembly
  • game.droid............Android Compiled
  • game.ios..............Mac OS Compiled

also, I did not discover this, have not really used this method much, and am not an expert on this matter

I am just making educated guesses on how this method works

so the shit I said about what the WASM and JS files do could or could not be complete horseshit

idk

Also, thanks again to greenpepperman for discovering this

  • he has made some pretty cool Pizza Tower Mod ports with this method, although they do really need fixes, which can't be done unfortunately