From 571579c3c47971bc8987318a91c18c34d904239c Mon Sep 17 00:00:00 2001 From: superp00t Date: Tue, 27 Aug 2024 04:00:05 -0400 Subject: [PATCH] chore(binana): add a lot of texture functions --- 3.3.5a/ida/import_data_types.idc | 35 ++ 3.3.5a/ida/import_symbols.idc | 191 ++++++ 3.3.5a/include/common/datarecycler.h | 10 +- 3.3.5a/include/common/status.h | 36 ++ 3.3.5a/include/gx/types.h | 70 ++- 3.3.5a/include/main.h | 4 + 3.3.5a/include/storm/file.h | 9 + 3.3.5a/include/texture/blp.h | 70 +++ 3.3.5a/include/texture/tga.h | 66 ++ 3.3.5a/symbol/cursor/func.sym | 3 +- 3.3.5a/symbol/cursor/label.sym | 8 +- 3.3.5a/symbol/file/func.sym | 12 + 3.3.5a/symbol/gxdeviced3d/func.sym | 3 +- 3.3.5a/symbol/main.sym | 69 ++ 3.3.5a/symbol/storm/func.sym | 2 + 3.3.5a/symbol/texture/func.sym | 45 ++ 3.3.5a/symbol/texture/label.sym | 2 + 3.3.5a/x32dbg/game.dd32 | 902 +++++++++++++++++++++++++++ 3.3.5a/x32dbg/types.json | 509 ++++++++++++++- 19 files changed, 2001 insertions(+), 45 deletions(-) create mode 100644 3.3.5a/include/common/status.h create mode 100644 3.3.5a/include/storm/file.h create mode 100644 3.3.5a/include/texture/blp.h create mode 100644 3.3.5a/include/texture/tga.h create mode 100644 3.3.5a/symbol/file/func.sym create mode 100644 3.3.5a/symbol/texture/func.sym create mode 100644 3.3.5a/symbol/texture/label.sym diff --git a/3.3.5a/ida/import_data_types.idc b/3.3.5a/ida/import_data_types.idc index 9a83f12..88a6892 100644 --- a/3.3.5a/ida/import_data_types.idc +++ b/3.3.5a/ida/import_data_types.idc @@ -3,6 +3,38 @@ static import_data_types() { apply_type(0x004804F0, "void __cdecl func(EvtContext* context, EVENTID id, void* handler, void* param, float priority)"); apply_type(0x004806A0, "int32_t __cdecl func(EvtContext* context, EVENTID id, void *data, size_t bytes)"); + apply_type(0x004B5510, "int32_t __stdcall func(uint32_t width, uint32_t height)"); + apply_type(0x004B7220, "MipBits* __stdcall func(PIXEL_FORMAT format, uint32_t width, uint32_t height)"); + apply_type(0x004B7300, "void func(MipBits* image)"); + apply_type(0x004B78A0, "int32_t __usercall func@(char* ext@, char* filename, int32_t a3, MipBits** mipBits, uint32_t* width, uint32_t* height, PIXEL_FORMAT* texFormat, int32_t* isOpaque@, uint32_t* alphaBits, PIXEL_FORMAT* dataFormat)"); + apply_type(0x004B8070, "int32_t __usercall func@(char* ext@, char* filename@, int32_t a3, MipBits** mipBits, uint32_t* width, uint32_t* height, uint32_t* isOpaque, uint32_t* alphaBits, PIXEL_FORMAT* dataFormat)"); + apply_type(0x004B81D0, "MipBits* func(const char* filename, uint32_t* width, uint32_t* height, PIXEL_FORMAT* dataFormat, int32_t* isOpaque, CStatus* status, uint32_t* alphaBits, int32_t a8)"); + apply_type(0x006AA3B0, "int32_t __thiscall func(CTgaFile* this)"); + apply_type(0x006AA3E0, "uint32_t __thiscall func(CTgaFile* this)"); + apply_type(0x006AA420, "void __thiscall func(CTgaFile* this, uint8_t* pAlphaData, uint8_t* pNoAlphaData, uint8_t* alpha)"); + apply_type(0x006AA630, "int32_t __thiscall func(CTgaFile* this, uint8_t* pRLEData, uint8_t* pData)"); + apply_type(0x006AA700, "void __thiscall func(CTgaFile* this, int32_t set)"); + apply_type(0x006AA840, "TGA32Pixel* __thiscall func(CTgaFile* this)"); + apply_type(0x006AA870, "int32_t __thiscall func(CTgaFile* this)"); + apply_type(0x006AAF40, "int32_t __thiscall func(CTgaFile* this)"); + apply_type(0x006AAFB0, "int32_t __thiscall func(CTgaFile* this, char* filename, int32_t a3)"); + apply_type(0x006AB390, "int32_t __thiscall func(CTgaFile* this, void* pImg)"); + apply_type(0x006AB4B0, "int32_t __thiscall func(CTgaFile* this, int32_t flags)"); + apply_type(0x006AB620, "uint32_t __cdecl func(uint32_t level, uint32_t width, uint32_t height, uint32_t fourCC)"); + apply_type(0x006AB700, "uint32_t __stdcall func(uint32_t width, uint32_t height)"); + apply_type(0x006AB760, "MipBits* __stdcall func(uint32_t fourCC, uint32_t width, uint32_t height, char* filename, int32_t linenumber)"); + apply_type(0x006AB810, "void __stdcall func(uint32_t fourCC, uint32_t width, uint32_t height, MipBits* bits)"); + apply_type(0x006AB860, "void _stdcall func(C4Pixel* dest, uint32_t destWidth, uint32_t destHeight, C4Pixel* source, uint32_t sourceWidth, uint32_t sourceHeight)"); + apply_type(0x006AE8B0, "void __thiscall func(CBLPFile* this)"); + apply_type(0x006AE900, "int32_t __thiscall func(CBLPFile* this, void* fileBits)"); + apply_type(0x006AE990, "void __thiscall func(CBLPFile* this, uint8_t* data, void* tempbuffer, uint32_t colorSize)"); + apply_type(0x006AE9E0, "void __thiscall func(CBLPFile* this, uint8_t* data, void* tempbuffer, uint32_t colorSize)"); + apply_type(0x006AF6A0, "uint32_t __thiscall func(CBLPFile* this, uint32_t mipLevel)"); + apply_type(0x006AF730, "int32_t __thiscall func(CBLPFile *this, PIXEL_FORMAT format, uint32_t mipLevel, uint32_t* size, uint32_t* stride)"); + apply_type(0x006AF810, "int32_t __thiscall func(CBLPFile* this, PIXEL_FORMAT format, uint32_t mipLevel, uint8_t* data, void* tempBuffer)"); + apply_type(0x006AFCE0, "int32_t __thiscall func(CBLPFile* this, char* fileName, PIXEL_FORMAT format, uint32_t mipLevel, unsigned char* data, uint32_t* stride)"); + apply_type(0x006AFF10, "int32_t __thiscall func(CBLPFile* this, char* filename)"); + apply_type(0x006AFFD0, "int32_t __thiscall func(CBLPFile* this, char* fileName, PIXEL_FORMAT format, MipBits** images, uint32_t mipLevel, int32_t a6)"); apply_type(0x0076E540, "void* __stdcall func(uint32_t bytes, char* filename, int32_t linenumber, uint32_t flags)"); apply_type(0x0076E5A0, "int32_t __stdcall func(void* ptr, char* filename, int32_t linenumber, uint32_t flags)"); apply_type(0x0076E5E0, "void* __stdcall func(void* ptr, uint32_t bytes, char* filename, int32_t linenumber, uint32_t flags)"); @@ -12,8 +44,11 @@ static import_data_types() { apply_type(0x00774640, "void __thiscall func(SCritSect *this)"); apply_type(0x00774650, "void __thiscall func(SCritSect *this)"); apply_type(0x00819EA0, "void __stdcall func(int32_t function, FrameScript_Object* object, int32_t args, char* args_fmt, FrameScript_EventObject* eventObject)"); + apply_type(0x00AD2808, "char*[54]"); + apply_type(0x00AD90C0, "uint8_t[2]"); apply_type(0x00B417C8, "uint32_t"); apply_type(0x00B417D0, "int32_t"); apply_type(0x00B41850, "CDataRecycler"); + apply_type(0x00C25CD0, "int8_t"); apply_type(0x00C26DF0, "CImVector[54][1024]"); } diff --git a/3.3.5a/ida/import_symbols.idc b/3.3.5a/ida/import_symbols.idc index 5d97e42..ec02387 100644 --- a/3.3.5a/ida/import_symbols.idc +++ b/3.3.5a/ida/import_symbols.idc @@ -24,6 +24,18 @@ static main() { set_name(0x00409670, "CGxDevice__RsPush"); set_name(0x0040BAA5, "purecall"); set_name(0x0040D3B5, "nullsub_1"); + set_name(0x004217C0, "SFile__FileIsLocal"); + set_name(0x004218C0, "SFile__GetFileSize"); + set_name(0x00421AF0, "SFile__SetDataPath"); + set_name(0x00421BB0, "SFile__SetFilePointer"); + set_name(0x00421CA0, "SFile__Unload"); + set_name(0x00422130, "SFile__IsStreamingMode"); + set_name(0x00422530, "SFile__Read"); + set_name(0x00422910, "SFile__Close"); + set_name(0x00424B10, "SFile__FileExistsEx"); + set_name(0x00424B50, "SFile__OpenEx"); + set_name(0x00424E80, "SFile__Load"); + set_name(0x00424F80, "SFile__Open"); set_name(0x00461B00, "OsCloseFile"); set_name(0x00461B50, "OsReadFile"); set_name(0x00461BD0, "OsGetFileSize"); @@ -127,6 +139,14 @@ static main() { set_name(0x004A8720, "OnPaint"); set_name(0x004A8BB0, "ScrnLayerCreate"); set_name(0x004A8D10, "GxuFontShutdown"); + set_name(0x004B5510, "TextureCalcMipCount"); + set_name(0x004B5550, "TextureGenerateMips"); + set_name(0x004B5A00, "LoadPredrawnMips"); + set_name(0x004B7220, "TextureAllocMippedImg"); + set_name(0x004B7300, "TextureFreeMippedImg"); + set_name(0x004B78A0, "LoadTgaMips"); + set_name(0x004B8070, "LoadBlpMips"); + set_name(0x004B81D0, "TextureLoadImage"); set_name(0x004BD9D0, "TextBlockGetFontPtr"); set_name(0x004BDAA0, "TextBlockCreate"); set_name(0x004BDBF0, "TextBlockSetStringPos"); @@ -2056,6 +2076,7 @@ static main() { set_name(0x00614D40, "Script_UnitAura"); set_name(0x00614E60, "Script_GetVehicleUIIndicator"); set_name(0x00614EF0, "Script_GetVehicleUIIndicatorSeat"); + set_name(0x006160B0, "CopyCursorImage"); set_name(0x006163B0, "CursorInitialize"); set_name(0x00616AD0, "GxXformPush_EGxXform_C44Matrix"); set_name(0x00632050, "nullsub_4"); @@ -2141,6 +2162,7 @@ static main() { set_name(0x006904D0, "CGxDeviceD3d__DeviceSetFormat"); set_name(0x00690750, "CGxDeviceD3d__DeviceCreate_WindowProc_CGxFormat"); set_name(0x006A00C0, "CGxDeviceD3d__ICursorDestroy"); + set_name(0x006A0360, "CGxDeviceD3d__WindowProcD3d"); set_name(0x006A1A90, "CGxDeviceD3d9Ex__CGxDeviceD3d9Ex"); set_name(0x006A3070, "CGxDeviceD3d__ITexMarkAsUpdated"); set_name(0x006A3350, "CGxDeviceD3d__ISceneBegin"); @@ -2160,6 +2182,43 @@ static main() { set_name(0x006AA0D0, "CGxDeviceD3d__IShaderCreateVertex"); set_name(0x006AA130, "CGxDeviceD3d__ShaderCreate"); set_name(0x006AA2F0, "CGxDeviceD3d__IBindVertexShader"); + set_name(0x006AA350, "CTgaFile__ColorMapEntryBytes"); + set_name(0x006AA380, "CTgaFile__ColorMapBytes"); + set_name(0x006AA3B0, "CTgaFile__ValidateColorDepth"); + set_name(0x006AA3E0, "CTgaFile__PreImageBytes"); + set_name(0x006AA420, "CTgaFile__AddAlphaChannel_internal"); + set_name(0x006AA520, "CTgaFile__ReadRawImage"); + set_name(0x006AA630, "CTgaFile__RLEDecompressImage"); + set_name(0x006AA700, "CTgaFile__SetTopDown"); + set_name(0x006AA840, "CTgaFile__ImageTGA32Pixel"); + set_name(0x006AA870, "CTgaFile__RemoveAlphaChannels"); + set_name(0x006AAF40, "CTgaFile__Close"); + set_name(0x006AAFB0, "CTgaFile__Open"); + set_name(0x006AB0E0, "CTgaFile__ConvertColorMapped"); + set_name(0x006AB220, "CTgaFile__ReadRleImage"); + set_name(0x006AB390, "CTgaFile__AddAlphaChannel"); + set_name(0x006AB450, "CTgaFile__ReadColorMappedImage"); + set_name(0x006AB4B0, "CTgaFile__LoadImageData"); + set_name(0x006AB5C0, "GetBitDepth"); + set_name(0x006AB620, "CalcLevelSize"); + set_name(0x006AB700, "CalcLevelCount"); + set_name(0x006AB760, "MippedImgAllocA"); + set_name(0x006AB810, "MippedImgSet"); + set_name(0x006AB860, "FullShrink"); + set_name(0x006AE8B0, "CBLPFile__Close"); + set_name(0x006AE900, "CBLPFile__Source"); + set_name(0x006AE990, "CBLPFile__DecompPalFastPath"); + set_name(0x006AE9E0, "CBLPFile__DecompPalARGB8888"); + set_name(0x006AEBA0, "CBLPFile__DecompPalARGB4444DitherFloydSteinberg"); + set_name(0x006AEE70, "CBLPFile__DecompPalARGB1555DitherFloydSteinberg"); + set_name(0x006AF140, "CBLPFile__DecompPalARGB565DitherFloydSteinberg"); + set_name(0x006AF340, "CBLPFile__DecompPalARGB2565DitherFloydSteinberg"); + set_name(0x006AF6A0, "CBLPFile__Pixels"); + set_name(0x006AF730, "CBLPFile__GetFormatSize"); + set_name(0x006AF810, "CBLPFile__DecompPal"); + set_name(0x006AFCE0, "CBLPFile__Lock2"); + set_name(0x006AFF10, "CBLPFile__Open"); + set_name(0x006AFFD0, "CBLPFile__LockChain2"); set_name(0x006B0960, "nullsub_154"); set_name(0x006B1B80, "nullsub_151"); set_name(0x006B1B90, "nullsub_6"); @@ -2276,6 +2335,7 @@ static main() { set_name(0x0076E5A0, "SMemFree"); set_name(0x0076E5E0, "SMemReAlloc"); set_name(0x0076E6E0, "SStrChr"); + set_name(0x0076E720, "SStrChrR"); set_name(0x0076E760, "SStrCmp"); set_name(0x0076E780, "SStrCmpI"); set_name(0x0076ED20, "SStrCopy"); @@ -2287,6 +2347,7 @@ static main() { set_name(0x0076F640, "SStrHashHT"); set_name(0x00770840, "SRegLoadValue"); set_name(0x007709A0, "SRegSaveValue"); + set_name(0x00771870, "SErrSetLastError"); set_name(0x00771890, "SErrSetLogTitleString"); set_name(0x00771900, "SErrSetLogTitleCallback"); set_name(0x00771B80, "SErrRegisterHandler"); @@ -2560,10 +2621,13 @@ static main() { set_name(0x009DE1B0, "nullsub_148"); set_name(0x009DE1C0, "nullsub_149"); set_name(0x009DE1D0, "nullsub_150"); + set_name(0x009F1074, "s_pixelFormatToMipBitsCache"); set_name(0x00A2DDC0, "CGxDevice__vtable"); set_name(0x00A2E198, "CGxDeviceOpenGl__vtable"); set_name(0x00A2E718, "CGxDeviceD3d__vtable"); set_name(0x00A2F500, "CGxDeviceD3d9Ex__vtable"); + set_name(0x00AD2808, "s_cursorNames"); + set_name(0x00AD90C0, "CBLPFile__s_oneBitAlphaLookup"); set_name(0x00ADBAB4, "s_rect"); set_name(0x00ADBAC4, "s_consoleHotKey"); set_name(0x00ADBAC8, "s_historyIndex"); @@ -2573,6 +2637,11 @@ static main() { set_name(0x00B417C8, "s_mainThread"); set_name(0x00B417D0, "s_interactiveCount"); set_name(0x00B41850, "s_messageRecycler"); + set_name(0x00C25CD0, "s_cursorFile"); + set_name(0x00C25DDC, "s_cursorItemMips"); + set_name(0x00C25DE0, "s_cursorItemType"); + set_name(0x00C25DE4, "s_cursorResetMode"); + set_name(0x00C26DE8, "s_cursorMode"); set_name(0x00C26DF0, "s_cursorImages"); set_name(0x00C5DF88, "g_theGxDevicePtr"); set_name(0x00C5DFDC, "CGxDevice__s_uiVertexShader"); @@ -2643,6 +2712,30 @@ static main() { set_func_start(0x0040BAA5, 0x0040BAA5); set_func_end(0x0040BAA5, 0x0040BACF); set_func_start(0x0040D3B5, 0x0040D3B5); + set_func_start(0x004217C0, 0x004217C0); + set_func_end(0x004217C0, 0x004217DA); + set_func_start(0x004218C0, 0x004218C0); + set_func_end(0x004218C0, 0x00421948); + set_func_start(0x00421AF0, 0x00421AF0); + set_func_end(0x00421AF0, 0x00421B4A); + set_func_start(0x00421BB0, 0x00421BB0); + set_func_end(0x00421BB0, 0x00421C98); + set_func_start(0x00421CA0, 0x00421CA0); + set_func_end(0x00421CA0, 0x00421CB8); + set_func_start(0x00422130, 0x00422130); + set_func_end(0x00422130, 0x00422139); + set_func_start(0x00422530, 0x00422530); + set_func_end(0x00422530, 0x004227D4); + set_func_start(0x00422910, 0x00422910); + set_func_end(0x00422910, 0x004229AB); + set_func_start(0x00424B10, 0x00424B10); + set_func_end(0x00424B10, 0x00424B41); + set_func_start(0x00424B50, 0x00424B50); + set_func_end(0x00424B50, 0x00424E44); + set_func_start(0x00424E80, 0x00424E80); + set_func_end(0x00424E80, 0x00424F46); + set_func_start(0x00424F80, 0x00424F80); + set_func_end(0x00424F80, 0x00424F98); set_func_start(0x00461B00, 0x00461B00); set_func_end(0x00461B00, 0x00461B09); set_func_start(0x00461B50, 0x00461B50); @@ -2833,6 +2926,22 @@ static main() { set_func_end(0x004A8BB0, 0x004A8C83); set_func_start(0x004A8D10, 0x004A8D10); set_func_end(0x004A8D10, 0x004A8DBF); + set_func_start(0x004B5510, 0x004B5510); + set_func_end(0x004B5510, 0x004B5549); + set_func_start(0x004B5550, 0x004B5550); + set_func_end(0x004B5550, 0x004B55D7); + set_func_start(0x004B5A00, 0x004B5A00); + set_func_end(0x004B5A00, 0x004B5BA2); + set_func_start(0x004B7220, 0x004B7220); + set_func_end(0x004B7220, 0x004B72F4); + set_func_start(0x004B7300, 0x004B7300); + set_func_end(0x004B7300, 0x004B73D9); + set_func_start(0x004B78A0, 0x004B78A0); + set_func_end(0x004B78A0, 0x004B7AA0); + set_func_start(0x004B8070, 0x004B8070); + set_func_end(0x004B8070, 0x004B81CE); + set_func_start(0x004B81D0, 0x004B81D0); + set_func_end(0x004B81D0, 0x004B8385); set_func_start(0x004BD9D0, 0x004BD9D0); set_func_end(0x004BD9D0, 0x004BD9EA); set_func_start(0x004BDAA0, 0x004BDAA0); @@ -6669,6 +6778,8 @@ static main() { set_func_end(0x00614E60, 0x00614EEE); set_func_start(0x00614EF0, 0x00614EF0); set_func_end(0x00614EF0, 0x00614FC6); + set_func_start(0x006160B0, 0x006160B0); + set_func_end(0x006160B0, 0x00616211); set_func_start(0x006163B0, 0x006163B0); set_func_end(0x006163B0, 0x006164A5); set_func_start(0x00616AD0, 0x00616AD0); @@ -6836,6 +6947,8 @@ static main() { set_func_end(0x00690750, 0x00690821); set_func_start(0x006A00C0, 0x006A00C0); set_func_end(0x006A00C0, 0x006A0102); + set_func_start(0x006A0360, 0x006A0360); + set_func_end(0x006A0360, 0x006A0834); set_func_start(0x006A1A90, 0x006A1A90); set_func_end(0x006A1A90, 0x006A1C24); set_func_start(0x006A3070, 0x006A3070); @@ -6874,6 +6987,80 @@ static main() { set_func_end(0x006AA130, 0x006AA18A); set_func_start(0x006AA2F0, 0x006AA2F0); set_func_end(0x006AA2F0, 0x006AA346); + set_func_start(0x006AA350, 0x006AA350); + set_func_end(0x006AA350, 0x006AA379); + set_func_start(0x006AA380, 0x006AA380); + set_func_end(0x006AA380, 0x006AA3B0); + set_func_start(0x006AA3B0, 0x006AA3B0); + set_func_end(0x006AA3B0, 0x006AA3E0); + set_func_start(0x006AA3E0, 0x006AA3E0); + set_func_end(0x006AA3E0, 0x006AA41B); + set_func_start(0x006AA420, 0x006AA420); + set_func_end(0x006AA420, 0x006AA51E); + set_func_start(0x006AA520, 0x006AA520); + set_func_end(0x006AA520, 0x006AA62F); + set_func_start(0x006AA630, 0x006AA630); + set_func_end(0x006AA630, 0x006AA6F2); + set_func_start(0x006AA700, 0x006AA700); + set_func_end(0x006AA700, 0x006AA81D); + set_func_start(0x006AA840, 0x006AA840); + set_func_end(0x006AA840, 0x006AA867); + set_func_start(0x006AA870, 0x006AA870); + set_func_end(0x006AA870, 0x006AA948); + set_func_start(0x006AAF40, 0x006AAF40); + set_func_end(0x006AAF40, 0x006AAFA5); + set_func_start(0x006AAFB0, 0x006AAFB0); + set_func_end(0x006AAFB0, 0x006AB0D4); + set_func_start(0x006AB0E0, 0x006AB0E0); + set_func_end(0x006AB0E0, 0x006AB212); + set_func_start(0x006AB220, 0x006AB220); + set_func_end(0x006AB220, 0x006AB381); + set_func_start(0x006AB390, 0x006AB390); + set_func_end(0x006AB390, 0x006AB447); + set_func_start(0x006AB450, 0x006AB450); + set_func_end(0x006AB450, 0x006AB4A1); + set_func_start(0x006AB4B0, 0x006AB4B0); + set_func_end(0x006AB4B0, 0x006AB5B8); + set_func_start(0x006AB5C0, 0x006AB5C0); + set_func_end(0x006AB5C0, 0x006AB614); + set_func_start(0x006AB620, 0x006AB620); + set_func_end(0x006AB620, 0x006AB6B9); + set_func_start(0x006AB700, 0x006AB700); + set_func_end(0x006AB700, 0x006AB75C); + set_func_start(0x006AB760, 0x006AB760); + set_func_end(0x006AB760, 0x006AB7DF); + set_func_start(0x006AB810, 0x006AB810); + set_func_end(0x006AB810, 0x006AB85E); + set_func_start(0x006AB860, 0x006AB860); + set_func_end(0x006AB860, 0x006ABAAF); + set_func_start(0x006AE8B0, 0x006AE8B0); + set_func_end(0x006AE8B0, 0x006AE8DA); + set_func_start(0x006AE900, 0x006AE900); + set_func_end(0x006AE900, 0x006AE990); + set_func_start(0x006AE990, 0x006AE990); + set_func_end(0x006AE990, 0x006AE9D6); + set_func_start(0x006AE9E0, 0x006AE9E0); + set_func_end(0x006AE9E0, 0x006AEB93); + set_func_start(0x006AEBA0, 0x006AEBA0); + set_func_end(0x006AEBA0, 0x006AEE61); + set_func_start(0x006AEE70, 0x006AEE70); + set_func_end(0x006AEE70, 0x006AF133); + set_func_start(0x006AF140, 0x006AF140); + set_func_end(0x006AF140, 0x006AF33F); + set_func_start(0x006AF340, 0x006AF340); + set_func_end(0x006AF340, 0x006AF65D); + set_func_start(0x006AF6A0, 0x006AF6A0); + set_func_end(0x006AF6A0, 0x006AF6D1); + set_func_start(0x006AF730, 0x006AF730); + set_func_end(0x006AF730, 0x006AF7E9); + set_func_start(0x006AF810, 0x006AF810); + set_func_end(0x006AF810, 0x006AF984); + set_func_start(0x006AFCE0, 0x006AFCE0); + set_func_end(0x006AFCE0, 0x006AFF06); + set_func_start(0x006AFF10, 0x006AFF10); + set_func_end(0x006AFF10, 0x006AFFCF); + set_func_start(0x006AFFD0, 0x006AFFD0); + set_func_end(0x006AFFD0, 0x006B012E); set_func_start(0x006B0960, 0x006B0960); set_func_start(0x006B1B80, 0x006B1B80); set_func_start(0x006B1B90, 0x006B1B90); @@ -7098,6 +7285,8 @@ static main() { set_func_end(0x0076E5E0, 0x0076E6D6); set_func_start(0x0076E6E0, 0x0076E6E0); set_func_end(0x0076E6E0, 0x0076E712); + set_func_start(0x0076E720, 0x0076E720); + set_func_end(0x0076E720, 0x0076E756); set_func_start(0x0076E760, 0x0076E760); set_func_end(0x0076E760, 0x0076E77B); set_func_start(0x0076E780, 0x0076E780); @@ -7120,6 +7309,8 @@ static main() { set_func_end(0x00770840, 0x007708E9); set_func_start(0x007709A0, 0x007709A0); set_func_end(0x007709A0, 0x007709E8); + set_func_start(0x00771870, 0x00771870); + set_func_end(0x00771870, 0x00771886); set_func_start(0x00771890, 0x00771890); set_func_end(0x00771890, 0x007718F2); set_func_start(0x00771900, 0x00771900); diff --git a/3.3.5a/include/common/datarecycler.h b/3.3.5a/include/common/datarecycler.h index cacb782..4879cae 100644 --- a/3.3.5a/include/common/datarecycler.h +++ b/3.3.5a/include/common/datarecycler.h @@ -9,11 +9,11 @@ DECLARE_STRUCT(CDataRecycler__NodeBlock); DECLARE_STRUCT(CDataRecycler__Node); struct CDataRecycler__vtable { - void *v_fn_00; - void *v_fn_01; - void *v_fn_02; - void *v_fn_03; - void *v_fn_04; + void* v_fn_00; + void* v_fn_01; + void* v_fn_02; + void* v_fn_03; + void* v_fn_04; }; struct CDataRecycler__Node { diff --git a/3.3.5a/include/common/status.h b/3.3.5a/include/common/status.h new file mode 100644 index 0000000..27607e9 --- /dev/null +++ b/3.3.5a/include/common/status.h @@ -0,0 +1,36 @@ +#ifndef COMMON_STATUS_H +#define COMMON_STATUS_H + +#include "storm/list.h" + +DECLARE_ENUM(STATUS_TYPE); +DECLARE_STRUCT(CStatus); +DECLARE_STRUCT(CStatus__STATUSENTRY); + +enum STATUS_TYPE { + STATUS_INFO = 0x0, + STATUS_WARNING = 0x1, + STATUS_ERROR = 0x2, + STATUS_FATAL = 0x3, + STATUS_NUMTYPES = 0x4 +}; + +STORM_TS_LIST(CStatus__STATUSENTRY); + +struct CStatus__STATUSENTRY { + char* text; + STATUS_TYPE severity; + TSLink_CStatus__STATUSENTRY link; +}; + +struct CStatus { + TSExplicitList_CStatus__STATUSENTRY statusList; +}; + +// class CWOWClientStatus : public CStatus { +// public: +// HSLOG m_logFile = nullptr; +// }; + + +#endif \ No newline at end of file diff --git a/3.3.5a/include/gx/types.h b/3.3.5a/include/gx/types.h index f7c9612..52074ea 100644 --- a/3.3.5a/include/gx/types.h +++ b/3.3.5a/include/gx/types.h @@ -5,34 +5,35 @@ #include "storm/array.h" -typedef enum BlitAlpha BlitAlpha; -typedef enum BlitFormat BlitFormat; -typedef enum EGxApi EGxApi; -typedef enum EGxBlend EGxBlend; -typedef enum EGxColorFormat EGxColorFormat; -typedef enum EGxFontHJusts EGxFontHJusts; -typedef enum EGxFontVJusts EGxFontVJusts; -typedef enum EGxMasterEnables EGxMasterEnables; -typedef enum EGxPrim EGxPrim; -typedef enum EGxPrimMask EGxPrimMask; -typedef enum EGxRenderState EGxRenderState; -typedef enum EGxShPS EGxShPS; -typedef enum EGxShTarget EGxShTarget; -typedef enum EGxShVS EGxShVS; -typedef enum EGxTexCommand EGxTexCommand; -typedef enum EGxTexFilter EGxTexFilter; -typedef enum EGxTexFormat EGxTexFormat; -typedef enum EGxTexTarget EGxTexTarget; -typedef enum EGxTexWrapMode EGxTexWrapMode; -typedef enum EGxXform EGxXform; -typedef enum EGxuDrawListCategory EGxuDrawListCategory; -typedef enum EGxWM EGxWM; -typedef enum COLOR_FILE_FORMAT COLOR_FILE_FORMAT; -typedef enum PIXEL_FORMAT PIXEL_FORMAT; +DECLARE_ENUM(BlitAlpha); +DECLARE_ENUM(BlitFormat); +DECLARE_ENUM(EGxApi); +DECLARE_ENUM(EGxBlend); +DECLARE_ENUM(EGxColorFormat); +DECLARE_ENUM(EGxFontHJusts); +DECLARE_ENUM(EGxFontVJusts); +DECLARE_ENUM(EGxMasterEnables); +DECLARE_ENUM(EGxPrim); +DECLARE_ENUM(EGxPrimMask); +DECLARE_ENUM(EGxRenderState); +DECLARE_ENUM(EGxShPS); +DECLARE_ENUM(EGxShTarget); +DECLARE_ENUM(EGxShVS); +DECLARE_ENUM(EGxTexCommand); +DECLARE_ENUM(EGxTexFilter); +DECLARE_ENUM(EGxTexFormat); +DECLARE_ENUM(EGxTexTarget); +DECLARE_ENUM(EGxTexWrapMode); +DECLARE_ENUM(EGxXform); +DECLARE_ENUM(EGxuDrawListCategory); +DECLARE_ENUM(EGxWM); +DECLARE_ENUM(COLOR_FILE_FORMAT); +DECLARE_ENUM(PIXEL_FORMAT); -typedef struct C4Pixel C4Pixel; -typedef struct MipBits MipBits; -typedef struct CGxGammaRamp CGxGammaRamp; +DECLARE_STRUCT(C4Pixel); +DECLARE_STRUCT(C4LargePixel); +DECLARE_STRUCT(MipBits); +DECLARE_STRUCT(CGxGammaRamp); enum BlitAlpha { BlitAlpha_0 = 0, @@ -370,10 +371,17 @@ enum PIXEL_FORMAT { }; struct C4Pixel { - char b; - char g; - char r; - char a; + uint8_t b; + uint8_t g; + uint8_t r; + uint8_t a; +}; + +struct C4LargePixel { + uint64_t b; + uint64_t g; + uint64_t r; + uint64_t a; }; struct MipBits { diff --git a/3.3.5a/include/main.h b/3.3.5a/include/main.h index 18107c2..7b68227 100644 --- a/3.3.5a/include/main.h +++ b/3.3.5a/include/main.h @@ -7,6 +7,7 @@ #include "common/handle.h" #include "common/instance.h" #include "common/datarecycler.h" +#include "common/status.h" #include "d3d9/caps.h" #include "d3d9/device.h" @@ -46,6 +47,9 @@ #include "tempest/sphere.h" #include "tempest/vector.h" +#include "texture/blp.h" +#include "texture/tga.h" + #include "ui/simpleframe.h" // include files that define the use of template classes for standard library types diff --git a/3.3.5a/include/storm/file.h b/3.3.5a/include/storm/file.h new file mode 100644 index 0000000..5a2e36b --- /dev/null +++ b/3.3.5a/include/storm/file.h @@ -0,0 +1,9 @@ +#ifndef STORM_FILE_H +#define STORM_FILE_H + +DECLARE_STRUCT(SFile); + +struct SFile { +}; + +#endif diff --git a/3.3.5a/include/texture/blp.h b/3.3.5a/include/texture/blp.h new file mode 100644 index 0000000..54138ac --- /dev/null +++ b/3.3.5a/include/texture/blp.h @@ -0,0 +1,70 @@ +#ifndef TEXTURE_BLP_H +#define TEXTURE_BLP_H + +#include "system/types.h" + +#include "storm/file.h" + +#include "gx/types.h" + +DECLARE_HANDLE(HCOLORMAP); + +DECLARE_ENUM(MipMapAlgorithm); + +DECLARE_STRUCT(CBLPFile); +DECLARE_STRUCT(BlpPalPixel); +DECLARE_STRUCT(BLPHeader); +DECLARE_STRUCT(BLPJPEGHeader); + +enum MipMapAlgorithm { + MMA_BOX = 0x0, + MMA_CUBIC = 0x1, + MMA_FULLDFT = 0x2, + MMA_KAISER = 0x3, + MMA_LINEARLIGHTKAISER = 0x4 +}; + +struct BlpPalPixel { + uint8_t b; + uint8_t g; + uint8_t r; + uint8_t pad; +}; + +struct BLPJPEGHeader { + uint32_t headerSize; + uint8_t headerData[1020]; +}; + +struct BLPHeader { + uint32_t magic; + uint32_t formatVersion; + uint8_t colorEncoding; + uint8_t alphaSize; + uint8_t preferredFormat; + uint8_t hasMips; + uint32_t width; + uint32_t height; + uint32_t mipOffsets[16]; + uint32_t mipSizes[16]; + + union { + BlpPalPixel palette[256]; + + BLPJPEGHeader jpeg; + } extended; +}; + +struct CBLPFile { + MipBits* m_images; + BLPHeader m_header; + void* m_inMemoryImage; + int32_t m_inMemoryNeedsFree; + uint32_t m_numLevels; + uint32_t m_quality; + HCOLORMAP m_colorMapping; + MipMapAlgorithm m_mipMapAlgorithm; + uint8_t* m_lockDecompMem; +}; + +#endif diff --git a/3.3.5a/include/texture/tga.h b/3.3.5a/include/texture/tga.h new file mode 100644 index 0000000..5280c00 --- /dev/null +++ b/3.3.5a/include/texture/tga.h @@ -0,0 +1,66 @@ +#ifndef TEXTURE_TGA_H +#define TEXTURE_TGA_H + +#include "system/types.h" + +#include "storm/file.h" + +DECLARE_STRUCT(TGAFooter); +DECLARE_STRUCT(TGAHeader); +DECLARE_STRUCT(TGA32Pixel); +DECLARE_STRUCT(TGAImageDesc); +DECLARE_STRUCT(CTgaFile); + +struct TGAFooter { + uint32_t dwExtensionOffset; + uint32_t dwDeveloperOffset; + uint8_t szSigniture[18]; +}; + +#pragma pack(push, 1) + +struct TGAImageDesc { + uint8_t bAlphaChannelBits : 4; + uint8_t bLeftRightOrder : 1; + uint8_t bTopBottomOrder : 1; + uint8_t bReserved : 2; +}; + +struct TGAHeader { + uint8_t bIDLength; + uint8_t bColorMapType; + uint8_t bImageType; + // byte packed + uint16_t wColorMapStartIndex; + uint16_t wColorMapEntries; + uint8_t bColorMapEntrySize; + uint16_t wXOrigin; + uint16_t wYOrigin; + uint16_t wWidth; + uint16_t wHeight; + uint8_t bPixelDepth; + union { + uint8_t bImageDescriptor; + TGAImageDesc desc; + }; +}; +#pragma pack(pop) + +struct TGA32Pixel { + uint8_t b; + uint8_t g; + uint8_t r; + uint8_t a; +}; + +struct CTgaFile { + SFile* m_file; + uint8_t* m_image; + TGAHeader m_header; + uint8_t* m_addlHeaderData; + TGAFooter m_footer; + uint32_t m_imageBytes; + uint8_t* m_colorMap; +}; + +#endif diff --git a/3.3.5a/symbol/cursor/func.sym b/3.3.5a/symbol/cursor/func.sym index a874765..398f510 100644 --- a/3.3.5a/symbol/cursor/func.sym +++ b/3.3.5a/symbol/cursor/func.sym @@ -1 +1,2 @@ -CursorInitialize 006163B0 f end=006164A5 \ No newline at end of file +CursorInitialize 006163B0 f end=006164A5 +CopyCursorImage 006160B0 f end=00616211 \ No newline at end of file diff --git a/3.3.5a/symbol/cursor/label.sym b/3.3.5a/symbol/cursor/label.sym index c012590..56ffbac 100644 --- a/3.3.5a/symbol/cursor/label.sym +++ b/3.3.5a/symbol/cursor/label.sym @@ -1 +1,7 @@ -s_cursorImages 00C26DF0 l type="CImVector[54][1024]" \ No newline at end of file +s_cursorImages 00C26DF0 l type="CImVector[54][1024]" +s_cursorNames 00AD2808 l type="char*[54]" +s_cursorMode 00C26DE8 l +s_cursorResetMode 00C25DE4 l +s_cursorItemType 00C25DE0 l +s_cursorItemMips 00C25DDC l +s_cursorFile 00C25CD0 l type="int8_t" ; wonder why it's this type diff --git a/3.3.5a/symbol/file/func.sym b/3.3.5a/symbol/file/func.sym new file mode 100644 index 0000000..2a8cd95 --- /dev/null +++ b/3.3.5a/symbol/file/func.sym @@ -0,0 +1,12 @@ +SFile__Open 00424F80 f end=00424F98 +SFile__OpenEx 00424B50 f end=00424E44 +SFile__Close 00422910 f end=004229AB +SFile__Load 00424E80 f end=00424F46 +SFile__Read 00422530 f end=004227D4 +SFile__FileIsLocal 004217C0 f end=004217DA +SFile__GetFileSize 004218C0 f end=00421948 +SFile__SetDataPath 00421AF0 f end=00421B4A +SFile__Unload 00421CA0 f end=00421CB8 +SFile__IsStreamingMode 00422130 f end=00422139 +SFile__SetFilePointer 00421BB0 f end=00421C98 +SFile__FileExistsEx 00424B10 f end=00424B41 \ No newline at end of file diff --git a/3.3.5a/symbol/gxdeviced3d/func.sym b/3.3.5a/symbol/gxdeviced3d/func.sym index 6fb98c4..2d63269 100644 --- a/3.3.5a/symbol/gxdeviced3d/func.sym +++ b/3.3.5a/symbol/gxdeviced3d/func.sym @@ -27,4 +27,5 @@ CGxDeviceD3d__IShaderCreatePixel 006AA070 f end=006AA0C5 CGxDeviceD3d__IShaderCreateVertex 006AA0D0 f end=006AA125 CGxDeviceD3d__ShaderCreate 006AA130 f end=006AA18A CGxDeviceD3d__IBindVertexShader 006AA2F0 f end=006AA346 -CGxDeviceD3d__IShaderCreate 006A5E10 f end=006A5E36 \ No newline at end of file +CGxDeviceD3d__IShaderCreate 006A5E10 f end=006A5E36 +CGxDeviceD3d__WindowProcD3d 006A0360 f end=006A0834 \ No newline at end of file diff --git a/3.3.5a/symbol/main.sym b/3.3.5a/symbol/main.sym index 524496a..2d2c843 100644 --- a/3.3.5a/symbol/main.sym +++ b/3.3.5a/symbol/main.sym @@ -19,6 +19,18 @@ GxRsSet_int32_t 00408BF0 f end=00408C27 CGxDevice__RsPush 00409670 f end=004096CC purecall 0040BAA5 f end=0040BACF nullsub_1 0040D3B5 f +SFile__FileIsLocal 004217C0 f end=004217DA +SFile__GetFileSize 004218C0 f end=00421948 +SFile__SetDataPath 00421AF0 f end=00421B4A +SFile__SetFilePointer 00421BB0 f end=00421C98 +SFile__Unload 00421CA0 f end=00421CB8 +SFile__IsStreamingMode 00422130 f end=00422139 +SFile__Read 00422530 f end=004227D4 +SFile__Close 00422910 f end=004229AB +SFile__FileExistsEx 00424B10 f end=00424B41 +SFile__OpenEx 00424B50 f end=00424E44 +SFile__Load 00424E80 f end=00424F46 +SFile__Open 00424F80 f end=00424F98 OsCloseFile 00461B00 f end=00461B09 OsReadFile 00461B50 f end=00461B88 OsGetFileSize 00461BD0 f end=00461BF4 @@ -122,6 +134,14 @@ ScrnLayerSetRect 004A8500 f end=004A8522 OnPaint 004A8720 f end=004A8B58 ScrnLayerCreate 004A8BB0 f end=004A8C83 GxuFontShutdown 004A8D10 f end=004A8DBF +TextureCalcMipCount 004B5510 f end=004B5549 type="int32_t __stdcall func(uint32_t width, uint32_t height)" +TextureGenerateMips 004B5550 f end=004B55D7 +LoadPredrawnMips 004B5A00 f end=004B5BA2 +TextureAllocMippedImg 004B7220 f end=004B72F4 type="MipBits* __stdcall func(PIXEL_FORMAT format, uint32_t width, uint32_t height)" +TextureFreeMippedImg 004B7300 f end=004B73D9 type="void func(MipBits* image)" +LoadTgaMips 004B78A0 f end=004B7AA0 type="int32_t __usercall func@(char* ext@, char* filename, int32_t a3, MipBits** mipBits, uint32_t* width, uint32_t* height, PIXEL_FORMAT* texFormat, int32_t* isOpaque@, uint32_t* alphaBits, PIXEL_FORMAT* dataFormat)" +LoadBlpMips 004B8070 f end=004B81CE type="int32_t __usercall func@(char* ext@, char* filename@, int32_t a3, MipBits** mipBits, uint32_t* width, uint32_t* height, uint32_t* isOpaque, uint32_t* alphaBits, PIXEL_FORMAT* dataFormat)" +TextureLoadImage 004B81D0 f end=004B8385 type="MipBits* func(const char* filename, uint32_t* width, uint32_t* height, PIXEL_FORMAT* dataFormat, int32_t* isOpaque, CStatus* status, uint32_t* alphaBits, int32_t a8)" TextBlockGetFontPtr 004BD9D0 f end=004BD9EA TextBlockCreate 004BDAA0 f end=004BDBE4 TextBlockSetStringPos 004BDBF0 f end=004BDC4C @@ -2051,6 +2071,7 @@ Script_UnitDebuff 00614CF0 f end=00614D3F Script_UnitAura 00614D40 f end=00614D83 Script_GetVehicleUIIndicator 00614E60 f end=00614EEE Script_GetVehicleUIIndicatorSeat 00614EF0 f end=00614FC6 +CopyCursorImage 006160B0 f end=00616211 CursorInitialize 006163B0 f end=006164A5 GxXformPush_EGxXform_C44Matrix 00616AD0 f end=00616AE8 nullsub_4 00632050 f @@ -2136,6 +2157,7 @@ CGxDeviceD3d__CGxDeviceD3d 0068FD50 f end=0068FE80 CGxDeviceD3d__DeviceSetFormat 006904D0 f end=006905E8 CGxDeviceD3d__DeviceCreate_WindowProc_CGxFormat 00690750 f end=00690821 CGxDeviceD3d__ICursorDestroy 006A00C0 f end=006A0102 +CGxDeviceD3d__WindowProcD3d 006A0360 f end=006A0834 CGxDeviceD3d9Ex__CGxDeviceD3d9Ex 006A1A90 f end=006A1C24 CGxDeviceD3d__ITexMarkAsUpdated 006A3070 f end=006A30CF CGxDeviceD3d__ISceneBegin 006A3350 f end=006A3417 @@ -2155,6 +2177,43 @@ CGxDeviceD3d__IShaderCreatePixel 006AA070 f end=006AA0C5 CGxDeviceD3d__IShaderCreateVertex 006AA0D0 f end=006AA125 CGxDeviceD3d__ShaderCreate 006AA130 f end=006AA18A CGxDeviceD3d__IBindVertexShader 006AA2F0 f end=006AA346 +CTgaFile__ColorMapEntryBytes 006AA350 f end=006AA379 ; UC +CTgaFile__ColorMapBytes 006AA380 f end=006AA3B0 +CTgaFile__ValidateColorDepth 006AA3B0 f end=006AA3E0 type="int32_t __thiscall func(CTgaFile* this)" +CTgaFile__PreImageBytes 006AA3E0 f end=006AA41B type="uint32_t __thiscall func(CTgaFile* this)" +CTgaFile__AddAlphaChannel_internal 006AA420 f end=006AA51E type="void __thiscall func(CTgaFile* this, uint8_t* pAlphaData, uint8_t* pNoAlphaData, uint8_t* alpha)" ; private utility method +CTgaFile__ReadRawImage 006AA520 f end=006AA62F +CTgaFile__RLEDecompressImage 006AA630 f end=006AA6F2 type="int32_t __thiscall func(CTgaFile* this, uint8_t* pRLEData, uint8_t* pData)" +CTgaFile__SetTopDown 006AA700 f end=006AA81D type="void __thiscall func(CTgaFile* this, int32_t set)" +CTgaFile__ImageTGA32Pixel 006AA840 f end=006AA867 type="TGA32Pixel* __thiscall func(CTgaFile* this)" +CTgaFile__RemoveAlphaChannels 006AA870 f end=006AA948 type="int32_t __thiscall func(CTgaFile* this)" +CTgaFile__Close 006AAF40 f end=006AAFA5 type="int32_t __thiscall func(CTgaFile* this)" +CTgaFile__Open 006AAFB0 f end=006AB0D4 type="int32_t __thiscall func(CTgaFile* this, char* filename, int32_t a3)" +CTgaFile__ConvertColorMapped 006AB0E0 f end=006AB212 +CTgaFile__ReadRleImage 006AB220 f end=006AB381 +CTgaFile__AddAlphaChannel 006AB390 f end=006AB447 type="int32_t __thiscall func(CTgaFile* this, void* pImg)" ; public method +CTgaFile__ReadColorMappedImage 006AB450 f end=006AB4A1 +CTgaFile__LoadImageData 006AB4B0 f end=006AB5B8 type="int32_t __thiscall func(CTgaFile* this, int32_t flags)" +GetBitDepth 006AB5C0 f end=006AB614 +CalcLevelSize 006AB620 f end=006AB6B9 type="uint32_t __cdecl func(uint32_t level, uint32_t width, uint32_t height, uint32_t fourCC)" +CalcLevelCount 006AB700 f end=006AB75C type="uint32_t __stdcall func(uint32_t width, uint32_t height)" +MippedImgAllocA 006AB760 f end=006AB7DF type="MipBits* __stdcall func(uint32_t fourCC, uint32_t width, uint32_t height, char* filename, int32_t linenumber)" +MippedImgSet 006AB810 f end=006AB85E type="void __stdcall func(uint32_t fourCC, uint32_t width, uint32_t height, MipBits* bits)" +FullShrink 006AB860 f end=006ABAAF type="void _stdcall func(C4Pixel* dest, uint32_t destWidth, uint32_t destHeight, C4Pixel* source, uint32_t sourceWidth, uint32_t sourceHeight)" +CBLPFile__Close 006AE8B0 f end=006AE8DA type="void __thiscall func(CBLPFile* this)" +CBLPFile__Source 006AE900 f end=006AE990 type="int32_t __thiscall func(CBLPFile* this, void* fileBits)" +CBLPFile__DecompPalFastPath 006AE990 f end=006AE9D6 type="void __thiscall func(CBLPFile* this, uint8_t* data, void* tempbuffer, uint32_t colorSize)" +CBLPFile__DecompPalARGB8888 006AE9E0 f end=006AEB93 type="void __thiscall func(CBLPFile* this, uint8_t* data, void* tempbuffer, uint32_t colorSize)" +CBLPFile__DecompPalARGB4444DitherFloydSteinberg 006AEBA0 f end=006AEE61 +CBLPFile__DecompPalARGB1555DitherFloydSteinberg 006AEE70 f end=006AF133 +CBLPFile__DecompPalARGB565DitherFloydSteinberg 006AF140 f end=006AF33F +CBLPFile__DecompPalARGB2565DitherFloydSteinberg 006AF340 f end=006AF65D +CBLPFile__Pixels 006AF6A0 f end=006AF6D1 type="uint32_t __thiscall func(CBLPFile* this, uint32_t mipLevel)" +CBLPFile__GetFormatSize 006AF730 f end=006AF7E9 type="int32_t __thiscall func(CBLPFile *this, PIXEL_FORMAT format, uint32_t mipLevel, uint32_t* size, uint32_t* stride)" +CBLPFile__DecompPal 006AF810 f end=006AF984 type="int32_t __thiscall func(CBLPFile* this, PIXEL_FORMAT format, uint32_t mipLevel, uint8_t* data, void* tempBuffer)" +CBLPFile__Lock2 006AFCE0 f end=006AFF06 type="int32_t __thiscall func(CBLPFile* this, char* fileName, PIXEL_FORMAT format, uint32_t mipLevel, unsigned char* data, uint32_t* stride)" +CBLPFile__Open 006AFF10 f end=006AFFCF type="int32_t __thiscall func(CBLPFile* this, char* filename)" +CBLPFile__LockChain2 006AFFD0 f end=006B012E type="int32_t __thiscall func(CBLPFile* this, char* fileName, PIXEL_FORMAT format, MipBits** images, uint32_t mipLevel, int32_t a6)" nullsub_154 006B0960 f nullsub_151 006B1B80 f nullsub_6 006B1B90 f @@ -2271,6 +2330,7 @@ SMemAlloc 0076E540 f end=0076E59A type="void* __stdcall func(uint32_t bytes, cha SMemFree 0076E5A0 f end=0076E5C4 type="int32_t __stdcall func(void* ptr, char* filename, int32_t linenumber, uint32_t flags)" SMemReAlloc 0076E5E0 f end=0076E6D6 type="void* __stdcall func(void* ptr, uint32_t bytes, char* filename, int32_t linenumber, uint32_t flags)" SStrChr 0076E6E0 f end=0076E712 +SStrChrR 0076E720 f end=0076E756 SStrCmp 0076E760 f end=0076E77B SStrCmpI 0076E780 f end=0076E79B SStrCopy 0076ED20 f end=0076ED98 @@ -2282,6 +2342,7 @@ SStrTokenize 0076F1E0 f end=0076F331 SStrHashHT 0076F640 f end=0076F6B9 SRegLoadValue 00770840 f end=007708E9 SRegSaveValue 007709A0 f end=007709E8 +SErrSetLastError 00771870 f end=00771886 SErrSetLogTitleString 00771890 f end=007718F2 SErrSetLogTitleCallback 00771900 f end=00771957 SErrRegisterHandler 00771B80 f end=00771C15 @@ -2555,10 +2616,18 @@ nullsub_147 009DE1A0 f nullsub_148 009DE1B0 f nullsub_149 009DE1C0 f nullsub_150 009DE1D0 f +s_pixelFormatToMipBitsCache 009F1074 l CGxDevice__vtable 00A2DDC0 l CGxDeviceOpenGl__vtable 00A2E198 l +s_cursorNames 00AD2808 l type="char*[54]" +CBLPFile__s_oneBitAlphaLookup 00AD90C0 l type="uint8_t[2]" s_interactiveCount 00B417D0 l type="int32_t" s_messageRecycler 00B41850 l type="CDataRecycler" +s_cursorFile 00C25CD0 l type="int8_t" ; wonder why it's this type +s_cursorItemMips 00C25DDC l +s_cursorItemType 00C25DE0 l +s_cursorResetMode 00C25DE4 l +s_cursorMode 00C26DE8 l s_cursorImages 00C26DF0 l type="CImVector[54][1024]" g_theGxDevicePtr 00C5DF88 l CGxDevice__s_uiVertexShader 00C5DFDC l diff --git a/3.3.5a/symbol/storm/func.sym b/3.3.5a/symbol/storm/func.sym index 25b7029..987b836 100644 --- a/3.3.5a/symbol/storm/func.sym +++ b/3.3.5a/symbol/storm/func.sym @@ -1,6 +1,7 @@ SCmdRegisterArgList 00773590 f end=007737C2 SCmdProcess 00773890 f end=00773986 SCmdProcessCommandLine 00773990 f end=007739AD +SErrSetLastError 00771870 f end=00771886 SErrSetLogTitleString 00771890 f end=007718F2 SErrSetLogTitleCallback 00771900 f end=00771957 SErrRegisterHandler 00771B80 f end=00771C15 @@ -12,6 +13,7 @@ SMemSetDebugFlags 0076E4A0 f end=0076E4D2 SRegLoadValue 00770840 f end=007708E9 SRegSaveValue 007709A0 f end=007709E8 SStrChr 0076E6E0 f end=0076E712 +SStrChrR 0076E720 f end=0076E756 SStrCmp 0076E760 f end=0076E77B SStrCmpI 0076E780 f end=0076E79B SStrCopy 0076ED20 f end=0076ED98 diff --git a/3.3.5a/symbol/texture/func.sym b/3.3.5a/symbol/texture/func.sym new file mode 100644 index 0000000..8259f3f --- /dev/null +++ b/3.3.5a/symbol/texture/func.sym @@ -0,0 +1,45 @@ +TextureLoadImage 004B81D0 f end=004B8385 type="MipBits* func(const char* filename, uint32_t* width, uint32_t* height, PIXEL_FORMAT* dataFormat, int32_t* isOpaque, CStatus* status, uint32_t* alphaBits, int32_t a8)" +TextureFreeMippedImg 004B7300 f end=004B73D9 type="void func(MipBits* image)" +LoadTgaMips 004B78A0 f end=004B7AA0 type="int32_t __usercall func@(char* ext@, char* filename, int32_t a3, MipBits** mipBits, uint32_t* width, uint32_t* height, PIXEL_FORMAT* texFormat, int32_t* isOpaque@, uint32_t* alphaBits, PIXEL_FORMAT* dataFormat)" +LoadBlpMips 004B8070 f end=004B81CE type="int32_t __usercall func@(char* ext@, char* filename@, int32_t a3, MipBits** mipBits, uint32_t* width, uint32_t* height, uint32_t* isOpaque, uint32_t* alphaBits, PIXEL_FORMAT* dataFormat)" +CBLPFile__Pixels 006AF6A0 f end=006AF6D1 type="uint32_t __thiscall func(CBLPFile* this, uint32_t mipLevel)" +CBLPFile__Close 006AE8B0 f end=006AE8DA type="void __thiscall func(CBLPFile* this)" +CBLPFile__Open 006AFF10 f end=006AFFCF type="int32_t __thiscall func(CBLPFile* this, char* filename)" +CBLPFile__Source 006AE900 f end=006AE990 type="int32_t __thiscall func(CBLPFile* this, void* fileBits)" +CBLPFile__LockChain2 006AFFD0 f end=006B012E type="int32_t __thiscall func(CBLPFile* this, char* fileName, PIXEL_FORMAT format, MipBits** images, uint32_t mipLevel, int32_t a6)" +CBLPFile__Lock2 006AFCE0 f end=006AFF06 type="int32_t __thiscall func(CBLPFile* this, char* fileName, PIXEL_FORMAT format, uint32_t mipLevel, unsigned char* data, uint32_t* stride)" +CBLPFile__GetFormatSize 006AF730 f end=006AF7E9 type="int32_t __thiscall func(CBLPFile *this, PIXEL_FORMAT format, uint32_t mipLevel, uint32_t* size, uint32_t* stride)" +CBLPFile__DecompPalARGB8888 006AE9E0 f end=006AEB93 type="void __thiscall func(CBLPFile* this, uint8_t* data, void* tempbuffer, uint32_t colorSize)" +CBLPFile__DecompPalFastPath 006AE990 f end=006AE9D6 type="void __thiscall func(CBLPFile* this, uint8_t* data, void* tempbuffer, uint32_t colorSize)" +CBLPFile__DecompPalARGB4444DitherFloydSteinberg 006AEBA0 f end=006AEE61 +CBLPFile__DecompPalARGB1555DitherFloydSteinberg 006AEE70 f end=006AF133 +CBLPFile__DecompPalARGB565DitherFloydSteinberg 006AF140 f end=006AF33F +CBLPFile__DecompPalARGB2565DitherFloydSteinberg 006AF340 f end=006AF65D +CBLPFile__DecompPal 006AF810 f end=006AF984 type="int32_t __thiscall func(CBLPFile* this, PIXEL_FORMAT format, uint32_t mipLevel, uint8_t* data, void* tempBuffer)" +CTgaFile__AddAlphaChannel_internal 006AA420 f end=006AA51E type="void __thiscall func(CTgaFile* this, uint8_t* pAlphaData, uint8_t* pNoAlphaData, uint8_t* alpha)" ; private utility method +CTgaFile__AddAlphaChannel 006AB390 f end=006AB447 type="int32_t __thiscall func(CTgaFile* this, void* pImg)" ; public method +CTgaFile__RemoveAlphaChannels 006AA870 f end=006AA948 type="int32_t __thiscall func(CTgaFile* this)" +CTgaFile__Open 006AAFB0 f end=006AB0D4 type="int32_t __thiscall func(CTgaFile* this, char* filename, int32_t a3)" +CTgaFile__Close 006AAF40 f end=006AAFA5 type="int32_t __thiscall func(CTgaFile* this)" +CTgaFile__LoadImageData 006AB4B0 f end=006AB5B8 type="int32_t __thiscall func(CTgaFile* this, int32_t flags)" +CTgaFile__ReadRawImage 006AA520 f end=006AA62F +CTgaFile__ReadRleImage 006AB220 f end=006AB381 +CTgaFile__ConvertColorMapped 006AB0E0 f end=006AB212 +CTgaFile__ReadColorMappedImage 006AB450 f end=006AB4A1 +CTgaFile__ColorMapEntryBytes 006AA350 f end=006AA379 ; UC +CTgaFile__ColorMapBytes 006AA380 f end=006AA3B0 +CTgaFile__SetTopDown 006AA700 f end=006AA81D type="void __thiscall func(CTgaFile* this, int32_t set)" +CTgaFile__ImageTGA32Pixel 006AA840 f end=006AA867 type="TGA32Pixel* __thiscall func(CTgaFile* this)" +CTgaFile__ValidateColorDepth 006AA3B0 f end=006AA3E0 type="int32_t __thiscall func(CTgaFile* this)" +CTgaFile__PreImageBytes 006AA3E0 f end=006AA41B type="uint32_t __thiscall func(CTgaFile* this)" +CTgaFile__RLEDecompressImage 006AA630 f end=006AA6F2 type="int32_t __thiscall func(CTgaFile* this, uint8_t* pRLEData, uint8_t* pData)" +TextureCalcMipCount 004B5510 f end=004B5549 type="int32_t __stdcall func(uint32_t width, uint32_t height)" +TextureAllocMippedImg 004B7220 f end=004B72F4 type="MipBits* __stdcall func(PIXEL_FORMAT format, uint32_t width, uint32_t height)" +MippedImgSet 006AB810 f end=006AB85E type="void __stdcall func(uint32_t fourCC, uint32_t width, uint32_t height, MipBits* bits)" +MippedImgAllocA 006AB760 f end=006AB7DF type="MipBits* __stdcall func(uint32_t fourCC, uint32_t width, uint32_t height, char* filename, int32_t linenumber)" +LoadPredrawnMips 004B5A00 f end=004B5BA2 +FullShrink 006AB860 f end=006ABAAF type="void _stdcall func(C4Pixel* dest, uint32_t destWidth, uint32_t destHeight, C4Pixel* source, uint32_t sourceWidth, uint32_t sourceHeight)" +TextureGenerateMips 004B5550 f end=004B55D7 +CalcLevelSize 006AB620 f end=006AB6B9 type="uint32_t __cdecl func(uint32_t level, uint32_t width, uint32_t height, uint32_t fourCC)" +CalcLevelCount 006AB700 f end=006AB75C type="uint32_t __stdcall func(uint32_t width, uint32_t height)" +GetBitDepth 006AB5C0 f end=006AB614 \ No newline at end of file diff --git a/3.3.5a/symbol/texture/label.sym b/3.3.5a/symbol/texture/label.sym new file mode 100644 index 0000000..6d12fb1 --- /dev/null +++ b/3.3.5a/symbol/texture/label.sym @@ -0,0 +1,2 @@ +s_pixelFormatToMipBitsCache 009F1074 l +CBLPFile__s_oneBitAlphaLookup 00AD90C0 l type="uint8_t[2]" \ No newline at end of file diff --git a/3.3.5a/x32dbg/game.dd32 b/3.3.5a/x32dbg/game.dd32 index b520200..5122ef9 100644 --- a/3.3.5a/x32dbg/game.dd32 +++ b/3.3.5a/x32dbg/game.dd32 @@ -168,6 +168,102 @@ "icount": "0x0", "parent": "0xd3b5" }, + { + "manual": true, + "start": "0x217c0", + "end": "0x217d9", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x217c0" + }, + { + "manual": true, + "start": "0x218c0", + "end": "0x21947", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x218c0" + }, + { + "manual": true, + "start": "0x21af0", + "end": "0x21b49", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x21af0" + }, + { + "manual": true, + "start": "0x21bb0", + "end": "0x21c97", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x21bb0" + }, + { + "manual": true, + "start": "0x21ca0", + "end": "0x21cb7", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x21ca0" + }, + { + "manual": true, + "start": "0x22130", + "end": "0x22138", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x22130" + }, + { + "manual": true, + "start": "0x22530", + "end": "0x227d3", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x22530" + }, + { + "manual": true, + "start": "0x22910", + "end": "0x229aa", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x22910" + }, + { + "manual": true, + "start": "0x24b10", + "end": "0x24b40", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x24b10" + }, + { + "manual": true, + "start": "0x24b50", + "end": "0x24e43", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x24b50" + }, + { + "manual": true, + "start": "0x24e80", + "end": "0x24f45", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x24e80" + }, + { + "manual": true, + "start": "0x24f80", + "end": "0x24f97", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x24f80" + }, { "manual": true, "start": "0x61b00", @@ -992,6 +1088,70 @@ "icount": "0x0", "parent": "0xa8d10" }, + { + "manual": true, + "start": "0xb5510", + "end": "0xb5548", + "module": "wow.exe", + "icount": "0x0", + "parent": "0xb5510" + }, + { + "manual": true, + "start": "0xb5550", + "end": "0xb55d6", + "module": "wow.exe", + "icount": "0x0", + "parent": "0xb5550" + }, + { + "manual": true, + "start": "0xb5a00", + "end": "0xb5ba1", + "module": "wow.exe", + "icount": "0x0", + "parent": "0xb5a00" + }, + { + "manual": true, + "start": "0xb7220", + "end": "0xb72f3", + "module": "wow.exe", + "icount": "0x0", + "parent": "0xb7220" + }, + { + "manual": true, + "start": "0xb7300", + "end": "0xb73d8", + "module": "wow.exe", + "icount": "0x0", + "parent": "0xb7300" + }, + { + "manual": true, + "start": "0xb78a0", + "end": "0xb7a9f", + "module": "wow.exe", + "icount": "0x0", + "parent": "0xb78a0" + }, + { + "manual": true, + "start": "0xb8070", + "end": "0xb81cd", + "module": "wow.exe", + "icount": "0x0", + "parent": "0xb8070" + }, + { + "manual": true, + "start": "0xb81d0", + "end": "0xb8384", + "module": "wow.exe", + "icount": "0x0", + "parent": "0xb81d0" + }, { "manual": true, "start": "0xbd9d0", @@ -16424,6 +16584,14 @@ "icount": "0x0", "parent": "0x214ef0" }, + { + "manual": true, + "start": "0x2160b0", + "end": "0x216210", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2160b0" + }, { "manual": true, "start": "0x2163b0", @@ -17104,6 +17272,14 @@ "icount": "0x0", "parent": "0x2a00c0" }, + { + "manual": true, + "start": "0x2a0360", + "end": "0x2a0833", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2a0360" + }, { "manual": true, "start": "0x2a1a90", @@ -17256,6 +17432,302 @@ "icount": "0x0", "parent": "0x2aa2f0" }, + { + "manual": true, + "start": "0x2aa350", + "end": "0x2aa378", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aa350" + }, + { + "manual": true, + "start": "0x2aa380", + "end": "0x2aa3af", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aa380" + }, + { + "manual": true, + "start": "0x2aa3b0", + "end": "0x2aa3df", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aa3b0" + }, + { + "manual": true, + "start": "0x2aa3e0", + "end": "0x2aa41a", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aa3e0" + }, + { + "manual": true, + "start": "0x2aa420", + "end": "0x2aa51d", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aa420" + }, + { + "manual": true, + "start": "0x2aa520", + "end": "0x2aa62e", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aa520" + }, + { + "manual": true, + "start": "0x2aa630", + "end": "0x2aa6f1", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aa630" + }, + { + "manual": true, + "start": "0x2aa700", + "end": "0x2aa81c", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aa700" + }, + { + "manual": true, + "start": "0x2aa840", + "end": "0x2aa866", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aa840" + }, + { + "manual": true, + "start": "0x2aa870", + "end": "0x2aa947", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aa870" + }, + { + "manual": true, + "start": "0x2aaf40", + "end": "0x2aafa4", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aaf40" + }, + { + "manual": true, + "start": "0x2aafb0", + "end": "0x2ab0d3", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aafb0" + }, + { + "manual": true, + "start": "0x2ab0e0", + "end": "0x2ab211", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ab0e0" + }, + { + "manual": true, + "start": "0x2ab220", + "end": "0x2ab380", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ab220" + }, + { + "manual": true, + "start": "0x2ab390", + "end": "0x2ab446", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ab390" + }, + { + "manual": true, + "start": "0x2ab450", + "end": "0x2ab4a0", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ab450" + }, + { + "manual": true, + "start": "0x2ab4b0", + "end": "0x2ab5b7", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ab4b0" + }, + { + "manual": true, + "start": "0x2ab5c0", + "end": "0x2ab613", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ab5c0" + }, + { + "manual": true, + "start": "0x2ab620", + "end": "0x2ab6b8", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ab620" + }, + { + "manual": true, + "start": "0x2ab700", + "end": "0x2ab75b", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ab700" + }, + { + "manual": true, + "start": "0x2ab760", + "end": "0x2ab7de", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ab760" + }, + { + "manual": true, + "start": "0x2ab810", + "end": "0x2ab85d", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ab810" + }, + { + "manual": true, + "start": "0x2ab860", + "end": "0x2abaae", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ab860" + }, + { + "manual": true, + "start": "0x2ae8b0", + "end": "0x2ae8d9", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ae8b0" + }, + { + "manual": true, + "start": "0x2ae900", + "end": "0x2ae98f", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ae900" + }, + { + "manual": true, + "start": "0x2ae990", + "end": "0x2ae9d5", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ae990" + }, + { + "manual": true, + "start": "0x2ae9e0", + "end": "0x2aeb92", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2ae9e0" + }, + { + "manual": true, + "start": "0x2aeba0", + "end": "0x2aee60", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aeba0" + }, + { + "manual": true, + "start": "0x2aee70", + "end": "0x2af132", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aee70" + }, + { + "manual": true, + "start": "0x2af140", + "end": "0x2af33e", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2af140" + }, + { + "manual": true, + "start": "0x2af340", + "end": "0x2af65c", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2af340" + }, + { + "manual": true, + "start": "0x2af6a0", + "end": "0x2af6d0", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2af6a0" + }, + { + "manual": true, + "start": "0x2af730", + "end": "0x2af7e8", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2af730" + }, + { + "manual": true, + "start": "0x2af810", + "end": "0x2af983", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2af810" + }, + { + "manual": true, + "start": "0x2afce0", + "end": "0x2aff05", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2afce0" + }, + { + "manual": true, + "start": "0x2aff10", + "end": "0x2affce", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2aff10" + }, + { + "manual": true, + "start": "0x2affd0", + "end": "0x2b012d", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x2affd0" + }, { "manual": true, "start": "0x2b0960", @@ -18176,6 +18648,14 @@ "icount": "0x0", "parent": "0x36e6e0" }, + { + "manual": true, + "start": "0x36e720", + "end": "0x36e755", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x36e720" + }, { "manual": true, "start": "0x36e760", @@ -18264,6 +18744,14 @@ "icount": "0x0", "parent": "0x3709a0" }, + { + "manual": true, + "start": "0x371870", + "end": "0x371885", + "module": "wow.exe", + "icount": "0x0", + "parent": "0x371870" + }, { "manual": true, "start": "0x371890", @@ -20576,6 +21064,78 @@ "text": "nullsub_1", "address": "0xd3b5" }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__FileIsLocal", + "address": "0x217c0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__GetFileSize", + "address": "0x218c0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__SetDataPath", + "address": "0x21af0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__SetFilePointer", + "address": "0x21bb0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__Unload", + "address": "0x21ca0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__IsStreamingMode", + "address": "0x22130" + }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__Read", + "address": "0x22530" + }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__Close", + "address": "0x22910" + }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__FileExistsEx", + "address": "0x24b10" + }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__OpenEx", + "address": "0x24b50" + }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__Load", + "address": "0x24e80" + }, + { + "manual": true, + "module": "wow.exe", + "text": "SFile__Open", + "address": "0x24f80" + }, { "manual": true, "module": "wow.exe", @@ -21194,6 +21754,54 @@ "text": "GxuFontShutdown", "address": "0xa8d10" }, + { + "manual": true, + "module": "wow.exe", + "text": "TextureCalcMipCount", + "address": "0xb5510" + }, + { + "manual": true, + "module": "wow.exe", + "text": "TextureGenerateMips", + "address": "0xb5550" + }, + { + "manual": true, + "module": "wow.exe", + "text": "LoadPredrawnMips", + "address": "0xb5a00" + }, + { + "manual": true, + "module": "wow.exe", + "text": "TextureAllocMippedImg", + "address": "0xb7220" + }, + { + "manual": true, + "module": "wow.exe", + "text": "TextureFreeMippedImg", + "address": "0xb7300" + }, + { + "manual": true, + "module": "wow.exe", + "text": "LoadTgaMips", + "address": "0xb78a0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "LoadBlpMips", + "address": "0xb8070" + }, + { + "manual": true, + "module": "wow.exe", + "text": "TextureLoadImage", + "address": "0xb81d0" + }, { "manual": true, "module": "wow.exe", @@ -32768,6 +33376,12 @@ "text": "Script_GetVehicleUIIndicatorSeat", "address": "0x214ef0" }, + { + "manual": true, + "module": "wow.exe", + "text": "CopyCursorImage", + "address": "0x2160b0" + }, { "manual": true, "module": "wow.exe", @@ -33278,6 +33892,12 @@ "text": "CGxDeviceD3d__ICursorDestroy", "address": "0x2a00c0" }, + { + "manual": true, + "module": "wow.exe", + "text": "CGxDeviceD3d__WindowProcD3d", + "address": "0x2a0360" + }, { "manual": true, "module": "wow.exe", @@ -33392,6 +34012,228 @@ "text": "CGxDeviceD3d__IBindVertexShader", "address": "0x2aa2f0" }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__ColorMapEntryBytes", + "address": "0x2aa350" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__ColorMapBytes", + "address": "0x2aa380" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__ValidateColorDepth", + "address": "0x2aa3b0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__PreImageBytes", + "address": "0x2aa3e0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__AddAlphaChannel_internal", + "address": "0x2aa420" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__ReadRawImage", + "address": "0x2aa520" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__RLEDecompressImage", + "address": "0x2aa630" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__SetTopDown", + "address": "0x2aa700" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__ImageTGA32Pixel", + "address": "0x2aa840" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__RemoveAlphaChannels", + "address": "0x2aa870" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__Close", + "address": "0x2aaf40" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__Open", + "address": "0x2aafb0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__ConvertColorMapped", + "address": "0x2ab0e0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__ReadRleImage", + "address": "0x2ab220" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__AddAlphaChannel", + "address": "0x2ab390" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__ReadColorMappedImage", + "address": "0x2ab450" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CTgaFile__LoadImageData", + "address": "0x2ab4b0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "GetBitDepth", + "address": "0x2ab5c0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CalcLevelSize", + "address": "0x2ab620" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CalcLevelCount", + "address": "0x2ab700" + }, + { + "manual": true, + "module": "wow.exe", + "text": "MippedImgAllocA", + "address": "0x2ab760" + }, + { + "manual": true, + "module": "wow.exe", + "text": "MippedImgSet", + "address": "0x2ab810" + }, + { + "manual": true, + "module": "wow.exe", + "text": "FullShrink", + "address": "0x2ab860" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__Close", + "address": "0x2ae8b0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__Source", + "address": "0x2ae900" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__DecompPalFastPath", + "address": "0x2ae990" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__DecompPalARGB8888", + "address": "0x2ae9e0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__DecompPalARGB4444DitherFloydSteinberg", + "address": "0x2aeba0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__DecompPalARGB1555DitherFloydSteinberg", + "address": "0x2aee70" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__DecompPalARGB565DitherFloydSteinberg", + "address": "0x2af140" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__DecompPalARGB2565DitherFloydSteinberg", + "address": "0x2af340" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__Pixels", + "address": "0x2af6a0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__GetFormatSize", + "address": "0x2af730" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__DecompPal", + "address": "0x2af810" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__Lock2", + "address": "0x2afce0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__Open", + "address": "0x2aff10" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__LockChain2", + "address": "0x2affd0" + }, { "manual": true, "module": "wow.exe", @@ -34088,6 +34930,12 @@ "text": "SStrChr", "address": "0x36e6e0" }, + { + "manual": true, + "module": "wow.exe", + "text": "SStrChrR", + "address": "0x36e720" + }, { "manual": true, "module": "wow.exe", @@ -34154,6 +35002,12 @@ "text": "SRegSaveValue", "address": "0x3709a0" }, + { + "manual": true, + "module": "wow.exe", + "text": "SErrSetLastError", + "address": "0x371870" + }, { "manual": true, "module": "wow.exe", @@ -35792,6 +36646,12 @@ "text": "nullsub_150", "address": "0x5de1d0" }, + { + "manual": true, + "module": "wow.exe", + "text": "s_pixelFormatToMipBitsCache", + "address": "0x5f1074" + }, { "manual": true, "module": "wow.exe", @@ -35816,6 +36676,18 @@ "text": "CGxDeviceD3d9Ex__vtable", "address": "0x62f500" }, + { + "manual": true, + "module": "wow.exe", + "text": "s_cursorNames", + "address": "0x6d2808" + }, + { + "manual": true, + "module": "wow.exe", + "text": "CBLPFile__s_oneBitAlphaLookup", + "address": "0x6d90c0" + }, { "manual": true, "module": "wow.exe", @@ -35870,6 +36742,36 @@ "text": "s_messageRecycler", "address": "0x741850" }, + { + "manual": true, + "module": "wow.exe", + "text": "s_cursorFile", + "address": "0x825cd0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "s_cursorItemMips", + "address": "0x825ddc" + }, + { + "manual": true, + "module": "wow.exe", + "text": "s_cursorItemType", + "address": "0x825de0" + }, + { + "manual": true, + "module": "wow.exe", + "text": "s_cursorResetMode", + "address": "0x825de4" + }, + { + "manual": true, + "module": "wow.exe", + "text": "s_cursorMode", + "address": "0x826de8" + }, { "manual": true, "module": "wow.exe", diff --git a/3.3.5a/x32dbg/types.json b/3.3.5a/x32dbg/types.json index 4e13406..0ab9b02 100644 --- a/3.3.5a/x32dbg/types.json +++ b/3.3.5a/x32dbg/types.json @@ -136,6 +136,10 @@ "type": "int", "name": "EVENTID" }, + { + "type": "HCOLORMAP__*", + "name": "HCOLORMAP" + }, { "type": "void*", "name": "HEVENTCONTEXT" @@ -156,6 +160,10 @@ "type": "int", "name": "MOUSEMODE" }, + { + "type": "int", + "name": "MipMapAlgorithm" + }, { "type": "int", "name": "OSINPUT" @@ -172,6 +180,10 @@ "type": "long long", "name": "SCHEDSTATE" }, + { + "type": "int", + "name": "STATUS_TYPE" + }, { "type": "int32_t", "name": "intptr_t" @@ -188,6 +200,10 @@ "type": "CSBasePriorityQueue", "name": "TSPriorityQueue_EvtTimer" }, + { + "type": "TSList_CStatus__STATUSENTRY", + "name": "TSExplicitList_CStatus__STATUSENTRY" + }, { "type": "TSList_EvtMessage", "name": "TSExplicitList_EvtMessage" @@ -230,6 +246,49 @@ } ], "structs": [ + { + "name": "BLPJPEGHeader", + "size": 1024, + "members": [ + { + "type": "uint32_t", + "name": "headerSize", + "offset": 0 + }, + { + "type": "uint8_t", + "name": "headerData", + "arrsize": 1020, + "offset": 4 + } + ] + }, + { + "name": "BlpPalPixel", + "size": 4, + "members": [ + { + "type": "uint8_t", + "name": "b", + "offset": 0 + }, + { + "type": "uint8_t", + "name": "g", + "offset": 1 + }, + { + "type": "uint8_t", + "name": "r", + "offset": 2 + }, + { + "type": "uint8_t", + "name": "pad", + "offset": 3 + } + ] + }, { "name": "C2Vector", "size": 8, @@ -487,26 +546,52 @@ ] }, { - "name": "C4Pixel", - "size": 4, + "name": "C4LargePixel", + "size": 32, "members": [ { - "type": "char", + "type": "uint64_t", "name": "b", "offset": 0 }, { - "type": "char", + "type": "uint64_t", + "name": "g", + "offset": 8 + }, + { + "type": "uint64_t", + "name": "r", + "offset": 16 + }, + { + "type": "uint64_t", + "name": "a", + "offset": 24 + } + ] + }, + { + "name": "C4Pixel", + "size": 4, + "members": [ + { + "type": "uint8_t", + "name": "b", + "offset": 0 + }, + { + "type": "uint8_t", "name": "g", "offset": 1 }, { - "type": "char", + "type": "uint8_t", "name": "r", "offset": 2 }, { - "type": "char", + "type": "uint8_t", "name": "a", "offset": 3 } @@ -1462,6 +1547,17 @@ } ] }, + { + "name": "HCOLORMAP__", + "size": 4, + "members": [ + { + "type": "int32_t", + "name": "unused", + "offset": 0 + } + ] + }, { "name": "HPROPCONTEXT__", "size": 4, @@ -1574,6 +1670,10 @@ } ] }, + { + "name": "SFile", + "size": 0 + }, { "name": "TExtraInstanceRecyclable", "size": 4, @@ -1585,6 +1685,80 @@ } ] }, + { + "name": "TGA32Pixel", + "size": 4, + "members": [ + { + "type": "uint8_t", + "name": "b", + "offset": 0 + }, + { + "type": "uint8_t", + "name": "g", + "offset": 1 + }, + { + "type": "uint8_t", + "name": "r", + "offset": 2 + }, + { + "type": "uint8_t", + "name": "a", + "offset": 3 + } + ] + }, + { + "name": "TGAFooter", + "size": 28, + "members": [ + { + "type": "uint32_t", + "name": "dwExtensionOffset", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "dwDeveloperOffset", + "offset": 4 + }, + { + "type": "uint8_t", + "name": "szSigniture", + "arrsize": 18, + "offset": 8 + } + ] + }, + { + "name": "TGAImageDesc", + "size": 1, + "members": [ + { + "type": "uint8_t", + "name": "bAlphaChannelBits", + "offset": 0 + }, + { + "type": "uint8_t", + "name": "bLeftRightOrder", + "offset": 0 + }, + { + "type": "uint8_t", + "name": "bTopBottomOrder", + "offset": 0 + }, + { + "type": "uint8_t", + "name": "bReserved", + "offset": 0 + } + ] + }, { "name": "TSFixedArray_CGxAppRenderState", "size": 12, @@ -1883,6 +2057,22 @@ } ] }, + { + "name": "TSLink_CStatus__STATUSENTRY", + "size": 8, + "members": [ + { + "type": "TSLink_CStatus__STATUSENTRY*", + "name": "m_prevlink", + "offset": 0 + }, + { + "type": "CStatus__STATUSENTRY*", + "name": "m_next", + "offset": 4 + } + ] + }, { "name": "TSLink_EVENTLISTENERNODE", "size": 8, @@ -3289,6 +3479,38 @@ } ] }, + { + "name": "CStatus__STATUSENTRY", + "size": 16, + "members": [ + { + "type": "char*", + "name": "text", + "offset": 0 + }, + { + "type": "STATUS_TYPE", + "name": "severity", + "offset": 4 + }, + { + "type": "TSLink_CStatus__STATUSENTRY", + "name": "link", + "offset": 8 + } + ] + }, + { + "name": "TSLinkedNode_CStatus__STATUSENTRY", + "size": 8, + "members": [ + { + "type": "TSLink_CStatus__STATUSENTRY", + "name": "m_link", + "offset": 0 + } + ] + }, { "name": "TSLinkedNode_EVENTLISTENERNODE", "size": 8, @@ -3466,6 +3688,22 @@ } ] }, + { + "name": "TSList_CStatus__STATUSENTRY", + "size": 12, + "members": [ + { + "type": "ptrdiff_t", + "name": "m_linkoffset", + "offset": 0 + }, + { + "type": "TSLink_CStatus__STATUSENTRY", + "name": "m_terminator", + "offset": 4 + } + ] + }, { "name": "TSList_EvtMessage", "size": 12, @@ -3637,6 +3875,69 @@ } ] }, + { + "name": "BLPHeader", + "size": 1172, + "members": [ + { + "type": "uint32_t", + "name": "magic", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "formatVersion", + "offset": 4 + }, + { + "type": "uint8_t", + "name": "colorEncoding", + "offset": 8 + }, + { + "type": "uint8_t", + "name": "alphaSize", + "offset": 9 + }, + { + "type": "uint8_t", + "name": "preferredFormat", + "offset": 10 + }, + { + "type": "uint8_t", + "name": "hasMips", + "offset": 11 + }, + { + "type": "uint32_t", + "name": "width", + "offset": 12 + }, + { + "type": "uint32_t", + "name": "height", + "offset": 16 + }, + { + "type": "uint32_t", + "name": "mipOffsets", + "arrsize": 16, + "offset": 20 + }, + { + "type": "uint32_t", + "name": "mipSizes", + "arrsize": 16, + "offset": 84 + }, + { + "type": "BLPHeader__extended", + "name": "extended", + "offset": 148 + } + ] + }, { "name": "CGxAppRenderState", "size": 24, @@ -3725,6 +4026,72 @@ } ] }, + { + "name": "TGAHeader", + "size": 20, + "members": [ + { + "type": "uint8_t", + "name": "bIDLength", + "offset": 0 + }, + { + "type": "uint8_t", + "name": "bColorMapType", + "offset": 1 + }, + { + "type": "uint8_t", + "name": "bImageType", + "offset": 2 + }, + { + "type": "uint16_t", + "name": "wColorMapStartIndex", + "offset": 4 + }, + { + "type": "uint16_t", + "name": "wColorMapEntries", + "offset": 6 + }, + { + "type": "uint8_t", + "name": "bColorMapEntrySize", + "offset": 8 + }, + { + "type": "uint16_t", + "name": "wXOrigin", + "offset": 10 + }, + { + "type": "uint16_t", + "name": "wYOrigin", + "offset": 12 + }, + { + "type": "uint16_t", + "name": "wWidth", + "offset": 14 + }, + { + "type": "uint16_t", + "name": "wHeight", + "offset": 16 + }, + { + "type": "uint8_t", + "name": "bPixelDepth", + "offset": 18 + }, + { + "type": "TGAHeader__0019", + "name": "", + "offset": 19 + } + ] + }, { "name": "CGxBuf", "size": 32, @@ -4399,6 +4766,98 @@ } ] }, + { + "name": "CBLPFile", + "size": 1204, + "members": [ + { + "type": "MipBits*", + "name": "m_images", + "offset": 0 + }, + { + "type": "BLPHeader", + "name": "m_header", + "offset": 4 + }, + { + "type": "void*", + "name": "m_inMemoryImage", + "offset": 1176 + }, + { + "type": "int32_t", + "name": "m_inMemoryNeedsFree", + "offset": 1180 + }, + { + "type": "uint32_t", + "name": "m_numLevels", + "offset": 1184 + }, + { + "type": "uint32_t", + "name": "m_quality", + "offset": 1188 + }, + { + "type": "HCOLORMAP", + "name": "m_colorMapping", + "offset": 1192 + }, + { + "type": "MipMapAlgorithm", + "name": "m_mipMapAlgorithm", + "offset": 1196 + }, + { + "type": "uint8_t*", + "name": "m_lockDecompMem", + "offset": 1200 + } + ] + }, + { + "name": "CTgaFile", + "size": 68, + "members": [ + { + "type": "SFile*", + "name": "m_file", + "offset": 0 + }, + { + "type": "uint8_t*", + "name": "m_image", + "offset": 4 + }, + { + "type": "TGAHeader", + "name": "m_header", + "offset": 8 + }, + { + "type": "uint8_t*", + "name": "m_addlHeaderData", + "offset": 28 + }, + { + "type": "TGAFooter", + "name": "m_footer", + "offset": 32 + }, + { + "type": "uint32_t", + "name": "m_imageBytes", + "offset": 60 + }, + { + "type": "uint8_t*", + "name": "m_colorMap", + "offset": 64 + } + ] + }, { "name": "EvtTimerQueue", "size": 20, @@ -4421,6 +4880,17 @@ } ] }, + { + "name": "CStatus", + "size": 12, + "members": [ + { + "type": "TSExplicitList_CStatus__STATUSENTRY", + "name": "statusList", + "offset": 0 + } + ] + }, { "name": "CGxDeviceD3d", "size": 16048, @@ -4780,6 +5250,33 @@ "name": "u" } ] + }, + { + "name": "BLPHeader__extended", + "members": [ + { + "type": "BlpPalPixel", + "name": "palette", + "arrsize": 256 + }, + { + "type": "BLPJPEGHeader", + "name": "jpeg" + } + ] + }, + { + "name": "TGAHeader__0019", + "members": [ + { + "type": "uint8_t", + "name": "bImageDescriptor" + }, + { + "type": "TGAImageDesc", + "name": "desc" + } + ] } ] }