mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-11 22:45:18 -05:00
sync bg
This commit is contained in:
parent
86429796b2
commit
a43a49a927
|
|
@ -1,266 +0,0 @@
|
|||
.macro loadsprite id
|
||||
.byte 0x00
|
||||
.2byte \id
|
||||
.endm
|
||||
|
||||
.macro unloadsprite id
|
||||
.byte 0x01
|
||||
.2byte \id
|
||||
.endm
|
||||
|
||||
.macro sprite template, priority, argv:vararg
|
||||
.byte 0x02
|
||||
.4byte \template
|
||||
.byte \priority
|
||||
.byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2
|
||||
.Lsprite_\@_1:
|
||||
.2byte \argv
|
||||
.Lsprite_\@_2:
|
||||
.endm
|
||||
|
||||
.macro createtask addr, priority, argv:vararg
|
||||
.byte 0x03
|
||||
.4byte \addr
|
||||
.byte \priority
|
||||
.byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2
|
||||
.Lcreatetask_\@_1:
|
||||
.2byte \argv
|
||||
.Lcreatetask_\@_2:
|
||||
.endm
|
||||
|
||||
.macro pause delay
|
||||
.byte 0x04
|
||||
.byte \delay
|
||||
.endm
|
||||
|
||||
.macro wait
|
||||
.byte 0x05
|
||||
.endm
|
||||
|
||||
.macro hang1
|
||||
.byte 0x06
|
||||
.endm
|
||||
|
||||
.macro hang2
|
||||
.byte 0x07
|
||||
.endm
|
||||
|
||||
.macro end
|
||||
.byte 0x08
|
||||
.endm
|
||||
|
||||
.macro playse id
|
||||
.byte 0x09
|
||||
.2byte \id
|
||||
.endm
|
||||
|
||||
.macro monbg which
|
||||
.byte 0x0A
|
||||
.byte \which
|
||||
.endm
|
||||
|
||||
.macro clearmonbg which
|
||||
.byte 0x0B
|
||||
.byte \which
|
||||
.endm
|
||||
|
||||
.macro setalpha eva, evb
|
||||
.byte 0x0C
|
||||
.2byte ((\evb) << 8) | (\eva)
|
||||
.endm
|
||||
|
||||
.macro blendoff
|
||||
.byte 0x0D
|
||||
.endm
|
||||
|
||||
.macro call addr
|
||||
.byte 0x0E
|
||||
.4byte \addr
|
||||
.endm
|
||||
|
||||
.macro ret
|
||||
.byte 0x0F
|
||||
.endm
|
||||
|
||||
.macro setvar var_num, value
|
||||
.byte 0x10
|
||||
.byte \var_num
|
||||
.2byte \value
|
||||
.endm
|
||||
|
||||
.macro ifelse addr1, addr2
|
||||
.byte 0x11
|
||||
.4byte \addr1
|
||||
.4byte \addr2
|
||||
.endm
|
||||
|
||||
.macro jumpif cond, addr
|
||||
.byte 0x12
|
||||
.byte \cond
|
||||
.4byte \addr
|
||||
.endm
|
||||
|
||||
.macro jump addr
|
||||
.byte 0x13
|
||||
.4byte \addr
|
||||
.endm
|
||||
|
||||
.macro fadetobg id
|
||||
.byte 0x14
|
||||
.byte \id
|
||||
.endm
|
||||
|
||||
.macro restorebg
|
||||
.byte 0x15
|
||||
.endm
|
||||
|
||||
.macro waitbgfadeout
|
||||
.byte 0x16
|
||||
.endm
|
||||
|
||||
.macro waitbgfadein
|
||||
.byte 0x17
|
||||
.endm
|
||||
|
||||
.macro changebg id
|
||||
.byte 0x18
|
||||
.byte \id
|
||||
.endm
|
||||
|
||||
.macro panse_19 id, pan
|
||||
.byte 0x19
|
||||
.2byte \id
|
||||
.byte \pan
|
||||
.endm
|
||||
|
||||
.macro setpan pan
|
||||
.byte 0x1A
|
||||
.byte \pan
|
||||
.endm
|
||||
|
||||
.macro panse_1B id, pan_start, pan_end, step, delay
|
||||
.byte 0x1B
|
||||
.2byte \id
|
||||
.byte \pan_start
|
||||
.byte \pan_end
|
||||
.byte \step
|
||||
.byte \delay
|
||||
.endm
|
||||
|
||||
.macro panse_1C id, pan, delay, count
|
||||
.byte 0x1C
|
||||
.2byte \id
|
||||
.byte \pan
|
||||
.byte \delay
|
||||
.byte \count
|
||||
.endm
|
||||
|
||||
.macro panse_1D id, pan, count
|
||||
.byte 0x1D
|
||||
.2byte \id
|
||||
.byte \pan
|
||||
.byte \count
|
||||
.endm
|
||||
|
||||
.macro setbldcnt bldcnt
|
||||
.byte 0x1E
|
||||
.2byte \bldcnt
|
||||
.endm
|
||||
|
||||
.macro createtask_1F addr, argv:vararg
|
||||
.byte 0x1F
|
||||
.4byte \addr
|
||||
.byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2
|
||||
.Lcreatetask_1F_\@_1:
|
||||
.2byte \argv
|
||||
.Lcreatetask_1F_\@_2:
|
||||
.endm
|
||||
|
||||
.macro waitsound
|
||||
.byte 0x20
|
||||
.endm
|
||||
|
||||
.macro jumpvareq var_num, value, addr
|
||||
.byte 0x21
|
||||
.byte \var_num
|
||||
.2byte \value
|
||||
.4byte \addr
|
||||
.endm
|
||||
|
||||
.macro monbg_22 unk
|
||||
.byte 0x22
|
||||
.byte \unk
|
||||
.endm
|
||||
|
||||
.macro clearmonbg_23 unk
|
||||
.byte 0x23
|
||||
.byte \unk
|
||||
.endm
|
||||
|
||||
.macro jumpunkcond addr
|
||||
.byte 0x24
|
||||
.4byte \addr
|
||||
.endm
|
||||
|
||||
.macro fadetobg_25 a, b, c
|
||||
.byte 0x25
|
||||
.byte \a
|
||||
.byte \b
|
||||
.byte \c
|
||||
.endm
|
||||
|
||||
.macro panse_26 id, pan_start, pan_end, step, delay
|
||||
.byte 0x26
|
||||
.2byte \id
|
||||
.byte \pan_start
|
||||
.byte \pan_end
|
||||
.byte \step
|
||||
.byte \delay
|
||||
.endm
|
||||
|
||||
.macro panse_27 id, pan_start, pan_end, step, delay
|
||||
.byte 0x27
|
||||
.2byte \id
|
||||
.byte \pan_start
|
||||
.byte \pan_end
|
||||
.byte \step
|
||||
.byte \delay
|
||||
.endm
|
||||
|
||||
.macro monbgprio_28 unk
|
||||
.byte 0x28
|
||||
.byte \unk
|
||||
.endm
|
||||
|
||||
.macro monbgprio_29
|
||||
.byte 0x29
|
||||
.endm
|
||||
|
||||
.macro monbgprio_2A unk
|
||||
.byte 0x2A
|
||||
.byte \unk
|
||||
.endm
|
||||
|
||||
.macro invisible side
|
||||
.byte 0x2B
|
||||
.byte \side
|
||||
.endm
|
||||
|
||||
.macro visible side
|
||||
.byte 0x2C
|
||||
.byte \side
|
||||
.endm
|
||||
|
||||
.macro doublebattle_2D unk
|
||||
.byte 0x2D
|
||||
.byte \unk
|
||||
.endm
|
||||
|
||||
.macro doublebattle_2E unk
|
||||
.byte 0x2E
|
||||
.byte \unk
|
||||
.endm
|
||||
|
||||
.macro stopsound
|
||||
.byte 0x2F
|
||||
.endm
|
||||
82
include/bg.h
82
include/bg.h
|
|
@ -11,18 +11,6 @@ struct BGCntrlBitfield // for the I/O registers
|
|||
volatile u16 screenSize:2;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
BG_CTRL_ATTR_VISIBLE = 1,
|
||||
BG_CTRL_ATTR_CHARBASEINDEX = 2,
|
||||
BG_CTRL_ATTR_MAPBASEINDEX = 3,
|
||||
BG_CTRL_ATTR_SCREENSIZE = 4,
|
||||
BG_CTRL_ATTR_PALETTEMODE = 5,
|
||||
BG_CTRL_ATTR_PRIORITY = 6,
|
||||
BG_CTRL_ATTR_MOSAIC = 7,
|
||||
BG_CTRL_ATTR_WRAPAROUND = 8,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
BG_ATTR_CHARBASEINDEX = 1,
|
||||
|
|
@ -73,52 +61,48 @@ struct BgTemplate
|
|||
};
|
||||
|
||||
void ResetBgs(void);
|
||||
u8 GetBgMode(void);
|
||||
u32 GetBgMode(void);
|
||||
void ResetBgControlStructs(void);
|
||||
void Unused_ResetBgControlStruct(u8 bg);
|
||||
void SetBgControlAttributes(u8 bg, u8 charBaseIndex, u8 mapBaseIndex, u8 screenSize, u8 paletteMode, u8 priority, u8 mosaic, u8 wraparound);
|
||||
u16 GetBgControlAttribute(u8 bg, u8 attributeId);
|
||||
u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode);
|
||||
u8 LoadBgVram(u32 bg, const void *src, u16 size, u16 destOffset, u32 mode);
|
||||
void SetTextModeAndHideBgs(void);
|
||||
bool8 IsInvalidBg(u8 bg);
|
||||
bool32 IsInvalidBg(u32 bg);
|
||||
int BgTileAllocOp(int bg, int offset, int count, int mode);
|
||||
void ResetBgsAndClearDma3BusyFlags(bool32 enableWindowTileAutoAlloc);
|
||||
void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates);
|
||||
void InitBgsFromTemplates(u32 bgMode, const struct BgTemplate *templates, u8 numTemplates);
|
||||
void InitBgFromTemplate(const struct BgTemplate *template);
|
||||
void SetBgMode(u8 bgMode);
|
||||
u16 LoadBgTiles(u8 bg, const void *src, u16 size, u16 destOffset);
|
||||
u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset);
|
||||
u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset);
|
||||
bool8 IsDma3ManagerBusyWithBgCopy(void);
|
||||
void ShowBg(u8 bg);
|
||||
void HideBg(u8 bg);
|
||||
void SetBgAttribute(u8 bg, u8 attributeId, u8 value);
|
||||
u16 GetBgAttribute(u8 bg, u8 attributeId);
|
||||
u32 ChangeBgX(u8 bg, u32 value, u8 op);
|
||||
u32 GetBgX(u8 bg);
|
||||
u32 ChangeBgY(u8 bg, u32 value, u8 op);
|
||||
void SetBgMode(u32);
|
||||
u16 LoadBgTiles(u32 bg, const void *src, u16 size, u16 destOffset);
|
||||
u16 LoadBgTilemap(u32 bg, const void *src, u16 size, u16 destOffset);
|
||||
u16 Unused_LoadBgPalette(u32 bg, const void *src, u16 size, u16 destOffset);
|
||||
bool32 IsDma3ManagerBusyWithBgCopy(void);
|
||||
void ShowBg(u32 bg);
|
||||
void HideBg(u32 bg);
|
||||
void SetBgAttribute(u32 bg, u32 attributeId, u8 value);
|
||||
u16 GetBgAttribute(u32 bg, u32 attributeId);
|
||||
s32 ChangeBgX(u32 bg, s32 value, u8 op);
|
||||
s32 GetBgX(u32 bg);
|
||||
s32 ChangeBgY(u32 bg, s32 value, u8 op);
|
||||
s32 ChangeBgY_ScreenOff(u32 bg, s32 value, u8 op);
|
||||
u32 GetBgY(u8 bg);
|
||||
void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
|
||||
s32 GetBgY(u32 bg);
|
||||
void SetBgAffine(u32 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
|
||||
u8 AdjustBgMosaic(u8 value, u8 mode);
|
||||
void SetBgTilemapBuffer(u8 bg, void *tilemap);
|
||||
void UnsetBgTilemapBuffer(u8 bg);
|
||||
void *GetBgTilemapBuffer(u8 bg);
|
||||
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
|
||||
void SetBgTilemapBuffer(u32 bg, void *tilemap);
|
||||
void UnsetBgTilemapBuffer(u32 bg);
|
||||
void *GetBgTilemapBuffer(u32 bg);
|
||||
void CopyToBgTilemapBuffer(u32 bg, const void *src, u32 mode, u32 destOffset);
|
||||
void DecompressAndCopyToBgTilemapBuffer(u32 bg, const u32 *src, u32 mode, u32 destOffset);
|
||||
void CopyBgTilemapBufferToVram(u8 bg);
|
||||
void CopyToBgTilemapBufferRect(u8 bg, const void *src, u8 destX, u8 destY, u8 width, u8 height);
|
||||
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
|
||||
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, s16 tileOffset, s16 palette2);
|
||||
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
|
||||
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
|
||||
void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);
|
||||
u16 GetBgMetricTextMode(u8 bg, u8 whichMetric);
|
||||
u32 GetBgMetricAffineMode(u8 bg, u8 whichMetric);
|
||||
void CopyBgTilemapBufferToVram(u32 bg);
|
||||
void CopyToBgTilemapBufferRect(u32 bg, const void *src, u8 destX, u8 destY, u8 width, u8 height);
|
||||
void CopyToBgTilemapBufferRect_ChangePalette(u32 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
|
||||
void CopyRectToBgTilemapBufferRect(u32 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, s16 tileOffset, s16 palette2);
|
||||
void FillBgTilemapBufferRect_Palette0(u32 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
|
||||
void FillBgTilemapBufferRect(u32 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
|
||||
void WriteSequenceToBgTilemapBuffer(u32 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);
|
||||
u16 GetBgMetricTextMode(u32 bg, u32 whichMetric);
|
||||
u32 GetBgMetricAffineMode(u32 bg, u32 whichMetric);
|
||||
u32 GetTileMapIndexFromCoords(s32 x, s32 y, s32 screenSize, u32 screenWidth, u32 screenHeight);
|
||||
void CopyTileMapEntry(const u16 *src, u16 *dest, s32 palette1, s32 tileOffset, s32 palette2);
|
||||
u32 GetBgType(u8 bg);
|
||||
bool32 IsInvalidBg32(u8 bg);
|
||||
bool32 IsTileMapOutsideWram(u8 bg);
|
||||
bool32 IsInvalidBg32(u32 bg);
|
||||
bool32 IsTileMapOutsideWram(u32 bg);
|
||||
|
||||
#endif // GUARD_BG_H
|
||||
|
|
|
|||
|
|
@ -1092,12 +1092,12 @@ void MoveBattlerSpriteToBG(enum BattlerId battler, bool8 toBG_2, bool8 setSprite
|
|||
else
|
||||
{
|
||||
RequestDma3Fill(0, (void *)(BG_SCREEN_ADDR(8)), 0x2000, DMA3_32BIT);
|
||||
RequestDma3Fill(0, (void *)(BG_SCREEN_ADDR(28)), 0x1000, DMA3_32BIT);
|
||||
RequestDma3Fill(0xFF, (void *)(BG_SCREEN_ADDR(28)), 0x1000, DMA3_16BIT);
|
||||
}
|
||||
|
||||
GetBattleAnimBg1Data(&animBg);
|
||||
CpuFill16(toBG_2, animBg.bgTiles, 0x1000);
|
||||
CpuFill16(toBG_2, animBg.bgTilemap, 0x800);
|
||||
CpuFill16(0, animBg.bgTiles, 0x1000);
|
||||
CpuFill16(0, animBg.bgTilemap, 0x800);
|
||||
|
||||
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 2);
|
||||
SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
#include "decompress.h"
|
||||
|
||||
COMMON_DATA void *gWindowBgTilemapBuffers[NUM_BACKGROUNDS] = {0};
|
||||
extern u32 gWindowTileAutoAllocEnabled;
|
||||
extern bool32 gWindowTileAutoAllocEnabled;
|
||||
|
||||
EWRAM_DATA struct Window gWindows[WINDOWS_MAX] = {0};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user