64 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								from ..assembler import ASM
							 | 
						||
| 
								 | 
							
								from ..roomEditor import RoomEditor
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def patchSuperWeapons(rom):
							 | 
						||
| 
								 | 
							
								    # Feather jump height
							 | 
						||
| 
								 | 
							
								    rom.patch(0x00, 0x1508, ASM("ld a, $20"), ASM("ld a, $2C"))
							 | 
						||
| 
								 | 
							
								    # Boots charge speed
							 | 
						||
| 
								 | 
							
								    rom.patch(0x00, 0x1731, ASM("cp $20"), ASM("cp $01"))
							 | 
						||
| 
								 | 
							
								    # Power bracelet pickup speed
							 | 
						||
| 
								 | 
							
								    rom.patch(0x00, 0x2121, ASM("ld e, $08"), ASM("ld e, $01"))
							 | 
						||
| 
								 | 
							
								    # Throwing speed (of pickups and bombs)
							 | 
						||
| 
								 | 
							
								    rom.patch(0x14, 0x1313, "30D0000018E80000", "60A0000040C00000")
							 | 
						||
| 
								 | 
							
								    rom.patch(0x14, 0x1323, "0000D0300000E818", "0000A0600000C040")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Allow as many bombs to be placed as you want!
							 | 
						||
| 
								 | 
							
								    rom.patch(0x00, 0x135F, ASM("ret nc"), "", fill_nop=True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Maximum amount of arrows in the air
							 | 
						||
| 
								 | 
							
								    rom.patch(0x00, 0x13C5, ASM("cp $02"), ASM("cp $05"))
							 | 
						||
| 
								 | 
							
								    # Delay between arrow shots
							 | 
						||
| 
								 | 
							
								    rom.patch(0x00, 0x13C9, ASM("ld a, $10"), ASM("ld a, $01"))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Maximum amount of firerod fires
							 | 
						||
| 
								 | 
							
								    rom.patch(0x00, 0x12E4, ASM("cp $02"), ASM("cp $05"))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Projectile speed (arrows, firerod)
							 | 
						||
| 
								 | 
							
								    rom.patch(0x00, 0x13AD,
							 | 
						||
| 
								 | 
							
								        "30D0000040C00000" "0000D0300000C040",
							 | 
						||
| 
								 | 
							
								        "60A0000060A00000" "0000A0600000A060")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Hookshot shoot speed
							 | 
						||
| 
								 | 
							
								    rom.patch(0x02, 0x024C,
							 | 
						||
| 
								 | 
							
								        "30D00000" "0000D030",
							 | 
						||
| 
								 | 
							
								        "60A00000" "0000A060")
							 | 
						||
| 
								 | 
							
								    # Hookshot retract speed
							 | 
						||
| 
								 | 
							
								    rom.patch(0x18, 0x3C41, ASM("ld a, $30"), ASM("ld a, $60"))
							 | 
						||
| 
								 | 
							
								    # Hookshot pull speed
							 | 
						||
| 
								 | 
							
								    rom.patch(0x18, 0x3C21, ASM("ld a, $30"), ASM("ld a, $60"))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Super shovel, always price!
							 | 
						||
| 
								 | 
							
								    rom.patch(0x02, 0x0CC6, ASM("jr nz, $57"), "", fill_nop=True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Unlimited boomerangs!
							 | 
						||
| 
								 | 
							
								    rom.patch(0x00, 0x1387, ASM("ret nz"), "", fill_nop=True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Increase shield push power
							 | 
						||
| 
								 | 
							
								    rom.patch(0x03, 0x2FC5, ASM("ld a, $08"), ASM("ld a, $10"))
							 | 
						||
| 
								 | 
							
								    rom.patch(0x03, 0x2FCA, ASM("ld a, $20"), ASM("ld a, $40"))
							 | 
						||
| 
								 | 
							
								    # Decrease link pushback of shield
							 | 
						||
| 
								 | 
							
								    rom.patch(0x03, 0x2FB9, ASM("ld a, $12"), ASM("ld a, $04"))
							 | 
						||
| 
								 | 
							
								    rom.patch(0x03, 0x2F9A, ASM("ld a, $0C"), ASM("ld a, $03"))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Super charge the ocarina
							 | 
						||
| 
								 | 
							
								    rom.patch(0x02, 0x0AD8, ASM("cp $38"), ASM("cp $08"))
							 | 
						||
| 
								 | 
							
								    rom.patch(0x02, 0x0B05, ASM("cp $14"), ASM("cp $04"))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    re = RoomEditor(rom, 0x23D)
							 | 
						||
| 
								 | 
							
								    tiles = re.getTileArray()
							 | 
						||
| 
								 | 
							
								    tiles[11] = 0x0D
							 | 
						||
| 
								 | 
							
								    tiles[12] = 0xA7
							 | 
						||
| 
								 | 
							
								    tiles[22] = 0x98
							 | 
						||
| 
								 | 
							
								    re.buildObjectList(tiles)
							 | 
						||
| 
								 | 
							
								    re.store(rom)
							 |