owned this note
owned this note
Published
Linked with GitHub
# ROM splitter configuration file
name: "Mission Impossible"
# checksums from ROM header offsets 0x10 and 0x14
# used for auto configuration detection
checksum1: 0x26035CF8
checksum2: 0x802B9135
# base filename used for outputs (please, no spaces)
basename: "mission_impossible_usa"
ranges:
- [0x000000, 0x000040, "header", "header"]
- [0x000040, 0x001000, "bin", "boot"]
- [0x001000, 0x084A60, "asm", "main", 0x80000400] # Functions
labels:
# OS Boot config variables
- [0x80000300, "osTvType"] # 0 for PAL, 1 for NTSC, 2 for MPAL
- [0x80000304, "osRomType"]
- [0x80000308, "osRomBase"]
- [0x8000030C, "osResetType"]
- [0x80000310, "osCicId"]
- [0x80000314, "osVersion"]
- [0x80000318, "osMemSize"]
- [0x8000031C, "osAppNMIBuffer"]
# Functions
- [0x80000400, "entry_point"]
- [0x8000E020, "thread1_idle"]
- [0x8000E090, "main"]
- [0x800277B4, "set_vi_count_target"] # void set_vi_count_target(s16 index, s16 target); // Sets target vi count for an index in viCountTargetArray, target is multiplied by 5 in PAL & 6 in NTSC/MPAL.
- [0x80027828, "is_vi_count_within_target"] # u8 is_vi_count_within_target(s16 index); // index is a number within [0, 5]
- [0x8002882C, "get_text"] # char* get_text(u16 textOffset);
- [0x8003B590, "show_fullscreen_texture_with_delay"] # void show_fullscreen_texture_with_delay(s16 textureID, s16 numFramesBeforeCanSkip, s16 numFramesToShow);
- [0x80048988, "thread6_entry"]
- [0x80049E30, "draw_file_select_menu"] # draw_file_select_menu(s16 currentTabIndex, u8 numOfTabs, u8 isCurrentTabSelected, u8 currentTabSelectedOption, u8 isDeletingFile, s16 deletingFileOptionYesNo);
- [0x80051DD8, "draw_file_select_tabs"] # draw_file_select_tabs(Gfx** gfx, s16 tabTexId, s16 numTabsMinusOne, s16 selectedTabTexId, s16 selectedTabIndex);
- [0x80052728, "print_blue_title_text"] # print_blue_title_text(Gfx** gfx, u16 textOffset);
- [0x80063A10, "draw_fullscreen_texture"] # draw_fullscreen_texture(Gfx** gfx, s16 textureID, u8 opacity);
- [0x8006C364, "get_vi_count"] # s32 get_vi_count();
- [0x8006C370, "save_vi_count"] # s32 save_vi_count();
- [0x8006C384, "load_vi_count"] # s32 load_vi_count();
- [0x8006C398, "set_vi_count"] # void set_vi_count(s32 newCount);
- [0x8006C86C, "thread9_entry"]
- [0x8006C9A0, "set_text_rgb"] # set_text_rgb(u8 red, u8 green, u8 blue);
- [0x8006C9BC, "set_text_alpha"] # set_text_alpha(u8 alpha);
- [0x8006C9C8, "set_text_bg_rgba"] # set_text_bg_rgba(u8 red, u8 green, u8 blue, u8 alpha);
- [0x8006C9EC, "set_text_bg_margins"] # set_text_bg_margins(s16 left, s16 right, s16 top, s16 bottom);
- [0x8006CA34, "get_text_width"] # u16 get_text_width(char* text);
- [0x8006CAA8, "draw_text_bg_box"] # called if 'renderBackground' in print_text() is true
- [0x8006DB84, "print_text"] # print_text(Gfx** gfx, int x, int y, char* text, u8 renderBackground);
- [0x8006E730, "thread7_entry"]
- [0x8006EFEC, "is_controller_1_attached"] # u8 is_controller_1_attached();
- [0x8006EFF8, "is_rumble_pak_attached"] # u8 is_rumble_pak_attached();
- [0x8006EA04, "thread8_entry"]
- [0x800725A4, "thread3_entry"]
- [0x80072CA0, "alHeapInit"]
- [0x80072CE0, "alHeapDBAlloc"]
- [0x80072D30, "alSynNew"]
- [0x80072FFC, "alAudioFrame"]
- [0x800731AC, "__allocParam"]
- [0x800731D8, "__freeParam"]
- [0x800731F0, "_collectPVoices"]
- [0x80073244, "_freePVoice"]
- [0x800732CC, "_timeToSamples"]
- [0x800733C0, "alSynDelete"]
- [0x800733D0, "alSynAddPlayer"]
- [0x80073420, "alSynAllocVoice"]
- [0x80073548, "_allocatePVoice"]
- [0x80073600, "alSynStopVoice"]
- [0x80073680, "alSynStartVoice"]
- [0x80073720, "alSynSetPitch"]
- [0x800737B0, "alSynSetVol"]
- [0x80073900, "alSynSetPan"]
- [0x80073990, "alSynAllocFX"]
- [0x80073A30, "_nsqrtf"]
- [0x80073A40, "__cosf"]
- [0x80073B90, "coss"]
- [0x80073BC0, "guLookAtF"]
- [0x80073F40, "guLookAt"]
- [0x8007462C, "guMtxXFMF"]
- [0x80074790, "guPerspectiveF"]
- [0x80074940, "guPerspective"]
- [0x80074BF0, "__sinf"]
- [0x80074D90, "sins"]
- [0x80074EC0, "guRandom"]
- [0x80074EF0, "osAiGetLength"]
- [0x80074F00, "osAiSetFrequency"]
- [0x800750D0, "osViSetSpecialFeatures"]
- [0x80075240, "osViBlack"]
- [0x800752A0, "osContSetCh"]
- [0x80075300, "osEepromProbe"]
- [0x80075680, "osPfsInitPak"]
- [0x80075F70, "osCreatePiManager"]
- [0x80075F78, "__Dom2SpeedParam"]
- [0x80075F8C, "__osPiTable"]
- [0x80075F90, "__osCurrentHandle"]
- [0x80076100, "__osEPiRawStartDma"]
- [0x800762D0, "__osDevMgrMain"]
- [0x80076690, "__osSiCreateAccessQueue"]
- [0x80076692, "__osBbFatBlock"]
- [0x80076694, "__osSiAccessQueue"]
- [0x80076698, "__osPiAccessQueue"]
- [0x800766E4, "__osSiGetAccess"]
- [0x80076750, "__osPiRelAccess"]
- [0x80076780, "osPiStartDma"]
- [0x80076830, "strchr"]
- [0x80076870, "strlen"]
- [0x80076894, "memcpy"]
- [0x800768C0, "sprintf"]
- [0x80076A00, "__osDisableInt"]
- [0x80076A20, "__osRestoreInt"]
- [0x80076AA0, "osSetIntMask"]
- [0x80076BC0, "osWritebackDCacheAll"]
- [0x80076BF0, "osCreateMesgQueue"]
- [0x80076C20, "osCreateThread"]
- [0x80076CF0, "osGetThreadPri"]
- [0x80076D10, "osGetTime"]
- [0x80076DA0, "osJamMesg"]
- [0x80076EE0, "osRecvMesg"]
- [0x80077010, "__osResetGlobalIntMask"]
- [0x80077060, "osSendMesg"]
- [0x80077190, "fbPixel"]
- [0x800771F0, "__osSetGlobalIntMask"]
- [0x80077230, "osSetThreadPri"]
- [0x800773A0, "osStartThread"]
- [0x800774C0, "__osDequeueThread"]
- [0x800774C8, "__osRunQueue"]
- [0x800774CC, "__osActiveQueue"]
- [0x800774D0, "__osRunningThread"]
- [0x800774D4, "__osFaultedThread"]
- [0x80077500, "__osTimerServicesInit"]
- [0x80077504, "__osProfileOverflowBin"]
- [0x80077508, "__osCurrentTime"]
- [0x80077554, "__osTimerInterrupt"]
- [0x80077800, "osVirtualToPhysical"]
- [0x80077860, "osYieldThread"]
- [0x800778C0, "osCreateScheduler"]
- [0x80077A08, "osScAddClient"]
- [0x80077A60, "osScRemoveClient"]
- [0x80077AF0, "osScGetCmdQ"]
- [0x80077AF8, "thread4_entry"]
- [0x800791E0, "osContStartReadData"]
- [0x80079268, "osContGetReadData"]
- [0x800793C0, "osContInit"]
- [0x800793C1, "__osContLastCmd"]
- [0x800793C4, "__osEepromTimerMsg"]
- [0x800793C8, "__osEepromTimer"]
- [0x800793D0, "__osContPifRam"]
- [0x800798F0, "osPfsIsPlug"]
- [0x80079900, "__osPfsPifRam"]
- [0x80079A6C, "__osPfsRequestData"]
- [0x80079B10, "__osPfsGetInitData"]
- [0x8007A910, "_init_lpfilter"]
- [0x8007A9B4, "alFxNew"]
- [0x8007B140, "alAdpcmPull"]
- [0x8007B584, "alRaw16Pull"]
- [0x8007B920, "alLoadParam"]
- [0x8007BC50, "alAuxBusPull"]
- [0x8007BD2C, "alAuxBusParam"]
- [0x8007CA90, "alFilterNew"]
- [0x8007CAB0, "alMainBusPull"]
- [0x8007CBF0, "alMainBusParam"]
- [0x8007CC20, "alResamplePull"]
- [0x8007CE0C, "alResampleParam"]
- [0x8007DBD0, "__udiv_w_sdiv"]
- [0x8007DBE0, "alCopy"]
- [0x8007DC20, "__osAiDeviceBusy"]
- [0x8007DC40, "osDpSetNextBuffer"]
- [0x8007DCE0, "osSpTaskLoad"]
- [0x8007DEEC, "osSpTaskStartGo"]
- [0x8007DF20, "osSpTaskYield"]
- [0x8007DF40, "osSpTaskYielded"]
- [0x8007DF90, "__osViInit"]
- [0x8007DFF0, "__osViCurr"]
- [0x8007DFF4, "__osViNext"]
- [0x8007E0A0, "osViGetNextFramebuffer"]
- [0x8007E120, "osCreateViManager"]
- [0x8007E13C, "__additional_scanline"]
- [0x8007E450, "osViSetEvent"]
- [0x8007E4B0, "osViSetMode"]
- [0x8007E500, "osViSwapBuffer"]
- [0x8007E840, "__osSpRawWriteIo"]
- [0x8007E8D0, "__osSpRawReadIo"]
- [0x8007FD74, "__osPiRawWriteIo"]
- [0x8007FDE0, "__osPiRawStartDma"]
- [0x8007FEB0, "osPiGetCmdQueue"]
- [0x8007FEC0, "__osGetActiveQueue"]
- [0x80080650, "_bcopy"]
- [0x80080970, "_bzero"]
- [0x80080A10, "_Printf"]
- [0x80081460, "osGetCount"]
- [0x80081470, "__osGetSR"]
- [0x80081500, "__osProbeTLB"]
- [0x800815C0, "__osSetCompare"]
- [0x800815D0, "__osSetFpcCsr"]
- [0x800815E0, "__osSetSR"]
- [0x800815F0, "osMapTLBRdb"]
- [0x80081650, "osDestroyThread"]
- [0x80081720, "__osDpDeviceBusy"]
- [0x80081740, "__osSpDeviceBusy"]
- [0x80081760, "__osSpGetStatus"]
- [0x80081770, "__osSpSetStatus"]
- [0x80081780, "__osSpSetPc"]
- [0x800817B0, "__osSpRawStartDma"]
- [0x800818B0, "__osGetCurrFaultedThread"]
- [0x800818C0, "__osSiDeviceBusy"]
- [0x800818E0, "_Litob"]
- [0x80081B30, "_Ldtob"]
- [0x800825C0, "ldiv"]
- [0x80082644, "lldiv"]
- [0x80083E50, "zero"] # Last function, just returns zero.
# Variables
- [0x80083E60, "gRspBoot"] # Boot code for gfx and audio ucode, is 0xD0 bytes long
- [0x80083F30, "gGfxSPTask"] # Start of F3DEX ucode
- [0x80085360, "gAudioSPTask"] # Start of audio RSP ucode
- [0x80086190, "gLevelObjects"] # Pointer to the level object array
- [0x8008E700, "gTextColorRed"] # RGBA32 color used for print_text()
- [0x8008E701, "gTextColorGreen"]
- [0x8008E702, "gTextColorBlue"]
- [0x8008E703, "gTextColorAlpha"]
- [0x8008E704, "gTextBgColorRed"] # RGBA32 color for text background
- [0x8008E705, "gTextBgColorGreen"]
- [0x8008E706, "gTextBgColorBlue"]
- [0x8008E707, "gTextBgColorAlpha"]
- [0x8008E708, "gTextWidthSpacing"] # Spacing between text characters
- [0x8008E70A, "gTextBgLeftMargin"] # Margins for text background box
- [0x8008E70C, "gTextBgRightMargin"]
- [0x8008E70E, "gTextBgTopMargin"]
- [0x8008E710, "gTextBgBottomMargin"]
- [0x8008E720, "gIsController1Attached"]
- [0x800905E0, "gGfxSPTaskData"] # Start of F3DEX data, 0x800 bytes long
- [0x80090DE0, "gAudioSPTaskData"] # Start of audio RSP data, 0x800 bytes long
- [0x80093840, "gNumLevelObjects"] # Number of level objects
- [0x80093A98, "gViCountTargetArray"] # s32 viCountTargetArray[6];
- [0x800A1EC0, "gGfxOSTask"] # Graphics RSP OSTask struct, uses F3DEX.NoN v1.21 ucode
- [0x800A1F3C, "gViCount"] # Vertical interrupt counter
- [0x800A1F40, "gSavedViCount"] # gViCount is copied here when the game is paused, and is copied back to gViCount when unpaused.
- [0x800A1F50, "gThread9"]
- [0x800A2300, "gGfxSPTaskStack"] # DRAM stack for F3DEX ucode, is 0x400 bytes long
- [0x800A2780, "gThread7"]
- [0x800A2BA0, "gThread8"]
- [0x800A30FC, "gIsRumblePakAttached"]
- [0x800A9298, "gThread3"]
- [0x800A9690, "gIdleThread"]
- [0x800A2B30, "gThread7Stack"]
- [0x800A2F50, "gThread8Stack"]
- [0x800A5190, "gThread3Stack"]
- [0x800A7A50, "gIdleThreadStack"]
- [0x800A7B9C, "gFrameCount"] # Frame counter
- [0x800A9508, "gTextArray"] # char** gTextArray;
- [0x800A98CC, "gObjectPlacements"] # struct ObjectPlacements* gObjectPlacements; // Initial object placements for the current level
- [0x800B9910, "gThread6Stack"]
- [0x800BB070, "gThread6"]
- [0x801065D0, "gGfxSPTaskOutputBufferStart"] # Start of F3DEX output buffer
- [0x8010E5D0, "gGfxSPTaskOutputBufferEnd"] # End of F3DEX output buffer
- [0x8010E5F0, "gGfxSPTaskYieldBuffer"] # F3DEX yield buffer, is 0xC00 bytes long
- [0x8015DEA8, "gAudioOSTask"] # Audio RSP OSTask struct