async def METHOD_NAME(self, ctx):
    from SNIClient import snes_buffered_write, snes_flush_writes, snes_read
    rom_name = await snes_read(ctx, SM_ROMNAME_START, ROMNAME_SIZE)
    if rom_name is None or rom_name == bytes([0] * ROMNAME_SIZE) or rom_name[:2] != b"SM" or rom_name[:3] == b"SMW":
        return False
    ctx.game = self.game
    # versions lower than 0.3.0 dont have item handling flag nor remote item support
    romVersion = int(rom_name[2:5].decode('UTF-8'))
    if romVersion < 30:
        ctx.items_handling = 0b001 # full local
    else:
        item_handling = await snes_read(ctx, SM_REMOTE_ITEM_FLAG_ADDR, 1)
        ctx.items_handling = 0b001 if item_handling is None else item_handling[0]
    ctx.rom = rom_name
    death_link = await snes_read(ctx, SM_DEATH_LINK_ACTIVE_ADDR, 1)
    if death_link:
        ctx.allow_collect = bool(death_link[0] & 0b100)
        ctx.death_link_allow_survive = bool(death_link[0] & 0b10)
        await ctx.update_death_link(bool(death_link[0] & 0b1))
    return True