News for hackers. Stuff that matters.
Re:RyujinX – Open Source Nintendo Switch Emulator by swyx on Thursday August 31, 2023 @01:39AM (#37332887)
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
Re:RyujinX – Open Source Nintendo Switch Emulator by BaseballPhysics on Thursday August 31, 2023 @01:52AM (#37332965)
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.
Re:RyujinX – Open Source Nintendo Switch Emulator by wiz21c on Thursday August 31, 2023 @01:57AM (#37332984)
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 :-)

Re:RyujinX – Open Source Nintendo Switch Emulator by BaseballPhysics on Thursday August 31, 2023 @02:18AM (#37333151)
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).

Re:RyujinX – Open Source Nintendo Switch Emulator by ravishi on Thursday August 31, 2023 @08:08PM (#37345182)
To this day I consider TONC (https://www.coranac.com/tonc/text/) to be the greatest software project I have ever worked with. It touches everything you need to develop games for the GBA. The documentation is awesome on many levels. The book is great. I am just thankful that I found it when I was younger as that introduced me to a whole lot of critical knowledge.
Re:RyujinX – Open Source Nintendo Switch Emulator by makapuf on Friday September 01, 2023 @02:39AM (#37347571)
Agreed 1000%. The issue I have is that its a bit of a shame that we don't have current fun platforms apart maybe from embedded (current gpus are closed, cpu and memory are often not a challenge if you are just a little, unless you use it for huge projects). Or am I mussing something ?
Re:RyujinX – Open Source Nintendo Switch Emulator by robertwt7 on Thursday August 31, 2023 @02:14AM (#37333130)
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

Re:RyujinX – Open Source Nintendo Switch Emulator by hadlock on Thursday August 31, 2023 @02:19AM (#37333157)
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

Re:RyujinX – Open Source Nintendo Switch Emulator by joestrong on Thursday August 31, 2023 @03:55AM (#37333858)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by BaseballPhysics on Thursday August 31, 2023 @02:24AM (#37333206)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by saagarjha on Thursday August 31, 2023 @05:18AM (#37334478)
GameBoy Advance is also nice in that whenever you get really stuck most of the answers are available online ;)
Re:RyujinX – Open Source Nintendo Switch Emulator by johndoe0815 on Thursday August 31, 2023 @05:27AM (#37334556)
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...

Re:RyujinX – Open Source Nintendo Switch Emulator by johndoe0815 on Thursday August 31, 2023 @10:25AM (#37337644)
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_domains/

"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."

Re:RyujinX – Open Source Nintendo Switch Emulator by lauriewired on Thursday August 31, 2023 @05:50AM (#37334692)
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

Re:RyujinX – Open Source Nintendo Switch Emulator by DanielHB on Thursday August 31, 2023 @03:28AM (#37333660)
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
Re:RyujinX – Open Source Nintendo Switch Emulator by Nursie on Thursday August 31, 2023 @03:48AM (#37333807)
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?

Re:RyujinX – Open Source Nintendo Switch Emulator by Drakim on Thursday August 31, 2023 @03:55AM (#37333852)
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.
Re:RyujinX – Open Source Nintendo Switch Emulator by widforss on Thursday August 31, 2023 @04:02AM (#37333896)
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 ...
Re:RyujinX – Open Source Nintendo Switch Emulator by mysterydip on Thursday August 31, 2023 @06:15AM (#37334879)
(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.
Re:RyujinX – Open Source Nintendo Switch Emulator by illwrks on Thursday August 31, 2023 @07:57AM (#37335802)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by Aco- on Thursday August 31, 2023 @10:04AM (#37337306)
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

Re:RyujinX – Open Source Nintendo Switch Emulator by illwrks on Thursday August 31, 2023 @01:25PM (#37340681)
I've learned something new, thank you!
Re:RyujinX – Open Source Nintendo Switch Emulator by jskherman on Thursday August 31, 2023 @08:17AM (#37336011)
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.
Re:RyujinX – Open Source Nintendo Switch Emulator by doctorpangloss on Thursday August 31, 2023 @11:09AM (#37338377)
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.
Re:RyujinX – Open Source Nintendo Switch Emulator by minimaul on Thursday August 31, 2023 @04:55AM (#37334301)
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 :/

Re:RyujinX – Open Source Nintendo Switch Emulator by _trackno5 on Thursday August 31, 2023 @08:01AM (#37335836)
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

Re:RyujinX – Open Source Nintendo Switch Emulator by makapuf on Friday September 01, 2023 @02:42AM (#37347580)
Same, I never code personally as much as when I'm in a management position. When coding during the day (which I like very much), I have less side projects or they tend to languish.
Re:RyujinX – Open Source Nintendo Switch Emulator by saagarjha on Thursday August 31, 2023 @05:17AM (#37334469)
I don’t code all that much at work. Personal projects and open source work are my opportunity to make things I want.
Re:RyujinX – Open Source Nintendo Switch Emulator by hashar on Thursday August 31, 2023 @05:21AM (#37334511)
> 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.

Re:RyujinX – Open Source Nintendo Switch Emulator by Barrin92 on Thursday August 31, 2023 @09:16AM (#37336689)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by dfxm12 on Thursday August 31, 2023 @10:17AM (#37337509)
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/

Re:RyujinX – Open Source Nintendo Switch Emulator by jebarker on Thursday August 31, 2023 @02:57PM (#37342082)
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.
Re:RyujinX – Open Source Nintendo Switch Emulator by raincole on Thursday August 31, 2023 @01:54AM (#37332969)
People can also be retired or simply rich.
Re:RyujinX – Open Source Nintendo Switch Emulator by bb88 on Thursday August 31, 2023 @01:54AM (#37332973)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by deaddodo on Thursday August 31, 2023 @01:55AM (#37332976)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by HeuristicsCG on Thursday August 31, 2023 @03:20AM (#37333604)
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.
Re:RyujinX – Open Source Nintendo Switch Emulator by hx8 on Thursday August 31, 2023 @01:58AM (#37332993)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by dmitrygr on Thursday August 31, 2023 @02:03AM (#37333046)
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

Re:RyujinX – Open Source Nintendo Switch Emulator by Dalewyn on Thursday August 31, 2023 @02:17AM (#37333146)
>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.

Re:RyujinX – Open Source Nintendo Switch Emulator by derefr on Thursday August 31, 2023 @02:30AM (#37333244)
"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, you've got "an emulator"; from there, the rest of the work is "just" in debugging compatibility issues with particular programs. (And optimization!)

If you've never done this before, it can be great fun! I'd recommend starting with a Z80 (Gameboy) emulator — it's extremely well-documented, 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 it'll run at full speed even with the most naive implementation.

Re:RyujinX – Open Source Nintendo Switch Emulator by CapsAdmin on Thursday August 31, 2023 @02:38AM (#37333300)
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. :)

Re:RyujinX – Open Source Nintendo Switch Emulator by TX81Z on Thursday August 31, 2023 @03:38AM (#37333736)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by jpbastyr on Thursday August 31, 2023 @08:01AM (#37335835)
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
Re:RyujinX – Open Source Nintendo Switch Emulator by chefandy on Thursday August 31, 2023 @09:11AM (#37336629)
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.
Re:RyujinX – Open Source Nintendo Switch Emulator by paulcole on Thursday August 31, 2023 @10:54AM (#37338117)
> 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.

Re:RyujinX – Open Source Nintendo Switch Emulator by epylar on Thursday August 31, 2023 @09:39PM (#37345787)
It is possible to be involved in something for various reasons, but it does not mean that one should willingly forego a benefit. "In it for the money" implies that the primary motivation is high pay, whereas "not in it for the money" indicates a strong preference for the type of work and a willingness to accept lower pay if market rates were to decrease.
Re:RyujinX – Open Source Nintendo Switch Emulator by paulcole on Friday September 01, 2023 @10:36AM (#37351360)
That's awfully convenient lol
Re:RyujinX – Open Source Nintendo Switch Emulator by makapuf on Friday September 01, 2023 @02:35AM (#37347542)
Replace programmer with dentist, trading or lawyer, how many work on it by passion ? On evenings unpaid side projects? For guitarists, or artists its not the same (hint: which pays generally more?) , so I would say programmer is a middle ground, from cobol bank programmer to gamedev
Re:RyujinX – Open Source Nintendo Switch Emulator by paulcole on Friday September 01, 2023 @10:37AM (#37351379)
I'm not following this comment at all.

> On evenings unpaid side projects?

I'd bet you've got a very skewed view of how people who make their living programming do this outside of learning something to help them get a better job.

Re:RyujinX – Open Source Nintendo Switch Emulator by moonchrome on Thursday August 31, 2023 @02:14PM (#37341462)
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)

Re:RyujinX – Open Source Nintendo Switch Emulator by ToucanLoucan on Thursday August 31, 2023 @09:22AM (#37336758)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by erfgh on Thursday August 31, 2023 @02:53AM (#37333405)
Probably worked in a company that made Switch games or in Nintendo itself.
Re:RyujinX – Open Source Nintendo Switch Emulator by Klonoar on Thursday August 31, 2023 @04:15AM (#37333995)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by erfgh on Friday September 01, 2023 @03:44AM (#37347884)
Why? Also, look up Steve Snake.
Re:RyujinX – Open Source Nintendo Switch Emulator by UK-Al05 on Thursday August 31, 2023 @02:58AM (#37333452)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by trollied on Thursday August 31, 2023 @02:59AM (#37333466)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by grishka on Thursday August 31, 2023 @04:03AM (#37333907)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by swyx on Thursday August 31, 2023 @01:14PM (#37340545)
and how long did that take you? just to gauge how big a task this was
Re:RyujinX – Open Source Nintendo Switch Emulator by grishka on Thursday August 31, 2023 @01:41PM (#37340941)
Something like 3-4 days combined I think? It also supports sound but that part is far from perfect, especially the noise channel.
Re:RyujinX – Open Source Nintendo Switch Emulator by hortense on Thursday August 31, 2023 @04:33AM (#37334137)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by thiht on Thursday August 31, 2023 @05:14AM (#37334444)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by saagarjha on Thursday August 31, 2023 @05:16AM (#37334458)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by MegaDeKay on Thursday August 31, 2023 @10:05AM (#37337330)
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.
Re:RyujinX – Open Source Nintendo Switch Emulator by mattbee on Thursday August 31, 2023 @05:58AM (#37334746)
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!

Re:RyujinX – Open Source Nintendo Switch Emulator by delfinom on Thursday August 31, 2023 @06:50AM (#37335182)
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

Re:RyujinX – Open Source Nintendo Switch Emulator by zirgs on Thursday August 31, 2023 @07:33AM (#37335578)
A potential career path would be to work on commercial console emulators at Nintendo or Microsoft. Or on compatibility layers like Wine/Proton.
Re:RyujinX – Open Source Nintendo Switch Emulator by wslh on Thursday August 31, 2023 @08:07AM (#37335900)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by ambyra on Thursday August 31, 2023 @08:21AM (#37336047)
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!!
Re:RyujinX – Open Source Nintendo Switch Emulator by 0xcde4c3db on Thursday August 31, 2023 @09:10AM (#37336620)
> 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).

Re:RyujinX – Open Source Nintendo Switch Emulator by geswit2x on Thursday August 31, 2023 @10:16AM (#37337498)
> the primary author of the ARM translation engine

Could you share more info about this?

Re:RyujinX – Open Source Nintendo Switch Emulator by mmebane on Thursday August 31, 2023 @11:10AM (#37338403)
They're probably referring to dynarmic: https://github.com/merryhime/dynarmic
Re:RyujinX – Open Source Nintendo Switch Emulator by elteto on Thursday August 31, 2023 @03:13PM (#37342285)
Con Kolivas, a well-known Linux kernel contributor and hacker, is an anesthesiologist [0].

[0] https://en.wikipedia.org/wiki/Con_Kolivas

Re:RyujinX – Open Source Nintendo Switch Emulator by ouraf on Thursday August 31, 2023 @09:25AM (#37336803)
" 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.

Re:RyujinX – Open Source Nintendo Switch Emulator by hx8 on Thursday August 31, 2023 @02:30PM (#37341721)
Some of the official emulators use open source projects. The PlayStation Classic uses ReARMed.
Re:RyujinX – Open Source Nintendo Switch Emulator by petabytes on Thursday August 31, 2023 @09:36AM (#37336956)
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.
Re:RyujinX – Open Source Nintendo Switch Emulator by harrygeez on Thursday August 31, 2023 @11:18PM (#37346418)
I love my XT2. What do you hack on? Is it shared publicly?
Re:RyujinX – Open Source Nintendo Switch Emulator by petabytes on Friday September 01, 2023 @05:40PM (#37356460)
Re:RyujinX – Open Source Nintendo Switch Emulator by tinus_hn on Thursday August 31, 2023 @10:10AM (#37337395)
Programming can also be a creative hobby like painting or writing.
Re:RyujinX – Open Source Nintendo Switch Emulator by MegaDeKay on Thursday August 31, 2023 @10:27AM (#37337669)
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.

Re:RyujinX – Open Source Nintendo Switch Emulator by IggleSniggle on Thursday August 31, 2023 @10:53AM (#37338109)
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.