From f2a6e0a58d9bef9b8d9b8d3db2198da488d36749 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 4 Sep 2017 17:18:02 -0400 Subject: sub_804BBE8 and new DmaCopy macros --- include/gba/macro.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'include/gba/macro.h') 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 -- cgit v1.2.3 From 80985df175f67ea1b90772d2d82c5f97bda44106 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 14 Oct 2017 22:16:21 -0400 Subject: sub_8123244 --- include/gba/macro.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'include/gba/macro.h') diff --git a/include/gba/macro.h b/include/gba/macro.h index 1e0254806..71ff15590 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -118,4 +118,34 @@ #define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16) #define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32) +#define DmaFillLarge(dmaNum, fillval, dest, size, block, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = (u32)(size); \ + while (1) \ + { \ + DmaFill##bit(dmaNum, fillval, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, fillval, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaFill16Large(dmaNum, fillval, dest, size, block) DmaFillLarge(dmaNum, fillval, dest, size, block, 16) +#define DmaFill32Large(dmaNum, fillval, dest, size, block) DmaFillLarge(dmaNum, fillval, dest, size, block, 32) + +#define DmaFillDefvars(dmaNum, fillval, dest, size, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = (u##bit)(size); \ + DmaFill##bit(dmaNum, fillval, _dest, _size); \ +} + +#define DmaFill16Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 16) +#define DmaFill32Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 32) + #endif // GUARD_GBA_MACRO_H -- cgit v1.2.3 From b833bf304963f92de2670529d1d9083180ade9ba Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 14 Oct 2017 22:34:01 -0400 Subject: sub_8123740 --- include/gba/macro.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'include/gba/macro.h') diff --git a/include/gba/macro.h b/include/gba/macro.h index 71ff15590..a183a44fc 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -87,7 +87,7 @@ #define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \ { \ const void *_src = src; \ - void *_dest = dest; \ + void *_dest = (void *)(dest); \ u32 _size = size; \ while (1) \ { \ @@ -110,7 +110,7 @@ #define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ { \ const void *_src = src; \ - void *_dest = dest; \ + void *_dest = (void *)(dest); \ u32 _size = size; \ DmaCopy##bit(dmaNum, _src, _dest, _size); \ } @@ -120,8 +120,8 @@ #define DmaFillLarge(dmaNum, fillval, dest, size, block, bit) \ { \ - void *_dest = dest; \ - u32 _size = (u32)(size); \ + void *_dest = (void *)(dest); \ + u32 _size = (u32)(size); \ while (1) \ { \ DmaFill##bit(dmaNum, fillval, _dest, (block)); \ @@ -140,7 +140,7 @@ #define DmaFillDefvars(dmaNum, fillval, dest, size, bit) \ { \ - void *_dest = dest; \ + void *_dest = (void *)(dest); \ u32 _size = (u##bit)(size); \ DmaFill##bit(dmaNum, fillval, _dest, _size); \ } -- cgit v1.2.3 From 00f85341a6d769cc23c4dfbf5fca8ad02835956c Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 25 Nov 2017 14:40:48 -0800 Subject: Mostly done decompiling pokemon_summary_screen --- include/gba/macro.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'include/gba/macro.h') diff --git a/include/gba/macro.h b/include/gba/macro.h index 1e0254806..a0edf2a49 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -103,6 +103,22 @@ } \ } +#define DmaClearLarge(dmaNum, dest, size, block, bit) \ +{ \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, 0, dest, (block)); \ + dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, 0, 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) -- cgit v1.2.3 From 71d3e605290b2069d3571478a3736b04d658decb Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Fri, 22 Dec 2017 00:22:48 -0600 Subject: save work --- include/gba/macro.h | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) (limited to 'include/gba/macro.h') diff --git a/include/gba/macro.h b/include/gba/macro.h index a0edf2a49..d9d10c0a9 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -86,8 +86,8 @@ #define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \ { \ - const void *_src = src; \ - void *_dest = dest; \ + const u8 *_src = src; \ + u8 *_dest = dest; \ u32 _size = size; \ while (1) \ { \ @@ -104,25 +104,28 @@ } #define DmaClearLarge(dmaNum, dest, size, block, bit) \ -{ \ - u32 _size = size; \ - while (1) \ - { \ - DmaFill##bit(dmaNum, 0, dest, (block)); \ - dest += (block); \ - _size -= (block); \ - if (_size <= (block)) \ - { \ - DmaFill##bit(dmaNum, 0, dest, _size); \ - break; \ - } \ - } \ +{ \ + const u8 *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, 0, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, 0, _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 DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16) +#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32) + #define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ { \ const void *_src = src; \ -- cgit v1.2.3 From 2415720ea6760217355f286da83b9955c881bf1b Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Fri, 22 Dec 2017 00:57:31 -0600 Subject: fix 0x2DFC in SaveBlock1 --- include/gba/macro.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include/gba/macro.h') diff --git a/include/gba/macro.h b/include/gba/macro.h index d9d10c0a9..d9e6739b3 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -86,8 +86,8 @@ #define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \ { \ - const u8 *_src = src; \ - u8 *_dest = dest; \ + const void *_src = src; \ + void *_dest = dest; \ u32 _size = size; \ while (1) \ { \ @@ -105,7 +105,7 @@ #define DmaClearLarge(dmaNum, dest, size, block, bit) \ { \ - const u8 *_dest = dest; \ + const void *_dest = dest; \ u32 _size = size; \ while (1) \ { \ -- cgit v1.2.3