Live data from Hacker News

Experimental Nintendo Switch Emulator written in C#

github.com

111–120 of 172 posts

Re: Experimental Nintendo Switch Emulator written in C#

#111
post #78

> The CPU emulator, ARMeilleure, emulates an ARMv8 CPU and currently has support for most 64-bit ARMv8 and some of the ARMv7 (and older) instructions, including partial 32-bit support. It translates the ARM code to a custom IR, performs a few optimizations, and turns that into x86 code. Interesting... since .Net is cross-platform and can run on ARM, if it's running on an ARM processor does it just run the instruction…

> 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…

Interesting, Dolpin emulates the Wii and Gamecube OS's to some degree, I would assume that would be necessary for the Switch as well. What would that have to do with ARM assembly however?

Re: Experimental Nintendo Switch Emulator written in C#

#114
post #99
post #78

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…

I might be making a bad analogy, but I don't think this would work any better than dumping the CMOS firmware for a C64 (6502 processor) and hoping you could just run it on an Apple II or NES, even though they had the same architecture processor (also a 6502).

Maybe things are more standard now these days, but the support hardware around it, memory layout, etc... at least for the 6502, made this prohibitive.

Re: Experimental Nintendo Switch Emulator written in C#

#115
post #85

Is there a way to intercept data between the Switch and online Fortnite services? I recently bought a Switch and have been playing Fortnite online...noticed more and more "online gamers" have been behaving like bots, so I'd like to take a look at the data if possible (to see if I'm playing against actual people)

Wireshark and alternatives.

Re: Experimental Nintendo Switch Emulator written in C#

#116

Earlier quoted context omitted.

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…

You may be right about the ramp-up time, though the Switch is only at like 50% of its lifetime and I wouldn't be surprised if the next console is a "Switch 2" or something with backwards-compatibility, given what the other console makers have done

What you say is logical when considering things generically, however I’m struggling to remember a decision that Nintendo ever made that was based on what other console makers have done.

Re: Experimental Nintendo Switch Emulator written in C#

#117

What made C# a good choice for this?

Mostly, because it's easier to program in C# than in C++, and there is not much of a loss of performance (and worth noting that C# has `unsafe` keyword if necessary). In the past Ryujinx did use RyuJIT provided by .NET for JIT, albeit now it's using a custom JIT because RyuJIT was too slow for the way it was used by an emulator.

Re: Experimental Nintendo Switch Emulator written in C#

#118
post #49

Earlier quoted context omitted.

Unfortunately, Nintendo has not made any friends within the emulation/homebrew community especially as of late(or ever), so the common consensus seems to be "we don't care, as long as you don't do illegal things on our front porch". This is purely an observation, however these things have tradition within the Nintendo hacking community and most members of the community are very passionate about their projects - the W…

My point is exactly about the emulation/homebrew community, though. They only continue to have the moral high road against Nintendo as long as they don't condone piracy. If they get in bed with those who want to do genuine piracy, Nintendo is no longer the bad guy for taking legal action. Not that a Switch emulator completely falls into the latter category, but it lies in a grey area that legacy emulators have mostly…

There's no grey area here, though. Emulator devs explicitly disavow using their software for piracy, and ban anyone on official forums for mentioning or linking to pirated games. That's all they have to do, really. (assuming the emulator is clean-room, of course).

Re: Experimental Nintendo Switch Emulator written in C#

#119
post #90

Earlier quoted context omitted.

> 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). Do you differentiate between games being “made” and “sold”? If not, which consoles specifically are thinking of as ethical to emulate? Nintendo still sells NES, SNES, N64, etc. games via Virtual Console.

I personally would not emulate a game that Nintendo is currently selling in a readily-playable form (unless I owned it already). Used games don't count, because those a) don't send any money to the original devs and b) become increasingly scarce over time. The problem is that in practice Nintendo only makes a very small portion of their back catalog available for purchase at any given time. The only Zelda games from…

You can play Zelda II and A link to the past via the online subscription. And one could count the remake of Links awakening as well.

But more to the small catalog. Nintendo has not the rights to just publish the old NES/SNES catalogue as they are not the sole rights owners. Also they won’t dump all these games at once. I still wait for Windwaker HD as I never owned a WiiU and don’t want to emulate the game.

Post reply on HN