What's new

Newbie

kris2pe

New member
What are the programing languages needed 2 learn by a noob, about tweaking emus & optimising certain programs?
 

smcd

Active member
Most emulators are written in either C or C++. Other languages used include Java, Pascal/Delphi, and BASIC variants (Visual Basic, etc), and the occasional 'other language' like C#.
 
OP
K

kris2pe

New member
So is there a site where I can learn about c++ better? or can u recommend me a good book for c++?
Does working w/ an emulator require engineering skills?
 
Last edited:

Cyberman

Moderator
Moderator
kris2pe said:
So is there a site where I can learn about c++ better? or can u recommend me a good book for c++?
Does working w/ an emulator require engineering skills?
Making an emulator requires a number of skills. Yes you can learn them. However if you don't kow C++ then you have a lot of things to learn. I recomend to start with general programing and learn as much as possible about programing in general. Depending on the platform some engineering or understanding of hardware will be required. This is the nature of emulation.

C++ Starting place
Dev C++ Free Compilors

I recomend starting from the basics and just learning how software works :)

Have fun!

Cyb
 

BGNG

New member
Cyberman said:
I recomend starting from the basics and just learning how software works :)
To twist the words of Cyberman somewhat, starting from "the BASICs" is an easier way to pick up the concept of proramming than starting with C variants. Look up something like QBasic to get started.
 

Falcon4ever

Plugin coder / Betatester
those tutorials @ cplusplus.com are good enough to learn C/C++ from
i wouldn't recommend using a programming language like (q)basic...
 

Doomulation

?????????????????????????
Learning an easier programming language first will just get you into trouble since it hides so much from you...
 

ShizZy

Emulator Developer
I agree with Doomulation, stick with a solid language like C right off the bat, and follow it through.
 

xamenus

New member
I personally would suggest to just go ahead and purchase a book on C rather than read an online tutorial. I would feel more comfortable reading an actual book rather than a website tutorial or printout, but that's just my opinion.

There are many beginners books available. Eventually, you may also want to consider the "K&R" book if you start thinking more seriously about learning C.
 

blueshogun96

A lowdown dirty shame
Doomulation said:
Learning an easier programming language first will just get you into trouble since it hides so much from you...
True, true.

But beleive it or not, he can learn asm as his first language. IMO although C is a mid-level language, there is still quite a bit of things "hidden" from you. I'm not exactly reccomending this, but you can pick up a copy of Assembly language Step by Step. It is a book aimed at noob programmers who want to learn asm as their first language. It will teach you many skills required to write an emulator IMO. In 500+ pages, he will be a pro :party:

http://www.amazon.com/exec/obidos/t...103-3517403-8041419?v=glance&s=books&n=507846

When you gain some C and asm experience, read up on reverse engineering. I got this book a while ago and it's really good.

http://www.amazon.com/exec/obidos/t...103-3517403-8041419?v=glance&s=books&n=507846
 

zenogais

New member
To be absolutely honest there are better more friendly and well-documented languages that are better suited for a beginner than C or C++. Python is an excellent language to start with and is not only very well documented, but fairly comfortable to pick up for a beginner, also it's easier to get up and running with than C or C++. I'd recommend that because Assembly language is simply much much too low-level for any beginner to ever make use of and C and C++ are much too powerful and complex for a beginner to learn and utilize effectively without any serious time investment. I'd say download Python 2.4 and head to the beginner's guide section and you should already be well on your way to learning some programming. Good luck.

EDIT: You'll probably want the beginners guide for non-programmers, which is here
 
Last edited:

rockytrh

New member
a great book for C++ is Beginning Visual C++ by Ivor Horton.
VC++ is kinda expensive (but not for me, i got a copy, CSci major (freshman).) but it is really great.
 

rockytrh

New member
zenogais said:
To be absolutely honest there are better more friendly and well-documented languages that are better suited for a beginner than C or C++. Python is an excellent language to start with and is not only very well documented, but fairly comfortable to pick up for a beginner, also it's easier to get up and running with than C or C++. I'd recommend that because Assembly language is simply much much too low-level for any beginner to ever make use of and C and C++ are much too powerful and complex for a beginner to learn and utilize effectively without any serious time investment. I'd say download Python 2.4 and head to the beginner's guide section and you should already be well on your way to learning some programming. Good luck.

EDIT: You'll probably want the beginners guide for non-programmers, which is here

I disagree. Assembly languages are extreamly limited. A few pages of code from C++ or C can take like 10x that in an assembly language (i don't know anythign about python, so i don't really know the limts of it)
 

refraction

PCSX2 Coder
rockytrh said:
I disagree. Assembly languages are extreamly limited. A few pages of code from C++ or C can take like 10x that in an assembly language (i don't know anythign about python, so i don't really know the limts of it)


that isnt a limit, thats just the fact asm is a much lower level language than C, altho if you look at the asm generated by compiling a program in C, it would be about 10x shorter to write it yourself in asm.

altho i wouldnt recommend asm as a first language, id definately learn about general programming in a higher level language like C first, then learn about x86 architecture before you even think about it.

asm is the closest thing you can get to machine code (unless you wanna program in binary :happy: ) technically you can do anything the pc is capable of in asm, it is possibly less limited id say than C.
 

zenogais

New member
I would think it would be because they write alot of general purpose asm to account for common situations and that this code is not always the most ideal in every situation.
 

smcd

Active member
bcrew here's a fun thing to try - use gcc and compile a program with the -S flag to generate the assembly listing. After that, add to the -S -O2 and then -O3 optimizations and check the differences in the generated assembly files :)
 
OP
K

kris2pe

New member
blueshogun96 said:
But beleive it or not, he can learn asm as his first language. IMO although C is a mid-level language, there is still quite a bit of things "hidden" from you. I'm not exactly reccomending this, but you can pick up a copy of Assembly language Step by Step. It is a book aimed at noob programmers who want to learn asm as their first language. It will teach you many skills required to write an emulator IMO. In 500+ pages, he will be a pro :party:

I agree I think should start w/ ASM then move to C++ & hopefully someday contribute to the emu community!!!
But everyday companies like Sony, MS & Nintendo make it harder & harder 4 ppl to emulate this things!!!
 

Doomulation

?????????????????????????
Asm is incredibly hard, thus it would be better to start with C. C/C++ is much easier and more power program-wise (ie, classes, virtual functions, etc). Asm is useful to write routines that need extra speed, and is time consuming and hard.
 

Top