My 12 year old and I made a little game in Godot and it turned out pretty playable.
I think in her peer group the second most popular device after the iPhone is the Switch. It would be incredibly cool if we could get our game to run there. I already found two GitHub repos with Godot ports, and this RAWRLAB announcement confirms that it will be doable on a technical level.
However, I reckon that we do not qualify for authorized Nintendo Switch developer. What would be the easiest way to get the game running on just our Switch?
I already ordered a Mig Switch and a dumper[1], but I'm not sure if this is the best way to go.
Nintendo really wanted to encourage indie gaming on the Switch, so any individual can register to be an authorized developer: https://developer.nintendo.com/.
I saw that initially and was encouraged, but my further research suggests that you need to buy a development kit about which I could find virtually no info. I can only assume that it is expensive.
It looks like a Switch dev kit is only ~$450 from Googling. I believe dev kits in the past were far much expensive.
"only"
If it's to dev a game with your kid, that pricey. Pricier than the console itself.
Pricier than to dev for android or iphone, or any laptop. Or the steam deck for that matter.
Expensive dev kits made sense for devs 20 years ago, but today they are just a way to lock the ecosystem.
You’re kidding right?
$450 for a dev kit is a steal compared to older console generations, which were thousands of dollars per device.
Also, I think it is completely fair for Nintendo to think: If you won’t spare even $450 for a dev kit, there’s no way we want your game.
By the way, consider what a Switch regularly costs: $299. You are paying Nintendo only $150 for the privilege of sending you a custom, low-run, modified device that is different in both software and hardware, combined with (likely) an account representative for business and technical questions. That’s kind of cheap.
Won't anyone think of the giant multinational corporations instead of the kids learning to program for once.
No kid is going to learn how to program in Assembly and C++, when interfacing with a custom microkernel, custom graphics API, and all of the technical requirements Nintendo demands (i.e. you must have a launch screen, loading times cannot be longer than X, read speeds cannot peak higher than Y), while cross-compiling your game and all dependencies to ARM, and precompiling all shaders ahead of time, for the Tegra X1, into your game. That's what developing for the Switch literally entails. Develop your game first and then you might get there.
This is a game console, not a PC. Developing games, for better or worse, whether it should be this way or not, is an extreme privilege. Sony basically never allows individual developers to register in any capacity. Xbox does, but if you want to actually publish a game, you're going to be in for a hard time.
It has around a 1Ghz cpu, you have no idea if their little homebrew games will stress that or need all the assembly tuning.
Kids have programmed games for their calculators. This is like “throw it together to show off your friends,” it doesn’t need to meet Nintendo’s UI standards.
In that case, unless it goes on the eShop (thus meeting Nintendo's standards), every single one of her friends will also need a devkit to be able to run it; as retail units can't decrypt devkit-encrypted games, nor vice versa.
Might as well get a Steam Deck before convincing Nintendo to send over 10 devkits for children.
Game consoles are arbitrarily restricted PCs.
It's not a binary choice. Kids can learn to program in 1000 different ways. Getting social Brownie points for pointing out someone else isn't being incredibly generous is pretty poor behaviour, I think.
Kids can learn to program in 1000 different ways, but will they?
The biggest motivation is to show-off your creation and if all your friends play on the Switch and your game isn't there, it might as well not exist at all.
I learned programming on a Commodore 64, because I wanted to make my own games. Back at that time the playing field was fairly level as evidenced by the fact that a couple of the prominent game developers were almost kids themselves.
you dont need any of that shite to run your own game on the Steam deck
You're comparing apples to oranges.
The Steam Deck is, fundamentally, a PC. PC software is written to run using "some" of a PC's resources, because PCs have a bunch of extra resource "headroom" for running userland software plus a bunch of other junk on them at the same time. You can run a game in debug mode, within an IDE, within Windows, on a Steam Deck. And maybe also OBS to stream yourself doing that!
The Switch — and all other game consoles ever made thusfar — are embedded systems: systems designed to run software in such a way that the software can make use of 99% or more of the system's hardware resources (because, per the unit economics of such systems, that's the only way to make the system's low per-unit BOM, translate to good perf for the software.)
Also, unlike with PCs, embedded systems can give a developer performance guarantees — a number of CPU cores, amount of RAM, etc. that will always be 100% dedicated to running your software, with even hardware interrupts being offloaded somewhere else. And the platform will be extremely uniform, with all retail units having (at least) those same numbers. (Though there may eventually be a revision of the hardware that bumps the guaranteed resources up for software that opts into that — see e.g. how the Gameboy Color runs Gameboy games, or the "New" 3DS, etc.) So, unlike with a PC, when writing embedded software, you can and should write it to use "all the resources" — to "wastefully" spend memory caching whatever you can, run background logic to pre-compute things, etc., so that your software can get the best realtime runtime perf. It's not like anything else is running. Take the Unix idea of a process being nice(1), and invert it.
This means two things:
1. when a game is running on a retail device — if you've developed it following best practices — then there's no extra room for anything else to be running. Your software, by design, hogs everything. The OS shrinks down to just running on one e-core of one accessory CPU (and on older consoles, gets terminated altogether, with the user software instead being expected to keep the hardware going using an exokernel library provided as part of the SDK.) There's no room to run an IDE or debugger. So retail devices fundamentally can't be used to develop games in such a way that they "mirror production" — to have the room to develop your game on such a device, you'd have to somehow build your game to use half the RAM and CPU it usually uses — but only sometimes. Which is likely impossible, for most software architectures; but even if it were possible, you'd no longer be mirroring production.
2. even with a devkit — essentially these days just the same hardware but with double the RAM to fit a debug build of the game (both for the debug symbols, and so that it doesn't need to take two hours to LTO the executable each time you rebuild like it does for building retail) — you still need a host PC, because you want development to mirror production at least somewhat closely, and that means that you can't be spending half the CPU budget on a userland debugger + telemetry. Instead, devkit hardware has a hardware debugger + telemetry, that feed one side of a USB-serial connection to a host PC, where the other side is a special IDE that knows how to talk to such a setup.
None of this is unique to game consoles, mind you. You do the same thing to develop for an Arduino, or a wireless router, or a smart watch, or your car's infotainment system. "Tethered hardware devkits that externalize the development environment so the embedded software can expand to fill the device" are just how embedded systems engineering works.
---
And yes, embedded-systems hardware ecosystems also often involve "QA" or "tester" units, that are basically retail units that either allow you to run [the ecosystem's specific, often proprietary] media containing unsigned code; or at least, allow you to install a specific signing key and then run media containing code signed by that key.
So you could, in theory, do your development by building for QA units.
(That is, you could, if you thought that printf debugging with two-hour iterations is the be-all and end-all of development cadence.)
Homebrew embedded-systems tinkering communities tend to ignore such systems, though, mostly due to the requirement of burning the media. Even when the media isn't proprietary, it's still often something like a surface-mount eMMC flash chip, where the embedded-systems vendor expects you to be able to program that and put it on your QA board (and will, of course, point you to their hardware support partner who will sell you a programmer for it.) While there are many hardware hackers among Homebrew people doing fun reverse-engineering attacks, there are few true Electronics Engineers in the homebrew scene who have these sorts of Shenzhen-parts-store-looking industrial test-equipment labs in their basements. The average homebrewer doesn't even own an oscilloscope. :)
It's just easier to either work with true dev kits (where all you need is to "convince" the thing that you're authorized to feed it software over the serial tether); and/or to reverse-engineer and exploit your way into a retail unit, such that you can then feed it software through some channel that is attainable for the average dev (usually, these days, that means getting the system to launch software from an SD card that was supposed to just be there to store state data.)
I don’t think buying her friends Steam Decks is a very scalable solution for this sort of thing.
A distinction that _they_ created to begin with.
"Expensive dev kits made sense for devs 20 years ago, but today they are just a way to lock the ecosystem. "
Nintendo doesn't owe you a cheap way to deploy your custom binaries to devices.
Buy a Steam Deck if you want that. Build it for Web GL or Android. Plenty of options exist.
I'm not sure what OP actually wants here. Even if you can get your game running on your own Switch, it's not easy to get it up on the store.
What they actually want is a cheap way to develop games with their kid and possibly share them over sneakernet with her friends.
Nintendo obviously doesn’t owe them that, and it doesn’t seem to be supported. But, this is a good place to cast around for ideas.
A Switch is simply not the right device.
You can punish a Web GL build of the game to Itch.io and everyone could try it straight from their phones.
We don't owe Nintendo to let them sell their junk.
Then buy a different product.
It's well known game consoles aren't the place to run custom code. If you can figure it out, power to you, but it's simply not a supported use case of the product.
Why not? Why should I not be allowed to run whatever I want on a device I supposedly own?
Make the game available on the Switch store for like $5. 450/5 ~= 100, so after 100 purchases you've made back the money.
Sure, you'd have to spend extra time to polish stuff, and that would probably not be super easy, but afterwards you have a fully published game the daughter and all her friends could install.
This might not be feasible. If you are making a game for yourself and your kid, you might not be using assets (art, sound, etc.) that you could distribute/sell in your game.
I made a game for my daughters 3rd birthday, recorded some Blipi and Coco Melon songs off youtube that I put in the game. I would not have the right to sell the game without securing rights to the songs (unless I want a lawsuit on my hands).
How would you distribute that over the Switch in the first place to the daughter and/or friends if you don't have the licenses to the assets you're using?
Mostly agreed, but it could also easily be $10k.
This is the insanity I don't understand.
Developing for desktop systems is essentially free.
Developing for iOS devices is $99 a year (plus store commission) for literally anyone.
Developing for consoles? Oh, you have to be a business entity, you have to pass approval process, you have to buy a dev kit, you have to... And then also pay a commission.
Thank US 1983 crash for that.
Gatekeeping is a way to avoid a minium level of quality, instead of a dumpster copy cat trash that inudates all the stores where there is no control.
Want to learn how to do consoles?
Get a toy handeld using ESP32 or Arduino.
PC gaming had tons of shovelware since the beginning and even got both good propietary and libre software games with great quality.
So did the Game Boy, which the NIntendo seal of quality was almost given for free because lots of games were junk even under the GBC era.
Exactly because anyone can do it.
Then explain some "games" for the Game Boy Color where the quality was very subpar.
You said it yourself, Nintendo platform bouncers let too many spoil the party.
Here is the thing, we aren't entitled to anything in life.
Don't like the way consoles work? Don't buy them.
Are you sure about that? I'm entitled to a lot of things if my country's laws are anything to go by, for some reasonable definition of entitlement. I could be entitled to running my own software on a Switch if lawmakers say so. The EU already forced Apple, so what's another platform?
Start a petition to see how far you will go, good luck.
There's quite notoriously no minimum level of _quality_ required to publish on the Switch store.
Here are three identical low-quality Switch games from three different publishers:
https://www.nintendo.com/us/store/products/word-chef-switch/
https://www.nintendo.com/us/store/products/chef-word-ardee-s...
https://www.nintendo.com/us/store/products/eat-your-letters-...
And here's the Unity asset that these games use almost verbatim:
https://assetstore.unity.com/packages/templates/packs/word-s...
If Nintendo wanted to gatekeep on quality, publishers wouldn't be able to publish Unity assets directly to the shop, much less multiple publishers shipping the same asset.
If OP's kid buys a Unity asset and publishes it directly to the eShop, she'll have done the same amount of work as these publishers and produced the same quality of app. She can't because of Nintendo's developer program, not because Nintendo would disqualify it as poor quality.
Just because some garbage ends up on the store, doesn't mean all the garbage gets through like on the PC and Android.
Even club bouncers occasionally let the wrong folks get in.
OP's kid has plenty of other options to play with game development.
I think the root case of the "kids can't write games for their peers" isn't Nintendo or anyone else. Both Apple and Switch are praised by the parents for their restricted platforms. You can give a kid both of them and be sure that that kid wouldn't install age-inappropriate apps or games. Self-made stuff needs to be moderated heavily or kids will share pornographic games (i mean they are kids. Who haven't tried to play at least one "age-inappropriate" game by the age of sixteen?).
In my humble opinion, Nintendo just don't want to do too much moderation, so they added hoops after hoops to jump through, until the amount of low-effort apps decreased enough for moderators to do their job thoroughly for every app.
I would say that the inability of sharing anything self-made is why apple and switch are popular choice to buy for your kid. No need to talk about safety measures, if you lock them in a system.
So, IMHO, the conflict isn't between kid devs and nintendo, its between kid devs and their peers parents.
Don't forget having to buy a MacOS device in this equation.
I bought an XBox, too.
Develop on a Hackintosh (either bare metal or VM, there's more than enough guides for both), build using Github Actions, and that's it. If you want to stay fully legit, rent a Mac instance from AWS or the myriad "Mac-as-a-Service" companies and be done with it.
Yeah that's pretty prohibitive for most people who couldn't spare $450 for a switch dev kit
A chunk of it is copy protection. Dev devices can necessarily run software not signed by the manufacturer, which means copy protection can be bypassed using PC-like methods and loaded to a dev device. Thus, they want to make sure the dev device is not the device that most consumers purchase.
I think it's a poor tradeoff for such a locked down environment, and anti-educational at that. Obviously console manufacturers have a different opinion on the matter.
It's a little more complicated than that.
Dev devices are typically physically different - containing debug lines and connections that are not present in retail. The Switch itself has 2 different types of dev console: One that looks very much like retail, and another that is about 4x as thick and has every port under the sun.
Secondly, these consoles are physically fused differently. Instead of having retail encryption keys burned into the SoC, they have custom keys issued to the developer installed. This means dev consoles cannot run retail software for lack of a key to decrypt it - but they will decrypt, and run, anything the developer signs.
Both of these things are physical modifications, ultimately. Dev consoles, thus, do not come off the same production line as retail; but are customized and modified devices with their own manufacturing process. That's not cheap.
Sure, the Xbox does get away with the retail console having a "Dev Mode." That's a testament to the Xbox's security having gone 12 years without a crack. Making physically different retail and developer consoles is a much safer solution for anyone who isn't Xbox.
You're starting at the wrong end. There is no need for there to be a separate "dev console".
It's because they want(ed) to keep a higher standard of quality on their store and keep homebrewers and cheaters away.
I believe you're right, but the first part didn't work. The Switch eShop has an incredible amount of shovelware.
Hence the want(ed).
Xbox One/Series has Dev Mode, but that's only for UWP apps which have severe resource restrictions. If you want to use the Dedicated partition you need a devkit.
The reasons why consoles lock down developer access so hard is because those interfaces are also very useful for piracy. On iOS, because you can get access to developer tools, you can use AltStore to sign arbitrary binaries with your own dev key[0]. Apple may have said "sideloading is a cybercriminal's best friend", but what they meant is "you're all going to steal iOS apps if we let the general public install software without DRM"[1].
The old Microsoft "Darknet" paper[3] built up a sort of theory of piracy, which I still find useful to invoke here. In the paper, they break the piracy ecosystem down into five pieces:
1. Rippers, who pirate new works and make them available
2/5. Seeders, who transmit new works across the network[4]
3. Players that are capable of rendering creative works
4. Indexes that provide information as to where pirated works can be found
To stop piracy, you need to block at least one of these steps. For a variety of reasons, legal action against any of these actors is difficult. Players and indexes are identifiable, meaning we can sue them, but they have legitimate, non-pirate-y uses. Rippers and seeders are hard to conclusively identify, making them impossible to sue. Of course, when people using the power of the state cannot identify criminals, they revert to collective punishment - or in this case, technical restrictions. You can't DRM the seeders or the indexes, but you can encrypt the media, which gives legal leverage over player vendors: either make your player enforce our licensing terms or do not play our media.
But there's still a problem: players can still play unprotected media. Rippers will just strip the DRM and release unprotected data that will play anywhere. This is why the RIAA fought tooth-and-nail to ban DRM-free DAT and MP3 players, and only settled for legal restrictions on DRM removal. Console manufacturers have the advantage that each new console is it's own medium - they can just make players that only play DRM-encumbered work, and then nobody can pirate anything, even if rippers strip the DRM. Hell, even if people jailbreak the players - you control the supply of players, so you can ensure whatever updates you use to 'prevent tampering' are installed before the user even gets to the console. And this is far cheaper than working on new obfuscations that some socially maladjusted loner will break in a few days.
[0] At least, if you trust Riley Testut with your iCloud account password.
[1] In general, people who want to enforce copyright rarely, if ever, come out and say it. The public is generally unsympathetic to copyright owners. It's easier to conflate security of their work from copying with security of your data.
[3] https://www.cs.ucdavis.edu/~rogaway/classes/188/materials/da...
[4] In the original Darknet paper, this was broken down into 'transmission' and 'caching'. This division makes sense for the FTP topsite scene, but not BitTorrent trackers.
Also you have to pay to get your game rated by the ESRB (at least if it's physical. Maybe not required to pay money for digital games from what I'm seeing with a Google search? Although we had digital games we still got ESRB rated).
It's been more than a decade since I worked on a console game, but I think at the time that cost us $750.
It’s not going to be crazy but you should expect to spend like a $1000 total for everything and have a real company set up
It's not that easy, unfortunately - I'm a registered developer (for the Wii U) and to be 'enabled' for Switch development, you need to jump through a bunch of hoops including describing your previous experience with games development and so on.
The barrier for Wii U was significantly lower thanks to the 'Nintendo Web Framework', a web tech SDK that let you build games without needing to use tooling like Unity or mess around with the more complicated SDKs Nintendo provide. You didn't need prior games dev experience to get registered for that.
That said - maybe they've relaxed the criteria a bit now to give first time game devs a chance to get published on Switch.
I don't think they're that strict, there's a lot of garbage on the Switch store.
The strictness isn't there to keep garbage off the console store. That was just Nintendo revisionism. It's there because they need to know who to sue into a crater if you use developer mode to play pirated games.
I'm not sure you can use developer mode to play pirate games but it's not out of reach I suppose. Seems like a lot of work.
So, on most systems nowadays, retail software is encrypted and signed with entirely different PKI from developer applications. You would have to obtain cracked retail software first, then resign it with your own keys. This is how you run pirated iOS apps now, which is only possible because Apple hands out developer keys like candy. It'd at least be theoretically possible to do the same thing with a console devkit and decrypted games.
This is also narrowly considering only the example of someone trying to pirate new releases for that given system. More broadly, the console manufacturers have class solidarity[0], and don't want you doing anything that might be a copyright violation - even if you aren't hurting them or their developers specifically. You could port over an emulator and steal older games, you could modify new games (even ones you own), or you could make fan games. They want absolutely none of that on their hardware, and the only way to guarantee that is to make sure everyone who touches a devkit is wearing contractual handcuffs.
[0] Vaguely Marxist term for "these people are in the same social situation, therefore their interests are aligned"
They're still that strict. I attempted to get authorized several months ago and Nintendo did not even bother to respond to a developer with a few phone game and app releases.
Their store is full of very nearly junk releases. How do they distinguish between a lot of experience, and a lot of experience with junk?
It’s extremely hard. I’ve tried to get my released games into the Switch and am rejected because I don’t have a team with console launch experience. Nintendo asks for team member resumes etc.
Of course at the same time they have tons of junk in the store. It turns out the trick is to just use a publisher.
I'm not sure the Mig Switch will allow you to play homebrew, it is designed to replicate the (apparently reverse-engineered) security protocol of game cards signed by Nintendo. The Github repos you've seen previously are probably your best bet, they're designed for homebrew development, but to launch these you'd need to mod your Switch: with an unpatched original model (could easily be verified on https://ismyswitchpatched.com/) it's as easy as connecting two pins with a paperclip and injecting a USB payload with your PC, with patched later models this requires a modchip soldered onto the board.
Even with that though, home-brew games are almost nonexistent on the Switch, or extremely minimal. Having the ability to launch a game with a modded Switch, doesn't mean you have access to the SDK, or the documentation. Without those things, you really can't write any useful programs. It's like gaining access to the cockpit of a plane, and having no manual or labels on what all the buttons do.
If you truly want to develop a Switch game, you need the SDK, and dev hardware is basically necessary as well. That's only coming from a deal with Nintendo.
The very same websites and forums and Discord servers where the people who come up with jailbreaks for the Switch hang out, can also point you to leaked copies of SDKs, and ways to use these with a jailbroken switch and/or an emulator like Yuzu. (After all, while most published console homebrew — including jailbreaks — use ground-up rewrites of support libraries, it's a lot easier to tinker on Proof-of-Concepts for exploit chains using the official SDK.)
Funny enough, you can find all sorts of dev hardware for old consoles on eBay... and yes, that's despite all such kits being closed-lifecycle systems that are supposed to be returned to the OEM when no longer used. (I think the main way these make it out into the market, is through the company that owns them going bankrupt and getting its assets liquidated.)
Modern console devkits don't boot unless they have an Internet connection through the manufacturer's VPN, so buying devkits on eBay is useless now. They started doing this with the Xbox One.
The reason why they did this is because of leakers. The Xbox 360's devkits connected to a separate Xbox Live network called PartnerNet, and anyone who wanted to test Xbox Live functionality - e.g. buying games or DLC - needed to actually upload their game to PartnerNet. This meant that everyone with a devkit got full access to a lot of prerelease games.
There were rings of people with devkits leaking games for gamer clout. The way they got access to the hardware was interesting. Microsoft actually didn't let liquidators touch the consoles[0], but they still needed to dispose of them. The electronics recyclers Microsoft hired didn't do a good job of this, so there was a cottage industry of people taking debug fused CPUs off destroyed motherboards and swapping them onto retail boards. This would give you something identical to a low-spec devkit that lets you run unsigned code and connect to PartnerNet, but doesn't have any of the crazier debug capabilities useful for development.
[0] Notably, the state of Rhode Island tried liquidating the devkits of the Kingdoms of Amalur developers and got stopped by Microsoft
Interesting! Has anyone gone to the effort to jailbreak the devkits + reimplement open versions of any network services the devkit depends on?
No, you're better off jailbreaking retail units.
That being said, most retail jailbreaks also let you jailbreak development consoles anyway. Development and retail hardware is very close to one another, they differ purely in what debug interfaces are available and what DRM gets enforced.
One major reason for that is that Nintendo aggressively permabans Switch devices that appear to be modded, preventing them from ever being used online.
This usually won’t happen if you don’t pirate anything, cheat or do anything that looks like either of those, but there’s always a risk
It's just a worse Steam Deck at that point.
Homebrew exists on other consoles with this like the PS4 or PS3. There are zero online games worth playing on switch.
You can run full ubuntu on it, so I guess people don't see much need for "homebrew". You can just run any game that compiles for arm linux on it.
devkitPro (libnx) has a complete OpenGL implementation with solid SDL2 port. I have ported my game engine to it with ease. There are even homebrew Godot ports for Switch that have been going on for years now. There's absolutely no trouble with writing proper homebrew for the Switch, no deals with Nintendo necessary.
How does the Mig Switch site not say at all what the product is? I clicked around for two minutes and still have no clue what it is or does.
It is a flashcard. It lets you load copies of games onto a SD card and the Switch will read them as official cartridges. The site mentions that its only for backups of your own purchased games, but most people buy them for piracy.
That's very interesting, thanks, I didn't realize you could load downloaded games onto a Switch like that. I imagined they have some sort of hardware verification.
They do, this is a new and exciting product, likely with an FPGA built in to bypass those hardware locks.
Overall this is very interesting. The game switching mechanism seems a bit fiddly though and I hope there will be a version with a button. I wouldn't be surprised though if the whole operation will be shut down completely by Nintendo so it might not be a bad idea to buy one. The same thing happened with the DragonInjector (small payload runner for jailbroken switches that fits in the cartridge slot).
Well one of it's main uses is playing pirated nintendo switch games, which they're not going to advertise.
Sure, but I guess we all know what "backups" is code for. I just didn't realize they managed to bypass the protections for the Switch.
Law enforcement knows what backups is code for, too
The thing they call for when they see a black person?
A product description is available if you click the “View full details” link to the bottom right of the Buy button, which leads to https://migswitch.store/products/mig-switch-pre-order. I agree that that information should be more prominent.
Its a flashcart
I'd recommend canceling your Mig Switch order.
First and foremost, it financially supports some very sketchy players in the commercial piracy (under)world.
Secondly, it won't let you play homebrew games - only officially signed nintendo software.
Thirdly, you'll have to keep your console offline forever, if you plan to use it - you can bet Nintendo will start revoking cart certificates and banning consoles at the first opportunity (each genuine cartridge is uniquely identifiable).
We have completely free solutions to both """backups""" and homebrew. Your best bet is to find a cheap model with an unpatched bootrom, and your second best bet is to install an rp2040-based glitching modchip (or find someone to install it for you, if you're not comfortable with microsoldering).
What online switch game is worth playing? I'm sure the mig will be decrypted, and they will just fake the signature for the homebrew games. I think that's how some of the older homebrew worked. The scene is pretty dead since smartphones exist though.
I agree he should just get an old one but aside from maybe not liking the mig guys I don't see a problem with the product. The amount of blood from mining in Africa for my minerals probably isn't too moral either.
That's not how cryptography works.
Can you explain how it works? I read a bit here. https://wololo.net/2024/01/10/it-appears-team-xecuter-are-ba... it seems you can use different game certs to make it launch.
Each physical cart has a unique certificate, signed by a private key held by Nintendo. That certificate is verified locally by the console, against a public key in the firmware. Without CFW, you have no way to bypass that signature verification.
In short, the flashcart works by making a full clone of the cart, cert and all. The console doesn't know it's not talking to an original game. That is, until Nintendo's servers notice multiple consoles playing the "same" cartridge at the same time.
If you really are only making and playing backups of your own games then you'd probably be fine, but I don't think anyone really buys these products with that use case in mind.
Thank you for your explanation. I thought homebrew would be possible if you have a legit game, have homebrew then just use the cert to play it and make the game console think it's a game. I think if it like a GameShark, you load it with a cert then you switch the game.
Everything is signed, there's a chain of trust.
The unique certificate is mainly used to verify that a cart is authorized to be played online, the game files themselves are signed in their entirety and a console not running CFW will not accept any modified files.
Buying a Switch in the first place supports some very sketchy players.
The console itself is practically a loss leader, it's buying the games that's sketchy :P
To clarify my overall stance, I am:
Broadly anti-nintendo (good games, sketchy company), extremely pro- modding and homebrew, mostly pro-piracy, but firmly against the commercialization of piracy.
Making things available for free is good, taking things just so you can profit from them yourself is bad - and that's how I see MigSwitch et al.
I honestly don't get why console makers get a boner at the thought of disallowing third party software.
What do they gain out of this?
With proper security protocols you can sandbox your application well enough that hackers shouldn't be able to get to the OS.
And if they do find an exploit, the vendor can always force an OS upgrade, and prevent downgrades with hardware fuses, with new games requiring the latest OS.
It's not like console vendors aren't doing all this right now.
Making piracy more difficult, primarily.
I think that is right, but I also think that quality control is very important to console manufacturers, particularly Nintendo. You don't think about it so much because the consoles haven't changed that much in market position in years.
There is lore that bad quality software destroyed the 2600. Battles SEGA and Nintendo, SEGA and Sony, Sony and MSFT really depended a lot on the quality of titles and the users experience. So they tend to want to control the experience more then say Google or Apple do on the phone. You can have shitty apps on a phone, but its a much bigger problem for a console.
It's largely the same reasons Apple doesn't want alternative app stores on their phones
Royalties.
Quality Control.
Brand Alignment (historically a big deal for Nintendo).
Scheduling input.
Security by obscurity.
If you want a device that does everything buy it. I don't care if my Roku doesn't do something all arm devices can do even though it can. I didn't buy a PS4 to install Ubuntu I want to pop a game in.
Tragedy of the commons. By making the barrier to entry high, it means that only significantly capitalized businesses with significant assets to wager and lose can actually publish anything. It means that there's (less) app spam, because not every couch publisher can type "ChatGPT, make me a game with the default Unity assets."
Unrelated but I’m kind of terrified what the mig is going to do to the market. Crazy piece of tech but the signed carts getting cloned are going to get real interesting real fast.
Your best bet would be to buy an unpatched Switch from eBay (https://www.ebay.com/itm/144952360896, etc), make or purchase an RCM jig, and dive into the homebrew scene. GbaTemp is a good place to start.
Outside of buying an official dev kit, I think that may be your only option.
If you're dealing with a Nintendo Switch that has the RCM exploit, that is probably the easiest path to getting unsigned code. I think Mig Switch is probably only useful for commercial game backups and piracy.
I have only used the RCM exploit to boot Linux, but I believe you can also use it to boot custom firmware like Atmosphere, and presumably that is the path to which you could see your own games running in Horizon.
I wouldn't recommend using the mig unless you're willing to risk a console ban from all online services (if you care about that).
Just email Nintendo. They sometimes make exceptions for interesting indie developers and/or hobbyists. And the dev kits are affordable.
The migswitch will not allow you to run unsigned code, only clones of official cartridges. Get an old “unpatched” v1 switch or newer with a rp2040 modchip.
Others have commented on homebrew, but there are a couple "game engines" available for the Switch that don't require modding. Nintendo released their own, Game Maker Garage, which uses a block-based coding environment. There are also two I know of that use a more traditional programming language: SmileBASIC and Fuze.
Both are similar to PICO-8 or other "fantasy consoles" where you get a full environment that runs on-device, with a code editor, tools for editing sprites, tile maps, music, and sounds, and a library of stock assets. Fuze also has a cheap "player" app so your kid's friends wouldn't need to buy the full app to play anything she makes. I've only poked around them a bit, but they seem like pretty capable environments that might be a good option for a kid that's interested in programming. The obvious limitation is that you're locked in to that platform - as far as I can tell there's no way to run your games on PC.