changed 5 years ago
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
Select a repo