Tutorial  Updated

Play/port your GameMaker games on NintendoSwitch

DISCLAIMER:
THIS TUTORIAL IS A WIP, I'm still (eventually) updating it to contain the latest methods/fixes to allow mostly any gamemaker game to be ported onto the switch. Take in mind this guide is still incomplete, but does contain valuable info to start porting!


So... As you might (or not) already know there is a way to run different Gamemaker games by "overwriting" the main game.win file of an existant switch-gamemaker game (like Undertale for example) with another one (props to Chocolate28 who originally discovered this method). Hoowever, some games might not work properly or might not even launch at all! So here I am, with a guide that will most likely help you fix most of the relevant issues, and hopefully will guide you through the process of doing it so. Good luck!

REQUIREMENTS:

• Having Atmosphére CFW up and running (guide here)
• Having a gamemaker game installed on the switch ("DELTARUNE Chptr 1" is the recommended target)
• The data.win file of the game you want to port (You can find this in your game's installed location, sometimes it's embedded inside the exe of the game itself, so just open it as if it was a zip file and you may find it there!)
• The super awesome but somewhat tricky tool... UnderModTool aka UMT by krzys-h (download here)

LET'S START:

First compilation/testing:
You will want to open UMT tool (aka Undertale-Mod-Tool huh) and once opened drag your data.win file from the game you want to port inside this tool. Once loaded we will just try to compile it and see what's working and what's not.

To compile it again with any changes you've done just go into File >> Save, and save the new modified file as "game.win". Now create a folder named "010023800D64A000" (Deltarune's TitleID) and inside this folder create another one called "romfs", now place your "game.win" file inside this romfs folder. You can now place this folder with a bunch of numbers inside your sdcard to inject it in your switch, you must place this folder inside sdcard:/atmosphere/content/

Great! Now whenever you boot Deltarune in your switch you should see your game running!
Wait... it's not running?
Oddly expected

Time to get hands dirty and fix things by yourself! This part is a little more advanced than what you may think, so there's that, nonetheless... I believe in you!
Welcome to the awesome world of GMS decompilation and game modifying! (aka Gamemaker's modding hell)

First issue, Resolution Scale:
Usually lots of gamemaker games run in a window of a certain resolution, the switch can kind of handle different resolutions but only at supported scales. Most of the times this is the only fix you need to make the game display at all. So, go back to UMT, and with your data.win loaded double click on General Info in the left panel and look for Default windows size to check the resolution values. These values must be compatible with what the switch supports, so set them to 640x480 if the game uses 4:3 ratio scale or set them to 1280x720 if the games uses 16:9 ratio scale. Sometimes different values are valid and can cause much better image results than others (wide resolutions for example) so just play along with them while testing to see what works best for you.
Tbh I still have no clue to this day what the full supported resolutions are, so just try and let me know what worked and what didn't, ty!

Test again, Compilation/Testing reminder:
Now try and do the compiling process you followed earlier (File, Save, game.win...) and save the new modified game.win file in your sd card where you placed earlier the old one. This is how you are going to do the testing for the rest of the porting process, so get comfortable with it (because you're gonna be doing it a A LOT).

Uncommon issue, Collisions: (Todo, quote the use of the flag "FastCollision" system)
Now that your game is likely booting and all... you might have noticed that when you collide with certain objects, these don't have a proper collision (if every collision works fine just skip this step) and you would sometimes get stuck within those. To fix this you will want to navigate to the room where this collision is glitching and make sure it's marked as a solid object. So go into the left panel >> Rooms and search there for the room (go in fullscreen mode to see the whole room displayed). Once found your room, locate the collision object, it's usually an ugly block or something like that. Once found the collision object, double click on it and it will highlight the object in the object-list above, double click on the one highlighted and you will be now in that object's property panel. Now once there make sure the Solid checkbox is ticked, if it already is, you might want to go into the main character object properties and check the Solid box there as well (disclaimer: making your character solid can cause additional issues).
If this tips weren't enough to fix the collisions, please, report it and let me know here!

Implementing, Joycons:
You might have noticed that joycons work out of the box but only do so when attached to the console in handheld mode. To fix this you're gonna have to create an object that handles the joycons processes. Find the "Game Objects" section in the left panel and right click on it, click then on "Add". Name this object whatever you want and uncheck the Visible checkbox. You now want to place this object in the first loaded room, to do this open the Rooms section and navigate to the one where your character spawns, double click to open it and now navigate to the Game Objects section and find your object (do not click on it). While the room view is opened drag your newly created object to the room viewport. If UMT asks you to select a layer click on the Layer section above in the room's property panel and select any layer, then drag and drop your object in the viewport again and your done. Great! Now let's add some code! Double click on the created object and double click behind "Create" in the Events section. A new entry will be created but it's empty, you will see now the two buttons at the right of the new created entry, it's a plus sign next to a cross, click on add (+). Now a new code entry will be created, double click on it.

[THIS TUTORIAL IS A WIP]
 
Last edited by KardchCode, , Reason: update altar link and a few advises
No.... I couldn't find a game that had a new enough version of gamemaker. Or maybe it's another issue, I don't know for sure :(
Oh thats sad :( I tried to play it on Android installed on my Switch, but the it wasn't really a nice way to play Untertale yellow. So I stick to the desktop version I guess xD
 
No.... I couldn't find a game that had a new enough version of gamemaker. Or maybe it's another issue, I don't know for sure :(
I'm also starting the process of getting UTY on switch with this method. what games have you tried? I was going to try using Katana Zero, since its the most recent game made with GMS that i own.
 
I've tried with Katana Zero and got the exact same error message as UT and DR. So, I've downloaded moonleap and tried with the just a game.win file, and did not get an error message, but the game crashed. So I tried putting the audio files and splash image in my romfs folder, and got to the splash screen, then a crash. I feel like I'm super close to getting this to work, though. Gonna fiddle with it some more and report back.
Post automatically merged:

 
Last edited by JohnnyBeeMon,
I've tried with Katana Zero and got the exact same error message as UT and DR. So, I've downloaded moonleap and tried with the just a game.win file, and did not get an error message, but the game crashed. So I tried putting the audio files and splash image in my romfs folder, and got to the splash screen, then a crash. I feel like I'm super close to getting this to work, though. Gonna fiddle with it some more and report back.
Post automatically merged:


I've gotten the splash screen to show, the furthest i've gotten was with zeroranger I think? I assume that port has some sort of debug enabled which meant I could see the error in regards to the audio_bus. If what we were theorizing is true then UTY requires the newer version of GMS, I think the update with audio FX came out like march or april of 2023? So if there was any GMS game that came out past that point, that'd probably be our best option to try and port it with. I just can't find a game with a newer version of GMS. Turnip Boy Robs a Bank releases in a few days, supposedly using Gamemaker. Maybe we'll get lucky and it'll work with that game. Let me know if you figure anything else out!
 
I've gotten the splash screen to show, the furthest i've gotten was with zeroranger I think? I assume that port has some sort of debug enabled which meant I could see the error in regards to the audio_bus. If what we were theorizing is true then UTY requires the newer version of GMS, I think the update with audio FX came out like march or april of 2023? So if there was any GMS game that came out past that point, that'd probably be our best option to try and port it with. I just can't find a game with a newer version of GMS. Turnip Boy Robs a Bank releases in a few days, supposedly using Gamemaker. Maybe we'll get lucky and it'll work with that game. Let me know if you figure anything else out!
as far as i know, Moonleap was developed for a game jam and released on switch in March 2023, and when i used it as a base, i did not get the audio_bus error. hopefully youre right about Turnip Boy, and if I find anything before then, i'll be sure to post updates.
 
Hey, this sounds Incredibly interesting, but I want to know 2 things.
1. If I want to port (for example) undertale yellow, and the sounds and music are in a separate folder next to the data.win, will the compiled data.win contain all the Audio? (or is that the point of compiling the file in the first place?)
2. Can I save the game, restart the switch, launch the modded deltarune and continue from the spot I saved?
 
Last edited by Elchmann,
Hey, this sounds Incredibly interesting, but I want to know 2 things.
1. If I want to port (for example) undertale yellow, and the sounds and music are in a separate folder next to the data.win, will the compiled data.win contain all the Audio? (or is that the point of compiling the file in the first place?)
2. Can I save the game, restart the switch, launch the modded deltarune and continue from the spot I saved?
I have attempted several games as a base for Undertale Yellow with no success. i have also recenntly tried using some of the scripts in the modding tool to import those folders directly into the game, but something tells me that that would cause issues somewhere else. regardless of using a game.win with the audio files imported or not, the farthest iv gotten is a splash screen and a crash with no log.. hopefully a game using the latest version of GM:S will release soon, so we can try using it.
 
I'm trying to run the steam version of the game, Dreamcutter. The game was released around a week ago (02/02/24) on the Switch but has been released on Steam since May 2023. Since I'm just porting the Steam version, I don't think I need to use a separate GMS game to use as the base.

When trying to import the data.win into UMT, I get a lot of errors which I feel might be preventing me from running the game.
  • Invalid value for resource ID of type UndertaleChunkSPRT: 825 (There are only 778)
  • Invalid value for resource ID of type UndertaleChunkSPRT: 824 (There are only 778)
  • Invalid value for resource ID of type UndertaleChunkSPRT: 824 (There are only 778)
  • Warnings occurred during loading. Data loss will likely occur when trying to save!
    • This error code shows up when exporting: Errors occurred during loading. High chance of data loss! Proceed at your own risk.

However, when it comes to exporting it, besides the error at the end, it comes out fine but still wouldn't run.
I changed the resolution to from 1080x1920 to 1280x720 and included the audiogroup1.dat and audiogroup2.dat but the game would just crash before reaching the menu. I tried putting the game.win into the Deltarune title folder, but that didn't work. Also tried to put this in Dreamcutter's title folder and run it but it also didn't work. I did look around the scripts to see if there was something that could help, but I don't know what I'm doing so I didn't mess with it.

I am currently stumped as I don't know where to go from here since I am not given any error code besides "An error has occurred" and this is my first time doing this.
 
I'm trying to run the steam version of the game, Dreamcutter. The game was released around a week ago (02/02/24) on the Switch but has been released on Steam since May 2023. Since I'm just porting the Steam version, I don't think I need to use a separate GMS game to use as the base.

When trying to import the data.win into UMT, I get a lot of errors which I feel might be preventing me from running the game.
  • Invalid value for resource ID of type UndertaleChunkSPRT: 825 (There are only 778)
  • Invalid value for resource ID of type UndertaleChunkSPRT: 824 (There are only 778)
  • Invalid value for resource ID of type UndertaleChunkSPRT: 824 (There are only 778)
  • Warnings occurred during loading. Data loss will likely occur when trying to save!
    • This error code shows up when exporting: Errors occurred during loading. High chance of data loss! Proceed at your own risk.

However, when it comes to exporting it, besides the error at the end, it comes out fine but still wouldn't run.
I changed the resolution to from 1080x1920 to 1280x720 and included the audiogroup1.dat and audiogroup2.dat but the game would just crash before reaching the menu. I tried putting the game.win into the Deltarune title folder, but that didn't work. Also tried to put this in Dreamcutter's title folder and run it but it also didn't work. I did look around the scripts to see if there was something that could help, but I don't know what I'm doing so I didn't mess with it.

I am currently stumped as I don't know where to go from here since I am not given any error code besides "An error has occurred" and this is my first time doing this.
Yeah this looks like the typical issues with UMT when importing non Undertale games heh. The tool is built targeting proper decompilation of both Undertale and Deltarune but has wide support indeed for many GMS games, now some may fail to import properly as is probably the case here. Thing is, whenever you get import errors that usually impacts exporting, as the gms executable expects certains blocks of data in the data.win file. Still, you might get away with them if there's not too many or if they're not essential at all.

So, if I were you I would copy the log and report an issue in their github (https://github.com/krzys-h/UndertaleModTool/issues/new/choose), or just ask them nicely in their Discord for support (previous link too).

Now, you might wanna try as well doing a regular import/export as you've done already with the steam version, then a quick execution test trying it on your computer (just replace your steam game data.win file with the "new" one full of errors and play it, just to see if it's actually an issue of the tool or the switch environment itself).

And yep, this is actually part of what porting a gamemaker game is, welcome! XD
 
I have attempted several games as a base for Undertale Yellow with no success. i have also recenntly tried using some of the scripts in the modding tool to import those folders directly into the game, but something tells me that that would cause issues somewhere else. regardless of using a game.win with the audio files imported or not, the farthest iv gotten is a splash screen and a crash with no log.. hopefully a game using the latest version of GM:S will release soon, so we can try using it.
any progress?
 
You can usually tell because luckily UMT shows the gamemaker version so if two data files are very close to each other they are more likely to work but UTY is really recent in bytecode version (I believe it's like 2023 or 2022 something).
Post automatically merged:

You can usually tell because luckily UMT shows the gamemaker version so if two data files are very close to each other they are more likely to work but UTY is really recent in bytecode version (I believe it's like 2023 or 2022 something).
 
Anybody have an info on the supported resolutions for the console? Trying to port over a game with a weird 4:7 ratio and not sure how to adjust it.
 
I've tried with Katana Zero and got the exact same error message as UT and DR. So, I've downloaded moonleap and tried with the just a game.win file, and did not get an error message, but the game crashed. So I tried putting the audio files and splash image in my romfs folder, and got to the splash screen, then a crash. I feel like I'm super close to getting this to work, though. Gonna fiddle with it some more and report back.
Post automatically merged:


Hi, any progress? I'm also trying to play Undertale Yellow on Switch, I had the same problem as you but with the game "Turnip Boy Robs a Bank". I start the game, it just loads that image and after a few seconds it closes.

It seems that the only file that actually works is splash.png as the only thing that changes is that loading screen.

In case the error keeps happening because we need a game with a more updated GameMaker, it seems that they are going to release "The Bunny Graveyard", maybe with that game it will work.

These were the files in my RomFS folder.
 

Attachments

  • 1731394921604.png
    1731394921604.png
    6.6 KB · Views: 65
I was wondering if it was possible to mod undertale using undertale red and yellow. I tired just to use the deltapatch with the game.win instead of data.win but the checksum didn’t match. Should i try to use my pc undertale use deltapatch and try to convert it using your tutorial? Would it even work?

Sorry for being late to the thread lol i just found it when trying to mod undertale on switch.
 
Hi, any progress? I'm also trying to play Undertale Yellow on Switch, I had the same problem as you but with the game "Turnip Boy Robs a Bank". I start the game, it just loads that image and after a few seconds it closes.

It seems that the only file that actually works is splash.png as the only thing that changes is that loading screen.

In case the error keeps happening because we need a game with a more updated GameMaker, it seems that they are going to release "The Bunny Graveyard", maybe with that game it will work.

These were the files in my RomFS folder.
I'm sorry to be the one to tell you this, but is not goin to work with turnip boy, let me explain

Gamemaker games uses "runners" the runner ver of a game is always goin to be the gm runner were the game got compiled,
you can see the runner when you open the game on undertale mod tool right next to the game name,
now you can't run a game.win that uses "2023.11" in a game that uses "2022.2"
both runners need to be the extact same for get the game working

Turnip boy uses 2022.0 and
Undertale yellow uses 2023.4

So you never gona get it working with turnip boy, you need to find a game that uses the same runner as undertale yellow

Note: there are multiple versions of a single runner like
2023.2.0.71, 2023.2.1.75, etc
The last 2 numbers never shows in undertale mod tool, so sometimes you think you have the right runner but it doesn't work because of that
 
  • Like
Reactions: hippy dave
I successfully ran Undertale Yellow on the Nintendo Switch, but I'm facing an issue where I'm stuck at the beginning of the game when I enter through the door.
Post automatically merged:

The problem has been solved; it's now working well on the Nintendo Switch! 😍😍😍 I will test it more to see if I encounter any new issues.
 

Attachments

  • IMG_20250305_140846.jpg
    IMG_20250305_140846.jpg
    2.2 MB · Views: 47
Last edited by miharb,
Anyone tried UFO 50 yet? I noticed it has the giveaway data.win file but haven't checked versions or anything.
Post automatically merged:

Computer (UMT) says no
View attachment 491216
you can try undertale mod tool comunity edition, is a modified ver of umt that can read more complex code [mainly designed for edit complex code in pt but works with other games]
 
  • Love
Reactions: hippy dave

Site & Scene News

Popular threads in this forum