Ας ξεκαθαρίσουμε πρώτα τα βασικά στάδια της διαδικασίας. Το πραγματικό
NES ερχότανε με διάφορα hardware στοιχεία, αλλά προσωρινά θα
εστιάσουμε μόνο στην CPU. Αυτή βασίστηκε στον διάσημο (για την εποχή
του) MOS 6502 επεξεργαστή. Αντί να γράφουμε τον κώδικα σε μηδέν και
ένα θα χρησιμοποιήσουμε τον ca65, έναν assembler με abstractions
τύπου labels, procedures, macros και constants, μεταξύ άλλων. Η 6502
φτιάχτηκε σε έναν κόσμο όπου η assembly γραφότανε ακόμα με το χέρι,
μην αφήσεις την ιδέα να σε τρομάξει.
Παρενθετικά, ο επεξεργαστής πουλιόταν με υποστήριξη Binary Coded Decimal, αλλά η εταιρία αναγκάστηκε να απενεργοποιήσει βίαια την λειτουργία για νομικούς λόγους. Το υλικό ωστόσο παρέμεινε πάντοτε μέσα στην κονσόλα!
Το πακέτο cc65, πέρα από τον assembler που αναφέραμε στην
προηγούμενη παράγραφο, έρχεται και με έναν linker που μπορεί να
ρυθμιστεί κατάλληλα για να ορίσει τις διαστάσεις των memory segments
του κώδικα και να παράξει τελικά το iNES format αρχείο, το αντίστοιχο
των ELF στα Linux. Το αρχείο αυτό θα περαστεί σε έναν emulator (εδώ
στον fceux), ο οποίος συμπεριφέρεται χοντρικά σαν μηχανή,
διαβάζοντας τα opcodes και εξομοιώνοντας τις λειτουργίες τους με
στοιχεία του hosting architecture. Στην πράξη, μπορούμε να
αποθηκεύσουμε το παιχνίδι και σε πραγματικό cartridge.