question

como funcionam os emuladores de console?

Eu estou olhando para fazer um emulador, mas realmente não entendo como eles funcionam, eu gostaria de fazer um emulador básico só para ter uma idéia de todo o processo, alguém sabe onde posso começar?
resposta Resposta
AQUI é copiar colar de fonte IN site. SEMPRE PESQUISA NO GOOGLE ANTES DE PERGUNTAR.

Um emulador é um programa que basicamente reproduz o comportamento do hardware de uma máquina antiga (ex: placas de vídeo, CPU, placa-mãe, memória RAM). Pessoas que emuladores programa precisam primeiro obter algumas informações sobre o console querem emular; por exemplo: quais são as operações executadas pela CPU. Como a memória RAM é dividida?

Emulação é um processo muito complicado de um aplicativo (emulador) agindo como (emulando) outra plataforma/processador/computador/etc.

Uma plataforma comumente emulada é o console de videogame, como o Nintendo GameBoy, Nintendo Entertainment System, Sony Playstation, Sega Genesis, etc., embora, qualquer coisa pode ser emulada, de computadores, para calculadoras, para consoles de videogame.

O processo básico de emulação parecida com esta:



1. busque a instrução atual da memória (RAM).

2. interprete essa instrução. (Interpretação está levando uma instrução que é suposto para ser executado em outra plataforma e executar ou fazer a instrução equivalente na máquina que está fazendo o emulando/correr o programa emulador.)

3. incrementar o PC emulado (contador de programa; um registo que aponta para a instrução atualmente em execução) a quantidade adequada.

4.(optional) permitem a máquina executando o programa emulador de sono/descanso ou interromper a execução do emulador para um determinado período de tempo para regular a taxa de quadros (FPS; Frame por segundo) ou velocidade do processador da plataforma emulada.

5.(optional) fazer qualquer outra coisa que precisa ser feito. (Chamar uma tela emulada, processo emulada áudio, etc.)

6. Repita o processo.

Espero que isso faz algum sentido para a pessoa que fez esta pergunta. Emulação não é o tipo de coisa que pode ser explicado em detalhes para um não-programador ou non-techie.

Se por um acaso que você estava olhando para criar um emulador, você provavelmente não está pronto para fazê-lo. Perguntando como emulação funciona e então imediatamente querer criar seu próprio emulador é só perguntando para o desastre.

Se você deseja escrever um emulador se embora (e sentir você sabe bastante para começar), faça o seguinte:

1. obter tanta informação sobre o sistema que você está olhando para emular quanto possível! Isto é extremamente importante, que caso contrário você não terá nenhuma idéia o que fazer nas próximas etapas.

2. escolha uma linguagem de programação apropriada para usar. Usar uma linguagem de script ou uma linguagem/ferramenta que é interpretada provavelmente não é a melhor idéia, se você estiver olhando para emular uma plataforma rápida.

3. descobrir como você vai emular registra, RAM, etc. Uma das maneiras mais simples de emular RAM está criando uma grande disposição para colocar o conteúdo do todos os que o emulado RAM. Registos podem ser feitos de várias maneiras, mas meu emulador de GB WIP simplesmente usa variáveis char, desde um char é de 8 bits (1 byte) no tamanho, que é o tamanho da maioria dos registradores do GB. (Registradores de 16 bits do GB são emulados usando shorts).

4. Inicie a codificação. Embora tenha calma. Certifique-se de que você não está cometendo muitos erros. Supondo que você está emulando algum tipo de plataforma "completa" (uma plataforma com tudo o que precisa executar e função), emulação de CPU e memória RAM é o que você deve se concentrar na primeira. (Lembre-se! Concentre-se na exatidão e emulação correta primeiro. Você pode acelerar as coisas mais tarde, quando seu emulador realmente faz alguma coisa!)

5.Debug. Isto é o que vai fazer você querer se matar. Emuladores vão exigir uma tonelada de depuração.

6. Repita os passos 4 e 5 muitas, muitas, muitas, muitas, muitas vezes.

Na medida em que informação, você deve ter disponível para comparar com e obter informações de vários recursos. Eu uso o Google e Wikipedia para obter minha informação. Você pode ter que procurar a informação por um bom tempo conseguir o que quer. (Levei cerca de dois dias para encontrar e bookmark suficiente informação que acho que vou precisar).

Você provavelmente quer seu emulador em ASM ou em C/C++ de código. Eu sei que algumas pessoas ainda o emulador de código em Java, embora, não espere um emulador em Java para executar tão rápido quanto um em C/C++ ou ASM.

Se você quiser, você pode procurar uma versão muito básica do meu código para meu emulador de GameBoy WIP abaixo (use como quiser):

Tudo isso é feito em C++ usando o MinGW e IDE Code:: Blocks

Defina nossa RAM, VRAM, registos, etc:

int InterpretInstruction();

Char gb_a, gb_f; Registos emulados A e F. Às vezes emparelhado como um registo de 16-bit

Char gb_b, gb_c; Mais registos. Às vezes emparelhado como um registo de 16-bit

Char gb_d, gb_e; //...

Char gb_h, gb_l; //...

gb_pc curta; Registo de contador de programa emulado (16 bits)

gb_sp curta; Registro de ponteiro de pilha emulado

Char gb_ram_main; RAM emulado

Char gb_ram_video; Emulado de RAM de vídeo

Char gb_cart_rom; Conteúdo emulado do ROM

Char gb_cart_ram; RAM emulado em alguns cartuchos

int main)

{

load_rom_data_bin();

gb_pc = 0x0100;

gb_pc_ = 0x0099;

gb_sp = 0x0000;

gb_ram_main = new char [8192];

gb_ram_video = new char [8192];

load_rom_into_ram();

enquanto (verdade)

{

se (InterpretInstruction() = =

ComentáriosComentários
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta


Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved