MagicEngine
Forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 Japanese English 

How are console emulators developed?

 
Post new topic   Reply to topic    MagicEngine Forum Index -> General
View previous topic :: View next topic  
Author Message
airzonk81
Member
Member


Joined: 04 Apr 2005
Posts: 38
Location: Oakland, California, US

PostPosted: Thu May 22, 2008 4:26 pm    Post subject: How are console emulators developed? Reply with quote

This question has never adequately been answered; and I am pretty darn curious.

It applies to MagicEngine, but also say, ZSNES and others.

You lack documentation on how the chips work. You have hardware and software, what is the process from there? Are most emulators developed with leaked documentation from the hardware manufacturers? How do you go from hardware to emulating undocumented chips in software?

Anyone care to comment? Smile

BTW: Thanks for the ME update, David and Cedric!

--Gabe
Back to top
View user's profile Send private message
ReyVGM
Member
Member


Joined: 18 Sep 2004
Posts: 73

PostPosted: Fri May 23, 2008 5:32 am    Post subject: Reply with quote

I would also love to know how they get done, without going into technical stuff of course.
_________________
liebe
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address
dmichel
Admin
Admin


Joined: 04 Apr 2002
Posts: 1166
Location: France

PostPosted: Fri May 23, 2008 3:50 pm    Post subject: Reply with quote

For older machines (8 and 16-bit) documentation was rarely available in the beginning, so the only way was reverse engineering, which is not that difficult, with some assembly language knowledge, a bit of hacking talent, lots of tries and errors, it's pretty easy to figure how the hardware works. Also the hardware of consoles is not that much different from computers, it's just a bit more powerful, any previous knowledge of low level programming on 8-bit computers will help a lot.

The key to success is to choose a very simple game for starting and to go step by step. The first step is to get the CPU emulated and to find out how the memory is mapped, once you got that working you try to figure how the VRAM works, then which graphics format is used, and quickly you have something that starts to appear on the screen. Smile

After it's just a matter of work and perseverance.

Emulating correctly the machine is not too difficult, but quickly you will find out that quite a few games do weird things with the hardware, that's at this moment that the true fun begins. Actually a lot of games use undocumented features of the hardware or rely on hardware bugs to work. And here even if you have documentation this won't help you.

About the documentation, usualy it starts to appear once the first emulator project has been started, but the documentation alone is not enough, a good emulator can't be written with only the documentation, often it contains errors and not everything is documented. For more recent machines (32-bit) the documentation is almost required though, as their hardware start to be complex and more specialized.
_________________
David Michel
Back to top
View user's profile Send private message
ReyVGM
Member
Member


Joined: 18 Sep 2004
Posts: 73

PostPosted: Wed May 28, 2008 6:06 pm    Post subject: Reply with quote

I see. Thanks for the explanation Smile
_________________
liebe
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address
Display posts from previous:   
Post new topic   Reply to topic    MagicEngine Forum Index -> General All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group