| 
									
										
										
										
											2015-05-24 06:55:12 +02:00
										 |  |  | // Copyright 2008 Dolphin Emulator Project
 | 
					
						
							| 
									
										
										
										
											2015-05-18 01:08:10 +02:00
										 |  |  | // Licensed under GPLv2+
 | 
					
						
							| 
									
										
										
										
											2013-04-17 23:09:55 -04:00
										 |  |  | // Refer to the license.txt file included.
 | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-10 13:54:46 -05:00
										 |  |  | #pragma once
 | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-17 05:18:15 -05:00
										 |  |  | #include "Common/CommonTypes.h"
 | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | class PointerWrap; | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  | namespace MMIO | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | class Mapping; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | // internal hardware addresses
 | 
					
						
							|  |  |  | enum | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   PE_ZCONF = 0x00,          // Z Config
 | 
					
						
							|  |  |  |   PE_ALPHACONF = 0x02,      // Alpha Config
 | 
					
						
							|  |  |  |   PE_DSTALPHACONF = 0x04,   // Destination Alpha Config
 | 
					
						
							|  |  |  |   PE_ALPHAMODE = 0x06,      // Alpha Mode Config
 | 
					
						
							|  |  |  |   PE_ALPHAREAD = 0x08,      // Alpha Read
 | 
					
						
							|  |  |  |   PE_CTRL_REGISTER = 0x0a,  // Control
 | 
					
						
							|  |  |  |   PE_TOKEN_REG = 0x0e,      // Token
 | 
					
						
							|  |  |  |   PE_BBOX_LEFT = 0x10,      // Bounding Box Left Pixel
 | 
					
						
							|  |  |  |   PE_BBOX_RIGHT = 0x12,     // Bounding Box Right Pixel
 | 
					
						
							|  |  |  |   PE_BBOX_TOP = 0x14,       // Bounding Box Top Pixel
 | 
					
						
							|  |  |  |   PE_BBOX_BOTTOM = 0x16,    // Bounding Box Bottom Pixel
 | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   // NOTE: Order not verified
 | 
					
						
							|  |  |  |   // These indicate the number of quads that are being used as input/output for each particular
 | 
					
						
							|  |  |  |   // stage
 | 
					
						
							|  |  |  |   PE_PERF_ZCOMP_INPUT_ZCOMPLOC_L = 0x18, | 
					
						
							|  |  |  |   PE_PERF_ZCOMP_INPUT_ZCOMPLOC_H = 0x1a, | 
					
						
							|  |  |  |   PE_PERF_ZCOMP_OUTPUT_ZCOMPLOC_L = 0x1c, | 
					
						
							|  |  |  |   PE_PERF_ZCOMP_OUTPUT_ZCOMPLOC_H = 0x1e, | 
					
						
							|  |  |  |   PE_PERF_ZCOMP_INPUT_L = 0x20, | 
					
						
							|  |  |  |   PE_PERF_ZCOMP_INPUT_H = 0x22, | 
					
						
							|  |  |  |   PE_PERF_ZCOMP_OUTPUT_L = 0x24, | 
					
						
							|  |  |  |   PE_PERF_ZCOMP_OUTPUT_H = 0x26, | 
					
						
							|  |  |  |   PE_PERF_BLEND_INPUT_L = 0x28, | 
					
						
							|  |  |  |   PE_PERF_BLEND_INPUT_H = 0x2a, | 
					
						
							|  |  |  |   PE_PERF_EFB_COPY_CLOCKS_L = 0x2c, | 
					
						
							|  |  |  |   PE_PERF_EFB_COPY_CLOCKS_H = 0x2e, | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace PixelEngine | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-10-24 19:52:52 +00:00
										 |  |  | // ReadMode specifies the returned alpha channel for EFB peeks
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  | union UPEAlphaReadReg { | 
					
						
							|  |  |  |   u16 Hex; | 
					
						
							|  |  |  |   struct | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     u16 ReadMode : 2; | 
					
						
							|  |  |  |     u16 : 14; | 
					
						
							|  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2010-10-24 19:52:52 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | void Init(); | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  | void DoState(PointerWrap& p); | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-02 14:16:43 +01:00
										 |  |  | void RegisterMMIO(MMIO::Mapping* mmio, u32 base); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-14 02:18:03 +00:00
										 |  |  | // gfx backend support
 | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | void SetToken(const u16 _token, const int _bSetTokenAcknowledge); | 
					
						
							| 
									
										
										
										
											2014-08-30 12:41:21 -04:00
										 |  |  | void SetFinish(); | 
					
						
							| 
									
										
										
										
											2014-02-15 03:23:35 +01:00
										 |  |  | UPEAlphaReadReg GetAlphaReadMode(); | 
					
						
							| 
									
										
										
										
											2010-06-09 01:37:08 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  | }  // end of namespace PixelEngine
 |