mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	memory: Fix order of checks in PhysicalToVirtualAddressForRasterizer. (#7328)
This commit is contained in:
		
							parent
							
								
									b2c740ee0e
								
							
						
					
					
						commit
						96aa1b3a08
					
				
					 1 changed files with 7 additions and 6 deletions
				
			
		|  | @ -691,12 +691,7 @@ std::vector<VAddr> MemorySystem::PhysicalToVirtualAddressForRasterizer(PAddr add | |||
|     if (addr >= VRAM_PADDR && addr < VRAM_PADDR_END) { | ||||
|         return {addr - VRAM_PADDR + VRAM_VADDR}; | ||||
|     } | ||||
|     if (addr >= FCRAM_PADDR && addr < FCRAM_PADDR_END) { | ||||
|         return {addr - FCRAM_PADDR + LINEAR_HEAP_VADDR, addr - FCRAM_PADDR + NEW_LINEAR_HEAP_VADDR}; | ||||
|     } | ||||
|     if (addr >= FCRAM_PADDR_END && addr < FCRAM_N3DS_PADDR_END) { | ||||
|         return {addr - FCRAM_PADDR + NEW_LINEAR_HEAP_VADDR}; | ||||
|     } | ||||
|     // NOTE: Order matters here.
 | ||||
|     auto plg_ldr = Service::PLGLDR::GetService(impl->system); | ||||
|     if (plg_ldr) { | ||||
|         auto fb_addr = plg_ldr->GetPluginFBAddr(); | ||||
|  | @ -704,6 +699,12 @@ std::vector<VAddr> MemorySystem::PhysicalToVirtualAddressForRasterizer(PAddr add | |||
|             return {addr - fb_addr + PLUGIN_3GX_FB_VADDR}; | ||||
|         } | ||||
|     } | ||||
|     if (addr >= FCRAM_PADDR && addr < FCRAM_PADDR_END) { | ||||
|         return {addr - FCRAM_PADDR + LINEAR_HEAP_VADDR, addr - FCRAM_PADDR + NEW_LINEAR_HEAP_VADDR}; | ||||
|     } | ||||
|     if (addr >= FCRAM_PADDR_END && addr < FCRAM_N3DS_PADDR_END) { | ||||
|         return {addr - FCRAM_PADDR + NEW_LINEAR_HEAP_VADDR}; | ||||
|     } | ||||
|     // While the physical <-> virtual mapping is 1:1 for the regions supported by the cache,
 | ||||
|     // some games (like Pokemon Super Mystery Dungeon) will try to use textures that go beyond
 | ||||
|     // the end address of VRAM, causing the Virtual->Physical translation to fail when flushing
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue