CodeMonkey666 Posted June 9, 2004 Share Posted June 9, 2004 Hey, I am just wondering, but what things exactly does one need to know to write an amulator of a system? Like, I know you need some hardcore programming skills, but what other knowledge do you need to know, in general? I am talking about for like writing an emulator for like a console. Quote Link to comment Share on other sites More sharing options...
DanBoris Posted June 9, 2004 Share Posted June 9, 2004 As someone who has written numerous emulators, here's what I suggest: 1. Good programming skills (as you said). Emulators are tricky to write so I don't recommend learning to program a new language and learning to write an emulator at the same time. 2. Technical information on the system you want to emulate. The more the better. You need to know the CPU it uses, how the IO functions work (video, audio, controllers etc) where everything is in memory, etc. 3. Software to run on the system. It's almost impossible to write an emulator without software to run on it, this includes "external" software from a cartridge or disk and internal BIOS software. 4. A strong desire and determination to do this. Emulator programming can be very frustrating at times, if you are a person who gives up on things easily, don't bother with trying to write an emulator. 5. A system (to emulate) that you enjoy. If you hate NES games, don't try writing an NES emulator, because you are going to be playing them a lot. 6. Time! 7. Time! 8. More time! 9. Even more time! Once you have decided to actually go ahead with a specific system you will also need to decide how much you will write youself and how much pre-exsting code you will use. For example there are open source CPU cores avaialble for most major processors, you may want to use one of these instead of writing your own from scratch. Hope this helps. Quote Link to comment Share on other sites More sharing options...
CodeMonkey666 Posted June 10, 2004 Author Share Posted June 10, 2004 Yeah, thanx. I was thinking of writing an emulator for Xbox (no just kidding lol) Maybe like a SNES emulator. I dunno. I need to learn more programming skills first though, so this will be in awhile. Thanx for the info though. Quote Link to comment Share on other sites More sharing options...
Bruce Tomlin Posted June 10, 2004 Share Posted June 10, 2004 Actually, the first thing you need to know is if someone has already written a decent emulator for your target system. In that case, it might be worth considering a different system to emulate. Then you need to know everything an assembly language programmer could possibly know about the system: the CPU instruction set, where various kinds of memory are, what kinds of hardware are attached and how they are controlled, how the video modes work, etc. Then you need to acquire a few ROMs for the system, especially any internal ROMs. At that point it's mostly a third-year college computer science project. Quote Link to comment Share on other sites More sharing options...
DanBoris Posted June 10, 2004 Share Posted June 10, 2004 Actually' date=' the first thing you need to know is if someone has already written a decent emulator for your target system. In that case, it might be worth considering a different system to emulate. I usually don't bother mentioning this to people who say they want to write an emulator because they usually want to do it as a learning experience, not because they are really interested in the end product. There's not much out there that hasn't been emulated, but that shouldn't stop someone from writing an emulator if they want the experience of doing it. Dan Quote Link to comment Share on other sites More sharing options...
Tom Posted June 10, 2004 Share Posted June 10, 2004 a very nice starting project is a chip8 interpreter, which can be hacked together in a few hours. i just don't know any chip8 game that's fun to play (except maybe ant) Quote Link to comment Share on other sites More sharing options...
CodeMonkey666 Posted June 12, 2004 Author Share Posted June 12, 2004 Well, I love technology, and I love learning about all these different systems, and I also love emulators for some reason (don't ask me), so I want to write my own, and then eventually way later on, do something that significantly contributes to the emulation scene. Thanx for all the info though. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.