From: Jordi <jb...@ti...> - 2002-10-10 21:17:19
|
obviamente faltaba una cosa :) la emulacion de la shadow screen: ya se que el codigo es viejo, pero lo que quiero solo es que se= pille la idea: con la shadow_screen la pantalla no esta fija en el= mismo sitio, sino que esta en el inicio del bank5 (page[1], la de toda= la vida) o del bank7 (shadow screen) if (!regs->shadow_screen) { =09 pixel_ptr=3DspectrumZ80.page[1]; =09 pixel_ptr+=3D+dir_p-0x4000; =09 attr_ptr=3DspectrumZ80.page[1]; =09 attr_ptr+=3Ddir_a-0x4000; } else { =09 pixel_ptr=3DspectrumZ80.RAMbank[7]; =09 pixel_ptr+=3D+dir_p-0x4000; =09 attr_ptr=3DspectrumZ80.RAMbank[7]; =09 attr_ptr+=3Ddir_a-0x4000; } for(x=3D0; x<32; x++ ) { =09pixeles=3D*pixel_ptr; =09pixel_ptr++; =09atributos=3D*attr_ptr; =09attr_ptr++; if ( ((atributos & 0x80)=3D=3D0) || (f_flash=3D=3D0) ) { tinta=3D(atributos & 0x07) + ((atributos & 0x40)>>3); papel=3D(atributos & 0x78)>>3; } else { papel=3D(atributos & 0x07) + ((atributos & 0x40)>>3); tinta=3D(atributos & 0x78)>>3; } =09 gPutPixel(col++,row,( (pixeles & 0x80) ? tinta : papel ));=09 = gPutPixel(col++,row,( (pixeles & 0x40) ? tinta : papel ));=09 = gPutPixel(col++,row,( (pixeles & 0x20) ? tinta : papel ));=09 = gPutPixel(col++,row,( (pixeles & 0x10) ? tinta : papel ));=09 = gPutPixel(col++,row,( (pixeles & 0x08) ? tinta : papel ));=09 = gPutPixel(col++,row,( (pixeles & 0x04) ? tinta : papel ));=09 = gPutPixel(col++,row,( (pixeles & 0x02) ? tinta : papel ));=09 = gPutPixel(col++,row,( (pixeles & 0x01) ? tinta : papel ));=09 = } } p.d. hay un afxmessagebox en el machines.cpp, seria cuestion de quitarlo ;) |