Jump to content

How to become an emulator dev?

Johnmakuta

I want to get into making more things for the community and I love playing console games (just not on consoles) so I was wondering how to get into the emulator dev game. I know basic Java and Python right now and I was going to learn C++ soon and was wondering what else I need to know. I've never built an OS or made my own Linux distro or anything but I'd love to learn how to do this kind of stuff. Any help would be great.

Link to comment
Share on other sites

Link to post
Share on other sites

Well you gotta learn a lot of C++ and C probably. You could also try to join an already existing emulator community, like try helping out with the development of the Dolphin emulator: https://forums.dolphin-emu.org/

Browse around the forum, take a look at the source code and the code other people provide, try to help out others and familiarize yourself with the code for emulators.

"We're all in this together, might as well be friends" Tom, Toonami.

 

mini eLiXiVy: my open source 65% mechanical PCB, a build log, PCB anatomy and discussing open source licenses: https://linustechtips.com/topic/1366493-elixivy-a-65-mechanical-keyboard-build-log-pcb-anatomy-and-how-i-open-sourced-this-project/

 

mini_cardboard: a 4% keyboard build log and how keyboards workhttps://linustechtips.com/topic/1328547-mini_cardboard-a-4-keyboard-build-log-and-how-keyboards-work/

Link to comment
Share on other sites

Link to post
Share on other sites

Good luck!, since minibois already gave you a bit of intel in how to get into doing it, ill say that its more of a hobby thing to do, don't expect to do a living out of this.

 

also try to learn how API's work :P

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, PeloyGeek said:

Good luck!, since minibois already gave you a bit of intel in how to get into doing it, ill say that its more of a hobby thing to do, don't expect to do a living out of this.

 

also try to learn how API's work :P

I'm not planning to live on it. Just want to learn and contribute.

Link to comment
Share on other sites

Link to post
Share on other sites

Research on basic CPU operation, processor registers, instruction sets and so on. Basically you'll have to become good at the assembly language of the CPU you're going to emulate as you're going to have to implement each assembly instruction.

 

You'll also have to decode the binary opcodes in the executable (ROM file) into their corresponding assembly before you can interpret them.

 

You'll also have to become versed at understanding the memory layout and possible memory mapped device behavior for your target platform. For example, on some systems, plotting a pixel on screen is done by directly writing to video memory. Your emulator would have to understand that writes to those addresses have to result in pixels being drawn.

 

You might also have to emulate peripheral devices. Sound synth chips and other I/O devices for example.

 

For an 'easy' way to get started i'd try to write a emulator for a PIC16F84. A small embedded micro-controller that was popular among hobbyists years ago. It's instruction set consists of only 35 instructions with fixed binary representation length (easy to decode) simple interrupt mechanism and only some simple memory mapped IO.

 

here's a datasheet : http://akizukidenshi.com/download/PIC16F84A.pdf

Learn to read datasheets like this, everything you need to emulate this chip is in there. If all of this is way over your head then you need to study the basics further first as this is a extremely simple device, even a 30 year old gameboy is tons more complex.

Link to comment
Share on other sites

Link to post
Share on other sites

You can contribute to dolphin and pcsx2 githubs

CPU AMD Ryzen 5 3600 6 Core 12 Threads Motherboard TUF B450M-PLUS GAMING RAM 32GB Dual-Channel DDR4 GPU 11GB NVIDIA GeForce GTX 1080Ti Case be quiet! White OS Linux Mint Cinnamon

 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×