[HN Gopher] RyujinX - Open Source Nintendo Switch Emulator
___________________________________________________________________
RyujinX - Open Source Nintendo Switch Emulator
Author : robertwt7
Score : 503 points
Date : 2023-08-31 04:33 UTC (18 hours ago)
(HTM) web link (ryujinx.org)
(TXT) w3m dump (ryujinx.org)
| [deleted]
| [deleted]
| hardware2win wrote:
| Ryujinx is one of the most impressive C# projects that Ive seen
|
| The other is Roslyn
| gigatexal wrote:
| Absolutely stellar work, thank you for this!
| monkeydust wrote:
| I just found out about miyoo recently and brought a miyoo plus.
| Great product / form factor.
| cosmojg wrote:
| Having tried both, I prefer Yuzu for playing Tears of the
| Kingdom: https://yuzu-emu.org/
|
| Both are great, though, and the rapid speed of development on
| both projects means that whatever impressions I formed earlier
| this year are likely already out of date!
| psychphysic wrote:
| Yuzu also has an android build although I believe it runs only
| on snapdragon devices.
|
| https://yuzu-emu.org/entry/yuzu-android/
|
| On desktop at least it has an early access programme via
| patreon (but available here https://pineappleea.github.io/ )
|
| Skyline runs on Android but I've never managed to get it to
| work on any device. It's no longer in development
|
| https://skyline-emu.one/
| esperent wrote:
| If you have anything less than a flag ship from the last year
| or so, don't expect to be playing Zelda on your phone anytime
| soon though. Even then I heard people saying their phones
| were getting very hot.
|
| Source: researching this about 3 months ago to see if I could
| play BotW on my S21 FE. I can't.
| radiKal07 wrote:
| Yes, for Yuzu you need a Snapdragon SoC otherwise the games
| crash instantly. If you have a Mali GPU you have to wait
| until they add support for it. Skyline supports Mali but
| performance is reduced. Btw Skyline ceased development, some
| of the devs forked it and will continue development on Strato
| (https://strato-emu.com). If you guys use Android handhelds I
| recommend using Beacon Game Launcher (https://play.google.com
| /store/apps/details?id=com.radikal.ga...)
| spectrumone wrote:
| any reason why you prefer it over Ryujin? I'm on the opposite
| side; I remember the setup with Ryujin is much faster if you
| have a fairly recent rig.
| SirMaster wrote:
| It just performs better.
|
| Also Yuzu has asynchronous gpu shader building which means
| you don't need to find and download a pre-built shader cache
| for a game for it to run smooth. Yuzu can build itself a
| shader cache while playing and it doesn't cause the game to
| stutter and hitch like crazy.
|
| Yuzu just seems to me to be the technically superior option
| at this time.
| aeyes wrote:
| I get much better framerate on Yuzu, it's almost locked at
| 60fps - on Ryujin I only get 20-30fps with some lag here and
| there.
| jacek wrote:
| I tried Yuzu too and was very impressed. Some useful
| instructions on how to use it:
| https://github.com/Abd-007/Switch-Emulators-Guide/blob/main/...
| [deleted]
| seabrookmx wrote:
| I wouldn't have guessed C# would be a good fit for something like
| this, but neat to see!
| deaddodo wrote:
| C# is a common choice for emulators, actually.
|
| It probably goes C/C++ (it's really hard to disambiguate the
| two, in this case; few codebases are pure either way) then Rust
| (for hobby emulators, it's probably third or fourth for serious
| efforts), C# and Java.
|
| JavaScript and Python are very common for hobby efforts, but
| generally exceptions for serious codebases (excepting WASM).
| hx8 wrote:
| BizHawk is a premier emulator for generating Tool Assisted
| Speedruns and written in C#.
|
| https://github.com/TASEmulators/BizHawk
| minimaul wrote:
| BizHawk is basically a wrapper for other emulators, though.
| Essentially a fancy frontend.
| lnxg33k1 wrote:
| Oh, in terms of emulators written in C#, never heard of
| Run[1]UO[2]? C# revolutionized the UO world back like 20 years
| ago(?) it has(d?) the right balance between simplicity, clarity
| and performance
|
| [1] https://www.runuo.net/
|
| [2] https://github.com/ClassicUO/ClassicUO
|
| Shit shouldn't have thought about UO, now I am sad :'( (and
| old)
| wiz21c wrote:
| In the future there's fire, in the past there is gold :-)
| mentos wrote:
| RunUO is what turned me from a player into a programmer. I
| believe there's still a forum comment out there from 2001
| where I was asking about the mess of squiggly brackets {} and
| if this is really how programming is done. It's a really fun
| reminder of what that first exposure to programming felt
| like.
|
| I'll never forget how magical it was to make my first edits
| to the code and see it reflected in the game. Created a
| feedback loop that has continued to reward me over 20 years
| later. :)
| lnxg33k1 wrote:
| Yeah what did that for me was mIRC scripts, kinda miss
| every now and then the feeling ^^
| lbussell wrote:
| I believe Ryujinx actually translates the ARM code to .NET IL,
| which is then JIT compiled to machine code by .NET. As far as I
| know it's a pretty innovative approach to emulation!
|
| And on Apple Silicon, it just runs the Switch's Arm64v8
| instructions natively using a hypervisor! [1]
|
| [1] https://blog.ryujinx.org/the-impossible-port-macos/
| averne_ wrote:
| This isn't true anymore. It was their first approach, but
| since then they have switched to their own JIT recompiler.
| You can read their rationale here:
| https://github.com/Ryujinx/Ryujinx/pull/693
|
| For the MacOS port, they also added an ARM-to-ARM JIT in case
| hypervisor runs into issues.
| whizzter wrote:
| I think that first approach (Part of the name RyujinX from
| RyuJIT?) while not optimal did get them off the ground
| quickly, now with a bit of traction (people into the
| project since it actually functions) they can could easily
| find takers(or the time) to write the improved JIT.
|
| I'm actually tinkering on a WASM runtime and emitting MSIL
| code from WASM trees is quite straightforward so far (tho
| running into some more complicated cases now that I'm
| integrating the test-suite), compared to the non-trivial
| (code stamping) pure native JIT's I've done in the past
| it's quite a big timesaver (and those still only did target
| one CPU platform).
| steelframe wrote:
| > they have switched to their own JIT recompiler ... they
| also added an ARM-to-ARM JIT in case hypervisor runs into
| issues
|
| Having worked in industry for some multiple of decades, I
| can say with some confidence that if a small team were to
| successfully build and deploy their own JIT recompiler to
| solve an actual customer problem, they would be considered
| gods by management and given bonuses and promotions.
| Realistically the project would never get off the ground
| because their management would be pressuring them to hurry
| up and add some random new API within the next quarter.
| Most devs just looking at the existing code and are more or
| less doing a copy-and-paste with some minor tweaks for
| their new "feature." They're trying to slap together quick
| demos that are little more than, "And now this thing makes
| an RPC call to that thing." The level of performance I see
| from people who pull down well into 6 figures of income
| typically falls well below the level that I'm seeing in
| this Switch emulator project.
|
| Usually for something like that to actually happen it takes
| a VP mobilizing an org of size 20+, with multiple layers of
| management taking a year or more to hire or steal talent
| from other orgs. Some companies are built differently
| (i.e., Apple) and can pull cross-org talent together for
| something like "get Intel binaries running pretty well on
| M1." But I find that tends to be the exception rather than
| the norm for larger tech companies.
|
| Maybe I'm just working in the wrong places.
| IggleSniggle wrote:
| That's the difference between people working for a
| paycheck and people working for a passion project. Even
| if 90% of the people working at a company are doing it
| for the passion and not the paycheck, they still have to
| contend with the other 10% who do not have the passion
| (but may be good at hiding this fact).
|
| With a passion project, you start and stop whenever you
| want, and if you're not interested, you're not working on
| it anymore. So only the people who are truly
| intrinsically motivated will continue.
|
| A paycheck is a form of compulsion. "You could be do
| anything, but you're doing this for me specifically
| because I pay you." You might also be very interested,
| but it's the only thing that specifically binds you to
| the company vs bound to the work itself.
| josephg wrote:
| I wonder if wasm would be another good target for this sort
| of thing in the future.
| meibo wrote:
| C#, especially with in recent releases, has really been turning
| into somewhat of a systems programming language.
|
| They keep adding tools that allow for very low-level memory
| management/manipulation and the ability to run on so many
| platforms/generate native code makes it very attractive. It's
| also just fun to write.
| vladgiverts wrote:
| Been using this on my Macbook Pro M1 to play Breath of the Wild
| and Mario Kart using XBox controllers. My kids and I love it.
| whiskeytuesday wrote:
| Allegedly
| lnxg33k1 wrote:
| It's just a game where an italian guy runs in a supermarket
| with a cart, nothing to do with the nintendo one :D
| kmeisthax wrote:
| Ren Tian Tang haWu Guan Xi https://commons.wikimedia.org/w
| iki/File:%E4%BB%BB%E5%A4%A9%E... Unrelated to Nintendo
| beltsazar wrote:
| What's the average FPS?
| zamadatix wrote:
| For BOTW specifically you're better off playing on CEMU (Wii
| U emulator) as it's the exact same game(not a more limited
| version as one would assume) but significantly faster. TOTK
| you'll need RyujinX.
|
| Exact numbers are hard to give: native game resolution or
| native macbook resolution? Docked or undocked? Shaders cached
| or not? Graphics mods (some of which are
| efficiency/performance related) or not? Generally though most
| games run at native size at native speeds once you get
| everything going. BOTW/TOTK are some of the heavier ones
| though and, ignoring BOTW as I play that on CEMU, TOTK runs
| alright as long as you don't push it or expect high FPS mods.
| dacryn wrote:
| Dont know OP, but I am playing pokemon scarlet on it, m1 max
| macbook 15, and its pinned at 30fps. Don't know if the game
| just wants to run at 30fps, or if my macbook can't go any
| faster. But since its stable at exactly 30, I assume it's the
| game
| whateveracct wrote:
| [flagged]
| dodos wrote:
| From my experience with yuzu and ryujinx, in order to
| exceed 30fps, most games need to be modded. Almost all
| popular games have a mod available though.
| aeyes wrote:
| Most Switch games don't run at 60fps in docked mode because
| they can't nearly hit the framerate at 1080p. The Switch
| has dynamic resolution scaling but it still lags.
|
| For this reason many games only run at 60fps in handheld
| mode.
| leokennis wrote:
| Great that you're having fun. Consider buying a real Switch as
| well. For me it excels in two use cases:
|
| * Playing (Nintendo) games with the entire family (4 people,
| all holding a small controller): every Nintendo game is very
| thoughtfully designed to get 4 people through the "flow" before
| the game starts (pick your character, set the options etc.)
|
| * Playing games in the portable/detached mode, it is a joy to
| hold and unlike a tablet you have physical controls. Most games
| are so much better than your average iPad game (or better said,
| the "match three" or mindless clicker games do not rise to the
| surface as easily as on iPad).
| callalex wrote:
| It also creates a ton of e-waste for a few hours of
| entertainment when you already have the compute power
| available to you in another portable device you already have
| to own anyway.
| efields wrote:
| False equivalence (at least). Software we want to run is
| not just about raw compute available. Licensing of
| Nintendo's software aside, what if the pocket computer I
| have isn't mine? If I buy a Switch, I own it.
|
| Just about everything creates waste. Being into any hobby
| is expending energy in pursuit of leisure. You're opting
| into excess from the jump.
| leokennis wrote:
| Certainly. I satisfy my conscience by not flying and biking
| all distances under 20 kilometers.
| illwrks wrote:
| I've messed around with emulators in the past. To be
| honest the tweaking and fiddling with things drove me
| mad. It was 100 times easier to just switch on a
| dedicated device and dive into a game.
|
| Then again I'm not buying the latest games or consoles,
| I've got some other ones that I dive into every now and
| then for a distraction.
| StimDeck wrote:
| [dead]
| swyx wrote:
| i gotta ask, what kind of career path does one have to have to
| figure out how to make this sort of thing? just hacking nights
| and weekends for 2 years straight? because i dont know how anyone
| gets paid to do this and yet there is so much incredible depth to
| learn that is probably undocumented because of legal issues
| hx8 wrote:
| Reverse engineering. Systems programming. Firmware.
|
| Sometimes yea, people have a career in an adjacent field and
| hack on emulators on the evenings. Other times I've ran across
| incredibly talented individuals with significant contributions
| that have never been employed in tech. I've seen multiple
| instances of this when a younger individual gets involved in a
| project they don't feel comfortable putting their real identity
| on for fear of hassles with Japanese companies known to be
| litigious.
| zirgs wrote:
| A potential career path would be to work on commercial console
| emulators at Nintendo or Microsoft. Or on compatibility layers
| like Wine/Proton.
| 0xcde4c3db wrote:
| > just hacking nights and weekends for 2 years straight?
|
| Yes. Believe it or not, the primary author of the ARM
| translation engine used in the other major Switch emulator is a
| medical doctor ("IRL white mage", as she sometimes puts it).
| elteto wrote:
| Con Kolivas, a well-known Linux kernel contributor and
| hacker, is an anesthesiologist [0].
|
| [0] https://en.wikipedia.org/wiki/Con_Kolivas
| geswit2x wrote:
| > the primary author of the ARM translation engine
|
| Could you share more info about this?
| mmebane wrote:
| They're probably referring to dynarmic:
| https://github.com/merryhime/dynarmic
| tinus_hn wrote:
| Programming can also be a creative hobby like painting or
| writing.
| CapsAdmin wrote:
| I've worked on large projects for almost 10 years before I
| started working in the field, though perhaps not as complex as
| an emulator.
|
| I dropped out of college due to medical reasons and was given
| the "opportunity" to receive disability benefits for the rest
| of my life. I accepted this and just continued my hobby doing
| programming. In that time I met many hobby programmers online
| who didn't seem to work or were temporarily taking breaks from
| studying to eventually find a job.
|
| Eventually I felt a bit lonely not knowing anyone in real life
| who were interested in programming, so I found the meetup
| website and started going to events to get to know people. The
| friends I met there told me I should try working professionally
| as a programmer, so I tried and now I've been 5 years in the
| field and really enjoy it.
|
| In retrospect being outside of the professional field, I knew
| it existed but it never crossed my mind that I could be part of
| this as it was for educated and highly experienced programmers
| only. Because of this maybe I never bothered to even try.
|
| One issue for me entering the field was that I was highly
| specialized, but the field required me to be more general and
| perhaps specialize more in other things. Luckily for me I found
| the right people from the start with similar interests (game
| engine development, graphics rendering, etc) to help me
| understand the professional landscape.
|
| I still find it satisfying to work on hobby projects in my
| spare time. I don't have as much time as before because of work
| and family, but I do manage to find the time now and then. :)
| ToucanLoucan wrote:
| That's a nice story yo. I'm happy for you.
|
| I fell into professional programming basically by accident...
| was a web developer by education and ended up being offered a
| position as a mobile developer for iOS as my first out-of-
| college career. Wasn't what I intended but they extended the
| offer and said offer included paid education in the field, so
| who was I to argue?
|
| Years on I've gone through a few jobs and basically never
| used my web development degree for my day job, only really
| using it for side-gigs building websites for local
| businesses.
|
| Life is weird.
| TX81Z wrote:
| Good for you! Too many people are in it for the money and
| pure self interest.
|
| Now, I like the money our profession pays, it's great - but
| I'd by doing something with computers either way, so what a
| blessing to get rewarded financially as well.
|
| Also, as an erstwhile professor who was at a top 3 program, a
| motivated and curious student is the best. If you had
| finished college you'd have done well with your attitude.
| paulcole wrote:
| > Too many people are in it for the money
|
| What? It's a job.
|
| You yourself say the financial rewards are a blessing.
| Sounds like you're in it for the money, too. If you're not,
| your boss might OK a 20 or 30% salary decrease should you
| request it.
| moonchrome wrote:
| I feel the opposite. I've been programming for fun since 13
| and have a similar experience as op - where I did my own
| projects for ~10 years before I got a job. I always hated
| professional programming.
|
| It's boring, problems I'm solving are technically trivial.
| Most of the real problem is tied to a domain I give 0 shits
| about and am so bored by that I have to force myself to
| stay focused. Things I build have practically no value to
| me, and often no value to anyone except that someone
| decided to allocate a budget that way.
|
| I would never work on these projects if it didn't pay well.
| I would prefer craft work if it paid the same.
|
| I'm not complaining though ! I live very comfortably, I
| came from extreme poverty and I don't see any realistic
| alternative path that would end me in a better situation.
|
| But I think expecting people to do most programming jobs
| out of passion is not realistic. If you're really good
| maybe you'll land in a role that gets you doing something
| technically innovating that also pays well but I'd say
| that's top few % of devs, most of us are in the dredges
| where enthusiastic people are a detriment (worst projects
| I've seen were a result of someone trying to be too clever
| for their own good, not lacking skill)
| jpbastyr wrote:
| I really don't think there's a problem with doing a job
| just for the money and going home, everyone needs to eat at
| the end of the day
| chefandy wrote:
| Right. In my experience, in nearly any professional
| discipline, words like 'passionate' and 'hungry' are
| often management euphemisms for 'has trouble drawing
| boundaries with work, and cares more about getting it
| done than work/life balance and their own wellbeing.' I
| think most of us get nerd sniped and spend half the night
| working on something every now and then, but that's not
| something any employer is _entitled_ to.
| dmitrygr wrote:
| For most, it is a labour of love. For some it is how their OCD
| expresses itself. And some just refuse to give up until they
| beat the problem into submission.
|
| Note that none of those are career paths. Some career paths
| might help you do emulator development (embedded C work, EE
| work, reverse engineering work), but none align with it
| perfectly.
|
| It is mostly a hobby
| MegaDeKay wrote:
| Here is an interview with gdkchan, RyujinX creator, that should
| directly answer your question :-)
|
| https://web.archive.org/web/20230518095046/https://boilingst...
|
| archive.org link because boilingsteam.com isn't loading for me
| at the moment.
| wslh wrote:
| Because you really enjoy programming and hacking? And obviously
| are very capable.
|
| The emotional part is critical as human beings. I wonder why we
| need to remind it again. A lot of human activities don't have
| anything to do with money.
| hortense wrote:
| You start spending all your time programming in middle school.
| By the time you enter college you know everything needed to
| write simple emulators, and then you meet other students that
| motivate you to up your game and complexify your projects, like
| working on a Nintendo Switch emulator.
|
| It doesn't require being a genius or a fast learner, it just
| requires the good fortune of having programming be your
| passion.
|
| If you want to catch up to these guys when you only start to
| learn programming in college, it's doable but it requires you
| to be a fast learner and also be somewhat passionated in
| programming.
| petabytes wrote:
| The only thing that allows these sort of projects to exist is a
| very unhealthy obsession. And believe me, I spent 2 years
| hacking Fujifilm cameras. Still am. Can't stop.
| delfinom wrote:
| The basic skills for this are taught in Electrical/(Computer)
| Engineering. In fact depending on your college you may end up
| writing a instruction set emulator lol. So it's not something
| that requires a 20 year career experience background.
|
| It just takes a lot of dedication and time/energy to reverse
| engineer. People basically do it as a hobby. Usually the most
| hobby interest is nostalgia vibes from old stuff but even
| getting new stuff to run is done for the mental excercise fun
| grishka wrote:
| I'd say just being curious, reading and tinkering a lot. I
| recently wrote a GameBoy emulator to give myself a better
| understanding of the inner workings of CPUs. It's anything but
| precise, but it passes all the CPU instruction test ROMs and
| it's able to run all my childhood games so that's mission
| accomplished for me. _Maybe_ I 'll try to emulate something
| more complex next.
|
| Writing an emulator is very frustrating at first (when nothing
| works) but it eventually gets more rewarding as you get to the
| point of meaningfully running preexisting software. IMO every
| programmer needs to write one at some point.
| swyx wrote:
| and how long did that take you? just to gauge how big a task
| this was
| grishka wrote:
| Something like 3-4 days combined I think? It also supports
| sound but that part is far from perfect, especially the
| noise channel.
| Dalewyn wrote:
| >because i dont know how anyone gets paid to do this
|
| The reward here isn't a paycheck, the reward here is fun.
| Things like console emulators by and large exist on volunteer
| time and effort provided by nerds and enthusiasts who find
| pleasure in the act itself with no concerns given to finances.
| erfgh wrote:
| Probably worked in a company that made Switch games or in
| Nintendo itself.
| Klonoar wrote:
| Unlikely. You do not want to be caught reimplementing stuff
| after having looked behind the curtain.
|
| Emudev projects often outright kick people out if it's
| determined they've peeked.
| thiht wrote:
| I started programming mainly because I wanted to make a bot on
| an online game. I learned how to use Wireshark, how network
| protocols worked (the game used a binary protocol I learned to
| reverse engineer, and I wanted my bot to integrate with IRC
| which uses a text protocol so I read its RFC), I learned how to
| decompile and read obfuscated code (the game was an SWF, and I
| could get my hand on bots made by other people), and even some
| design patterns to make my code slightly maintainable.
|
| I did it to have fun with my bot on the game, but in the end I
| barely used the bot, I had way more fun making it and learning
| how to improve it.
|
| I suspect the people making these emulators spend way more time
| writing the emulators than using them, that's where the actual
| fun is.
| [deleted]
| saagarjha wrote:
| Most of the people that work on emulators do it for fun, not to
| get paid. Some do, but almost all have other jobs to support
| them, or are in places in their life where they are supported
| by other people: children and students, for example.
|
| There's a lot of work that goes into a modern emulator, for
| what it's worth. Obviously there are people that reverse
| various parts of the console but it's really an amalgamation of
| all sorts of talents. Someone's going to be a graphics expert.
| Someone is going to be a compiler and codegen genius. Someone
| needs to work on reimplementing APIs and improving game
| compatibility. Someone needs to do UI work. Someone needs to
| port the emulator to platforms people want to run it on.
| Someone needs to do design, and PR, and copywriting, and
| translation. For smaller emulator projects many of these roles
| may be performed by the same person. For a large project it's
| really a team of people working together, often organized in an
| ad-hoc fashion. It's really a gem of open source development,
| where people can bring their own skills to the table and make
| something better than the sum of their parts, all the while
| improving themselves.
| MegaDeKay wrote:
| Indeed. Reading the emulator progress reports (Dolphin,
| Ryujinx, and Yuzu publish them on a regular basis) gives a
| really good idea of all the different jobs it takes to pull
| off a complex project.
| UK-Al05 wrote:
| People who are good at this basically spend their entire free
| time on their computer.
|
| Source: Me, and I'm not even good at it.
| trollied wrote:
| Sort of starts by being intrigued. You start wondering how a
| simple emulator works. Then you realise that the simplest high
| level CPU emulator is just a big switch statement, a block of
| memory, variables for registers and the Program Counter... Then
| you realise you need memory read/write functions. Then you
| start looking at the other systems involved...
|
| It's never ending, it's great fun, and a huge sense of
| achievement. I'll never forget the first time I saw a BBC Basic
| prompt when I devved my first emulator.
| mattbee wrote:
| My very first paid job in 1997 was extending a PC emulator
| product for an ARM desktop computer with a 486 co-processor. I
| was a teenager who knew a bit of C & ARM code, otherwise no
| hardware or x86 knowledge at all. Obviously PCs have always
| been _quite_ well documented, and there were other emulators to
| look at for comparison. But where I couldn 't work it out, and
| the few books I had were no use, I just had to experiment:
| write a bit of code, see what the response was (usually crash,
| sometimes the whole computer).
|
| A lot of it is building a mental model of the enemy (for me:
| Windows NT early boot, DirectDraw initialisation) and writing
| code that got it to the next step, and the next step... It was
| always slow work, but therapeutic once you find a thread to
| pull on. When you get it right, the reward is sudden: you have
| this alien world that is running where it shouldn't, like a
| fish swimming in a tree.
|
| I'd love to do more of that kind of work!
| ouraf wrote:
| " i dont know how anyone gets paid to do this and yet there is
| so much incredible depth to learn that is probably undocumented
| because of legal issues"
|
| - There IS a path to commercial emulator development. Most of
| these "retro collections" you see being sold on video game
| online shops are a frontend, a custom made emulator to avoid
| any legal/license issue (Avoiding GPL code as much as
| possible), a cool frontend and some extras depending on how
| much the team could unearth and license from the original
| developer/publisher/rights owner. Hell, Nintendo and Sony had
| teams making official emulators for the Playstation 1 emulation
| on PSP/PSVita/PS3 or almost every nintendo console before the
| GameCube for Virtual Console games
|
| - Each country has its own set of laws, but using US cases as
| an example, developing an emulator for research purposes only
| (or at lease not competing directly with whatever you're
| emulating) and not using any file or code snippet from the
| original hardware can get a pass.
|
| That's how some emulators go by without getting a Cease and
| Desist from Nintendo or Sony. And that's why they never bundle
| the BIOS with the emulator, even if it needs it to emulate...
| well... Basic Input and Output Systems.
| hx8 wrote:
| Some of the official emulators use open source projects. The
| PlayStation Classic uses ReARMed.
| BaseballPhysics wrote:
| Yes, just hacking nights and weekends. I've done my fair share
| of console reverse engineering, developing software for console
| devices (mostly GBA and NDS development, but a fair bit of SMS
| and Genesis reverse engineering), etc, and it's seriously some
| of the most fun I've had as a developer. But it takes an
| enormous amount of tenacity to push through the inevitable
| challenges.
| robertwt7 wrote:
| where do you start learning reverse engineering things? I'm
| also curious, as a software eng focusing on web stuff and
| api, it's getting quite boring.
|
| These things excites me but i never got to start
| johndoe0815 wrote:
| If you're specifically interested in reverse engineering
| for ARM-based systems (32 and 64 bit), this book is a
| pretty good introduction:
|
| "Blue Fox: Arm Assembly Internals and Reverse Engineering"
| by Maria Markstedter
|
| https://www.wiley.com/en-
| us/Blue+Fox%3A+Arm+Assembly+Interna...
| johndoe0815 wrote:
| Related article on The Register, also mentioned here on
| HN (https://news.ycombinator.com/item?id=37336623):
|
| https://www.theregister.com/2023/08/31/a_star_star_domain
| s/
|
| "Maria Markstedter - a noted author, assembly language
| expert, and security researcher who's written extensively
| about Arm at the websites she operates - received a
| cease-and-desist demand from Arm's lawyers. Her offense?
| According to the letter she shared on Xitter, using the
| trademark "Arm" in the domain name arm-assembly.com that
| she used to promote a book she wrote about the ISA."
| lauriewired wrote:
| I've made a lot (50+) of videos on Reverse Engineering,
| with a heavy focus on ARM assembly as well as mobile
| platforms.
|
| youtube.com/@lauriewired
|
| Self-promotion I know, but I hope someone finds it useful
| hadlock wrote:
| This is a good place to start. Named "the ultimate game boy
| talk" dives into the CPU used, the instruction set(s) used
| by the CPU, how the video instruction sets work(ed) etc.
| The game boy from 1989 is a pretty simple device to start
| learning from. From there you can look at how various
| people emulated the system.
|
| https://www.youtube.com/watch?v=HyzD8pNlpwI
| joestrong wrote:
| I second this. I also have a web background, and last
| year I started with this video, and the Gameboy is a
| great place to start with this sort of thing.
|
| Start making a game, and you'll soon realise how the CPU
| works, and making a simple emulator will start to seem
| very possible.
| BaseballPhysics wrote:
| So, to be clear, I spent my time reverse engineering
| software rather than the hardware itself. That said, my
| observation is that a lot of hardware reverse engineering
| _is_ software reverse engineering since the software helps
| you understand how the hardware works (the Asahi guys
| literally built a hypervisor so they could watch macOS
| interact with hardware).
|
| And software reverse engineering is just grunt work. I'd
| start with a very well known existing hardware platform
| with a very simple CPU design--the GBA is actually a really
| nice platform as the ARM has a very sane ISA and it's all
| memory mapped I/O--and get a devkit and start experimenting
| by writing software to run in an emulator so you can get a
| feel for how the hardware works.
| saagarjha wrote:
| GameBoy Advance is also nice in that whenever you get
| really stuck most of the answers are available online ;)
| DanielHB wrote:
| how do you guys find the energy to hack nights and weekends?
| I do enjoy hobby programming but it takes me at least one
| week of vacation to detox from the work grind so I end up
| doing it only when I have extended vacation
| minimaul wrote:
| Honestly I agree with this.
|
| When I was more junior, or not doing programming as a full
| time job, I was more motivated to work on personal
| projects. Now I am more senior and programming/managing
| people full time, I can't get motivated to work on code-
| related projects in my downtime. It sucks :/
| _trackno5 wrote:
| I'm in a senior position and most of my time goes to
| architecting and design work. I barely get to code at my
| day job.
|
| I just use my free time to code. I see it as a relaxing
| activity
| Nursie wrote:
| I have spurts of this, occasionally I'll spend a month of
| evenings/weekend time doing a project. It's usually when
| work isn't scratching the right sort of itch, so I scratch
| it elsewhere.
|
| Personal projects are often embedded coding of some sort,
| though I spent some time poking at the PS3 firmware when
| that was first cracked too.
|
| Spending months reversing and emulating a console... that
| takes dedication I don't have though. I guess these guys
| are really itchy? Or it's in a really hard to reach spot?
| Drakim wrote:
| Honestly, it happens when I get some weird idea in my head
| that I can't stop thinking about, and a sort of mania takes
| over and gives me the energy and drive to work on it for
| hours on end.
| doctorpangloss wrote:
| It helps when the end goal is really well defined like a
| software emulator. Nearly everything that could slow you
| down is a known quantity. Conversely, the unknowns, like
| how to implement native hardware API X on non-native non-
| accelerated platform Y, are naturally where community
| emulators are weakest.
| mysterydip wrote:
| (not that you should take advice from random strangers on
| the internet, but) that sounds like classic ADHD
| hyperfocus to me. Giving a name to it might help in
| figuring out how to maximize its benefit.
| illwrks wrote:
| I experience the same hyperfocus, but I don't have ADHD,
| I'm quite the opposite really. My background is design
| and when I was a child I could easily 'get lost' in
| various forms of art etc for hours. I've met plenty
| people over the years that are the same, so I'd argue it
| might be something more aligned with some creative and
| analytical thought process, and a drive etc to
| understand/solve the problem at hand.
|
| In terms of where to find the time, there are 24 hours in
| the day, at least 8 for working the 9-5.
| Aco- wrote:
| There are three types of ADD[1]. That which you describe
| here sounds a lot like the "Inattentive" type.
|
| [1] https://www.healthline.com/health/adhd/three-types-
| adhd
| illwrks wrote:
| I've learned something new, thank you!
| widforss wrote:
| That's about the only time I can do honest work
| programming. It makes me avoid doing programming tasks at
| work and try to find more writing-related stuff ...
| jskherman wrote:
| Ditto, that kind of mania is a force to be reckoned with.
| On one hand you get insane productivity and momentum from
| it and on the other hand can cause you to momentarily
| neglect some responsibilities. I have a love/hate
| relationship with that side of mine.
| Barrin92 wrote:
| in addition to what the others have said, I go home every
| day at 5 pm, no crunch or grind, no work calls outside of
| working hours. (luckily I live somewhere where that is
| guaranteed by law).
|
| I think keeping a schedule that way has prevented me from
| every souring on programming in my free time.
| jebarker wrote:
| The key for me is that it has to be 100% fun. As soon as I
| start thinking about external recognition or trying to make
| money off of a personal project I lose motivation. Right
| now despite coding all day at work I still have the energy
| for coding on my own time on a NES emulator just because
| it's really fun.
| dfxm12 wrote:
| Working with code day to day has almost fostered in me a
| sense of contempt for computers. In high school/college, I
| spent a lot of free time doing rom hacks, etc. I just can't
| now. Now my tech hobbies lay more around arcade
| repair/modding. Knowing what I know now, I wish I could
| muster up the energy to combine the two and work on
| projects similar to UMK3+ [0], but I just don't feel like
| sitting in front of a debugger all evening after coding all
| day at work :|
|
| I guess in my case, I had to find a hobby that was not
| exactly like work, even if it was work-adjacent.
|
| 0 - https://mkombat.plus/
| saagarjha wrote:
| I don't code all that much at work. Personal projects and
| open source work are my opportunity to make things I want.
| hashar wrote:
| > how do you guys find the energy to hack nights and
| weekends? I do enjoy hobby programming but it takes me at
| least one week of vacation to detox from the work grind so
| I end up doing it only when I have extended vacation
|
| Namely passion, curiosity and probably not having much more
| other hobbies beside programming or hacking stuff around.
|
| I recently went to try to improve a Linux kernel input
| device driver for a USB headphone: adding unit tests (whose
| execution is nearly instant). I have learned a ton of
| things about Linux development, C (I don't know C at all),
| input devices driver system (hid), the USB protocol and my
| device specifications.
|
| I have never managed to boot it live to test with my actual
| device. That is despite spending probably despite spending
| probably 40 hours including a 10pm - 4am session on a
| Saturday night. But I had lot of fun doing it and I think
| that was the point.
|
| I guess you can't beat passion and curiosity.
| wiz21c wrote:
| This 1000X ! I'm currently working on emulating the Apple 2+
| speaker better. It's been a 2-3 spare time hours a week for
| about a year now :-)
|
| But the joy of working on a machine that's part of your life,
| without the need to please end users (which is cool too but
| sometimes induce pressure), well, that's basically coding
| like when I was a kid. Except that now I have a TON more
| knowledge to work with !
|
| And, while working on disk emulation I had the pleasure ot
| discover those many copy protections that "prevented" me to
| get many games :-)
| BaseballPhysics wrote:
| Absolutely.
|
| And the other thing I love about it is the communities are
| typically super open and collaborative. I remember back
| when I first got into GBA development, there was a ton of
| docs, tools, libraries, and other things that folks had put
| together and then shared with one another. It's a lot of
| very passionate people sharing some very niche interests,
| which can be incredibly fun (of course it can also be a
| drama filled nightmare but such is life with passionate
| people).
| raincole wrote:
| People can also be retired or simply rich.
| bb88 wrote:
| Well... there's a lot of money to be made in reverse
| engineering things --particularly in legal settings where
| software is an issue.
|
| Don't forget that the Chinese do this constantly with American
| products. Trying to figure out how we built something, and
| doing it for cheaper.
|
| So what would be cool is if he could make a great console
| experience cheaper than Nintendo could make it.
| ambyra wrote:
| I'm sure they're not doing it for the money, but their Patreon
| brings in over 2k/month. Not enough to quit your day job, but
| pretty good side money. Plays Zelda better than the Switch
| too!!
| deaddodo wrote:
| Emudev is largely a hobby field. It takes skills from many
| fields to accomplish. You need the combined efforts of hardware
| engineers, reverse engineers, diligent documentarians, software
| engineers with specialized skill sets, etc. Everyone building
| on top of each other.
|
| You'll see one-person operations, but they're usually relegated
| to older hardware and they still utilize documentation from
| many disparate sources. Even nesdev wiki was built on top of
| 6502 researchers, Taiwanese clone manufacturer reverse
| engineers, decappers, older NES emulators, heaps of existing
| documentation, etc.
| HeuristicsCG wrote:
| There are many jobs for emulation development though. Every
| company that makes chips has an interest in having software
| emulators of them since it's easier to try out a new feature
| in an emulator than to write it in hardware. For example any
| GPU maker (AMD/NVIDIA/ARM/Qualcom/Imagination/Apple etc) will
| have a team of 10-100 people working on one or several
| emulators for their products.
| derefr wrote:
| "This sort of thing" is actually really simple to get started
| with. You just read a few docs about the object-code format and
| instruction-set of the device you want to emulate, and then
| start writing a simple interpreter loop that reads and executes
| instructions from any arbitrary existing program ROM. Compare
| and contrast the results of running it on your emulator with
| running the same thing on real hardware (or on some other
| emulator.)
|
| As soon as you get one well-known program working and
| displaying something on the screen -- congratulations, you've
| made "an emulator"! Now all that's left is "just" debugging the
| inevitable compatibility issues that your emulator will
| encounter with every _other_ program ever compiled for the
| target architecture. It 's like Test Driven Development, but
| your test suite is "the complete game library of the console"!
|
| (And then, once you've got 100-ish percent compatibility, maybe
| you can spare some time to optimize performance!)
|
| If you've never done this before, it can be great fun! I'd
| recommend starting with a Z80 (Gameboy) emulator -- it's an
| extremely well-documented architecture, fairly simple (no weird
| concepts like clipping masks or MMU mapper chips), fast to get
| to the "rewarding" point where you've got something displaying
| on-screen, and so low-powered that on modern hardware it'll run
| at full speed even with the most naive implementation.
| IggleSniggle wrote:
| I had a friend get into it by being interested in middle school
| and just getting deeper and further with time. I think the fact
| that "they don't want you to do it" while many people _do_ want
| you to do it is part of the allure: feels like being an
| intellectual Robin Hood, even if it 's really not that; but
| also it's just a satisfying puzzle in its own right.
| urza wrote:
| Why doesn't Nintento release their games to other platforms? I
| would love to play Zelda, but I am not going to buy a console
| just because of one game..
| dathinab wrote:
| they are obsessed with trying to force there products to be
| only used roughly like intended
|
| Or else they e.g. probably wouldn't patch out item duplication
| glitches which are close to impossible to accidentally ran
| into, or they would allow you to change control a age old basic
| features missing from Nitendo games instead you can only use
| controls in the intended (and play tested) ways. Similar they
| where quite obnoxious when it comes to streaming, reviews or
| other content containing game-play video for quite a long time.
| To some degree they still are.
|
| Through for many people it's not just one game I mean Nintendo
| has quite a bunch of successful exclusive titles, to list some:
| Zelda, Mario Cart, Smash, various jump and run Mario titles you
| could split into 3D main titles and 2D complementary titles,
| Splatoon, Mario Party, Fire Embleme, Xenoblade, Kirby and more.
| In practice you tend to have at least 10 high quality enjoyable
| (but expensive) exclusive games. (ignoring Wii-U which flopped
| and leading to some strange results like Mario Cart 8 being
| republished with the DLCs pre-included and later a large
| expansion pass instead of releasing a Mario Cart 9).
| causi wrote:
| _I would love to play Zelda, but I am not going to buy a
| console just because of one game_
|
| I'd pay a thousand dollars cash right now to be able to play
| Breath of the Wild and Tears of the Kingdom over for the first
| time. It's worth it.
| peatmoss wrote:
| However as someone who purchased BoTW and played it years ago
| on Switch, and again recentishly on CEMU, the experience on
| CEMU in 4k @60hz, it was a whole different game.
|
| I'd pay Nintendo 3x the cost of ToTK to play a version that
| ran on my PC with improved resolution and frame rates. Until
| then, I watch the status updates for Switch emulators, and
| will play ToTK once emulation is reported to be ~perfect.
| I'll buy ToTK, but I won't be playing on hobbled Switch
| hardware.
| causi wrote:
| What's the problem with your PC? I've been playing TotK on
| PC since before it launched and, after the rock-texture
| problem was fixed, high framerate and 4K work just fine.
| There's even a TotK mod manager now. Way better than my
| wife's experience on Switch.
| kridsdale3 wrote:
| I considered this, but I decided that the 100% confidence
| I had in a bug-free-experience (including crashes and
| risk of save-game loss) on the native hardware was worth
| the better experience I was likely to have at a higher
| risk playing on the MacBook M1 Ultra at 4k. I don't
| really regret it. My TV added "simulated HDR" and I
| played with frame-smoothing on for a simulated 120FPS.
| Yes there was latency but in this game it never mattered.
| Not even a little bit. I enjoyed every one of the 175
| hours I spent in TOTK.
| schlurken wrote:
| Beyond what some of the other comments mentioned, Nintendo also
| took a different approach to their consoles compared to
| Microsoft and Sony which kind of forces them to lock down their
| first-party titles.
|
| The Nintendo Switch is very underpowered compared to the other
| consoles of the same generation (PS4/5, Xbox Series X) but has
| a huge advantage of being the ultimate handheld / travel
| console. While Sony and Microsoft consoles can generally push
| out more FPS or better graphics (usually they lean towards
| better graphics), the Switch is very limited since it needs to
| strike a balance of form factor (less space for hardware) and
| battery life (what's the point of the handheld if you can only
| game for 30 minutes?).
|
| For a big chunk of their user base, including the folks
| interested in these type of emulators and using them legally,
| they would probably prefer to use their other consoles and/or a
| PC/Mac from a pure performance perspective.
|
| I also suspect that they would get less revenue per copy sold
| on other platforms compared their own platform, especially with
| games released by in-house studios.
|
| With the above in mind, releasing a game on other platforms
| will cut into their revenue stream pretty significantly.
| agloe_dreams wrote:
| This is actually super interesting because they have. In China
| they allowed Nvidia to ship a Wii emulator on the Shield.
|
| https://www.nintendolife.com/news/2021/08/nvidia_shield_shut...
|
| What is really wild to me is that they could 100% ship Zelda
| for iOS and make a killing. The Switch has absolutely nothing
| on a modern iPhone/iPad, even heatsoaked and it would
| immediately be the best game on iOS.
| lockhouse wrote:
| You just answered your own question. :)
|
| Want to play Zelda? You have to pay Nintendo at least $260.
| $100 more if you want to play on something better than a Switch
| Lite.
|
| Unlike Sony and Microsoft, Nintendo actually makes a profit on
| their hardware sales as well as game sales.
| Grazester wrote:
| The PS5 has broken even since 2001 by now it may be
| profitable
| selykg wrote:
| Other console makers make a profit on their consoles as well.
| Typically it's either a small margin at the beginning, or
| maybe they're eating it somewhat, but as time goes on the
| components get cheaper, production is improved, or they make
| revisions to reduce complexity in the circuit boards, or they
| release a newer smaller version of the console as well. But
| it's not fair to say that Sony and Microsoft lose money on
| their console hardware but Nintendo doesn't.
| whywhywhywhy wrote:
| >but I am not going to buy a console just because of one game..
|
| You might not but many millions do consistently.
| jitl wrote:
| I bought a Switch OLED to play Tears of the Kingdom, plus the
| game - $420 all in. If I could play it on my laptop which has a
| better screen and speakers, I would only pay $60. Plus, now I'm
| more likely to buy another Nintendo game to increase the
| utility of my new gizmo. As a business I'm pretty sure I'd
| rather have 7x the revenue.
| amiga386 wrote:
| Nintendo is just Nintendo, and enough people _have_ bought a
| console just because of one game (or several games) for them
| still have enough money to keep being Nintendo.
|
| I don't really want to defend them, but you need to look at the
| North American video game market crash of 1983 to understand
| their current stance. The entire video game market collapsed,
| because _any old crap_ was being released as a game. Consumers
| lost confidence in the "platform" of specific games consoles.
| If they bought a home computer instead, there would still be
| games and it had other utility.
|
| The NES was the antithesis of this. A walled garden of
| Nintendo, and plenty of first-party game development. The
| approach worked, it brought them fortune and made them a major
| player in the video game market. Why would they abandon this
| approach if it's still working for them almost 40 years later?
| kmeisthax wrote:
| I think you're answering the wrong question. Parent post
| wanted to know why Nintendo doesn't want you playing their
| games on other people's hardware, you answered why Nintendo
| locks out other people's games on their hardware.
|
| Nintendo _has_ occasionally licensed out their brands for
| other hardware, but it 's rare. Examples that come to mind
| are:
|
| - Home ports of Donkey Kong, most of which came out before
| the NES
|
| - Various Mario-branded edutainment games and typing
| tutors[0], which were available for IBM-compatible/WinTel PCs
| (probably also Mac OS but I don't remember)
|
| - Phillips CDi games such as Hotel Mario and the two Zelda
| games it got[1]
|
| - Nintendo's spinoff mobile games such as Super Mario Run,
| Animal Crossing Pocket Camp, etc
|
| A general unifying factor is that many of these were garbage.
| The mobile spinoffs are better, but those were made primarily
| to appease shareholders angry that the Wii U wasn't selling
| well. So I imagine Nintendo has had such a bad taste in their
| mouth from working with third party platforms that they'd
| rather just not. Furthermore, doing so means having to pay
| 30%, instead of receiving it from other developers.
|
| [0] One of which was also Charles Martinet's first stint as
| Mario
|
| [1] Notable for having lots of animated cutscenes that
| provided ample YouTube Poop material
| smashah wrote:
| The developers shouldn't have to be anon for this type of amazing
| project. They should be publicly celebrated instead of having to
| hide for fear of being buried in legal trouble. Sad state of the
| world.
| balls187 wrote:
| I think one need only to look a at happens in China to see the
| ramifications when you have flagrant disregard to IP
| protections.
|
| Which world state is sadder?
| 0xdeadbeefbabe wrote:
| The one with broken international laws?
| dvdkon wrote:
| Are you trying to draw a connection between disregarding IP
| laws and disregarding human rights? Because I'm pretty sure
| there isn't any.
| balls187 wrote:
| No, I can see how discussing china could mean human rights,
| but in this case I was referring to China's flagrant IP
| violations.
|
| https://www.technologyreview.com/2023/06/20/1075088/chinese
| -...
| dvdkon wrote:
| I still don't see how China's IP violations lead to a
| "sadder world state". The article you linked seems mostly
| sympathetic to foreign trademark-infringing sellers, and
| I certainly don't lose sleep over small-time trademark
| problems. I'm not happy about the copyright infringement
| and full-on fraud that happens in China, but there's
| certainly an argument to be made that the current rules
| (or absence thereof) were necessary to make China the
| superpower it is now. If I was Chinese, I'd be pretty
| happy about it.
| rjzzleep wrote:
| Can you be more specific?
| conradev wrote:
| China disregarding IP protections to bootstrap their
| manufacturing base, military, etc was one of the greatest
| decisions they could have ever made?
| seanw444 wrote:
| At the expense of the private individual, yes.
| roywiggins wrote:
| The US kind of famously behaved the same way at least
| with regards to copyright.
|
| https://digitalcommons.pace.edu/cgi/viewcontent.cgi?artic
| le=...
| BonitaPersona wrote:
| "China politicians do what yours would if they could, and
| will the moment they can".
|
| Difficult to translate from the source in spanish. I hope
| it is understandable.
| bix6 wrote:
| The world that hoards it's IP so a few can be rich is sadder
| for sure. China will soon overtake the US in EVs per capita.
| balls187 wrote:
| Let me know how well that works with EV charging
| infrastructure in China.
| [deleted]
| skykooler wrote:
| Is there any way to play games (legally) on this if you don't
| have a Switch to dump them from? Is it possible to buy Switch
| games through a web browser?
| psychphysic wrote:
| This must depend on your jurisdiction.
|
| But if you own the game, does it matter how you got the ROM?
| spicyjpeg wrote:
| > But if you own the game, does it matter how you got the
| ROM?
|
| It does from a legal standpoint. In many countries, making
| your own backup copies of your games for personal use is
| legal (although anti-circumvention laws like the DMCA blur
| the lines here) but obtaining a backup copy from someone
| else, regardless of whether or not it is a copy of a game you
| already own, is not; at best it is a legal gray area.
| gnopgnip wrote:
| Does it matter from a legal standpoint?
|
| You aren't reproducing _, distributing_ , performing,
| publicly displaying, or making a derivative work. *The
| uploader is the one reproducing the work, see Disney v.
| VidAngel
|
| And under fair use 3 of the four points would be in your
| favor, but that isn't determinative
| staticman2 wrote:
| A finding that VidAngel violated copyright doesn't mean
| their customers didn't also violate copyright. Their
| customers weren't the ones being sued, that doesn't mean
| the customers were in the clear.
|
| I don't see where you are getting the uploader is the one
| reproducing the work rather than both parties were? Also
| that appears to have been a streaming case so not really
| relevant?
| deaddodo wrote:
| VidAngel clarified what "distribution" meant in the
| context of "digital piracy". Receipt is not a qualifying
| symptom to make you an offender, you need to actively
| make available for others.
|
| As far as I am aware, in US law, there is no subject code
| specifically for and simply for _possessing /receiving_
| pirated material (unless it's legislated in some other
| manner: CP, private govt documents, etc). Despite many
| court attempts to argue that "downloading" is equivalent
| to "making a copy".
|
| This is why, during the MPAA/RIAA war against p2p, they
| specifically targeted the fact that all users were mesh
| sharing files. It's why one user was charged millions for
| "sharing a file a multitude of times" and another was let
| off completely free for sharing a minuscule percentage of
| many downloaded files.
| gnopgnip wrote:
| VidAngel covers the requirements for copyright
| infringement and cites all relevant previous cases
|
| It is true that doesn't mean customers were in the clear.
| But it's impossible to prove a negative. There are zero
| copyright cases for streaming customers or downloading
| without also uploading via p2p.
|
| Are you aware of any case law that finds otherwise?
| prmoustache wrote:
| I'd be curious which one you are talking about?
|
| Most countries allow downloads. They usually specifically
| target torrent users because a typical torrent user is
| making the file available to others while downloading. It
| doesn't apply if you download with a protocol (like
| http/https/ftp) that doesn't make you share the file.
| bzzzt wrote:
| Lots of countries don't. In the Netherlands, it was
| allowed but later changed to prohibit 'downloading from
| clearly illegal sources'.
| prmoustache wrote:
| So you can pretend it is not clear and you don't know it
| is illegal then?
|
| I promise I thought that website was legit and was
| offering free licences for Super Mario![1]
|
| [1] Apparently it works with software, you can purchase
| licence keys of Microsoft products (OS, Office) at
| roughly 5% of the original price through "reputable
| vendors".
| bzzzt wrote:
| Dutch courts don't accept the excuse that you don't know,
| you're supposed to know the law and do a bit of research
| in what the normal price and suppliers of goods are.
|
| It's comparable to buying a bicycle worth 800 euro for 20
| from a drug addict. Even if you don't know it's stolen,
| you're guilty of fencing.
| Shared404 wrote:
| > Is it possible to buy Switch games through a web browser?
|
| https://www.nintendo.com/store/games/nintendo-switch-games/#...
|
| You won't be able to download or dump them without a Switch
| though.
| verwalt wrote:
| Having a jailbroken switch is the only way.
|
| So every new one you buy is almost definitely a patched V2, and
| all the Switch Lites and OLEDs are not jailbrakable either,
| without soldering a modchip.
| [deleted]
| bb88 wrote:
| I remember the original XBox had a pogo pin mod. Is this
| possible today?
| deaddodo wrote:
| The classic Switches have a bridgeable pin in the
| controller port that'll give you ring0 access. But it's
| only that very first generation.
|
| You just slide something like this:
|
| https://www.amazon.com/Nintendo-Switch-Short-Connector-
| Recov...
|
| Into the controller slide and enable it when you want RCM
| access.
| [deleted]
| KolmogorovComp wrote:
| Tangential, but can these emulators run untrusted code? If not,
| is there some way to check for authenticity of random ROM like
| checksum?
|
| If checksums were to work, do you know if a website centralizing
| those would fall under the law?
| [deleted]
| Kipters wrote:
| They can run any code. You can use checksum and such a site
| centralizing would be in the clear as it doesn't contain any
| copyrighted material, only hashes (perhaps including cover art
| would be a problem?)
|
| As far as I know there exists one specifically for switch
| (nswdb.com, which is used by a common dumping tool to verify if
| your dump is valid or not) and another for basically every
| console but the switch (for some reason) run by no-intro
| (datomatic.no-intro.org)
|
| Another site that only cares about disc-based releases is
| redump.org, which has quite a few dumping guides in their wiki.
| KolmogorovComp wrote:
| Thanks for the links! Missing word, I meant to ask if they
| can _safely_ run untrusted code! I.e if the emulator is
| sandboxed.
| Kipters wrote:
| In general emulated code should only be able to interact
| with the emulated machine, not the host machine running the
| emulator. But there's no specific sandboxing and there have
| been cases of bugs in emulators that allowed specially
| crafted roms to execute code on the host
| (https://scarybeastsecurity.blogspot.com/2016/11/0day-
| exploit...)
| necrosyne wrote:
| I love Yuzu and Ryujinx both. It's crazy that they can provide a
| superior experience to the native console. I suspect the party's
| about to be over thanks in no small part to Denuvo.
| causi wrote:
| I doubt it. So far Denuvo's claims to prevent emulation are
| just that, claims. Even if they do, people have an unlimited
| amount of time to work on bypassing it.
| tetris11 wrote:
| It also skims 5 fps from your framerate. Maybe that's nothing
| for some, but
| necrosyne wrote:
| Eh, I'm less skeptical. Denuvo has a proven track history of
| being exceptionally difficult to crack (and last I'd heard,
| only one hacker even possesses the skill to do so.) If
| they're as competent with locking down Switch titles (or, as
| is rumored, future Unreal Engine games) the gaming community
| at large is in for some chop.
| satvikpendem wrote:
| It is kind of annoying that Irdeto, the makers of the oft-
| maligned Denuvo DRM, have made one that specifically targets
| Switch emulators, even though emulators are legal.
| zirgs wrote:
| That's because most emulator users are pirates. Few people
| bother dumping their games themselves.
| agloe_dreams wrote:
| Emulator users are generally only pirates because they cannot
| just buy the software and dumping carts is costly due to
| proprietary formats. There is tons of evidence that most
| piracy is due to unavailability.
|
| I would 100% pay $70 to buy Zelda that just runs on PC at
| 4K...but nope, gotta have it at 720P @ 28FPS.
| extraduder_ire wrote:
| Modchips are available for every switch console now, and
| the early ones can be softmodded pretty easily.
|
| It's a bit hit or miss on other consoles, but it's often
| pretty straightforward to dump your own games. IMO, it's
| kind of dumb to make people "do a little dance and magical
| incantation" to make what they're doing "more legal"
| especially when there's little case law about it.
|
| Also, _everything_ on the switch is ID-tagged. If nintendo
| wants to, they can ban carts, consoles, controllers,
| accounts, and more for arbitrary reasons.
| satvikpendem wrote:
| Many of them own the actual game, even if they don't
| literally dump it themselves. I wouldn't call that piracy.
| aqfamnzc wrote:
| I agree with you. However, now that you bring it up, I
| wonder what the law says? My guess is it's technically
| still not legal, at least in the US. :(
| callalex wrote:
| It is 100% legal in the USA to use an emulator to run
| ROMs you dumped from legally purchased games.
| necrosyne wrote:
| I have physical copies of the games I play in Ryujinx, and
| don't dump the ROMs myself. I suspect I'm in the minority
| however.
| Weryj wrote:
| This was a great way to bring controller focused games to Mac
| geokon wrote:
| Early emulators had to emulate the super funky hardware that
| early consoles had.
|
| Now a days consoles are pretty similar to consumer computers (I
| though the switch was basically a Nvidia Jetson)
|
| Is the emulation now more like Wine - about providing the
| necessary APIs and then running on a VM, or is there actual
| hardware emulation ?
| grishka wrote:
| It's more high-level than it used to be but GPU is the main
| problem. The graphics APIs that games use usually expose
| various hardware specifics so games could be fine-tuned to get
| most out of that specific hardware. It takes a lot of work to
| translate these hardware-specific API calls into
| OpenGL/Direct3D/Vulkan/Metal.
| zirgs wrote:
| It helps that many console devs don't bother with low-level
| optimisations, because they can get away with a bit worse
| performance. Just cap the framerate to 30 like most other
| console games do.
|
| It wasn't an option during the NES era. Every clock cycle
| counted back then.
| [deleted]
| grishka wrote:
| NES-era games also ran on bare metal. Modern consoles run
| proper modern operating systems with everything you'd
| expect to find in one -- preemptive multitasking, virtual
| memory, hardware abstractions, kernel- and user-mode with
| syscalls, etc. PlayStation OS is a Unix system (something-
| BSD IIRC), Xbox's is obviously based on Windows NT, and
| Switch runs something Nintendo built from scratch.
|
| Cycle-counting doesn't make much sense for code running in
| a preemptive-multitasking OS because no matter how much you
| count cycles, the actual execution time for a piece of code
| would be non-deterministic. That, and I suppose most modern
| games are bottlenecked by the GPU, not the CPU.
| Retr0id wrote:
| fwiw, the switch actually uses cooperative multitasking.
| This causes emulation headaches of its own, because
| sometimes retail games are buggy, but due to the relative
| determinism of scheduling nobody ever noticed (e.g. race
| conditions that are reliably won on real hardware will
| suddenly start breaking in emulation).
| grishka wrote:
| Cooperative multitasking on a multi-core CPU? How on
| earth does _that_ work? Do games themselves assign their
| threads to cores explicitly?
| bakugo wrote:
| For the Switch specifically, it has an ARM CPU so an ARM
| emulator is still necessary on x86 systems, but on native ARM
| systems it's possible to run CPU code almost natively, and this
| has already been done (a now-dead emulator for android called
| Skyline did it, and apparently Yuzu will also implement this
| feature in the future)
|
| The bigger problem is the GPU, it's an Nvidia Maxwell GPU but
| uses its own custom API made specifically for the Switch
| (internally named NVN) so a full translation layer including
| shader recompilation is still necessary.
___________________________________________________________________
(page generated 2023-08-31 23:02 UTC)