/g/, how do I get started working on engines/emulators?
Projects like OpenMW are the coolest shit, and I wish I could help contribute. After seeing FreeSO end their TS1 mobile port because of legal worries (despite it being legal) and closing the source of their progress, I really want to have the skills to do things similar to that even if I never actually do.
I love the idea of being able to pull a ROM from some old kids toy like those digivices or tamagotchi and be able to build an emulator around it. But I have no idea where to even begin. I've always wanted to gamedev but this is even better.
Aside from knowing C, what should I learn? Is this one of those situations where if I don't know how to do it, I shouldn't be trying to do it?
Just do it!
>>61873908
You NEED learn assembly for the architecture you're targeting. Otherwise you can't emulate the processor.
>>61873976
(you don't have to write in it, just read it along with the raw binaries)
>>61873950
...
>>61873976
>>61873990
Alright, thanks. I guess emulating one of those things is harder than expected. I didn't really consider much farther than finding out what CPU was in it. Anything past that just looks like magic C to me.
Take a look at the chip 8 for a first emulation project. it's a really simple architecture and is easy to start with. Next I'd recommend a mos6502/vic 20 emulator project since that one is really simple as well, just a lot more work.
I've written x86/pc, gameboy, vic20 and some other emulators. It's a lot of fun seeing all those gears turning in the end. Good luck.
The hardest part isn't actually making it work, it's making it playable. Anything from the GBA era on will be absolutely unplayable without some optimizations.
As for making open source emulators of current games, your best bet is to cut your teeth on an obligatory doom clone. The concept is simple, it's like game development, but the assets and everything are already done. You'll see for even a 20+ year old game and plenty of open source implementations, the time sink is MASSIVE.