emulation

Started by
8 comments, last by GameDev.net 18 years, 7 months ago
i want to start writing emulators but no idea where to start, i wanna start with something considered easy, and finnally want to write a nes emulator.
Blaaaaa Blaaaa Blaa errrrr!!!! Bla?
Advertisement
first of all:

Do you know c++?

Do you know it well, and I mean VERY well?


:)


Emulators are a very hard thing to code, basicly you must create a function for every piece of hardware that the console is made of... then you must make sure these cooperate with each other in the way they should...
then either steal the bios ( ~ OS of the console) which is NOT recommended, or create a new one and make that work for your emulator...


Sorry if it's sounds like I'm an ass, but you should really try to make something more simple. Even a normal game like, say Halo would be easier composed by a single person than an emulator! :)

But if your serious, start programming a Game&Watch game... then perhaps some console with a lot of documentation!

cheers!


For lots of info and emulators, check out clicky;
"Game Maker For Life, probably never professional thou." =)
Quote:Original post by Rasmadrak
first of all:

Do you know c++?

Do you know it well, and I mean VERY well?

Add some ASM to that. Would be hard to write an emulator without any knowledge of ASM in general (and of course, in particular on the platform you're emulating)
How about a chip-8 emulator (well, more of an interpreter really)?
Well I'm writing a GBA emulator right now(you can see some screenshots in my Journal. I need to make a new post :))

Anyway I don't think you need to know assembler. Currently I'm just using C++(you could use C too). I do plan on adding asm later though for speed but you can create a fully operational emulator without assembler.

As for what system to emulate, trust me that the early consoles are not "easy". For example the NES cartridges can contain extra processors and have specal memory mappers added on to an already retarded 8/16bit memory system.

I'd suggest going with a hand-held system like the Gameboy or GBA. Their memory model is flat for the most part(no silly "banking") and there's no co-processors to deal with.

Be source you can find plenty of resources on the system you choose. And download the source to some open-source emulators, it can help a lot when starting out.
Quote:Original post by Scet
Anyway I don't think you need to know assembler. Currently I'm just using C++(you could use C too). I do plan on adding asm later though for speed but you can create a fully operational emulator without assembler.
Even if you use a pre-made processor core it'll still be next to impossible to debug the emulator unless you understand assembler.
Much of the debugging will consist of tracing through ROMs, trying to figure out what it does to be able to analyze why it doesn't work.
Quote:Original post by doynax
Quote:Original post by Scet
Anyway I don't think you need to know assembler. Currently I'm just using C++(you could use C too). I do plan on adding asm later though for speed but you can create a fully operational emulator without assembler.
Even if you use a pre-made processor core it'll still be next to impossible to debug the emulator unless you understand assembler.


Well I meant he doesn't need to know x86 asm, but yes he will need to know how to read and understand asm mnemonics and opcodes. (Like Spoonbender said)
yes i know c++ been writing app and gfx in in it for the past 7 years lol

chip-8 <-- ill have a look at that tnx
Blaaaaa Blaaaa Blaa errrrr!!!! Bla?
Regardless of which system you intend to emulate I recommend that you start out by writing a few simple tech demos for it, to feeling for how the system works and how any games you'll be emulating is likely to work.
Although I guess that may be slightly overkill for a chip-8 emulator..

Quote:Original post by Scet
Well I meant he doesn't need to know x86 asm, but yes he will need to know how to read and understand asm mnemonics and opcodes. (Like Spoonbender said)
Yeah, sorry.. I should've read your post more thoroughly.
Rasmadrak - C++ is not required to write an emulator at all. Any programming language will do. You WILL need to know ASM like the back of your hand, if not better though.

This topic is closed to new replies.

Advertisement