• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Colector Boy

Criar um Emulador - Requisitos

3 mensagens neste tópico

Boas.

Este tópico tem como função explicar ao leitor o que precisa saber para fazer um Emulador.

Sintam-se a vontade para comentar,criticar,corrigir,etc.

O que é um emulador?

Um emulador é algo que permite a um determinado equipamento executar funções de outro (equipamento).

Eu nunca tentei fazer um emulador mas penso que posso afirmar que para se fazer um emulador precisamos de saber as seguintes linguagens:

->Assembly (permite executar instruções especificas do equipamento que estamos a tentar "emular")

-> Qualquer linguagem que gostem (permite fazer funções mais abstractas logo não dependentes do Hardware)

Em termos de nível de conhecimento é necessário saber:

C/C++

->trabalhar com memoria dinâmica

->trabalhar com SDL e/ou Open GL e/ou DirectX

Das restantes linguagens não sei.

Há coisas que o Assembly consegue fazer que o C/C++ não consegue por isso é que precisamos de saber Assembly para poder "emular" outros equipamentos.

EDIT:

Tens razão bruno1234 qualquer linguagem ( ou um vasto conjunto de linguagens)  permite fazer um emulador mas (penso que) sempre usada em conjunto com o Assembly.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens razão bruno1234 qualquer linguagem ( ou um vasto conjunto de linguagens)  permite fazer um emulador mas (penso que) sempre usada em conjunto com o Assembly.

O uso de assembly é pouco comum na implementação de emuladores. Isto, porque a linguagem assembly torna o software pouco portável.

A maioria dos emuladores são implementados numa linguage de alto nível. Por exemplo, existem inúmeros emuladores de ZX Spectrum implementados em puro Java, ou em C# tal como o bruno1234 mencionou.

Em relação às necessidades para a criação de um emuladro, o que é necessário saber são os opcodes do processador e a sua representação binária. As mnemónicas usadas na linguagem assembly servem somente para referência, pois não são utilizadas no emulador. Ao implementarmos o emulador, nós trabalhamos com a sua representação binária e não com assembly. O assembly seria útil se pretendessemos criar um assembler (ou assemblador em portugues).

Se pretendes experimentar o código-fonte de um emulador, eu implementei um há uns anos atrás na linguagem C. Aqui está o link http://www.brainycreatures.org/download/simpletronsrc.zip do código fonte. Esse código foi desenvolvido num Mac. Nunca mais tive tempo de actualizar nada, mas talvez em breve começarei a actualizar os códigos para Linux e a família dos BSD (OpenBSD, FreeBSD e NetBSD).

Fidel.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora