diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-12 10:15:31 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-12 10:15:31 -0500 |
commit | cce4c9e92bfe7e10be3a0cf4940299e84701dba0 (patch) | |
tree | 514282760474bf038fb734f87e4f84ac3fb0df12 /include/scanline_effect.h | |
parent | 3b8f6133865af6ede3628f3df8dd71648b43b3bc (diff) | |
parent | 6a2e39eb97db47b542eea76c1e45df37184a0705 (diff) |
Merge branch 'master' into pokemon_storage_system
Diffstat (limited to 'include/scanline_effect.h')
-rw-r--r-- | include/scanline_effect.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/include/scanline_effect.h b/include/scanline_effect.h new file mode 100644 index 000000000..314a856fa --- /dev/null +++ b/include/scanline_effect.h @@ -0,0 +1,48 @@ +#ifndef GUARD_SCANLINE_EFFECT_H +#define GUARD_SCANLINE_EFFECT_H + +// DMA control value to ransfer a single 16-bit value at HBlank +#define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1) + +#define SCANLINE_EFFECT_REG_BG0HOFS (REG_ADDR_BG0HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG0VOFS (REG_ADDR_BG0VOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG1HOFS (REG_ADDR_BG1HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG1VOFS (REG_ADDR_BG1VOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG2HOFS (REG_ADDR_BG2HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG2VOFS (REG_ADDR_BG2VOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG3HOFS (REG_ADDR_BG3HOFS - REG_ADDR_BG0HOFS) +#define SCANLINE_EFFECT_REG_BG3VOFS (REG_ADDR_BG3VOFS - REG_ADDR_BG0HOFS) + +struct ScanlineEffectParams +{ + volatile void *dmaDest; + u32 dmaControl; + u8 initState; + u8 unused9; +}; + +struct ScanlineEffect +{ + void *dmaSrcBuffers[2]; + volatile void *dmaDest; + u32 dmaControl; + void (*setFirstScanlineReg)(void); + u8 srcBuffer; + u8 state; + u8 unused16; + u8 unused17; + u8 waveTaskId; + u8 filler19[0x7]; +}; + +extern struct ScanlineEffect gScanlineEffect; + +extern u16 gScanlineEffectRegBuffers[][0x3C0]; + +void ScanlineEffect_Stop(void); +void ScanlineEffect_Clear(void); +void ScanlineEffect_SetParams(struct ScanlineEffectParams); +void ScanlineEffect_InitHBlankDmaTransfer(void); +u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 a7); + +#endif // GUARD_SCANLINE_EFFECT_H |