Earlier quoted context omitted.
> if it's running on an ARM processor does it just run the instructions directly? You can't just run random instructions like that. That code is compiled with the assumption that there's the Switch's OS and hardware underneath, which means it will do all kinds of things, like calling directly into the kernel and assuming a particular address space layout, that would crash it under a different OS. ARM has hardware vir…
I think it does beg the question though, of whether it might be possible to dump the Switch OS and firmware and run it on some alternative ARM hardware (with some modifications for redirecting weird custom chips). IIRC the Switch is running an overclocked Tegra (X1?) IANAL, but in the US at least, I think every person would need to buy their own Switch and dump the software themselves for it to be even remotely legal…
Experimental Nintendo Switch Emulator written in C#
101–110 of 172 posts
Re: Experimental Nintendo Switch Emulator written in C#
#102Earlier quoted context omitted.
The current ARMeilleure seems to emit x86 instructions directly and execute them, so never really using the intermediate representation of Jit compiler of the .Net runtime. However the previous cpu emulator apparently emitted .Net byte code and used RyuJIT (the .Net jit) to emit the final native code. > if it's running on an ARM processor does it just run the instructions directly? So maybe? There are some passes in…
> However the previous cpu emulator apparently emitted .Net byte code and used RyuJIT (the .Net jit) to emit the final native code. This seems like a good use case for using .Net. Why did they move away from it?
Also, I haven't tried JITting them but I've always found their bytecodes to be pretty inexpressive compared to a real CPU (or even LLVM).
Re: Experimental Nintendo Switch Emulator written in C#
#103Earlier quoted context omitted.
The problems with GC'd languages are very exaggerated. I'm not surprised at all that this is performant in C#.
For game dev (and emulators!), the non-deterministic behavior of GCs can cause a lot of trouble, mainly because you have a fixed frame budget. That’s why it’s usually easier to just use a language where you can finely control when and where allocations take place. I’m sure there are techniques to work around this, but you’d then usually have to leave behind the “idiomatic” area of the language you’re using.
Re: Experimental Nintendo Switch Emulator written in C#
#104Earlier quoted context omitted.
I think it does beg the question though, of whether it might be possible to dump the Switch OS and firmware and run it on some alternative ARM hardware (with some modifications for redirecting weird custom chips). IIRC the Switch is running an overclocked Tegra (X1?) IANAL, but in the US at least, I think every person would need to buy their own Switch and dump the software themselves for it to be even remotely legal…
There is a Switch emulator using virtualization on M1 Macs.
Re: Experimental Nintendo Switch Emulator written in C#
#105What made C# a good choice for this?
Re: Experimental Nintendo Switch Emulator written in C#
#106Earlier quoted context omitted.
> No one has lost anything when a game is copied. Suppose an indie developer working alone hires an intern. They release a game developed together for a console. Suddenly the console becomes possible to emulate, and most of the people who would have bought the game play a cracked and pirated version on an emulator instead. Because of the unexpected lack of sales, the developer has to fire the intern. The intern no lo…
Piracy surely does do damage. But I feel as if it's probably a net positive for the gaming industry overall. Maybe I'm wrong but Indie games currently seem to be in a sort of golden age, despite piracy being as alive as ever. As someone who grew up on blizzard and gamecube games almost every game I purchase these days is an indie game, similar patterns amongst my friends.
Re: Experimental Nintendo Switch Emulator written in C#
#107I have mixed feelings about emulating current-gen consoles. I think there's a very strong ethical case for emulating consoles whose games are no longer made (despite Nintendo's best efforts to shut that down too). But emulating something whose games can still be bought new would tend to encourage piracy, I expect. Edit: "cracking" -> "piracy", for clarity
When the competition for emulators is buying a hackable switch and running dumped games natively with 0 bugs or slowdowns. I doubt switch emulators have prevented the sale of a single switch game.
Re: Experimental Nintendo Switch Emulator written in C#
#108This is great to see. It would be nice to play switch games on something at least as powerful as a modern phone
Are you implying that the Switch hardware isn't good enough for its games? I have yet to play a game that doesn't run well. Maybe I should try Witcher 3.
Re: Experimental Nintendo Switch Emulator written in C#
#109I have mixed feelings about emulating current-gen consoles. I think there's a very strong ethical case for emulating consoles whose games are no longer made (despite Nintendo's best efforts to shut that down too). But emulating something whose games can still be bought new would tend to encourage piracy, I expect. Edit: "cracking" -> "piracy", for clarity
If people who wouldn’t have bought a Switch end up playing those games on PC who has lost out here?
Re: Experimental Nintendo Switch Emulator written in C#
#110I have mixed feelings about emulating current-gen consoles. I think there's a very strong ethical case for emulating consoles whose games are no longer made (despite Nintendo's best efforts to shut that down too). But emulating something whose games can still be bought new would tend to encourage piracy, I expect. Edit: "cracking" -> "piracy", for clarity
These emulators are usually useless for piracy until after the console has reached its end of life. People start working on them as soon as possible but they don't work well for years. The switch is almost at the end now and there still isn't an emulator which works very well. When the competition for emulators is buying a hackable switch and running dumped games natively with 0 bugs or slowdowns. I doubt switch emul…