mirror of
https://github.com/notwa/mm
synced 2024-11-05 02:49:02 -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),
|
||||
z_cursor_actor = AG(0x1DF8, 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), {
|
||||
item_in_hand = AA(0x148, 1),
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
versions = {
|
||||
versions = { -- sha1 hashes of .z64s
|
||||
['D6133ACE5AFAA0882CF214CF88DABA39E266C078'] = "US10",
|
||||
['2F0744F2422B0421697A74B305CB1EF27041AB11'] = "USDE",
|
||||
['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