LEGO Star Wars: The Video Game (PlayStation 2)/ROM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for LEGO Star Wars: The Video Game (PlayStation 2).

This ROM map covers the functions and instructions of the game code. Addresses are from the US release.

This page's format will change as more content is added and documented. There will be a list of hexadecimal addresses, and for each address or range of addresses, there will either be a function header written in C-like pseudocode, a link to more detailed function information when available, and/or a brief description.

Some information about the source code--specifically the names of certain functions and which C file they were located in--can be ascertained from logger messages left in the code. These functions with "official" names will be in bold.

Functions

  • 0x001008c0: NuFileOpen(fileName, int a1)
  • 0x00100ca8: NuFilePos(a0)
  • 0x00101140: int (size) NuFileLoadBuffer(fileName, addrForBuffer, size)
  • 0x00101a30: NuFileBeginBlkRead(a0, a1)
  • 0x00101b70: NuFileendBlockRead(a0)
  • 0x00101c28: NuFileBeginBlkWrite(a0, a1)
  • 0x00101d18: NuFileEndBlkWrite(a0)
  • 0x001021d0: FNC_001021d0(a0, fileName, a2, a3)
  • 0x00102770: find in datfile(a0, fileName)
  • 0x00102b50: NuDatOpenEx(fileName, a1, a2, a3)
  • 0x00103ca0: jal NuDatOpenEx(a0, a1, a2, 0)
  • 0x00103cf0: readFPK(filePath, a1, a2, alignmentGran)
  • 0x00104cc0: MEM[a0 + 540]--
  • 0x00104ea0: FNC_00104ea0(fileName)
  • 0x00105180: malloc(size, location, a2)
  • 0x00105490: mem free(a0, location, a2)
  • 0x00106898: void strcat(destAddr, srcAddr)
  • 0x001068f0: int strcpy(destAddr, srcAddr)
  • 0x00106928: int strncpy(destAddr, srcAddr)
  • 0x00106988: int strlen(strAddr)
  • 0x00106af0: int strcmp(a0, a1)
  • 0x00106b40: int strcmpIgnoreCase?(a0, a1)
  • 0x00106e38: NuHexStringToI(a0)
  • 0x00106ef0: bool isLetter?(a0)
  • 0x001070a0: charToUpper?(byte a0)
  • 0x00107268: NuPPLoadBuffer?
  • 0x00108900: LoadModule(moduleName, a1, a2)
  • 0x00108b58: bool ReturnCodeCheckNuFileClose(fileName)?
  • 0x00108b78: NuFileOpenDir(a0)
  • 0x00108c70: NuFileCloseDir(a0)
  • 0x00108cd0: openFilePS2(str?, int index?)
  • 0x00108ea8
  • 0x00109698: NuMcOpenDir(a0, a1, dirName)
  • 0x001097e8: void NuMcCloseDir(int offset)
  • 0x00109878: Likely related to threads.
  • 0x0010a3a0: vectorAddition(a0 = a1 + a2)
  • 0x0010a3d8: vectorSubtraction(a0 = a1 - a2)
  • 0x0010a410: scalarMult(destVec, srcVec, scalarFloat)
  • 0x0010a478: crossProduct(destVec, srcVec1, srcVec2)
  • 0x0010a4c8: float dotProduct(vec1, vec2)
  • 0x0010a5b8: float vectorLength(a0)
  • 0x0010a5e8: float vectorComponentSum(a0)
  • 0x0010a9a0: vecA = vecB * f12 + vecC(1.0 - f12)
  • 0x0010c010: resetCamera?(nuCamera)
  • 0x0010ddb8: shiftAmountCalc(int targetNum)
  • 0x0010de58: MEM[0033dcc8] = f12
  • 0x0010efa0: MEM[0033dcd0] = a0 (double)
  • 0x0010efb0: MEM[a0] = a1 (MEM[0033dce0] if a0 == 0)
  • 0x0010f120-0x0010f7b4: vector register operations
  • 0x0010fb08: NuAnimCurve2CalcVal(a0, a1, a2)
  • 0x00111bd0: readSomeAnimFile(filename, a1, a2, a3)
  • 0x00111c80: NuAnimDataLoadBuff?
  • 0x00114ee8: bool specObjValid(specObj)
  • 0x00114f38: FNC_00114f38(specObj?)
  • 0x00114f88: FNC_00114f88(specObj?, a1)
  • 0x00115408: NuSpecialGetOriginRadius(specObj)
  • 0x00115510: FNC_00115510(scene, string)
  • 0x00115818: MEM[0033e234] = f12
  • 0x001196a8: MEM[0033e3a0] = 1
  • 0x001196b8: MEM[0033e3a0] = 0
  • 0x00119a08: FNC_00119a08(scene?, a1)
  • 0x00119b58: FNC_00119b58(nuCamera, a1)
  • 0x0011b4c8: &NuCamera malloc()
  • 0x0011b908: NuCameraClipTestExtents(a0, a1, f12)
  • 0x0011cc90: FNC_0011cc90(a0, txtrOffset)
  • 0x0011cd58: FNC_0011cd58(a0, txtrOffset + 1?)
  • 0x0011d388: CreateFont(fontName, addrForBuffer, a2)
  • 0x0011d608: &CreateMemFont(a0, size?, a2)
  • 0x0011d820: FNC_0011d820(&memfont)