Getting it to work with the host os(windows usually) can have minor issues with output in rare circumstances, or when a game is still not running the proper speed, but they've ironed out the major ones.
-----------------------
This is my requiem, I present to you Amadeus, a complete reimplementation of the Audio Renderer!
This reimplementation is based on my reversing of every version of the audio system module that I carried for the past 10 months.
This supports every revision (at the time of writing REV1 to REV8 included) and all features proposed by the Audio Renderer on real hardware.
[0] https://github.com/Ryujinx/Ryujinx/pull/1481In 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. Rather, high level emulation is more than sufficient — anticipate what the software depends on the actual hardware to do and redirect it to do the same using what the computer has available.
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.
It's in its infant stages at the moment according to the "Emulation General" wiki and focuses heavily on "accuracy" over performance
Other emulators such as CXBX-Reloaded have made larger strides, currently emulating roughly 10% of the software library
It's also worth stating, while the Xbox seems like an "easy" target, being based on an ia-32 (Pentium III) PC with an Nvidia GeForce chip (somewhere between a Geforce 2 and 3 at the time) it is an absolutely monstrous beast with minimal documentation about its hardware and numerous "gotchas"
It also has a very small library of 'exclusive' content which detracts from gaining many developers
I mena, in principle, presumably.
> that QEMU already does
Potentially a couple devices. But for most of the hardware, probably not.
Regardless they might—I would—find QEMU harder to hack on, harder to extend, because it is written in C. C is of course the lowest level of all high level languages.
Interesting... since .Net is cross-platform and can run on ARM, 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 virtualization. If the host OS supports it, you should be able to make use of it.
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.
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 between but one would think it would at least result in very similar instructions.
This seems like a good use case for using .Net. Why did they move away from it?
>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.
Edit: "cracking" -> "piracy", for clarity
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 Wii is comparatively hard to emulate, which is why Dolphin is still struggling with certain things after a long time, while Switch emulators can run a lot of games nearly perfectly after less than half a decade.
Not that a Switch emulator completely falls into the latter category, but it lies in a grey area that legacy emulators have mostly steered clear of.
I wish there was an easier way to run legitimately purchased cartridges. I don’t know how many people ever did it, but PCSX2, for instance, has always been able to run PS2 discs right off a standard PC optical drive.
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 from your computer using their web shop, if the Switch itself happens to be out of your reach (or in the hands of your child or etc).
In the vast majority of cases, these days, I suspect that piracy is a lot more about “cheaper” than about “easier”.
It's been many years, but I tried this to play FFIX. Turned out it was one of the few games that still had game-breaking issues at the time. I wonder if it works now.
I also think steam has proved that the way to beat piracy is to offer a better experience than piracy offers. I get headaches playing 3d content at 30 fps, I would pay double the cost per game to run first-party nintendo games on my PC at an unlocked resolution and frame rate.
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.
Even with all of that said, I support piracy. Information wants to be free, and games are made of information. 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 longer has enough money to feed their family, and their children go hungry that month. The intern has lost something.
My comment isn't intended to be positive or negative on the whole towards piracy (I do sometimes pirate things). What's it's critical of is the blithe way in which people dismiss concerns with statements like "no one has lost anything". Sure, maybe the developer doesn't have an abstract right against copying the game, and it is true that they have not lost copies of the game when it is copied. But people do lose things.
If you oppose intellectual property rights, it's important to work productively towards creating a world without it in which developers can work on a piece of software as their job and still have a livelihood, not joke about them not standing to lose anything through piracy. I'm not saying you don't do this, I'm well aware of your contributions to open source, for example.
You write a book and would be paid by the word. After toiling away for 2 years, 30% of your work will not be paid for because the publishers feel this is just information. You have been decived.
When labor is carried out with certain promises of compensation and after the work is completed if the fruits of the labor are not compensated to the person company doing the effort then it's fraud / stealing.
Broadly your argument sounds like 'knowledge work is not real work' because it doesn't produce tangible assets.
The problem is, in compensation of the people involved in doing the work.
For example if someone sponsored content 'x' and made it free to the public it would be fine to copy it around. Think govt funded research. This has its own problems. The people that commission these works and the general public may not share the same tastes.
The risks of selling to a patron and selling to a yet unknown audience are vastly different. This is why the compensation varies wildly between the two. Its possible that one game may take enormous resources and then not give back any returns resulting in a loss and another one makes massive profits.
The positive ones cover up for the failing ones. If you only look at the positive ones it's easy to be dismissive and say they are getting compensated undeservedly. In the broader picture it is the massive successes that allow for variety in the market place, it is an essential mechanism. If you cap off the upper limits of getting paid, people will be unwilling to make newer / different types of things. The market is essentially funding innovation, variety and a buffer for failures - it serves as a direction mechanism for knowing what people want.
Knowing what to make that people will buy is a very hard and expensive problem to answer. People that can answer it correctly get paid a lot of money deservedly.
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.
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 previous generations that I can play on my Switch are Zelda 1, and (soon) Skyward Sword. No others are available.
If Nintendo made their whole catalog available for digital purchase (or even better, as part of a subscription) then I wouldn't emulate any of it.
That would be truly terrible!! Making a copy of your owned games is a capital crime.
I will not purchase a console that forces me to buy hardware I do not need because they ban experiences from other platforms to try gain a competitive edge. I feel this is damaging to the industry as games with incredible experiences are blocked behind a paywall (and often restricted quality).
Consoles should compete on experience and features, not exclusive games that you can't play without buying into the ecosystem.
I only just got around to finishing Bloodborne (at 20-30 fps) and it's a game I have wanted to play since I saw the trailer back in 2013. It's so sad that they limit this game's IP to only PS4 owners. I would love to see the lore expanded upon in sequels (that run at an unlocked, variable frame rate), but if demon souls is anything to go by, we won't.
If it were available for PC, I would buy it. If it were available via emulation, I would buy it.
People who pirate games do so because they can't afford them, and there is nothing less affordable than having to buy an entire device to play a game.
Emulation does complicate this somewhat because piracy is a necessity to the experience, something that could be addressed by the hardware vendors themselves.
Unfortunately with Switch we're not there, and I don't think we ever will be. These emulators target, in order of priority, Cracked/Dumped Retail Games, then Homebrew games. I can't use them as part of my game development stack because they won't run binaries if they haven't been submitted to Nintendo to be signed (and subsequently cracked).
maybe that's the case here
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.
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.
https://devblogs.microsoft.com/dotnet/performance-improvemen...
Most notably:
> When running with the “Server GC”, a thread per core is involved in collections, and as threads finish their allotted portions of the marking work, they’re now able to “steal” undone work from other threads in order to help the overall collection complete more quickly.
pspplayer might have been the first? I could be wrong there
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)
It looks like that might be deliberate?
Maybe I should try Witcher 3.
Copyright infringement is a civil offense, but there's none here.
https://en.wikipedia.org/wiki/Connectix_Virtual_Game_Station
Courts also decided in favor of Connectix, which made a PlayStation emulator that ran games on the Mac at nearly full speed.
Mainly bringing that up because: it was kind of wild to be able to run current PlayStation games on your iMac. It was just cool.
I'm not familiar with this case, but [this page][0] seems to be more focused on the use of screenshots rather than the emulator software itself? Did this set a precedent?
[0] https://itlaw.wikia.org/wiki/Sony_Computer_Entertainment_Ame...
There's not really good precedent for this that I'm aware of - Nintendo did DMCA the repo for a GBA emulator a while ago, but it came with Nintendo game ROMs in the browser.
Nothing in particular, I was thinking about it from the other end. Seeing as the Switch is Nintendo's latest gen console I'd say it's different to something like Dolphin in terms of how much it might bother Nintendo. That plus the fact that when you want something off the internet nowadays a DMCA is typically the legal path, makes me think that Nintendo would love to find something to DMCA the repository for.
Whether there's anything to be DMCA'd I can't say (and from the replies I see probably not).
It could allow Nintendo to take action against this emulator.