Jump to content

OoT/MM information dump


DeathBasket
 Share

Recommended Posts

I'm going to post what notes I can find here. Sorry if it's not organised well, I'll do what I can.

 

Majora's Mask (U) RAM stuff

 

 

 

800EA8D0 - sets form to be transformed to by Skull Kid (4 = normal, 3 = deku...)
801448A4 - starting form
80145348 - overwrites starting form before game starts
8016A4B8 - check for ocarina (ususally to determine if it's first cycle)
80143A10(warp_point) - set warp point as active (owl statues)
 
803E6B20 is an important address (like 80212020 in OoT debug)
803E87D0 = loaded actor list (for each actor type, number of actors, pointer to first actor of that type)
 
803E8918 = highlighted/targeted actor
 
Ocarina:
8019BF44 = A button
8019BF88 = Down-C
8019BFA4 = Right-C
8019BFC0 = Left-C
8019BFD8 = Up-C
 
801D7020 = last 8 notes played
 
801518B0(803E6B20, msg_no) - show a message
 
800FEC90(address1,address2,size) - copy data from one RAM address to another
 
80080A08(*something) - load_file
something:
u32 rom_v_addr
u32 ram_addr
u32 size
 
80080C90(ram_addr,rom_addr,size) - copy data from ROM to RAM (note rom_addr is always the decompressed location)
 
801445E4(address, size) - calculates checksum (for savefile)?
 
8015B100 - always branch for instant text
801DF834 - needs to be replaced or text causes softlocks sometimes with above hack
 
80145360 - sets start area, exit number (new game)
80145350 - sets start area (normally)
 
800EA8D0 - form in save cutscene (first SoT, usually changes you back to deku)
 
f32 80086FDC() - PRNG (pseudo random number generator) (return value in $f0)
 
80112E80(803E6B20, item_no) - item giving function (puts in inventory)
value list:

0 ocarina1 bow2 fire arrow3 ice arrow4 light arrow5 fairy ocarina6 bomb7 bombchu8 deku stick9 deku nuta magic beanb slingshotc powder kegd pictoboxe lens of truthf hookshot10 gf sword11 hookshot (OoT)12 empty bottle13 red potion14 green potion15 blue potion16 fairy17 deku princess18 milk19 milk (half)1a fish1b bugs1c blue fire1d poe1e big poe1f water20 hot water21 zora egg22 gold dust23 mushroom24 seahorse25 chateau romani26 eel27 empty bottle28 moon's tear29 town deed2a swamp deed2b mountain deed2c ocean deed2d room key2e mama's letter2f letter to kafei30 pendant31 map32 deku mask33 goron mask34 zora mask35 fierce deity's mask36 mask of truth37 kafei's mask38 all night mask39 bunny hood3a keaton mask3b garo's mask3c romani mask3d circus leader's mask3e postman's hat3f couple's mask40 great fairy's mask41 gibdo's mask42 don gero's mask43 kamaro's mask44 captain's hat45 stone mask46 bremen mask47 blast mask48 mask of scents49 giant's mask4a bow + fire arrow4b bow + ice arrow4c bow + light arrow4d kokiri sword4e razor sword4f gilded sword50 helix sword (can't equip)51 hero's shield52 mirror shield53 quiver (30)54 quiver (40)55 quiver (50)56 bomb bag (20)57 bomb bag (30)58 bomb bag (40)59 wallet (beta)5a wallet 25b wallet 35c fishing rod5d odolwa's remains5e goht's remains5f gyorg's remains60 twinmold's remains61 sonata of awakening62 goron lullaby63 new wave bossa nova64 elegy of emptiness65 oath to order66 saria's song67 song of time68 song of healing69 epona's song6a song of soaring6b song of storms6c sun's song6d bomber's notebook 7b heart piece 83 heart84 green rupee85 blue rupee 87 red rupee88 purple rupee89 silver rupee 8e deku nuts (10) 93 arrows (10)94 arrows (20)

 
800B8A1C(80410440,803E6B20,item,...) - get item (Link holds it over his head)
value list:

00 invalid01 green rupee02 blue rupee03 red rupee (no text)04 red rupee05 purple rupee06 silver rupee07 huge rupee08 adult wallet09 giant wallet0A heart0B heart0C piece of heart0D heart container0E magic jar0F large magic jar10 heart11 green rupee12 heart13 heart14 bombs15 5 bombs16 10 bombs17 20 bombs18 bombs19 deku stick1A 10 bombchu1B bomb bag1C big bomb bag1D biggest bomb bag1E arrows1F arrows20 arrows21 arrows22 bow + quiver (30)23 large quiver24 largest quiver25 fire arrow26 ice arrow27 light arrow28 deku nut29 5 deku nuts2A 10 deku nuts2B deku nut (no text)2C deku nut (no text)2D deku nut (no text)2E 20 bombchu2F deku stick (no text)30 deku stick (no text)31 deku stick (no text)32 hero's shield33 mirror shield34 powder keg35 magic bean36 bombchu37 kokiri sword (no text)38 razor sword39 gilded sword3A 5 bombchu3B great fairy's sword3C small key3D boss key3E dungeon map3F compass40 green rupee41 hookshot42 lens of truth43 pictograph box44 nothing (no text, gives pictograph box)45 heart46 green rupee47 green rupee48 green rupee49 green rupee4A green rupee4B green rupee4C heart4D green rupee4E green rupee4F green rupee50 bomber's notebook51 heart52 gold skulltula spirit53 green rupee54 green rupee55 odolwa's remains (crash)56 goht's remains (crash)57 gyorg's remains (crash)58 twinmold's remains (crash)59 bottle of red potion5A empty bottle5B red potion5C green potion5D blue potion5E fairy5F deku princess in bottle60 milk61 milk (no text) (half milk)62 fish63 bugs64 nothing (no text) (blue fire)65 poe (gives empty bottle)66 big poe67 spring water68 hot spring water69 zora egg6A gold dust6B magic mushroom6C green rupee6D empty bottle (no text)6E gold dust (seahorse icon) gives seahorse6F chateau romani70 empty bottle (eel icon)71 green rupee72 green rupee73 green rupee74 green rupee75 green rupee76 green rupee77 green rupee78 deku mask79 goron mask7A zora mask7B fierce deity's mask7C captain's hat7D giant's mask7E all night mask7F bunny hood80 keaton mask81 garo mask82 romani mask83 circus leader's mask84 postman's hat85 couple's mask86 great fairy mask87 gibdo mask88 don gero mask89 kamaro mask8A mask of truth8B stone mask8C bremen mask8D blast mask8E mask of scents8F kafei's mask90 green rupee91 ?92 ?93 ?94 ?95 ?96 moon's tear97 land title deed98 swamp title deed99 mountain title deed9A ocean title deed9B great fairy sword (buying)9C kokiri sword (buying)9D razor sword (buying)9E gilded sword (buying)9F hero's shield (no text)A0 room keyA1 mama's letterA2 green rupeeA3 green rupeeA4 ?A5 green rupeeA6 green rupeeA7 green rupeeA8 green rupeeA9 bottle (buying)AA kafei's letterAB pendant of memoriesAC green rupeeAD green rupeeAE green rupeeAF green rupeeB0 green rupeeB1 green rupeeB2 green rupeeB3 ?B4 clock town mapB5 woodfall mapB6 snowhead mapB7 romani ranch mapB8 great bay mapB9 stone tower map

 
current file stuff
801EF670
 
relative to 801EF690:
 
0x0 form, ?, Tatl flag, ?
0x4 "ZELDA3" 0000 
0xC [filename]
0x14 max health, current health
0x18 magic meter, current magic, rupees
 
0x2C equipped items
 
0x4C ?, equipment, ?, ?
0x50 item screen
0x68 mask screen
0x80 item ammo
0x9C quest stuff/songs
 
One interesting note - right after the default save file information in the ROM there is another set of save file information which is never used afaik (probably for testing). You can actually set it up so this is used as the default when starting a new file but I didn't make any notes on that. Also, since there is an item between blue and red rupees it seems very likely that a rupee worth 10 was supposed to be in the game at one point. I forget if this actually functions or not though (appears as a red rupee without text).

 

 

 

OoT debug RAM stuff

 

 

 

Title screen

 

8023BB4C - JAL to function that draws flames
8023BC08 - JAL to function that draws logo
 
make logo move around:

.org 0x8023BBBCj 0x80700000nop .org 0x80700000lui t8,0x807Flb t3,5(t8)bne t3,r0,restnopli t3,1sb t3,5(t8)li t3,0x66sh t3,0(t8)li t3,0x50sh t3,2(t8)rest:lh a2,0(t8)lh a1,2(t8)lb t3,4(t8)beq t3,r0,downli t2,1beq t3,t2,rightli t2,2beq t3,t2,upli t2,3beq t3,t2,leftnopdown:li t2,0xCAbnel a1,t2,storeaddiu a1,a1,1li t3,1sb t3,4(t8)right:li t2,0x96bnel a2,t2,storeaddiu a2,a2,1li t3,2sb t3,4(t8)up:li t2,0x66bnel a1,t2,storeaddiu a1,a1,0xFFFFli t3,3sb t3,4(t8)left:li t2,0x50bnel a2,t2,storeaddiu a2,a2,0xFFFFli t3,0sb t3,4(t8)store:sh a2,0(t8)sh a1,2(t8)j 0x8023BBC4nop 8123BBBC 081C8123BBBE 00008123BBC0 00008123BBC2 000081700000 3C1881700002 807F81700004 830B81700006 000581700008 140B8170000A 00078170000C 00008170000E 000081700010 340B81700012 000181700014 A30B81700016 000581700018 340B8170001A 00668170001C A70B8170001E 000081700020 340B81700022 005081700024 A70B81700026 000281700028 87068170002A 00008170002C 87058170002E 000281700030 830B81700032 000481700034 100B81700036 000781700038 340A8170003A 00018170003C 114B8170003E 000A81700040 340A81700042 000281700044 114B81700046 000D81700048 340A8170004A 00038170004C 114B8170004E 001081700050 000081700052 000081700054 340A81700056 00CA81700058 55458170005A 00128170005C 24A58170005E 000181700060 340B81700062 000181700064 A30B81700066 000481700068 340A8170006A 00968170006C 55468170006E 000D81700070 24C681700072 000181700074 340B81700076 000281700078 A30B8170007A 00048170007C 340A8170007E 006681700080 554581700082 000881700084 24A581700086 FFFF81700088 340B8170008A 00038170008C A30B8170008E 000481700090 340A81700092 005081700094 554681700096 000381700098 24C68170009A FFFF8170009C 340B8170009E 0000817000A0 A30B817000A2 0004817000A4 A706817000A6 0000817000A8 A705817000AA 0002817000AC 0808817000AE EEF1817000B0 0000817000B2 0000

 

 

 

Text functions:

 

8010BDBC(80212020 + 20D8) - returns 4 if text finished printing but waiting
80106BC8(80212020) - decides if choice was chosen in text (returns 1)
 
value at 80222020 + 0x4BD = choice number
 
8010B720(80212020, msg) - sets next text string
 
Other:
 
800FD9AC() - PRNG
 
8002F828(sfx, actor) - play sound (not sure if arguments are correct, haven't checked)
8002f7dc(sfx, actor) - play sound (Link)

 

Actor functions:

Note: some of these are in notation I don't quite remember... z_gp = ctxt = 80212020

 

800343CC(u32 z_gp, *a, *a->collision+0x4C,u32 b, *func_1, *func_2)

where b is something like b = (int)((float)aval(a,u16,collision+0x40)+30.0f)

This is for NPCs where one of the functions runs normally and the other runs when you speak to them (iirc)

 

8005DC4C(u32 z_gp,u32 z_gp+0x11E60,*a->collision) - updates actor's collision/hitbox

 

8005C364(u32 z_gp,*a->collision) - sets up part of collision
 
8005C4AC(u32 z_gp,*a->collision,*a,*a.data) - sets up rest of collision
 
80061EFC(*a+0x98,0,*a.data?) - sets up health

 

8002B1E0(*a+0xB4,u32 ?,u32 0x8002B5EC,u32 ?) - sets up init rotation or something

 

800626DC (actor, hitbox) - to do with taking damage/hitbox interaction, didn't figure it out yet
8005D9F4 (ctxt, ctxt + 11E60, hitbox) - same
 
unfinished Skulltula actor function map (102 on map select, big skulltula):
forum kills the spacing so http://pastebin.com/ZTScygRA

 

Hookshot for Young Link:

 

 

C348B8: change 0014 to 0015 Display list pointers:Hookshot in hand: 0xB9D07C and 0xB9D084FPS view: 0xB9D0D0Spike: 0xC3473C (3C19 xxxx 2739 xxxx)Chain: 0xC34858 (3C0F xxxx 25EF xxxx)Circle: 0xB07E54 (3C0E xxxx 8328 001E 25CE xxxx)

 

Magic bar acts like stamina in SS, hold L to run fast:

 

 

.org 0x80070F6C.set noreorder#include <mips.h>/* This is so the code will run all the time */        nop .org 0x80070718.set noreorder#include <mips.h>/* replaces debug time display - can easily patch it to ROM then */ /* memory addresses */#define magic 0x8015E692#define linkptr 0x80212020 + 0x1C44#define cont 0x80166AF0 /* code */li a0, magicli a1, linkptrlw a1, 0 (a1)li a2, contlhu a2, 0 (a2)lui a3, %hi(data)addiu a3, a3, %lo(data)lbu v0, 1 (a0)lb t0, 0 (a0)beq t0, $zero, endli t1, 1li t2, 0x30beql t0, t1, mainsb t2, 3 (a3)li t1, 2li t2, 0x60beql t0, t1, mainsb t2, 3 (a3)main:sltiu t0, v0, 1andi a2, a2, 0x0020sltiu a2, a2, 1or t0, a2, t0bne t0, $zero, updatelwc1 $f0, 0x838 (a1)mtc1 $zero, $f4cvt.s.w $f4, $f4c.eq.s $f0, $f4li t0, 0bc1fl restli t0, 1rest:beq t0, $zero, updatelui t2, 0x4100addiu v0, v0, -1sb v0, 1 (a0)sh $zero, 0 (a3)mtc1 t2, $f6b endswc1 $f6, 0x838 (a1)update:lb t0, 0 (a3)lb v1, 2 (a3)sltu t2, v0, v1bnel t2, $zero, check_magicsh $zero, 0 (a3)beql t0, $zero, check_magiclb v1, 2 (a3)beq a2, $zero, endlb t2, 3 (a3)addiu v0, v0, 1sltu t3, v0, t2beql t3, $zero, doneor v0, t2, $zerodone:b endsb v0, 1 (a0)check_magic:bne v0, v1, endlb t0, 1 (a3)addiu t0, t0, 1sb t0, 1 (a3)sltiu t1, t0, 40xori t1, t1, 1sb t1, 0 (a3)end:sb v0, 2 (a3)jr $ranop /* data */data:.byte 0x00 //refill flag.byte 0x00 //counter.byte 0x00 //previous magic value.byte 0x00 //maximum magic value 81070F6C 000081070F6E 000081070718 3C048107071A 80158107071C 34848107071E E69281070720 3C0581070722 802181070724 34A581070726 3C6481070728 8CA58107072A 00008107072C 3C068107072E 801681070730 34C681070732 6AF081070734 94C681070736 000081070738 3C078107073A 80078107073C 24E78107073E 082081070740 908281070742 000181070744 808881070746 000081070748 11008107074A 00328107074C 24098107074E 000181070750 240A81070752 003081070754 510981070756 000581070758 A0EA8107075A 00038107075C 24098107075E 000281070760 240A81070762 006081070764 510981070766 000181070768 A0EA8107076A 00038107076C 2C488107076E 000181070770 30C681070772 002081070774 2CC681070776 000181070778 00C88107077A 40258107077C 15008107077E 000F81070780 C4A081070782 083881070784 448081070786 200081070788 46808107078A 21208107078C 46048107078E 003281070790 240881070792 000081070794 450281070796 000181070798 24088107079A 00018107079C 11008107079E 0007810707A0 3C0A810707A2 4100810707A4 2442810707A6 FFFF810707A8 A082810707AA 0001810707AC A4E0810707AE 0000810707B0 448A810707B2 3000810707B4 1000810707B6 0017810707B8 E4A6810707BA 0838810707BC 80E8810707BE 0000810707C0 80E3810707C2 0002810707C4 0043810707C6 502B810707C8 5540810707CA 000B810707CC A4E0810707CE 0000810707D0 5100810707D2 0009810707D4 80E3810707D6 0002810707D8 10C0810707DA 000E810707DC 80EA810707DE 0003810707E0 2442810707E2 0001810707E4 004A810707E6 582B810707E8 5160810707EA 0001810707EC 0140810707EE 1025810707F0 1000810707F2 0008810707F4 A082810707F6 0001810707F8 1443810707FA 0006810707FC 80E8810707FE 000181070800 250881070802 000181070804 A0E881070806 000181070808 2D098107080A 00288107080C 39298107080E 000181070810 A0E981070812 000081070814 A0E281070816 000281070818 03E08107081A 00088107081C 00008107081E 000081070820 000081070822 0000

gameshark code would need to be turned on then off to work properly

 

 

Old hack that replaced normal interface with a text based one:

 

 

.org 0x80111B34sh t6, 0x0DD2(t8).org 0x80082214xori t6, t8, 0x00A4.org 0x80081A94xori t9, t8, 0x00A4 .org 0x8008722Cb damagelui v0, 0x8070           ; damage to Link routine .org 0x800A9294nop                      ; writes normal stats to file 1  .org 0x80070F68lh t6, 0x0DD2(v0)        ; check for map disabled flagnop                      ; rather than debugging option .org 0x80070748 ;                         enable/disable text or a0, s0, r0addiu a1, r0, 0x0007     ; text xjal 0x800FB41C           ; set text xyaddiu a2, r0, 0x001C     ; text y addiu t7, r0, 0x0040     ; text asw t7, 0x0010(sp)or a0, s0, r0addiu a1, r0, 0x00FF     ; text raddiu a2, r0, 0x0080     ; text gjal 0x800FB3AC           ; set text rgbaaddiu a3, r0, 0x0060     ; text b lui a1, 0x8014addiu a1, a1, 0xC3E4jal 0x800FBCB4or a0, s0, r0 lui t6, 0x8021lh t6, 0x17E2(t6)bnel t6, r0, end_functionnop ;                         time display or a0, s0, r0addiu a1, r0, 0x0001     ; text xjal 0x800FB41C           ; set text xyaddiu a2, r0, 0x0001     ; text y addiu t7, r0, 0x0040     ; text asw t7, 0x0010(sp)or a0, s0, r0addiu a1, r0, 0x00FF     ; text raddiu a2, r0, 0x00FF     ; text gjal 0x800FB3AC           ; set text rgbaaddiu a3, r0, 0x0060     ; text b lui a1, 0x8014addiu a1, a1, 0xC3D0  ;get hourslui v0, 0x8016lhu v0, 0xE66C(v0)mtc1 v0, f4or a0, s0, r0bgez v0, lbl_80070834cvt.s.w f6, f4lui at, 0x4F80mtc1 at, f8nopadd.s f6, f6, f8lbl_80070834:lui at, 0x3CB4mtc1 at, f10lui at, 0x4270mtc1 at, f18mul.s f16, f6, f10addiu a2, r0, 0x0001div.s f4, f16, f18cfc1 t0, f31ctc1 a2, f31nopcvt.w.s f8, f4cfc1 a2, f31nopandi a2, a2, 0x0078beq a2, r0, lbl_800708B8lui at, 0x4F00mtc1 at, f8addiu a2, r0, 0x0001sub.s f8, f4, f8ctc1 a2, f31nopcvt.w.s f8, f8cfc1 a2, f31nopandi a2, a2, 0x0078bnez a2, lbl_800708B0nopmfc1 a2, f8lui at, 0x8000beq r0, r0, lbl_800708C8or a2, a2, atlbl_800708B0:beq r0, r0, lbl_800708C8addiu a2, r0, 0xFFFFlbl_800708B8:mfc1 a2, f8nopbltz a2, lbl_800708B0noplbl_800708C8:ctc1 t0, f31jal 0x800FBCB4andi a2, a2, 0x00FF ; get minuteslui a1, 0x8014addiu a1, a1, 0xC3DClui v0, 0x8016lhu v0, 0xE66C(v0)mtc1 v0, f6or a0, s0, r0bgez v0, lbl_80070960cvt.s.w f10, f6lui at, 0x4F80mtc1 at, f16nopadd.s f10, f10, f16lbl_80070960:lui at, 0x3CB4mtc1 at, f18addiu at, r0, 0x003Cmul.s f4, f10, f18trunc.w.s f8, f4mfc1 a2, f8nopsll a2, a2, 0x10sra a2, a2, 0x10div a2, atmfhi a2jal 0x800FBCB4nop ;                        health 8013C400 or a0, s0, r0addiu a1, r0, 0x0001     ; text xjal 0x800FB41C           ; set text xyaddiu a2, r0, 0x0004     ; text y addiu t7, r0, 0x0040     ; text asw t7, 0x0010(sp)or a0, s0, r0addiu a1, r0, 0x00FF     ; text raddiu a2, r0, 0x0046     ; text gjal 0x800FB3AC           ; set text rgbaaddiu a3, r0, 0x0032     ; text blui a2, 0x8016lh a2, 0xE690(a2)        ; get current healthlui a1, 0x8014addiu a1, a1, 0xC400jal 0x800FBCB4or a0, s0, r0lui a2, 0x8016lh a2, 0xE68E(a2)        ; get max healthlui a1, 0x8014addiu a1, a1, 0xC40Cjal 0x800FBCB4or a0, s0, r0 ;                        Magic 8013C410       * only if magic=got lui t7, 0x8016lb t7, 0xE692(t7)beq t7, r0, rupeesnop or a0, s0, r0addiu a1, r0, 0x0001     ; text xjal 0x800FB41C           ; set text xyaddiu a2, r0, 0x0005     ; text y addiu t7, r0, 0x0040     ; text asw t7, 0x0010(sp)or a0, s0, r0addiu a1, r0, 0x0050     ; text raddiu a2, r0, 0x0080     ; text gjal 0x800FB3AC           ; set text rgbaaddiu a3, r0, 0x00DF     ; text blui a2, 0x8016lb a2, 0xE693(a2)        ; get current magiclui a1, 0x8014addiu a1, a1, 0xC410jal 0x800FBCB4or a0, s0, r0 ;                        Rupees 8013C43Crupees:or a0, s0, r0addiu a1, r0, 0x0001     ; text xjal 0x800FB41C           ; set text xyaddiu a2, r0, 0x0006     ; text y addiu t7, r0, 0x0040     ; text asw t7, 0x0010(sp)or a0, s0, r0addiu a1, r0, 0x0050     ; text raddiu a2, r0, 0x00F0     ; text gjal 0x800FB3AC           ; set text rgbaaddiu a3, r0, 0x0090     ; text blui a2, 0x8016lh a2, 0xE694(a2)        ; get current rupeeslui a1, 0x8014addiu a1, a1, 0xC43Cjal 0x800FBCB4or a0, s0, r0 ;                        Spiders 8013C448 or a0, s0, r0addiu a1, r0, 0x0001     ; text xjal 0x800FB41C           ; set text xyaddiu a2, r0, 0x0007     ; text y addiu t7, r0, 0x0040     ; text asw t7, 0x0010(sp)or a0, s0, r0addiu a1, r0, 0x00C0     ; text raddiu a2, r0, 0x0090     ; text gjal 0x800FB3AC           ; set text rgbaaddiu a3, r0, 0x0040     ; text blui a2, 0x8016lh a2, 0xE730(a2)        ; get current spiderslui a1, 0x8014addiu a1, a1, 0xC448jal 0x800FBCB4or a0, s0, r0 ;                       Attack level 8013C420 or a0, s0, r0addiu a1, r0, 0x0001     ; text xjal 0x800FB41C           ; set text xyaddiu a2, r0, 0x0002     ; text y addiu t7, r0, 0x0040     ; text asw t7, 0x0010(sp)or a0, s0, r0addiu a1, r0, 0x00C0     ; text raddiu a2, r0, 0x0090     ; text gjal 0x800FB3AC           ; set text rgbaaddiu a3, r0, 0x00F0     ; text blui a2, 0x8070lb a2, 0x0000(a2)        ; get current attacklui a1, 0x8014addiu a1, a1, 0xC420jal 0x800FBCB4or a0, s0, r0 ;                       Defence level 8013C430 or a0, s0, r0addiu a1, r0, 0x0001     ; text xjal 0x800FB41C           ; set text xyaddiu a2, r0, 0x0003     ; text y addiu t7, r0, 0x0040     ; text asw t7, 0x0010(sp)or a0, s0, r0addiu a1, r0, 0x00C0     ; text raddiu a2, r0, 0x00F0     ; text gjal 0x800FB3AC           ; set text rgbaaddiu a3, r0, 0x0040     ; text blui a2, 0x8070lb a2, 0x0001(a2)        ; get current defencelui a1, 0x8014addiu a1, a1, 0xC430jal 0x800FBCB4or a0, s0, r0 ; end interface displayend_function:jal 0x800FBC64or a0, s0, r0lw t4, 0x006C(sp)or a0, s0, r0jal 0x800FBC14sw v0, 0x0000(t4) ; whatever else can go here ;set attack levellui t6, 0x8016lb t6, 0xE6D1(t6)sll t6, t6, 0x1Csrl t6, t6, 0x1Clui t7, 0x8070sb t6, 0x0000(t7);set defence levellui t6, 0x8016lb t5, 0xE6D1(t6)lb t6, 0xE6D1(t6)sll t5, t5, 0x1Csrl t5, t5, 0x1Csrl t6, t6, 0x04addiu t4, r0, 0x0003beql t4, t5, enddfaddiu t6, t6, 0xFFFFenddf:bltzl t6, storedfaddu t6, r0, r0storedf:sb t6, 0x0001(t7)  ; end function lw ra, 0x0024(sp)lw s0, 0x0020(sp)addiu sp, sp, 0x0068jr ranop ;0x80070B28 other functions start here damage:bgez s0, storedamlb v0, 0x0001(v0); loads defence levelbeql v0, r0, damendaddu s0, s0, s0addiu t9, r0, 0x0001beq t9, v0, damendaddiu t9, r0, 0xFFFEaddu t9, v0, t9beql t9, r0, damendaddiu s0, s0, 0x0008bgtzl t9, damendaddiu s0, s0, 0x0010damend:bgezl s0, storedamaddiu s0, r0, 0xFFFCstoredam:lh v0, 0x002E(t0)b 0x80087234addu t9, t8, s0

Note: requires some text to be at certain places in the ROM

 

ROMaddr|Text string-------|----------BB3570 |Time: %02d:BB357C |%02dBB3584 |Enable/Disable Display: LBB35A0 |Health: %u/BB35AC |%uBB35B0 |Magic: %uBB35C0 |Atk.lv: %uBB35D0 |Def.lv: %uBB35DC |Rupees: %uBB35E8 |Spiders: %u

 

or copy this

Posted Image

 

 

Ocarina hacks:

 

 

;---extended notes---; t3 = note, t4 = button ; ocarina songs broken for now ; .org 0x800ED6D4li t7, 0x0000        ; do nothing .org 0x800ED688li t8, 0x0000        ; do nothing .org 0x800ED538j 0x80700000nop .org 0x800ED5A0nopnop .org 0x80700000bezl v0, no_noteli t7, 0x0000lui t7, 0x8060sw v0, 0x0000(t7);crsll v0, v0, 0x1Fsrl v0, v0, 0x1Fli t3, 0x0004bgtzl v0, endli t4, 0x0002;cllw v0, 0x0000(t7)sll v0, v0, 0x1Esrl v0, v0, 0x1Fli t3, 0x0005bgtzl v0, endli t4, 0x0003;cdlw v0, 0x0000(t7)sll v0, v0, 0x1Dsrl v0, v0, 0x1Fli t3, 0x0002bgtzl v0, endli t4, 0x0001;culw v0, 0x0000(t7)sll v0, v0, 0x1Csrl v0, v0, 0x1Fli t3, 0x0007bgtzl v0, endli t4, 0x0004;rlw v0, 0x0000(t7)sll v0, v0, 0x1Bsrl v0, v0, 0x1Fli t3, 0x0009bgtzl v0, endli t4, 0x0005;llw v0, 0x0000(t7)sll v0, v0, 0x1Asrl v0, v0, 0x1Fli t3, 0x000Cbgtzl v0, endli t4, 0x0007;zlw v0, 0x0000(t7)sll v0, v0, 0x12srl v0, v0, 0x1Fli t3, 0x000Bbgtzl v0, endli t4, 0x0006;alw v0, 0x0000(t7)sll v0, v0, 0x10srl v0, v0, 0x1Fli t3, 0x0000bgtzl v0, endli t4, 0x0000;phew...bgtzl v0, no_noteand t7, v0, a1end:j 0x800ED590nopno_note:j 0x800ED56Cnop ;---end hack---; ;---custom notes (not needed now)---; .org 0x800E6424j 0x80700000nop.org 0x80700000lui v0, 0x8020addiu v0, v0, 0x9025bne v0, t7, endnop;custom notes... addiu v0, r0, 0x0002beql t6, v0, endaddiu t6, r0, 0x0004 addiu v0, r0, 0x0005beql t6, v0, endaddiu t6, r0, 0x0006 addiu v0, r0, 0x0009beql t6, v0, endaddiu t6, r0, 0x0007 addiu v0, r0, 0x000Bbeql t6, v0, endaddiu t6, r0, 0x000B addiu v0, r0, 0x000Ebeql t6, v0, endaddiu t6, r0, 0x000C end:jr rasb t6, 0x00C4 (t7)

 

 

 

 

Functions that are probably the same in MM debug and OoT debug (by comparing actors):

 

 

Majora's Mask | Ocarina of Time              |8008907C      | 800FD9AC800B8A5C      | 8001F548800B908C      | 8001F940800C2B18      | 8002829C800C3060      | 800286CC800C4408      | 800297A4800C54F4      | 8002A6B8800C61DC      | 8002B1E0800C84A8      | 8002CB40800C8664      | 8002CD6C800C86A8      | 8002CDA0800C8F0C      | 8002D570800C8F5C      | 8002D5B8800C8FE0      | set_actor_size800C92FC      | 8002D8E0800C9504      | 8002D9A4800C984C      | 8002DB48800C9E18      | 8002DF38800CA00C      | 8002E084800CA5A0      | 8002E4B4800CBB00      | 8002F410800CBB24      | 8002F434800CBCA8      | 8002F554800CC05C      | 8002F7DC800CC0E8      | 8002F828800CC1F0      | 8002F8F0800CC304      | 8002F9EC800D01A8      | 80032C7C800D0558      | 80033260800D0938      | 80033748800D1500      | 8003426C800D2E9C      | 80035628800D2EC8      | 80035650800D2F28      | 8003573C800D5000      | 80038A28800DAB74      | 8003DE84800DBBA0      | 8003EB84800DFD28      | 800DFD28800F8E88      | 8005A9F4800FA04C      | 8005BCC8800FA3FC      | 8005C050800FA760      | 8005C3AC800FA958      | 8005C4AC800FB688      | 8005D018800FB6F4      | 8005D060800FB7E4      | 8005D104800FBFF8      | 8005D79C800FC268      | 8005D9F4800FC4D8      | 8005DC4C8010174C      | 80061ED4801021D4      | 800626DC801023A0      | 800628A480102AB8      | 80062D608010DE50      | 8001F9408011DA7C      | 800778348011DAD8      | 800778708011DC18      | 800778AC8011DDE4      | 80077A008011E3A8      | 80077E408011E458      | 80077E9C8011E490      | 80077ED08011E7C4      | 80077FD08011E838      | 800780288011E988      | 800780688011EB18      | 800780DC8011EE40      | 8007841C8011EF04      | 8007869C8011F020      | 800787BC80120C18      | 80079D8C80120C98      | 80079DF080120D1C      | 80079E58801219AC      | 8007A76480121A28      | 8007A7C4801467E8      | 8008F10480148E50      | 800904808014FCF8      | 80093D188014FDE8      | 80093D84801501C0      | 80094044801512B8      | 80094F408015AB30      | 800A15C88015AFD8      | 800A1AC88015B950      | 800A20008015E160      | 800A457C8015E4A0      | 800A49FC8015EC98      | 800A51A08015ECFC      | 800A51E88015ED70      | 800A52408015EDE8      | 800A529C8015EED0      | 800A534C8015F29C      | 800A56C88018C4E0      | 800FA00C801A0BE4      | 8008E988801A1DFC      | 800C0C88801AEF64      | 800C6AC4801AEFE4      | 800C6B54801B4E3C      | sinf801BBE44      | 800FD250801BC098      | 800D0664801BC18C      | 800D084C801BC220      | 800D0884801BC29C      | 800D08D8801BC2DC      | 800D08FC801BC330      | 800D0930801BC3A4      | 800D0984801BC4C0      | 800D0A8C801BC5B8      | 800D0B70801BCB5C      | 800D0D20801BCEE0      | 800D0ED4801BD25C      | 800D1084801BDCDC      | 800D1A88801BDD84      | 800D1AF4801E72C8      | 80078884801EFA78      | 800F8D04

 

 

  • Like 2
Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.