Skip to content

UniversityOfAthens/dit-nes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NES

Compiling και Development

Ας ξεκαθαρίσουμε πρώτα τα βασικά στάδια της διαδικασίας. Το πραγματικό 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.

About

A collaboratively-written NES game with proper documentation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published