diff options
| author | Marcus Huderle <huderlem@gmail.com> | 2017-11-11 15:42:40 -0800 | 
|---|---|---|
| committer | Marcus Huderle <huderlem@gmail.com> | 2017-11-11 16:06:44 -0800 | 
| commit | 267ada5ce6e2876c4df64275da9ee879a385c6f6 (patch) | |
| tree | 559417726bbd5f3b18c153c1435f872decfe18b1 /include/gba | |
| parent | 20d00c58ef49fa88533fa07ab1801c381f02b7bf (diff) | |
| parent | 67ad331441f29545b84d152cbbb4f188098a9c5a (diff) | |
Merge remote-tracking branch 'upstream/master' into 80c
Diffstat (limited to 'include/gba')
| -rw-r--r-- | include/gba/defines.h | 9 | ||||
| -rw-r--r-- | include/gba/flash_internal.h | 10 | ||||
| -rw-r--r-- | include/gba/m4a_internal.h | 4 | ||||
| -rw-r--r-- | include/gba/macro.h | 34 | 
4 files changed, 44 insertions, 13 deletions
| diff --git a/include/gba/defines.h b/include/gba/defines.h index 0f7f06755..7fd429d9e 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -29,15 +29,16 @@  #define BG_VRAM           VRAM  #define BG_VRAM_SIZE      0x10000 -#define BG_CHAR_ADDR(n)   (BG_VRAM + (0x4000 * (n))) -#define BG_SCREEN_ADDR(n) (BG_VRAM + (0x800 * (n))) +#define BG_CHAR_ADDR(n)   (void *)(BG_VRAM + (0x4000 * (n))) +#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (0x800 * (n))) +#define BG_TILE_ADDR(n)    (void *)(BG_VRAM + (0x80 * (n)))  // text-mode BG -#define OBJ_VRAM0      (VRAM + 0x10000) +#define OBJ_VRAM0      (void *)(VRAM + 0x10000)  #define OBJ_VRAM0_SIZE 0x8000  // bitmap-mode BG -#define OBJ_VRAM1      (VRAM + 0x14000) +#define OBJ_VRAM1      (void *)(VRAM + 0x14000)  #define OBJ_VRAM1_SIZE 0x4000  #define OAM      0x7000000 diff --git a/include/gba/flash_internal.h b/include/gba/flash_internal.h index cbcfb5466..39e14ef73 100644 --- a/include/gba/flash_internal.h +++ b/include/gba/flash_internal.h @@ -35,7 +35,7 @@ struct FlashType {  struct FlashSetupInfo  {      u16 (*programFlashByte)(u16, u32, u8); -    u16 (*programFlashSector)(u16, u8 *); +    u16 (*programFlashSector)(u16, void *);      u16 (*eraseFlashChip)(void);      u16 (*eraseFlashSector)(u16);      u16 (*WaitForFlashWrite)(u8, u8 *, u8); @@ -46,7 +46,7 @@ struct FlashSetupInfo  extern u16 gFlashNumRemainingBytes;  extern u16 (*ProgramFlashByte)(u16, u32, u8); -extern u16 (*ProgramFlashSector)(u16, u8 *); +extern u16 (*ProgramFlashSector)(u16, void *);  extern u16 (*EraseFlashChip)(void);  extern u16 (*EraseFlashSector)(u16);  extern u16 (*WaitForFlashWrite)(u8, u8 *, u8); @@ -67,15 +67,15 @@ void SetReadFlash1(u16 *dest);  void StopFlashTimer(void);  u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void));  u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src); -void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size); -u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n); +void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size); +u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *dataSrc, u32 n);  u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData);  u16 EraseFlashChip_MX(void);  u16 EraseFlashSector_MX(u16 sectorNum);  u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data); -u16 ProgramFlashSector_MX(u16 sectorNum, u8 *src); +u16 ProgramFlashSector_MX(u16 sectorNum, void *src);  // agb_flash_1m  u16 IdentifyFlash(void); diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h index 572b77711..ff92fcc40 100644 --- a/include/gba/m4a_internal.h +++ b/include/gba/m4a_internal.h @@ -404,10 +404,6 @@ void SampleFreqSet(u32 freq);  void m4aSoundVSyncOn(void);  void m4aSoundVSyncOff(void); -void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo); -void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); -void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 pitch); -void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan);  void ClearModM(struct MusicPlayerTrack *track);  void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth);  void m4aMPlayLFOSpeedSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 lfoSpeed); diff --git a/include/gba/macro.h b/include/gba/macro.h index 230fb4383..1e0254806 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -84,4 +84,38 @@      dmaRegs[5];                                                 \  } +#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \ +{                                                         \ +    const void *_src = src;                               \ +    void *_dest = dest;                                   \ +    u32 _size = size;                                     \ +    while (1)                                             \ +    {                                                     \ +        DmaCopy##bit(dmaNum, _src, _dest, (block));       \ +        _src += (block);                                  \ +        _dest += (block);                                 \ +        _size -= (block);                                 \ +        if (_size <= (block))                             \ +        {                                                 \ +            DmaCopy##bit(dmaNum, _src, _dest, _size);     \ +            break;                                        \ +        }                                                 \ +    }                                                     \ +} + +#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16) + +#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32) + +#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ +{                                                    \ +    const void *_src = src;                          \ +    void *_dest = dest;                              \ +    u32 _size = size;                                \ +    DmaCopy##bit(dmaNum, _src, _dest, _size);        \ +} + +#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16) +#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32) +  #endif // GUARD_GBA_MACRO_H | 
