mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	dsp_dsp: Messages are modified by service before being sent to DSP
This commit is contained in:
		
							parent
							
								
									ff28080091
								
							
						
					
					
						commit
						172a362884
					
				
					 1 changed files with 18 additions and 0 deletions
				
			
		|  | @ -303,6 +303,24 @@ static void WriteProcessPipe(Service::Interface* self) { | ||||||
|         message[i] = Memory::Read8(buffer + i); |         message[i] = Memory::Read8(buffer + i); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     // This behaviour was confirmed by RE.
 | ||||||
|  |     // The likely reason for this is that games tend to pass in garbage at these bytes
 | ||||||
|  |     // because they read random bytes off the stack.
 | ||||||
|  |     switch (pipe) { | ||||||
|  |     case DSP::HLE::DspPipe::Audio: | ||||||
|  |         ASSERT(message.size() >= 4); | ||||||
|  |         message[2] = 0; | ||||||
|  |         message[3] = 0; | ||||||
|  |         break; | ||||||
|  |     case DSP::HLE::DspPipe::Binary: | ||||||
|  |         ASSERT(message.size() >= 8); | ||||||
|  |         message[4] = 1; | ||||||
|  |         message[5] = 0; | ||||||
|  |         message[6] = 0; | ||||||
|  |         message[7] = 0; | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     DSP::HLE::PipeWrite(pipe, message); |     DSP::HLE::PipeWrite(pipe, message); | ||||||
| 
 | 
 | ||||||
|     cmd_buff[0] = IPC::MakeHeader(0xD, 1, 0); |     cmd_buff[0] = IPC::MakeHeader(0xD, 1, 0); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue