Next Generation Emulation banner
1 - 20 of 20 Posts

·
Registered
Joined
·
3 Posts
Discussion Starter · #1 ·
Hey, I know there is a lot to it (and I know none of it) but where should I start in learning how to program emulators? I basically know NOTHING about programming so what should I learn about first?

Again I know there's a lot to it and don't expect to be busting out emus in a month or anything, but I'd like to start down the path to elightenment. :O

Any recommendations on what to learn about or even a few online guides on basic programming would be helpful.

Thanks.
 

·
Level 9998
Joined
·
10,591 Posts
I'm afraid you'll have to learn how to program first before you ask this kind of question. It's not a problem with the answer. I can guide you through creating an emulator from scratch, but you won't learn much from it (if at all).

Why the obvious "learn how to program first" respond, you might wonder: Because emulating a system is just like learning how to program for that system... essentially.
 

·
Read Only
Joined
·
5,614 Posts
Pretty much what RAP said. Here's a list of the base essential skills you need to program an emu, in my opinion[in no order]:

1. Video programming[DirectX, OpenGL]
2. Audio programming[learn about different waveforms, how to output sound from files, etc]
3. Binary/bit operations/bit shifting
4. Input programming[keyboard, joystick]
5. Very good understanding of your language of choice

And even then it'll still be hard. I'd recommend starting with Chip8. It's pretty much the easiest emulator you can write. Just know that going from nothing to an emulator is really rough. Once you've written one or two, it becomes a lot easier[and even then, it's still hard].
 

·
You're already dead...
Joined
·
10,293 Posts
1. Video programming[DirectX, OpenGL]
well for a simple emu, you can get away with using simple bitmap functions like StretchDIBits which is part of the Win API, instead of having to learn DX or openGL.


but as everyone has said, its better to first learn to code before thinking about emu's.
the more experience you get, the more you develop a programmers mindset, and will have a much easier time when the time comes to start the emu-project.

i recommend starting with game programming, which is fun and will teach you a lot of what you need for emu programming.
 

·
Emu Author
Joined
·
616 Posts
yea, it took me well over 2 years from the start of wanting to code my first emu, to actually making it happen, so if you think you can get one out the door any time soon, you will end up crying in a corner from frustration :drool:.
 

·
Registered
Joined
·
3 Posts
Discussion Starter · #9 ·
Okay thank you all. I'm definitely not expecting to suddenly start making amazing things.

I'll start looking into the things you all mentioned and see what I can learn.

I definitely didn't expect to suddenly be making XBox or Wii emulators all of the sudden.

The only plan I had in mind was learning the basics and then perhaps "taking apart" an NES emulator and seeing how it's put together. I may be a long long way from being able to do even that though.

I don't know exactly what the real term for it is but I've noticed that patching programs use hex editing. Is that something that I'll probably learn about when pursuing the things you all listed or is it something separate?
 

·
Level 9998
Joined
·
10,591 Posts
Yes, that is something you'll learn about when pursuing this. It is a must because you need it to debug your emulator.

I'm afraid that a NES emulator is very far from your level right now. It would be many years before you can attempt such a thing. Plus looking at an emulator when you are not proficient enough in programming may overwhelm you... on top of making it seem impossible.

What I'd suggest is that you set your goal of programming to something more realistic for your level... something like making a game, a Pong game, or a text adventure game, and forget about emulation until you are able to write at least a Mario clone game.
 

·
Emu Author
Joined
·
616 Posts
but also keep this in mind, no matter how hard it seems, keep trying, if you keep at it, eventually you will gain the skill necessary to make your first emu and once you get one under your belt it will get easier to work with.
 

·
Registered
Joined
·
598 Posts
About almost 4 years ago when I started learning programming,I started with Visual Basic 2005 and few weeks later I switched to Visual C# 2005 which is much harder,but better and faster.And now after 4 years I can say that I do have some knowledge to make more complex things then the HELLO WORLD lol.Ohh when I remember that HELLO WORLD I made 4 years ago:D

Anyway,you just must be patient and study.Little by little...I needed 9 months just to discover the way for saving changes until I developed my own way,WHICH I WOULDN'T BE ABLE TO MAKE IF I DIDN'T STUDY FOR AT LEAST 3 YEARS.;)
In the beginning you will lose much time just to make a picture box control to work lol and then month after month you will know MUCH MORE and be able to make complex things.I remember when I developed my first internet browser in 2006.It had only 5 buttons ROFL."Search","Back","Forward","About" and "Exit" :dead::dead::dead:LOOOL!!!
And now 3 years later I am making MUCH better browser which will rock!:D

I recommend you to learn Visual C# 2005 or 2008 and take the C# video tutorials which you can find on www.learnvisualstudio.net
NOTE: DO NOT START STUDYING FROM BOOKS.It's harder.Start with video tutorials!!!

Good luck:thumb:
 

·
Registered
Joined
·
3 Posts
Pretty much what RAP said. Here's a list of the base essential skills you need to program an emu, in my opinion[in no order]:

1. Video programming[DirectX, OpenGL]
2. Audio programming[learn about different waveforms, how to output sound from files, etc]
3. Binary/bit operations/bit shifting
4. Input programming[keyboard, joystick]
5. Very good understanding of your language of choice

And even then it'll still be hard. I'd recommend starting with Chip8. It's pretty much the easiest emulator you can write. Just know that going from nothing to an emulator is really rough. Once you've written one or two, it becomes a lot easier[and even then, it's still hard].
I know this is a little.. off-topic but imo is the best place to put the question.. be learning all this, could I enter in some game enterprise ? or only by knowing computer programming could I enter one enterprise of game-dev ?
 

·
Banned
Joined
·
36 Posts
Some developmental setups require that you at least have some experience in the game industry first before you even consider applying.

You really should look at what employers expect first. Though learning a inate knowledge of your programming language would always help.
 

·
You're already dead...
Joined
·
10,293 Posts
yeah mamefan brings up a good point about having industry experience.
i know a great coder having experience in opensource/freeware projects, but not much corporate-industry coding, that had a hard time finding a good game-dev job.

also having a college degree helps a lot.
 
1 - 20 of 20 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top