 81a239325d
			
		
	
	81a239325d
	
	
	
		
			
			Adds Link's Awakening: DX. Fully imports and forks LADXR, with permission - https://github.com/daid/LADXR
		
			
				
	
	
		
			140 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from ..assembler import ASM
 | |
| import os
 | |
| 
 | |
| 
 | |
| def updateEndScreen(rom):
 | |
|     # Call our custom data loader in bank 3F
 | |
|     rom.patch(0x00, 0x391D, ASM("""
 | |
|         ld   a, $20
 | |
|         ld   [$2100], a
 | |
|         jp   $7de6
 | |
|     """), ASM("""
 | |
|         ld   a, $3F
 | |
|         ld   [$2100], a
 | |
|         jp   $4200
 | |
|     """))
 | |
|     rom.patch(0x17, 0x2FCE, "B170", "D070") # Ignore the final tile data load
 | |
|     
 | |
|     rom.patch(0x3F, 0x0200, None, ASM("""
 | |
|     ; Disable LCD
 | |
|     xor a
 | |
|     ldh  [$40], a
 | |
|     
 | |
|     ld  hl, $8000
 | |
|     ld  de, $5000
 | |
| copyLoop:
 | |
|     ld  a, [de]
 | |
|     inc de
 | |
|     ldi [hl], a
 | |
|     bit 4, h
 | |
|     jr  z, copyLoop
 | |
| 
 | |
|     ld  a, $01
 | |
|     ldh [$4F], a
 | |
| 
 | |
|     ld  hl, $8000
 | |
|     ld  de, $6000
 | |
| copyLoop2:
 | |
|     ld  a, [de]
 | |
|     inc de
 | |
|     ldi [hl], a
 | |
|     bit 4, h
 | |
|     jr  z, copyLoop2
 | |
| 
 | |
|     ld  hl, $9800
 | |
|     ld  de, $0190
 | |
| clearLoop1:
 | |
|     xor a
 | |
|     ldi [hl], a
 | |
|     dec de
 | |
|     ld  a, d
 | |
|     or  e
 | |
|     jr  nz, clearLoop1
 | |
| 
 | |
|     ld  de, $0190
 | |
| clearLoop2:
 | |
|     ld  a, $08
 | |
|     ldi [hl], a
 | |
|     dec de
 | |
|     ld  a, d
 | |
|     or  e
 | |
|     jr  nz, clearLoop2
 | |
| 
 | |
|     xor  a
 | |
|     ldh  [$4F], a
 | |
| 
 | |
| 
 | |
|     ld  hl, $9800
 | |
|     ld  de, $000C
 | |
|     xor  a
 | |
| loadLoop1:
 | |
|     ldi  [hl], a
 | |
|     ld   b, a
 | |
|     ld   a, l
 | |
|     and  $1F
 | |
|     cp   $14
 | |
|     jr   c, .noLineSkip
 | |
|     add  hl, de
 | |
| .noLineSkip:
 | |
|     ld   a, b
 | |
|     inc  a
 | |
|     jr   nz, loadLoop1
 | |
| 
 | |
| loadLoop2:
 | |
|     ldi  [hl], a
 | |
|     ld   b, a
 | |
|     ld   a, l
 | |
|     and  $1F
 | |
|     cp   $14
 | |
|     jr   c, .noLineSkip
 | |
|     add  hl, de
 | |
| .noLineSkip:
 | |
|     ld   a, b
 | |
|     inc  a
 | |
|     jr   nz, loadLoop2
 | |
| 
 | |
|     ; Load palette
 | |
|     ld   hl, $DC10
 | |
|     ld   a, $00
 | |
|     ldi  [hl], a
 | |
|     ld   a, $00
 | |
|     ldi  [hl], a
 | |
| 
 | |
|     ld   a, $ad
 | |
|     ldi  [hl], a
 | |
|     ld   a, $35
 | |
|     ldi  [hl], a
 | |
| 
 | |
|     ld   a, $94
 | |
|     ldi  [hl], a
 | |
|     ld   a, $52
 | |
|     ldi  [hl], a
 | |
| 
 | |
|     ld   a, $FF
 | |
|     ldi  [hl], a
 | |
|     ld   a, $7F
 | |
|     ldi  [hl], a
 | |
| 
 | |
|     ld   a, $00
 | |
|     ld   [$DDD3], a
 | |
|     ld   a, $04
 | |
|     ld   [$DDD4], a
 | |
|     ld   a, $81
 | |
|     ld   [$DDD1], a
 | |
| 
 | |
|     ; Enable LCD
 | |
|     ld  a, $91
 | |
|     ldh [$40], a
 | |
|     ld  [$d6fd], a
 | |
|     
 | |
|     xor a
 | |
|     ldh [$96], a
 | |
|     ldh [$97], a
 | |
|     ret
 | |
|     """))
 | |
|     
 | |
|     addr = 0x1000
 | |
|     for c in open(os.path.join(os.path.dirname(__file__), "nyan.bin"), "rb").read():
 | |
|         rom.banks[0x3F][addr] = c
 | |
|         addr += 1
 |