Oop; 404 errors on those.
I'm trying to think of how to do this now. So this is my rubber ducky post.
Loading a new map. After initial map tiles have been loaded into tileset_data.
First, check game_flags for open chests. Get cur_map, run the chest ID through the second byte of that map's lut_SMTilesetProp table. If it matches: Check the first byte to make sure its a chest? No: Check for chests, then check the second byte to make sure its the right ID? Sounds better. Once found... Take the counter then--out of 128 tiles, say it finds an open chest at tile 99, so 99 is the index or ID... (I get the two terms confused sometimes... all the time.)
Then, check at tileset_data+$100 for the upper left tile in slot 99. It should be 2A. ORA with $70 or whatever, change it to 7A (currently the / tile in each tileset). Shift over, 2B becomes 7B. And done! When the screen draws the map based on that, it should show the open chest...?
Now, when first opening:
LDA facing ; use the direction the player is facing
JSR GetSMTargetCoords ; as the direction to get SM target coords
JSR GetSMTileProperties ; get the properties of the tile at the given coords
Y = chest index/id now, so just do the upper tile swapping.
What next? Will the game automatically draw it, or does have to re-enter the map? Guess we'll see...
Hopefully that will work when I go to actually code it in.
Meanwhile: I changed the tile properties, and towns are working OK so far. Got a spook in Onrac where everyone was saying "Nothing here." but it might have been a wonky save state load, I'll go back and check and make sure the submarine works. Every other map is bonkers nuts, teleporting when you walk into a wall.
I only got 2 more of the original map's tileset data sorted out, 5 to go, and then changing almost every byte to fit my new system...