Emulator NES - Tecuceanu Gabriel-Cristian

  • Nume: Tecuceanu Gabriel-Cristian
  • Grupa: 331CA
  • Link GitHub: TBD

Introducere

Proiectul are in vedere realizarea unei console portabile capabile sa emuleze jocuri din era 8-bit de pe sistemul NES (Nintendo Enterntainment System) utilizand microcontroller-ul ESP32-S3.

Scopul este oferirea unei experiente cat mai complete prin prezenta urmatoarelor caracteristici:

  • incarcare jocurilor (ROM) de pe un card MicroSD
  • utilizarea arhitecturii dual-core si a memoriei PSRAM pentru a asigura o emulare fluida
  • afisare la rezolutiea nativa a consolei NES (256×240), utilizand intreaga gama de culori
  • redarea sunetului original pe 8-biti
  • asigurarea portabilitatii prin integrarea unui acumulator Li-Ion si a unui modul de incarcare

Ideea a pornit de la pasiunea pentru jocuri retro. Cred ca este o idee utila in primul rand pentru ca reprezinta o oportunitate buna de invatare dar si pentru ca rezultatul final este un sistem de divertisment complet si portabil, multe dintre jocurile de pe NES sunt inca populare si in ziua de azi (ex: Super Mario Bros).

Descriere generala

Diagrama Hardware:

Diagrama Software:

Sistemul este construit in jurul placii ESP32-S3 DevKitC-1.

Flux:

  • Input: utilizatorul intereactioneaza cu consola prin intermediul celor 8 butoane tactile (D-Pad + butoane actiune: A, B, Select, Start), configurate cu rezistente de pull-up interne.
  • Procesare: emulatorul ruleaza pe cele doua nuclee ale microcontroller-ului. Un nucleu se ocupa de emularea CPU si PPU (grafica), in timp ce al doilea nucleu se ocupa de decoarea audio (APU) si transferul de date catre display.
  • Output Video: afisarea se face pe un ecran TFT de 2.8” (ST7789V) prin protocolul SPI.
  • Sunetul este transmis digital prin protocolul I2s catre un DAC/Amplificator extern (MAX98357A).
  • Alimentare: Sistemul este portabil, folosim o baterie Li-Ion, un circuit de protectie/incarcare (TP4056) si un regulator de tensiune

Hardware Design

Schema electrica

Lista de componente

Nume Componenta Cantitate Rol in proiect Datasheet
ESP32-S3 DevKitC-1 1 Unitare centrala de procesare (N16R8) Link
LCD TFT 2.8” ST7789V 1 Afisare grafica (SPI) -
MAX98357A I2S Amp 1 DAC si Amplificare audio Link
Difuzor 8Ω 0.5W 1 Redare sunet -
Baterie Li-Ion 3.7V 1 Sursa de energie -
Modul TP4056 1 incaracre si protectie baterie -
Butoane Tactile 12mm 8 Control (D-Pad, A, B, Start, Select) -
Switch 1 Comutator On/Off -
Convertor MT3608 1 Boost converter (3.7V baterie → 5V sistem) -

Pini folositi

Display ST7789V

Pin modul Semnal GPIO ESP32-S3
SCK SPI Clock 11
SDI (MOSI) SPI Data 10
SDO (MISO) SPI Data Out 13
CS Chip Select display 18
DC Data / Command 9
RST Reset 8
LED Backlight 12

Card SD (integrat pe display)

Pin modul Semnal GPIO ESP32-S3
SCK SPI Clock 11 (comun cu display)
MOSI SPI Data 10 (comun cu display)
MISO SPI Data Out 13 (comun cu display)
CS Chip Select SD 17

MAX98357A

Pin modul Semnal GPIO / Alimentare
BCLK I2S Bit Clock GPIO 5
LRC I2S Word Select GPIO 6
DIN I2S Data GPIO 4
SD Enable 3.3V

Butoane

Buton GPIO
UP 47
DOWN 39
LEFT 21
RIGHT 38
A 42
B 41
SELECT 1
START 2

Software Design

Rezultate Obtinute

Concluzii

Download

Jurnal

Bibliografie/Resurse

pm/prj2026/farhad_ali.gul/gabriel.tecuceanu.txt · Last modified: 2026/05/16 20:01 by gabriel.tecuceanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0