MM-LINX - Super Mario Maker 2 Level Injector

nstall the MM-LINX homebrew application on your switch, to install levels uploaded to https://tinfoil.io/MarioMaker/ directly to your Super Mario Maker 2 Level slots!

Very early release, please be patient and it will get better with time as all of my applications do :) Feel free to post feature requests and bug reports.

This is currently hard coded to use the first user profile. Please ensure that Super Mario Maker 2 is not running, and that you have at least one SMM2 save on the first user's profile.

For maximum compatibility and stability, we recommend that you use ReiNX or SX.

Download: https://github.com/blawar/mmlinx

edit: 1.01 fixed sorting, press + to sort
edit: 1.02 added support for uploading your levels to tinfoil.io from MM-LINX
edit: 1.03 added file browser for installing levels from (sd, ftp, http, gdrive, usb, etc), search, ability to change user, translation (needs work), ability to copy files to and from smm2's save directly, themes, other stuff I probably forgot.
edit: 1.04 saving / loading is now much faster and does not overwrite your save progress; added columns for difficulty, rating, and course id; ability to unlock hammer and super flower on supported cfw's.
edit: 1.05 increased security, mandatory update. Cloud servers will no longer work with previous versions (downloads section will be empty).


mmlinx4.jpg
mmlinx3.jpg
mmlinx2.jpg
mmlinx1.jpg




Download: https://github.com/blawar/mmlinx
 

Attachments

  • mmlinx3.jpg
    mmlinx3.jpg
    442.9 KB · Views: 2,335
  • mmlinx1.jpg
    mmlinx1.jpg
    206.2 KB · Views: 778
  • mmlinx2.jpg
    mmlinx2.jpg
    99.5 KB · Views: 856
Last edited by blawar,
I'm just posting yo thank you again.
I've been playing some levels (and I'm stuck on several) and it works perfectly.
Thanks.
Nice glad your enjoying, i might start playing levels again. the past few months, i havent really been playing, just downloading levels lol.
 
Hi guys, i've got an icon issue does everybody have that too ?

Also there is no search button anymore.
 
@tglaria

All stages has been uploaded to MM-Linx/tinfoi.io

As a bonus for the Mario Maker 2 fans, I'm going to share a little project I been working on for a while.



There are packs from some familiar faces around here. I have indicate who uploaded the pack (Cris, Bazqux, Rodriguinho5677).

If I mislabeled a pack, I apologize in advance, please send the mistakes to [email protected] and someone will get right on it. (lol)

Hope you all enjoy!
Wow man, I can see that is a lot of effort you out there, thanks for sharing the levels, I see your last modification was jan 18th, are you going to continue updating that folder? best regards, you are the best!
 
Wow man, I can see that is a lot of effort you out there, thanks for sharing the levels, I see your last modification was jan 18th, are you going to continue updating that folder? best regards, you are the best!
I still rip stages. I just been working on trying to automate some of it, so i been ripping and saving, just havent uploaded yet. if you follow the patterns, i havent missed anything, but i just didnt get to upload. ill be around until either my switch dies, switch gets banned, or i completely lose interest in my only game. lol

even if i some how lose interest in mario maker 2, ill still do requests :D
 
  • Like
Reactions: jajajavier21
I still rip stages. I just been working on trying to automate some of it, so i been ripping and saving, just havent uploaded yet. if you follow the patterns, i havent missed anything, but i just didnt get to upload. ill be around until either my switch dies, switch gets banned, or i completely lose interest in my only game. lol

even if i some how lose interest in mario maker 2, ill still do requests :D
I hope you never lose interest in this project, I'm really thankful with you for this, yesterday I was trying to access the google folder but it don't allow me to see anything I already request access but it seems is not arriving to your email, can you provide access to this email please jajajavier21 @ gmail . com thanks again for all of your help. Best Regards
 
I hope you never lose interest in this project, I'm really thankful with you for this, yesterday I was trying to access the google folder but it don't allow me to see anything I already request access but it seems is not arriving to your email, can you provide access to this email please jajajavier21 @ gmail . com thanks again for all of your help. Best Regards
Ill fix it and post a new link.
 
Anyone help. I have downloaded the 8.1o version of MMlinx.
The levels appear in text format,when i click download i an download a leverl,however when i go to download anotehr level it overwrites the same save slot,how do i change save slots for each download?

Also i have just downloaded the Year 1 and Year 2 files,i can see there are hundreds of levels in each zip file.....How do i install these downloaded levels onto my switch as a full file?

thanks
 
Also i have just downloaded the Year 1 and Year 2 files,i can see there are hundreds of levels in each zip file.....How do i install these downloaded levels onto my switch as a full file?

thanks
All you have to do is unzip the archive you want, move it into the Checkpoint save folder for SMM2, and import it on the switch.

I haven't tried moving everything in one folder, but I'm not sure if the game could handle all that. Might test it one day.
 
All you have to do is unzip the archive you want, move it into the Checkpoint save folder for SMM2, and import it on the switch.

Where do i find the checkpoint folder? Do i create one on the SD card? I have so many games on my SD card but they are not named by title so idont know which folder SMM2 is.

--------------------- MERGED ---------------------------

All you have to do is unzip the archive you want, move it into the Checkpoint save folder for SMM2, and import it on the switch.

I haven't tried moving everything in one folder, but I'm not sure if the game could handle all that. Might test it one day.


Where do i find the checkpoint folder? Do i create one on the SD card? I have so many games on my SD card but they are not named by title so idont know which folder SMM2 is.
 
26 new packs added.

Packs to note: I've put all of the smmcollab worlds located here: https://smmcollab.home.blog/

I've also added Multiplayer packs for using with Switch-Lan-Play but I haven't completely tested everything out.

Theoretically player 1 should use any of these multiplayer packs, and player 2, 3, 4 use the packs shared by our friend Cris located in Year 1 folder.
20191012 Player 2 Lan Play Save
20191012 Player 3 Lan Play Save
20191012 Player 4 Lan Play Save

Id appreciate it if someone can test out my new multiplayer packs as the host, and someone else use the player 2/3/4 Lan play saves on other switches and see if hosting works. I will eventually test them myself, but its not a top priority for me right now.
 
  • Like
Reactions: jajajavier21
Where do i find the checkpoint folder? Do i create one on the SD card? I have so many games on my SD card but they are not named by title so idont know which folder SMM2 is.

By default it's in SD:\switch\Checkpoint\saves\

And just search for the folder with "SUPER MARIO MAKER 2" in the name. That's where you place each unzipped archive.

Hope this helps.
 
So my Switch is on its own VLAN that is firewalled off from the Internet, and I would like to allow it to download levels from the TInfoil service. The "tinfoil.media" site is behind CloudFlare, and I'm reluctant to open such a wide range of IPs up. So my idea is to set up a small reverse proxy and map the DNS name against it. This would work, if MM-LINX wasn't using TLS (which it of course does for good reasons).

So I've landed on two options:
1. I could self-sign a cert for "tinfoil.media" and inject my CA into the cabundle.pem I found in romfs. Unfortunately there's a scary-looking cabundle.pem.sig file in there that I assume will make that impossible without modifying the executable.
2. I could modify the URL strings in the executable. I admit I'm a complete noob at that, but here's what I tried:

Extract the main NSO from exefs
Convert it to ELF using nx2elf
Open the ELF in radare2 and edit the URL strings to HTTP while maintaining length, i.e. https://tinfoil.media/MarioMaker/Thumb/ becomes http://tinfoils.media/MarioMaker/Thumb/
Convert the ELF back to NSO using elf2nso
Put the new NSO in LayeredFS

Unfortunately the app stays at the black loading screen for a second or two and then crashes to the system menu without any messages. I don't own a domain name, for which I can get a valid cert, that is 13 characters long as "tinfoil.media" is. Otherwise I'd try that, should my messing with the string be causing this.

TL;DR
The ideal thing I think would be if @blawar could be so kind to add the ability to configure a proxy. I see references to libcurl, so that could be accomplished just by setting CURLOPT_PROXY. Or, if not that, make the level service URL configurable.
 
So my Switch is on its own VLAN that is firewalled off from the Internet, and I would like to allow it to download levels from the TInfoil service. The "tinfoil.media" site is behind CloudFlare, and I'm reluctant to open such a wide range of IPs up. So my idea is to set up a small reverse proxy and map the DNS name against it. This would work, if MM-LINX wasn't using TLS (which it of course does for good reasons).

So I've landed on two options:
1. I could self-sign a cert for "tinfoil.media" and inject my CA into the cabundle.pem I found in romfs. Unfortunately there's a scary-looking cabundle.pem.sig file in there that I assume will make that impossible without modifying the executable.
2. I could modify the URL strings in the executable. I admit I'm a complete noob at that, but here's what I tried:

Extract the main NSO from exefs
Convert it to ELF using nx2elf
Open the ELF in radare2 and edit the URL strings to HTTP while maintaining length, i.e. https://tinfoil.media/MarioMaker/Thumb/ becomes http://tinfoils.media/MarioMaker/Thumb/
Convert the ELF back to NSO using elf2nso
Put the new NSO in LayeredFS

Unfortunately the app stays at the black loading screen for a second or two and then crashes to the system menu without any messages. I don't own a domain name, for which I can get a valid cert, that is 13 characters long as "tinfoil.media" is. Otherwise I'd try that, should my messing with the string be causing this.

TL;DR
The ideal thing I think would be if @blawar could be so kind to add the ability to configure a proxy. I see references to libcurl, so that could be accomplished just by setting CURLOPT_PROXY. Or, if not that, make the level service URL configurable.

I plan to update my libcurl package to use the system proxy settings, like current DKP's libcurl does. would that resolve your issue?
 
I plan to update my libcurl package to use the system proxy settings, like current DKP's libcurl does. would that resolve your issue?

I don't think it would. Nintendo's telemetry and whatnot all use the system proxy settings, right? If so, enabling that would make everything sidestep the firewall (and also 90DNS, unless set up on the proxy). I'm also not sure if the system settings would allow configuring the full range of proxy protocols that libcurl supports (e.g. SOCKS), or if it'd just be HTTP proxying. Being able to use the SOCKS support in libcurl would be great.

I've been wondering if there could be a way to implement proxying for all homebrew without requiring special support or modification of the underlying libraries. There's stuff like socksify on PC, but that of course relies on dynamic linking. It would in any case be great to have separate proxy settings for homebrew because of the reasons above.
 

Site & Scene News

Popular threads in this forum