@@ -24,6 +24,7 @@ for base_key, base_val in pairs(base_spec.sync) do
24
24
spec .sync [base_key ] = base_val
25
25
end
26
26
27
+ spec .sync [0x066E ] = {kind = " delta" , deltaMin = 0 } -- keys
27
28
spec .sync [0x066F ] = {kind = " high" , mask = 0xf0 } -- hearts: high nibble is heart containers-1, low nibble is number of filled hearts-1
28
29
29
30
-- ow map open/get data is between 0x067f and 0x6fe (top left to bottom right)
40
41
-- dungeon map data is between 0x6ff and 0x7fe (top left to bottom right, all
41
42
-- the dungeons are in a single 2d array with each other)
42
43
-- each tile has the following attributes that could be synced:
43
- -- 0x80 some enemies killed in room
44
- -- 0x40 all enemies killed in room
45
- -- 0x20 room visited (shows up on map)
46
- -- 0x10 item collected
47
- -- 0x08 top key door unlocked
48
- -- 0x04 bottom key door unlocked
49
- -- 0x02 left key door unlocked
50
- -- 0x01 right key door unlocked
44
+ -- 0x80 some enemies killed in room
45
+ -- 0x40 all enemies killed in room
46
+ -- 0x20 room visited (shows up on map)
47
+ -- 0x10 item collected
48
+ -- 0x08 top key door unlocked
49
+ -- 0x04 bottom key door unlocked
50
+ -- 0x02 left key door unlocked
51
+ -- 0x01 right key door unlocked
52
+ -- Note that for the enemy kill info, this seems to be used as a cache for the
53
+ -- 6 room memory, as well as boss kill information. If you kill everything in
54
+ -- a room, the next time you visit that room without it being in the memory, it
55
+ -- will erase the bits unless the room has a boss in it, in which case it will
56
+ -- leave them alone and keep the boss killed.
51
57
for i = 0x06ff , 0x07fe do
52
- spec .sync [i ] = {kind = " bitOr" , mask = 0x3f } -- all but enemy kills? Play around with different masks maybe .
58
+ spec .sync [i ] = {kind = " bitOr" } -- including enemy kill data allows boss kills. Doesn't affect normal rooms .
53
59
end
54
60
55
61
return spec
0 commit comments