Load_SCR(): fix loading of Overscan pictures
This commit is contained in:
		
							parent
							
								
									3484c8fca4
								
							
						
					
					
						commit
						3c5c518c83
					
				@ -513,25 +513,22 @@ void Load_SCR(T_IO_Context * context)
 | 
				
			|||||||
    //  GFX2_LogHexDump(GFX2_DEBUG, "SCR ", cpc_ram, load_address + j + 2000, 48);
 | 
					    //  GFX2_LogHexDump(GFX2_DEBUG, "SCR ", cpc_ram, load_address + j + 2000, 48);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  GFX2_Log(GFX2_DEBUG, "  display_start &H%04X\n", display_start);
 | 
					  GFX2_Log(GFX2_DEBUG, "  display_start &H%04X  columns=%u\n", display_start, columns);
 | 
				
			||||||
  for (y = 0; y < height; y++)
 | 
					  for (y = 0; y < height; y++)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    const byte * line;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (is_win)
 | 
					 | 
				
			||||||
      addr = display_start + y * columns;
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      addr = display_start + ((y >> 3) * columns);
 | 
					 | 
				
			||||||
      addr = (addr & 0xC7FF) | ((addr & 0x800) << 3);
 | 
					 | 
				
			||||||
      addr += (y & 7) << 11;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    //GFX2_Log(GFX2_DEBUG, "line#%d &H%04X\n", y, addr);
 | 
					 | 
				
			||||||
    line = cpc_ram + addr;
 | 
					 | 
				
			||||||
    x = 0;
 | 
					    x = 0;
 | 
				
			||||||
    for (i = 0; i < columns; i++)
 | 
					    for (i = 0; i < columns; i++)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      byte pixels = line[i];
 | 
					      byte pixels;
 | 
				
			||||||
 | 
					      if (is_win)
 | 
				
			||||||
 | 
					        addr = display_start + y * columns + i;
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        addr = display_start + ((y >> 3) * columns) + i;
 | 
				
			||||||
 | 
					        addr = (addr & 0xC7FF) + ((addr & 0x800) << 3);
 | 
				
			||||||
 | 
					        addr += (y & 7) << 11;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      pixels = cpc_ram[addr];
 | 
				
			||||||
      switch (mode)
 | 
					      switch (mode)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        case 0:
 | 
					        case 0:
 | 
				
			||||||
@ -621,6 +618,7 @@ void Save_SCR(T_IO_Context * context)
 | 
				
			|||||||
    if (index >= 0x60)
 | 
					    if (index >= 0x60)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      GFX2_Log(GFX2_WARNING, "Save_SCR() color #%i not found in CPC HW palette.\n", i);
 | 
					      GFX2_Log(GFX2_WARNING, "Save_SCR() color #%i not found in CPC HW palette.\n", i);
 | 
				
			||||||
 | 
					      // TODO : set CPC Plus flag
 | 
				
			||||||
      index = 0x54 - i; // default
 | 
					      index = 0x54 - i; // default
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    for (j = 0; j < 12; j++)  // write the same color for the 12 frames
 | 
					    for (j = 0; j < 12; j++)  // write the same color for the 12 frames
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user