- uniformato l'utilizzo della CHR RAM extra per le mappers che la
utilizzavano.
- aggiunto il supporto alla FCK23 e FCK23A nel formato UNIF.
- aggiunto l'utilizzo dell'info.id nella gestione dello UNIF.
- Uniformato l'utilizzo delle submappers.
- Nel database ho creato un campo apposito per il mirroring forzato.
- Implementato nella mapper_176 il reset della PRG anche con il soft
reset.
- Implementato anche la mapper_BMCFK23C che e' utilizzata dall'FCEUX al
posto della mapper_176. Con questa mapper la rom "Shu Qi Yu - Zhi Li
Xiao Zhuan Yuan (Ch).nes" non funziona correttamente quidni solo per
questa rom utilizzo la mapper_176.
- Riscritta la gestione della PRG ROM della mapper_28 che adesso supera
tutti i test relativi ("test28.nes" e gli "Holy Diver, Batman").
- mapper_MMC1, per supportare correttamente il NES 2.0 ho dovuto
implementare un riconoscimento in base alla dimensione della PRG ROM e
CHR ROM, inoltre ho corretto la valorizzazione dell'mmc1.prg_upper in
caso di roms con un numero di segmenti da 16k inferiori a 17. Per ultimo
ho corretto un bug che affliggeva da sempre questa mapper, non veniva
settato correttamente il cpu.prg_ram_rd_active.
- mapper_Sunsoft ho corretto un bug nella gestione dell'IRQ (vedere i
commenti inseriti nella routine extcl_cpu_every_cycle_Sunsoft_FM7()).
fds.drive.irq_disk_high che comunque non valorizzavo correttamente (la
settavo a 0x01 invece che 0x02).
La vecchia gestione del fds.drive.end_of_head portava ad un errore
"Drive #028" nell'FDS "Tobidase Daisakusen (1987)(Square)(J).fds" (e
comunque era sicuramente errata). Adesso fds.drive.end_of_head =
END_OF_HEAD e' valido solo dopo l'ultimo byte valido letto.
Sempre in "Tobidase Daisakusen (1987)(Square)(J).fds" esiste un file
nascosto esattamente dopo l'ultimo file "riconosciuto" dal file system.
Il vecchio controllo che facevo per riconoscere i dischi "sporchi" si
basava sul numero totale dei files che il file system si aspettava ci
fossero (fds.side.block_2.tot_files), quindi il file nascosto non veniva
mai letto, non permettendo l'avvio corretto dell'fds. Adesso il
controllo lo eseguo direttamente sul byte del blocco. Se non e' tra i
blocchi riconosciuti allora considero l'analisi del disco completa e
tralascio tutto quello che sta dopo (in questo modo funziona anche
"Akumajou Dracula v1.02 (1986)(Konami)(J).fds" il cui disco e'
"sporco").
sensibilita' della variazine degli assi molto alta. Inoltre nel
cfg_std_pad.c ho eliminato l'uso delle direct input 8 per riuscire ad
ottenere i nomi dei device collegati, sostituendolo con la lettura della
chiave di registro corrispondente. Questo l'ho fatto perche' l'enum
della DI8 non garantiva l'esattezza dell'ordine dei device che
esaminava. Prendiamo ad esempio uno scenario con due pad collegati:
un "XBOX 360 controller" e un "Game USB Pad". Potevo ritrovarmi nella
combo dei device collegati un js0 con il nome "XBOX 360 controller"
mentre in realta' si trattava del pad "Game USB PAD".
sensibilita' della variazine degli assi molto alta. Inoltre nel
cfg_std_pad.c ho eliminato l'uso del thread separato per la lettura del
valore del joystick/gamepad.
"Tetris 2 + BomBliss (J) [!].nes". Questa utilizza la ram extra per
eseguire codice tra cui l'accesso ai registri della PPU quindi, utilizzo
il lend_word() e quindi devo controllare se mi trovo alla lettura del
secondo BYTE e se si non devo eseguire il tick_hw() esattamente come
faccio quando eseguo codice dal 0x8000 in su.
all'inizio del rendering. Temo che in presto apportero' altre modiche
che riguardano l'OAM visto che l'utente lidnariq su nedev sta
effettuando altri test e scoprendo altre cose
(http://forums.nesdev.com/viewtopic.php?f=2&t=10189)
come risultato il funzionamento corretto di rom come:
"scanline.nes"
"Micro Machines (Camerica) [!].nes"
tutti i test_apu di x0000
"dpcmletter.nes"
inoltre ho implementato quello riscontrato in questo post
http://forums.nesdev.com/viewtopic.php?f=3&t=465
permettendo il corretto funzionamento della rom "Huge Insect (Sachen)
[!].nes". Questo, inoltre, ha fatto sparire la pallina nella rom
"Escape_from_pong" che a quanto sembra, e' il reale comportamaneto su un
autentico NES!!.
Corretto qualche sciocchezza nella mapper 31.
lista delle rom recenti compariva anche il file temporaneo decompresso.
Per sicurezza ho aggiunto anche un controllo pere cui se il file non
esiste non appare piu' nella lista.