mirror of
				https://github.com/yuzu-emu/yuzu.git
				synced 2025-10-31 20:12:48 +00:00 
			
		
		
		
	
						commit
						272a201d12
					
				| @ -40,19 +40,17 @@ u32 LZSS_GetDecompressedSize(u8* buffer, u32 size) { | ||||
| bool LZSS_Decompress(u8* compressed, u32 compressed_size, u8* decompressed, u32 decompressed_size) { | ||||
|     u8* footer = compressed + compressed_size - 8; | ||||
|     u32 buffer_top_and_bottom = *(u32*)footer; | ||||
|     u32 i, j; | ||||
|     u32 out = decompressed_size; | ||||
|     u32 index = compressed_size - ((buffer_top_and_bottom >> 24) & 0xFF); | ||||
|     u8 control; | ||||
|     u32 stop_index = compressed_size - (buffer_top_and_bottom & 0xFFFFFF); | ||||
| 
 | ||||
|     memset(decompressed, 0, decompressed_size); | ||||
|     memcpy(decompressed, compressed, compressed_size); | ||||
| 
 | ||||
|     while(index > stop_index) { | ||||
|         control = compressed[--index]; | ||||
|        u8 control = compressed[--index]; | ||||
| 
 | ||||
|         for(i = 0; i < 8; i++) { | ||||
|         for(u32 i = 0; i < 8; i++) { | ||||
|             if(index <= stop_index) | ||||
|                 break; | ||||
|             if(index <= 0) | ||||
| @ -76,13 +74,13 @@ bool LZSS_Decompress(u8* compressed, u32 compressed_size, u8* decompressed, u32 | ||||
|                 if(out < segment_size) { | ||||
|                     return false; | ||||
|                 } | ||||
|                 for(j = 0; j < segment_size; j++) { | ||||
|                     u8 data; | ||||
|                 for(u32 j = 0; j < segment_size; j++) { | ||||
|                     // Check if compression is out of bounds
 | ||||
|                     if(out + segment_offset >= decompressed_size) { | ||||
|                         return false; | ||||
|                     } | ||||
|                     data  = decompressed[out + segment_offset]; | ||||
| 
 | ||||
|                     u8 data  = decompressed[out + segment_offset]; | ||||
|                     decompressed[--out] = data; | ||||
|                 } | ||||
|             } else { | ||||
|  | ||||
| @ -46,17 +46,17 @@ struct NCCH_Header { | ||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||
| // ExeFS (executable file system) headers
 | ||||
| 
 | ||||
| typedef struct { | ||||
| struct ExeFs_SectionHeader { | ||||
|     char name[8]; | ||||
|     u32 offset; | ||||
|     u32 size; | ||||
| } ExeFs_SectionHeader; | ||||
| }; | ||||
| 
 | ||||
| typedef struct { | ||||
| struct ExeFs_Header { | ||||
|     ExeFs_SectionHeader section[8]; | ||||
|     u8 reserved[0x80]; | ||||
|     u8 hashes[8][0x20]; | ||||
| } ExeFs_Header; | ||||
| }; | ||||
| 
 | ||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||
| // ExHeader (executable file system header) headers
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei