Ho utilizzato un workaround per risolvere il problema della risoluzione
a schermo intero di 1920x1080 (vedere le note per una spiegazione piu'
dettagliata).
Aggiunto il supporto del "Border Color Texture Address Mode" (per il
workaround visto che adesso lo screen del nes non occupa più l'intera
zona di visualizzazione ma un pixel un meno sia in altezza che in
larghezza).
Aggiunto la pulizia delle superficie appena create per non correre il
richio di avere della sporcizia a video.
modalitò fullscreen non funzionavano correttamente questo perche' quando
applicavo il filtro, non tenevo in considerazione le dimensioni reali
della superficie di destinazione. Corretto.
versioni di windows (quella giapponese ad esempio) e il fatto che non si
popolasse la finestra dell'open_event(). Sembra proprio che con windows
xp (32 o 64 bit) il "CoInitializeEx(NULL, COINIT_MULTITHREADED)" ne
blocchi il refresh quindi disabilito l'audio (in modo da fare il
"CoUninitialize()") e lo riabilito quando esco dall'open_event().
visto che ora la dimensione della texture del testo può variare
(gfx.w[CURRENT e gfx.h[CURRENT]).
Inoltre non rilasciavo la surface map0 della texture quando rilasciavo
le risorse. Questo non permetteva di liberare la memoria video
utilizzata che a lungo a dare si riempiva mandando in crash l'emulatore.
supportino solo texture powerate. Visto che la texture del testo
"d3d9.text" che creavo era non powerata, quando selezionavo la
dimensione X3, l'emulatore crashava. Adesso uso solo texture "power of
two".
screensaver o quando, con il puNES in finestra e senza focus, si rientra
dal fullscreen di un'altra applicazione), il contesto D3D9 non veniva
piu' aggiornato mostrando o l'ultmima immagine disponibile oppure un
quadrato biano. In questo caso il contesto deve essere resettato (ma io
preferisco ricrearlo completamente).
interna utilizzata dal filtro stesso poneva sempre a 0 il canale alpha e
questo non permetteva di visualizzare correttamente i colori a video. Ho
fatto qualche verifica e sembra che la modificata fatto non comporta
problemi anche nelle altre versioni.
prima di rilasciare le risorse utilizzate, eseguo un text_clear()
azzerando (nel caso di OpenGL e D3D9) dalla texture del testo i pixel
prima utilizzati dalla linea stessa.
non utilizzo il COINIT_MULTITHREADED, l'emulatore crasha. Per ora lascio
che la 64bit usi il COINIT_MULTITHREADED e la 32bit il
COINIT_APARTMENTTHREADED. Se mi verranno segnalati altri problemi vedrò
di risolvere in altro modo.
tipi di interrupts e (credo, non ne sono sicuro) che il passaggio dal
"CPU mode" allo "Scanline mode" venga eseguito al clock successivo del
"CPU mode".