mirror of
https://github.com/notwa/mm
synced 2024-11-05 02:59:03 -08:00
scene flag counting
This commit is contained in:
parent
cae40acc0f
commit
f1111b025f
3 changed files with 40 additions and 1 deletions
|
@ -232,6 +232,11 @@ return {
|
||||||
bomb_counter = AG(0x1CD4, 1),
|
bomb_counter = AG(0x1CD4, 1),
|
||||||
z_cursor_actor = AG(0x1DF8, 4),
|
z_cursor_actor = AG(0x1DF8, 4),
|
||||||
z_target_actor = AG(0x1DFC, 4),
|
z_target_actor = AG(0x1DFC, 4),
|
||||||
|
current_scene_flags_2 = AG(0x1E58, 4), -- note: I use SRAM ordering here
|
||||||
|
current_scene_flags_3 = AG(0x1E5C, 4),
|
||||||
|
current_scene_flags_1 = AG(0x1E68, 4),
|
||||||
|
current_scene_flags_4 = AG(0x1E6C, 4),
|
||||||
|
current_scene_flags_5 = AG(0x1E74, 4),
|
||||||
|
|
||||||
link_actor = merge(Actor(AA(0,0).addr), {
|
link_actor = merge(Actor(AA(0,0).addr), {
|
||||||
item_in_hand = AA(0x148, 1),
|
item_in_hand = AA(0x148, 1),
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
versions = {
|
versions = { -- sha1 hashes of .z64s
|
||||||
['D6133ACE5AFAA0882CF214CF88DABA39E266C078'] = "US10",
|
['D6133ACE5AFAA0882CF214CF88DABA39E266C078'] = "US10",
|
||||||
['2F0744F2422B0421697A74B305CB1EF27041AB11'] = "USDE",
|
['2F0744F2422B0421697A74B305CB1EF27041AB11'] = "USDE",
|
||||||
['9743AA026E9269B339EB0E3044CD5830A440C1FD'] = "USGC",
|
['9743AA026E9269B339EB0E3044CD5830A440C1FD'] = "USGC",
|
||||||
|
|
34
Lua/count flags.lua
Executable file
34
Lua/count flags.lua
Executable file
|
@ -0,0 +1,34 @@
|
||||||
|
require "addrs"
|
||||||
|
|
||||||
|
-- precalculate hamming weights of bytes
|
||||||
|
hamming_weight = {}
|
||||||
|
for i = 0, 255 do
|
||||||
|
local w = 0
|
||||||
|
for b = 0, 7 do
|
||||||
|
w = w + bit.band(bit.rshift(i, b), 1)
|
||||||
|
end
|
||||||
|
hamming_weight[i] = w
|
||||||
|
end
|
||||||
|
|
||||||
|
function hamming_of(addr, size)
|
||||||
|
weight = 0
|
||||||
|
bytes = mainmemory.readbyterange(addr, size)
|
||||||
|
for k,v in pairs(bytes) do
|
||||||
|
if v ~= 0 then
|
||||||
|
weight = weight + hamming_weight[tonumber(v, 16)]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return weight
|
||||||
|
end
|
||||||
|
|
||||||
|
print("###")
|
||||||
|
local current = 0
|
||||||
|
for i = 1, 5 do
|
||||||
|
local addr = addrs['current_scene_flags_'..tostring(i)].addr
|
||||||
|
current = current + hamming_of(addr, 4)
|
||||||
|
end
|
||||||
|
local ingame = hamming_of(addrs.scene_flags_ingame.addr, 0x960)
|
||||||
|
local save = hamming_of(addrs.scene_flags_save.addr, 0x960)
|
||||||
|
print("current", current)
|
||||||
|
print("ingame ", ingame)
|
||||||
|
print("save ", save)
|
Loading…
Reference in a new issue