mirror of
				https://github.com/MarioSpore/Grinch-AP.git
				synced 2025-10-21 20:21:32 -06:00 
			
		
		
		
	
		
			
	
	
		
			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) |