mirror of
				https://github.com/MarioSpore/Grinch-AP.git
				synced 2025-10-21 20:21:32 -06:00 
			
		
		
		
	
		
			
	
	
		
			65 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			65 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from ..assembler import ASM | ||
|  | 
 | ||
|  | 
 | ||
|  | def oracleMode(rom): | ||
|  |     # Reduce iframes | ||
|  |     rom.patch(0x03, 0x2DB2, ASM("ld a, $50"), ASM("ld a, $20")) | ||
|  | 
 | ||
|  |     # Make bomb explosions damage you. | ||
|  |     rom.patch(0x03, 0x2618, ASM("""
 | ||
|  |         ld   hl, $C440 | ||
|  |         add  hl, bc | ||
|  |         ld   a, [hl] | ||
|  |         and  a | ||
|  |         jr   nz, $05 | ||
|  |     """), ASM(""" | ||
|  |         call $6625 | ||
|  |     """), fill_nop=True)
 | ||
|  |     # Reduce bomb blast push back on link | ||
|  |     rom.patch(0x03, 0x2643, ASM("sla [hl]"), ASM("sra [hl]"), fill_nop=True) | ||
|  |     rom.patch(0x03, 0x2648, ASM("sla [hl]"), ASM("sra [hl]"), fill_nop=True) | ||
|  | 
 | ||
|  |     # Never spawn a piece of power or acorn | ||
|  |     rom.patch(0x03, 0x1608, ASM("jr nz, $05"), ASM("jr $05")) | ||
|  |     rom.patch(0x03, 0x1642, ASM("jr nz, $04"), ASM("jr $04")) | ||
|  | 
 | ||
|  |     # Let hearts only recover half a container instead of a full one. | ||
|  |     rom.patch(0x03, 0x24B7, ASM("ld a, $08"), ASM("ld a, $04")) | ||
|  |     # Don't randomly drop fairies from enemies, drop a rupee instead | ||
|  |     rom.patch(0x03, 0x15C7, "2E2D382F2E2D3837", "2E2D382E2E2D3837") | ||
|  | 
 | ||
|  |     # Make dropping in water without flippers damage you. | ||
|  |     rom.patch(0x02, 0x3722, ASM("ldh a, [$AF]"), ASM("ld a, $06")) | ||
|  | 
 | ||
|  | 
 | ||
|  | def heroMode(rom): | ||
|  |     # Don't randomly drop fairies and hearts from enemies, drop a rupee instead | ||
|  |     rom.patch(0x03, 0x159D, | ||
|  |                 "2E2E2D2D372DFFFF2F37382E2F2F", | ||
|  |                 "2E2EFFFF37FFFFFFFF37382EFFFF") | ||
|  |     rom.patch(0x03, 0x15C7, | ||
|  |               "2E2D382F2E2D3837", | ||
|  |               "2E2E382E2E2E3837") | ||
|  |     rom.patch(0x00, 0x168F, ASM("ld a, $2D"), "", fill_nop=True) | ||
|  |     rom.patch(0x02, 0x0CDB, ASM("ld a, $2D"), "", fill_nop=True) | ||
|  |     # Double damage | ||
|  |     rom.patch(0x03, 0x2DAB, | ||
|  |               ASM("ld a, [$DB94]\nadd a, e\nld [$DB94], a"), | ||
|  |               ASM("ld hl, $DB94\nld a, [hl]\nadd a, e\nadd a, e\nld [hl], a")) | ||
|  |     rom.patch(0x02, 0x11B2, ASM("add a, $04"), ASM("add a, $08")) | ||
|  |     rom.patch(0x02, 0x127E, ASM("add a, $04"), ASM("add a, $08")) | ||
|  |     rom.patch(0x02, 0x291C, ASM("add a, $04"), ASM("add a, $08")) | ||
|  |     rom.patch(0x02, 0x362B, ASM("add a, $04"), ASM("add a, $08")) | ||
|  |     rom.patch(0x06, 0x041C, ASM("ld a, $02"), ASM("ld a, $04")) | ||
|  |     rom.patch(0x15, 0x09B8, ASM("add a, $08"), ASM("add a, $10")) | ||
|  |     rom.patch(0x15, 0x32FD, ASM("ld a, $08"), ASM("ld a, $10")) | ||
|  |     rom.patch(0x18, 0x370E, ASM("ld a, $08"), ASM("ld a, $10")) | ||
|  |     rom.patch(0x07, 0x3103, ASM("ld a, $08"), ASM("ld a, $10")) | ||
|  |     rom.patch(0x06, 0x1166, ASM("ld a, $08"), ASM("ld a, $10")) | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | def oneHitKO(rom): | ||
|  |     rom.patch(0x02, 0x238C, ASM("ld [$DB94], a"), "", fill_nop=True) |