[Tutor] Is Python useful for emulating?

Walter Prins wprins at gmail.com
Sun Nov 28 04:26:41 CET 2010


On 28 November 2010 02:59, Mauricio Alejandro <alexandertwin at hotmail.com>wrote:

>  I never created any emulator before, and i'm learning C++. Let's say i try
> to write an emulator for... SNES. Would Python be fast enough?
> Also, any useful advice you can give me? Things i should know about before
> i start coding?
>

Because of the performance requirements generally applciable to emulating a
games console, I would not think to write an emulator in native Python.
However you can probably write the main parts that need performance as C
based Python modules, and write "the rest" in Python.  (Whether "the rest"
is substantial enough to warrant it is hard to say.)  This is the route
taken by any Python modules/applications that have critical performance
requirements.

As for useful advice, I don't want to put you off but writing a complete
console emulator is not a trivial project by any stretch of the imagination,
and you'll also need to have very detailed specs about the SNES's hardware
(CPU, video hardware, memory and IO maps, sound hardware etc), as well as
have copies of its firmware (BIOS/ROMS etc) in order to even be able to
begin to work on such a project.  Additionally, there's already (or there
was several years ago) several SNES emulators and doing another one just for
the sake of it, well, is it really worth it?

Maybe something a little more accessible might be to implement a MIPS CPU
emulator, something like this:
http://weblogs.mozillazine.org/roc/archives/2010/11/implementing_a.html
or this:
http://codu.org/projects/trac/jsmips/

And then see how fast you can make that without resorting to C, like the guy
above did in the browser.

Walter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20101128/da283fa2/attachment.html>


More information about the Tutor mailing list