MultiClient fix for shop sram move
This commit is contained in:
2
Main.py
2
Main.py
@@ -31,7 +31,7 @@ from Utils import output_path, parse_player_names
|
|||||||
from source.item.FillUtil import create_item_pool_config, massage_item_pool, district_item_pool_config
|
from source.item.FillUtil import create_item_pool_config, massage_item_pool, district_item_pool_config
|
||||||
from source.tools.BPS import create_bps_from_data
|
from source.tools.BPS import create_bps_from_data
|
||||||
|
|
||||||
__version__ = '1.0.2.2-v'
|
__version__ = '1.0.2.3-v'
|
||||||
|
|
||||||
from source.classes.BabelFish import BabelFish
|
from source.classes.BabelFish import BabelFish
|
||||||
|
|
||||||
|
|||||||
@@ -90,9 +90,11 @@ INGAME_MODES = {0x07, 0x09, 0x0b}
|
|||||||
SAVEDATA_START = WRAM_START + 0xF000
|
SAVEDATA_START = WRAM_START + 0xF000
|
||||||
SAVEDATA_SIZE = 0x500
|
SAVEDATA_SIZE = 0x500
|
||||||
|
|
||||||
POT_ITEMS_SRAM_START = WRAM_START + 0x016018
|
POT_ITEMS_SRAM_START = WRAM_START + 0x016018 # 2 bytes per room
|
||||||
SPRITE_ITEMS_SRAM_START = WRAM_START + 0x016268
|
SPRITE_ITEMS_SRAM_START = WRAM_START + 0x016268 # 2 bytes per room
|
||||||
|
SHOP_SRAM_START = WRAM_START + 0x0164B8 # 2 bytes?
|
||||||
ITEM_SRAM_SIZE = 0x250
|
ITEM_SRAM_SIZE = 0x250
|
||||||
|
SHOP_SRAM_LEN = 0x29 # 41 tracked items
|
||||||
|
|
||||||
RECV_PROGRESS_ADDR = SAVEDATA_START + 0x4D0 # 2 bytes
|
RECV_PROGRESS_ADDR = SAVEDATA_START + 0x4D0 # 2 bytes
|
||||||
RECV_ITEM_ADDR = SAVEDATA_START + 0x4D2 # 1 byte
|
RECV_ITEM_ADDR = SAVEDATA_START + 0x4D2 # 1 byte
|
||||||
@@ -103,11 +105,9 @@ SCOUT_LOCATION_ADDR = SAVEDATA_START + 0x4D7 # 1 byte
|
|||||||
SCOUTREPLY_LOCATION_ADDR = SAVEDATA_START + 0x4D8 # 1 byte
|
SCOUTREPLY_LOCATION_ADDR = SAVEDATA_START + 0x4D8 # 1 byte
|
||||||
SCOUTREPLY_ITEM_ADDR = SAVEDATA_START + 0x4D9 # 1 byte
|
SCOUTREPLY_ITEM_ADDR = SAVEDATA_START + 0x4D9 # 1 byte
|
||||||
SCOUTREPLY_PLAYER_ADDR = SAVEDATA_START + 0x4DA # 1 byte
|
SCOUTREPLY_PLAYER_ADDR = SAVEDATA_START + 0x4DA # 1 byte
|
||||||
SHOP_ADDR = SAVEDATA_START + 0x302 # 2 bytes?
|
|
||||||
DYNAMIC_TOTAL_ADDR = SAVEDATA_START + 0x33E # 2 bytes
|
DYNAMIC_TOTAL_ADDR = SAVEDATA_START + 0x33E # 2 bytes
|
||||||
MODE_FLAGS = SAVEDATA_START + 0x33D # 1 byte
|
MODE_FLAGS = SAVEDATA_START + 0x33D # 1 byte
|
||||||
|
|
||||||
SHOP_SRAM_LEN = 0x29 # 41 tracked items
|
|
||||||
location_shop_order = [Regions.shop_to_location_table.keys()] + [Regions.retro_shops.keys()]
|
location_shop_order = [Regions.shop_to_location_table.keys()] + [Regions.retro_shops.keys()]
|
||||||
location_shop_ids = {0x0112, 0x0110, 0x010F, 0x00FF, 0x011F, 0x0109, 0x0115}
|
location_shop_ids = {0x0112, 0x0110, 0x010F, 0x00FF, 0x011F, 0x0109, 0x0115}
|
||||||
|
|
||||||
@@ -894,7 +894,7 @@ async def track_locations(ctx : Context, roomid, roomdata):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
if ctx.shop_mode or ctx.retro_mode:
|
if ctx.shop_mode or ctx.retro_mode:
|
||||||
misc_data = await snes_read(ctx, SHOP_ADDR, SHOP_SRAM_LEN)
|
misc_data = await snes_read(ctx, SHOP_SRAM_START, SHOP_SRAM_LEN)
|
||||||
for cnt, b in enumerate(misc_data):
|
for cnt, b in enumerate(misc_data):
|
||||||
my_check = Regions.shop_table_by_location_id[0x400000 + cnt]
|
my_check = Regions.shop_table_by_location_id[0x400000 + cnt]
|
||||||
if int(b) > 0 and my_check not in ctx.locations_checked:
|
if int(b) > 0 and my_check not in ctx.locations_checked:
|
||||||
|
|||||||
@@ -157,6 +157,9 @@ Same as above but both small keys and bigs keys of the dungeon are not allowed o
|
|||||||
|
|
||||||
#### Volatile
|
#### Volatile
|
||||||
|
|
||||||
|
* 1.0.2.3
|
||||||
|
* Fix MultiClient for new shop data location in SRAM
|
||||||
|
* Some minor text updates
|
||||||
* 1.0.2.2
|
* 1.0.2.2
|
||||||
* Change to all key pots and enemy key drops: always use the same address
|
* Change to all key pots and enemy key drops: always use the same address
|
||||||
* Don't colorize key pots in mystery is the item is "forced"
|
* Don't colorize key pots in mystery is the item is "forced"
|
||||||
|
|||||||
Reference in New Issue
Block a user