speed up write_bytes
This commit is contained in:
		
							parent
							
								
									770f3c305a
								
							
						
					
					
						commit
						5c2c3041a7
					
				
							
								
								
									
										14
									
								
								Rom.py
								
								
								
								
							
							
						
						
									
										14
									
								
								Rom.py
								
								
								
								
							| 
						 | 
				
			
			@ -83,19 +83,18 @@ class LocalRom(object):
 | 
			
		|||
            self.patch_base_rom(extendedmsu)
 | 
			
		||||
            self.orig_buffer = self.buffer.copy()
 | 
			
		||||
 | 
			
		||||
    def write_byte(self, address, value):
 | 
			
		||||
    def write_byte(self, address: int, value):
 | 
			
		||||
        self.buffer[address] = value
 | 
			
		||||
 | 
			
		||||
    def write_bytes(self, startaddress, values):
 | 
			
		||||
        for i, value in enumerate(values):
 | 
			
		||||
            self.write_byte(startaddress + i, value)
 | 
			
		||||
    def write_bytes(self, startaddress: int, values):
 | 
			
		||||
        self.buffer[startaddress:startaddress + len(values)] = values
 | 
			
		||||
 | 
			
		||||
    def write_to_file(self, file):
 | 
			
		||||
        with open(file, 'wb') as outfile:
 | 
			
		||||
            outfile.write(self.buffer)
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def fromJsonRom(rom, file, rom_size = 0x200000, extendedmsu=False):
 | 
			
		||||
    def fromJsonRom(rom, file, rom_size=0x200000, extendedmsu=False):
 | 
			
		||||
        ret = LocalRom(file, extendedmsu, True, rom.name, rom.hash)
 | 
			
		||||
        ret.buffer.extend(bytearray([0x00]) * (rom_size - len(ret.buffer)))
 | 
			
		||||
        for address, values in rom.patches.items():
 | 
			
		||||
| 
						 | 
				
			
			@ -150,10 +149,11 @@ def write_int32s(rom, startaddress, values):
 | 
			
		|||
    for i, value in enumerate(values):
 | 
			
		||||
        write_int32(rom, startaddress + (i * 4), value)
 | 
			
		||||
 | 
			
		||||
def read_rom(stream):
 | 
			
		||||
 | 
			
		||||
def read_rom(stream) -> bytearray:
 | 
			
		||||
    "Reads rom into bytearray and strips off any smc header"
 | 
			
		||||
    buffer = bytearray(stream.read())
 | 
			
		||||
    if len(buffer)%0x400 == 0x200:
 | 
			
		||||
    if len(buffer) % 0x400 == 0x200:
 | 
			
		||||
        buffer = buffer[0x200:]
 | 
			
		||||
    return buffer
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue