Attualmente sto scrivendo in C# quello che potrebbe essere sostanzialmente chiamato la mia interpretazione dell'hardware NES per un gioco alla vecchia maniera che sto sviluppando. Ho attivato FCE e sto osservando come il NES ha mostrato e reso grafica.Sprites 'Bank Switching' su vecchie applicazioni NES
In breve, il NES può contenere due bitmap di informazioni grafiche, ciascuna delle dimensioni di 128x128. Queste sono chiamate le tabelle PPU. Uno era per le tessere BG e l'altro era per gli sprite. I dati dovevano essere in questa memoria per essere disegnati sullo schermo. Ora, se un gioco avesse più dati grafici di questi due banchi, potrebbe scrivere parti di queste nuove informazioni su queste banche, riscrivendo ciò che era lì - alla fine di ogni frame, e usarlo dal prossimo frame in poi.
Quindi, nei vecchi giochi, come ha fatto il cambio banca dei programmatori? Voglio dire, all'interno del level design, come hanno fatto a sapere quale set grafico caricare? Ho notato che i bankwitch di Mega Man 2 quando lo schermo scorre programmaticamente da una parte dello stage a quella successiva. Ma come hanno archiviato queste informazioni nel livello: che cosa sprite copiare nelle tabelle PPU e dove scriverle?
Un altro esempio potrebbe essere la pausa in MM2. Le tessere BG vengono sovrascritte durante la pausa e poi vengono ripristinate quando il giocatore non è pronto. Come hanno ricordato quali tessere hanno sostituito e come ripristinarle?
Se fossi pigro, potevo semplicemente creare un enorme bitmap statico e solo prendere i valori in questo modo. Ma mi sto costringendo a limitare questi valori per creare un'esperienza più autentica. Ho letto l'incredibile guida su come M.C. I bambini sono stati creati e sto cercando di essere iperboli su come programmare questo gioco. Mi infastidisce ancora il modo in cui questi programmatori riescono a realizzare ciò che hanno fatto con ciò che avevano.
EDIT: L'unica soluzione che posso pensare sarebbe di tenere tabelle separate che indicano quali piastrelle dovrebbero essere nel PPU a che ora, ma penso che sarebbe un'enorme risorsa di memoria che il NES non sarebbe in grado gestire.
Grazie, questo è stato molto utile. –
Grazie per il complimento :) –