Live data from Hacker News

Experimental Nintendo Switch Emulator written in C#

github.com

161–170 of 172 posts

Re: Experimental Nintendo Switch Emulator written in C#

#161
post #30

Why wouldn't one create and emulator for this using QEMU? Couldn't that be possible? Doesn't a bunch of hardware faking have to be rebuilt in C# that QEMU already does (well¿)? Or is it too hard to introduce custom hardware/firmware (like this audio stuff) into QEMU?

For emulators that intend to run games at full speed, the sorts of shortcuts and tricks needed to achieve high level emulation (which can sometimes fall short of emulation in a strict sense) are often incompatible with writing a plugin or extension to an emulation framework that focuses on accuracy. In the case of the Switch, it's not necessary to emulate the whole device or even processor, especially if the intentio…

>In the case of the Switch, it's not necessary to emulate the whole device or even processor, especially if the intention is to run Switch games on a computer

Switch has an ARM processor so it's definitely a requirement to emulate that, which QEMU is well-suited for. But to your point, Windows has great graphics APIs that would make it easier to pipe the graphic stack from the Switch OS into rather than writing your own implementation. The processor can be taken care of via JIT as well, but it still needs to be lifted.

Re: Experimental Nintendo Switch Emulator written in C#

#162

Earlier quoted context omitted.

The typical lifetime of a Nintendo console is 5 years (N64 was 1996, GameCube was 2001, Wii was 2006, Wii U was 2012 because the Wii was such a smash success, Switch was 2017). The release cycles have been slowing as of recent but we're far more than 50% in.

They've already announced an enhanced "Switch Pro" and said they hope it "extends the life cycle of the Switch platform for many more years": https://www.bloomberg.com/news/articles/2021-03-04/nintendo-...

A rumor != Nintendo announcing a "Switch Pro", your quote was from an analyst, not someone from Nintendo.

Re: Experimental Nintendo Switch Emulator written in C#

#163
post #137
post #134

Earlier quoted context omitted.

> If buying games can be made easier than piracy, lots of people will probably do that. But if piracy is way easier, then that’s what 99.9% of users will do. Apart from folks who have no way to perform online transactions and would have to physically visit a shop to pay using cash, piracy hasn’t been “way easier” than buying games in more than a decade. Everybody has online shops now. On the Switch, you can even buy…

> On the Switch, you can even buy from your computer using their web shop, if the Switch itself happens to be out of your reach How? When I go to a Nintendo store page for a game I want to buy digital [1], all I get are the options "Add to Wish List", "Download demo", "Buy physical". [1] https://www.nintendo.com/games/detail/katamari-damacy-reroll...

UPDATE: I'm in Denmark (EU). On nintendo.com, I don't get a "Buy digital" button. If I go to the region-specific site nintendo.dk, the search function is broken, many games aren't listed, and there's no buttons to buy games or any login functionality at all (it seems half-baked). If I go to nintendo.co.uk (the UK site), I can log in and buy digital, hurray! What an incredibly inconsistent experience!

Re: Experimental Nintendo Switch Emulator written in C#

#164
Regarding all the positions that piracy is bad vs freedom of intellectual property, isn't this a bit a red herring?

I'm sure neither this nor Yuzu are 100% working - but if let's say work was done regarding allowing legal ripping, i.e. a license system whereby Nintendo grants sale or other rights to hobbyist runningthe express purpose of runnin their games on some emulator.

I think a lot of the people drawn to emulator, work, are drawn by the cool factor. Working on homebrew games is a way to learn and express passion about embedded platforms, game dev and coding.

They say 'piracy is stealing', but locking down platforms is also stealing. We should enforce universal IP monetary attribution - keep a low standard rate of mandatory fees which must be paid out while at the same time make it illegal for companies to entirely hide their designs.

Re: Experimental Nintendo Switch Emulator written in C#

#165
post #74

Earlier quoted context omitted.

Thought experiments do not have to be things that would have happened in the real world.

This is not thought experiment, it is straw man. Here's my thought experiment, they told you studies shows that vaccination is safe, you point out there happened to be a case after injecting a person died. In some places people categorize it as FUD. Just to be clear I don't have a side in this race, I haven't priated anything for a long time, don't find the need.

Thought experiments don't need to be realistic when they are responses to deductive arguments. [1]

You can't use a thought experiment to argue that people should change their behavior because of a problem, as you're pointing out - and I'm not doing that. I'm not saying people should not pirate things because piracy is bad for game developers. I pirate things. I'm not making a statement about piracy.

ddevault is doing something rather specific: arguing that because intellectual property rights do not exist, anyone whose work is copied does not lose anything. This is an argument that is contradicted by a possible world in which someone loses something, even if you don't think it's our actual world.

[1] https://en.wikipedia.org/wiki/Deductive_reasoning

Re: Experimental Nintendo Switch Emulator written in C#

#166
post #70

Earlier quoted context omitted.

That was quite literally not my argument. I gave an example in which piracy decreases sales, to respond to an a priori defense of piracy. Edit: There is a world of difference between debating a point on deontological ethical grounds and consequential ethical grounds. My point is not about what the consequences are, it's about the fact that a specific a priori ethical defense of piracy like that ddevault gives can't b…

No, you gave a fully theoretical thought experiment, that attempts to play with emotions (oh no, not just an employee that can't be paid, but an intern, a poor student that cannot feed his family after, because that... wait non that's not what interns do) and tried to spin it as an ethical argument.

When ddevault said that "no one loses anything" when something is copied, they did not mean that they had looked at all the studies and determined that "piracy is good, actually". They meant that simply by examining the nature of intellectual property as such, we could know that no one ever loses anything when something is copied. This is an implied deductive argument which does not hinge on what conditions actually exist in the world.

In response to a deductive argument, it's always acceptable to try to present a possible world in which the premises of the argument are true and the conclusion is false. It simply does not matter that quite a lot of angry people in this thread are insisting that the world I presented in the example does not actually exist. If the world could exist, then that's enough to show that there's something wrong with ddevault's point, and that's what I wanted to do in my comment.

Ironically, ddevault understood this when hardly anyone else did. They replied to my comment with a slight pivot on the original take. They said that while people might "lose things", it's not the kind of "losing" that matters, because if someone loses something that was never legitimately theirs to begin with, we don't care or worry about this. (The example of Nestle stealing water is used as an example.)

This was a great response from ddevault, because it actually understood what I was getting at. I disagree with the response, but the point is that it understands what is happening at the theoretical level here, and that's crucial.

Re: Experimental Nintendo Switch Emulator written in C#

#167

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

From https://github.com/Ryujinx/Ryujinx/issues/1884#issuecomment-... :

>Rest assured, this is in our long term plan. Initially, we'll be bringing up ARM support as a dynamic code translation target architecture in the short term, as this is a relatively straightforward thing to add to our existing JIT. This work is already underway.

Re: Experimental Nintendo Switch Emulator written in C#

#168
post #145

Earlier quoted context omitted.

C++ interop is not supported in modern .NET out of the box, but wasn't too hard to implement as a library: https://github.com/Const-me/ComLightInterop

C++/CLI works perfectly fine on Windows, it was a major milestone for .NET Core 3.0. And then there is WinRT/COM as well.

Ok C++/CLI can be considered C++ interop but it's really compiling the C++ code again with some limitations.

Re: Experimental Nintendo Switch Emulator written in C#

#169
post #145

Earlier quoted context omitted.

C++/CLI works perfectly fine on Windows, it was a major milestone for .NET Core 3.0. And then there is WinRT/COM as well.

Ok C++/CLI can be considered C++ interop but it's really compiling the C++ code again with some limitations.

Nope, it is compiling C++ with extra features, not limitiations.

Unless you mean pure safe assemblies.

Re: Experimental Nintendo Switch Emulator written in C#

#170

I 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

We all have to make our own choices.
Post reply on HN