|
|
Search
|
|||||||
| Home | Register | Downloads | FAQ | Members List | Calendar | Arcade | Mark Forums Read |
![]() |
|
|
LinkBack | Thread Tools | Display Modes |
|
|
#1 (permalink) |
|
Registered User
Join Date: May 2009
Location: US West
Posts: 3
|
How can I learn to program emus?
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. |
|
|
|
| Advertisement | [Remove Advertisement] | ||
|
|
|
|
#2 (permalink) |
|
Mobile Fanatic
![]() ![]() ![]() ![]() ![]() ![]() ![]() Join Date: Nov 2006
Location: Santa Cruz, CA
Posts: 6,210
|
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.
__________________
cChip interpreter WIP - current status: Release Candidate LRx Filter RC - current performance rating: 9/10 |
|
|
|
|
|
#3 (permalink) |
|
ライチュウ
![]() ![]() ![]() ![]() ![]() ![]() Join Date: Nov 2006
Location: USA
Posts: 3,292
|
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].
__________________
|
|
|
|
|
|
#4 (permalink) |
|
Emu author
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Join Date: Jun 2004
Location: Unidentified
Posts: 2,518
|
@Dax, you forgot to mention OS specific APIs such as Win32 or X11, etc
__________________
[Sagat] Windows XP x64 Pro | AMD Athlon 3000+ (~2.0GHz) | NVIDIA GeForce 6600 PCI-E | Realtek AC97 Audio | 512MB Ram | NVIDIA NForce 4-4X chipset | Seagate HDD 160GB | LG 8614 DVD-ROM | HP DVD 1040d CD/DVD -/+ RW w/ LightScribe [Raylene] HP dv2000 | Windows Vista Home Premium | Intel Core2 Duo @2.2GHz | NVIDIA GeForce 8400 GS 128Mb (Dedicated) + 1264Mb (Shared) | 3GB Ram | 220GB HDD GeneralEmu - December 27, 2005 and beyond! Shogun3D Interactive (I try to update it every day now) Shogun's Cxbx Dev Blog |
|
|
|
|
|
#6 (permalink) | |
|
You're already dead...
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Join Date: Sep 2007
Location: Post-Apocalyptic Earth
Posts: 3,908
|
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.
__________________
Quote:
check out my blog ![]() |
|
|
|
|
|
|
#8 (permalink) |
|
Emu Author
![]() ![]() ![]() Join Date: Dec 2004
Location: North Carolina
Posts: 374
|
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 .
|
|
|
|
|
|
#9 (permalink) |
|
Registered User
Join Date: May 2009
Location: US West
Posts: 3
|
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? |
|
|
|
|
|
#10 (permalink) |
|
Mobile Fanatic
![]() ![]() ![]() ![]() ![]() ![]() ![]() Join Date: Nov 2006
Location: Santa Cruz, CA
Posts: 6,210
|
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.
__________________
cChip interpreter WIP - current status: Release Candidate LRx Filter RC - current performance rating: 9/10 |
|
|
|
|
|
#12 (permalink) |
|
Emu Author
![]() ![]() ![]() Join Date: Dec 2004
Location: North Carolina
Posts: 374
|
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.
|
|
|
|
|
|
#13 (permalink) |
![]() ![]() ![]() ![]() Join Date: Jan 2006
Location: Planet Earth...
Posts: 593
|
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 ![]() 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" ![]() ![]() LOOOL!!!And now 3 years later I am making MUCH better browser which will rock! ![]() 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
__________________
|
|
|
|
|
|
#15 (permalink) | |
|
Registered User
Join Date: May 2009
Location: abc
Posts: 3
|
Quote:
|
|
|
|
|
|
|
#16 (permalink) |
|
Banned
Join Date: May 2009
Location: gone
Posts: 36
|
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. |
|
|
|
|
|
#17 (permalink) | |
|
You're already dead...
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Join Date: Sep 2007
Location: Post-Apocalyptic Earth
Posts: 3,908
|
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.
__________________
Quote:
check out my blog ![]() |
|
|
|
|
|
|
#18 (permalink) | |
|
Translator
![]() ![]() ![]() ![]() ![]() Join Date: Mar 2008
Location: ClansMeet.Co.Cc
Posts: 1,865
|
Well i've also been learning about emulation and i have this guide. Might not be the best but helped me a lot especially when u don't know from where to start ![]() emuprog.rar
__________________
![]() Quote:
|
|
|
|
|
|
|
#19 (permalink) | |
|
Registered User
Join Date: May 2009
Location: Slovenia
Posts: 11
|
Quote:
I was reading that for a while. Even I am very much inspired by this thread. Thanks for that file; Now I have to get back to learning. |
|
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|