mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Implement I4 texture format
@neobrain, could you confirm that this is correct? It's been tested with various different games and fixes different textures, including in Animal Crossing, Kirby Triple Deluxe, and SMB3D.
This commit is contained in:
		
							parent
							
								
									e98fbadf4a
								
							
						
					
					
						commit
						40310e2132
					
				
					 2 changed files with 12 additions and 1 deletions
				
			
		|  | @ -393,6 +393,17 @@ const Math::Vec4<u8> LookupTexture(const u8* source, int x, int y, const Texture | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     case Regs::TextureFormat::I4: | ||||||
|  |     { | ||||||
|  |         u32 morton_offset = VideoCore::GetMortonOffset(x, y, 1); | ||||||
|  |         const u8* source_ptr = source + morton_offset / 2; | ||||||
|  | 
 | ||||||
|  |         u8 i = (morton_offset % 2) ? ((*source_ptr & 0xF0) >> 4) : (*source_ptr & 0xF); | ||||||
|  |         i = Color::Convert4To8(i); | ||||||
|  | 
 | ||||||
|  |         return { i, i, i, 255 }; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     case Regs::TextureFormat::A4: |     case Regs::TextureFormat::A4: | ||||||
|     { |     { | ||||||
|         u32 morton_offset = VideoCore::GetMortonOffset(x, y, 1); |         u32 morton_offset = VideoCore::GetMortonOffset(x, y, 1); | ||||||
|  |  | ||||||
|  | @ -156,7 +156,7 @@ struct Regs { | ||||||
|         I8           =  7, |         I8           =  7, | ||||||
|         A8           =  8, |         A8           =  8, | ||||||
|         IA4          =  9, |         IA4          =  9, | ||||||
| 
 |         I4           = 10, | ||||||
|         A4           = 11, |         A4           = 11, | ||||||
|         ETC1         = 12,  // compressed
 |         ETC1         = 12,  // compressed
 | ||||||
|         ETC1A4       = 13,  // compressed
 |         ETC1A4       = 13,  // compressed
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue