Emuforums.com

Go Back   Emuforums.com > General Discussion > Web development / Programming
Home Register Downloads FAQ Members List Calendar Arcade Mark Forums Read


Reply
 
LinkBack Thread Tools Display Modes
Old May 15th, 2009   #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.
SteveBasnof is offline   Reply With Quote

Advertisement [Remove Advertisement]
Old May 15th, 2009   #2 (permalink)
Mobile Fanatic
 
runawayprisoner's Avatar
 
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
runawayprisoner is offline   Reply With Quote
Old May 15th, 2009   #3 (permalink)
Dax
ライチュウ
 
Dax's Avatar
 
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].
Dax is offline   Reply With Quote
Old May 15th, 2009   #4 (permalink)
Emu author
 
blueshogun96's Avatar
 
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
blueshogun96 is offline   Reply With Quote
Old May 15th, 2009   #5 (permalink)
Dax
ライチュウ
 
Dax's Avatar
 
Join Date: Nov 2006
Location: USA
Posts: 3,292
Indeed I did. ^^;
Dax is offline   Reply With Quote
Old May 15th, 2009   #6 (permalink)
You're already dead...
 
cottonvibes's Avatar
 
Join Date: Sep 2007
Location: Post-Apocalyptic Earth
Posts: 3,908
Quote:
Originally Posted by Dax View Post
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.
__________________

Quote:
Eccentricity is often associated with genius, giftedness, or creativity. The individual's eccentric behavior is perceived to be the outward expression of his or her unique intelligence or creative impulse. In this vein, the eccentric's habits are incomprehensible not because they are illogical or the result of madness, but because they stem from a mind so original that it cannot be conformed to societal norms.
check out my blog
cottonvibes is offline   Reply With Quote
Old May 15th, 2009   #7 (permalink)
Dax
ライチュウ
 
Dax's Avatar
 
Join Date: Nov 2006
Location: USA
Posts: 3,292
Another thing, don't think you'll be able to make an Xbox360/PS3/Wii/anything more advanced than an 8bit emulator as your first emu. You'll give up way before making any progress.
Dax is offline   Reply With Quote
Old May 15th, 2009   #8 (permalink)
Emu Author
 
Hatorijr's Avatar
 
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 .
Hatorijr is offline   Reply With Quote
Old May 15th, 2009   #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?
SteveBasnof is offline   Reply With Quote
Old May 15th, 2009   #10 (permalink)
Mobile Fanatic
 
runawayprisoner's Avatar
 
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
runawayprisoner is offline   Reply With Quote
Old May 15th, 2009   #11 (permalink)
Registered User
 
Join Date: May 2009
Location: US West
Posts: 3
Okay. I'll make my goal the most ultimately basic pong game in the world. Thanks
SteveBasnof is offline   Reply With Quote
Old May 16th, 2009   #12 (permalink)
Emu Author
 
Hatorijr's Avatar
 
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.
Hatorijr is offline   Reply With Quote
Old May 16th, 2009   #13 (permalink)
 
S.T.A.R.S.'s Avatar
 
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
__________________
GOODBYE FOREVER EVERYONE...
S.T.A.R.S. is offline   Reply With Quote
Old May 16th, 2009   #14 (permalink)
Dax
ライチュウ
 
Dax's Avatar
 
Join Date: Nov 2006
Location: USA
Posts: 3,292
Also practice a lot. Experience is way better than a text book.
Dax is offline   Reply With Quote
Old May 24th, 2009   #15 (permalink)
Registered User
 
Join Date: May 2009
Location: abc
Posts: 3
Quote:
Originally Posted by Dax View Post
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 ?
Scrilax is offline   Reply With Quote
Old May 25th, 2009   #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.
mamefan is offline   Reply With Quote
Old May 26th, 2009   #17 (permalink)
You're already dead...
 
cottonvibes's Avatar
 
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:
Eccentricity is often associated with genius, giftedness, or creativity. The individual's eccentric behavior is perceived to be the outward expression of his or her unique intelligence or creative impulse. In this vein, the eccentric's habits are incomprehensible not because they are illogical or the result of madness, but because they stem from a mind so original that it cannot be conformed to societal norms.
check out my blog
cottonvibes is offline   Reply With Quote
Old May 26th, 2009   #18 (permalink)
Translator
 
Naix's Avatar
 
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:
Originally Posted by Vorfin
Naix he has a mac, do you really need to make his life worse?
Naix is offline   Reply With Quote
Old June 5th, 2009   #19 (permalink)
Registered User
 
Auzern's Avatar
 
Join Date: May 2009
Location: Slovenia
Posts: 11
Quote:
Originally Posted by Naix View Post
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
Attachment 204140
Thanks a lot for that!!
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.
Auzern is offline   Reply With Quote
Old June 5th, 2009   #20 (permalink)
Translator
 
Naix's Avatar
 
Join Date: Mar 2008
Location: ClansMeet.Co.Cc
Posts: 1,865
hehe np happy to help
__________________
Quote:
Originally Posted by Vorfin
Naix he has a mac, do you really need to make his life worse?
Naix is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 09:22.

© 2006 - 2008 Emu Forums | About Emu Forums | Legal | A member of the Crowdgather Forum Community


Powered by vBulletin® Version 3.7.6
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 RC5