mirror of
				https://github.com/N64Recomp/N64ModernRuntime.git
				synced 2025-10-30 08:02:29 +00:00 
			
		
		
		
	Implement osViGetCurrentLine and osViGetCurrentField
This commit is contained in:
		
							parent
							
								
									e94dc4055b
								
							
						
					
					
						commit
						8719abe217
					
				
					 3 changed files with 20 additions and 0 deletions
				
			
		|  | @ -22,6 +22,14 @@ extern "C" void osViRepeatLine_recomp(uint8_t* rdram, recomp_context* ctx) { | |||
|     osViRepeatLine(_arg<0, u8>(rdram, ctx)); | ||||
| } | ||||
| 
 | ||||
| extern "C" void osViGetCurrentLine_recomp(uint8_t* rdram, recomp_context* ctx) { | ||||
|     ctx->r2 = (gpr)osViGetCurrentLine(); | ||||
| } | ||||
| 
 | ||||
| extern "C" void osViGetCurrentField_recomp(uint8_t* rdram, recomp_context* ctx) { | ||||
|     ctx->r2 = (gpr)osViGetCurrentField(); | ||||
| } | ||||
| 
 | ||||
| extern "C" void osViSetSpecialFeatures_recomp(uint8_t* rdram, recomp_context* ctx) { | ||||
|     osViSetSpecialFeatures((uint32_t)ctx->r4); | ||||
| } | ||||
|  |  | |||
|  | @ -44,6 +44,8 @@ typedef uint8_t u8; | |||
| #  ifdef __cplusplus | ||||
| #    define NULLPTR (PTR(void))0 | ||||
| #  endif | ||||
| #  define PHYS_TO_K1(x)	((x)|0xA0000000) | ||||
| #  define IO_READ(addr) (*(volatile uint32_t*)PHYS_TO_K1(addr)) | ||||
| #endif | ||||
| 
 | ||||
| #ifndef NULL | ||||
|  | @ -285,6 +287,8 @@ void osViSetMode(RDRAM_ARG PTR(OSViMode)); | |||
| void osViSetSpecialFeatures(uint32_t func); | ||||
| void osViBlack(uint8_t active); | ||||
| void osViRepeatLine(uint8_t active); | ||||
| u32 osViGetCurrentLine(); | ||||
| u32 osViGetCurrentField(); | ||||
| void osViSetXScale(float scale); | ||||
| void osViSetYScale(float scale); | ||||
| PTR(void) osViGetNextFramebuffer(); | ||||
|  |  | |||
|  | @ -480,6 +480,14 @@ extern "C" void osViRepeatLine(uint8_t active) { | |||
|     } | ||||
| } | ||||
| 
 | ||||
| extern "C" u32 osViGetCurrentLine() { | ||||
|     return IO_READ(VI_V_CURRENT_LINE_REG); | ||||
| } | ||||
| 
 | ||||
| extern "C" u32 osViGetCurrentField() { | ||||
|     return IO_READ(VI_V_CURRENT_LINE_REG) & 1; | ||||
| } | ||||
| 
 | ||||
| extern "C" void osViSetXScale(float scale) { | ||||
|     if (scale != 1.0f) { | ||||
|         assert(false); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 dcvz
						dcvz