Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

The retail versions of modern consoles enforce cryptographic signatures on everything, so nothing will run on them without going though MS/Sony/Nintendo first.

Officially licenced developers have special devkit systems with more lax security.



sort by: page size:

Retail consoles only run code signed by Sony. When you become a licensed developer you get special consoles called devkits that can (among other things) run unsigned code.

Console version is using proprietary SDK and they can only provide you source code if you signed NDA with Nintendo. That's it.

Don't most consoles require the software loaded from said physical media to be made with the manufactuer's SDK and signed by their private key?

I think the point is that console game’s code has to be signed by the console manufacturer or the console simply won’t run the code at all.

They probably have contractual restrictions - agreements to help fight against unauthorized copying, or to protect the copyrights of people who create games on the system.

And in general, most console systems are a serious bundle of hacks, mostly tolerated by programmers by the sole fact that you can rely on every system to be identical.


You can actually run unsigned code on a retail Xbox One console officially. There are ports of RetroArch to it and all.

I suspect this permissiveness was a major reason it was never hacked throughout its full 8 year lifespan - homebrewers didn't need to enable piracy to do what they wanted.


Usually, console development comes with heavy NDAs, which makes it really hard to do any sort of FOSS development for such targets. Bit sad. It's like you have to write a game successful on PC before you could reach out to Sony/Microsoft/Nintendo and then get access to a SDK. And whatever integration code you write, you cannot publish for others.

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.


Afaik both Sony and MS (yes, even MS) do some internal QA before allowing a game to be published on their consoles.

Plus they don't allow (single player?) games to require registering with the publisher. So on the rare occasions I'm interested in a game from the top user hostile AAA publishers, I get it for console.


Kind of.. Consoles always use proprietary APIs.

Presumably the console manufacturers would not allow this. They want more control than that and don't want licensees acting as a sort of sub-licensor and building things for people like this.

You have to sign agreements with the console manufacturers - they get to set any rules the market will support.


The issue is that console SDKs are under NDA, meaning that open source tools can't target consoles because they would reveal details about the SDK. Some projects have workarounds for this, for example SDL maintains a private Switch port that you can get access to by emailing one of the maintainers with proof you're a Nintendo licensee.

The console toolchains are proprietary and locked behind NDAs. An engine cannot be both open source and support consoles. What it can (and Godot does) is have a closed-source version of the engine (or just plugins) that you are only permitted to license once Sony/Nintendo/MS has approved you. That version or those plugins can then contain the code required for the consoles.

You absolutely cannot ship GPL code on a console. The NDA license you sign with MS, sony, nintendo for their APIs are fundamentally incompatible with the GPL and prohibit code release.

True -- BUT MS/Sony/Nintendo allow developers to use cross-platform libraries. And better yet, this policy does not bar them from releasing high-quality products, regardless of what Jobs would have you believe.

This is false.

Sony and MS games can be programmed without licenses or devkits (which make it much easier to debug games by providing debug access not available on retail consoles).

Moreover, devkits are frequently made available for free by both companies to indie developers and even major partners.


The entire console market is retarded like that: you have to sign onerous NDAs, pay incredibly high fees for the "privilege" of creating additional software for the console vendors and thus making their consoles more valuable and all you get is some shoddy SDK with awful licensing terms (what? You used some (L)GPL'd code as your engine's base? Sorry, no can do. - You wrote your engine in an open source language that has no official support and you ported the runtime? Haha, LOL, no buddy, you can't give this back to the mainline developers, this contains our secret sauce, sucks to be you but you'll need to maintain this forever).

I have a PSVita and i really like its hardware, but honestly it was a waste of money since there isn't anything i can do with it. Switch also looks nice, but again it will soon be useless.

The best you can hope for with these is for someone to find some security flaw after the vendor has stopped supporting the device, that will allow homebrew development in the future. But by that time you might as well buy a cheap Chinese android device (or even better something like GPD Win that is a full proper PC in handheld form - though that isn't very cheap) and chances are it'll be both faster and better.


Maybe you'll only be able to run your own software after getting an expensive code signing certificate and going through an identity verification process. Or it'll be like games consoles, with the "dev" versions being different from the retail ones.

You are generally paying for unlocked firmware that will run whatever code you want, a feature that pirates would target on retail consoles. IIRC, some consoles also put more RAM in development kits.
next

Legal | privacy