Um emulador simples de CHIP-8 escrito na linguagem de programação Odin, utilizando a biblioteca Raylib para gráficos, entrada e áudio.
- Emulação do set de instruções padrão do CHIP-8.
- Renderização gráfica 64x32 escalonada para 800x450.
- Suporte a som (Bip gerado proceduralmente via onda quadrada).
- Entrada via teclado mapeada para o layout hexadecimal.
- Carregamento de ROMs via linha de comando.
- Timer de Delay e Som (60Hz).
- Compilador Odin: Certifique-se de ter o Odin instalado e no seu PATH.
- Bibliotecas de Desenvolvimento (Linux): Como o projeto usa Raylib, você pode precisar de dependências do sistema (X11, GL, ALSA, etc).
- Exemplo no Ubuntu:
sudo apt install libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libgl1-mesa-dev libasound2-dev
- Exemplo no Ubuntu:
O projeto inclui um script de build para facilitar a compilação no Linux.
-
Dê permissão de execução ao script:
chmod +x build.sh
-
Execute o script:
./build.sh
Isso irá gerar o executável odin8 na raiz do projeto.
Para rodar um jogo, passe o caminho da ROM como argumento pela linha de comando:
./odin8 roms/PONG(Certifique-se de que o arquivo da ROM existe no caminho especificado).
O teclado do CHIP-8 (hexadecimal 0-F) está mapeado para o teclado do computador da seguinte forma:
| Teclado CHIP-8 | Teclado Físico (Mapeamento) |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| C | 4 |
| 4 | Q |
| 5 | W |
| 6 | E |
| D | R |
| 7 | A |
| 8 | S |
| 9 | D |
| E | F |
| A | Z |
| 0 | X |
| B | C |
| F | V |
src/main.odin: Ponto de entrada, leitura de argumentos.src/emulator/: Lógica central do emulador (CPU, Memória, Instruções).src/ui/: Interface gráfica, loop de renderização e áudio com Raylib.roms/: Pasta sugerida para armazenar seus jogos.
MIT. Ver o arquivo LICENSE.
