Skip to main content
GameDev.net gamedev.net
🔒 Locked

emulation

Started by SKREAMZ Sep 4, 2005 at 11:10 AM 8 replies 1k views
Original Post
SKREAMZ
SKREAMZ
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?
Rasmadrak
Rasmadrak
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." =)
Spoonbender
Spoonbender
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)
doynax
doynax
How about a chip-8 emulator (well, more of an interpreter really)?
Scet
Scet
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.
doynax
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.
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.
Scet
Scet
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)
SKREAMZ
SKREAMZ
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?
doynax
doynax
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.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.