mi sono rotto era da diverso tempo forse un anno che avevo scritto stò documento... forse è arrivata l'ora di rilasciarlo (probabilmente no ma chissenefrega lol)... poi ditemi che non sono troppo buono :rolleyes:
:----------------------------------------------------------------------------:
Formati grafici del NeoGeo v 0.5
ovvero come complicarsi la vita :P
written by evo
evobboy at yahoo dot it
Se hai utilizzato queste informazioni gradirei se mettessi il mio nome
da qualche parte nei progetti che sei riuscito a fare grazie a queste
info (non per forza).
Solito disclaimer non utilizzare le informazioni per ottenere profitti, non spacciarle per tue è vietata la modifica/redistribuzione in forma sia parziale che totale (inclusa la traduzione quindi) senza il consenso dell'autore cioè me.
- Introduzione
Questo documento è stato scritto dopo diverse ore di hacking di rom,
e l'utilizzo di documenti e sorgenti scritti da altri, quindi mi sento
in dovere di ringraziare il Mame Team, Kan, Shin Seiki, Charles Doty,
BlastarX e tutti gli altri che non ricordo.
Un saluto a Clomax, Gemini, GeO, mentz, mog_tom, Saffo, ^duke^, Brisma.
Il Neogeo utilizza due formati grafici memorizzati in rom diverse,
il formato 8x8, lo stesso dei file Fix del neogeo CD e che si trova nelle rom *_sN.rom;
e il formato 16x16 memorizzato nei file *_cN.rom.(sembra che il formato dei file Spr sia
diverso da quello del NeoGeo, se non altro si tratta di un unico file...).
- Grafica 8x8: Fix e *_sN.rom
Il formato di fronte a cui ci troviamo è alquanto complesso, forse troppo...
Ogni pixel è formato da 4 bit, vuol dire che con ogni byte noi disegnamo 2 pixel.
I primi 4 bit disegnano il secondo pixel mentre i secondi 4 bit disegnano il primo pixel.
Inoltre visto che alla SNK vogliono fare le cose difficili...
Noi sappiammo che queste tile sono 8x8, immaginatele come divise in due parti di 4x8:
0 1 2 3 4 5 6 7
._._._._. ._._._._.
0 |_|_|_|_| |_|_|_|_|
1 |_|_|_|_| |_|_|_|_|
2 |_|_|_|_| |_|_|_|_|
3 |_|_|_|_| |_|_|_|_|
4 |_|_|_|_| |_|_|_|_|
5 |_|_|_|_| |_|_|_|_|
6 |_|_|_|_| |_|_|_|_|
7 |_|_|_|_| |_|_|_|_|
bene i pixel vengono disposti a due a due seguendo le colonne a partire dalla 4^ e 5^.
(prima i secondi 4 bit e poi i primi).
facciamo un esempio pratico così è più facile :=)
ecco come si presenta un 1...
0 1 2 3 4 5 6 7
._._._._._._._._.
0 |_|_|_|_|_|_|_|_|
1 |_|_|#|#|#|_|_|_|
2 |_|_|_|#|#|_|_|_|
3 |_|_|_|#|#|_|_|_|
4 |_|_|_|#|#|_|_|_|
5 |_|_|_|#|#|_|_|_|
6 |_|_|_|#|#|_|_|_|
7 |_|_|#|#|#|#|_|_|
ed ecco in hex:
22 21 21 21 21 21 21 11 22 22 22 22 22 22 22 22
22 22 22 22 22 22 22 22 22 11 12 12 12 12 12 11
$22 = %0010 0010
$21 = %0010 0001
$11 = %0001 0001
$12 = $0001 0010
consideriamo che nelle palette %0010 è bianco (B), mentre %0001 © è un colore,
cominciamo dalle colonne 4 e 5:
0 1 2 3 4 5 6 7
0 B B ------>22
1 C B ------>21 (ricordate che i bit vengono prima i secondi?
2 C B ------>21 quindi è come se mettessimo %0001 © 0010 (B))
3 C B ------>21
4 C B ------>21
5 C B ------>21
6 C B ------>21
7 C C ------>11 = %0001 0001
facile no?
poi andiamo con le colonne 6 e 7, poi 0 e 1, e alla fine 2 e 3.
fate una prova con un foglio a quadretti, numerate la griglia da 0 a 7, trasformate quei
valori in binario, e colorate i quadretti che corrispondono a C (%0001) vi assicuro che
farlo può essere più esplicativo di mille parole ;)
Essendo ogni tile fatta da 32 byte noi avremo in tutto 4096 tile
(la rom della grafica 8x8 è sempre di 128 kb)
- Formato 16x16: *_cN.rom (MVS E AES)
Le rom sono prese a coppie, [_cn1,_cn2],[_cn3,_cn4] etc...
nel primo file abbiamo 2 bitplane disposti in maniera lineare, nel secondo gli altri due,
per un totale di 4 bitplane e quindi 16 colori.
File 1:
[bp1] [bp2]
File 2:
[bp3] [bp4]
Oltretutto i bit sono invertiti, quindi se un bitplane fosse %10011010
sarebbe invece viualizzato come %01011001.
- Formato 16x16: *.spr (CD)
Questo è un 4 bpp planar: i 4 bitplane che lo compongono vengono uno dopo l'altro:
[bp1] [bp2] [bp3] [bp4]
Anche qui i bit sono invertiti. Come nel formato MVS/AES.
- Conclusioni
Ed ecco conludersi il nostro viaggio nella grafica del NeoGeo (che mi è costata diverse ore di fatica...)
Non mi va più di scrivere quindi se avete qualcosa da dirmi, chiedere,
possibili modifiche al documento, l'email è evobboy@yahoo.it
:----------------------------------------------------------------------------:
grazie del contributo. :)
Grazie per il saluto !!!
CitazioneGrazie per il saluto !!!
lol
CitazioneGrazie per il saluto !!!
I second mentz. ;)
E complimenti per la guida, è scritta chiaramente ed esaustivamente. :)
credevo fosse terribilmente incasinata vabbè meno male che qualcuno riesce a capire le ca***te che scrivo :D