1
0
Fork 0
mirror of https://github.com/notwa/mm synced 2024-11-05 05:39:02 -08:00

more work on OoT

This commit is contained in:
Connor Olding 2015-03-18 17:50:55 -07:00
parent e4a32dd945
commit c8a222883a
4 changed files with 103 additions and 53 deletions

View file

@ -71,7 +71,7 @@ end
local common = { local common = {
exit_value = AL(0x02, 2), exit_value = AL(0x02, 2),
age_modifier = AL(0x04, 4), age_modifier = AL(0x04, 4),
--cutscene_status = AL(0x0A, 2), cutscene_status = AL(0x0A, 2), -- "cutscene number" 0xFFFx
time = AL(0x0C, 2), time = AL(0x0C, 2),
day_night = AL(0x10, 4), day_night = AL(0x10, 4),
--time_speed = AL(0x14, 4), --time_speed = AL(0x14, 4),
@ -80,27 +80,24 @@ local common = {
name = AL(0x24, 8), name = AL(0x24, 8),
max_hearts = AL(0x2E, 2), max_hearts = AL(0x2E, 2),
hearts = AL(0x30, 2), hearts = AL(0x30, 2),
--has_magic = AL(0x38, 1), -- ? has_magic = AL(0x32, 1), -- ?
magic = AL(0x33, 1), magic = AL(0x33, 1),
rupees = AL(0x34, 2), rupees = AL(0x34, 2),
--has_normal_magic = AL(0x40, 1), navi_timer = AL(0x38, 2),
--has_double_magic = AL(0x41, 1),
equip_tunic_boots = AL(0x70, 1), equip_tunic_boots = AL(0x70, 1),
equip_sword_shield = AL(0x71, 1), equip_sword_shield = AL(0x71, 1),
inventory_items = AL(0x74, 24), inventory_items = AL(0x74, 24),
inventory_counts = AL(0x8C, 24), inventory_quantities= AL(0x8C, 24),
--magic_beans_avail = AL(0x9B, 1), --magic_beans_avail = AL(0x9B, 1),
--tunic_boots = AL(0x9C, 1), -- FIXME tunic_boots = AL(0x9C, 1),
--sword_shield = AL(0x9C, 1), -- FIXME sword_shield = AL(0x9D, 1),
deku_upgrades = AL(0xA1, 1), upgrades = AL(0xA1, 3),
wallet_size = AL(0xA2, 1), -- also bullet bag & dive meter in OoT quest_items = AL(0xA4, 4),
quiver_bag = AL(0xA3, 1), -- also strength in OoT
--quest_items = AL(0xBC, 4),
--items_wft = AL(0xC0, 1), --items_wft = AL(0xC0, 1),
--keys_wft = AL(0xCA, 1), --keys_wft = AL(0xCA, 1),
--doubled_hearts = AL(0xD3, 1), -- set to 20 by the game doubled_hearts = AL(0xCF, 1), -- set to 20 by the game
--strange_string = AL(0xDE, 6), --strange_string = AL(0xDE, 6),
--scene_flags_save = AL(0x470, 0x960), scene_flags_save = AL(0xD4, 0xB0C), -- 0x1C each
--slulltula_count_wf = AL(0xEC0, 2), --slulltula_count_wf = AL(0xEC0, 2),
--archery = AL(0xF00, 1), --archery = AL(0xF00, 1),
--disable_c_buttons = AL(0xF4A, 1), -- 8 --disable_c_buttons = AL(0xF4A, 1), -- 8
@ -109,7 +106,7 @@ local common = {
--map_visible = AL(0xF62, 2), --map_visible = AL(0xF62, 2),
inventory = { inventory = {
b_button = AL(0x68, 1), b_button_item = AL(0x68, 1),
c_left_item = AL(0x69, 1), c_left_item = AL(0x69, 1),
c_down_item = AL(0x6A, 1), c_down_item = AL(0x6A, 1),
c_right_item = AL(0x6B, 1), c_right_item = AL(0x6B, 1),
@ -136,25 +133,26 @@ local common = {
hammer = AL(0x83, 1), hammer = AL(0x83, 1),
light_arrows = AL(0x84, 1), light_arrows = AL(0x84, 1),
nayrus_love = AL(0x85, 1), nayrus_love = AL(0x85, 1),
bottle_1 = AL(0x85, 1), bottle_1 = AL(0x86, 1),
bottle_2 = AL(0x86, 1), bottle_2 = AL(0x87, 1),
bottle_3 = AL(0x87, 1), bottle_3 = AL(0x88, 1),
bottle_4 = AL(0x88, 1), bottle_4 = AL(0x89, 1),
trade_1 = AL(0x89, 1), trade_1 = AL(0x8A, 1),
trade_2 = AL(0x8A, 1), trade_2 = AL(0x8B, 1),
}, },
quantities = { quantities = {
arrows = AL(0xA1, 1), -- FIXME sticks = AL(0x8C, 1),
bombs = AL(0xA6, 1), nuts = AL(0x8D, 1),
bombchu = AL(0xA7, 1), bombs = AL(0x8E, 1),
sticks = AL(0xA8, 1), arrows = AL(0x8F, 1),
nuts = AL(0xA9, 1), seeds = AL(0x92, 1),
beans = AL(0xAA, 1), bombchu = AL(0x94, 1),
kegs = AL(0xAC, 1), beans = AL(0x9A, 1),
}, },
camera_target = AG(0x270, 4), camera_target = AG(0x270, 4),
actor_count = AG(0x1C2C, 1), actor_count = AG(0x1C2C, 1),
-- TODO: use array here instead of individual keys
actor_count_0 = AG(0x1C30, 4), actor_count_0 = AG(0x1C30, 4),
actor_first_0 = AG(0x1C34, 4), actor_first_0 = AG(0x1C34, 4),
actor_count_1 = AG(0x1C38, 4), actor_count_1 = AG(0x1C38, 4),
@ -184,5 +182,5 @@ local common = {
} }
return merge(common, { return merge(common, {
target_style = AL(0x140C, 1),
}) })

View file

@ -33,10 +33,10 @@ function Actor(addr)
damage_table = AA(0xA0, 4), damage_table = AA(0xA0, 4),
hp = AA(0xB7, 1), hp = AA(0xB7, 1),
angle = AA(0xBA, 2), angle = AA(0xBA, 2),
foot_left_x = AA(0xD4, 'f'), foot_left_x = AA(0xD4, 'f'), -- tested on Link, may be other things
foot_left_y = AA(0xD8, 'f'), foot_left_y = AA(0xD8, 'f'),
foot_left_z = AA(0xDC, 'f'), foot_left_z = AA(0xDC, 'f'),
foot_right_x = AA(0xE0, 'f'), foot_right_x = AA(0xE0, 'f'), -- tested on Link, may be other things
foot_right_y = AA(0xE4, 'f'), foot_right_y = AA(0xE4, 'f'),
foot_right_z = AA(0xE8, 'f'), foot_right_z = AA(0xE8, 'f'),
camera_rel_x = AA(0xEC, 'f'), camera_rel_x = AA(0xEC, 'f'),
@ -78,7 +78,7 @@ return {
sword_shield = AL(0x6D, 1), sword_shield = AL(0x6D, 1),
inventory_items = AL(0x70, 24), inventory_items = AL(0x70, 24),
inventory_masks = AL(0x88, 24), inventory_masks = AL(0x88, 24),
inventory_counts = AL(0xA0, 24), inventory_quantities= AL(0xA0, 24),
wallet_size = AL(0xBA, 1), -- 0, 16, 32, unused 48 wallet_size = AL(0xBA, 1), -- 0, 16, 32, unused 48
quiver_bag = AL(0xBB, 1), quiver_bag = AL(0xBB, 1),
quest_items = AL(0xBC, 4), quest_items = AL(0xBC, 4),
@ -128,7 +128,7 @@ return {
bombers_code_5 = AL(0xFFF, 1), bombers_code_5 = AL(0xFFF, 1),
inventory = { inventory = {
b_button = AL(0x4C, 1), b_button_item = AL(0x4C, 1),
c_left_item = AL(0x4D, 1), c_left_item = AL(0x4D, 1),
c_down_item = AL(0x4E, 1), c_down_item = AL(0x4E, 1),
c_right_item = AL(0x4F, 1), c_right_item = AL(0x4F, 1),

View file

@ -21,10 +21,10 @@ return {
[0x012]="Dodongo", [0x012]="Dodongo",
[0x013]="Keese", [0x013]="Keese",
[0x014]="Epona", [0x014]="Epona",
[0x015]="Collectable Field & Dungeon Items", [0x015]="Collectable / Dungeon Items",
[0x016]="Small Orange Flame (Fades Away)", [0x016]="Small Orange Flame (Fades Away)",
[0x017]=unset, [0x017]=unset,
[0x018]="Navi & Healing Fairy", [0x018]="Navi / Fairy",
[0x019]="Cucco", [0x019]="Cucco",
[0x01A]=unset, [0x01A]=unset,
[0x01B]="Tektite", [0x01B]="Tektite",
@ -37,7 +37,7 @@ return {
[0x022]=unset, [0x022]=unset,
[0x023]="Room Transition Plane", [0x023]="Room Transition Plane",
[0x024]="???", [0x024]="???",
[0x025]="Lizalfos & Dinalfos", [0x025]="Lizalfos / Dinalfos",
[0x026]="Flagpole", [0x026]="Flagpole",
[0x027]="King Dodongo", [0x027]="King Dodongo",
[0x028]="Gohma", [0x028]="Gohma",
@ -57,7 +57,7 @@ return {
[0x036]=unset, [0x036]=unset,
[0x037]="Skulltula", [0x037]="Skulltula",
[0x038]="Torch Slug", [0x038]="Torch Slug",
[0x039]="Directional Signposts", [0x039]="Directional Sign",
[0x03A]="Stinger (Land)", [0x03A]="Stinger (Land)",
[0x03B]="Environmental Sound Effects", [0x03B]="Environmental Sound Effects",
[0x03C]="Generic Horse", [0x03C]="Generic Horse",
@ -81,7 +81,7 @@ return {
[0x04E]="???", [0x04E]="???",
[0x04F]="Kokiri Girl (Early)", [0x04F]="Kokiri Girl (Early)",
[0x050]="Floating Square Platform (Deku Tree)", [0x050]="Floating Square Platform (Deku Tree)",
[0x051]="Spiked Log & Dropdown Ladder", [0x051]="Spiked Log / Dropdown Ladder",
[0x052]="Phantom Ganon", [0x052]="Phantom Ganon",
[0x053]=unset, [0x053]=unset,
[0x054]="Armos", [0x054]="Armos",
@ -93,9 +93,9 @@ return {
[0x05A]="Jabu-Jabu", [0x05A]="Jabu-Jabu",
[0x05B]="Zelda's Horse", [0x05B]="Zelda's Horse",
[0x05C]="Bombable Stairs", [0x05C]="Bombable Stairs",
[0x05D]="Blue Warp & Rupee-Shaped Prism", [0x05D]="Blue Warp / Rupee-Shaped Prism",
[0x05E]="Torch", [0x05E]="Torch",
[0x05F]="Heart Container & Heart Piece???", [0x05F]="Heart Container / Heart Piece???",
[0x060]="Mad Scrub", [0x060]="Mad Scrub",
[0x061]="Rotating Ring", [0x061]="Rotating Ring",
[0x062]="Statue Eye Targets", [0x062]="Statue Eye Targets",
@ -110,7 +110,7 @@ return {
[0x06B]="Flying Floor Tile", [0x06B]="Flying Floor Tile",
[0x06C]="Master Sword", [0x06C]="Master Sword",
[0x06D]="Phantom Ganon's Lightning", [0x06D]="Phantom Ganon's Lightning",
[0x06E]="Blank Warp Pad & Ocarina Pedestal", [0x06E]="Blank Warp Pad / Ocarina Pedestal",
[0x06F]="Goron Prison Bars", [0x06F]="Goron Prison Bars",
[0x070]="Door of Time Collision Model", [0x070]="Door of Time Collision Model",
[0x071]="???", [0x071]="???",
@ -119,7 +119,7 @@ return {
[0x074]=unset, [0x074]=unset,
[0x075]=unset, [0x075]=unset,
[0x076]=unset, [0x076]=unset,
[0x077]="Grass & Trees", [0x077]="Grass / Trees",
[0x078]=unset, [0x078]=unset,
[0x079]=unset, [0x079]=unset,
[0x07A]=unset, [0x07A]=unset,
@ -144,7 +144,7 @@ return {
[0x08D]="???", [0x08D]="???",
[0x08E]="Floormaster", [0x08E]="Floormaster",
[0x08F]="Hylian Soldier (Castle Hedge Maze)", [0x08F]="Hylian Soldier (Castle Hedge Maze)",
[0x090]="Redead & Gibdo", [0x090]="Redead / Gibdo",
[0x091]="Poe Sisters", [0x091]="Poe Sisters",
[0x092]="Golden Gauntlets Rock", [0x092]="Golden Gauntlets Rock",
[0x093]="???", [0x093]="???",
@ -204,7 +204,7 @@ return {
[0x0C9]="Saria (Cutscenes)", [0x0C9]="Saria (Cutscenes)",
[0x0CA]="Goron (Cutscenes)", [0x0CA]="Goron (Cutscenes)",
[0x0CB]="Ingo", [0x0CB]="Ingo",
[0x0CC]="Kotake & Koume", [0x0CC]="Kotake / Koume",
[0x0CD]="Boulder Blocking Dodongo's Cavern", [0x0CD]="Boulder Blocking Dodongo's Cavern",
[0x0CE]=unset, [0x0CE]=unset,
[0x0CF]="Bombable Wall (Fire Temple)", [0x0CF]="Bombable Wall (Fire Temple)",
@ -274,7 +274,7 @@ return {
[0x10F]="Collectable Quest Items", [0x10F]="Collectable Quest Items",
[0x110]="Small Wooden Crate", [0x110]="Small Wooden Crate",
[0x111]="Pot", [0x111]="Pot",
[0x112]="Invisible Collectable Items", [0x112]="Invisible Collectable",
[0x113]="Iron Knuckle", [0x113]="Iron Knuckle",
[0x114]="Iron Knuckle (Cutscenes)", [0x114]="Iron Knuckle (Cutscenes)",
[0x115]="Skullkid", [0x115]="Skullkid",
@ -293,7 +293,7 @@ return {
[0x122]="Dampé's Ghost", [0x122]="Dampé's Ghost",
[0x123]="Dampé's Relay Objects", [0x123]="Dampé's Relay Objects",
[0x124]="Diving Game Zora", [0x124]="Diving Game Zora",
[0x125]="Grass Clump", [0x125]="Grass",
[0x126]="Bean Planting Spot", [0x126]="Bean Planting Spot",
[0x127]="Bombable Boulder", [0x127]="Bombable Boulder",
[0x128]=unset, [0x128]=unset,
@ -321,7 +321,7 @@ return {
[0x13E]="Bean Seller", [0x13E]="Bean Seller",
[0x13F]="Carpenter Boss's Son (Lost Woods)", [0x13F]="Carpenter Boss's Son (Lost Woods)",
[0x140]="Gate to Ingo's Ranch", [0x140]="Gate to Ingo's Ranch",
[0x141]="Square Sign", [0x141]="Sign",
[0x142]="Hylian Soldier (Hyrule Castle)", [0x142]="Hylian Soldier (Hyrule Castle)",
[0x143]="???", [0x143]="???",
[0x144]="Cucco (Attacking)", [0x144]="Cucco (Attacking)",
@ -334,10 +334,10 @@ return {
[0x14B]="Bombchu Bowling Alley Employee", [0x14B]="Bombchu Bowling Alley Employee",
[0x14C]="???", [0x14C]="???",
[0x14D]="Kaepora Gaebora", [0x14D]="Kaepora Gaebora",
[0x14E]="Silver Gauntlets Boulder", [0x14E]="Rock / Boulder", -- "Silver Gauntlets Boulder",
[0x14F]="Graveyard Flower", [0x14F]="? Graveyard Flower",
[0x150]="Sun Switch", [0x150]="Sun Switch",
[0x151]="Groups of Rocks & Bushes", [0x151]="Groups of Rocks / Bushes",
[0x152]="Goron (Early)", [0x152]="Goron (Early)",
[0x153]="Windmill Man", [0x153]="Windmill Man",
[0x154]=unset, [0x154]=unset,
@ -355,13 +355,13 @@ return {
[0x160]="Big Water Spout", [0x160]="Big Water Spout",
[0x161]=unset, [0x161]=unset,
[0x162]="Running Man (Hyrule Field & Ending)", [0x162]="Running Man (Hyrule Field & Ending)",
[0x163]="Kokiri Spawner", [0x163]="Kokiri Child",
[0x164]="King Zora", [0x164]="King Zora",
[0x165]="Weather-Changing Tag", [0x165]="Weather-Changing Tag",
[0x166]="Bongo Bongo's Drum Head", [0x166]="Bongo Bongo's Drum Head",
[0x167]="Kakariko Rooftop Man", [0x167]="Kakariko Rooftop Man",
[0x168]="Bombchu Bowling Prizes???", [0x168]="Bombchu Bowling Prizes???",
[0x169]="Iron Knuckle Throne & Columns", [0x169]="Iron Knuckle Throne / Columns",
[0x16A]="Carpet Merchant", [0x16A]="Carpet Merchant",
[0x16B]="Carpet Merchant's Magic Carpet", [0x16B]="Carpet Merchant's Magic Carpet",
[0x16C]="Graveyard Boy", [0x16C]="Graveyard Boy",
@ -387,7 +387,7 @@ return {
[0x180]=unset, [0x180]=unset,
[0x181]="Grotto Treasure Chest", [0x181]="Grotto Treasure Chest",
[0x182]="Ending Cutscene NPCs", [0x182]="Ending Cutscene NPCs",
[0x183]="???", [0x183]="? Zelda Lullaby Fairy?",
[0x184]="Great Fairy's Healing Beam", [0x184]="Great Fairy's Healing Beam",
[0x185]="Checkable Spot", [0x185]="Checkable Spot",
[0x186]="Patrolling Gerudo in Purple", [0x186]="Patrolling Gerudo in Purple",
@ -430,7 +430,7 @@ return {
[0x1AB]="Group of Rupees", [0x1AB]="Group of Rupees",
[0x1AC]="Honey & Darling", [0x1AC]="Honey & Darling",
[0x1AD]="Haggling Shoppers", [0x1AD]="Haggling Shoppers",
[0x1AE]="Goron & Biggoron", [0x1AE]="Goron / Biggoron",
[0x1AF]="Wolfos", [0x1AF]="Wolfos",
[0x1B0]="Stalchild", [0x1B0]="Stalchild",
[0x1B1]="???", [0x1B1]="???",

52
Lua/oneshot oot.lua Normal file
View file

@ -0,0 +1,52 @@
local addrs = require "addrs"
require "item values"
local inv = addrs.inventory
local quantities = addrs.quantities
_=addrs.target_style and addrs.target_style(1)
addrs.hearts (16*20)
addrs.max_hearts (16*20)
addrs.doubled_hearts(20)
addrs.has_magic (1)
addrs.magic (0x60)
addrs.rupees (500)
addrs.tunic_boots (0xFF) -- normally 0x77
addrs.sword_shield (0xF7) -- normally 0x77?
addrs.upgrades (0x36E458) -- normally ?
addrs.quest_items (0x00FFFFFF)
inv.deku_stick (0x00)
inv.deku_nut (0x01)
inv.bombs (0x02)
inv.bow (0x03)
inv.fire_arrows (0x04)
inv.dins_fire (0x05)
inv.slingshot (0x06)
inv.ocarina (0x08)
inv.bombchu (0x09)
inv.hookshot (0x0B)
inv.ice_arrows (0x0C)
inv.farores_wind (0x0D)
inv.boomerang (0x0E)
inv.lens_of_truth (0x0F)
inv.magic_beans (0x10)
inv.hammer (0x11)
inv.light_arrows (0x12)
inv.nayrus_love (0x13)
inv.bottle_1 (0x14)
inv.bottle_2 (0x18)
inv.bottle_3 (0x19)
inv.bottle_4 (0x1C)
--trade_1 (0xFF)
--trade_2 (0xFF)
quantities.sticks (69)
quantities.nuts (69)
quantities.bombs (69)
quantities.arrows (69)
quantities.seeds (69)
quantities.bombchu (69)
quantities.beans (69)