/Core

Primary LanguagePython

emulator

Referência - Mês 1

NerdyNights: a series of NES programming lessons, starting from absolutely no knowledge.

Easy 6502: assembly tutorial.

Referência - Mês 2

NesDev 6502: Registers, addressing modes, specification of some instructions.

Instruction Set (NParker)

Instruction Set (Masswerk)

Formato dos logs de teste

NROM

Mapper

Mirroring

CPU memory map

Sample RAM map: Explains pages.

Page Cross

Referências - Mês 03

PPU Full Reference

Referências - Mês 04

Main Page

Registers

Pulse

Triangle

Noise

DMC

Frame Counter

Length Counter

Envelope

Sweep

Mixer

https://www.reddit.com/r/esp8266/comments/9o8dtb/ive_emulated_the_8bit_nes_apu_registersdacs_on/

https://www.reddit.com/r/EmuDev/comments/ck5p3a/adding_apu_emulation_to_a_nes_emulator/

Square Wave Example Pygame

Referências instruções 6502

Repositório referências de código implementadas (NerdyNights)

Assembler NESASM para linux

Assembler ASM6F (oficial da disciplina)

Emulador FCEUX para linux

Usar o comando nes do linux para rodar visualmente os executáveis gerados

  • sudo apt-get install fceux
  • nes file.nes

Emulador Mednafen (oficial da disciplina)

  • sudo apt-get install mednafen

Extensão do VSCode para 6502

PyPy + Pygame

  • Download pypy
wget https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-linux64.tar.bz2
tar xf pypy3.6-v7.2.0-linux64.tar.bz2; rm pypy3.6-v7.2.0-linux64.tar.bz2
rm pypy3.6-v7.2.0-linux64.tar.bz2
  • Install pygame build dependencies
sudo apt-get install git python3-dev python3-setuptools python3-numpy python3-opengl \
    libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsmpeg-dev \
    libsdl1.2-dev libportmidi-dev libswscale-dev libavformat-dev libavcodec-dev \
    libtiff5-dev libx11-6 libx11-dev fluid-soundfont-gm timgm6mb-soundfont \
    xfonts-base xfonts-100dpi xfonts-75dpi xfonts-cyrillic fontconfig fonts-freefont-ttf libfreetype6-dev
  • rename pypy3.6-v7.2.0-linux64 folder to pypy
mv pypy3.6-v7.2.0-linux64 pypy
  • install pygame on pypy
pypy/bin/pypy3 -m ensurepip
pypy/bin/pip install -U pip wheel
pypy/bin/pip install pygame  
  • run using pypy
 pypy/bin/pypy3 emulator.py game/game.bin

Other tools

Aplicando todos os testes do emulador

  • python3 -m unittest discover .