Πρόγραμμα για εξαγωγή tileset από NES rom

drpaneas

RetroNoob
Joined
22 Μάρ 2022
Μηνύματα
1
Αντιδράσεις
2
Καλησπέρα στην παρέα, νέος εδώ :D

Πριν μερικούς μήνες θέλησα να φτιάξω ένα κλώνο του Pacman από το NES (τελικά δεν το έκανα ποτέ τελικά) και ήθελα να χρησιμοποιήσω τα αυθεντικά γραφικά που χρησιμοποιεί το ίδιο το παιχνίδι. Η πιο "κλασική" λύση είναι να βρω τα γραφικά από το "ιντερνετ" ή αν θέλω να το κάνω μόνος μου, τότε για το ριπάρισμα/scraping των γραφικών (tileset) η εύκολη λύση είναι να το φορτώσεις το παιχνίδι σε κάποιον emulator ο οποίος σου δίνει την δυνατότητα να δεις τα διαφορετικά γραφικά που τρέχουν εκείνη την ώρα στην οθόνη (sprites, background, κλπ). Αντί να πάρω αυτή την οδό, θέλησα να μάθω περισσότερα για το NES σύστημα, οπότε αποφάσισα να γράψω ένα μικρό προγραμματάκι να κάνει αυτή τη δουλειά, το οποίο θα ήθελα να το μοιραστώ μαζί σας:


Είναι γραμμένο σε γλώσσα Go, έτσι ώστε να τρέχει σε ότι υπολογιστή κι αν έχετε. Του δίνετε μία NES rom σαν input, και αυτό σας βγάζει κάποιες πληροφορίες για αυτήν, καθώς και τα γραφικά (το καθένα, σε δικό του png αρχείο). Φυσικά δεν παίζει για όλα τα παιχνίδια του NES, αλλά για τα πολύ απλά, καθώς δεν ήθελα να αφιερώσω ατελείωτες ώρες σε αυτό το project.

Για να το γράψω όμως, χρειαζόταν να μάθω πράγματα για τη δομή μιας *.nes rom καθώς και τα διαφορετικά formats που υπάρχουν (πχ iNES 1.0 και iNES 2.0). Εγραψα λοιπόν μία βιβλιοθήκη, η οποία κάνει disassembly τον header της rom, τόσο σε iNES 2.0 όσο και σε iNES 1.0, την οποία μπορείτε να βρείτε εδώ: https://github.com/drpaneas/ines . Την βιλιοθήκη αυτή την χρησιμοποιεί το παραπάνω πρόγραμμά, είναι γραμμένη με αρκετά προσιτό τρόπο, έτσι ώστε να μπορεί να την χρησιμοποιήσει ο οποιοσδήποτε θέλει να πάρει κάποια πληροφορία από τις δικές του NES roms (πχ https://github.com/drpaneas/sengo/blob/main/main.go#L85-L115)
 
Πίσω
Μπλουζα