Even to this day, there's something utterly captivating about bringing to life a piece of software effectively frozen in time, designed to run on what was originally a black box, by means of a device that one uses to check up on cat facts. Adding to this, it can even be enhanced and possibly perform better than its developers ever hoped for.
If you're like me, gaming console emulators were amongst the first pieces of software you've ever run on a computer. Submitting this talk was an endeavour to explore this unexplainable (or is it?) fascination by what seems to conceptually be a compatibility layer. More importantly, it aims to have you intrigued about emulation development and the scene in general in the year 2021, by presenting the significance of the emulation community in the context of education and history preservation.
It will also highlight how emulation development is more accessible today compared to the early days of the likes of PSEmu Pro, Project64 and NO$GMB - thanks, in no small part, to the FOSS community.
TLDR: this will focus on the "why" (rather than on the "how") you should start writing emulators.
This will hopefully provide people that can relate to the below points...
solid programming background
naturally curious about the inner workings of computers
a little too sceptical as to what business they could have entering territory of the emudev Gandalfs of the 2000s that they looked up to during their school years
[optional, but desired] having fond memories of getting absolutely no choppy sound whatsoever with Tekken 3 running on Bleem! off of a CD on their even-then ancient Pentium 3 computer
... with good reasons as to why dipping their toes in emulation development is worth their time, and how writing an emulator is an awesome all-round learning experience, out of of which you'll become a better engineer.
What's more, how you get to do it in a context that you find meaningful, rewarding and worthwhile because it's one you can relate to: seeing your childhood games come to life (or, on the remaining 99% of occasions: using the debugger that you wrote trying to figure out why you can't get past the first screen)