LttPClient: add snes write command
This commit is contained in:
		
							parent
							
								
									10837e75b2
								
							
						
					
					
						commit
						e4838f6d2b
					
				| 
						 | 
				
			
			@ -479,6 +479,7 @@ async def process_server_cmd(ctx: CommonContext, args: dict):
 | 
			
		|||
 | 
			
		||||
    elif cmd == "Bounced":
 | 
			
		||||
        tags = args.get("tags", [])
 | 
			
		||||
        # we can skip checking "DeathLink" in ctx.tags, as otherwise we wouldn't have been send this
 | 
			
		||||
        if "DeathLink" in tags and ctx.last_death_link != args["data"]["time"]:
 | 
			
		||||
            ctx.on_deathlink(args["data"])
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -80,6 +80,18 @@ class LttPCommandProcessor(ClientCommandProcessor):
 | 
			
		|||
        else:
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
    def _cmd_snes_write(self, address, data):
 | 
			
		||||
        """Write the specified byte (base10) to the SNES' memory address (base16)."""
 | 
			
		||||
        if self.ctx.snes_state != SNESState.SNES_ATTACHED:
 | 
			
		||||
            self.output("No attached SNES Device.")
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
        snes_buffered_write(self.ctx, int(address, 16), bytes([int(data)]))
 | 
			
		||||
        asyncio.create_task(snes_flush_writes(self.ctx))
 | 
			
		||||
        self.output("Data Sent")
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Context(CommonContext):
 | 
			
		||||
    command_processor = LttPCommandProcessor
 | 
			
		||||
    game = "A Link to the Past"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue