mirror of
				https://github.com/Ultra-NX/UltraNX.git
				synced 2025-10-30 18:59:57 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			107 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # Kirby and the Forgotten Land 1.1.0
 | |
| # BID: A6CE40DC3AEDB1BE
 | |
| # Thanks to Hazerou for finding interval offsets
 | |
| 
 | |
| MASTER_WRITE:
 | |
|   # Remove double buffer
 | |
|   ## REF: 08 07 40 B9 49 00 80 52
 | |
|   -
 | |
|     type: asm_a64
 | |
|     main_offset: 0x747C04
 | |
|     instructions: [
 | |
|       [mov, w9, 3]
 | |
|     ]
 | |
|   # Fix helper functions to not corrupt stack
 | |
|   ## REF: 42 00 80 52 BF FF 30 A9
 | |
|   -
 | |
|     type: asm_a64
 | |
|     main_offset: 0x747CE0
 | |
|     instructions: [
 | |
|       [mov, w2, 3]
 | |
|     ]
 | |
|   ## REF: 08 65 45 F9 42 00 80 52, first result
 | |
|   -
 | |
|     type: asm_a64
 | |
|     main_offset: 0x75ADFC
 | |
|     instructions: [
 | |
|       [mov, w2, 3]
 | |
|     ]
 | |
|   ## REF: 09 C0 9D 52 09 01 A0 72 E1 03 00 91 F6 03 00 91, beginning of function
 | |
|   -
 | |
|     type: asm_a64
 | |
|     main_offset: 0x676AC8
 | |
|     instructions: [
 | |
|       [sub, sp, sp, 0x50],
 | |
|       [stp, x22, x21, [sp, 0x20]],
 | |
|       [stp, x20, x19, [sp, 0x30]],
 | |
|       [stp, x29, x30, [sp, 0x40]],
 | |
|       [add, x29, sp, 0x40]
 | |
|     ]
 | |
|   ## REF: 00 61 00 91 42 00 80 52
 | |
|   -
 | |
|     type: asm_a64
 | |
|     main_offset: 0x676B1C
 | |
|     instructions: [
 | |
|       [mov, w2, 3]
 | |
|     ]
 | |
|   ## REF: End of function from code above, first ldp x29 x30
 | |
|   -
 | |
|     type: asm_a64
 | |
|     main_offset: 0x676B40
 | |
|     instructions: [
 | |
|       [ldp, x29, x30, [sp, 0x40]],
 | |
|       [ldp, x20, x19, [sp, 0x30]],
 | |
|       [ldp, x22, x21, [sp, 0x20]],
 | |
|       [add, sp, sp, 0x50]
 | |
|     ]
 | |
|   ## REF: 42 00 80 52 F6 03 00 91
 | |
|   -
 | |
|     type: asm_a64
 | |
|     main_offset: 0x74C280
 | |
|     instructions: [
 | |
|       [mov, w2, 3]
 | |
|     ]
 | |
|   ## REF: 42 00 80 52 16 69 69 F8, second result
 | |
|   -
 | |
|     type: asm_a64
 | |
|     main_offset: 0x75AE68
 | |
|     instructions: [
 | |
|       [mov, w2, 3]
 | |
|     ]
 | |
|   ## REF: 42 00 80 52 08 05 40 F9
 | |
|   -
 | |
|     type: asm_a64
 | |
|     main_offset: 0x7C2E64
 | |
|     instructions: [
 | |
|       [mov, w2, 3]
 | |
|     ]
 | |
|   # Block transparency in some 2D elements to avoid issue with flickering at triple buffer
 | |
|   ## REF: 49 91 89 B9 4A 41 48 B9
 | |
|   -
 | |
|     type: asm_a64
 | |
|     main_offset: 0x6A757C
 | |
|     instructions: [
 | |
|       [mov, x9, 0x102],
 | |
|       [ldr, w10, [x10, 0x840]],
 | |
|       [add, x20, x8, 0x820],
 | |
|       [lsl, x12, x10, 3],
 | |
|       [str, x9, [x20]]
 | |
|     ]
 | |
| ALL_FPS:
 | |
|   # Interval (Setting it to 0 unlocks framerate and sets dynamic game speed)
 | |
|   ## REF: 17 6C 90 52 57 01 A0 72 08 7C 01 A9, first STR above it
 | |
|   -
 | |
|     type: write
 | |
|     address: [MAIN, 0xA76728, 0x50]
 | |
|     address_unsafe: true
 | |
|     value_type: int32
 | |
|     value: 0
 | |
|   # Dynamic Resolution GPU Frametiming Max / Min (Max = 1.95 * (30/FPS), Min = 1.7 * (30/FPS))
 | |
|   ## REF: 88 F2 80 B9 F3 03 00 AA 1F 05 00 71, last result, first STR above it
 | |
|   -
 | |
|     type: evaluate_write
 | |
|     address: [MAIN, 0xA767B0, 0x140, 0x1B0, 0x20, 0x34]
 | |
|     address_unsafe: true
 | |
|     value_type: float
 | |
|     value: ["(30 / FPS_TARGET) * 1.95", "(30 / FPS_TARGET) * 1.7"]
 |