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

View file

@ -33,10 +33,10 @@ function Actor(addr)
damage_table = AA(0xA0, 4),
hp = AA(0xB7, 1),
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_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_z = AA(0xE8, 'f'),
camera_rel_x = AA(0xEC, 'f'),
@ -78,7 +78,7 @@ return {
sword_shield = AL(0x6D, 1),
inventory_items = AL(0x70, 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
quiver_bag = AL(0xBB, 1),
quest_items = AL(0xBC, 4),
@ -128,7 +128,7 @@ return {
bombers_code_5 = AL(0xFFF, 1),
inventory = {
b_button = AL(0x4C, 1),
b_button_item = AL(0x4C, 1),
c_left_item = AL(0x4D, 1),
c_down_item = AL(0x4E, 1),
c_right_item = AL(0x4F, 1),

View file

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