diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/GX_layers.h | 15 | ||||
-rw-r--r-- | include/bag.h | 8 | ||||
-rw-r--r-- | include/bag_view.h | 56 | ||||
-rw-r--r-- | include/bg_window.h | 424 | ||||
-rw-r--r-- | include/game_init.h | 30 | ||||
-rw-r--r-- | include/gf_gfx_loader.h | 17 | ||||
-rw-r--r-- | include/heap.h | 40 | ||||
-rw-r--r-- | include/list_menu_cursor.h | 2 | ||||
-rw-r--r-- | include/mail_message.h | 2 | ||||
-rw-r--r-- | include/main.h | 30 | ||||
-rw-r--r-- | include/player_data.h | 10 | ||||
-rw-r--r-- | include/render_text.h | 48 | ||||
-rw-r--r-- | include/scrcmd.h | 36 | ||||
-rw-r--r-- | include/script.h | 4 | ||||
-rw-r--r-- | include/script_buffers.h | 2 | ||||
-rw-r--r-- | include/text.h | 2 | ||||
-rw-r--r-- | include/text_02054590.h | 8 | ||||
-rw-r--r-- | include/timer3.h | 6 | ||||
-rw-r--r-- | include/unk_02016B94.h | 340 | ||||
-rw-r--r-- | include/unk_0201B8B8.h | 4 | ||||
-rw-r--r-- | include/unk_0205EC84.h | 58 | ||||
-rw-r--r-- | include/unk_020851B8.h | 19 | ||||
-rw-r--r-- | include/unk_02085338.h | 47 | ||||
-rw-r--r-- | include/unk_02088AAC.h | 31 |
24 files changed, 801 insertions, 438 deletions
diff --git a/include/GX_layers.h b/include/GX_layers.h index 3943d582..03c20df6 100644 --- a/include/GX_layers.h +++ b/include/GX_layers.h @@ -3,12 +3,7 @@ #include "global.h" - -struct GX_LayerData -{ - u32 EngineB_DISPCNT_LayerMask; - u32 EngineA_DISPCNT_LayerMask; -}; +#include "gx.h" typedef enum { @@ -33,10 +28,10 @@ struct GraphicsBanks struct GraphicsModes { - u32 mode1; - u32 mode2; - u32 mode3; - u32 mode4; + GXDispMode dispMode; + GXBGMode bgMode; + GXBGMode subMode; + GXBG0As _2d3dMode; }; diff --git a/include/bag.h b/include/bag.h index 14735443..a785afc6 100644 --- a/include/bag.h +++ b/include/bag.h @@ -1,6 +1,7 @@ #ifndef POKEDIAMOND_BAG_H #define POKEDIAMOND_BAG_H +#include "bag_view.h" #include "itemtool.h" #include "save_block_2.h" @@ -17,13 +18,6 @@ struct Bag u32 registeredItem; }; -struct BagView -{ - struct ItemSlot * slots; - u32 count; - u8 pocket; -}; - struct UnkStruct_0206F164 { u8 unk_00[8]; diff --git a/include/bag_view.h b/include/bag_view.h new file mode 100644 index 00000000..423d2677 --- /dev/null +++ b/include/bag_view.h @@ -0,0 +1,56 @@ +#ifndef POKEDIAMOND_BAG_VIEW_H +#define POKEDIAMOND_BAG_VIEW_H + +#include "player_data.h" +#include "save_block_2.h" + +struct UnkStruct_0206F164; + +struct BagView_UnkSub +{ + struct ItemSlot *slot; + u8 padding[0x4]; + u8 pocket; + u8 padding2[0x3]; +}; // total size = 0xC + +struct BagView +{ + struct SaveBlock2 *sav2; + struct BagView_UnkSub slots[8]; + u8 padding; + u8 unk65; + u16 unk66; + u16 unk68; + u8 padding2[0x2]; + struct UnkStruct_0206F164 *unk6C; + u32 unk70; + u8 unk74; + u8 unk75; + u16 unk76 : 1; + u16 unk76_2 : 15; +}; // total size = 0x78 + +struct BagView *BagView_New(u8 heap_id); +u32 BagView_sizeof(); +void FUN_0206E30C(struct BagView *bag_view, u8 r1); +void FUN_0206E314( + struct BagView *bag_view, struct SaveBlock2 *sav2, u8 r2, struct UnkStruct_0206F164 *r3); +void BagView_SetItem(struct BagView *bag_view, struct ItemSlot *slot, u8 pocket, u8 idx); +void FUN_0206E340(struct BagView *bag_view); +void FUN_0206E354(struct BagView *bag_view, u32 r1); +void FUN_0206E358(struct BagView *bag_view, u8 r1); +void FUN_0206E360(struct BagView *bag_view, u16 r1); +u16 FUN_0206E37C(struct BagView *bag_view); +u16 FUN_0206E384(struct BagView *bag_view); +u8 FUN_0206E38C(struct BagView *bag_view); +u8 FUN_0206E394(struct BagView *bag_view); +u32 FUN_0206E39C(struct SaveBlock2 *sav2); +u32 FUN_0206E3A8(struct SaveBlock2 *sav2); +u32 FUN_0206E3C8(struct SaveBlock2 *sav2); +u32 FUN_0206E3D8(struct SaveBlock2 *sav2); +u32 FUN_0206E3E8(struct SaveBlock2 *sav2); +BOOL FUN_0206E3F8(struct SaveBlock2 *sav2, struct String *dest, u32 item_id, u32 heap_id); +void FUN_0206E51C(struct PlayerData *playerData, struct String *dest, u32 r2, u32 r3, u32 heap_id); + +#endif // POKEDIAMOND_BAG_VIEW_H diff --git a/include/bg_window.h b/include/bg_window.h new file mode 100644 index 00000000..24ed152b --- /dev/null +++ b/include/bg_window.h @@ -0,0 +1,424 @@ +#ifndef POKEDIAMOND_UNK_02016B94_H +#define POKEDIAMOND_UNK_02016B94_H + +#include "NNS_g2d.h" +#include "global.h" +#include "GX_layers.h" +#include "MI_uncompress.h" +#include "OS_cache.h" +#include "gx.h" +#include "heap.h" +#include "math_util.h" + +struct BgTemplate +{ + u32 x; + u32 y; + u32 bufferSize; + u32 baseTile; + + u8 size; + u8 colorMode; + u8 screenBase; + u8 charBase; + u8 bgExtPltt; + u8 priority; + u8 areaOver; + u8 unk17; // probably paddding + u32 mosaic; +}; + +struct Bg +{ + void *tilemapBuffer; + u32 bufferSize; + u32 baseTile; + + fx32 hOffset; + fx32 vOffset; + + u8 mode; + u8 size; + u8 colorMode; + u8 tileSize; + u16 rotation; + u16 unk22; // probably padding + fx32 xScale; + fx32 yScale; + fx32 centerX; + fx32 centerY; +}; + +struct BgConfig +{ + u32 heap_id; + u16 scrollScheduled; + u16 bufferTransferScheduled; + struct Bg bgs[8]; +}; + +struct Bitmap +{ + const u8 *pixels; + u16 width; + u16 height; +}; + +struct WindowTemplate +{ + u8 bgId; + u8 tilemapLeft; + u8 tilemapTop; + u8 width; + u8 height; + u8 paletteNum; + u16 baseTile; +}; + +struct Window +{ + struct BgConfig *bgConfig; + u8 bgId; + u8 tilemapLeft; + u8 tilemapTop; + u8 width; + u8 height; + u8 paletteNum; + u16 baseTile : 15; + u16 colorMode : 1; + void *pixelBuffer; +}; + +enum GFBppMode +{ + GF_BG_CLR_4BPP = 0, + GF_BG_CLR_8BPP, +}; + +enum GFBgLayer +{ + GF_BG_LYR_MAIN_0 = 0, + GF_BG_LYR_MAIN_1, + GF_BG_LYR_MAIN_2, + GF_BG_LYR_MAIN_3, + GF_BG_LYR_SUB_0, + GF_BG_LYR_SUB_1, + GF_BG_LYR_SUB_2, + GF_BG_LYR_SUB_3, + GF_BG_LYR_MAIN_CNT = 4, + GF_BG_LYR_SUB_CNT = 4, + GF_BG_LYR_MAIN_FIRST = GF_BG_LYR_MAIN_0, + GF_BG_LYR_SUB_FIRST = GF_BG_LYR_SUB_0, + + GF_BG_LYR_MAIN_0_F = 1 << (GF_BG_LYR_MAIN_0 - GF_BG_LYR_MAIN_FIRST), + GF_BG_LYR_MAIN_1_F = 1 << (GF_BG_LYR_MAIN_1 - GF_BG_LYR_MAIN_FIRST), + GF_BG_LYR_MAIN_2_F = 1 << (GF_BG_LYR_MAIN_2 - GF_BG_LYR_MAIN_FIRST), + GF_BG_LYR_MAIN_3_F = 1 << (GF_BG_LYR_MAIN_3 - GF_BG_LYR_MAIN_FIRST), + GF_BG_LYR_SUB_0_F = 1 << (GF_BG_LYR_SUB_0 - GF_BG_LYR_SUB_FIRST), + GF_BG_LYR_SUB_1_F = 1 << (GF_BG_LYR_SUB_1 - GF_BG_LYR_SUB_FIRST), + GF_BG_LYR_SUB_2_F = 1 << (GF_BG_LYR_SUB_2 - GF_BG_LYR_SUB_FIRST), + GF_BG_LYR_SUB_3_F = 1 << (GF_BG_LYR_SUB_3 - GF_BG_LYR_SUB_FIRST), + + GF_BG_LYR_UNALLOC = 0xFF, +}; + +enum GFBgType +{ + GF_BG_TYPE_TEXT = 0, + GF_BG_TYPE_AFFINE, + GF_BG_TYPE_256x16PLTT, +}; + +enum GFBgCntSet +{ + GF_BG_CNT_SET_COLOR_MODE = 0, + GF_BG_CNT_SET_SCREEN_BASE, + GF_BG_CNT_SET_CHAR_BASE, +}; + +enum GFBgScreenSize +{ + GF_BG_SCR_SIZE_128x128 = 0, + GF_BG_SCR_SIZE_256x256, + GF_BG_SCR_SIZE_256x512, + GF_BG_SCR_SIZE_512x256, + GF_BG_SCR_SIZE_512x512, + GF_BG_SCR_SIZE_1024x1024 +}; + +enum BgPosAdjustOp +{ + // Text layers + BG_POS_OP_SET_X = 0, + BG_POS_OP_ADD_X, + BG_POS_OP_SUB_X, + BG_POS_OP_SET_Y, + BG_POS_OP_ADD_Y, + BG_POS_OP_SUB_Y, + + // Affine layers + BG_POS_OP_SET_ROT = 0, + BG_POS_OP_ADD_ROT, + BG_POS_OP_SUB_ROT, + BG_POS_OP_SET_CENTERX = 9, + BG_POS_OP_ADD_CENTERX, + BG_POS_OP_SUB_CENTERX, + BG_POS_OP_SET_CENTERY, + BG_POS_OP_ADD_CENTERY, + BG_POS_OP_SUB_CENTERY, +}; + +struct BgConfig *BgConfig_Alloc(u32 heap_id); +u32 BgConfig_GetHeapId(struct BgConfig *bgConfig); +void SetBothScreensModesAndDisable(const struct GraphicsModes *modes); +void SetScreenModeAndDisable(const struct GraphicsModes *gfxModes, u32 whichScreen); +void InitBgFromTemplate( + struct BgConfig *bgConfig, u8 bgId, const struct BgTemplate *template, u8 bgMode); +void SetBgControlParam(struct BgConfig *config, u8 bgId, u32 attr, u8 value); +u8 TranslateGFBgModePairToGXScreenSize(u8 size, u32 bgMode); +void GetBgScreenDimensions(u32 screenSize, u8 *width_p, u8 *height_p); +void FreeBgTilemapBuffer(struct BgConfig *bgConfig, u32 bgId); +void SetBgPriority(u32 bgId, u16 priority); +void ToggleBgLayer(u32 bgId, GX_LayerToggle toggle); +void BgSetPosTextAndCommit(struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 val); +fx32 Bg_GetXpos(struct BgConfig *bgConfig, u32 bgId); +fx32 Bg_GetYpos(struct BgConfig *bgConfig, u32 bgId); +void Bg_SetTextDimAndAffineParams(struct BgConfig *bgConfig, + u32 bgId, + u32 txOp, + fx32 txVal, + struct Mtx22 *mtx, + fx32 centerX, + fx32 centerY); +void Bg_SetPosText(struct Bg *bg, u32 op, fx32 val); +void SetBgAffine(struct BgConfig *bgConfig, + u32 bgId, + struct Mtx22 *mtx, + fx32 centerX, + fx32 centerY); +void BgAffineReset(struct BgConfig *bgConfig, u32 bgId); +void CopyOrUncompressTilemapData(const void *src, void *dest, u32 size); +void BgCommitTilemapBufferToVram(struct BgConfig *bgConfig, u32 bgId); +void BgCopyOrUncompressTilemapBufferRangeToVram( + struct BgConfig *bgConfig, u32 bgId, u32 *src, u32 size, u32 tileOffset); +void LoadBgVramScr(u32 bgId, void *buffer_p, u32 offset, u32 size); +void BG_LoadScreenTilemapData(struct BgConfig *bgConfig, u32 bgId, void *src, u32 numTiles); +void BG_LoadCharTilesData( + struct BgConfig *bgConfig, u32 bgId, u32 *charData, u32 offset, u32 numTiles); +void BG_LoadCharPixelData( + struct BgConfig *bgConfig, u32 bgId, u32 *charData, u32 size, u32 offset); +void LoadBgVramChar(u32 bgId, void *buffer_p, u32 offset, u32 size); +void BG_ClearCharDataRange(u32 bgId, u32 size, u32 offset, u32 heap_id); +void BG_FillCharDataRange( + struct BgConfig *param0, u32 bgId, u32 fillValue, u32 count, u32 offset); +void BG_LoadPlttData(u32 bgId, void *plttData, u32 size, u32 offset); +void BG_SetMaskColor(u32 bgId, u32 value); +u16 GetTileMapIndexFromCoords(u8 x, u8 y, u8 screenSize); +u16 GetSrcTileMapIndexFromCoords(u8 x, u8 y, u8 width, u8 height); +void LoadRectToBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + void *src, + u8 dstX, + u8 dstY, + u8 width, + u8 height); +void CopyToBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + void *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight); +void CopyRectToBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + void *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight); +void CopyBgTilemapRectText(struct Bg *bg, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + u16 *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight, + u8 adjustForSrcDims); +void CopyBgTilemapRectAffine(struct Bg *bg, + u8 dstX, + u8 dstY, + u8 dstWidth, + u8 dstHeight, + u8 *src, + u8 srcX, + u8 srcY, + u8 srcWidth, + u8 srcHeight, + u8 adjustForSrcDims); +void FillBgTilemapRect(struct BgConfig *bgConfig, + u32 bgId, + u16 fillValue, + u8 x, + u8 y, + u8 width, + u8 height, + u8 paletteNum); +void FillBgTilemapRectText(struct Bg *bg, + u16 fillValue, + u8 x, + u8 y, + u8 width, + u8 height, + u8 paletteNum); +void FillBgTilemapRectAffine( + struct Bg *bg, u8 fillValue, u8 x, u8 y, u8 width, u8 height); +void BgTilemapRectChangePalette(struct BgConfig *bgConfig, + u32 bgId, + u8 x, + u8 y, + u8 width, + u8 height, + u8 paletteNum); +void BgClearTilemapBufferAndCommit(struct BgConfig *bgConfig, u32 bgId); +void BgFillTilemapBufferAndCommit(struct BgConfig *bgConfig, u32 bgId, u16 fillValue); +void BgFillTilemapBufferAndSchedule(struct BgConfig *bgConfig, u32 bgId, u16 fillValue); +void *BgGetCharPtr(u32 bgId); +void Convert4bppTo8bppInternal(u8 *src4bpp, u32 size, u8 (*dest8bpp), u8 paletteNum); +u8 *Convert4bppTo8bpp(u8 *src4Bpp, u32 size, u8 paletteNum, u32 heap_id); +void *GetBgTilemapBuffer(struct BgConfig *bgConfig, u8 bgId); +u16 GetBgAffineRotation(struct BgConfig *bgConfig, u32 bgId); +u8 GetBgPriority(struct BgConfig *bgConfig, u32 bgId); +void BlitBitmapRect4Bit(const struct Bitmap *src, + const struct Bitmap *dst, + u16 srcX, + u16 srcY, + u16 dstX, + u16 dstY, + u16 width, + u16 height, + u16 colorKey); +void BlitBitmapRect8Bit(const struct Bitmap *src, + const struct Bitmap *dst, + u16 srcX, + u16 srcY, + u16 dstX, + u16 dstY, + u16 width, + u16 height, + u16 colorKey); +void FillBitmapRect4Bit( + struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); +void FillBitmapRect8Bit( + struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); +struct Window *AllocWindows(u32 heap_id, s32 size); +void InitWindow(struct Window *window); +BOOL WindowIsInUse(struct Window *window); +void AddWindowParameterized(struct BgConfig *param0, + struct Window *window, + u8 bgId, + u8 tilemapLeft, + u8 tilemapTop, + u8 width, + u8 height, + u8 paletteNum, + u16 baseTile); +void AddTextWindowTopLeftCorner(struct BgConfig *param0, + struct Window *window, + u8 width, + u8 height, + u16 baseTile, + u8 paletteNum); +void AddWindow(struct BgConfig *bgConfig, + struct Window *window, + const struct WindowTemplate *template); +void RemoveWindow(struct Window *window); +void WindowArray_dtor(struct Window *windows, int count); +void CopyWindowToVram(struct Window *window); +void ScheduleWindowCopyToVram(struct Window *window); +void PutWindowTilemap(struct Window *window); +void PutWindowTilemapRectAnchoredTopLeft(struct Window *window, u8 width, u8 height); +void ClearWindowTilemap(struct Window *window); +void PutWindowTilemap_TextMode(struct Window *param0); +void PutWindowTilemap_AffineMode(struct Window *window); +void ClearWindowTilemapText(struct Window *window); +void ClearWindowTilemapAffine(struct Window *window); +void CopyWindowToVram_TextMode(struct Window *window); +void ScheduleWindowCopyToVram_TextMode(struct Window *window); +void CopyWindowToVram_AffineMode(struct Window *window); +void ScheduleWindowCopyToVram_AffineMode(struct Window *window); +void CopyWindowPixelsToVram_TextMode(struct Window *window); +void ClearWindowTilemapAndCopyToVram(struct Window *window); +void ClearWindowTilemapAndScheduleTransfer(struct Window *window); +void ClearWindowTilemapAndCopyToVram_TextMode(struct Window *window); +void ClearWindowTilemapAndScheduleTransfer_TextMode(struct Window *window); +void ClearWindowTilemapAndCopyToVram_AffineMode(struct Window *window); +void ClearWindowTilemapAndScheduleTransfer_AffineMode(struct Window *window); +void FillWindowPixelBuffer(struct Window *window, u8 param1); +void BlitBitmapRectToWindow(struct Window *window, + const void *src, + u16 srcX, + u16 srcY, + u16 srcWidth, + u16 srcHeight, + u16 dstX, + u16 dstY, + u16 dstWidth, + u16 dstHeight); +void BlitBitmapRect(struct Window *window, + void *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8, + u16 param9, + u16 param10); +void FillWindowPixelRect(struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height); +void CopyGlyphToWindow( + struct Window * window, + const char * src, + u16 srcWidth, + u16 srcHeight, + u16 width, + u16 height, + u16 glyph +); +void ScrollWindow(struct Window *window, u32 param1, u8 param2, u8 param3); +void ScrollWindow4bpp(struct Window *window, u32 param1, u8 param2, u8 fillValue); +void ScrollWindow8bpp(struct Window *window, u32 param1, u8 param2, u8 fillValue); +u8 GetWindowBgId(struct Window *window); +u8 GetWindowWidth(struct Window *window); +u8 GetWindowHeight(struct Window *window); +u8 GetWindowX(struct Window *window); +u8 GetWindowY(struct Window *window); +void MoveWindowX(struct Window *window, u8 x); +void MoveWindowY(struct Window *window, u8 y); +void SetWindowPaletteNum(struct Window *window, u8 paletteNum); +NNSG2dCharacterData * LoadCharacterDataFromFile(void **char_ret, u32 heap_id, const char *path); +NNSG2dPaletteData * LoadPaletteDataFromFile(void **pltt_ret, u32 heap_id, const char *path); +void DoScheduledBgGpuUpdates(struct BgConfig *bgConfig); +void DoScheduledBgTilemapBufferTransfers(struct BgConfig *bgConfig); +void ScheduleBgTilemapBufferTransfer(struct BgConfig *bgConfig, u32 bgId); +void ApplyScheduledBgPosUpdate(struct BgConfig *bgConfig); +void ScheduleSetBgPosText(struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 value); +void ScheduleSetBgAffineRotation(struct BgConfig *bgConfig, u32 bgId, u32 op, u16 value); +void Bg_SetAffineRotation(struct Bg *bg, u32 op, u16 val); +void ScheduleSetBgAffinePos(struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 value); +void Bg_SetAffinePos(struct Bg *bg, u32 op, fx32 val); +u32 DoesPixelAtScreenXYMatchPtrVal(struct BgConfig *bgConfig, u8 bgId, u8 x, u8 y, u16 *src); +void ApplyFlipFlagsToTile(struct BgConfig *bgConfig, u8 flag, u8 *src); + +#endif // POKEDIAMOND_UNK_02016B94_H diff --git a/include/game_init.h b/include/game_init.h index 7a6e34fb..bf6569c4 100644 --- a/include/game_init.h +++ b/include/game_init.h @@ -9,26 +9,26 @@ void FUN_02015EF4(void); void Main_SetVBlankIntrCB(void (*a0)(void *), void * a1); void FUN_02015F1C(void); BOOL FUN_02015F34(void (*a0)(void *), void * a1); -void FUN_02015F6C(void); -void Main_HBlankIntr(BOOL a0); +void Main_CallHBlankCallback(void); +void Main_ToggleHBlankInterrupt(BOOL enableFlag); void FUN_02015FC8(void); void InitSystemForTheGame(void); void InitGraphicMemory(void); -void * FUN_020161A4(u32 heap_id, const char * path); -void FUN_020161F8(const char * path, void ** ptr); -u32 FUN_02016230(const s8 * str); -int FUN_020162A0(u32 a0); -int FUN_020162C8(void * a0, u32 a1); -void FUN_020162FC(void); -void * FUN_02016324(const s8 * str, u32 heap_id); -void FUN_020163BC(void); +void * AllocAndReadFile(u32 heap_id, const char * path); +void OpenAndReadWholeFile(const char * path, void ** ptr); +u32 GetFilenameHash(const s8 * str); +int GetFileCacheId(u32 hash); +int AddFileToCache(void * contents, u32 hash); +void ClearFileCache(void); +void * OpenFileCached(const s8 * str, u32 heap_id); +void InitKeypadAndTouchpad(void); void FUN_02016438(u8 a0); void FUN_02016444(u8 a0); void FUN_02016454(u8 a0); -void FUN_02016464(void); -void FUN_02016568(void); -void FUN_0201669C(int x, int y); -void FUN_020166A8(u8 a0); -void FUN_020166B8(u8 a0); +void ReadKeypadAndTocuhpad(void); +void ApplyButtonModeToInput(void); +void SetKeyRepeatTimers(int continueDelay, int startDelay); +void SetSoftResetDisableMask(u8 a0); +void ClearSoftResetDisableMask(u8 a0); #endif //POKEDIAMOND_GAME_INIT_H diff --git a/include/gf_gfx_loader.h b/include/gf_gfx_loader.h index b95075dc..32d63449 100644 --- a/include/gf_gfx_loader.h +++ b/include/gf_gfx_loader.h @@ -1,16 +1,17 @@ #ifndef POKEDIAMOND_GF_GFX_LOADER_H
#define POKEDIAMOND_GF_GFX_LOADER_H
-#include "unk_02016B94.h"
+#include "bg_window.h"
+#include "filesystem.h"
-u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id);
-void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id);
-void GfGfxLoader_GXLoadPal(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 baseAddr, u32 szByte, u32 heap_id);
-void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 srcOffset, u32 baseAddr, u32 szByte, u32 heap_id);
-u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 whichRoutine, u32 baseAddr, u32 szByte, BOOL isCompressed, u32 heap_id);
+u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct BgConfig * unkStruct02016B94_2, u32 layer, u32 numTiles, u32 szByte, BOOL isCompressed, u32 heap_id);
+void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct BgConfig * unkStruct02016B94_2, u32 layer, u32 tileOffset, u32 szByte, BOOL isCompressed, u32 heap_id);
+void GfGfxLoader_GXLoadPal(NarcId narcId, s32 memberNo, u32 layer, u32 baseAddr, u32 szByte, u32 heap_id);
+void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, u32 layer, u32 srcOffset, u32 baseAddr, u32 szByte, u32 heap_id);
+u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 layer, u32 baseAddr, u32 szByte, BOOL isCompressed, u32 heap_id);
void GfGfxLoader_PartiallyLoadPalette(NarcId narcId, s32 memberId, NNS_G2D_VRAM_TYPE vramType, u32 baseAddr, u32 heap_id, NNSG2dImagePaletteProxy * pPltProxy);
-u32 GfGfxLoader_LoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy *pImgProxy);
-void GfGfxLoader_SetObjCntFlagsAndLoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy * pImageProxy);
+u32 GfGfxLoader_LoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 layer, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy *pImgProxy);
+void GfGfxLoader_SetObjCntFlagsAndLoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 layer, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy * pImageProxy);
void * GfGfxLoader_GetCharData(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dCharacterData ** ppCharData, u32 heap_id);
void * GfGfxLoader_GetScrnData(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dScreenData ** ppScrData, u32 heap_id);
void * GfGfxLoader_GetPlttData(NarcId narcId, s32 memberId, NNSG2dPaletteData ** ppPltData, u32 heap_id);
diff --git a/include/heap.h b/include/heap.h index de1f5f18..36c747a7 100644 --- a/include/heap.h +++ b/include/heap.h @@ -2,36 +2,30 @@ #define POKEDIAMOND_HEAP_H #include "global.h" +#include "NNS_FND_expheap.h" +#include "NNS_FND_allocator.h" -struct UnkStruct_020166C8 +struct HeapParam { - void **unk00; - void **unk04; - void **unk08; - u16 *unk0c; - u8 *unk10; - u16 unk14; - u16 unk16; - u16 unk18; - u16 unk1a; + u32 size; + OSArenaId arena; }; - -void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size); -s32 FUN_020167F4(); -u32 FUN_0201681C(u32 param0, u32 heap_id, u32 param2); -u32 FUN_02016828(u32 param0, u32 param1, u32 param2); -u32 FUN_02016834(u32 param0, u32 param1, u32 param2, s32 param3); -void FUN_020168D0(u32 heap_id); -u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3); -void FUN_02016988(); +void InitHeapSystem(const struct HeapParam *templates, u32 nTemplates, u32 totalNumHeaps, u32 pre_size); +s32 FindFirstAvailableHeapHandle(); +BOOL CreateHeap(u32 parent, u32 child, u32 size); +BOOL CreateHeapAtEnd(u32 parent, u32 child, u32 size); +BOOL CreateHeapInternal(u32 parent, u32 child, u32 size, s32 alignment); +void DestroyHeap(u32 heap_id); +void *AllocFromHeapInternal(NNSFndHeapHandle heap, u32 size, s32 alignment, u32 heap_id); +void AllocFail(); void *AllocFromHeap(u32 heap_id, u32 size); void *AllocFromHeapAtEnd(u32 heap_id, u32 size); void FreeToHeap(void *ptr); void FreeToHeapExplicit(u32 heap_id, void * ptr); -u32 FUN_02016AF8(u32 param0); -void FUN_02016B20(u32 param0, u32 param1, u32 param2); -void FUN_02016B44(void *ptr, u32 param1); -u32 FUN_02016B90(u32 param0); +u32 GF_ExpHeap_FndGetTotalFreeSize(u32 heap_id); +void GF_ExpHeap_FndInitAllocator(NNSFndAllocator * pAllocator, u32 heap_id, int alignment); +void ReallocFromHeap(void *ptr, u32 newSize); +BOOL GF_heap_c_dummy_return_true(u32 heap_id); #endif //POKEDIAMOND_HEAP_H diff --git a/include/list_menu_cursor.h b/include/list_menu_cursor.h index e4a4b6b9..a2337e9a 100644 --- a/include/list_menu_cursor.h +++ b/include/list_menu_cursor.h @@ -1,7 +1,7 @@ #ifndef POKEDIAMOND_LIST_MENU_CURSOR_H #define POKEDIAMOND_LIST_MENU_CURSOR_H -#include "unk_02016B94.h" +#include "bg_window.h" // TODO: Move to its own header, and fill it out struct ListMenuCursor diff --git a/include/mail_message.h b/include/mail_message.h index 5772fdd3..c0ea2039 100644 --- a/include/mail_message.h +++ b/include/mail_message.h @@ -20,7 +20,7 @@ u32 MailMsg_NumFields(u16 bank, u16 num); u16 MailMsg_GetFieldI(struct MailMessage * mailMsg, u32 a1); u16 MailMsg_GetMsgBank(struct MailMessage * mailMsg); u16 MailMsg_GetMsgNo(struct MailMessage * mailMsg); -BOOL MailMsg_compare(struct MailMessage * mailMsg, struct MailMessage * a1); +BOOL MailMsg_compare(const struct MailMessage *mailMsg, const struct MailMessage *a1); void MailMsg_copy(struct MailMessage * mailMsg, const struct MailMessage * a1); u32 MailMsg_NumMsgsInBank(u16 bank); void MailMsg_SetMsgBankAndNum(struct MailMessage * mailMsg, u16 bank, u16 num); diff --git a/include/main.h b/include/main.h index 9227d9a8..ba4d7bc2 100644 --- a/include/main.h +++ b/include/main.h @@ -79,26 +79,26 @@ struct Main s32 unk28; u32 unk2C; s32 unk30; - u32 unk34; - u32 unk38; - u32 unk3C; - u32 unk40; - u32 unk44; + u32 buttonMode; + u32 heldKeysRaw; + u32 newKeysRaw; + u32 newAndRepeatedKeysRaw; + u32 heldKeys; u32 newKeys; u32 newAndRepeatedKeys; - s32 unk50; - s32 unk54; - s32 unk58; - u16 unk5C; - u16 unk5E; - u16 unk60; - u16 unk62; - u8 unk64; + s32 keyRepeatCounter; + s32 keyRepeatContinueDelay; + s32 keyRepeatStartDelay; + u16 touchX; + u16 touchY; + u16 touchNew; + u16 touchHeld; + u8 touchpadReadAuto; u8 unk65; u8 unk66; u8 unk67; - u8 unk68; - u8 padding_69[3]; + u8 softResetDisabled; + u8 padding_69[3]; // nice s32 unk6C; }; diff --git a/include/player_data.h b/include/player_data.h index 5095ea61..132eb6ae 100644 --- a/include/player_data.h +++ b/include/player_data.h @@ -7,6 +7,12 @@ struct SaveBlock2; +typedef enum +{ + Male = 0, + Female = 1 +} GenderEnum; + struct PlayerData { /* 0x00 */ u16 playerName[OT_NAME_LENGTH + 1]; @@ -51,8 +57,8 @@ struct String * PlayerProfile_GetPlayerName_NewString(struct PlayerData * data, void PlayerProfile_SetTrainerID(struct PlayerData * data, u32 otid); u32 PlayerProfile_GetTrainerID(struct PlayerData * data); u16 PlayerProfile_GetTrainerID_VisibleHalf(struct PlayerData * data); -void PlayerProfile_SetTrainerGender(struct PlayerData * data, u8 gender); -u32 PlayerProfile_GetTrainerGender(struct PlayerData * data); +void PlayerProfile_SetTrainerGender(struct PlayerData * data, GenderEnum gender); +GenderEnum PlayerProfile_GetTrainerGender(struct PlayerData * data); BOOL PlayerProfile_TestBadgeFlag(struct PlayerData * data, u32 badgeno); void PlayerProfile_SetBadgeFlag(struct PlayerData * data, u32 badgeno); u32 PlayerProfile_CountBadges(struct PlayerData * data); diff --git a/include/render_text.h b/include/render_text.h new file mode 100644 index 00000000..e3e0f4c8 --- /dev/null +++ b/include/render_text.h @@ -0,0 +1,48 @@ +#ifndef POKEDIAMOND_RENDER_TEXT_H +#define POKEDIAMOND_RENDER_TEXT_H + +#include "global.h" +#include "text.h" + +typedef struct +{ + u8 canABSpeedUpPrint : 1; + u8 useAlternateDownArrow : 1; + u8 autoScroll : 1; + u8 forceMidTextSpeed : 1; + u8 unk0_4 : 1; + u8 unk0_5 : 1; + u8 unk0_6 : 1; + u8 unk0_7 : 1; + u8 unk1; +} TextFlags; + +struct TextPrinterSubStruct +{ + u8 glyphId : 4; // 0x14 + u8 hasPrintBeenSpedUp : 1; + u8 unk : 3; + u8 downArrowDelay : 5; + u8 downArrowYPosIdx : 2; + u8 hasGlyphIdBeenSet : 1; + u8 autoScrollDelay : 8; +}; + +u32 RenderText(struct TextPrinter *printer); +void FUN_02002840(u16 flag); +void TextPrinterInitDownArrowCounters(struct TextPrinter *printer); +void TextPrinterDrawDownArrow(struct TextPrinter *printer); +void TextPrinterClearDownArrow(struct TextPrinter *printer); +BOOL TextPrinterContinue(struct TextPrinter *printer); +BOOL TextPrinterWaitAutoMode(struct TextPrinter *printer); +BOOL TextPrinterWaitWithDownArrow(struct TextPrinter *printer); +u8 TextPrinterWait(struct TextPrinter *printer); +void TextFlags_SetCanABSpeedUpPrint(BOOL param0); +void FUN_02002B7C(s32 param0); +void FUN_02002BB8(u32 param0); +u8 FUN_02002BD4(); +void FUN_02002BE4(); +u8 FUN_02002BF4(); +void FUN_02002C04(); + +#endif // POKEDIAMOND_RENDER_TEXT_H diff --git a/include/scrcmd.h b/include/scrcmd.h index 91cb306c..826b74d3 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -249,6 +249,42 @@ BOOL ScrCmd_Unk01AD(struct ScriptContext* ctx); //scrcmd_18.c BOOL ScrCmd_GiveMon(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonSpecies(struct ScriptContext* ctx); +BOOL ScrCmd_CheckPartyMonOTID(struct ScriptContext* ctx); +BOOL ScrCmd_GiveEgg(struct ScriptContext* ctx); +BOOL ScrCmd_SetPartyMonMove(struct ScriptContext* ctx); +BOOL ScrCmd_PartyMonHasMove(struct ScriptContext* ctx); +BOOL ScrCmd_FindPartyMonWithMove(struct ScriptContext* ctx); +BOOL ScrCmd_SurvivePsn(struct ScriptContext* ctx); +BOOL ScrCmd_CountPartyMonsAtOrBelowLevel(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonLevel(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonNature(struct ScriptContext* ctx); +BOOL ScrCmd_FindPartyMonWithNature(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonFriendship(struct ScriptContext* ctx); +BOOL ScrCmd_AddPartyMonFriendship(struct ScriptContext* ctx); +BOOL ScrCmd_SubtractPartyMonFriendship(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonContestCondition(struct ScriptContext* ctx); +BOOL ScrCmd_GetLeadingPartyMonSlot(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonTypes(struct ScriptContext* ctx); +BOOL ScrCmd_CountPartyMons(struct ScriptContext* ctx); +BOOL ScrCmd_CountPartyMons_OmitEggs(struct ScriptContext* ctx); +BOOL ScrCmd_CountAvailablePartyMons_IgnoreSlot(struct ScriptContext* ctx); +BOOL ScrCmd_CountAvailablePartyAndPCMons(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyEggCount(struct ScriptContext* ctx); +BOOL ScrCmd_CheckPartyForPokerus(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonGender(struct ScriptContext* ctx); +BOOL ScrCmd_CountPartyMonMoves(struct ScriptContext* ctx); +BOOL ScrCmd_ForgetPartyMonMove(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonMove(struct ScriptContext* ctx); +BOOL ScrCmd_GetPartyMonHeldItem(struct ScriptContext* ctx); +BOOL ScrCmd_ResetPartyMonHeldItem(struct ScriptContext* ctx); +BOOL ScrCmd_CheckPartyForSpecies(struct ScriptContext* ctx); +BOOL ScrCmd_CountPartyMonRibbons(struct ScriptContext* ctx); +BOOL ScrCmd_CountTotalPartyRibbons(struct ScriptContext* ctx); +BOOL ScrCmd_PartyMonHasRibbon(struct ScriptContext* ctx); +BOOL ScrCmd_GivePartyMonRibbon(struct ScriptContext* ctx); +BOOL ScrCmd_CheckPartyForBadEgg(struct ScriptContext* ctx); +BOOL ScrCmd_Unk00A0(struct ScriptContext* ctx); //scrcmd_fossils.c BOOL ScrCmd_CountFossils(struct ScriptContext* ctx); diff --git a/include/script.h b/include/script.h index 01bba305..75b65f90 100644 --- a/include/script.h +++ b/include/script.h @@ -4,7 +4,7 @@ #include "global.h"
#include "msgdata.h"
#include "save_block_2.h"
-#include "unk_02016B94.h"
+#include "bg_window.h"
struct ScriptContext;
@@ -28,7 +28,7 @@ struct UnkStruct_02046444 struct UnkSavStruct80
{
u8 padding[0x8];
- struct UnkStruct_02016B94_2 *unk08;
+ struct BgConfig *unk08;
struct SaveBlock2 *saveBlock2; //0xC
struct UnkStruct_0204639C *unk10;
u8 padding2[0x8];
diff --git a/include/script_buffers.h b/include/script_buffers.h index 9a742545..b9f0e268 100644 --- a/include/script_buffers.h +++ b/include/script_buffers.h @@ -4,7 +4,7 @@ #include "pokemon.h" #include "pokemon_storage_system.h" #include "trainer_data.h" -#include "unk_02016B94.h" +#include "bg_window.h" struct UnkStruct_0200AA80_sub_sub { diff --git a/include/text.h b/include/text.h index c9984d75..034447c7 100644 --- a/include/text.h +++ b/include/text.h @@ -3,7 +3,7 @@ #include "global.h" #include "font.h" -#include "unk_02016B94.h" +#include "bg_window.h" #define CHAR_0 0x00A2 diff --git a/include/text_02054590.h b/include/text_02054590.h index 77170e70..4d05260a 100644 --- a/include/text_02054590.h +++ b/include/text_02054590.h @@ -3,18 +3,18 @@ #include "global.h" #include "options.h" -#include "unk_02016B94.h" +#include "bg_window.h" #include "string16.h" void FUN_02054590(u32 param0, u32 param1); -void FUN_020545B8(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2); +void FUN_020545B8(struct BgConfig *param0, struct Window *param1, u32 param2); void FUN_02054608(struct Window *param0, struct Options *options); void FUN_0205464C(struct Window *param0); u16 FUN_02054658(struct Window * window, struct String *str, struct Options *options, u8 param3); -u16 DrawFieldMessage(struct Window * window, struct String *str, u8 fontId, u32 speed, u8 a4, u32 a5); +u16 DrawFieldMessage(struct Window * window, struct String *str, u8 fontId, u32 speed, u8 a4, s32 a5); u8 FUN_020546C8(u32 param0); -void FUN_020546E0(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2, u32 param3); +void FUN_020546E0(struct BgConfig *param0, struct Window *param1, u32 param2, u32 param3); void FUN_02054744(struct Window *param0, u32 param1, u32 param2); #endif // POKEDIAMOND_UNK_02054590_H diff --git a/include/timer3.h b/include/timer3.h index 3220c7a3..a49cf3e6 100644 --- a/include/timer3.h +++ b/include/timer3.h @@ -4,12 +4,6 @@ #include "global.h" -struct Timer3Data -{ - BOOL NeedReset; - vu64 Timer3Counter; -}; - void Init_Timer3(); void CountUpTimer3(); u64 internal_GetTimer3Count(); diff --git a/include/unk_02016B94.h b/include/unk_02016B94.h deleted file mode 100644 index fec45cd8..00000000 --- a/include/unk_02016B94.h +++ /dev/null @@ -1,340 +0,0 @@ -#ifndef POKEDIAMOND_UNK_02016B94_H -#define POKEDIAMOND_UNK_02016B94_H - -#include "global.h" -#include "GX_layers.h" -#include "MI_uncompress.h" -#include "OS_cache.h" -#include "gx.h" -#include "heap.h" -#include "math_util.h" - -#define reg_G2_BG2P (u32 *)0x4000020 -#define reg_G2_BG3P (u32 *)0x4000030 -#define reg_G2S_DB_BG2P (u32 *)0x4001020 -#define reg_G2S_DB_BG3P (u32 *)0x4001030 -struct UnkStruct_02016B94_1 -{ - u32 unk00; - u32 unk04; - u32 unk08; - u32 unk0c; - - u8 unk10; - u8 unk11; - u8 unk12; - u8 unk13; - u8 unk14; - u8 unk15; - u8 unk16; - u8 unk17; // probably paddding - u32 unk18; -}; - -struct UnkStruct_02016B94_2 -{ - u32 unk00; - u16 unk04; - u16 unk06; - - struct UnkStruct_02016B94_2_sub - { - void *unk08; - u32 unk0c; - u32 unk10; - - fx32 unk14; - fx32 unk18; - - u8 unk1c; - u8 unk1d; - u8 unk1e; - u8 unk1f; - u16 unk20; - u16 unk22; // probably padding - fx32 unk24; - fx32 unk28; - fx32 unk2c; - fx32 unk30; - } unk08[8]; -}; - -struct UnkStruct_02016B94_3 -{ - void *unk00; - u16 unk04; - u16 unk06; -}; - -struct UnkStruct_02016B94_4 -{ - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; - u16 unk6; -}; - -struct Window -{ - struct UnkStruct_02016B94_2 *unk00; - u8 unk04; - u8 unk05; - u8 unk06; - u8 width; - u8 height; - u8 unk09; - u16 unk0a_0 : 15; - u16 unk0b_15 : 1; - void *unk0c; -}; - -struct UnkStruct_02016B94_2 *FUN_02016B94(u32 heap_id); -u32 FUN_02016BB8(u32 *param0); -void FUN_02016BBC(const struct GraphicsModes *modes); -void FUN_02016BF4(u32 *param0, u32 param1); -void FUN_02016C18( - struct UnkStruct_02016B94_2 *param0, u8 param1, struct UnkStruct_02016B94_1 *param2, u8 param3); -void FUN_020170F4(struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3); -u8 FUN_020177DC(u8 param0, u32 param1); -void FUN_02017850(u32 param0, u8 *param1, u8 *param2); -void FUN_020178A0(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_020178BC(u32 param0, u16 param1); -void FUN_0201797C(u32 param0, GX_LayerToggle toggle); -void FUN_020179E0(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 val); -fx32 FUN_02017B48(struct UnkStruct_02016B94_2 *param0, u32 param1); -fx32 FUN_02017B54(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_02017B60(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u32 param2, - fx32 param3, - struct Mtx22 *param4, - fx32 param5, - fx32 param6); -void FUN_02017B8C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val); -void FUN_02017BD0(struct UnkStruct_02016B94_2 *param0, - u32 param1, - struct Mtx22 *param2, - fx32 param3, - fx32 param4); -void FUN_02017C6C(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_02017C98(const void *param0, void *param1, u32 param2); -void FUN_02017CD0(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_02017CE8( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); -void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size); -void FUN_02017DFC(struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u32 param3); -void FUN_02017E14( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); -void FUN_02017E40( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); -void FUN_02017E84(u32 param0, void *param1, u32 offset, u32 size); -void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id); -void FUN_02017F48( - struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u32 param4); -void FUN_02017FB4(u32 param0, void *param1, u32 offset, u32 size); -void FUN_02017FE4(u32 param0, u32 param1); -u16 FUN_02017FFC(u8 param0, u8 param1, u8 param2); -u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3); -void FUN_02018148(struct UnkStruct_02016B94_2 *param0, - u32 param1, - void *param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6); -void FUN_02018170(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - void *param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10); -void FUN_020181EC(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - void *param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10); -void FUN_02018268(struct UnkStruct_02016B94_2_sub *param0, - u8 param1, - u8 param2, - u8 param3, - u8 param4, - u16 *param5, - u8 param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10); -void FUN_020183DC(struct UnkStruct_02016B94_2_sub *param0, - u8 param1, - u8 param2, - u8 param3, - u8 param4, - u8 *param5, - u8 param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10); -void FUN_02018540(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u16 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6, - u8 param7); -void FUN_02018590(struct UnkStruct_02016B94_2_sub *param0, - u16 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6); -void FUN_02018640( - struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5); -void FUN_020186B4(struct UnkStruct_02016B94_2 *param0, - u32 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6); -void FUN_02018744(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_02018768(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2); -void FUN_0201878C(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2); -void *FUN_020187B0(u32 param0); -void FUN_02018808(u8 *param0, u32 param1, u8 (*param2)[2], u8 param3); -u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2]; -void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u8 param1); -u16 FUN_02018878(struct UnkStruct_02016B94_2 *param0, u32 param1); -u8 FUN_02018884(struct UnkStruct_02016B94_2 *param0, u32 param1); -void BlitBitmapRect4Bit(struct UnkStruct_02016B94_3 *param0, - struct UnkStruct_02016B94_3 *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8); -void BlitBitmapRect8Bit(struct UnkStruct_02016B94_3 *param0, - struct UnkStruct_02016B94_3 *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8); -void FUN_02018E88( - struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5); -void FUN_02018F4C( - struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5); -void *AllocWindows(u32 heap_id, s32 size); -void InitWindow(struct Window *param0); -BOOL FUN_02019048(struct Window *param0); -void FUN_02019064(struct UnkStruct_02016B94_2 *param0, - struct Window *param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - u8 param6, - u8 param7, - u16 param8); -void FUN_020190EC(struct UnkStruct_02016B94_2 *param0, - struct Window *param1, - u8 param2, - u8 param3, - u16 param4, - u8 param5); -void FUN_02019150(struct UnkStruct_02016B94_2 *param0, - struct Window *param1, - struct UnkStruct_02016B94_4 *param2); -void FUN_02019178(struct Window *param0); -void FUN_020191A4(struct Window *param0, int param1); -void CopyWindowToVram(struct Window *param0); -void FUN_02019220(struct Window *param0); -void FUN_02019270(struct Window *param0); -void FUN_0201928C(struct Window *param0, u8 param1, u8 param2); -void FUN_020192B8(struct Window *param0); -void FUN_020192D4(struct Window *param0); -void FUN_02019358(struct Window *param0); -void FUN_020193B4(struct Window *param0); -void FUN_02019444(struct Window *param0); -void FUN_0201949C(struct Window *window); -void FUN_020194C8(struct Window *window); -void FUN_020194E0(struct Window *window); -void FUN_0201951C(struct Window *window); -void FUN_02019548(struct Window *window); -void FUN_02019570(struct Window *window); -void FUN_0201958C(struct Window *window); -void FUN_020195A8(struct Window *window); -void FUN_020195D0(struct Window *window); -void FUN_020195E4(struct Window *window); -void FUN_0201960C(struct Window *window); -void FillWindowPixelBuffer(struct Window *window, u8 param1); -void BlitBitmapRectToWindow(struct Window *window, - const void *src, - u16 srcX, - u16 srcY, - u16 srcWidth, - u16 srcHeight, - u16 dstX, - u16 dstY, - u16 dstWidth, - u16 dstHeight); -void BlitBitmapRect(struct Window *window, - void *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8, - u16 param9, - u16 param10); -void FillWindowPixelRect(struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height); -void FUN_0201974C( - struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6); -void ScrollWindow(struct Window *window, u32 param1, u8 param2, u8 param3); -void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 param3); -void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 param3); -u8 FUN_0201AB08(struct Window *window); -u8 GetWindowWidth(struct Window *window); -u8 GetWindowHeight(struct Window *window); -u8 FUN_0201AB14(struct Window *window); -u8 FUN_0201AB18(struct Window *window); -void FUN_0201AB1C(struct Window *window, u8 param1); -void FUN_0201AB20(struct Window *window, u8 param1); -void FUN_0201AB24(struct Window *window, u8 param1); -u32 FUN_0201AB28(struct Window *window, u32 heap_id, const char *path); -u32 FUN_0201AB44(struct Window *window, u32 heap_id, const char *path); -void FUN_0201AB60(struct UnkStruct_02016B94_2 *param0); -void FUN_0201AB78(struct UnkStruct_02016B94_2 *param0); -void FUN_0201AC68(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_0201AC78(struct UnkStruct_02016B94_2 *param0); -void FUN_0201AEE4(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3); -void FUN_0201AF08(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u16 param3); -void FUN_0201AF2C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, u16 val); -void FUN_0201AF50(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3); -void FUN_0201AF74(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val); -u32 FUN_0201AFBC(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4); -void FUN_0201B118(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 *param2); - -#endif // POKEDIAMOND_UNK_02016B94_H diff --git a/include/unk_0201B8B8.h b/include/unk_0201B8B8.h index 13bc217b..26dd8017 100644 --- a/include/unk_0201B8B8.h +++ b/include/unk_0201B8B8.h @@ -2,8 +2,8 @@ #define POKEDIAMOND_UNK_0201B8B88_H const u16 * MsgArray_SkipControlCode(const u16 * r4); -u16 MsgArray_GetControlCode(const u16 * r4); +u32 MsgArray_GetControlCode(const u16 * r4); BOOL MsgArray_ControlCodeIsStrVar(const u16 * r4); -u16 MsgArray_ControlCodeGetField(const u16 * r5, u32 r4); +u32 MsgArray_ControlCodeGetField(const u16 * r5, u32 r4); #endif //POKEDIAMOND_UNK_0201B8B88_H diff --git a/include/unk_0205EC84.h b/include/unk_0205EC84.h new file mode 100644 index 00000000..0cbf6f77 --- /dev/null +++ b/include/unk_0205EC84.h @@ -0,0 +1,58 @@ +#ifndef POKEDIAMOND_UNK_0205EC84_H
+#define POKEDIAMOND_UNK_0205EC84_H
+
+#include "event_data.h"
+
+void FUN_0205ECD4(struct ScriptState * state);
+BOOL FUN_0205ECE0(struct ScriptState * state);
+BOOL FUN_0205ECEC(struct ScriptState * state);
+void FUN_0205ECFC(struct ScriptState * state);
+BOOL FUN_0205ED0C(struct ScriptState * state);
+void FUN_0205ED1C(struct ScriptState * state);
+void FUN_0205ED2C(struct ScriptState * state);
+BOOL FUN_0205ED3C(struct ScriptState * state);
+void FUN_0205ED4C(struct ScriptState * state);
+void FUN_0205ED5C(struct ScriptState * state);
+BOOL FUN_0205ED6C(struct ScriptState * state);
+void FUN_0205ED7C(struct ScriptState * state);
+void FUN_0205ED8C(struct ScriptState * state);
+BOOL FUN_0205ED9C(struct ScriptState * state);
+void FUN_0205EDAC(struct ScriptState * state);
+void FUN_0205EDBC(struct ScriptState * state);
+void FUN_0205EDCC(struct ScriptState * state);
+void FUN_0205EDD8(struct ScriptState * state);
+void FUN_0205EDE8(struct ScriptState * state);
+void FUN_0205EDF8(struct ScriptState * state);
+void FUN_0205EE08(struct ScriptState * state, u32 a1);
+BOOL FUN_0205EE60(struct ScriptState * state, u32 a1);
+BOOL FUN_0205EEB8(struct ScriptState * state, u32 a1);
+s32 FUN_0205EF20(struct ScriptState * state, s32 a1);
+void FUN_0205F154(struct ScriptState * state);
+void FUN_0205F164(struct ScriptState * state);
+BOOL FUN_0205F174(struct ScriptState * state);
+BOOL FUN_0205F184(struct ScriptState * state);
+BOOL FUN_0205F194(struct ScriptState * state);
+BOOL FUN_0205F1A4(struct ScriptState * state);
+BOOL FUN_0205F1B4(struct ScriptState * state);
+void FUN_0205F1C4(struct ScriptState * state);
+void FUN_0205F1D4(struct ScriptState * state);
+BOOL FUN_0205F1E4(struct ScriptState * state);
+void FUN_0205F1F4(struct ScriptState * state);
+void FUN_0205F204(struct ScriptState * state);
+BOOL FUN_0205F214(struct ScriptState * state);
+void FUN_0205F224(struct ScriptState * state);
+void FUN_0205F234(struct ScriptState * state);
+BOOL FUN_0205F244(struct ScriptState * state);
+void FUN_0205F254(struct ScriptState * state);
+BOOL FUN_0205F264(struct ScriptState * state, u32 op);
+void FUN_0205F274(struct ScriptState * state);
+void FUN_0205F284(struct ScriptState * state);
+BOOL FUN_0205F294(struct ScriptState * state);
+void FUN_0205F2A4(struct ScriptState * state);
+void FUN_0205F2B4(struct ScriptState * state);
+BOOL FUN_0205F2C4(struct ScriptState * state);
+BOOL FUN_0205F2D4(struct ScriptState * state, u32 op);
+BOOL FUN_0205F2E4(struct ScriptState * state, u32 op, u16 flag_id);
+void FUN_0205F304(struct ScriptState * state);
+
+#endif //POKEDIAMOND_UNK_0205EC84_H
diff --git a/include/unk_020851B8.h b/include/unk_020851B8.h new file mode 100644 index 00000000..334ba4c8 --- /dev/null +++ b/include/unk_020851B8.h @@ -0,0 +1,19 @@ +#ifndef POKEDIAMOND_UNK_020851B8_H +#define POKEDIAMOND_UNK_020851B8_H + +struct UnkStruct_020851B8 { + u32 flags[2]; + u8 unk_8; + u8 unk_9; + u8 unk_A; + u8 unk_B; +}; + +struct UnkStruct_020851B8 *FUN_020851B8(u32 heap_id); +void FUN_020851DC(struct UnkStruct_020851B8 *param0, u16 param1, BOOL param2); +void FUN_020851F8(struct UnkStruct_020851B8 *param0, u8 param1, u8 param2, u8 param3); +void FUN_02085200(struct UnkStruct_020851B8 *param0, u16 param1); +u8 FUN_02085224(struct UnkStruct_020851B8 *param0, u16 param1); +void FUN_0208524C(struct UnkStruct_020851B8 *param0, u8 *param1, u8 *param2); + +#endif // POKEDIAMOND_UNK_020851B8_H diff --git a/include/unk_02085338.h b/include/unk_02085338.h new file mode 100644 index 00000000..0517bf26 --- /dev/null +++ b/include/unk_02085338.h @@ -0,0 +1,47 @@ +#ifndef POKEDIAMOND_UNK_02085338_H
+#define POKEDIAMOND_UNK_02085338_H
+
+#include "save_block_2.h"
+#include "pokedex.h"
+#include "unk_020139D8.h"
+
+struct UnkStruct_02085338
+{
+ u8 unk_00;
+ u8 unk_01;
+ u8 unk_02;
+ u8 unk_03;
+ u8 unk_04;
+ u8 unk_05;
+ u32 unk_08;
+ struct Pokedex * unk_0c;
+ struct UnkStruct_02013B28 * unk_10;
+ struct MailMessage unk_14;
+ u16 unk_1c[2];
+ u8 padding_20[4];
+};
+
+struct UnkStruct_02085338 * FUN_02085338(u8 r5, u8 r7, struct SaveBlock2 * sav2, u32 heap_id);
+void FUN_020853A8(struct UnkStruct_02085338 * ptr);
+void FUN_020853B0(struct UnkStruct_02085338 * ptr, u16 a1);
+void FUN_020853B4(struct UnkStruct_02085338 * ptr, u16 a1, u16 a2);
+void FUN_020853BC(struct UnkStruct_02085338 * ptr, const struct MailMessage * a1);
+void FUN_020853D0(struct UnkStruct_02085338 * ptr);
+void FUN_020853DC(struct UnkStruct_02085338 * ptr);
+u8 FUN_020853E4(struct UnkStruct_02085338 * ptr);
+u8 FUN_020853E8(struct UnkStruct_02085338 * ptr);
+u16 FUN_020853EC(struct UnkStruct_02085338 * ptr);
+void FUN_020853F0(struct UnkStruct_02085338 * ptr, u16 * a1);
+void FUN_020853FC(struct UnkStruct_02085338 * ptr, struct MailMessage * a1);
+u8 FUN_0208540C(struct UnkStruct_02085338 * ptr);
+u8 FUN_02085410(struct UnkStruct_02085338 * ptr);
+u32 FUN_02085414(struct UnkStruct_02085338 * ptr);
+struct Pokedex * FUN_02085418(struct UnkStruct_02085338 * ptr);
+struct UnkStruct_02013B28 * FUN_0208541C(struct UnkStruct_02085338 * ptr);
+u8 FUN_02085420(struct UnkStruct_02085338 * ptr);
+u8 FUN_02085424(struct UnkStruct_02085338 * ptr);
+void FUN_02085428(struct UnkStruct_02085338 * ptr, u16 * a1, struct MailMessage * a2);
+BOOL FUN_0208545C(struct UnkStruct_02085338 * ptr, const u16 * a1, const struct MailMessage * a2);
+void FUN_020854A0(struct UnkStruct_02085338 * r5, u16 * r4, struct MailMessage * r6);
+
+#endif //POKEDIAMOND_UNK_02085338_H
diff --git a/include/unk_02088AAC.h b/include/unk_02088AAC.h new file mode 100644 index 00000000..d4d7cf3e --- /dev/null +++ b/include/unk_02088AAC.h @@ -0,0 +1,31 @@ +#ifndef POKEDIAMOND_UNK_02088AAC_H +#define POKEDIAMOND_UNK_02088AAC_H + +#include "bag.h" +#include "main.h" +#include "unk_0208890C.h" + +struct UnkStruct_02088AAC +{ + u32 heap_id; + u16 unk04; + u16 unk06; + u32 item; + struct UnkStruct_0206F164 *unk0C; + struct UnkStruct_0208890C *unk10; + u32 unk14; + void *ovly_param; + struct UnkStruct_02006234 *ovly_data; + u32 unk20; +}; + +u32 FUN_02088AAC(struct UnkStruct_02088AAC *r0, u32 *r1); +u32 FUN_02088AFC(struct UnkStruct_02088AAC *r0); +u32 FUN_02088B28(struct UnkStruct_02088AAC *r0); +u32 FUN_02088B48(void); +u32 FUN_02088B4C(struct UnkStruct_02088AAC *r0); +u32 FUN_02088BA8(struct UnkStruct_02088AAC *r0); +u32 FUN_02088C3C(struct UnkStruct_02088AAC *r0); +u32 FUN_02088CDC(struct UnkStruct_02088AAC *r0); + +#endif // POKEDIAMOND_UNK_02088AAC_H |