From d8c608899d7b126b3282a0043d864d165c424128 Mon Sep 17 00:00:00 2001 From: Connor Olding Date: Wed, 25 Mar 2015 10:27:18 -0700 Subject: [PATCH] implement alt headers; dump actors/objects --- Lua/object names.lua | 646 +++++++++++++++++++++++++++++++++++++++++++ Lua/room debug.lua | 69 ++++- 2 files changed, 702 insertions(+), 13 deletions(-) create mode 100644 Lua/object names.lua diff --git a/Lua/object names.lua b/Lua/object names.lua new file mode 100644 index 0000000..b1c67ec --- /dev/null +++ b/Lua/object names.lua @@ -0,0 +1,646 @@ +local unset="unset" +return { + [0x000]="?", + [0x001]="Various Gameplay Objects", + [0x002]="Various Field Objects", + [0x003]="Various Dungeon Objects", + [0x004]="Anju's Grandma", + [0x005]="Octorok", + [0x006]="Guay", + [0x007]="Madame Dotour", + [0x008]="Great Fairy & Spiral Beam of Light", + [0x009]="Wallmaster", + [0x00A]="Dodongo", + [0x00B]="Keese", + [0x00C]="Treasure Chest", + [0x00D]="Madame Aroma", + [0x00E]="Shabom", + [0x00F]="Cucco", + [0x010]="Fierce Deity Link", + [0x011]="Child Link", + [0x012]="Tektite", + [0x013]="Mr. Barten", + [0x014]="Peahat", + [0x015]="Anju in Wedding Dress", + [0x016]="Sun Mask", + [0x017]="Dinolfos", + [0x018]="Wedding Dress Mannequin", + [0x019]="Child Zelda Early", + [0x01A]="No Display Lists or Textures to Render ???", + [0x01B]=unset, + [0x01C]="Kafei", + [0x01D]="Death Armos", + [0x01E]=unset, + [0x01F]=unset, + [0x020]="Skulltula/Skullwalltula/Gold Skulltula Token", + [0x021]=unset, + [0x022]="Takkuri", + [0x023]=unset, + [0x024]=unset, + [0x025]=unset, + [0x026]=unset, + [0x027]=unset, + [0x028]=unset, + [0x029]=unset, + [0x02A]="Bomb Flower", + [0x02B]=unset, + [0x02C]=unset, + [0x02D]=unset, + [0x02E]=unset, + [0x02F]=unset, + [0x030]="Armos & Armos Statue", + [0x031]="Deku Baba & Wilted Deku Baba", + [0x032]=unset, + [0x033]=unset, + [0x034]=unset, + [0x035]=unset, + [0x036]=unset, + [0x037]=unset, + [0x038]=unset, + [0x039]=unset, + [0x03A]=unset, + [0x03B]=unset, + [0x03C]=unset, + [0x03D]=unset, + [0x03E]="Blue Warp", + [0x03F]="Piece of Heart & Heart Container (Verify ???)", + [0x040]="Mad Scrub", + [0x041]=unset, + [0x042]=unset, + [0x043]=unset, + [0x044]=unset, + [0x045]=unset, + [0x046]=unset, + [0x047]=unset, + [0x048]=unset, + [0x049]=unset, + [0x04A]=unset, + [0x04B]=unset, + [0x04C]=unset, + [0x04D]=unset, + [0x04E]=unset, + [0x04F]=unset, + [0x050]=unset, + [0x051]="Red & Blue Bubbles", + [0x052]="Gomess & ???", + [0x053]=unset, + [0x054]=unset, + [0x055]=unset, + [0x056]=unset, + [0x057]=unset, + [0x058]=unset, + [0x059]=unset, + [0x05A]=unset, + [0x05B]=unset, + [0x05C]="Moveable Blocks & Elevators - Stone Tower Temple (Verify ???)", + [0x05D]="Composer Brothers", + [0x05E]=unset, + [0x05F]="Flagpole", + [0x060]=unset, + [0x061]="Trees & Plants", + [0x062]=unset, + [0x063]=unset, + [0x064]="Blade Trap", + [0x065]=unset, + [0x066]=unset, + [0x067]=unset, + [0x068]=unset, + [0x069]=unset, + [0x06A]="Beamos", + [0x06B]=unset, + [0x06C]=unset, + [0x06D]=unset, + [0x06E]=unset, + [0x06F]=unset, + [0x070]="Rock With Beam of Light", + [0x071]=unset, + [0x072]=unset, + [0x073]=unset, + [0x074]=unset, + [0x075]="Redeads & Gibdos", + [0x076]="Mountain Village Objects (Verify ???)", + [0x077]="Golden Gauntlets Rock - J 1.0 Only", + [0x078]=unset, + [0x079]=unset, + [0x07A]=unset, + [0x07B]=unset, + [0x07C]=unset, + [0x07D]="Child Epona", + [0x07E]=unset, + [0x07F]=unset, + [0x080]="Golden Torch Stand", + [0x081]=unset, + [0x082]=unset, + [0x083]=unset, + [0x084]="Ring of Light (Verify ???)", + [0x085]=unset, + [0x086]="Small Key (Verify ???)", + [0x087]="Mirror Shield Light Ray", + [0x088]="Gear & Twisting Path to Clock Tower", + [0x089]=unset, + [0x08A]="Boss Doors", + [0x08B]=unset, + [0x08C]=unset, + [0x08D]=unset, + [0x08E]="Shellblade", + [0x08F]="Music Note", + [0x090]="Recovery Heart", + [0x091]="Compass", + [0x092]="Boss Key", + [0x093]=unset, + [0x094]="Deku Nuts", + [0x095]=unset, + [0x096]="Heart Container Boss Lair", + [0x097]="Quivers", + [0x098]="Bomb Bags", + [0x099]="Gorman Bros.", + [0x09A]=unset, + [0x09B]=unset, + [0x09C]=unset, + [0x09D]="No Display Lists or Textures to Render ???", + [0x09E]="Bottle", + [0x09F]="Deku Stick", + [0x0A0]="Dungeon Map & Stone of Agony", + [0x0A1]="Various Gorons/Medigoron Goron Powder Keg Shop/Don Gero", + [0x0A2]="Ruto", + [0x0A3]=unset, + [0x0A4]="Magic Jars", + [0x0A5]="Bomb", + [0x0A6]=unset, + [0x0A7]="Cremia", + [0x0A8]="Wallets", + [0x0A9]=unset, + [0x0AA]=unset, + [0x0AB]="Like Like", + [0x0AC]=unset, + [0x0AD]=unset, + [0x0AE]=unset, + [0x0AF]="Arrow Bundles", + [0x0B0]="Bombchu", + [0x0B1]=unset, + [0x0B2]=unset, + [0x0B3]="Hero's Shield", + [0x0B4]="Hookshot", + [0x0B5]="Ocarina of Time", + [0x0B6]="Bottle of Milk", + [0x0B7]="Romani", + [0x0B8]=unset, + [0x0B9]=unset, + [0x0BA]=unset, + [0x0BB]="Exploding Metal Spike Trap", + [0x0BC]="Frog", + [0x0BD]=unset, + [0x0BE]=unset, + [0x0BF]="Hero's Bow", + [0x0C0]="Lens of Truth", + [0x0C1]="Potions", + [0x0C2]="Part-Timer", + [0x0C3]="Mirror Shield", + [0x0C4]=unset, + [0x0C5]=unset, + [0x0C6]="Magic Beam (Verify ???)", + [0x0C7]="Fish in Bottle", + [0x0C8]=unset, + [0x0C9]=unset, + [0x0CA]=unset, + [0x0CB]="Biggoron's Sword", + [0x0CC]=unset, + [0x0CD]=unset, + [0x0CE]=unset, + [0x0CF]=unset, + [0x0D0]="Zora", + [0x0D1]=unset, + [0x0D2]="Horse Jumping Fence", + [0x0D3]=unset, + [0x0D4]=unset, + [0x0D5]="No Display Lists or Textures to Render ???", + [0x0D6]="No Display Lists or Textures to Render ???", + [0x0D7]="Mamamu Yan", + [0x0D8]="Iron Knuckle", + [0x0D9]="Bearded Man - Ocarina of Time", + [0x0DA]="Thin Woman in Blue Dress - Ocarina of Time", + [0x0DB]=unset, + [0x0DC]=unset, + [0x0DD]="Anju's Broom", + [0x0DE]="Shikashi", + [0x0DF]="Bomb Shop Owner's Mother", + [0x0E0]="Anju's Umbrella", + [0x0E1]=unset, + [0x0E2]="Anju", + [0x0E3]="Bank Teller/Juggler/Sakon/Bomb Shop Bag", + [0x0E4]="Freezard", + [0x0E5]="Carpenter Boss's Wife - Ocarina of Time", + [0x0E6]="Gerudo Lieutenant", + [0x0E7]="Swamp Shooting Gallery Minigame Points", + [0x0E8]=unset, + [0x0E9]=unset, + [0x0EA]=unset, + [0x0EB]=unset, + [0x0EC]="Stone Hookshot Target Pillar", + [0x0ED]="Dampé's House Elevator & Long Row of Blocks", + [0x0EE]="Magic Bean Plant", + [0x0EF]="Snowball & Rolling Boulder", + [0x0F0]="Mutoh", + [0x0F1]="Carpenter", + [0x0F2]="Cucco Chick", + [0x0F3]="No Display Lists or Textures to Render ???", + [0x0F4]="Bean Seller", + [0x0F5]="Grog", + [0x0F6]=unset, + [0x0F7]="Sun Switch", + [0x0F8]="Grass", + [0x0F9]="Pot", + [0x0FA]=unset, + [0x0FB]=unset, + [0x0FC]="Square Signpost", + [0x0FD]="Kaepora Gaebora", + [0x0FE]="Marine Researcher", + [0x0FF]="Guru-Guru", + [0x100]="Keaton Mask", + [0x101]=unset, + [0x102]="Captain's Hat", + [0x103]="Bunny Hood", + [0x104]="Mask of Truth", + [0x105]=unset, + [0x106]="Water Spout", + [0x107]="Postman", + [0x108]=unset, + [0x109]=unset, + [0x10A]=unset, + [0x10B]=unset, + [0x10C]=unset, + [0x10D]=unset, + [0x10E]=unset, + [0x10F]="Swordsman", + [0x110]="Bombers & Jim", + [0x111]=unset, + [0x112]=unset, + [0x113]="SOLD OUT Texture", + [0x114]=unset, + [0x115]="Title Logo", + [0x116]=unset, + [0x117]=unset, + [0x118]=unset, + [0x119]="Goron Mask", + [0x11A]="Zora Mask", + [0x11B]=unset, + [0x11C]=unset, + [0x11D]="Pierre the Scarecrow", + [0x11E]=unset, + [0x11F]="Red-Tipped Iron Bars", + [0x120]=unset, + [0x121]="Fire Arrow/Ice Arrow/Light Arrow", + [0x122]="Potion Shop Owner - Ocarina of Time", + [0x123]=unset, + [0x124]="Fishing Pond Objects", + [0x125]="Gold Skulltula Token", + [0x126]=unset, + [0x127]="Cursed Man", + [0x128]="Gekko Miniboss/Mad Jelly/Jelly Droplets", + [0x129]="Treasure Chest Game Employee & Mayor's Receptionist", + [0x12A]="Bombable Rock & Boulder Blocking Goron Racetrack", + [0x12B]="Sleeping Deku Scrub", + [0x12C]="Bomb Shop Owner", + [0x12D]=unset, + [0x12E]="Patrolling Pirate Guard", + [0x12F]=unset, + [0x130]="Aveil", + [0x131]=unset, + [0x132]="Dog", + [0x133]="Large Wooden Crate", + [0x134]="Deku Guard - Deku King's Chamber", + [0x135]="Deku Guard - Deku Palace Entrance & Grounds", + [0x136]=unset, + [0x137]="Bug in Bottle", + [0x138]=unset, + [0x139]="Hot Spring Water", + [0x13A]="Rupees", + [0x13B]=unset, + [0x13C]=unset, + [0x13D]=unset, + [0x13E]=unset, + [0x13F]="Rupees", + [0x140]="Honey & Darling", + [0x141]="Wolfos", + [0x142]="Stalchild", + [0x143]="Gossip Stone", + [0x144]="Ghost Hut Owner", + [0x145]="Barn Roof", + [0x146]="Cow", + [0x147]=unset, + [0x148]="Kokiri Sword", + [0x149]=unset, + [0x14A]=unset, + [0x14B]="Child Zelda - Song of Time Cutscene", + [0x14C]="Goron Link", + [0x14D]="Zora Link", + [0x14E]="Dragonfly", + [0x14F]="Green Bumper", + [0x150]=unset, + [0x151]=unset, + [0x152]=unset, + [0x153]="Proximity-Activated Fire Wall", + [0x154]="Deku Link", + [0x155]="Garo Master", + [0x156]="Igos du Ikana", + [0x157]="Blue Icicle (Verify ???)", + [0x158]="Spiderweb", + [0x159]=unset, + [0x15A]="Odolwa", + [0x15B]="Twinmold (Verify ???)", + [0x15C]="Gyorg", + [0x15D]="Wart", + [0x15E]="Bio Deku Baba", + [0x15F]=unset, + [0x160]="Majora", + [0x161]="Carnivorous Lilypad", + [0x162]="Plume of Smoke Rising High Into the Sky", + [0x163]="Various Elevators Deku Palace/Woodfall, Triforce, Deku Scrub Playground, ???", + [0x164]="Wooden Flower - Woodfall Temple", + [0x165]="Breakable Pot With Grass", + [0x166]="Spike-Covered Log", + [0x167]="Ice Platform Created by Freezing Enemy", + [0x168]=unset, + [0x169]="Opening Cutscene Objects", + [0x16A]="Chuchu", + [0x16B]="Desbreko & Skullfish", + [0x16C]="Stock Pot Inn Bell", + [0x16D]="Clock Tower Spotlight/Chimney Smoke/2D Chimney Backdrop/Bank Shutter", + [0x16E]=unset, + [0x16F]="Small Wooden Crate", + [0x170]="Owl Statue", + [0x171]="Nejiron", + [0x172]="Bad Bat", + [0x173]="Triforce Song Pedestal", + [0x174]="Goron Song Pedestal", + [0x175]="Kokiri Song Pedestal", + [0x176]="Song of Soaring Pedestal", + [0x177]=unset, + [0x178]="Wizzrobe", + [0x179]="Ladder", + [0x17A]="Black Boe", + [0x17B]=unset, + [0x17C]=unset, + [0x17D]=unset, + [0x17E]="Fountain Water & Iron Fence", + [0x17F]="Swamp Tour Boat", + [0x180]="Unknown Texture ???", + [0x181]="Real Bombchu", + [0x182]="Water Dripping on Ground", + [0x183]=unset, + [0x184]="Great Bay Temple Objects", + [0x185]="Tingle", + [0x186]="Pirates' Fortress Telescope", + [0x187]="Drifting Ice Platform", + [0x188]="Falling Moon", + [0x189]="Deku Nut Projectile", + [0x18A]="Closing Doors - Deku Shrine", + [0x18B]="Deku King", + [0x18C]="Clock Tower & Light Beam", + [0x18D]="Eyegore & Rubble", + [0x18E]="Koume", + [0x18F]="Kotake", + [0x190]="Snowhead Temple Objects", + [0x191]="Arrow, Posts, & Splatter", + [0x192]="Skullkid", + [0x193]=unset, + [0x194]=unset, + [0x195]="Monkey", + [0x196]="Bottle of Red Potion", + [0x197]="Swinging Doors to Clock Tower", + [0x198]="Beaver Bros.", + [0x199]="Collectable Ring - Beaver Race", + [0x19A]="Woodfall Volcano & Deku Palace Water", + [0x19B]="Poe Balloon (Romani Ranch)", + [0x19C]="Magic Jar (??? DC)", + [0x19D]="Donkey", + [0x19E]="Big Octo", + [0x19F]="Deku Door & Spotlights", + [0x1A0]="Rotating Platform (Honey & Darling's Shop)", + [0x1A1]="Target/Basket - Honey & Darling's Shop", + [0x1A2]="Woodfall Temple Rises Cutscene Objects", + [0x1A3]="Happy Mask Salesman", + [0x1A4]="Door to Top of Clock Tower", + [0x1A5]="Lilypad", + [0x1A6]="Snapper - Gekko & Snapper Miniboss", + [0x1A7]="Ivy in Deku Jail", + [0x1A8]="Invisible Blue Platforms Visible With Lens of Truth", + [0x1A9]="Fisherman", + [0x1AA]="Updated Potion Shop Owner - Ocarina of Time", + [0x1AB]="Curiosity Shop Owner", + [0x1AC]="Swamp Tourist Center Guide & Swamp Shooting Gallery Manager", + [0x1AD]="Ice Block (Verify ???)", + [0x1AE]="Zora Egg in Bottle", + [0x1AF]="Dampé", + [0x1B0]="West Clocktown Stairs", + [0x1B1]="Moon's Tear", + [0x1B2]="Title Deeds", + [0x1B3]="Block That Dissolves in Sunlight", + [0x1B4]="Proximity-Activated Wall - Treasure Chest Game", + [0x1B5]="Dexihand", + [0x1B6]="Soldier", + [0x1B7]="Snow-Covered Tree", + [0x1B8]="Giant", + [0x1B9]="Honeycomb", + [0x1BA]="Graveyard Flower", + [0x1BB]="Goht & Rock Debris", + [0x1BC]="Ladder & Stone Wall", + [0x1BD]="Deku Mask", + [0x1BE]="Skullkid Screams to Call Moon Down Effects & ???", + [0x1BF]="Gate to Goron Shrine", + [0x1C0]="Dampé's House Stairs", + [0x1C1]="Dampé's House Facade", + [0x1C2]="Gravestone", + [0x1C3]="Poe", + [0x1C4]="Eeno", + [0x1C5]="Poe Sisters", + [0x1C6]="Hiploop", + [0x1C7]="Goron Link Switch", + [0x1C8]="Tatl & Tael - Cutscenes", + [0x1C9]="Gatepost (Captain Keeta Race)", + [0x1CA]="Powder Keg", + [0x1CB]="Postbox", + [0x1CC]="Boss Remains - Cutscenes", + [0x1CD]="Tent-Shaped Spider Web", + [0x1CE]="Zora Egg", + [0x1CF]="Zubora", + [0x1D0]="Darmani's Ghost", + [0x1D1]="Practice Log - Swordsman's School", + [0x1D2]="Darmani's Gravestone", + [0x1D3]="Goron Hot Spring Water", + [0x1D4]="Deku Princess", + [0x1D5]="Biggoron & Link the Goron", + [0x1D6]="Gabora", + [0x1D7]="Fish - Marine Research Lab", + [0x1D8]="No Display Lists or Textures to Render ???", + [0x1D9]="Mask of Scents - Porcino ???", + [0x1DA]="Display List, But No Textures ???", + [0x1DB]="Display List, But No Textures ???", + [0x1DC]="Bunny Hood", + [0x1DD]="Blast Mask", + [0x1DE]="Mask of Truth", + [0x1DF]="Goron Elder's Son", + [0x1E0]="Beneath the Grave Objects", + [0x1E1]="Goron Link Transformation", + [0x1E2]="Zora Link Transformation", + [0x1E3]="Deku Link Transformation", + [0x1E4]="Fierce Deity Link Transformation", + [0x1E5]="Business Scrub & Deku Scrub Playground Employee", + [0x1E6]="Mountain Village Unfreezes Cutscene - Mountain (Verify ???)", + [0x1E7]="Ice Platform Created by Ice Arrow", + [0x1E8]="Gold Dust", + [0x1E9]="Gold Dust in Bottle", + [0x1EA]="Hylian Loach in Bottle", + [0x1EB]="Giant Bee", + [0x1EC]="Seahorse", + [0x1ED]="Deep Python", + [0x1EE]="Swordsman's School Objects", + [0x1EF]="Hylian Loach", + [0x1F0]="Seahorse", + [0x1F1]="Big Poe", + [0x1F2]="Cow Figurine", + [0x1F3]="Deku Butler", + [0x1F4]="Verify ???", + [0x1F5]="Oceanside Spider House Objects", + [0x1F6]="Rock", + [0x1F7]="No Display Lists or Textures to Render ???", + [0x1F8]="Goron Elder & Drum", + [0x1F9]="Razor Sword", + [0x1FA]="Gilded Sword", + [0x1FB]="Great Fairy's Sword", + [0x1FC]="Cremia's Cart", + [0x1FD]="Gibdo Mask", + [0x1FE]="Display List, But No Textures ???", + [0x1FF]="Display List, But No Textures ???", + [0x200]="Display List, But No Textures ???", + [0x201]="Leever", + [0x202]="Milk Bar - Chair", + [0x203]="Ancient Castle of Ikana & Stone Tower Temple Objects", + [0x204]="Gerudo Pirate (Verify ???)", + [0x205]="String of Flags & Carnival Platform", + [0x206]="Mikau & Grave", + [0x207]="Spiky Rotating Platform - Deku Moon Dungeon", + [0x208]="Postman's Hat/Bag/Curtain - Post Office Closet", + [0x209]="Circus Leader's Mask & Garo Mask", + [0x20A]="Great Fairy Mask", + [0x20B]="Gibdo Mask", + [0x20C]="Twinmold's Lair", + [0x20D]="Fork-Branched Tree", + [0x20E]="Pirates' Fortress Objects", + [0x20F]="Room Key", + [0x210]="Letter to Kafei", + [0x211]="Japas", + [0x212]="Indigo-Go's Milk Bar Stage - Cutscenes", + [0x213]="Various Masks - Cutscenes", + [0x214]="Display List, But No Textures ???", + [0x215]="Pendant of Memories", + [0x216]="Tijo", + [0x217]="Whirlwind Surrounding Great Bay Temple & Moon Collision (Verify ???)", + [0x218]="Palm Tree", + [0x219]="Display List, But No Textures ???", + [0x21A]="No Display Lists or Textures to Render ???", + [0x21B]="Untextured Bee (Verify ???)", + [0x21C]="Untextured Bee (Verify ???)", + [0x21D]="Magic Mushroom", + [0x21E]="Goron Village Chandelier", + [0x21F]="Romani Mask", + [0x220]="Evan", + [0x221]="Display List, But No Textures ???", + [0x222]="Elegy of Emptiness Switch", + [0x223]="Moon", + [0x224]="Blue Target Spot - Old Koume's Boat Cruise - Ticket office closed.", + [0x225]="Postman's Hat", + [0x226]="Giant's Mask", + [0x227]="Chateau Romani", + [0x228]="Pictograph Box", + [0x229]="Turtle & Tsunami", + [0x22A]="Pamela's Father", + [0x22B]="Lulu", + [0x22C]="Music Box House Cupboard Doors", + [0x22D]=unset, + [0x22E]=unset, + [0x22F]=unset, + [0x230]="Door to Astral Observatory & Marine Research Lab", + [0x231]="Zora Hall Interior Door", + [0x232]="Door to Swamp Tourist Center & Swamp Shooting Gallery", + [0x233]="Door to Magic Hags' Potion Shop", + [0x234]="Bombable, Climbable Wall - Moon Trials (Verify ???)", + [0x235]="Beneath the Well Interior Door", + [0x236]="Ancient Castle of Ikana Objects", + [0x237]="Sharp's Cave & Ikana Canyon Objects", + [0x238]="Pamela", + [0x239]="Hookshotable Tree Stump", + [0x23A]="Toto", + [0x23B]="Circle of Light (Verify ???)", + [0x23C]="Majora Pushblock/Door/Unknown Texture (Verify ???)", + [0x23D]="Switch-Activated Geyser (Verify ???)", + [0x23E]="Ghost Alien", + [0x23F]="Flock of Seagulls", + [0x240]="Flock of Giant Bees", + [0x241]="Mayor Dotour", + [0x242]="Fierce Deity's Mask", + [0x243]="Laundry Pool Sign & Bell", + [0x244]="Cremia & Romani's 6 pm Dinner", + [0x245]="Letter to Mama", + [0x246]="Moon Crashing Into Clocktown Effects (Verify ???)", + [0x247]="Vissen", + [0x248]="Gorman", + [0x249]="Igos du Ikana's Henchmen (Verify ???)", + [0x24A]="Kamaro", + [0x24B]="Rosa Sisters", + [0x24C]="Display List, But No Textures ???", + [0x24D]="Tingle's Map", + [0x24E]="Display List, But No Textures ???", + [0x24F]="Hand in Toilet", + [0x250]="Barrel", + [0x251]="Moon's Tear Falling Effects (Verify ???)", + [0x252]="Display List, But No Textures ???", + [0x253]="Bomber's Notebook", + [0x254]="Stone Mask", + [0x255]="Blue Spotlight Effect", + [0x256]="Gorman Track Buildings", + [0x257]="Thatched Roof of Cow Barn", + [0x258]="Kafei's Mask", + [0x259]="Circus Leader's Mask", + [0x25A]="Bremen Mask", + [0x25B]="Deku Butler's Son", + [0x25C]="Display List, But No Textures ???", + [0x25D]="Display List, But No Textures ???", + [0x25E]="Display List, But No Textures ???", + [0x25F]="Display List, But No Textures ???", + [0x260]="Metal Portcullis", + [0x261]="Cart Delivery Bottle of Chateau Romani", + [0x262]="Secret Shrine Interior Door", + [0x263]="Lottery Shop Kiosk", + [0x264]="Keaton", + [0x265]="All-Night Mask", + [0x266]="Don Gero's Mask", + [0x267]="Bombable Wall - Astral Observatory", + [0x268]="Captain Keeta", + [0x269]="Falling Moon", + [0x26A]="Headless Body (Verify ???)", + [0x26B]="Sun Mask", + [0x26C]="Elegy of Emptiness - Beam of Light When Creating Statue (Verify ???)", + [0x26D]="Blast Mask", + [0x26E]="Stockpot Inn 2nd Floor Window", + [0x26F]="Ikana Canyon - Curse is Lifted Effects", + [0x270]="Moon - Ending Cutscene (Verify ???)", + [0x271]="Moon Child", + [0x272]="Fairy in Bottle", + [0x273]="Elevator - ???", + [0x274]="Door to Lottery Shop/Curiosity Shop/Mayor's House", + [0x275]="Door to Trading Post & Post Office", + [0x276]="Door to Stockpot Inn & Swordsman's School", + [0x277]="No Display Lists or Textures to Render ???", + [0x278]="Swamp Spider House Interior Door", + [0x279]="Oceanside Spider House Interior Door", + [0x27A]="Brown Bird", + [0x27B]="Door to Milk Bar", + [0x27C]="Door to Music Box House", + [0x27D]="Kamaro's Mask", + [0x27E]="Mask of Scents", + [0x27F]="Colourful Hookshot Target Pillar", + [0x280]="Majora Balloon", + [0x281]="Epilogue Cutscene Objects", + [0x282]="Couple's Mask", +} diff --git a/Lua/room debug.lua b/Lua/room debug.lua index ce7c4d9..5615103 100755 --- a/Lua/room debug.lua +++ b/Lua/room debug.lua @@ -1,10 +1,6 @@ local A = require "boilerplate" local addrs = require "addrs.init" -function printf(fmt, ...) - print(fmt:format(...)) -end - function gs2(addr, value) printf("81%06X %04X", addr, value) W2(addr, value) @@ -23,16 +19,24 @@ function dump_half_row(addr) printf("%04X %04X %04X %04X", R2(addr), R2(addr+2), R2(addr+4), R2(addr+6)) end -function dump_room(start) - local addr = start - printf("start: %08X", start) +function dump_room(start, addr) + local addr = addr or start + printf("# start: %08X", start) local object_n, objects local actor_n, actors - for _ = 1,128 do -- give up after a while + local alt_header_list + + for _ = 1,127 do -- give up after a while local cmd = R1(addr) - if cmd == 0x14 then break end + if cmd == 0x14 then + local unk = R4(addr+4) + if unk > 0 then + printf("# end unknown: %08X", unk) + end + break + end local dumpy = function() local bank = R1(addr+4) @@ -49,7 +53,7 @@ function dump_room(start) if cmd == 0x18 then printf("alt:") - dumpy() + alt_header_list = dumpy() elseif cmd == 0x01 then actor_n = R1(addr+1) printf("actors: %2i", actor_n) @@ -68,7 +72,7 @@ function dump_room(start) dumpy() elseif cmd == 0x08 then print("[room behaviour]") - dump_half_row(addr) + --dump_half_row(addr) elseif cmd == 0x0A then printf("mesh:") dumpy() @@ -111,7 +115,6 @@ function dump_room(start) for i = 0, object_n - 1 do --printf('O: %04X', R2(objects + 2*i)) --gs2(objects+2*i, 0x00FC) - end for i = 0, actor_n - 1 do --print('A:') @@ -121,13 +124,53 @@ function dump_room(start) --gs2(actors+16*i+0xE, 0x0010) end end + + print() + + if actors then + print("# actors") + local actor_names = require "actor names" + local buf = "" + for i = 0, actor_n - 1 do + local id = R2(actors + 16*i) + id = bit.band(id, 0x0FFF) + local name = actor_names[id] + buf = buf..("%04X: %s\n"):format(id, name or "unset") + end + print(buf) + end + + if objects then + print("# objects") + local object_names = require "object names" + local buf = "" + for i = 0, object_n - 1 do + local id = R2(objects + 2*i) + local rid = bit.band(id, 0x0FFF) + local name = object_names[rid] + buf = buf..("%04X: %s\n"):format(id, name or "unset") + end + print(buf) + end + + if alt_header_list then + local addr = alt_header_list + local i = 1 + while R1(addr) == 0x03 do + printf("# setup: %02X", i) + dump_room(start, start + R3(addr+1)) + addr = addr + 4 + i = i + 1 + end + end end local last_addr while true do local addr = deref(addrs.room_ptr()) if addr and addr ~= last_addr then - print('# new room loaded #') + console.clear() + print('# setup: 00 #') dump_room(addr) print('') end