The current URL is datacrystal.tcrf.net.
LEGO Star Wars: The Video Game (PlayStation 2)/ROM map
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 mode): returns a file descriptor (fd)0x00100ca8: NuFilePos(int fd)0x00100f70: NuFileClose(fileName)0x00101140: int (size) NuFileLoadBuffer(fileName, addrForBuffer, size)0x00101a30: NuFileBeginBlkRead(fd, header?)0x00101b70: NuFileendBlockRead(fd)0x00101c28: NuFileBeginBlkWrite(fd, a1)0x00101d18: NuFileEndBlkWrite(fd)0x001021d0: FNC_001021d0(a0, fileName, a2, a3)0x00102770: find in datfile(a0, fileName)0x001028d8: NuDatFileOpen?(*a0, fileNameToFind)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)0x001069b8: char *strstr(const char *str, const char *substr)0x00106af0: int strcmp(a0, a1)0x00106b40: int strcmpIgnoreCase?(a0, a1)0x00106de0: stringToUpper(*src, *dest)0x00106e38: NuHexStringToI(a0)0x00106ef0: bool isLetter?(a0)0x00106f50: int atoi(const char *nptr)0x001070a0: charToUpper(byte a0)0x00107268: NuPPLoadBuffer?(fd, a1, a2)0x00107548: DatLoadBuffer Unpack?0x00108340: initDevices()0x00108900: LoadModule(moduleName, a1, a2)0x00108b58: bool ReturnCodeCheckNuFileClose(fileName)?0x00108b78: NuFileOpenDir(a0)0x00108c70: NuFileCloseDir(a0)0x00108cd0: openFilePS2(str?, int index?)0x00108d60: closeFilePS2?(a0)0x00108da8: FNC_00108da8(a0,a1,buff_length): The name of the third parameter is given in this same function used in LEGO Star Wars II, which has more assertion and debug messages.0x00108ea80x00109698: 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): calculates how many shifts it takes for 1 << x to equal a00x0010de58: MEM[0033dcc8] = f120x0010efa0: MEM[0033dcd0] = a0 (double)0x0010efb0: MEM[a0] = a1 (MEM[0033dce0] if a0 == 0)0x0010f120-0x0010f7b4: vector register operations0x0010fb08: NuAnimCurve2CalcVal(a0, a1, a2)0x00111bd0: readSomeAnimFile(filename, *a1, a2, a3)0x00111c80: NuAnimDataLoadBuff?(a0, a1)0x00114ee8: bool specObjValid(specObj)0x00114f38: FNC_00114f38(specObj?)0x00114f88: FNC_00114f88(specObj?, a1)0x00115408: NuSpecialGetOriginRadius(*specObj)0x00115510: FNC_00115510(scene, string)0x00115818: MEM[0033e234] = f120x001196a8: MEM[0033e3a0] = 10x001196b8: MEM[0033e3a0] = 00x00119a08: 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)0x00182780: NuSoundUpdateV(token, a1)0x00183a10: bool? initSoundServices(a0, a1, a2, a3)0x001835f8: InitReverb(int reverbType, a1)0x001fdf18: APICharacterSysInit(a0, a1, a2, a3, t0, t1, &charArray, t3)
Internal Data for LEGO Star Wars: The Video Game (PlayStation 2)
| |
|---|---|