43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								from ..assembler import ASM
							 | 
						||
| 
								 | 
							
								from ..utils import formatText
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def upgradeMadBatter(rom):
							 | 
						||
| 
								 | 
							
								    # Normally the madbatter won't do anything if you have full capacity. Remove that check.
							 | 
						||
| 
								 | 
							
								    rom.patch(0x18, 0x0F05, 0x0F1D, "", fill_nop=True)
							 | 
						||
| 
								 | 
							
								    # Remove the code that finds which upgrade to apply,
							 | 
						||
| 
								 | 
							
								    rom.patch(0x18, 0x0F9E, 0x0FC4, "", fill_nop=True)
							 | 
						||
| 
								 | 
							
								    rom.patch(0x18, 0x0FD2, 0x0FD8, "", fill_nop=True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Finally, at the last step, give the item and the item message.
							 | 
						||
| 
								 | 
							
								    rom.patch(0x18, 0x1016, 0x101B, "", fill_nop=True)
							 | 
						||
| 
								 | 
							
								    rom.patch(0x18, 0x101E, 0x1051, ASM("""
							 | 
						||
| 
								 | 
							
								        ; Mad batter rooms are E0,E1 and E2, load the item type from a table in the rom
							 | 
						||
| 
								 | 
							
								        ; which only has 3 entries, and store it where bank 3E wants it.
							 | 
						||
| 
								 | 
							
								        ldh a, [$F6] ; current room
							 | 
						||
| 
								 | 
							
								        and $0F
							 | 
						||
| 
								 | 
							
								        ld  d, $00
							 | 
						||
| 
								 | 
							
								        ld  e, a
							 | 
						||
| 
								 | 
							
								        ld  hl, $4F90
							 | 
						||
| 
								 | 
							
								        add hl, de
							 | 
						||
| 
								 | 
							
								        ld  a, [hl]
							 | 
						||
| 
								 | 
							
								        ldh [$F1], a
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        ; Give item
							 | 
						||
| 
								 | 
							
								        ld  a, $06 ; giveItemMultiworld
							 | 
						||
| 
								 | 
							
								        rst 8
							 | 
						||
| 
								 | 
							
								        ; Message
							 | 
						||
| 
								 | 
							
								        ld  a, $0A ; showMessageMultiworld
							 | 
						||
| 
								 | 
							
								        rst 8
							 | 
						||
| 
								 | 
							
								        ; Force the dialog at the bottom
							 | 
						||
| 
								 | 
							
								        ld  a, [$C19F]
							 | 
						||
| 
								 | 
							
								        or  $80
							 | 
						||
| 
								 | 
							
								        ld  [$C19F], a
							 | 
						||
| 
								 | 
							
								    """), fill_nop=True)
							 | 
						||
| 
								 | 
							
								    # Setup the default items
							 | 
						||
| 
								 | 
							
								    rom.patch(0x18, 0x0F90, "406060", "848586")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    rom.texts[0xE2] = formatText("You can now carry more Magic Powder!")
							 | 
						||
| 
								 | 
							
								    rom.texts[0xE3] = formatText("You can now carry more Bombs!")
							 | 
						||
| 
								 | 
							
								    rom.texts[0xE4] = formatText("You can now carry more Arrows!")
							 |