summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--format.sh30
-rw-r--r--include/area.h14
-rw-r--r--include/createEnemy.h2
-rw-r--r--include/cutscene.h14
-rw-r--r--include/entity.h98
-rw-r--r--include/entityData.h16
-rw-r--r--include/gba/defines.h52
-rw-r--r--include/gba/flash_internal.h20
-rw-r--r--include/gba/io_reg.h1355
-rw-r--r--include/gba/isagbprint.h24
-rw-r--r--include/gba/m4a_internal.h256
-rw-r--r--include/gba/macro.h238
-rw-r--r--include/gba/multi_boot.h107
-rw-r--r--include/gba/syscall.h38
-rw-r--r--include/gba/types.h324
-rw-r--r--include/global.h25
-rw-r--r--include/greatFairy.h30
-rw-r--r--include/item.h26
-rw-r--r--include/link.h104
-rw-r--r--include/main.h24
-rw-r--r--include/menu.h8
-rw-r--r--include/readKeyInput.h12
-rw-r--r--include/room.h48
-rw-r--r--include/screen.h98
-rw-r--r--include/textbox.h20
-rw-r--r--src/_dmaFill32.c5
-rw-r--r--src/bell.c21
-rw-r--r--src/bigGoron.c50
-rw-r--r--src/bitGetters.c12
-rw-r--r--src/bladeTrap.c43
-rw-r--r--src/cat.c9
-rw-r--r--src/cloud.c113
-rw-r--r--src/copyPosition.c6
-rw-r--r--src/cow.c32
-rw-r--r--src/createEnemy.c15
-rw-r--r--src/createEntity.c76
-rw-r--r--src/createNPC.c15
-rw-r--r--src/createObject.c14
-rw-r--r--src/createObjectWithParent.c17
-rw-r--r--src/emma.c19
-rw-r--r--src/epona.c142
-rw-r--r--src/getProgressFlag.c6
-rw-r--r--src/giantLeaf.c17
-rw-r--r--src/greatFairy.c399
-rw-r--r--src/introSetTransition.c9
-rw-r--r--src/loadRoom.c36
-rw-r--r--src/loadRoomEntityList.c16
-rw-r--r--src/mailbox.c50
-rw-r--r--src/mainLoop.c22
-rw-r--r--src/milkCart.c15
-rw-r--r--src/modHealth.c4
-rw-r--r--src/modRupees.c7
-rw-r--r--src/object1A.c36
-rw-r--r--src/ocarina.c24
-rw-r--r--src/octorok.c79
-rw-r--r--src/positionRelative.c26
-rw-r--r--src/room.c15
-rw-r--r--src/slime.c104
-rw-r--r--src/stamp.c56
-rw-r--r--src/sub_0801D5EC.c5
-rw-r--r--src/sub_0801D754.c19
-rw-r--r--src/sub_0804AA84.c32
-rw-r--r--src/sub_0804AFF4.c44
-rw-r--r--src/sub_08050008.c17
-rw-r--r--src/sub_08050024.c28
-rw-r--r--src/sub_08052620.c3
-rw-r--r--src/sub_08052638.c9
-rw-r--r--src/sub_08055E08.c12
-rw-r--r--src/sub_0805E374.c13
-rw-r--r--src/sub_0805E3A0.c8
-rw-r--r--src/sub_0806F9EC.c6
-rw-r--r--src/sub_0806FA04.c11
-rw-r--r--src/sub_0806FA24.c6
-rw-r--r--src/sub_0806FA30.c34
-rw-r--r--src/sub_08070680.c11
-rw-r--r--src/sub_0807B7D8.c19
-rw-r--r--src/sub_0807B820.c20
-rw-r--r--src/sub_0807B8A8.c20
-rw-r--r--src/sub_0807B930.c19
-rw-r--r--src/sub_0807C998.c3
-rw-r--r--src/sub_080A554C.c2
-rw-r--r--src/sub_080AD644.c8
-rw-r--r--src/sub_08127D30.c9
-rw-r--r--src/textbox.c33
-rw-r--r--src/well.c19
-rw-r--r--src/zelda.c107
86 files changed, 2363 insertions, 2647 deletions
diff --git a/format.sh b/format.sh
new file mode 100644
index 00000000..0c232115
--- /dev/null
+++ b/format.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+
+FORMAT_OPTS="-i -style=file"
+TIDY_OPTS="-p . --fix --fix-errors"
+COMPILER_OPTS="-fno-builtin -std=gnu90 -Iinclude -Isrc -D_LANGUAGE_C -DNON_MATCHING"
+
+shopt -s globstar
+
+if (( $# > 0 )); then
+ echo "Formatting file(s) $*"
+ echo "Running clang-format..."
+ clang-format ${FORMAT_OPTS} "$@"
+ echo "Running clang-tidy..."
+ clang-tidy ${TIDY_OPTS} "$@" -- ${COMPILER_OPTS} &> /dev/null
+ echo "Adding missing final new lines..."
+ sed -i -e '$a\' "$@"
+ echo "Done formatting file(s) $*"
+ exit
+fi
+
+echo "Formatting C files. This will take a bit"
+echo "Running clang-format..."
+clang-format ${FORMAT_OPTS} src/**/*.c
+clang-format ${FORMAT_OPTS} include/**/*.h
+echo "Running clang-tidy..."
+clang-tidy ${TIDY_OPTS} src/**/*.c -- ${COMPILER_OPTS} &> /dev/null
+clang-format ${FORMAT_OPTS} include/**/*.h
+echo "Adding missing final new lines..."
+find src/ -type f -name "*.c" -exec sed -i -e '$a\' {} \;
+echo "Done formatting all files."
diff --git a/include/area.h b/include/area.h
index dfcc90df..75ca58b7 100644
--- a/include/area.h
+++ b/include/area.h
@@ -4,13 +4,13 @@
#include "global.h"
typedef struct {
- u8 areaMetadata;
- u32 locationIndex;
- u8 unk;
- u16 localFlagOffset;
- u8 filler[19];
- u8 fadeOut;
- u8 filler[14];
+ u8 areaMetadata;
+ u32 locationIndex;
+ u8 unk;
+ u16 localFlagOffset;
+ u8 filler[19];
+ u8 fadeOut;
+ u8 filler[14];
} Area;
extern Area gArea;
diff --git a/include/createEnemy.h b/include/createEnemy.h
index 5812baa5..1667ec24 100644
--- a/include/createEnemy.h
+++ b/include/createEnemy.h
@@ -1 +1 @@
-Entity * CreateEnemy(u8, u8); \ No newline at end of file
+Entity* CreateEnemy(u8, u8); \ No newline at end of file
diff --git a/include/cutscene.h b/include/cutscene.h
index eb1d03d8..d86c06b3 100644
--- a/include/cutscene.h
+++ b/include/cutscene.h
@@ -4,13 +4,13 @@
#include "global.h"
typedef struct {
- u32 *cutsceneData;
- u8 textIndex;
- u8 filler[11];
- u16 pauseTime;
- u8 filler[2];
- s32 targetX;
- s32 targetY;
+ u32* cutsceneData;
+ u8 textIndex;
+ u8 filler[11];
+ u16 pauseTime;
+ u8 filler[2];
+ s32 targetX;
+ s32 targetY;
} CutsceneBehavior;
#endif \ No newline at end of file
diff --git a/include/entity.h b/include/entity.h
index 6b519725..7a6618e2 100644
--- a/include/entity.h
+++ b/include/entity.h
@@ -1,17 +1,16 @@
#include "global.h"
-
#ifndef ENTITY_H
#define ENTITY_H
typedef struct {
- void *entity1;
- void *entity2;
- u8 filler[14];
+ void* entity1;
+ void* entity2;
+ u8 filler[14];
} UnkStruct;
typedef struct {
- u8 type;
+ u8 type;
u8 subtype;
u8 parameter1;
u8 parameter2;
@@ -20,29 +19,28 @@ typedef struct {
union SplitWord {
s32 WORD;
struct {
- s16 LO, HI;
+ s16 LO, HI;
} HALF;
};
union SplitHWord {
u16 HWORD;
struct {
- u8 LO, HI;
+ u8 LO, HI;
} PACKED HALF;
};
-typedef struct Entity
-{
- u32 *field_0x0;
- u32 * field_0x4;
- EntityType entityType;
+typedef struct Entity {
+ u32* field_0x0;
+ u32* field_0x4;
+ EntityType entityType;
u8 action;
u8 previousActionFlag;
u8 parameter3;
u8 field_0xf;
u8 flags;
- u8 scriptedScene:4;
- u8 scriptedScene2:4;
+ u8 scriptedScene : 4;
+ u8 scriptedScene2 : 4;
s16 spriteTileSize;
u8 animationState;
u8 direction;
@@ -51,28 +49,28 @@ typedef struct Entity
union {
u8 raw;
struct {
- u8 ss0:2;
- u8 ss2:1;
- u8 ss3:1;
- u8 ss4:1;
- u8 ss5:1;
- u8 ss6:1;
- u8 ss7:1;
+ u8 ss0 : 2;
+ u8 ss2 : 1;
+ u8 ss3 : 1;
+ u8 ss4 : 1;
+ u8 ss5 : 1;
+ u8 ss6 : 1;
+ u8 ss7 : 1;
} PACKED b;
} PACKED spriteSettings;
-
+
struct {
- u8 b0:2;
- u8 b1:2;
- u8 b2:2;
- u8 b3:2;
+ u8 b0 : 2;
+ u8 b1 : 2;
+ u8 b2 : 2;
+ u8 b3 : 2;
} PACKED spriteOrder;
u8 palette;
struct {
- u8 b0:4;
- u8 b1:1;
- u8 b2:3;
+ u8 b0 : 4;
+ u8 b1 : 1;
+ u8 b2 : 3;
} PACKED spriteOrientation;
u8 filler[2];
u8 animationList;
@@ -81,13 +79,13 @@ typedef struct Entity
s16 nonPlanarMovement;
u8 spriteAnimation[3];
struct {
- u8 b0:3;
- u8 b1:5;
+ u8 b0 : 3;
+ u8 b1 : 5;
} PACKED ticks;
u16 collisions;
- union SplitWord x;
- union SplitWord y;
- union SplitWord height; // todo
+ union SplitWord x;
+ union SplitWord y;
+ union SplitWord height; // todo
u8 collisionLayer;
s8 interactType;
u8 field_0x3a;
@@ -103,22 +101,22 @@ typedef struct Entity
u8 field_0x44;
u8 currentHealth;
s16 field_0x46;
- u32 * boundingBox;
+ u32* boundingBox;
u8 field_0x4c;
u8 field_0x4d;
u8 field_0x4e;
u8 field_0x4f;
- struct Entity * parent;
- struct Entity * attachedEntity;
+ struct Entity* parent;
+ struct Entity* attachedEntity;
u8 field_0x58;
u8 field_0x59;
union {
u8 all;
struct {
- u8 f0:1;
- u8 f1:5;
- u8 f2:1;
- u8 f3:1;
+ u8 f0 : 1;
+ u8 f1 : 5;
+ u8 f2 : 1;
+ u8 f3 : 1;
} PACKED b;
} PACKED frames;
u8 gfx;
@@ -129,22 +127,22 @@ typedef struct Entity
u16 spriteVramOffset;
u8 spriteOffsetX;
u8 spriteOffsetY;
- u32 * otherEntity;
- u8 field_0x68;
+ u32* otherEntity;
+ u8 field_0x68;
u8 field_0x69;
u16 field_0x6a;
u8 field_0x6c;
u8 field_0x6d;
u8 filler4[6];
- u32 * heldObjectPtr;
- u8 filler3[2];
- u16 itemCooldown;
- u32 field_0x7c;
- u16 field_0x80;
+ u32* heldObjectPtr;
+ u8 filler3[2];
+ u16 itemCooldown;
+ u32 field_0x7c;
+ u16 field_0x80;
u16 field_0x82;
- union SplitHWord cutsceneBeh;
+ union SplitHWord cutsceneBeh;
u16 field_0x86;
-
+
} Entity;
#endif
diff --git a/include/entityData.h b/include/entityData.h
index 086c489c..6bf62edd 100644
--- a/include/entityData.h
+++ b/include/entityData.h
@@ -2,13 +2,13 @@
#define ENTITYDATA_H
#include "global.h"
typedef struct {
- u8 entityType;
- u8 field_0x1;
- u8 entitySubtype;
- u8 entityParameter1;
- u32 entityParameter2;
- u16 xPos;
- u16 yPos;
- u32 spritePtr;
+ u8 entityType;
+ u8 field_0x1;
+ u8 entitySubtype;
+ u8 entityParameter1;
+ u32 entityParameter2;
+ u16 xPos;
+ u16 yPos;
+ u32 spritePtr;
} EntityData;
#endif \ No newline at end of file
diff --git a/include/gba/defines.h b/include/gba/defines.h
index 765f0065..09f9b07b 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -3,7 +3,7 @@
#include <stddef.h>
-#define TRUE 1
+#define TRUE 1
#define FALSE 0
#if defined(__APPLE__)
@@ -20,65 +20,65 @@
#define ALIGNED(n) __attribute__((aligned(n)))
-#define SOUND_INFO_PTR (*(struct SoundInfo **)0x3007FF0)
-#define INTR_CHECK (*(u16 *)0x3007FF8)
-#define INTR_VECTOR (*(void **)0x3007FFC)
+#define SOUND_INFO_PTR (*(struct SoundInfo**)0x3007FF0)
+#define INTR_CHECK (*(u16*)0x3007FF8)
+#define INTR_VECTOR (*(void**)0x3007FFC)
#define EWRAM_START 0x02000000
-#define EWRAM_END (EWRAM_START + 0x40000)
+#define EWRAM_END (EWRAM_START + 0x40000)
#define IWRAM_START 0x03000000
-#define IWRAM_END (IWRAM_START + 0x8000)
+#define IWRAM_END (IWRAM_START + 0x8000)
-#define PLTT 0x5000000
+#define PLTT 0x5000000
#define PLTT_SIZE 0x400
-#define BG_PLTT PLTT
+#define BG_PLTT PLTT
#define BG_PLTT_SIZE 0x200
-#define OBJ_PLTT (PLTT + 0x200)
+#define OBJ_PLTT (PLTT + 0x200)
#define OBJ_PLTT_SIZE 0x200
-#define VRAM 0x6000000
+#define VRAM 0x6000000
#define VRAM_SIZE 0x18000
-#define BG_VRAM VRAM
-#define BG_VRAM_SIZE 0x10000
-#define BG_CHAR_SIZE 0x4000
-#define BG_SCREEN_SIZE 0x800
-#define BG_CHAR_ADDR(n) (void *)(BG_VRAM + (BG_CHAR_SIZE * (n)))
-#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (BG_SCREEN_SIZE * (n)))
-#define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n)))
+#define BG_VRAM VRAM
+#define BG_VRAM_SIZE 0x10000
+#define BG_CHAR_SIZE 0x4000
+#define BG_SCREEN_SIZE 0x800
+#define BG_CHAR_ADDR(n) (void*)(BG_VRAM + (BG_CHAR_SIZE * (n)))
+#define BG_SCREEN_ADDR(n) (void*)(BG_VRAM + (BG_SCREEN_SIZE * (n)))
+#define BG_TILE_ADDR(n) (void*)(BG_VRAM + (0x80 * (n)))
#define BG_TILE_H_FLIP(n) (0x400 + (n))
#define BG_TILE_V_FLIP(n) (0x800 + (n))
// text-mode BG
-#define OBJ_VRAM0 (void *)(VRAM + 0x10000)
+#define OBJ_VRAM0 (void*)(VRAM + 0x10000)
#define OBJ_VRAM0_SIZE 0x8000
// bitmap-mode BG
-#define OBJ_VRAM1 (void *)(VRAM + 0x14000)
+#define OBJ_VRAM1 (void*)(VRAM + 0x14000)
#define OBJ_VRAM1_SIZE 0x4000
-#define OAM 0x7000000
+#define OAM 0x7000000
#define OAM_SIZE 0x400
-#define ROM_HEADER_SIZE 0xC0
+#define ROM_HEADER_SIZE 0xC0
-#define DISPLAY_WIDTH 240
+#define DISPLAY_WIDTH 240
#define DISPLAY_HEIGHT 160
#define TILE_SIZE_4BPP 32
#define TILE_SIZE_8BPP 64
-#define TILE_OFFSET_4BPP(n) ((n) * TILE_SIZE_4BPP)
-#define TILE_OFFSET_8BPP(n) ((n) * TILE_SIZE_8BPP)
+#define TILE_OFFSET_4BPP(n) ((n)*TILE_SIZE_4BPP)
+#define TILE_OFFSET_8BPP(n) ((n)*TILE_SIZE_8BPP)
#define TOTAL_OBJ_TILE_COUNT 1024
#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r))
-#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F))
+#define _RGB(r, g, b) ((((b)&0x1F) << 10) + (((g)&0x1F) << 5) + ((r)&0x1F))
#define RGB_BLACK RGB(0, 0, 0)
#define RGB_WHITE RGB(31, 31, 31)
@@ -90,6 +90,6 @@
#define RGB_CYAN RGB(0, 31, 31)
#define RGB_WHITEALPHA (RGB_WHITE | 0x8000)
-#define SYSTEM_CLOCK (16 * 1024 * 1024) // System Clock
+#define SYSTEM_CLOCK (16 * 1024 * 1024) // System Clock
#endif // GUARD_GBA_DEFINES
diff --git a/include/gba/flash_internal.h b/include/gba/flash_internal.h
index a4770882..09f3f79c 100644
--- a/include/gba/flash_internal.h
+++ b/include/gba/flash_internal.h
@@ -1,16 +1,15 @@
#ifndef GUARD_GBA_FLASH_INTERNAL_H
#define GUARD_GBA_FLASH_INTERNAL_H
-#define FLASH_BASE ((u8 *)0xE000000)
+#define FLASH_BASE ((u8*)0xE000000)
-#define FLASH_WRITE(addr, data) ((*(vu8 *)(FLASH_BASE + (addr))) = (data))
+#define FLASH_WRITE(addr, data) ((*(vu8*)(FLASH_BASE + (addr))) = (data))
#define FLASH_ROM_SIZE_1M 131072 // 1 megabit ROM
#define SECTORS_PER_BANK 16
-struct FlashSector
-{
+struct FlashSector {
u32 size;
u8 shift;
u16 count;
@@ -25,21 +24,20 @@ struct FlashType {
// TODO: add support for anonymous unions/structs if possible
union {
struct {
- u8 makerId;
- u8 deviceId;
+ u8 makerId;
+ u8 deviceId;
} separate;
u16 joined;
} ids;
};
-struct FlashSetupInfo
-{
+struct FlashSetupInfo {
u16 (*programFlashByte)(u16, u32, u8);
- u16 (*programFlashSector)(u16, void *);
+ u16 (*programFlashSector)(u16, void*);
u16 (*eraseFlashChip)(void);
u16 (*eraseFlashSector)(u16);
- u16 (*WaitForFlashWrite)(u8, u8 *, u8);
- const u16 *maxTime;
+ u16 (*WaitForFlashWrite)(u8, u8*, u8);
+ const u16* maxTime;
struct FlashType type;
};
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index e331da40..a66467f0 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -5,600 +5,601 @@
// I/O register offsets
-#define REG_OFFSET_DISPCNT 0x0
-#define REG_OFFSET_DISPSTAT 0x4
-#define REG_OFFSET_VCOUNT 0x6
-#define REG_OFFSET_BG0CNT 0x8
-#define REG_OFFSET_BG1CNT 0xa
-#define REG_OFFSET_BG2CNT 0xc
-#define REG_OFFSET_BG3CNT 0xe
-#define REG_OFFSET_BG0HOFS 0x10
-#define REG_OFFSET_BG0VOFS 0x12
-#define REG_OFFSET_BG1HOFS 0x14
-#define REG_OFFSET_BG1VOFS 0x16
-#define REG_OFFSET_BG2HOFS 0x18
-#define REG_OFFSET_BG2VOFS 0x1a
-#define REG_OFFSET_BG3HOFS 0x1c
-#define REG_OFFSET_BG3VOFS 0x1e
-#define REG_OFFSET_BG2PA 0x20
-#define REG_OFFSET_BG2PB 0x22
-#define REG_OFFSET_BG2PC 0x24
-#define REG_OFFSET_BG2PD 0x26
-#define REG_OFFSET_BG2X 0x28
-#define REG_OFFSET_BG2X_L 0x28
-#define REG_OFFSET_BG2X_H 0x2a
-#define REG_OFFSET_BG2Y 0x2c
-#define REG_OFFSET_BG2Y_L 0x2c
-#define REG_OFFSET_BG2Y_H 0x2e
-#define REG_OFFSET_BG3PA 0x30
-#define REG_OFFSET_BG3PB 0x32
-#define REG_OFFSET_BG3PC 0x34
-#define REG_OFFSET_BG3PD 0x36
-#define REG_OFFSET_BG3X 0x38
-#define REG_OFFSET_BG3X_L 0x38
-#define REG_OFFSET_BG3X_H 0x3a
-#define REG_OFFSET_BG3Y 0x3c
-#define REG_OFFSET_BG3Y_L 0x3c
-#define REG_OFFSET_BG3Y_H 0x3e
-#define REG_OFFSET_WIN0H 0x40
-#define REG_OFFSET_WIN1H 0x42
-#define REG_OFFSET_WIN0V 0x44
-#define REG_OFFSET_WIN1V 0x46
-#define REG_OFFSET_WININ 0x48
-#define REG_OFFSET_WINOUT 0x4a
-#define REG_OFFSET_MOSAIC 0x4c
-#define REG_OFFSET_BLDCNT 0x50
-#define REG_OFFSET_BLDALPHA 0x52
-#define REG_OFFSET_BLDY 0x54
+#define REG_OFFSET_DISPCNT 0x0
+#define REG_OFFSET_DISPSTAT 0x4
+#define REG_OFFSET_VCOUNT 0x6
+#define REG_OFFSET_BG0CNT 0x8
+#define REG_OFFSET_BG1CNT 0xa
+#define REG_OFFSET_BG2CNT 0xc
+#define REG_OFFSET_BG3CNT 0xe
+#define REG_OFFSET_BG0HOFS 0x10
+#define REG_OFFSET_BG0VOFS 0x12
+#define REG_OFFSET_BG1HOFS 0x14
+#define REG_OFFSET_BG1VOFS 0x16
+#define REG_OFFSET_BG2HOFS 0x18
+#define REG_OFFSET_BG2VOFS 0x1a
+#define REG_OFFSET_BG3HOFS 0x1c
+#define REG_OFFSET_BG3VOFS 0x1e
+#define REG_OFFSET_BG2PA 0x20
+#define REG_OFFSET_BG2PB 0x22
+#define REG_OFFSET_BG2PC 0x24
+#define REG_OFFSET_BG2PD 0x26
+#define REG_OFFSET_BG2X 0x28
+#define REG_OFFSET_BG2X_L 0x28
+#define REG_OFFSET_BG2X_H 0x2a
+#define REG_OFFSET_BG2Y 0x2c
+#define REG_OFFSET_BG2Y_L 0x2c
+#define REG_OFFSET_BG2Y_H 0x2e
+#define REG_OFFSET_BG3PA 0x30
+#define REG_OFFSET_BG3PB 0x32
+#define REG_OFFSET_BG3PC 0x34
+#define REG_OFFSET_BG3PD 0x36
+#define REG_OFFSET_BG3X 0x38
+#define REG_OFFSET_BG3X_L 0x38
+#define REG_OFFSET_BG3X_H 0x3a
+#define REG_OFFSET_BG3Y 0x3c
+#define REG_OFFSET_BG3Y_L 0x3c
+#define REG_OFFSET_BG3Y_H 0x3e
+#define REG_OFFSET_WIN0H 0x40
+#define REG_OFFSET_WIN1H 0x42
+#define REG_OFFSET_WIN0V 0x44
+#define REG_OFFSET_WIN1V 0x46
+#define REG_OFFSET_WININ 0x48
+#define REG_OFFSET_WINOUT 0x4a
+#define REG_OFFSET_MOSAIC 0x4c
+#define REG_OFFSET_BLDCNT 0x50
+#define REG_OFFSET_BLDALPHA 0x52
+#define REG_OFFSET_BLDY 0x54
#define REG_OFFSET_SOUND1CNT_L 0x60
-#define REG_OFFSET_NR10 0x60
+#define REG_OFFSET_NR10 0x60
#define REG_OFFSET_SOUND1CNT_H 0x62
-#define REG_OFFSET_NR11 0x62
-#define REG_OFFSET_NR12 0x63
+#define REG_OFFSET_NR11 0x62
+#define REG_OFFSET_NR12 0x63
#define REG_OFFSET_SOUND1CNT_X 0x64
-#define REG_OFFSET_NR13 0x64
-#define REG_OFFSET_NR14 0x65
+#define REG_OFFSET_NR13 0x64
+#define REG_OFFSET_NR14 0x65
#define REG_OFFSET_SOUND2CNT_L 0x68
-#define REG_OFFSET_NR21 0x68
-#define REG_OFFSET_NR22 0x69
+#define REG_OFFSET_NR21 0x68
+#define REG_OFFSET_NR22 0x69
#define REG_OFFSET_SOUND2CNT_H 0x6c
-#define REG_OFFSET_NR23 0x6c
-#define REG_OFFSET_NR24 0x6d
+#define REG_OFFSET_NR23 0x6c
+#define REG_OFFSET_NR24 0x6d
#define REG_OFFSET_SOUND3CNT_L 0x70
-#define REG_OFFSET_NR30 0x70
+#define REG_OFFSET_NR30 0x70
#define REG_OFFSET_SOUND3CNT_H 0x72
-#define REG_OFFSET_NR31 0x72
-#define REG_OFFSET_NR32 0x73
+#define REG_OFFSET_NR31 0x72
+#define REG_OFFSET_NR32 0x73
#define REG_OFFSET_SOUND3CNT_X 0x74
-#define REG_OFFSET_NR33 0x74
-#define REG_OFFSET_NR34 0x75
+#define REG_OFFSET_NR33 0x74
+#define REG_OFFSET_NR34 0x75
#define REG_OFFSET_SOUND4CNT_L 0x78
-#define REG_OFFSET_NR41 0x78
-#define REG_OFFSET_NR42 0x79
+#define REG_OFFSET_NR41 0x78
+#define REG_OFFSET_NR42 0x79
#define REG_OFFSET_SOUND4CNT_H 0x7c
-#define REG_OFFSET_NR43 0x7c
-#define REG_OFFSET_NR44 0x7d
-#define REG_OFFSET_SOUNDCNT_L 0x80
-#define REG_OFFSET_NR50 0x80
-#define REG_OFFSET_NR51 0x81
-#define REG_OFFSET_SOUNDCNT_H 0x82
-#define REG_OFFSET_SOUNDCNT_X 0x84
-#define REG_OFFSET_NR52 0x84
-#define REG_OFFSET_SOUNDBIAS 0x88
+#define REG_OFFSET_NR43 0x7c
+#define REG_OFFSET_NR44 0x7d
+#define REG_OFFSET_SOUNDCNT_L 0x80
+#define REG_OFFSET_NR50 0x80
+#define REG_OFFSET_NR51 0x81
+#define REG_OFFSET_SOUNDCNT_H 0x82
+#define REG_OFFSET_SOUNDCNT_X 0x84
+#define REG_OFFSET_NR52 0x84
+#define REG_OFFSET_SOUNDBIAS 0x88
#define REG_OFFSET_SOUNDBIAS_L 0x88
#define REG_OFFSET_SOUNDBIAS_H 0x89
-#define REG_OFFSET_WAVE_RAM0 0x90
-#define REG_OFFSET_WAVE_RAM1 0x94
-#define REG_OFFSET_WAVE_RAM2 0x98
-#define REG_OFFSET_WAVE_RAM3 0x9c
-#define REG_OFFSET_FIFO_A 0xa0
-#define REG_OFFSET_FIFO_B 0xa4
-
-#define REG_OFFSET_DMA0 0xb0
-#define REG_OFFSET_DMA0SAD 0xb0
-#define REG_OFFSET_DMA0SAD_L 0xb0
-#define REG_OFFSET_DMA0SAD_H 0xb2
-#define REG_OFFSET_DMA0DAD 0xb4
-#define REG_OFFSET_DMA0DAD_L 0xb4
-#define REG_OFFSET_DMA0DAD_H 0xb6
-#define REG_OFFSET_DMA0CNT 0xb8
-#define REG_OFFSET_DMA0CNT_L 0xb8
-#define REG_OFFSET_DMA0CNT_H 0xba
-#define REG_OFFSET_DMA1 0xbc
-#define REG_OFFSET_DMA1SAD 0xbc
-#define REG_OFFSET_DMA1SAD_L 0xbc
-#define REG_OFFSET_DMA1SAD_H 0xbe
-#define REG_OFFSET_DMA1DAD 0xc0
-#define REG_OFFSET_DMA1DAD_L 0xc0
-#define REG_OFFSET_DMA1DAD_H 0xc2
-#define REG_OFFSET_DMA1CNT 0xc4
-#define REG_OFFSET_DMA1CNT_L 0xc4
-#define REG_OFFSET_DMA1CNT_H 0xc6
-#define REG_OFFSET_DMA2 0xc8
-#define REG_OFFSET_DMA2SAD 0xc8
-#define REG_OFFSET_DMA2SAD_L 0xc8
-#define REG_OFFSET_DMA2SAD_H 0xca
-#define REG_OFFSET_DMA2DAD 0xcc
-#define REG_OFFSET_DMA2DAD_L 0xcc
-#define REG_OFFSET_DMA2DAD_H 0xce
-#define REG_OFFSET_DMA2CNT 0xd0
-#define REG_OFFSET_DMA2CNT_L 0xd0
-#define REG_OFFSET_DMA2CNT_H 0xd2
-#define REG_OFFSET_DMA3 0xd4
-#define REG_OFFSET_DMA3SAD 0xd4
-#define REG_OFFSET_DMA3SAD_L 0xd4
-#define REG_OFFSET_DMA3SAD_H 0xd6
-#define REG_OFFSET_DMA3DAD 0xd8
-#define REG_OFFSET_DMA3DAD_L 0xd8
-#define REG_OFFSET_DMA3DAD_H 0xda
-#define REG_OFFSET_DMA3CNT 0xdc
-#define REG_OFFSET_DMA3CNT_L 0xdc
-#define REG_OFFSET_DMA3CNT_H 0xde
-
-#define REG_OFFSET_TMCNT 0x100
-#define REG_OFFSET_TMCNT_L 0x100
-#define REG_OFFSET_TMCNT_H 0x102
-#define REG_OFFSET_TM0CNT 0x100
-#define REG_OFFSET_TM0CNT_L 0x100
-#define REG_OFFSET_TM0CNT_H 0x102
-#define REG_OFFSET_TM1CNT 0x104
-#define REG_OFFSET_TM1CNT_L 0x104
-#define REG_OFFSET_TM1CNT_H 0x106
-#define REG_OFFSET_TM2CNT 0x108
-#define REG_OFFSET_TM2CNT_L 0x108
-#define REG_OFFSET_TM2CNT_H 0x10a
-#define REG_OFFSET_TM3CNT 0x10c
-#define REG_OFFSET_TM3CNT_L 0x10c
-#define REG_OFFSET_TM3CNT_H 0x10e
-
-#define REG_OFFSET_SIOCNT 0x128
-#define REG_OFFSET_SIODATA8 0x12a
-#define REG_OFFSET_SIODATA32 0x120
+#define REG_OFFSET_WAVE_RAM0 0x90
+#define REG_OFFSET_WAVE_RAM1 0x94
+#define REG_OFFSET_WAVE_RAM2 0x98
+#define REG_OFFSET_WAVE_RAM3 0x9c
+#define REG_OFFSET_FIFO_A 0xa0
+#define REG_OFFSET_FIFO_B 0xa4
+
+#define REG_OFFSET_DMA0 0xb0
+#define REG_OFFSET_DMA0SAD 0xb0
+#define REG_OFFSET_DMA0SAD_L 0xb0
+#define REG_OFFSET_DMA0SAD_H 0xb2
+#define REG_OFFSET_DMA0DAD 0xb4
+#define REG_OFFSET_DMA0DAD_L 0xb4
+#define REG_OFFSET_DMA0DAD_H 0xb6
+#define REG_OFFSET_DMA0CNT 0xb8
+#define REG_OFFSET_DMA0CNT_L 0xb8
+#define REG_OFFSET_DMA0CNT_H 0xba
+#define REG_OFFSET_DMA1 0xbc
+#define REG_OFFSET_DMA1SAD 0xbc
+#define REG_OFFSET_DMA1SAD_L 0xbc
+#define REG_OFFSET_DMA1SAD_H 0xbe
+#define REG_OFFSET_DMA1DAD 0xc0
+#define REG_OFFSET_DMA1DAD_L 0xc0
+#define REG_OFFSET_DMA1DAD_H 0xc2
+#define REG_OFFSET_DMA1CNT 0xc4
+#define REG_OFFSET_DMA1CNT_L 0xc4
+#define REG_OFFSET_DMA1CNT_H 0xc6
+#define REG_OFFSET_DMA2 0xc8
+#define REG_OFFSET_DMA2SAD 0xc8
+#define REG_OFFSET_DMA2SAD_L 0xc8
+#define REG_OFFSET_DMA2SAD_H 0xca
+#define REG_OFFSET_DMA2DAD 0xcc
+#define REG_OFFSET_DMA2DAD_L 0xcc
+#define REG_OFFSET_DMA2DAD_H 0xce
+#define REG_OFFSET_DMA2CNT 0xd0
+#define REG_OFFSET_DMA2CNT_L 0xd0
+#define REG_OFFSET_DMA2CNT_H 0xd2
+#define REG_OFFSET_DMA3 0xd4
+#define REG_OFFSET_DMA3SAD 0xd4
+#define REG_OFFSET_DMA3SAD_L 0xd4
+#define REG_OFFSET_DMA3SAD_H 0xd6
+#define REG_OFFSET_DMA3DAD 0xd8
+#define REG_OFFSET_DMA3DAD_L 0xd8
+#define REG_OFFSET_DMA3DAD_H 0xda
+#define REG_OFFSET_DMA3CNT 0xdc
+#define REG_OFFSET_DMA3CNT_L 0xdc
+#define REG_OFFSET_DMA3CNT_H 0xde
+
+#define REG_OFFSET_TMCNT 0x100
+#define REG_OFFSET_TMCNT_L 0x100
+#define REG_OFFSET_TMCNT_H 0x102
+#define REG_OFFSET_TM0CNT 0x100
+#define REG_OFFSET_TM0CNT_L 0x100
+#define REG_OFFSET_TM0CNT_H 0x102
+#define REG_OFFSET_TM1CNT 0x104
+#define REG_OFFSET_TM1CNT_L 0x104
+#define REG_OFFSET_TM1CNT_H 0x106
+#define REG_OFFSET_TM2CNT 0x108
+#define REG_OFFSET_TM2CNT_L 0x108
+#define REG_OFFSET_TM2CNT_H 0x10a
+#define REG_OFFSET_TM3CNT 0x10c
+#define REG_OFFSET_TM3CNT_L 0x10c
+#define REG_OFFSET_TM3CNT_H 0x10e
+
+#define REG_OFFSET_SIOCNT 0x128
+#define REG_OFFSET_SIODATA8 0x12a
+#define REG_OFFSET_SIODATA32 0x120
#define REG_OFFSET_SIOMLT_SEND 0x12a
#define REG_OFFSET_SIOMLT_RECV 0x120
-#define REG_OFFSET_SIOMULTI0 0x120
-#define REG_OFFSET_SIOMULTI1 0x122
-#define REG_OFFSET_SIOMULTI2 0x124
-#define REG_OFFSET_SIOMULTI3 0x126
-
-#define REG_OFFSET_KEYINPUT 0x130
-#define REG_OFFSET_KEYCNT 0x132
-
-#define REG_OFFSET_RCNT 0x134
-
-#define REG_OFFSET_JOYCNT 0x140
-#define REG_OFFSET_JOYSTAT 0x158
-#define REG_OFFSET_JOY_RECV 0x150
-#define REG_OFFSET_JOY_RECV_L 0x150
-#define REG_OFFSET_JOY_RECV_H 0x152
-#define REG_OFFSET_JOY_TRANS 0x154
+#define REG_OFFSET_SIOMULTI0 0x120
+#define REG_OFFSET_SIOMULTI1 0x122
+#define REG_OFFSET_SIOMULTI2 0x124
+#define REG_OFFSET_SIOMULTI3 0x126
+
+#define REG_OFFSET_KEYINPUT 0x130
+#define REG_OFFSET_KEYCNT 0x132
+
+#define REG_OFFSET_RCNT 0x134
+
+#define REG_OFFSET_JOYCNT 0x140
+#define REG_OFFSET_JOYSTAT 0x158
+#define REG_OFFSET_JOY_RECV 0x150
+#define REG_OFFSET_JOY_RECV_L 0x150
+#define REG_OFFSET_JOY_RECV_H 0x152
+#define REG_OFFSET_JOY_TRANS 0x154
#define REG_OFFSET_JOY_TRANS_L 0x154
#define REG_OFFSET_JOY_TRANS_H 0x156
-#define REG_OFFSET_IME 0x208
-#define REG_OFFSET_IE 0x200
-#define REG_OFFSET_IF 0x202
+#define REG_OFFSET_IME 0x208
+#define REG_OFFSET_IE 0x200
+#define REG_OFFSET_IF 0x202
-#define REG_OFFSET_WAITCNT 0x204
+#define REG_OFFSET_WAITCNT 0x204
// I/O register addresses
-#define REG_ADDR_DISPCNT (REG_BASE + REG_OFFSET_DISPCNT)
-#define REG_ADDR_DISPSTAT (REG_BASE + REG_OFFSET_DISPSTAT)
-#define REG_ADDR_VCOUNT (REG_BASE + REG_OFFSET_VCOUNT)
-#define REG_ADDR_BG0CNT (REG_BASE + REG_OFFSET_BG0CNT)
-#define REG_ADDR_BG1CNT (REG_BASE + REG_OFFSET_BG1CNT)
-#define REG_ADDR_BG2CNT (REG_BASE + REG_OFFSET_BG2CNT)
-#define REG_ADDR_BG3CNT (REG_BASE + REG_OFFSET_BG3CNT)
-#define REG_ADDR_BG0HOFS (REG_BASE + REG_OFFSET_BG0HOFS)
-#define REG_ADDR_BG0VOFS (REG_BASE + REG_OFFSET_BG0VOFS)
-#define REG_ADDR_BG1HOFS (REG_BASE + REG_OFFSET_BG1HOFS)
-#define REG_ADDR_BG1VOFS (REG_BASE + REG_OFFSET_BG1VOFS)
-#define REG_ADDR_BG2HOFS (REG_BASE + REG_OFFSET_BG2HOFS)
-#define REG_ADDR_BG2VOFS (REG_BASE + REG_OFFSET_BG2VOFS)
-#define REG_ADDR_BG3HOFS (REG_BASE + REG_OFFSET_BG3HOFS)
-#define REG_ADDR_BG3VOFS (REG_BASE + REG_OFFSET_BG3VOFS)
-#define REG_ADDR_BG2PA (REG_BASE + REG_OFFSET_BG2PA)
-#define REG_ADDR_BG2PB (REG_BASE + REG_OFFSET_BG2PB)
-#define REG_ADDR_BG2PC (REG_BASE + REG_OFFSET_BG2PC)
-#define REG_ADDR_BG2PD (REG_BASE + REG_OFFSET_BG2PD)
-#define REG_ADDR_BG2X (REG_BASE + REG_OFFSET_BG2X)
-#define REG_ADDR_BG2X_L (REG_BASE + REG_OFFSET_BG2X_L)
-#define REG_ADDR_BG2X_H (REG_BASE + REG_OFFSET_BG2X_H)
-#define REG_ADDR_BG2Y (REG_BASE + REG_OFFSET_BG2Y)
-#define REG_ADDR_BG2Y_L (REG_BASE + REG_OFFSET_BG2Y_L)
-#define REG_ADDR_BG2Y_H (REG_BASE + REG_OFFSET_BG2Y_H)
-#define REG_ADDR_BG3PA (REG_BASE + REG_OFFSET_BG3PA)
-#define REG_ADDR_BG3PB (REG_BASE + REG_OFFSET_BG3PB)
-#define REG_ADDR_BG3PC (REG_BASE + REG_OFFSET_BG3PC)
-#define REG_ADDR_BG3PD (REG_BASE + REG_OFFSET_BG3PD)
-#define REG_ADDR_BG3X (REG_BASE + REG_OFFSET_BG3X)
-#define REG_ADDR_BG3X_L (REG_BASE + REG_OFFSET_BG3X_L)
-#define REG_ADDR_BG3X_H (REG_BASE + REG_OFFSET_BG3X_H)
-#define REG_ADDR_BG3Y (REG_BASE + REG_OFFSET_BG3Y)
-#define REG_ADDR_BG3Y_L (REG_BASE + REG_OFFSET_BG3Y_L)
-#define REG_ADDR_BG3Y_H (REG_BASE + REG_OFFSET_BG3Y_H)
-#define REG_ADDR_WIN0H (REG_BASE + REG_OFFSET_WIN0H)
-#define REG_ADDR_WIN1H (REG_BASE + REG_OFFSET_WIN1H)
-#define REG_ADDR_WIN0V (REG_BASE + REG_OFFSET_WIN0V)
-#define REG_ADDR_WIN1V (REG_BASE + REG_OFFSET_WIN1V)
-#define REG_ADDR_WININ (REG_BASE + REG_OFFSET_WININ)
-#define REG_ADDR_WINOUT (REG_BASE + REG_OFFSET_WINOUT)
-#define REG_ADDR_MOSAIC (REG_BASE + REG_OFFSET_MOSAIC)
-#define REG_ADDR_BLDCNT (REG_BASE + REG_OFFSET_BLDCNT)
-#define REG_ADDR_BLDALPHA (REG_BASE + REG_OFFSET_BLDALPHA)
-#define REG_ADDR_BLDY (REG_BASE + REG_OFFSET_BLDY)
+#define REG_ADDR_DISPCNT (REG_BASE + REG_OFFSET_DISPCNT)
+#define REG_ADDR_DISPSTAT (REG_BASE + REG_OFFSET_DISPSTAT)
+#define REG_ADDR_VCOUNT (REG_BASE + REG_OFFSET_VCOUNT)
+#define REG_ADDR_BG0CNT (REG_BASE + REG_OFFSET_BG0CNT)
+#define REG_ADDR_BG1CNT (REG_BASE + REG_OFFSET_BG1CNT)
+#define REG_ADDR_BG2CNT (REG_BASE + REG_OFFSET_BG2CNT)
+#define REG_ADDR_BG3CNT (REG_BASE + REG_OFFSET_BG3CNT)
+#define REG_ADDR_BG0HOFS (REG_BASE + REG_OFFSET_BG0HOFS)
+#define REG_ADDR_BG0VOFS (REG_BASE + REG_OFFSET_BG0VOFS)
+#define REG_ADDR_BG1HOFS (REG_BASE + REG_OFFSET_BG1HOFS)
+#define REG_ADDR_BG1VOFS (REG_BASE + REG_OFFSET_BG1VOFS)
+#define REG_ADDR_BG2HOFS (REG_BASE + REG_OFFSET_BG2HOFS)
+#define REG_ADDR_BG2VOFS (REG_BASE + REG_OFFSET_BG2VOFS)
+#define REG_ADDR_BG3HOFS (REG_BASE + REG_OFFSET_BG3HOFS)
+#define REG_ADDR_BG3VOFS (REG_BASE + REG_OFFSET_BG3VOFS)
+#define REG_ADDR_BG2PA (REG_BASE + REG_OFFSET_BG2PA)
+#define REG_ADDR_BG2PB (REG_BASE + REG_OFFSET_BG2PB)
+#define REG_ADDR_BG2PC (REG_BASE + REG_OFFSET_BG2PC)
+#define REG_ADDR_BG2PD (REG_BASE + REG_OFFSET_BG2PD)
+#define REG_ADDR_BG2X (REG_BASE + REG_OFFSET_BG2X)
+#define REG_ADDR_BG2X_L (REG_BASE + REG_OFFSET_BG2X_L)
+#define REG_ADDR_BG2X_H (REG_BASE + REG_OFFSET_BG2X_H)
+#define REG_ADDR_BG2Y (REG_BASE + REG_OFFSET_BG2Y)
+#define REG_ADDR_BG2Y_L (REG_BASE + REG_OFFSET_BG2Y_L)
+#define REG_ADDR_BG2Y_H (REG_BASE + REG_OFFSET_BG2Y_H)
+#define REG_ADDR_BG3PA (REG_BASE + REG_OFFSET_BG3PA)
+#define REG_ADDR_BG3PB (REG_BASE + REG_OFFSET_BG3PB)
+#define REG_ADDR_BG3PC (REG_BASE + REG_OFFSET_BG3PC)
+#define REG_ADDR_BG3PD (REG_BASE + REG_OFFSET_BG3PD)
+#define REG_ADDR_BG3X (REG_BASE + REG_OFFSET_BG3X)
+#define REG_ADDR_BG3X_L (REG_BASE + REG_OFFSET_BG3X_L)
+#define REG_ADDR_BG3X_H (REG_BASE + REG_OFFSET_BG3X_H)
+#define REG_ADDR_BG3Y (REG_BASE + REG_OFFSET_BG3Y)
+#define REG_ADDR_BG3Y_L (REG_BASE + REG_OFFSET_BG3Y_L)
+#define REG_ADDR_BG3Y_H (REG_BASE + REG_OFFSET_BG3Y_H)
+#define REG_ADDR_WIN0H (REG_BASE + REG_OFFSET_WIN0H)
+#define REG_ADDR_WIN1H (REG_BASE + REG_OFFSET_WIN1H)
+#define REG_ADDR_WIN0V (REG_BASE + REG_OFFSET_WIN0V)
+#define REG_ADDR_WIN1V (REG_BASE + REG_OFFSET_WIN1V)
+#define REG_ADDR_WININ (REG_BASE + REG_OFFSET_WININ)
+#define REG_ADDR_WINOUT (REG_BASE + REG_OFFSET_WINOUT)
+#define REG_ADDR_MOSAIC (REG_BASE + REG_OFFSET_MOSAIC)
+#define REG_ADDR_BLDCNT (REG_BASE + REG_OFFSET_BLDCNT)
+#define REG_ADDR_BLDALPHA (REG_BASE + REG_OFFSET_BLDALPHA)
+#define REG_ADDR_BLDY (REG_BASE + REG_OFFSET_BLDY)
#define REG_ADDR_SOUND1CNT_L (REG_BASE + REG_OFFSET_SOUND1CNT_L)
-#define REG_ADDR_NR10 (REG_BASE + REG_OFFSET_NR10)
+#define REG_ADDR_NR10 (REG_BASE + REG_OFFSET_NR10)
#define REG_ADDR_SOUND1CNT_H (REG_BASE + REG_OFFSET_SOUND1CNT_H)
-#define REG_ADDR_NR11 (REG_BASE + REG_OFFSET_NR11)
-#define REG_ADDR_NR12 (REG_BASE + REG_OFFSET_NR12)
+#define REG_ADDR_NR11 (REG_BASE + REG_OFFSET_NR11)
+#define REG_ADDR_NR12 (REG_BASE + REG_OFFSET_NR12)
#define REG_ADDR_SOUND1CNT_X (REG_BASE + REG_OFFSET_SOUND1CNT_X)
-#define REG_ADDR_NR13 (REG_BASE + REG_OFFSET_NR13)
-#define REG_ADDR_NR14 (REG_BASE + REG_OFFSET_NR14)
+#define REG_ADDR_NR13 (REG_BASE + REG_OFFSET_NR13)
+#define REG_ADDR_NR14 (REG_BASE + REG_OFFSET_NR14)
#define REG_ADDR_SOUND2CNT_L (REG_BASE + REG_OFFSET_SOUND2CNT_L)
-#define REG_ADDR_NR21 (REG_BASE + REG_OFFSET_NR21)
-#define REG_ADDR_NR22 (REG_BASE + REG_OFFSET_NR22)
+#define REG_ADDR_NR21 (REG_BASE + REG_OFFSET_NR21)
+#define REG_ADDR_NR22 (REG_BASE + REG_OFFSET_NR22)
#define REG_ADDR_SOUND2CNT_H (REG_BASE + REG_OFFSET_SOUND2CNT_H)
-#define REG_ADDR_NR23 (REG_BASE + REG_OFFSET_NR23)
-#define REG_ADDR_NR24 (REG_BASE + REG_OFFSET_NR24)
+#define REG_ADDR_NR23 (REG_BASE + REG_OFFSET_NR23)
+#define REG_ADDR_NR24 (REG_BASE + REG_OFFSET_NR24)
#define REG_ADDR_SOUND3CNT_L (REG_BASE + REG_OFFSET_SOUND3CNT_L)
-#define REG_ADDR_NR30 (REG_BASE + REG_OFFSET_NR30)
+#define REG_ADDR_NR30 (REG_BASE + REG_OFFSET_NR30)
#define REG_ADDR_SOUND3CNT_H (REG_BASE + REG_OFFSET_SOUND3CNT_H)
-#define REG_ADDR_NR31 (REG_BASE + REG_OFFSET_NR31)
-#define REG_ADDR_NR32 (REG_BASE + REG_OFFSET_NR32)
+#define REG_ADDR_NR31 (REG_BASE + REG_OFFSET_NR31)
+#define REG_ADDR_NR32 (REG_BASE + REG_OFFSET_NR32)
#define REG_ADDR_SOUND3CNT_X (REG_BASE + REG_OFFSET_SOUND3CNT_X)
-#define REG_ADDR_NR33 (REG_BASE + REG_OFFSET_NR33)
-#define REG_ADDR_NR34 (REG_BASE + REG_OFFSET_NR34)
+#define REG_ADDR_NR33 (REG_BASE + REG_OFFSET_NR33)
+#define REG_ADDR_NR34 (REG_BASE + REG_OFFSET_NR34)
#define REG_ADDR_SOUND4CNT_L (REG_BASE + REG_OFFSET_SOUND4CNT_L)
-#define REG_ADDR_NR41 (REG_BASE + REG_OFFSET_NR41)
-#define REG_ADDR_NR42 (REG_BASE + REG_OFFSET_NR42)
+#define REG_ADDR_NR41 (REG_BASE + REG_OFFSET_NR41)
+#define REG_ADDR_NR42 (REG_BASE + REG_OFFSET_NR42)
#define REG_ADDR_SOUND4CNT_H (REG_BASE + REG_OFFSET_SOUND4CNT_H)
-#define REG_ADDR_NR43 (REG_BASE + REG_OFFSET_NR43)
-#define REG_ADDR_NR44 (REG_BASE + REG_OFFSET_NR44)
-#define REG_ADDR_SOUNDCNT_L (REG_BASE + REG_OFFSET_SOUNDCNT_L)
-#define REG_ADDR_NR50 (REG_BASE + REG_OFFSET_NR50)
-#define REG_ADDR_NR51 (REG_BASE + REG_OFFSET_NR51)
-#define REG_ADDR_SOUNDCNT_H (REG_BASE + REG_OFFSET_SOUNDCNT_H)
-#define REG_ADDR_SOUNDCNT_X (REG_BASE + REG_OFFSET_SOUNDCNT_X)
-#define REG_ADDR_NR52 (REG_BASE + REG_OFFSET_NR52)
-#define REG_ADDR_SOUNDBIAS (REG_BASE + REG_OFFSET_SOUNDBIAS)
+#define REG_ADDR_NR43 (REG_BASE + REG_OFFSET_NR43)
+#define REG_ADDR_NR44 (REG_BASE + REG_OFFSET_NR44)
+#define REG_ADDR_SOUNDCNT_L (REG_BASE + REG_OFFSET_SOUNDCNT_L)
+#define REG_ADDR_NR50 (REG_BASE + REG_OFFSET_NR50)
+#define REG_ADDR_NR51 (REG_BASE + REG_OFFSET_NR51)
+#define REG_ADDR_SOUNDCNT_H (REG_BASE + REG_OFFSET_SOUNDCNT_H)
+#define REG_ADDR_SOUNDCNT_X (REG_BASE + REG_OFFSET_SOUNDCNT_X)
+#define REG_ADDR_NR52 (REG_BASE + REG_OFFSET_NR52)
+#define REG_ADDR_SOUNDBIAS (REG_BASE + REG_OFFSET_SOUNDBIAS)
#define REG_ADDR_SOUNDBIAS_L (REG_BASE + REG_OFFSET_SOUNDBIAS_L)
#define REG_ADDR_SOUNDBIAS_H (REG_BASE + REG_OFFSET_SOUNDBIAS_H)
-#define REG_ADDR_WAVE_RAM0 (REG_BASE + REG_OFFSET_WAVE_RAM0)
-#define REG_ADDR_WAVE_RAM1 (REG_BASE + REG_OFFSET_WAVE_RAM1)
-#define REG_ADDR_WAVE_RAM2 (REG_BASE + REG_OFFSET_WAVE_RAM2)
-#define REG_ADDR_WAVE_RAM3 (REG_BASE + REG_OFFSET_WAVE_RAM3)
-#define REG_ADDR_FIFO_A (REG_BASE + REG_OFFSET_FIFO_A)
-#define REG_ADDR_FIFO_B (REG_BASE + REG_OFFSET_FIFO_B)
-
-#define REG_ADDR_DMA0 (REG_BASE + REG_OFFSET_DMA0)
-#define REG_ADDR_DMA0SAD (REG_BASE + REG_OFFSET_DMA0SAD)
-#define REG_ADDR_DMA0DAD (REG_BASE + REG_OFFSET_DMA0DAD)
-#define REG_ADDR_DMA0CNT (REG_BASE + REG_OFFSET_DMA0CNT)
-#define REG_ADDR_DMA0CNT_L (REG_BASE + REG_OFFSET_DMA0CNT_L)
-#define REG_ADDR_DMA0CNT_H (REG_BASE + REG_OFFSET_DMA0CNT_H)
-#define REG_ADDR_DMA1 (REG_BASE + REG_OFFSET_DMA1)
-#define REG_ADDR_DMA1SAD (REG_BASE + REG_OFFSET_DMA1SAD)
-#define REG_ADDR_DMA1DAD (REG_BASE + REG_OFFSET_DMA1DAD)
-#define REG_ADDR_DMA1CNT (REG_BASE + REG_OFFSET_DMA1CNT)
-#define REG_ADDR_DMA1CNT_L (REG_BASE + REG_OFFSET_DMA1CNT_L)
-#define REG_ADDR_DMA1CNT_H (REG_BASE + REG_OFFSET_DMA1CNT_H)
-#define REG_ADDR_DMA2 (REG_BASE + REG_OFFSET_DMA2)
-#define REG_ADDR_DMA2SAD (REG_BASE + REG_OFFSET_DMA2SAD)
-#define REG_ADDR_DMA2DAD (REG_BASE + REG_OFFSET_DMA2DAD)
-#define REG_ADDR_DMA2CNT (REG_BASE + REG_OFFSET_DMA2CNT)
-#define REG_ADDR_DMA2CNT_L (REG_BASE + REG_OFFSET_DMA2CNT_L)
-#define REG_ADDR_DMA2CNT_H (REG_BASE + REG_OFFSET_DMA2CNT_H)
-#define REG_ADDR_DMA3 (REG_BASE + REG_OFFSET_DMA3)
-#define REG_ADDR_DMA3SAD (REG_BASE + REG_OFFSET_DMA3SAD)
-#define REG_ADDR_DMA3DAD (REG_BASE + REG_OFFSET_DMA3DAD)
-#define REG_ADDR_DMA3CNT (REG_BASE + REG_OFFSET_DMA3CNT)
-#define REG_ADDR_DMA3CNT_L (REG_BASE + REG_OFFSET_DMA3CNT_L)
-#define REG_ADDR_DMA3CNT_H (REG_BASE + REG_OFFSET_DMA3CNT_H)
-
-#define REG_ADDR_TMCNT (REG_BASE + REG_OFFSET_TMCNT)
-#define REG_ADDR_TMCNT_L (REG_BASE + REG_OFFSET_TMCNT_L)
-#define REG_ADDR_TMCNT_H (REG_BASE + REG_OFFSET_TMCNT_H)
-#define REG_ADDR_TM0CNT (REG_BASE + REG_OFFSET_TM0CNT)
-#define REG_ADDR_TM0CNT_L (REG_BASE + REG_OFFSET_TM0CNT_L)
-#define REG_ADDR_TM0CNT_H (REG_BASE + REG_OFFSET_TM0CNT_H)
-#define REG_ADDR_TM1CNT (REG_BASE + REG_OFFSET_TM1CNT)
-#define REG_ADDR_TM1CNT_L (REG_BASE + REG_OFFSET_TM1CNT_L)
-#define REG_ADDR_TM1CNT_H (REG_BASE + REG_OFFSET_TM1CNT_H)
-#define REG_ADDR_TM2CNT (REG_BASE + REG_OFFSET_TM2CNT)
-#define REG_ADDR_TM2CNT_L (REG_BASE + REG_OFFSET_TM2CNT_L)
-#define REG_ADDR_TM2CNT_H (REG_BASE + REG_OFFSET_TM2CNT_H)
-#define REG_ADDR_TM3CNT (REG_BASE + REG_OFFSET_TM3CNT)
-#define REG_ADDR_TM3CNT_L (REG_BASE + REG_OFFSET_TM3CNT_L)
-#define REG_ADDR_TM3CNT_H (REG_BASE + REG_OFFSET_TM3CNT_H)
-
-#define REG_ADDR_SIOCNT (REG_BASE + REG_OFFSET_SIOCNT)
-#define REG_ADDR_SIODATA8 (REG_BASE + REG_OFFSET_SIODATA8)
-#define REG_ADDR_SIODATA32 (REG_BASE + REG_OFFSET_SIODATA32)
+#define REG_ADDR_WAVE_RAM0 (REG_BASE + REG_OFFSET_WAVE_RAM0)
+#define REG_ADDR_WAVE_RAM1 (REG_BASE + REG_OFFSET_WAVE_RAM1)
+#define REG_ADDR_WAVE_RAM2 (REG_BASE + REG_OFFSET_WAVE_RAM2)
+#define REG_ADDR_WAVE_RAM3 (REG_BASE + REG_OFFSET_WAVE_RAM3)
+#define REG_ADDR_FIFO_A (REG_BASE + REG_OFFSET_FIFO_A)
+#define REG_ADDR_FIFO_B (REG_BASE + REG_OFFSET_FIFO_B)
+
+#define REG_ADDR_DMA0 (REG_BASE + REG_OFFSET_DMA0)
+#define REG_ADDR_DMA0SAD (REG_BASE + REG_OFFSET_DMA0SAD)
+#define REG_ADDR_DMA0DAD (REG_BASE + REG_OFFSET_DMA0DAD)
+#define REG_ADDR_DMA0CNT (REG_BASE + REG_OFFSET_DMA0CNT)
+#define REG_ADDR_DMA0CNT_L (REG_BASE + REG_OFFSET_DMA0CNT_L)
+#define REG_ADDR_DMA0CNT_H (REG_BASE + REG_OFFSET_DMA0CNT_H)
+#define REG_ADDR_DMA1 (REG_BASE + REG_OFFSET_DMA1)
+#define REG_ADDR_DMA1SAD (REG_BASE + REG_OFFSET_DMA1SAD)
+#define REG_ADDR_DMA1DAD (REG_BASE + REG_OFFSET_DMA1DAD)
+#define REG_ADDR_DMA1CNT (REG_BASE + REG_OFFSET_DMA1CNT)
+#define REG_ADDR_DMA1CNT_L (REG_BASE + REG_OFFSET_DMA1CNT_L)
+#define REG_ADDR_DMA1CNT_H (REG_BASE + REG_OFFSET_DMA1CNT_H)
+#define REG_ADDR_DMA2 (REG_BASE + REG_OFFSET_DMA2)
+#define REG_ADDR_DMA2SAD (REG_BASE + REG_OFFSET_DMA2SAD)
+#define REG_ADDR_DMA2DAD (REG_BASE + REG_OFFSET_DMA2DAD)
+#define REG_ADDR_DMA2CNT (REG_BASE + REG_OFFSET_DMA2CNT)
+#define REG_ADDR_DMA2CNT_L (REG_BASE + REG_OFFSET_DMA2CNT_L)
+#define REG_ADDR_DMA2CNT_H (REG_BASE + REG_OFFSET_DMA2CNT_H)
+#define REG_ADDR_DMA3 (REG_BASE + REG_OFFSET_DMA3)
+#define REG_ADDR_DMA3SAD (REG_BASE + REG_OFFSET_DMA3SAD)
+#define REG_ADDR_DMA3DAD (REG_BASE + REG_OFFSET_DMA3DAD)
+#define REG_ADDR_DMA3CNT (REG_BASE + REG_OFFSET_DMA3CNT)
+#define REG_ADDR_DMA3CNT_L (REG_BASE + REG_OFFSET_DMA3CNT_L)
+#define REG_ADDR_DMA3CNT_H (REG_BASE + REG_OFFSET_DMA3CNT_H)
+
+#define REG_ADDR_TMCNT (REG_BASE + REG_OFFSET_TMCNT)
+#define REG_ADDR_TMCNT_L (REG_BASE + REG_OFFSET_TMCNT_L)
+#define REG_ADDR_TMCNT_H (REG_BASE + REG_OFFSET_TMCNT_H)
+#define REG_ADDR_TM0CNT (REG_BASE + REG_OFFSET_TM0CNT)
+#define REG_ADDR_TM0CNT_L (REG_BASE + REG_OFFSET_TM0CNT_L)
+#define REG_ADDR_TM0CNT_H (REG_BASE + REG_OFFSET_TM0CNT_H)
+#define REG_ADDR_TM1CNT (REG_BASE + REG_OFFSET_TM1CNT)
+#define REG_ADDR_TM1CNT_L (REG_BASE + REG_OFFSET_TM1CNT_L)
+#define REG_ADDR_TM1CNT_H (REG_BASE + REG_OFFSET_TM1CNT_H)
+#define REG_ADDR_TM2CNT (REG_BASE + REG_OFFSET_TM2CNT)
+#define REG_ADDR_TM2CNT_L (REG_BASE + REG_OFFSET_TM2CNT_L)
+#define REG_ADDR_TM2CNT_H (REG_BASE + REG_OFFSET_TM2CNT_H)
+#define REG_ADDR_TM3CNT (REG_BASE + REG_OFFSET_TM3CNT)
+#define REG_ADDR_TM3CNT_L (REG_BASE + REG_OFFSET_TM3CNT_L)
+#define REG_ADDR_TM3CNT_H (REG_BASE + REG_OFFSET_TM3CNT_H)
+
+#define REG_ADDR_SIOCNT (REG_BASE + REG_OFFSET_SIOCNT)
+#define REG_ADDR_SIODATA8 (REG_BASE + REG_OFFSET_SIODATA8)
+#define REG_ADDR_SIODATA32 (REG_BASE + REG_OFFSET_SIODATA32)
#define REG_ADDR_SIOMLT_SEND (REG_BASE + REG_OFFSET_SIOMLT_SEND)
#define REG_ADDR_SIOMLT_RECV (REG_BASE + REG_OFFSET_SIOMLT_RECV)
-#define REG_ADDR_SIOMULTI0 (REG_BASE + REG_OFFSET_SIOMULTI0)
-#define REG_ADDR_SIOMULTI1 (REG_BASE + REG_OFFSET_SIOMULTI1)
-#define REG_ADDR_SIOMULTI2 (REG_BASE + REG_OFFSET_SIOMULTI2)
-#define REG_ADDR_SIOMULTI3 (REG_BASE + REG_OFFSET_SIOMULTI3)
-
-#define REG_ADDR_KEYINPUT (REG_BASE + REG_OFFSET_KEYINPUT)
-#define REG_ADDR_KEYCNT (REG_BASE + REG_OFFSET_KEYCNT)
-
-#define REG_ADDR_RCNT (REG_BASE + REG_OFFSET_RCNT)
-
-#define REG_ADDR_JOYCNT (REG_BASE + REG_OFFSET_JOYCNT)
-#define REG_ADDR_JOYSTAT (REG_BASE + REG_OFFSET_JOYSTAT)
-#define REG_ADDR_JOY_RECV (REG_BASE + REG_OFFSET_JOY_RECV)
-#define REG_ADDR_JOY_RECV_L (REG_BASE + REG_OFFSET_JOY_RECV_L)
-#define REG_ADDR_JOY_RECV_H (REG_BASE + REG_OFFSET_JOY_RECV_H)
-#define REG_ADDR_JOY_TRANS (REG_BASE + REG_OFFSET_JOY_TRANS)
+#define REG_ADDR_SIOMULTI0 (REG_BASE + REG_OFFSET_SIOMULTI0)
+#define REG_ADDR_SIOMULTI1 (REG_BASE + REG_OFFSET_SIOMULTI1)
+#define REG_ADDR_SIOMULTI2 (REG_BASE + REG_OFFSET_SIOMULTI2)
+#define REG_ADDR_SIOMULTI3 (REG_BASE + REG_OFFSET_SIOMULTI3)
+
+#define REG_ADDR_KEYINPUT (REG_BASE + REG_OFFSET_KEYINPUT)
+#define REG_ADDR_KEYCNT (REG_BASE + REG_OFFSET_KEYCNT)
+
+#define REG_ADDR_RCNT (REG_BASE + REG_OFFSET_RCNT)
+
+#define REG_ADDR_JOYCNT (REG_BASE + REG_OFFSET_JOYCNT)
+#define REG_ADDR_JOYSTAT (REG_BASE + REG_OFFSET_JOYSTAT)
+#define REG_ADDR_JOY_RECV (REG_BASE + REG_OFFSET_JOY_RECV)
+#define REG_ADDR_JOY_RECV_L (REG_BASE + REG_OFFSET_JOY_RECV_L)
+#define REG_ADDR_JOY_RECV_H (REG_BASE + REG_OFFSET_JOY_RECV_H)
+#define REG_ADDR_JOY_TRANS (REG_BASE + REG_OFFSET_JOY_TRANS)
#define REG_ADDR_JOY_TRANS_L (REG_BASE + REG_OFFSET_JOY_TRANS_L)
#define REG_ADDR_JOY_TRANS_H (REG_BASE + REG_OFFSET_JOY_TRANS_H)
-#define REG_ADDR_IME (REG_BASE + REG_OFFSET_IME)
-#define REG_ADDR_IE (REG_BASE + REG_OFFSET_IE)
-#define REG_ADDR_IF (REG_BASE + REG_OFFSET_IF)
+#define REG_ADDR_IME (REG_BASE + REG_OFFSET_IME)
+#define REG_ADDR_IE (REG_BASE + REG_OFFSET_IE)
+#define REG_ADDR_IF (REG_BASE + REG_OFFSET_IF)
-#define REG_ADDR_WAITCNT (REG_BASE + REG_OFFSET_WAITCNT)
+#define REG_ADDR_WAITCNT (REG_BASE + REG_OFFSET_WAITCNT)
// I/O registers
-#define REG_DISPCNT (*(vu16 *)REG_ADDR_DISPCNT)
-#define REG_DISPSTAT (*(vu16 *)REG_ADDR_DISPSTAT)
-#define REG_VCOUNT (*(vu16 *)REG_ADDR_VCOUNT)
-#define REG_BG0CNT (*(vu16 *)REG_ADDR_BG0CNT)
-#define REG_BG1CNT (*(vu16 *)REG_ADDR_BG1CNT)
-#define REG_BG2CNT (*(vu16 *)REG_ADDR_BG2CNT)
-#define REG_BG3CNT (*(vu16 *)REG_ADDR_BG3CNT)
-#define REG_BG0HOFS (*(vu16 *)REG_ADDR_BG0HOFS)
-#define REG_BG0VOFS (*(vu16 *)REG_ADDR_BG0VOFS)
-#define REG_BG1HOFS (*(vu16 *)REG_ADDR_BG1HOFS)
-#define REG_BG1VOFS (*(vu16 *)REG_ADDR_BG1VOFS)
-#define REG_BG2HOFS (*(vu16 *)REG_ADDR_BG2HOFS)
-#define REG_BG2VOFS (*(vu16 *)REG_ADDR_BG2VOFS)
-#define REG_BG3HOFS (*(vu16 *)REG_ADDR_BG3HOFS)
-#define REG_BG3VOFS (*(vu16 *)REG_ADDR_BG3VOFS)
-#define REG_BG2PA (*(vu16 *)REG_ADDR_BG2PA)
-#define REG_BG2PB (*(vu16 *)REG_ADDR_BG2PB)
-#define REG_BG2PC (*(vu16 *)REG_ADDR_BG2PC)
-#define REG_BG2PD (*(vu16 *)REG_ADDR_BG2PD)
-#define REG_BG2X (*(vu32 *)REG_ADDR_BG2X)
-#define REG_BG2X_L (*(vu16 *)REG_ADDR_BG2X_L)
-#define REG_BG2X_H (*(vu16 *)REG_ADDR_BG2X_H)
-#define REG_BG2Y (*(vu32 *)REG_ADDR_BG2Y)
-#define REG_BG2Y_L (*(vu16 *)REG_ADDR_BG2Y_L)
-#define REG_BG2Y_H (*(vu16 *)REG_ADDR_BG2Y_H)
-#define REG_BG3PA (*(vu16 *)REG_ADDR_BG3PA)
-#define REG_BG3PB (*(vu16 *)REG_ADDR_BG3PB)
-#define REG_BG3PC (*(vu16 *)REG_ADDR_BG3PC)
-#define REG_BG3PD (*(vu16 *)REG_ADDR_BG3PD)
-#define REG_BG3X (*(vu32 *)REG_ADDR_BG3X)
-#define REG_BG3X_L (*(vu16 *)REG_ADDR_BG3X_L)
-#define REG_BG3X_H (*(vu16 *)REG_ADDR_BG3X_H)
-#define REG_BG3Y (*(vu32 *)REG_ADDR_BG3Y)
-#define REG_BG3Y_L (*(vu16 *)REG_ADDR_BG3Y_L)
-#define REG_BG3Y_H (*(vu16 *)REG_ADDR_BG3Y_H)
-#define REG_WIN0H (*(vu16 *)REG_ADDR_WIN0H)
-#define REG_WIN1H (*(vu16 *)REG_ADDR_WIN1H)
-#define REG_WIN0V (*(vu16 *)REG_ADDR_WIN0V)
-#define REG_WIN1V (*(vu16 *)REG_ADDR_WIN1V)
-#define REG_WININ (*(vu16 *)REG_ADDR_WININ)
-#define REG_WINOUT (*(vu16 *)REG_ADDR_WINOUT)
-#define REG_MOSAIC (*(vu16 *)REG_ADDR_MOSAIC)
-#define REG_BLDCNT (*(vu16 *)REG_ADDR_BLDCNT)
-#define REG_BLDALPHA (*(vu16 *)REG_ADDR_BLDALPHA)
-#define REG_BLDY (*(vu16 *)REG_ADDR_BLDY)
-
-#define REG_SOUND1CNT_L (*(vu16 *)REG_ADDR_SOUND1CNT_L)
-#define REG_NR10 (*(vu8 *)REG_ADDR_NR10)
-#define REG_SOUND1CNT_H (*(vu16 *)REG_ADDR_SOUND1CNT_H)
-#define REG_NR11 (*(vu8 *)REG_ADDR_NR11)
-#define REG_NR12 (*(vu8 *)REG_ADDR_NR12)
-#define REG_SOUND1CNT_X (*(vu16 *)REG_ADDR_SOUND1CNT_X)
-#define REG_NR13 (*(vu8 *)REG_ADDR_NR13)
-#define REG_NR14 (*(vu8 *)REG_ADDR_NR14)
-#define REG_SOUND2CNT_L (*(vu16 *)REG_ADDR_SOUND2CNT_L)
-#define REG_NR21 (*(vu8 *)REG_ADDR_NR21)
-#define REG_NR22 (*(vu8 *)REG_ADDR_NR22)
-#define REG_SOUND2CNT_H (*(vu16 *)REG_ADDR_SOUND2CNT_H)
-#define REG_NR23 (*(vu8 *)REG_ADDR_NR23)
-#define REG_NR24 (*(vu8 *)REG_ADDR_NR24)
-#define REG_SOUND3CNT_L (*(vu16 *)REG_ADDR_SOUND3CNT_L)
-#define REG_NR30 (*(vu8 *)REG_ADDR_NR30)
-#define REG_SOUND3CNT_H (*(vu16 *)REG_ADDR_SOUND3CNT_H)
-#define REG_NR31 (*(vu8 *)REG_ADDR_NR31)
-#define REG_NR32 (*(vu8 *)REG_ADDR_NR32)
-#define REG_SOUND3CNT_X (*(vu16 *)REG_ADDR_SOUND3CNT_X)
-#define REG_NR33 (*(vu8 *)REG_ADDR_NR33)
-#define REG_NR34 (*(vu8 *)REG_ADDR_NR34)
-#define REG_SOUND4CNT_L (*(vu16 *)REG_ADDR_SOUND4CNT_L)
-#define REG_NR41 (*(vu8 *)REG_ADDR_NR41)
-#define REG_NR42 (*(vu8 *)REG_ADDR_NR42)
-#define REG_SOUND4CNT_H (*(vu16 *)REG_ADDR_SOUND4CNT_H)
-#define REG_NR43 (*(vu8 *)REG_ADDR_NR43)
-#define REG_NR44 (*(vu8 *)REG_ADDR_NR44)
-#define REG_SOUNDCNT_L (*(vu16 *)REG_ADDR_SOUNDCNT_L)
-#define REG_NR50 (*(vu8 *)REG_ADDR_NR50)
-#define REG_NR51 (*(vu8 *)REG_ADDR_NR51)
-#define REG_SOUNDCNT_H (*(vu16 *)REG_ADDR_SOUNDCNT_H)
-#define REG_SOUNDCNT_X (*(vu16 *)REG_ADDR_SOUNDCNT_X)
-#define REG_NR52 (*(vu8 *)REG_ADDR_NR52)
-#define REG_SOUNDBIAS (*(vu16 *)REG_ADDR_SOUNDBIAS)
-#define REG_SOUNDBIAS_L (*(vu8 *)REG_ADDR_SOUNDBIAS_L)
-#define REG_SOUNDBIAS_H (*(vu8 *)REG_ADDR_SOUNDBIAS_H)
-#define REG_WAVE_RAM0 (*(vu32 *)REG_ADDR_WAVE_RAM0)
-#define REG_WAVE_RAM1 (*(vu32 *)REG_ADDR_WAVE_RAM1)
-#define REG_WAVE_RAM2 (*(vu32 *)REG_ADDR_WAVE_RAM2)
-#define REG_WAVE_RAM3 (*(vu32 *)REG_ADDR_WAVE_RAM3)
-#define REG_FIFO_A (*(vu32 *)REG_ADDR_FIFO_A)
-#define REG_FIFO_B (*(vu32 *)REG_ADDR_FIFO_B)
-
-#define REG_DMA0SAD (*(vu32 *)REG_ADDR_DMA0SAD)
-#define REG_DMA0DAD (*(vu32 *)REG_ADDR_DMA0DAD)
-#define REG_DMA0CNT (*(vu32 *)REG_ADDR_DMA0CNT)
-#define REG_DMA0CNT_L (*(vu16 *)REG_ADDR_DMA0CNT_L)
-#define REG_DMA0CNT_H (*(vu16 *)REG_ADDR_DMA0CNT_H)
-
-#define REG_DMA1SAD (*(vu32 *)REG_ADDR_DMA1SAD)
-#define REG_DMA1DAD (*(vu32 *)REG_ADDR_DMA1DAD)
-#define REG_DMA1CNT (*(vu32 *)REG_ADDR_DMA1CNT)
-#define REG_DMA1CNT_L (*(vu16 *)REG_ADDR_DMA1CNT_L)
-#define REG_DMA1CNT_H (*(vu16 *)REG_ADDR_DMA1CNT_H)
-
-#define REG_DMA2SAD (*(vu32 *)REG_ADDR_DMA2SAD)
-#define REG_DMA2DAD (*(vu32 *)REG_ADDR_DMA2DAD)
-#define REG_DMA2CNT (*(vu32 *)REG_ADDR_DMA2CNT)
-#define REG_DMA2CNT_L (*(vu16 *)REG_ADDR_DMA2CNT_L)
-#define REG_DMA2CNT_H (*(vu16 *)REG_ADDR_DMA2CNT_H)
-
-#define REG_DMA3SAD (*(vu32 *)REG_ADDR_DMA3SAD)
-#define REG_DMA3DAD (*(vu32 *)REG_ADDR_DMA3DAD)
-#define REG_DMA3CNT (*(vu32 *)REG_ADDR_DMA3CNT)
-#define REG_DMA3CNT_L (*(vu16 *)REG_ADDR_DMA3CNT_L)
-#define REG_DMA3CNT_H (*(vu16 *)REG_ADDR_DMA3CNT_H)
-
-#define REG_TMCNT(n) (*(vu32 *)(REG_ADDR_TMCNT + ((n) * 4)))
-#define REG_TMCNT_L(n) (*(vu16 *)(REG_ADDR_TMCNT_L + ((n) * 4)))
-#define REG_TMCNT_H(n) (*(vu16 *)(REG_ADDR_TMCNT_H + ((n) * 4)))
-#define REG_TM0CNT (*(vu32 *)REG_ADDR_TM0CNT)
-#define REG_TM0CNT_L (*(vu16 *)REG_ADDR_TM0CNT_L)
-#define REG_TM0CNT_H (*(vu16 *)REG_ADDR_TM0CNT_H)
-#define REG_TM1CNT (*(vu32 *)REG_ADDR_TM1CNT)
-#define REG_TM1CNT_L (*(vu16 *)REG_ADDR_TM1CNT_L)
-#define REG_TM1CNT_H (*(vu16 *)REG_ADDR_TM1CNT_H)
-#define REG_TM2CNT (*(vu32 *)REG_ADDR_TM2CNT)
-#define REG_TM2CNT_L (*(vu16 *)REG_ADDR_TM2CNT_L)
-#define REG_TM2CNT_H (*(vu16 *)REG_ADDR_TM2CNT_H)
-#define REG_TM3CNT (*(vu32 *)REG_ADDR_TM3CNT)
-#define REG_TM3CNT_L (*(vu16 *)REG_ADDR_TM3CNT_L)
-#define REG_TM3CNT_H (*(vu16 *)REG_ADDR_TM3CNT_H)
-
-#define REG_SIOCNT (*(vu16 *)REG_ADDR_SIOCNT)
-#define REG_SIODATA8 (*(vu16 *)REG_ADDR_SIODATA8)
-#define REG_SIODATA32 (*(vu32 *)REG_ADDR_SIODATA32)
-#define REG_SIOMLT_SEND (*(vu16 *)REG_ADDR_SIOMLT_SEND)
-#define REG_SIOMLT_RECV (*(vu64 *)REG_ADDR_SIOMLT_RECV)
-#define REG_SIOMULTI0 (*(vu16 *)REG_ADDR_SIOMULTI0)
-#define REG_SIOMULTI1 (*(vu16 *)REG_ADDR_SIOMULTI1)
-#define REG_SIOMULTI2 (*(vu16 *)REG_ADDR_SIOMULTI2)
-#define REG_SIOMULTI3 (*(vu16 *)REG_ADDR_SIOMULTI3)
-
-#define REG_KEYINPUT (*(vu16 *)REG_ADDR_KEYINPUT)
-#define REG_KEYCNT (*(vu16 *)REG_ADDR_KEYCNT)
-
-#define REG_RCNT (*(vu16 *)REG_ADDR_RCNT)
-
-#define REG_IME (*(vu16 *)REG_ADDR_IME)
-#define REG_IE (*(vu16 *)REG_ADDR_IE)
-#define REG_IF (*(vu16 *)REG_ADDR_IF)
-
-#define REG_WAITCNT (*(vu16 *)REG_ADDR_WAITCNT)
+#define REG_DISPCNT (*(vu16*)REG_ADDR_DISPCNT)
+#define REG_DISPSTAT (*(vu16*)REG_ADDR_DISPSTAT)
+#define REG_VCOUNT (*(vu16*)REG_ADDR_VCOUNT)
+#define REG_BG0CNT (*(vu16*)REG_ADDR_BG0CNT)
+#define REG_BG1CNT (*(vu16*)REG_ADDR_BG1CNT)
+#define REG_BG2CNT (*(vu16*)REG_ADDR_BG2CNT)
+#define REG_BG3CNT (*(vu16*)REG_ADDR_BG3CNT)
+#define REG_BG0HOFS (*(vu16*)REG_ADDR_BG0HOFS)
+#define REG_BG0VOFS (*(vu16*)REG_ADDR_BG0VOFS)
+#define REG_BG1HOFS (*(vu16*)REG_ADDR_BG1HOFS)
+#define REG_BG1VOFS (*(vu16*)REG_ADDR_BG1VOFS)
+#define REG_BG2HOFS (*(vu16*)REG_ADDR_BG2HOFS)
+#define REG_BG2VOFS (*(vu16*)REG_ADDR_BG2VOFS)
+#define REG_BG3HOFS (*(vu16*)REG_ADDR_BG3HOFS)
+#define REG_BG3VOFS (*(vu16*)REG_ADDR_BG3VOFS)
+#define REG_BG2PA (*(vu16*)REG_ADDR_BG2PA)
+#define REG_BG2PB (*(vu16*)REG_ADDR_BG2PB)
+#define REG_BG2PC (*(vu16*)REG_ADDR_BG2PC)
+#define REG_BG2PD (*(vu16*)REG_ADDR_BG2PD)
+#define REG_BG2X (*(vu32*)REG_ADDR_BG2X)
+#define REG_BG2X_L (*(vu16*)REG_ADDR_BG2X_L)
+#define REG_BG2X_H (*(vu16*)REG_ADDR_BG2X_H)
+#define REG_BG2Y (*(vu32*)REG_ADDR_BG2Y)
+#define REG_BG2Y_L (*(vu16*)REG_ADDR_BG2Y_L)
+#define REG_BG2Y_H (*(vu16*)REG_ADDR_BG2Y_H)
+#define REG_BG3PA (*(vu16*)REG_ADDR_BG3PA)
+#define REG_BG3PB (*(vu16*)REG_ADDR_BG3PB)
+#define REG_BG3PC (*(vu16*)REG_ADDR_BG3PC)
+#define REG_BG3PD (*(vu16*)REG_ADDR_BG3PD)
+#define REG_BG3X (*(vu32*)REG_ADDR_BG3X)
+#define REG_BG3X_L (*(vu16*)REG_ADDR_BG3X_L)
+#define REG_BG3X_H (*(vu16*)REG_ADDR_BG3X_H)
+#define REG_BG3Y (*(vu32*)REG_ADDR_BG3Y)
+#define REG_BG3Y_L (*(vu16*)REG_ADDR_BG3Y_L)
+#define REG_BG3Y_H (*(vu16*)REG_ADDR_BG3Y_H)
+#define REG_WIN0H (*(vu16*)REG_ADDR_WIN0H)
+#define REG_WIN1H (*(vu16*)REG_ADDR_WIN1H)
+#define REG_WIN0V (*(vu16*)REG_ADDR_WIN0V)
+#define REG_WIN1V (*(vu16*)REG_ADDR_WIN1V)
+#define REG_WININ (*(vu16*)REG_ADDR_WININ)
+#define REG_WINOUT (*(vu16*)REG_ADDR_WINOUT)
+#define REG_MOSAIC (*(vu16*)REG_ADDR_MOSAIC)
+#define REG_BLDCNT (*(vu16*)REG_ADDR_BLDCNT)
+#define REG_BLDALPHA (*(vu16*)REG_ADDR_BLDALPHA)
+#define REG_BLDY (*(vu16*)REG_ADDR_BLDY)
+
+#define REG_SOUND1CNT_L (*(vu16*)REG_ADDR_SOUND1CNT_L)
+#define REG_NR10 (*(vu8*)REG_ADDR_NR10)
+#define REG_SOUND1CNT_H (*(vu16*)REG_ADDR_SOUND1CNT_H)
+#define REG_NR11 (*(vu8*)REG_ADDR_NR11)
+#define REG_NR12 (*(vu8*)REG_ADDR_NR12)
+#define REG_SOUND1CNT_X (*(vu16*)REG_ADDR_SOUND1CNT_X)
+#define REG_NR13 (*(vu8*)REG_ADDR_NR13)
+#define REG_NR14 (*(vu8*)REG_ADDR_NR14)
+#define REG_SOUND2CNT_L (*(vu16*)REG_ADDR_SOUND2CNT_L)
+#define REG_NR21 (*(vu8*)REG_ADDR_NR21)
+#define REG_NR22 (*(vu8*)REG_ADDR_NR22)
+#define REG_SOUND2CNT_H (*(vu16*)REG_ADDR_SOUND2CNT_H)
+#define REG_NR23 (*(vu8*)REG_ADDR_NR23)
+#define REG_NR24 (*(vu8*)REG_ADDR_NR24)
+#define REG_SOUND3CNT_L (*(vu16*)REG_ADDR_SOUND3CNT_L)
+#define REG_NR30 (*(vu8*)REG_ADDR_NR30)
+#define REG_SOUND3CNT_H (*(vu16*)REG_ADDR_SOUND3CNT_H)
+#define REG_NR31 (*(vu8*)REG_ADDR_NR31)
+#define REG_NR32 (*(vu8*)REG_ADDR_NR32)
+#define REG_SOUND3CNT_X (*(vu16*)REG_ADDR_SOUND3CNT_X)
+#define REG_NR33 (*(vu8*)REG_ADDR_NR33)
+#define REG_NR34 (*(vu8*)REG_ADDR_NR34)
+#define REG_SOUND4CNT_L (*(vu16*)REG_ADDR_SOUND4CNT_L)
+#define REG_NR41 (*(vu8*)REG_ADDR_NR41)
+#define REG_NR42 (*(vu8*)REG_ADDR_NR42)
+#define REG_SOUND4CNT_H (*(vu16*)REG_ADDR_SOUND4CNT_H)
+#define REG_NR43 (*(vu8*)REG_ADDR_NR43)
+#define REG_NR44 (*(vu8*)REG_ADDR_NR44)
+#define REG_SOUNDCNT_L (*(vu16*)REG_ADDR_SOUNDCNT_L)
+#define REG_NR50 (*(vu8*)REG_ADDR_NR50)
+#define REG_NR51 (*(vu8*)REG_ADDR_NR51)
+#define REG_SOUNDCNT_H (*(vu16*)REG_ADDR_SOUNDCNT_H)
+#define REG_SOUNDCNT_X (*(vu16*)REG_ADDR_SOUNDCNT_X)
+#define REG_NR52 (*(vu8*)REG_ADDR_NR52)
+#define REG_SOUNDBIAS (*(vu16*)REG_ADDR_SOUNDBIAS)
+#define REG_SOUNDBIAS_L (*(vu8*)REG_ADDR_SOUNDBIAS_L)
+#define REG_SOUNDBIAS_H (*(vu8*)REG_ADDR_SOUNDBIAS_H)
+#define REG_WAVE_RAM0 (*(vu32*)REG_ADDR_WAVE_RAM0)
+#define REG_WAVE_RAM1 (*(vu32*)REG_ADDR_WAVE_RAM1)
+#define REG_WAVE_RAM2 (*(vu32*)REG_ADDR_WAVE_RAM2)
+#define REG_WAVE_RAM3 (*(vu32*)REG_ADDR_WAVE_RAM3)
+#define REG_FIFO_A (*(vu32*)REG_ADDR_FIFO_A)
+#define REG_FIFO_B (*(vu32*)REG_ADDR_FIFO_B)
+
+#define REG_DMA0SAD (*(vu32*)REG_ADDR_DMA0SAD)
+#define REG_DMA0DAD (*(vu32*)REG_ADDR_DMA0DAD)
+#define REG_DMA0CNT (*(vu32*)REG_ADDR_DMA0CNT)
+#define REG_DMA0CNT_L (*(vu16*)REG_ADDR_DMA0CNT_L)
+#define REG_DMA0CNT_H (*(vu16*)REG_ADDR_DMA0CNT_H)
+
+#define REG_DMA1SAD (*(vu32*)REG_ADDR_DMA1SAD)
+#define REG_DMA1DAD (*(vu32*)REG_ADDR_DMA1DAD)
+#define REG_DMA1CNT (*(vu32*)REG_ADDR_DMA1CNT)
+#define REG_DMA1CNT_L (*(vu16*)REG_ADDR_DMA1CNT_L)
+#define REG_DMA1CNT_H (*(vu16*)REG_ADDR_DMA1CNT_H)
+
+#define REG_DMA2SAD (*(vu32*)REG_ADDR_DMA2SAD)
+#define REG_DMA2DAD (*(vu32*)REG_ADDR_DMA2DAD)
+#define REG_DMA2CNT (*(vu32*)REG_ADDR_DMA2CNT)
+#define REG_DMA2CNT_L (*(vu16*)REG_ADDR_DMA2CNT_L)
+#define REG_DMA2CNT_H (*(vu16*)REG_ADDR_DMA2CNT_H)
+
+#define REG_DMA3SAD (*(vu32*)REG_ADDR_DMA3SAD)
+#define REG_DMA3DAD (*(vu32*)REG_ADDR_DMA3DAD)
+#define REG_DMA3CNT (*(vu32*)REG_ADDR_DMA3CNT)
+#define REG_DMA3CNT_L (*(vu16*)REG_ADDR_DMA3CNT_L)
+#define REG_DMA3CNT_H (*(vu16*)REG_ADDR_DMA3CNT_H)
+
+#define REG_TMCNT(n) (*(vu32*)(REG_ADDR_TMCNT + ((n)*4)))
+#define REG_TMCNT_L(n) (*(vu16*)(REG_ADDR_TMCNT_L + ((n)*4)))
+#define REG_TMCNT_H(n) (*(vu16*)(REG_ADDR_TMCNT_H + ((n)*4)))
+#define REG_TM0CNT (*(vu32*)REG_ADDR_TM0CNT)
+#define REG_TM0CNT_L (*(vu16*)REG_ADDR_TM0CNT_L)
+#define REG_TM0CNT_H (*(vu16*)REG_ADDR_TM0CNT_H)
+#define REG_TM1CNT (*(vu32*)REG_ADDR_TM1CNT)
+#define REG_TM1CNT_L (*(vu16*)REG_ADDR_TM1CNT_L)
+#define REG_TM1CNT_H (*(vu16*)REG_ADDR_TM1CNT_H)
+#define REG_TM2CNT (*(vu32*)REG_ADDR_TM2CNT)
+#define REG_TM2CNT_L (*(vu16*)REG_ADDR_TM2CNT_L)
+#define REG_TM2CNT_H (*(vu16*)REG_ADDR_TM2CNT_H)
+#define REG_TM3CNT (*(vu32*)REG_ADDR_TM3CNT)
+#define REG_TM3CNT_L (*(vu16*)REG_ADDR_TM3CNT_L)
+#define REG_TM3CNT_H (*(vu16*)REG_ADDR_TM3CNT_H)
+
+#define REG_SIOCNT (*(vu16*)REG_ADDR_SIOCNT)
+#define REG_SIODATA8 (*(vu16*)REG_ADDR_SIODATA8)
+#define REG_SIODATA32 (*(vu32*)REG_ADDR_SIODATA32)
+#define REG_SIOMLT_SEND (*(vu16*)REG_ADDR_SIOMLT_SEND)
+#define REG_SIOMLT_RECV (*(vu64*)REG_ADDR_SIOMLT_RECV)
+#define REG_SIOMULTI0 (*(vu16*)REG_ADDR_SIOMULTI0)
+#define REG_SIOMULTI1 (*(vu16*)REG_ADDR_SIOMULTI1)
+#define REG_SIOMULTI2 (*(vu16*)REG_ADDR_SIOMULTI2)
+#define REG_SIOMULTI3 (*(vu16*)REG_ADDR_SIOMULTI3)
+
+#define REG_KEYINPUT (*(vu16*)REG_ADDR_KEYINPUT)
+#define REG_KEYCNT (*(vu16*)REG_ADDR_KEYCNT)
+
+#define REG_RCNT (*(vu16*)REG_ADDR_RCNT)
+
+#define REG_IME (*(vu16*)REG_ADDR_IME)
+#define REG_IE (*(vu16*)REG_ADDR_IE)
+#define REG_IF (*(vu16*)REG_ADDR_IF)
+
+#define REG_WAITCNT (*(vu16*)REG_ADDR_WAITCNT)
// I/O register fields
// DISPCNT
-#define DISPCNT_MODE_0 0x0000 // BG0: text, BG1: text, BG2: text, BG3: text
-#define DISPCNT_MODE_1 0x0001 // BG0: text, BG1: text, BG2: affine, BG3: off
-#define DISPCNT_MODE_2 0x0002 // BG0: off, BG1: off, BG2: affine, BG3: affine
-#define DISPCNT_MODE_3 0x0003 // Bitmap mode, 240x160, BGR555 color
-#define DISPCNT_MODE_4 0x0004 // Bitmap mode, 240x160, 256 color palette
-#define DISPCNT_MODE_5 0x0005 // Bitmap mode, 160x128, BGR555 color
-#define DISPCNT_OBJ_1D_MAP 0x0040
+#define DISPCNT_MODE_0 0x0000 // BG0: text, BG1: text, BG2: text, BG3: text
+#define DISPCNT_MODE_1 0x0001 // BG0: text, BG1: text, BG2: affine, BG3: off
+#define DISPCNT_MODE_2 0x0002 // BG0: off, BG1: off, BG2: affine, BG3: affine
+#define DISPCNT_MODE_3 0x0003 // Bitmap mode, 240x160, BGR555 color
+#define DISPCNT_MODE_4 0x0004 // Bitmap mode, 240x160, 256 color palette
+#define DISPCNT_MODE_5 0x0005 // Bitmap mode, 160x128, BGR555 color
+#define DISPCNT_OBJ_1D_MAP 0x0040
#define DISPCNT_FORCED_BLANK 0x0080
-#define DISPCNT_BG0_ON 0x0100
-#define DISPCNT_BG1_ON 0x0200
-#define DISPCNT_BG2_ON 0x0400
-#define DISPCNT_BG3_ON 0x0800
-#define DISPCNT_BG_ALL_ON 0x0F00
-#define DISPCNT_OBJ_ON 0x1000
-#define DISPCNT_WIN0_ON 0x2000
-#define DISPCNT_WIN1_ON 0x4000
-#define DISPCNT_OBJWIN_ON 0x8000
+#define DISPCNT_BG0_ON 0x0100
+#define DISPCNT_BG1_ON 0x0200
+#define DISPCNT_BG2_ON 0x0400
+#define DISPCNT_BG3_ON 0x0800
+#define DISPCNT_BG_ALL_ON 0x0F00
+#define DISPCNT_OBJ_ON 0x1000
+#define DISPCNT_WIN0_ON 0x2000
+#define DISPCNT_WIN1_ON 0x4000
+#define DISPCNT_OBJWIN_ON 0x8000
// DISPSTAT
-#define DISPSTAT_VBLANK 0x0001 // in V-Blank
-#define DISPSTAT_HBLANK 0x0002 // in H-Blank
-#define DISPSTAT_VCOUNT 0x0004 // V-Count match
+#define DISPSTAT_VBLANK 0x0001 // in V-Blank
+#define DISPSTAT_HBLANK 0x0002 // in H-Blank
+#define DISPSTAT_VCOUNT 0x0004 // V-Count match
#define DISPSTAT_VBLANK_INTR 0x0008 // V-Blank interrupt enabled
#define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled
#define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled
// BGCNT
-#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs.
-#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data.
-#define BGCNT_MOSAIC 0x0040
-#define BGCNT_16COLOR 0x0000 // 4 bits per pixel
-#define BGCNT_256COLOR 0x0080 // 8 bits per pixel
+#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs.
+#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data.
+#define BGCNT_MOSAIC 0x0040
+#define BGCNT_16COLOR 0x0000 // 4 bits per pixel
+#define BGCNT_256COLOR 0x0080 // 8 bits per pixel
#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map.
-#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default.
-#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels.
-#define BGCNT_TXT512x256 0x4000
-#define BGCNT_TXT256x512 0x8000
-#define BGCNT_TXT512x512 0xC000
-#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels.
-#define BGCNT_AFF256x256 0x4000
-#define BGCNT_AFF512x512 0x8000
-#define BGCNT_AFF1024x1024 0xC000
+#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default.
+#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels.
+#define BGCNT_TXT512x256 0x4000
+#define BGCNT_TXT256x512 0x8000
+#define BGCNT_TXT512x512 0xC000
+#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels.
+#define BGCNT_AFF256x256 0x4000
+#define BGCNT_AFF512x512 0x8000
+#define BGCNT_AFF1024x1024 0xC000
// WININ/OUT
-#define WININ_WIN0_BG0 (1 << 0)
-#define WININ_WIN0_BG1 (1 << 1)
-#define WININ_WIN0_BG2 (1 << 2)
-#define WININ_WIN0_BG3 (1 << 3)
-#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3)
-#define WININ_WIN0_OBJ (1 << 4)
-#define WININ_WIN0_CLR (1 << 5)
-#define WININ_WIN1_BG0 (1 << 8)
-#define WININ_WIN1_BG1 (1 << 9)
-#define WININ_WIN1_BG2 (1 << 10)
-#define WININ_WIN1_BG3 (1 << 11)
-#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3)
-#define WININ_WIN1_OBJ (1 << 12)
-#define WININ_WIN1_CLR (1 << 13)
-
-#define WINOUT_WIN01_BG0 (1 << 0)
-#define WINOUT_WIN01_BG1 (1 << 1)
-#define WINOUT_WIN01_BG2 (1 << 2)
-#define WINOUT_WIN01_BG3 (1 << 3)
+#define WININ_WIN0_BG0 (1 << 0)
+#define WININ_WIN0_BG1 (1 << 1)
+#define WININ_WIN0_BG2 (1 << 2)
+#define WININ_WIN0_BG3 (1 << 3)
+#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3)
+#define WININ_WIN0_OBJ (1 << 4)
+#define WININ_WIN0_CLR (1 << 5)
+#define WININ_WIN1_BG0 (1 << 8)
+#define WININ_WIN1_BG1 (1 << 9)
+#define WININ_WIN1_BG2 (1 << 10)
+#define WININ_WIN1_BG3 (1 << 11)
+#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3)
+#define WININ_WIN1_OBJ (1 << 12)
+#define WININ_WIN1_CLR (1 << 13)
+
+#define WINOUT_WIN01_BG0 (1 << 0)
+#define WINOUT_WIN01_BG1 (1 << 1)
+#define WINOUT_WIN01_BG2 (1 << 2)
+#define WINOUT_WIN01_BG3 (1 << 3)
#define WINOUT_WIN01_BG_ALL (WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3)
-#define WINOUT_WIN01_OBJ (1 << 4)
-#define WINOUT_WIN01_CLR (1 << 5)
-#define WINOUT_WINOBJ_BG0 (1 << 8)
-#define WINOUT_WINOBJ_BG1 (1 << 9)
-#define WINOUT_WINOBJ_BG2 (1 << 10)
-#define WINOUT_WINOBJ_BG3 (1 << 11)
+#define WINOUT_WIN01_OBJ (1 << 4)
+#define WINOUT_WIN01_CLR (1 << 5)
+#define WINOUT_WINOBJ_BG0 (1 << 8)
+#define WINOUT_WINOBJ_BG1 (1 << 9)
+#define WINOUT_WINOBJ_BG2 (1 << 10)
+#define WINOUT_WINOBJ_BG3 (1 << 11)
#define WINOUT_WINOBJ_BG_ALL (WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3)
-#define WINOUT_WINOBJ_OBJ (1 << 12)
-#define WINOUT_WINOBJ_CLR (1 << 13)
+#define WINOUT_WINOBJ_OBJ (1 << 12)
+#define WINOUT_WINOBJ_CLR (1 << 13)
#define WIN_RANGE(a, b) (((a) << 8) | (b))
#define WIN_RANGE2(a, b) ((b) | ((a) << 8))
// BLDCNT
// Bits 0-5 select layers for the 1st target
-#define BLDCNT_TGT1_BG0 (1 << 0)
-#define BLDCNT_TGT1_BG1 (1 << 1)
-#define BLDCNT_TGT1_BG2 (1 << 2)
-#define BLDCNT_TGT1_BG3 (1 << 3)
-#define BLDCNT_TGT1_OBJ (1 << 4)
-#define BLDCNT_TGT1_BD (1 << 5)
+#define BLDCNT_TGT1_BG0 (1 << 0)
+#define BLDCNT_TGT1_BG1 (1 << 1)
+#define BLDCNT_TGT1_BG2 (1 << 2)
+#define BLDCNT_TGT1_BG3 (1 << 3)
+#define BLDCNT_TGT1_OBJ (1 << 4)
+#define BLDCNT_TGT1_BD (1 << 5)
// Bits 6-7 select the special effect
-#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect
-#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA)
-#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY)
-#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY)
+#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect
+#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA)
+#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY)
+#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY)
// Bits 8-13 select layers for the 2nd target
-#define BLDCNT_TGT2_BG0 (1 << 8)
-#define BLDCNT_TGT2_BG1 (1 << 9)
-#define BLDCNT_TGT2_BG2 (1 << 10)
-#define BLDCNT_TGT2_BG3 (1 << 11)
-#define BLDCNT_TGT2_OBJ (1 << 12)
-#define BLDCNT_TGT2_BD (1 << 13)
-#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD)
+#define BLDCNT_TGT2_BG0 (1 << 8)
+#define BLDCNT_TGT2_BG1 (1 << 9)
+#define BLDCNT_TGT2_BG2 (1 << 10)
+#define BLDCNT_TGT2_BG3 (1 << 11)
+#define BLDCNT_TGT2_OBJ (1 << 12)
+#define BLDCNT_TGT2_BD (1 << 13)
+#define BLDCNT_TGT2_ALL \
+ (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD)
// BLDALPHA
#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
@@ -606,180 +607,180 @@
// SOUNDCNT_H
#define SOUND_CGB_MIX_QUARTER 0x0000
-#define SOUND_CGB_MIX_HALF 0x0001
-#define SOUND_CGB_MIX_FULL 0x0002
-#define SOUND_A_MIX_HALF 0x0000
-#define SOUND_A_MIX_FULL 0x0004
-#define SOUND_B_MIX_HALF 0x0000
-#define SOUND_B_MIX_FULL 0x0008
-#define SOUND_ALL_MIX_FULL 0x000E
-#define SOUND_A_RIGHT_OUTPUT 0x0100
-#define SOUND_A_LEFT_OUTPUT 0x0200
-#define SOUND_A_TIMER_0 0x0000
-#define SOUND_A_TIMER_1 0x0400
-#define SOUND_A_FIFO_RESET 0x0800
-#define SOUND_B_RIGHT_OUTPUT 0x1000
-#define SOUND_B_LEFT_OUTPUT 0x2000
-#define SOUND_B_TIMER_0 0x0000
-#define SOUND_B_TIMER_1 0x4000
-#define SOUND_B_FIFO_RESET 0x8000
+#define SOUND_CGB_MIX_HALF 0x0001
+#define SOUND_CGB_MIX_FULL 0x0002
+#define SOUND_A_MIX_HALF 0x0000
+#define SOUND_A_MIX_FULL 0x0004
+#define SOUND_B_MIX_HALF 0x0000
+#define SOUND_B_MIX_FULL 0x0008
+#define SOUND_ALL_MIX_FULL 0x000E
+#define SOUND_A_RIGHT_OUTPUT 0x0100
+#define SOUND_A_LEFT_OUTPUT 0x0200
+#define SOUND_A_TIMER_0 0x0000
+#define SOUND_A_TIMER_1 0x0400
+#define SOUND_A_FIFO_RESET 0x0800
+#define SOUND_B_RIGHT_OUTPUT 0x1000
+#define SOUND_B_LEFT_OUTPUT 0x2000
+#define SOUND_B_TIMER_0 0x0000
+#define SOUND_B_TIMER_1 0x4000
+#define SOUND_B_FIFO_RESET 0x8000
// SOUNDCNT_X
-#define SOUND_1_ON 0x0001
-#define SOUND_2_ON 0x0002
-#define SOUND_3_ON 0x0004
-#define SOUND_4_ON 0x0008
+#define SOUND_1_ON 0x0001
+#define SOUND_2_ON 0x0002
+#define SOUND_3_ON 0x0004
+#define SOUND_4_ON 0x0008
#define SOUND_MASTER_ENABLE 0x0080
// DMA
-#define DMA_DEST_INC 0x0000
-#define DMA_DEST_DEC 0x0020
-#define DMA_DEST_FIXED 0x0040
-#define DMA_DEST_RELOAD 0x0060
-#define DMA_SRC_INC 0x0000
-#define DMA_SRC_DEC 0x0080
-#define DMA_SRC_FIXED 0x0100
-#define DMA_REPEAT 0x0200
-#define DMA_16BIT 0x0000
-#define DMA_32BIT 0x0400
-#define DMA_DREQ_ON 0x0800
-#define DMA_START_NOW 0x0000
-#define DMA_START_VBLANK 0x1000
-#define DMA_START_HBLANK 0x2000
+#define DMA_DEST_INC 0x0000
+#define DMA_DEST_DEC 0x0020
+#define DMA_DEST_FIXED 0x0040
+#define DMA_DEST_RELOAD 0x0060
+#define DMA_SRC_INC 0x0000
+#define DMA_SRC_DEC 0x0080
+#define DMA_SRC_FIXED 0x0100
+#define DMA_REPEAT 0x0200
+#define DMA_16BIT 0x0000
+#define DMA_32BIT 0x0400
+#define DMA_DREQ_ON 0x0800
+#define DMA_START_NOW 0x0000
+#define DMA_START_VBLANK 0x1000
+#define DMA_START_HBLANK 0x2000
#define DMA_START_SPECIAL 0x3000
-#define DMA_START_MASK 0x3000
-#define DMA_INTR_ENABLE 0x4000
-#define DMA_ENABLE 0x8000
+#define DMA_START_MASK 0x3000
+#define DMA_INTR_ENABLE 0x4000
+#define DMA_ENABLE 0x8000
// timer
-#define TIMER_1CLK 0x00
-#define TIMER_64CLK 0x01
-#define TIMER_256CLK 0x02
-#define TIMER_1024CLK 0x03
+#define TIMER_1CLK 0x00
+#define TIMER_64CLK 0x01
+#define TIMER_256CLK 0x02
+#define TIMER_1024CLK 0x03
#define TIMER_INTR_ENABLE 0x40
-#define TIMER_ENABLE 0x80
+#define TIMER_ENABLE 0x80
// serial
-#define SIO_ID 0x0030 // Communication ID
-
-#define SIO_8BIT_MODE 0x0000 // Normal 8-bit communication mode
-#define SIO_32BIT_MODE 0x1000 // Normal 32-bit communication mode
-#define SIO_MULTI_MODE 0x2000 // Multi-player communication mode
-#define SIO_UART_MODE 0x3000 // UART communication mode
-
-#define SIO_SCK_OUT 0x0000 // Select external clock
-#define SIO_SCK_IN 0x0001 // Select internal clock
-#define SIO_IN_SCK_256K 0x0000 // Select internal clock 256KHz
-#define SIO_IN_SCK_2M 0x0002 // Select 2MHz
-#define SIO_ACK_RECV 0x0004 // Request transfer
-#define SIO_ACK_SEND 0x0008 // Enable transfer
-#define SIO_9600_BPS 0x0000 // baud rate 9600 bps
-#define SIO_38400_BPS 0x0001 // 38400 bps
-#define SIO_57600_BPS 0x0002 // 57600 bps
-#define SIO_115200_BPS 0x0003 // 115200 bps
-
-#define SIO_MULTI_CONNECT 0x0004 // Connecting multi-play communication
-#define SIO_MULTI_DISCONNECT 0x0000 // Disconnect
-#define SIO_MULTI_PARENT 0x0008 // Multi-play communication Connect master
-#define SIO_MULTI_CHILD 0x0000 // Connect slave
-#define SIO_MULTI_SI 0x0004 // Multi-play communication SI terminal
-#define SIO_MULTI_SD 0x0008 // SD terminal
-#define SIO_MULTI_BUSY 0x0080 // Multi-play communicating
-#define SIO_CTS_ENABLE 0x0004 // Enable UART send enable signal
-#define SIO_UART_7BIT 0x0000 // UART communication data length 7 bit
-#define SIO_UART_8BIT 0x0080 // 8 bit
-
-#define SIO_ERROR 0x0040 // Detect error
-#define SIO_START 0x0080 // Start transfer
-#define SIO_ENABLE 0x0080 // Enable SIO
-
-#define SIO_PARITY_ENABLE 0x0200 // Enable parity
-#define SIO_PARITY_EVEN 0x0000 // Even parity
-#define SIO_PARITY_ODD 0x0008 // Odd parity
-#define SIO_TRANS_ENABLE 0x0400 // Enable transmitter
-#define SIO_TRANS_DATA_FULL 0x0010 // Transmitted data full
-#define SIO_RECV_ENABLE 0x0800 // Enable receiver
-#define SIO_RECV_DATA_EMPTY 0x0020 // No data received
-#define SIO_INTR_ENABLE 0x4000 // Enable interrupt request
+#define SIO_ID 0x0030 // Communication ID
+
+#define SIO_8BIT_MODE 0x0000 // Normal 8-bit communication mode
+#define SIO_32BIT_MODE 0x1000 // Normal 32-bit communication mode
+#define SIO_MULTI_MODE 0x2000 // Multi-player communication mode
+#define SIO_UART_MODE 0x3000 // UART communication mode
+
+#define SIO_SCK_OUT 0x0000 // Select external clock
+#define SIO_SCK_IN 0x0001 // Select internal clock
+#define SIO_IN_SCK_256K 0x0000 // Select internal clock 256KHz
+#define SIO_IN_SCK_2M 0x0002 // Select 2MHz
+#define SIO_ACK_RECV 0x0004 // Request transfer
+#define SIO_ACK_SEND 0x0008 // Enable transfer
+#define SIO_9600_BPS 0x0000 // baud rate 9600 bps
+#define SIO_38400_BPS 0x0001 // 38400 bps
+#define SIO_57600_BPS 0x0002 // 57600 bps
+#define SIO_115200_BPS 0x0003 // 115200 bps
+
+#define SIO_MULTI_CONNECT 0x0004 // Connecting multi-play communication
+#define SIO_MULTI_DISCONNECT 0x0000 // Disconnect
+#define SIO_MULTI_PARENT 0x0008 // Multi-play communication Connect master
+#define SIO_MULTI_CHILD 0x0000 // Connect slave
+#define SIO_MULTI_SI 0x0004 // Multi-play communication SI terminal
+#define SIO_MULTI_SD 0x0008 // SD terminal
+#define SIO_MULTI_BUSY 0x0080 // Multi-play communicating
+#define SIO_CTS_ENABLE 0x0004 // Enable UART send enable signal
+#define SIO_UART_7BIT 0x0000 // UART communication data length 7 bit
+#define SIO_UART_8BIT 0x0080 // 8 bit
+
+#define SIO_ERROR 0x0040 // Detect error
+#define SIO_START 0x0080 // Start transfer
+#define SIO_ENABLE 0x0080 // Enable SIO
+
+#define SIO_PARITY_ENABLE 0x0200 // Enable parity
+#define SIO_PARITY_EVEN 0x0000 // Even parity
+#define SIO_PARITY_ODD 0x0008 // Odd parity
+#define SIO_TRANS_ENABLE 0x0400 // Enable transmitter
+#define SIO_TRANS_DATA_FULL 0x0010 // Transmitted data full
+#define SIO_RECV_ENABLE 0x0800 // Enable receiver
+#define SIO_RECV_DATA_EMPTY 0x0020 // No data received
+#define SIO_INTR_ENABLE 0x4000 // Enable interrupt request
#define SIO_MULTI_SI_SHIFT 2
-#define SIO_MULTI_SI_MASK 0x1
+#define SIO_MULTI_SI_MASK 0x1
#define SIO_MULTI_DI_SHIFT 3
-#define SIO_MULTI_DI_MASK 0x1
+#define SIO_MULTI_DI_MASK 0x1
// keys
-#define A_BUTTON 0x0001
-#define B_BUTTON 0x0002
-#define SELECT_BUTTON 0x0004
-#define START_BUTTON 0x0008
-#define DPAD_RIGHT 0x0010
-#define DPAD_LEFT 0x0020
-#define DPAD_UP 0x0040
-#define DPAD_DOWN 0x0080
-#define R_BUTTON 0x0100
-#define L_BUTTON 0x0200
-#define KEYS_MASK 0x03FF
+#define A_BUTTON 0x0001
+#define B_BUTTON 0x0002
+#define SELECT_BUTTON 0x0004
+#define START_BUTTON 0x0008
+#define DPAD_RIGHT 0x0010
+#define DPAD_LEFT 0x0020
+#define DPAD_UP 0x0040
+#define DPAD_DOWN 0x0080
+#define R_BUTTON 0x0100
+#define L_BUTTON 0x0200
+#define KEYS_MASK 0x03FF
#define KEY_INTR_ENABLE 0x0400
-#define KEY_OR_INTR 0x0000
-#define KEY_AND_INTR 0x8000
-#define DPAD_ANY 0x00F0
-#define JOY_EXCL_DPAD 0x030F
+#define KEY_OR_INTR 0x0000
+#define KEY_AND_INTR 0x8000
+#define DPAD_ANY 0x00F0
+#define JOY_EXCL_DPAD 0x030F
// interrupt flags
-#define INTR_FLAG_VBLANK (1 << 0)
-#define INTR_FLAG_HBLANK (1 << 1)
-#define INTR_FLAG_VCOUNT (1 << 2)
-#define INTR_FLAG_TIMER0 (1 << 3)
-#define INTR_FLAG_TIMER1 (1 << 4)
-#define INTR_FLAG_TIMER2 (1 << 5)
-#define INTR_FLAG_TIMER3 (1 << 6)
-#define INTR_FLAG_SERIAL (1 << 7)
-#define INTR_FLAG_DMA0 (1 << 8)
-#define INTR_FLAG_DMA1 (1 << 9)
-#define INTR_FLAG_DMA2 (1 << 10)
-#define INTR_FLAG_DMA3 (1 << 11)
-#define INTR_FLAG_KEYPAD (1 << 12)
+#define INTR_FLAG_VBLANK (1 << 0)
+#define INTR_FLAG_HBLANK (1 << 1)
+#define INTR_FLAG_VCOUNT (1 << 2)
+#define INTR_FLAG_TIMER0 (1 << 3)
+#define INTR_FLAG_TIMER1 (1 << 4)
+#define INTR_FLAG_TIMER2 (1 << 5)
+#define INTR_FLAG_TIMER3 (1 << 6)
+#define INTR_FLAG_SERIAL (1 << 7)
+#define INTR_FLAG_DMA0 (1 << 8)
+#define INTR_FLAG_DMA1 (1 << 9)
+#define INTR_FLAG_DMA2 (1 << 10)
+#define INTR_FLAG_DMA3 (1 << 11)
+#define INTR_FLAG_KEYPAD (1 << 12)
#define INTR_FLAG_GAMEPAK (1 << 13)
// WAITCNT
-#define WAITCNT_SRAM_4 (0 << 0)
-#define WAITCNT_SRAM_3 (1 << 0)
-#define WAITCNT_SRAM_2 (2 << 0)
-#define WAITCNT_SRAM_8 (3 << 0)
-#define WAITCNT_SRAM_MASK (3 << 0)
-
-#define WAITCNT_WS0_N_4 (0 << 2)
-#define WAITCNT_WS0_N_3 (1 << 2)
-#define WAITCNT_WS0_N_2 (2 << 2)
-#define WAITCNT_WS0_N_8 (3 << 2)
-#define WAITCNT_WS0_N_MASK (3 << 2)
-
-#define WAITCNT_WS0_S_2 (0 << 4)
-#define WAITCNT_WS0_S_1 (1 << 4)
-
-#define WAITCNT_WS1_N_4 (0 << 5)
-#define WAITCNT_WS1_N_3 (1 << 5)
-#define WAITCNT_WS1_N_2 (2 << 5)
-#define WAITCNT_WS1_N_8 (3 << 5)
-#define WAITCNT_WS1_N_MASK (3 << 5)
-
-#define WAITCNT_WS1_S_4 (0 << 7)
-#define WAITCNT_WS1_S_1 (1 << 7)
-
-#define WAITCNT_WS2_N_4 (0 << 8)
-#define WAITCNT_WS2_N_3 (1 << 8)
-#define WAITCNT_WS2_N_2 (2 << 8)
-#define WAITCNT_WS2_N_8 (3 << 8)
-#define WAITCNT_WS2_N_MASK (3 << 8)
-
-#define WAITCNT_WS2_S_8 (0 << 10)
-#define WAITCNT_WS2_S_1 (1 << 10)
-
-#define WAITCNT_PHI_OUT_NONE (0 << 11)
-#define WAITCNT_PHI_OUT_4MHZ (1 << 11)
-#define WAITCNT_PHI_OUT_8MHZ (2 << 11)
-#define WAITCNT_PHI_OUT_16MHZ (3 << 11)
-#define WAITCNT_PHI_OUT_MASK (3 << 11)
+#define WAITCNT_SRAM_4 (0 << 0)
+#define WAITCNT_SRAM_3 (1 << 0)
+#define WAITCNT_SRAM_2 (2 << 0)
+#define WAITCNT_SRAM_8 (3 << 0)
+#define WAITCNT_SRAM_MASK (3 << 0)
+
+#define WAITCNT_WS0_N_4 (0 << 2)
+#define WAITCNT_WS0_N_3 (1 << 2)
+#define WAITCNT_WS0_N_2 (2 << 2)
+#define WAITCNT_WS0_N_8 (3 << 2)
+#define WAITCNT_WS0_N_MASK (3 << 2)
+
+#define WAITCNT_WS0_S_2 (0 << 4)
+#define WAITCNT_WS0_S_1 (1 << 4)
+
+#define WAITCNT_WS1_N_4 (0 << 5)
+#define WAITCNT_WS1_N_3 (1 << 5)
+#define WAITCNT_WS1_N_2 (2 << 5)
+#define WAITCNT_WS1_N_8 (3 << 5)
+#define WAITCNT_WS1_N_MASK (3 << 5)
+
+#define WAITCNT_WS1_S_4 (0 << 7)
+#define WAITCNT_WS1_S_1 (1 << 7)
+
+#define WAITCNT_WS2_N_4 (0 << 8)
+#define WAITCNT_WS2_N_3 (1 << 8)
+#define WAITCNT_WS2_N_2 (2 << 8)
+#define WAITCNT_WS2_N_8 (3 << 8)
+#define WAITCNT_WS2_N_MASK (3 << 8)
+
+#define WAITCNT_WS2_S_8 (0 << 10)
+#define WAITCNT_WS2_S_1 (1 << 10)
+
+#define WAITCNT_PHI_OUT_NONE (0 << 11)
+#define WAITCNT_PHI_OUT_4MHZ (1 << 11)
+#define WAITCNT_PHI_OUT_8MHZ (2 << 11)
+#define WAITCNT_PHI_OUT_16MHZ (3 << 11)
+#define WAITCNT_PHI_OUT_MASK (3 << 11)
#define WAITCNT_PREFETCH_ENABLE (1 << 14)
diff --git a/include/gba/isagbprint.h b/include/gba/isagbprint.h
index af207657..ea5f2a2b 100644
--- a/include/gba/isagbprint.h
+++ b/include/gba/isagbprint.h
@@ -5,46 +5,46 @@
#define AGBPrintInit()
#define AGBPutc(cChr)
#define AGBPrint(pBuf)
-#define AGBPrintf(pBuf, ...)
+#define AGBPrintf(pBuf, ...)
#define AGBPrintFlush1Block()
#define AGBPrintFlush()
#define AGBAssert(pFile, nLine, pExpression, nStopProgram)
#else
void AGBPrintInit(void);
void AGBPutc(const char cChr);
-void AGBPrint(const char *pBuf);
-void AGBPrintf(const char *pBuf, ...);
+void AGBPrint(const char* pBuf);
+void AGBPrintf(const char* pBuf, ...);
void AGBPrintFlush1Block(void);
void AGBPrintFlush(void);
-void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram);
+void AGBAssert(const char* pFile, int nLine, const char* pExpression, int nStopProgram);
#endif
#undef AGB_ASSERT
#ifdef NDEBUG
-#define AGB_ASSERT(exp)
+#define AGB_ASSERT(exp)
#else
-#define AGB_ASSERT(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
+#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
#endif
#undef AGB_WARNING
#ifdef NDEBUG
-#define AGB_WARNING(exp)
+#define AGB_WARNING(exp)
#else
-#define AGB_WARNING(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
+#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
#endif
// for matching purposes
#ifdef NDEBUG
-#define AGB_ASSERT_EX(exp, file, line)
+#define AGB_ASSERT_EX(exp, file, line)
#else
-#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 1);
+#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1);
#endif
#ifdef NDEBUG
-#define AGB_WARNING_EX(exp, file, line)
+#define AGB_WARNING_EX(exp, file, line)
#else
-#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 0);
+#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
#endif
#endif // GUARD_GBA_ISAGBPRINT_H
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index d8e9bed0..05a47859 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -9,66 +9,63 @@
#define C_V 0x40 // center value for PAN, BEND, and TUNE
-#define SOUND_MODE_REVERB_VAL 0x0000007F
-#define SOUND_MODE_REVERB_SET 0x00000080
-#define SOUND_MODE_MAXCHN 0x00000F00
+#define SOUND_MODE_REVERB_VAL 0x0000007F
+#define SOUND_MODE_REVERB_SET 0x00000080
+#define SOUND_MODE_MAXCHN 0x00000F00
#define SOUND_MODE_MAXCHN_SHIFT 8
-#define SOUND_MODE_MASVOL 0x0000F000
+#define SOUND_MODE_MASVOL 0x0000F000
#define SOUND_MODE_MASVOL_SHIFT 12
-#define SOUND_MODE_FREQ_05734 0x00010000
-#define SOUND_MODE_FREQ_07884 0x00020000
-#define SOUND_MODE_FREQ_10512 0x00030000
-#define SOUND_MODE_FREQ_13379 0x00040000
-#define SOUND_MODE_FREQ_15768 0x00050000
-#define SOUND_MODE_FREQ_18157 0x00060000
-#define SOUND_MODE_FREQ_21024 0x00070000
-#define SOUND_MODE_FREQ_26758 0x00080000
-#define SOUND_MODE_FREQ_31536 0x00090000
-#define SOUND_MODE_FREQ_36314 0x000A0000
-#define SOUND_MODE_FREQ_40137 0x000B0000
-#define SOUND_MODE_FREQ_42048 0x000C0000
-#define SOUND_MODE_FREQ 0x000F0000
-#define SOUND_MODE_FREQ_SHIFT 16
-#define SOUND_MODE_DA_BIT_9 0x00800000
-#define SOUND_MODE_DA_BIT_8 0x00900000
-#define SOUND_MODE_DA_BIT_7 0x00A00000
-#define SOUND_MODE_DA_BIT_6 0x00B00000
-#define SOUND_MODE_DA_BIT 0x00B00000
+#define SOUND_MODE_FREQ_05734 0x00010000
+#define SOUND_MODE_FREQ_07884 0x00020000
+#define SOUND_MODE_FREQ_10512 0x00030000
+#define SOUND_MODE_FREQ_13379 0x00040000
+#define SOUND_MODE_FREQ_15768 0x00050000
+#define SOUND_MODE_FREQ_18157 0x00060000
+#define SOUND_MODE_FREQ_21024 0x00070000
+#define SOUND_MODE_FREQ_26758 0x00080000
+#define SOUND_MODE_FREQ_31536 0x00090000
+#define SOUND_MODE_FREQ_36314 0x000A0000
+#define SOUND_MODE_FREQ_40137 0x000B0000
+#define SOUND_MODE_FREQ_42048 0x000C0000
+#define SOUND_MODE_FREQ 0x000F0000
+#define SOUND_MODE_FREQ_SHIFT 16
+#define SOUND_MODE_DA_BIT_9 0x00800000
+#define SOUND_MODE_DA_BIT_8 0x00900000
+#define SOUND_MODE_DA_BIT_7 0x00A00000
+#define SOUND_MODE_DA_BIT_6 0x00B00000
+#define SOUND_MODE_DA_BIT 0x00B00000
#define SOUND_MODE_DA_BIT_SHIFT 20
-struct WaveData
-{
+struct WaveData {
u16 type;
u16 status;
u32 freq;
u32 loopStart;
- u32 size; // number of samples
+ u32 size; // number of samples
s8 data[1]; // samples
};
-#define TONEDATA_TYPE_CGB 0x07
-#define TONEDATA_TYPE_FIX 0x08
-#define TONEDATA_TYPE_SPL 0x40 // key split
-#define TONEDATA_TYPE_RHY 0x80 // rhythm
+#define TONEDATA_TYPE_CGB 0x07
+#define TONEDATA_TYPE_FIX 0x08
+#define TONEDATA_TYPE_SPL 0x40 // key split
+#define TONEDATA_TYPE_RHY 0x80 // rhythm
-#define TONEDATA_P_S_PAN 0xc0
-#define TONEDATA_P_S_PAM TONEDATA_P_S_PAN
+#define TONEDATA_P_S_PAN 0xc0
+#define TONEDATA_P_S_PAM TONEDATA_P_S_PAN
-struct ToneData
-{
+struct ToneData {
u8 type;
u8 key;
- u8 length; // sound length (compatible sound)
+ u8 length; // sound length (compatible sound)
u8 pan_sweep; // pan or sweep (compatible sound ch. 1)
- struct WaveData *wav;
+ struct WaveData* wav;
u8 attack;
u8 decay;
u8 sustain;
u8 release;
};
-struct CgbChannel
-{
+struct CgbChannel {
u8 sf;
u8 ty;
u8 rightVolume;
@@ -100,7 +97,7 @@ struct CgbChannel
u8 le;
u8 sw;
u32 fr;
- u32 *wp;
+ u32* wp;
u32 cp;
u32 tp;
u32 pp;
@@ -110,8 +107,7 @@ struct CgbChannel
struct MusicPlayerTrack;
-struct SoundChannel
-{
+struct SoundChannel {
u8 status;
u8 type;
u8 rightVolume;
@@ -137,9 +133,9 @@ struct SoundChannel
u32 ct;
u32 fw;
u32 freq;
- struct WaveData *wav;
+ struct WaveData* wav;
u32 cp;
- struct MusicPlayerTrack *track;
+ struct MusicPlayerTrack* track;
u32 pp;
u32 np;
u32 d4;
@@ -151,8 +147,7 @@ struct SoundChannel
#define PCM_DMA_BUF_SIZE 1584 // size of Direct Sound buffer
-struct SoundInfo
-{
+struct SoundInfo {
// This field is normally equal to ID_NUMBER but it is set to other
// values during sensitive operations for locking purposes.
// This field should be volatile but isn't. This could potentially cause
@@ -175,39 +170,37 @@ struct SoundInfo
s32 pcmSamplesPerVBlank;
s32 pcmFreq;
s32 divFreq;
- struct CgbChannel *cgbChans;
+ struct CgbChannel* cgbChans;
u32 func;
u32 intp;
void (*CgbSound)(void);
void (*CgbOscOff)(u8);
u32 (*MidiKeyToCgbFreq)(u8, u8, u8);
u32 MPlayJumpTable;
- void *plynote;
+ void* plynote;
void (*ExtVolPit)(void);
u8 gap2[16];
struct SoundChannel chans[MAX_DIRECTSOUND_CHANNELS];
s8 pcmBuffer[PCM_DMA_BUF_SIZE * 2];
};
-struct SongHeader
-{
+struct SongHeader {
u8 trackCount;
u8 blockCount;
u8 priority;
u8 reverb;
- struct ToneData *tone;
- u8 *part[1];
+ struct ToneData* tone;
+ u8* part[1];
};
#define MPT_FLG_VOLSET 0x01
#define MPT_FLG_VOLCHG 0x03
#define MPT_FLG_PITSET 0x04
#define MPT_FLG_PITCHG 0x0C
-#define MPT_FLG_START 0x40
-#define MPT_FLG_EXIST 0x80
+#define MPT_FLG_START 0x40
+#define MPT_FLG_EXIST 0x80
-struct MusicPlayerTrack
-{
+struct MusicPlayerTrack {
u8 flags;
u8 wait;
u8 patternLevel;
@@ -240,13 +233,13 @@ struct MusicPlayerTrack
u8 priority;
u8 echoVolume;
u8 echoLength;
- struct SoundChannel *chan;
+ struct SoundChannel* chan;
struct ToneData tone;
u8 gap[10];
u16 unk_3A;
u32 unk_3C;
- u8 *cmdPtr;
- u8 *patternStack[3];
+ u8* cmdPtr;
+ u8* patternStack[3];
};
#define MUSICPLAYER_STATUS_TRACK 0x0000ffff
@@ -254,14 +247,13 @@ struct MusicPlayerTrack
#define MAX_MUSICPLAYER_TRACKS 16
-#define TEMPORARY_FADE 0x0001
-#define FADE_IN 0x0002
-#define FADE_VOL_MAX 64
-#define FADE_VOL_SHIFT 2
+#define TEMPORARY_FADE 0x0001
+#define FADE_IN 0x0002
+#define FADE_VOL_MAX 64
+#define FADE_VOL_SHIFT 2
-struct MusicPlayerInfo
-{
- struct SongHeader *songHeader;
+struct MusicPlayerInfo {
+ struct SongHeader* songHeader;
u32 status;
u8 trackCount;
u8 priority;
@@ -269,7 +261,7 @@ struct MusicPlayerInfo
u8 unk_B;
u32 clock;
u8 gap[8];
- u8 *memAccArea;
+ u8* memAccArea;
u16 tempoD;
u16 tempoU;
u16 tempoI;
@@ -277,24 +269,22 @@ struct MusicPlayerInfo
u16 fadeOI;
u16 fadeOC;
u16 fadeOV;
- struct MusicPlayerTrack *tracks;
- struct ToneData *tone;
+ struct MusicPlayerTrack* tracks;
+ struct ToneData* tone;
u32 ident;
u32 func;
u32 intp;
};
-struct MusicPlayer
-{
- struct MusicPlayerInfo *info;
- struct MusicPlayerTrack *track;
+struct MusicPlayer {
+ struct MusicPlayerInfo* info;
+ struct MusicPlayerTrack* track;
u8 unk_8;
u16 unk_A;
};
-struct Song
-{
- struct SongHeader *header;
+struct Song {
+ struct SongHeader* header;
u16 ms;
u16 me;
};
@@ -308,9 +298,9 @@ extern u8 gMPlayMemAccArea[];
extern char SoundMainRAM[];
-extern void *gMPlayJumpTable[];
+extern void* gMPlayJumpTable[];
-typedef void (*XcmdFunc)(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
+typedef void (*XcmdFunc)(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
extern const XcmdFunc gXcmdTable[];
extern struct CgbChannel gCgbChans[];
@@ -333,75 +323,75 @@ extern char gMaxLines[];
u32 umul3232H32(u32 multiplier, u32 multiplicand);
void SoundMain(void);
void SoundMainBTM(void);
-void TrackStop(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track);
+void TrackStop(struct MusicPlayerInfo* mplayInfo, struct MusicPlayerTrack* track);
void MPlayMain(void);
-void RealClearChain(void *x);
-
-void MPlayContinue(struct MusicPlayerInfo *mplayInfo);
-void MPlayStart(struct MusicPlayerInfo *mplayInfo, struct SongHeader *songHeader);
-void MPlayStop(struct MusicPlayerInfo *mplayInfo);
-void FadeOutBody(struct MusicPlayerInfo *mplayInfo);
-void TrkVolPitSet(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track);
-void MPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed);
-void ClearChain(void *x);
-void Clear64byte(void *addr);
-void SoundInit(struct SoundInfo *soundInfo);
-void MPlayExtender(struct CgbChannel *cgbChans);
+void RealClearChain(void* x);
+
+void MPlayContinue(struct MusicPlayerInfo* mplayInfo);
+void MPlayStart(struct MusicPlayerInfo* mplayInfo, struct SongHeader* songHeader);
+void MPlayStop(struct MusicPlayerInfo* mplayInfo);
+void FadeOutBody(struct MusicPlayerInfo* mplayInfo);
+void TrkVolPitSet(struct MusicPlayerInfo* mplayInfo, struct MusicPlayerTrack* track);
+void MPlayFadeOut(struct MusicPlayerInfo* mplayInfo, u16 speed);
+void ClearChain(void* x);
+void Clear64byte(void* addr);
+void SoundInit(struct SoundInfo* soundInfo);
+void MPlayExtender(struct CgbChannel* cgbChans);
void m4aSoundMode(u32 mode);
-void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track, u8 a3);
+void MPlayOpen(struct MusicPlayerInfo* mplayInfo, struct MusicPlayerTrack* track, u8 a3);
void CgbSound(void);
void CgbOscOff(u8);
u32 MidiKeyToCgbFreq(u8, u8, u8);
void nullsub_141(void);
-void MPlayJumpTableCopy(void **mplayJumpTable);
+void MPlayJumpTableCopy(void** mplayJumpTable);
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, s16 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);
+void m4aMPlayTempoControl(struct MusicPlayerInfo* mplayInfo, u16 tempo);
+void m4aMPlayVolumeControl(struct MusicPlayerInfo* mplayInfo, u16 trackBits, u16 volume);
+void m4aMPlayPitchControl(struct MusicPlayerInfo* mplayInfo, u16 trackBits, s16 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);
// sound command handler functions
-void ply_fine(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_goto(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_patt(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_pend(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_rept(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_memacc(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_prio(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_tempo(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_keysh(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_voice(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_vol(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_pan(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_bend(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_bendr(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_lfos(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_lfodl(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_mod(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_modt(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_tune(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_port(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xcmd(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_endtie(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_note(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
+void ply_fine(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_goto(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_patt(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_pend(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_rept(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_memacc(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_prio(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_tempo(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_keysh(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_voice(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_vol(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_pan(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_bend(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_bendr(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_lfos(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_lfodl(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_mod(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_modt(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_tune(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_port(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_xcmd(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_endtie(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_note(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
// extended sound command handler functions
-void ply_xxx(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xwave(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xtype(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xatta(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xdeca(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xsust(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xrele(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xiecv(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xiecl(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
+void ply_xxx(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_xwave(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_xtype(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_xatta(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_xdeca(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_xsust(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_xrele(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_xiecv(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_xiecl(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_xleng(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
+void ply_xswee(struct MusicPlayerInfo*, struct MusicPlayerTrack*);
#endif // GUARD_M4A_INTERNAL_H
diff --git a/include/gba/macro.h b/include/gba/macro.h
index cc853530..63043ebb 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -1,54 +1,49 @@
#ifndef GUARD_GBA_MACRO_H
#define GUARD_GBA_MACRO_H
-#define CPU_FILL(value, dest, size, bit) \
-{ \
- vu##bit tmp = (vu##bit)(value); \
- CpuSet((void *)&tmp, \
- dest, \
- CPU_SET_##bit##BIT | CPU_SET_SRC_FIXED | ((size)/(bit/8) & 0x1FFFFF)); \
-}
+#define CPU_FILL(value, dest, size, bit) \
+ { \
+ vu##bit tmp = (vu##bit)(value); \
+ CpuSet((void*)&tmp, dest, CPU_SET_##bit##BIT | CPU_SET_SRC_FIXED | ((size) / (bit / 8) & 0x1FFFFF)); \
+ }
#define CpuFill16(value, dest, size) CPU_FILL(value, dest, size, 16)
#define CpuFill32(value, dest, size) CPU_FILL(value, dest, size, 32)
-#define CPU_COPY(src, dest, size, bit) CpuSet(src, dest, CPU_SET_##bit##BIT | ((size)/(bit/8) & 0x1FFFFF))
+#define CPU_COPY(src, dest, size, bit) CpuSet(src, dest, CPU_SET_##bit##BIT | ((size) / (bit / 8) & 0x1FFFFF))
#define CpuCopy16(src, dest, size) CPU_COPY(src, dest, size, 16)
#define CpuCopy32(src, dest, size) CPU_COPY(src, dest, size, 32)
-#define CpuFastFill(value, dest, size) \
-{ \
- vu32 tmp = (vu32)(value); \
- CpuFastSet((void *)&tmp, \
- dest, \
- CPU_FAST_SET_SRC_FIXED | ((size)/(32/8) & 0x1FFFFF)); \
-}
+#define CpuFastFill(value, dest, size) \
+ { \
+ vu32 tmp = (vu32)(value); \
+ CpuFastSet((void*)&tmp, dest, CPU_FAST_SET_SRC_FIXED | ((size) / (32 / 8) & 0x1FFFFF)); \
+ }
#define CpuFastFill16(value, dest, size) CpuFastFill(((value) << 16) | (value), (dest), (size))
-#define CpuFastFill8(value, dest, size) CpuFastFill(((value) << 24) | ((value) << 16) | ((value) << 8) | (value), (dest), (size))
-
-#define CpuFastCopy(src, dest, size) CpuFastSet(src, dest, ((size)/(32/8) & 0x1FFFFF))
-
-#define DmaSet(dmaNum, src, dest, control) \
-{ \
- vu32 *dmaRegs = (vu32 *)REG_ADDR_DMA##dmaNum; \
- dmaRegs[0] = (vu32)(src); \
- dmaRegs[1] = (vu32)(dest); \
- dmaRegs[2] = (vu32)(control); \
- dmaRegs[2]; \
-}
-
-#define DMA_FILL(dmaNum, value, dest, size, bit) \
-{ \
- vu##bit tmp = (vu##bit)(value); \
- DmaSet(dmaNum, \
- &tmp, \
- dest, \
- (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_FIXED | DMA_DEST_INC) << 16 \
- | ((size)/(bit/8))); \
-}
+#define CpuFastFill8(value, dest, size) \
+ CpuFastFill(((value) << 24) | ((value) << 16) | ((value) << 8) | (value), (dest), (size))
+
+#define CpuFastCopy(src, dest, size) CpuFastSet(src, dest, ((size) / (32 / 8) & 0x1FFFFF))
+
+#define DmaSet(dmaNum, src, dest, control) \
+ { \
+ vu32* dmaRegs = (vu32*)REG_ADDR_DMA##dmaNum; \
+ dmaRegs[0] = (vu32)(src); \
+ dmaRegs[1] = (vu32)(dest); \
+ dmaRegs[2] = (vu32)(control); \
+ dmaRegs[2]; \
+ }
+
+#define DMA_FILL(dmaNum, value, dest, size, bit) \
+ { \
+ vu##bit tmp = (vu##bit)(value); \
+ DmaSet(dmaNum, &tmp, dest, \
+ (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_FIXED | DMA_DEST_INC) << 16 | \
+ ((size) / (bit / 8))); \
+ }
#define DmaFill16(dmaNum, value, dest, size) DMA_FILL(dmaNum, value, dest, size, 16)
#define DmaFill32(dmaNum, value, dest, size) DMA_FILL(dmaNum, value, dest, size, 32)
@@ -58,86 +53,77 @@
// unit size (2 or 4 bytes) and then combined with the DMA control flags using a
// bitwise OR operation.
-#define DMA_CLEAR(dmaNum, dest, size, bit) \
-{ \
- vu##bit *_dest = (vu##bit *)(dest); \
- u32 _size = size; \
- DmaFill##bit(dmaNum, 0, _dest, _size); \
-}
+#define DMA_CLEAR(dmaNum, dest, size, bit) \
+ { \
+ vu##bit* _dest = (vu##bit*)(dest); \
+ u32 _size = size; \
+ DmaFill##bit(dmaNum, 0, _dest, _size); \
+ }
#define DmaClear16(dmaNum, dest, size) DMA_CLEAR(dmaNum, dest, size, 16)
#define DmaClear32(dmaNum, dest, size) DMA_CLEAR(dmaNum, dest, size, 32)
-#define DMA_COPY(dmaNum, src, dest, size, bit) \
- DmaSet(dmaNum, \
- src, \
- dest, \
- (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_INC | DMA_DEST_INC) << 16 \
- | ((size)/(bit/8)))
+#define DMA_COPY(dmaNum, src, dest, size, bit) \
+ DmaSet(dmaNum, src, dest, \
+ (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_INC | DMA_DEST_INC) << 16 | ((size) / (bit / 8)))
#define DmaCopy16(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 16)
#define DmaCopy32(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 32)
-#define DmaStop(dmaNum) \
-{ \
- vu16 *dmaRegs = (vu16 *)REG_ADDR_DMA##dmaNum; \
- dmaRegs[5] &= ~(DMA_START_MASK | DMA_DREQ_ON | DMA_REPEAT); \
- dmaRegs[5] &= ~DMA_ENABLE; \
- dmaRegs[5]; \
-}
+#define DmaStop(dmaNum) \
+ { \
+ vu16* dmaRegs = (vu16*)REG_ADDR_DMA##dmaNum; \
+ dmaRegs[5] &= ~(DMA_START_MASK | DMA_DREQ_ON | DMA_REPEAT); \
+ dmaRegs[5] &= ~DMA_ENABLE; \
+ 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; \
+ 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 DmaClearLarge(dmaNum, dest, size, block, bit) \
-{ \
- void *_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 DmaClearLarge(dmaNum, dest, size, block, bit) \
+ { \
+ void* _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 DmaFillLarge(dmaNum, value, dest, size, block, bit) \
-{ \
- void *_dest = (void *)dest; \
- u32 _size = size; \
- while (1) \
{ \
- DmaFill##bit(dmaNum, value, _dest, (block)); \
- _dest += (block); \
- _size -= (block); \
- if (_size <= (block)) \
- { \
- DmaFill##bit(dmaNum, value, _dest, _size); \
- break; \
+ void* _dest = (void*)dest; \
+ u32 _size = size; \
+ while (1) { \
+ DmaFill##bit(dmaNum, value, _dest, (block)); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) { \
+ DmaFill##bit(dmaNum, value, _dest, _size); \
+ break; \
+ } \
} \
- } \
-}
+ }
#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16)
@@ -151,44 +137,44 @@
#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, 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); \
-}
+ { \
+ 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)
#define DmaFillDefvars(dmaNum, value, dest, size, bit) \
-{ \
- void *_dest = (void *)dest; \
- u32 _size = size; \
- DmaFill##bit(dmaNum, value, _dest, _size); \
-}
+ { \
+ void* _dest = (void*)dest; \
+ u32 _size = size; \
+ DmaFill##bit(dmaNum, value, _dest, _size); \
+ }
#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16)
#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32)
#define DmaClearDefvars(dmaNum, dest, size, bit) \
-{ \
- void *_dest = dest; \
- u32 _size = size; \
- DmaClear##bit(dmaNum, _dest, _size); \
-}
+ { \
+ void* _dest = dest; \
+ u32 _size = size; \
+ DmaClear##bit(dmaNum, _dest, _size); \
+ }
#define DmaClear16Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 16)
#define DmaClear32Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 32)
-#define IntrEnable(flags) \
-{ \
- u16 imeTemp; \
- \
- imeTemp = REG_IME; \
- REG_IME = 0; \
- REG_IE |= flags; \
- REG_IME = imeTemp; \
-}
+#define IntrEnable(flags) \
+ { \
+ u16 imeTemp; \
+ \
+ imeTemp = REG_IME; \
+ REG_IME = 0; \
+ REG_IE |= flags; \
+ REG_IME = imeTemp; \
+ }
#endif // GUARD_GBA_MACRO_H
diff --git a/include/gba/multi_boot.h b/include/gba/multi_boot.h
index 0f825e71..6aa5a2f6 100644
--- a/include/gba/multi_boot.h
+++ b/include/gba/multi_boot.h
@@ -1,40 +1,39 @@
#ifndef GUARD_GBA_MULTI_BOOT_H
#define GUARD_GBA_MULTI_BOOT_H
-#define MULTIBOOT_NCHILD 3 // Maximum number of slaves
-#define MULTIBOOT_HEADER_SIZE 0xc0 // Header size
+#define MULTIBOOT_NCHILD 3 // Maximum number of slaves
+#define MULTIBOOT_HEADER_SIZE 0xc0 // Header size
#define MULTIBOOT_SEND_SIZE_MIN 0x100 // Minimum transmission size
#define MULTIBOOT_SEND_SIZE_MAX 0x40000 // Maximum transmission size
-struct MultiBootParam
-{
- u32 system_work[5]; // Can be rewritten within system call.
- // Used with library also.
- u8 handshake_data; // Handshake data from client
+struct MultiBootParam {
+ u32 system_work[5]; // Can be rewritten within system call.
+ // Used with library also.
+ u8 handshake_data; // Handshake data from client
u8 padding;
- u16 handshake_timeout; // Handshake timeout check counter
- u8 probe_count; // If not 0, during client recognition or
- // boot program transfer
- u8 client_data[MULTIBOOT_NCHILD]; // Handshake data from client
- u8 palette_data; // Palette's flashing parameter during load
- // for client
- u8 response_bit; // When high probability that slave
- // connected, 4P-2P: d3-d1 is 1.
- u8 client_bit; // For slave distinguished as client,
- // 4P-2P: d3-d1 is 1.
- u8 reserved1; // Reserved
- const u8 *boot_srcp; // Boot program start (after header)
- const u8 *boot_endp; // Boot program end pointer
- const u8 *masterp; // Pointer to header referenced and output
- // by master
- u8 *reserved2[MULTIBOOT_NCHILD]; // Reserved
- u32 system_work2[4]; // Can be rewritten within system call.
- u8 sendflag; // If SC7=1 and during send, not 0
- u8 probe_target_bit; // If target recognized with client,
- // 4P-2P: d3-d1 is 1.
- u8 check_wait; // Wait frame until recoginition with client
- u8 server_type; // client recognize method 0= Low Speed
- // 1= High Speed
+ u16 handshake_timeout; // Handshake timeout check counter
+ u8 probe_count; // If not 0, during client recognition or
+ // boot program transfer
+ u8 client_data[MULTIBOOT_NCHILD]; // Handshake data from client
+ u8 palette_data; // Palette's flashing parameter during load
+ // for client
+ u8 response_bit; // When high probability that slave
+ // connected, 4P-2P: d3-d1 is 1.
+ u8 client_bit; // For slave distinguished as client,
+ // 4P-2P: d3-d1 is 1.
+ u8 reserved1; // Reserved
+ const u8* boot_srcp; // Boot program start (after header)
+ const u8* boot_endp; // Boot program end pointer
+ const u8* masterp; // Pointer to header referenced and output
+ // by master
+ u8* reserved2[MULTIBOOT_NCHILD]; // Reserved
+ u32 system_work2[4]; // Can be rewritten within system call.
+ u8 sendflag; // If SC7=1 and during send, not 0
+ u8 probe_target_bit; // If target recognized with client,
+ // 4P-2P: d3-d1 is 1.
+ u8 check_wait; // Wait frame until recoginition with client
+ u8 server_type; // client recognize method 0= Low Speed
+ // 1= High Speed
};
/* Error Code
@@ -46,30 +45,30 @@ struct MultiBootParam
* "Slave is not connected."
* "Cannot recognize the slave."
* ,etc. Messages easy for the player to understand are good.
- * NO_PROBE_TARGET: When recognizing client all machines returned
+ * NO_PROBE_TARGET: When recognizing client all machines returned
* abnormal data and there is no target.
- * NO_DLREADY: client did not return a download preparations
+ * NO_DLREADY: client did not return a download preparations
* possible message.
* BOOT_FAILURE: MultiBoot() system call returned an error.
- * HANDSHAKE_FAILURE: Failed to do handshake with master which should
+ * HANDSHAKE_FAILURE: Failed to do handshake with master which should
* occur immediately after boot of slave.
- * (Slave may be in infinite loop, request that power be turned off
+ * (Slave may be in infinite loop, request that power be turned off
* and on again.)
*/
-#define MULTIBOOT_ERROR_04 0x04
-#define MULTIBOOT_ERROR_08 0x08
-#define MULTIBOOT_ERROR_0c 0x0c
-#define MULTIBOOT_ERROR_40 0x40
-#define MULTIBOOT_ERROR_44 0x44
-#define MULTIBOOT_ERROR_48 0x48
-#define MULTIBOOT_ERROR_4c 0x4c
-#define MULTIBOOT_ERROR_80 0x80
-#define MULTIBOOT_ERROR_84 0x84
-#define MULTIBOOT_ERROR_88 0x88
-#define MULTIBOOT_ERROR_8c 0x8c
-#define MULTIBOOT_ERROR_NO_PROBE_TARGET 0x50
-#define MULTIBOOT_ERROR_NO_DLREADY 0x60
-#define MULTIBOOT_ERROR_BOOT_FAILURE 0x70
+#define MULTIBOOT_ERROR_04 0x04
+#define MULTIBOOT_ERROR_08 0x08
+#define MULTIBOOT_ERROR_0c 0x0c
+#define MULTIBOOT_ERROR_40 0x40
+#define MULTIBOOT_ERROR_44 0x44
+#define MULTIBOOT_ERROR_48 0x48
+#define MULTIBOOT_ERROR_4c 0x4c
+#define MULTIBOOT_ERROR_80 0x80
+#define MULTIBOOT_ERROR_84 0x84
+#define MULTIBOOT_ERROR_88 0x88
+#define MULTIBOOT_ERROR_8c 0x8c
+#define MULTIBOOT_ERROR_NO_PROBE_TARGET 0x50
+#define MULTIBOOT_ERROR_NO_DLREADY 0x60
+#define MULTIBOOT_ERROR_BOOT_FAILURE 0x70
#define MULTIBOOT_ERROR_HANDSHAKE_FAILURE 0x71
/* After an error, or when a value other than 0xffff is returned,
@@ -83,22 +82,22 @@ struct MultiBootParam
#define MULTIBOOT_CONNECTION_CHECK_WAIT 15
/* Recognition of Slave
- * Value set in MultiBootParam structure member server_type
+ * Value set in MultiBootParam structure member server_type
* MULTIBOOT_SERVER_TYPE_NORMAL: Slow speed recognition mode
* The MultiBootMain() function communicates 2 bytes with one call.
- * Therefore, processing returns from MultiBootMain() function
+ * Therefore, processing returns from MultiBootMain() function
* in short time.
* MULTIBOOT_SERVER_TYPE_QUICK: High speed recognition mode
* In MultiBootMain() function as many consecutive communications
* are done as possible.
- * Therefore, processing may not return from MultiBootMain() for
+ * Therefore, processing may not return from MultiBootMain() for
* several dozen frames.
- * During this time, there is no problem if processing for sound and
- * display cannot be done. If processing for sound and display is
+ * During this time, there is no problem if processing for sound and
+ * display cannot be done. If processing for sound and display is
* done with timer interrupt processing, you can use.
*/
#define MULTIBOOT_SERVER_TYPE_NORMAL 0
-#define MULTIBOOT_SERVER_TYPE_QUICK 1
+#define MULTIBOOT_SERVER_TYPE_QUICK 1
/* Timeout for slave's final start up check 400 frames */
#define MULTIBOOT_HANDSHAKE_TIMEOUT 400
diff --git a/include/gba/syscall.h b/include/gba/syscall.h
index 22fdf09f..dc528ffe 100644
--- a/include/gba/syscall.h
+++ b/include/gba/syscall.h
@@ -1,15 +1,15 @@
#ifndef GUARD_GBA_SYSCALL_H
#define GUARD_GBA_SYSCALL_H
-#define RESET_EWRAM 0x01
-#define RESET_IWRAM 0x02
-#define RESET_PALETTE 0x04
-#define RESET_VRAM 0x08
-#define RESET_OAM 0x10
-#define RESET_SIO_REGS 0x20
+#define RESET_EWRAM 0x01
+#define RESET_IWRAM 0x02
+#define RESET_PALETTE 0x04
+#define RESET_VRAM 0x08
+#define RESET_OAM 0x10
+#define RESET_SIO_REGS 0x20
#define RESET_SOUND_REGS 0x40
-#define RESET_REGS 0x80
-#define RESET_ALL 0xFF
+#define RESET_REGS 0x80
+#define RESET_ALL 0xFF
void SoftReset(u32 resetFlags);
@@ -22,28 +22,28 @@ u16 Sqrt(u32 num);
u16 ArcTan2(s16 x, s16 y);
#define CPU_SET_SRC_FIXED 0x01000000
-#define CPU_SET_16BIT 0x00000000
-#define CPU_SET_32BIT 0x04000000
+#define CPU_SET_16BIT 0x00000000
+#define CPU_SET_32BIT 0x04000000
-void CpuSet(const void *src, void *dest, u32 control);
+void CpuSet(const void* src, void* dest, u32 control);
#define CPU_FAST_SET_SRC_FIXED 0x01000000
-void CpuFastSet(const void *src, void *dest, u32 control);
+void CpuFastSet(const void* src, void* dest, u32 control);
-void BgAffineSet(struct BgAffineSrcData *src, struct BgAffineDstData *dest, s32 count);
+void BgAffineSet(struct BgAffineSrcData* src, struct BgAffineDstData* dest, s32 count);
-void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset);
+void ObjAffineSet(struct ObjAffineSrcData* src, void* dest, s32 count, s32 offset);
-void LZ77UnCompWram(const void *src, void *dest);
+void LZ77UnCompWram(const void* src, void* dest);
-void LZ77UnCompVram(const void *src, void *dest);
+void LZ77UnCompVram(const void* src, void* dest);
-void RLUnCompWram(const void *src, void *dest);
+void RLUnCompWram(const void* src, void* dest);
-void RLUnCompVram(const void *src, void *dest);
+void RLUnCompVram(const void* src, void* dest);
-int MultiBoot(struct MultiBootParam *mp);
+int MultiBoot(struct MultiBootParam* mp);
s32 Div(s32 num, s32 denom);
diff --git a/include/gba/types.h b/include/gba/types.h
index 2ed9aa63..4f4136ed 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -3,119 +3,115 @@
#include <stdint.h>
-typedef uint8_t u8;
+typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
typedef uint64_t u64;
-typedef int8_t s8;
-typedef int16_t s16;
-typedef int32_t s32;
-typedef int64_t s64;
+typedef int8_t s8;
+typedef int16_t s16;
+typedef int32_t s32;
+typedef int64_t s64;
-typedef volatile u8 vu8;
+typedef volatile u8 vu8;
typedef volatile u16 vu16;
typedef volatile u32 vu32;
typedef volatile u64 vu64;
-typedef volatile s8 vs8;
+typedef volatile s8 vs8;
typedef volatile s16 vs16;
typedef volatile s32 vs32;
typedef volatile s64 vs64;
-typedef float f32;
+typedef float f32;
typedef double f64;
-typedef u8 bool8;
+typedef u8 bool8;
typedef u16 bool16;
typedef u32 bool32;
-struct BgCnt
-{
- u16 priority:2;
- u16 charBaseBlock:2;
- u16 dummy:2;
- u16 mosaic:1;
- u16 palettes:1;
- u16 screenBaseBlock:5;
- u16 areaOverflowMode:1;
- u16 screenSize:2;
+struct BgCnt {
+ u16 priority : 2;
+ u16 charBaseBlock : 2;
+ u16 dummy : 2;
+ u16 mosaic : 1;
+ u16 palettes : 1;
+ u16 screenBaseBlock : 5;
+ u16 areaOverflowMode : 1;
+ u16 screenSize : 2;
};
typedef volatile struct BgCnt vBgCnt;
-struct PlttData
-{
- u16 r:5; // red
- u16 g:5; // green
- u16 b:5; // blue
- u16 unused_15:1;
+struct PlttData {
+ u16 r : 5; // red
+ u16 g : 5; // green
+ u16 b : 5; // blue
+ u16 unused_15 : 1;
};
-struct OamData
-{
- /*0x00*/ u32 y:8;
- /*0x01*/ u32 affineMode:2; // 0x1, 0x2 -> 0x4
- u32 objMode:2; // 0x4, 0x8 -> 0xC
- u32 mosaic:1; // 0x10
- u32 bpp:1; // 0x20
- u32 shape:2; // 0x40, 0x80 -> 0xC0
-
- /*0x02*/ u32 x:9;
- u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode
- u32 size:2; // 0x4000, 0x8000 -> 0xC000
-
- /*0x04*/ u16 tileNum:10; // 0x3FF
- u16 priority:2; // 0x400, 0x800 -> 0xC00
- u16 paletteNum:4;
+struct OamData {
+ /*0x00*/ u32 y : 8;
+ /*0x01*/ u32 affineMode : 2; // 0x1, 0x2 -> 0x4
+ u32 objMode : 2; // 0x4, 0x8 -> 0xC
+ u32 mosaic : 1; // 0x10
+ u32 bpp : 1; // 0x20
+ u32 shape : 2; // 0x40, 0x80 -> 0xC0
+
+ /*0x02*/ u32 x : 9;
+ u32 matrixNum : 5; // bits 3/4 are h-flip/v-flip if not in affine mode
+ u32 size : 2; // 0x4000, 0x8000 -> 0xC000
+
+ /*0x04*/ u16 tileNum : 10; // 0x3FF
+ u16 priority : 2; // 0x400, 0x800 -> 0xC00
+ u16 paletteNum : 4;
/*0x06*/ u16 affineParam;
};
-#define ST_OAM_HFLIP 0x08
-#define ST_OAM_VFLIP 0x10
+#define ST_OAM_HFLIP 0x08
+#define ST_OAM_VFLIP 0x10
#define ST_OAM_MNUM_FLIP_MASK 0x18
#define ST_OAM_OBJ_NORMAL 0
-#define ST_OAM_OBJ_BLEND 1
+#define ST_OAM_OBJ_BLEND 1
#define ST_OAM_OBJ_WINDOW 2
-#define ST_OAM_AFFINE_OFF 0
+#define ST_OAM_AFFINE_OFF 0
#define ST_OAM_AFFINE_NORMAL 1
-#define ST_OAM_AFFINE_ERASE 2
+#define ST_OAM_AFFINE_ERASE 2
#define ST_OAM_AFFINE_DOUBLE 3
-#define ST_OAM_AFFINE_ON_MASK 1
+#define ST_OAM_AFFINE_ON_MASK 1
#define ST_OAM_AFFINE_DOUBLE_MASK 2
#define ST_OAM_4BPP 0
#define ST_OAM_8BPP 1
-#define ST_OAM_SQUARE 0
+#define ST_OAM_SQUARE 0
#define ST_OAM_H_RECTANGLE 1
#define ST_OAM_V_RECTANGLE 2
-#define ST_OAM_SIZE_0 0
-#define ST_OAM_SIZE_1 1
-#define ST_OAM_SIZE_2 2
-#define ST_OAM_SIZE_3 3
+#define ST_OAM_SIZE_0 0
+#define ST_OAM_SIZE_1 1
+#define ST_OAM_SIZE_2 2
+#define ST_OAM_SIZE_3 3
-#define SPRITE_SIZE_8x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_SQUARE))
-#define SPRITE_SIZE_16x16 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_SQUARE))
-#define SPRITE_SIZE_32x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_SQUARE))
-#define SPRITE_SIZE_64x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_SQUARE))
+#define SPRITE_SIZE_8x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_SQUARE))
+#define SPRITE_SIZE_16x16 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_SQUARE))
+#define SPRITE_SIZE_32x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_SQUARE))
+#define SPRITE_SIZE_64x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_SQUARE))
-#define SPRITE_SIZE_16x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_H_RECTANGLE))
-#define SPRITE_SIZE_32x8 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_H_RECTANGLE))
-#define SPRITE_SIZE_32x16 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_H_RECTANGLE))
-#define SPRITE_SIZE_64x32 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_H_RECTANGLE))
+#define SPRITE_SIZE_16x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_H_RECTANGLE))
+#define SPRITE_SIZE_32x8 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_H_RECTANGLE))
+#define SPRITE_SIZE_32x16 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_H_RECTANGLE))
+#define SPRITE_SIZE_64x32 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_H_RECTANGLE))
-#define SPRITE_SIZE_8x16 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_V_RECTANGLE))
-#define SPRITE_SIZE_8x32 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_V_RECTANGLE))
-#define SPRITE_SIZE_16x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_V_RECTANGLE))
-#define SPRITE_SIZE_32x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_V_RECTANGLE))
+#define SPRITE_SIZE_8x16 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_V_RECTANGLE))
+#define SPRITE_SIZE_8x32 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_V_RECTANGLE))
+#define SPRITE_SIZE_16x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_V_RECTANGLE))
+#define SPRITE_SIZE_32x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_V_RECTANGLE))
-#define SPRITE_SIZE(dim) ((SPRITE_SIZE_##dim >> 2) & 0x03)
+#define SPRITE_SIZE(dim) ((SPRITE_SIZE_##dim >> 2) & 0x03)
#define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0x03)
-struct BgAffineSrcData
-{
+struct BgAffineSrcData {
s32 texX;
s32 texY;
s16 scrX;
@@ -125,8 +121,7 @@ struct BgAffineSrcData
u16 alpha;
};
-struct BgAffineDstData
-{
+struct BgAffineDstData {
s16 pa;
s16 pb;
s16 pc;
@@ -135,134 +130,127 @@ struct BgAffineDstData
s32 dy;
};
-struct ObjAffineSrcData
-{
+struct ObjAffineSrcData {
s16 xScale;
s16 yScale;
u16 rotation;
};
// Normal SIO Control Structure
-struct SioNormalCnt
-{
- u16 sck_I_O:1; // Clock I/O Select
- u16 sck:1; // Internal Clock Select
- u16 ackRecv:1; // Transfer Enable Flag Receive
- u16 ackSend:1; // Transfer Enable Flag Send
- u16 unused_6_4:3;
- u16 enable:1; // SIO Enable
- u16 unused_11_8:4;
- u16 mode:2; // Communication Mode Select
- u16 ifEnable:1; // Interrupt Request Enable
- u16 unused_15:1;
- u8 data; // Data
- u8 unused_31_24;
+struct SioNormalCnt {
+ u16 sck_I_O : 1; // Clock I/O Select
+ u16 sck : 1; // Internal Clock Select
+ u16 ackRecv : 1; // Transfer Enable Flag Receive
+ u16 ackSend : 1; // Transfer Enable Flag Send
+ u16 unused_6_4 : 3;
+ u16 enable : 1; // SIO Enable
+ u16 unused_11_8 : 4;
+ u16 mode : 2; // Communication Mode Select
+ u16 ifEnable : 1; // Interrupt Request Enable
+ u16 unused_15 : 1;
+ u8 data; // Data
+ u8 unused_31_24;
};
-#define ST_SIO_8BIT_MODE 0 // Normal 8-bit communication mode
-#define ST_SIO_32BIT_MODE 1 // Normal 32-bit communication mode
+#define ST_SIO_8BIT_MODE 0 // Normal 8-bit communication mode
+#define ST_SIO_32BIT_MODE 1 // Normal 32-bit communication mode
-#define ST_SIO_SCK_OUT 0 // Select external clock
-#define ST_SIO_SCK_IN 1 // Select internal clock
-#define ST_SIO_IN_SCK_256K 0 // Select internal clock 256KHz
-#define ST_SIO_IN_SCK_2M 1 // Select 2MHz
+#define ST_SIO_SCK_OUT 0 // Select external clock
+#define ST_SIO_SCK_IN 1 // Select internal clock
+#define ST_SIO_IN_SCK_256K 0 // Select internal clock 256KHz
+#define ST_SIO_IN_SCK_2M 1 // Select 2MHz
// Multi-player SIO Control Structure
-struct SioMultiCnt
-{
- u16 baudRate:2; // baud rate
- u16 si:1; // SI terminal
- u16 sd:1; // SD terminal
- u16 id:2; // ID
- u16 error:1; // error flag
- u16 enable:1; // SIO enable
- u16 unused_11_8:4;
- u16 mode:2; // communication mode (should equal 2)
- u16 ifEnable:1; // IRQ enable
- u16 unused_15:1;
- u16 data; // data
+struct SioMultiCnt {
+ u16 baudRate : 2; // baud rate
+ u16 si : 1; // SI terminal
+ u16 sd : 1; // SD terminal
+ u16 id : 2; // ID
+ u16 error : 1; // error flag
+ u16 enable : 1; // SIO enable
+ u16 unused_11_8 : 4;
+ u16 mode : 2; // communication mode (should equal 2)
+ u16 ifEnable : 1; // IRQ enable
+ u16 unused_15 : 1;
+ u16 data; // data
};
-#define ST_SIO_MULTI_MODE 2 // Multi-play communication mode
+#define ST_SIO_MULTI_MODE 2 // Multi-play communication mode
-#define ST_SIO_9600_BPS 0 // Baud rate 9600 bps
-#define ST_SIO_38400_BPS 1 // 38400 bps
-#define ST_SIO_57600_BPS 2 // 57600 bps
-#define ST_SIO_115200_BPS 3 // 115200 bps
-#define ST_SIO_MULTI_PARENT 1 // Multi-play communication Connect master
-#define ST_SIO_MULTI_CHILD 0 // Connect slave
+#define ST_SIO_9600_BPS 0 // Baud rate 9600 bps
+#define ST_SIO_38400_BPS 1 // 38400 bps
+#define ST_SIO_57600_BPS 2 // 57600 bps
+#define ST_SIO_115200_BPS 3 // 115200 bps
+#define ST_SIO_MULTI_PARENT 1 // Multi-play communication Connect master
+#define ST_SIO_MULTI_CHILD 0 // Connect slave
// UART - SIO Control Structure
-struct SioUartCnt
-{
- u16 baudRate:2; // Baud Rate
- u16 ctsEnable:1; // Send Signal Enable
- u16 paritySelect:1; // Parity Even/Odd
- u16 transDataFull:1; // Transmit Data Full
- u16 recvDataEmpty:1; // Receive Data Empty
- u16 error:1; // Error Detect
- u16 length:1; // Data Length
- u16 fifoEnable:1; // FIFO Enable
- u16 parityEnable:1; // Parity Enable
- u16 transEnable:1; // Transmitter Enable
- u16 recvEnable:1; // Receiver Enable
- u16 mode:2; // Communication Mode Select
- u16 ifEnable:1; // Interrupt Request Enable
- u16 unused_15:1;
- u8 data; // Data
- u8 unused_31_24;
+struct SioUartCnt {
+ u16 baudRate : 2; // Baud Rate
+ u16 ctsEnable : 1; // Send Signal Enable
+ u16 paritySelect : 1; // Parity Even/Odd
+ u16 transDataFull : 1; // Transmit Data Full
+ u16 recvDataEmpty : 1; // Receive Data Empty
+ u16 error : 1; // Error Detect
+ u16 length : 1; // Data Length
+ u16 fifoEnable : 1; // FIFO Enable
+ u16 parityEnable : 1; // Parity Enable
+ u16 transEnable : 1; // Transmitter Enable
+ u16 recvEnable : 1; // Receiver Enable
+ u16 mode : 2; // Communication Mode Select
+ u16 ifEnable : 1; // Interrupt Request Enable
+ u16 unused_15 : 1;
+ u8 data; // Data
+ u8 unused_31_24;
};
-#define ST_SIO_UART_MODE 3 // UART communication mode
+#define ST_SIO_UART_MODE 3 // UART communication mode
-#define ST_SIO_UART_7BIT 0 // UART communication data length 7 bits
-#define ST_SIO_UART_8BIT 1 // 8 bits
-#define ST_SIO_PARITY_EVEN 0 // Even parity
-#define ST_SIO_PARITY_ODD 1 // Odd parity
+#define ST_SIO_UART_7BIT 0 // UART communication data length 7 bits
+#define ST_SIO_UART_8BIT 1 // 8 bits
+#define ST_SIO_PARITY_EVEN 0 // Even parity
+#define ST_SIO_PARITY_ODD 1 // Odd parity
// JOY Bus Communication Control Structure
-struct JoyCnt
-{
- u8 ifReset:1; // JOY Bus Reset Interrupt Request
- u8 ifRecv:1; // JOY Bus Received Interrupt Request
- u8 ifSend:1; // JOY Bus Sent Interrupt Request
- u8 unused_5_3:3;
- u8 ifEnable:1; // Interrupt Request Enable
- u8 unused_7:1;
+struct JoyCnt {
+ u8 ifReset : 1; // JOY Bus Reset Interrupt Request
+ u8 ifRecv : 1; // JOY Bus Received Interrupt Request
+ u8 ifSend : 1; // JOY Bus Sent Interrupt Request
+ u8 unused_5_3 : 3;
+ u8 ifEnable : 1; // Interrupt Request Enable
+ u8 unused_7 : 1;
};
// JOY Bus Communication Status Structure
-struct JoyStat
-{
- u8 unused_0:1;
- u8 recv:1; // Receive Status
- u8 unused_2:1;
- u8 send:1; // Send Status
- u8 flags:2; // General Flag
- u8 unused_7_6:2;
+struct JoyStat {
+ u8 unused_0 : 1;
+ u8 recv : 1; // Receive Status
+ u8 unused_2 : 1;
+ u8 send : 1; // Send Status
+ u8 flags : 2; // General Flag
+ u8 unused_7_6 : 2;
};
// General Input/Output Control Structure
-struct RCnt
-{
- u8 sc:1; // Data
- u8 sd:1;
- u8 si:1;
- u8 so:1;
- u8 sc_i_o:1; // I/O Select
- u8 sd_i_o:1;
- u8 si_i_o:1;
- u8 so_i_o:1;
- u8 ifEnable:1; // Interrupt Request Enable
- u8 unused_13_9:5;
- u8 sioModeMaster:2; // SIO Mode Master
+struct RCnt {
+ u8 sc : 1; // Data
+ u8 sd : 1;
+ u8 si : 1;
+ u8 so : 1;
+ u8 sc_i_o : 1; // I/O Select
+ u8 sd_i_o : 1;
+ u8 si_i_o : 1;
+ u8 so_i_o : 1;
+ u8 ifEnable : 1; // Interrupt Request Enable
+ u8 unused_13_9 : 5;
+ u8 sioModeMaster : 2; // SIO Mode Master
};
-#define ST_R_SIO_MASTER_MODE 0 // SIO master mode
-#define ST_R_DIRECT_MODE 2 // General input/output communication mode
-#define ST_R_JOY_MODE 3 // JOY communication mode
+#define ST_R_SIO_MASTER_MODE 0 // SIO master mode
+#define ST_R_DIRECT_MODE 2 // General input/output communication mode
+#define ST_R_JOY_MODE 3 // JOY communication mode
-#define ST_R_IN 0 // Select input
-#define ST_R_OUT 1 // Select output
+#define ST_R_IN 0 // Select input
+#define ST_R_OUT 1 // Select output
#endif // GUARD_GBA_TYPES_H
diff --git a/include/global.h b/include/global.h
index 5e1677ca..13f67e6e 100644
--- a/include/global.h
+++ b/include/global.h
@@ -11,15 +11,16 @@
#define asm_comment(x) asm volatile("@ -- " x " -- ")
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
-#if defined (__APPLE__) || defined (__CYGWIN__)
+#if defined(__APPLE__) || defined(__CYGWIN__)
// Get the IDE to stfu
// We define it this way to fool preproc.
-#define INCBIN(...) {0}
-#define INCBIN_U8 INCBIN
+#define INCBIN(...) \
+ { 0 }
+#define INCBIN_U8 INCBIN
#define INCBIN_U16 INCBIN
#define INCBIN_U32 INCBIN
-#define INCBIN_S8 INCBIN
+#define INCBIN_S8 INCBIN
#define INCBIN_S16 INCBIN
#define INCBIN_S32 INCBIN
#define _(x) (x)
@@ -28,20 +29,20 @@
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
-#define SWAP(a, b, temp) \
-{ \
- temp = a; \
- a = b; \
- b = temp; \
-}
+#define SWAP(a, b, temp) \
+ { \
+ temp = a; \
+ a = b; \
+ b = temp; \
+ }
// useful math macros
// Converts a number to Q8.8 fixed-point format
-#define Q_8_8(n) ((s16)((n) * 256))
+#define Q_8_8(n) ((s16)((n)*256))
// Converts a number to Q4.12 fixed-point format
-#define Q_4_12(n) ((s16)((n) * 4096))
+#define Q_4_12(n) ((s16)((n)*4096))
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) >= (b) ? (a) : (b))
diff --git a/include/greatFairy.h b/include/greatFairy.h
index 77762242..073f6a37 100644
--- a/include/greatFairy.h
+++ b/include/greatFairy.h
@@ -2,10 +2,10 @@
#define GREATFAIRY_H
extern u32 __modsi3(u32, u32);
-extern void InitializeAnimation(Entity *, u32);
+extern void InitializeAnimation(Entity*, u32);
extern void sub_08087380();
extern u32 CheckRoomFlag();
-extern Entity *sub_080873AC(Entity*, u32, u32);
+extern Entity* sub_080873AC(Entity*, u32, u32);
extern void PositionRelative();
extern void CopyPosition();
extern void DoFade();
@@ -19,19 +19,19 @@ extern void sub_080045D4();
extern void sub_0806F69C();
extern u32 Random();
-extern void (*gGreatFairy[11])(Entity *);
-extern void (*gGreatFairyBehaviors[6])(Entity *);
-extern void (*gGreatFairyWings[3])(Entity *);
-extern void (*gGreatFairyWake[2])(Entity *);
-extern void (*gGreatFairyMini[3])(Entity *);
-extern void (*gGreatFairyMiniAnim[3])(Entity *);
-extern void (*gGreatFairyDrip[2])(Entity *);
-extern void (*gGreatFairyRipple[2])(Entity *);
-extern void (*gGreatFairyBigRipple[2])(Entity *);
-extern void (*gGreatFairyEnergy[2])(Entity *);
-extern void (*gGreatFairyInteract1[4])(Entity *);
-extern void (*gGreatFairyInteract2[5])(Entity *);
-extern void (*gUnk_081207A4[2])(Entity *);
+extern void (*gGreatFairy[11])(Entity*);
+extern void (*gGreatFairyBehaviors[6])(Entity*);
+extern void (*gGreatFairyWings[3])(Entity*);
+extern void (*gGreatFairyWake[2])(Entity*);
+extern void (*gGreatFairyMini[3])(Entity*);
+extern void (*gGreatFairyMiniAnim[3])(Entity*);
+extern void (*gGreatFairyDrip[2])(Entity*);
+extern void (*gGreatFairyRipple[2])(Entity*);
+extern void (*gGreatFairyBigRipple[2])(Entity*);
+extern void (*gGreatFairyEnergy[2])(Entity*);
+extern void (*gGreatFairyInteract1[4])(Entity*);
+extern void (*gGreatFairyInteract2[5])(Entity*);
+extern void (*gUnk_081207A4[2])(Entity*);
extern u32 gUnk_0810C2E4;
extern RoomControls gRoomControls;
diff --git a/include/item.h b/include/item.h
index 4ef90ee3..74e207c3 100644
--- a/include/item.h
+++ b/include/item.h
@@ -4,8 +4,8 @@
#define ITEM_H
/* On hold until naming conflicts are resolved */
-/*
- enum
+/*
+ enum
{
Untyped,
SmithSword = 0x01,
@@ -127,15 +127,15 @@
LongSpin = 0x75
} ItemType;
*/
- typedef struct {
- u8 unk;
- u8 behaviorID;
- u8 unk2;
- u8 unk3;
- u8 stateID;
- u8 filler[4];
- u8 unk4;
- u8 filler2[4];
- u8 unk5;
- } ItemBehavior;
+typedef struct {
+ u8 unk;
+ u8 behaviorID;
+ u8 unk2;
+ u8 unk3;
+ u8 stateID;
+ u8 filler[4];
+ u8 unk4;
+ u8 filler2[4];
+ u8 unk5;
+} ItemBehavior;
#endif \ No newline at end of file
diff --git a/include/link.h b/include/link.h
index 3050756a..a8a02bdf 100644
--- a/include/link.h
+++ b/include/link.h
@@ -5,64 +5,64 @@
#include "entity.h"
typedef struct {
- u8 filler[2];
- u8 jumpStatus;
- u8 filler2[2];
- u8 heldObject;
- u8 pushedObject;
- u8 unk;
- u16 unk2;
- u8 unk3;
- u8 keepFacing;
- u8 linkAction;
- u8 filler3[2];
- u8 hurtBlinkSpeed;
- u8 filler4[4];
- u16 filler5[3];
- u8 filler6[8];
- u16 filler7[2];
- u8 swimState;
- u8 filler8[5];
- u8 *unk4;
+ u8 filler[2];
+ u8 jumpStatus;
+ u8 filler2[2];
+ u8 heldObject;
+ u8 pushedObject;
+ u8 unk;
+ u16 unk2;
+ u8 unk3;
+ u8 keepFacing;
+ u8 linkAction;
+ u8 filler3[2];
+ u8 hurtBlinkSpeed;
+ u8 filler4[4];
+ u16 filler5[3];
+ u8 filler6[8];
+ u16 filler7[2];
+ u8 swimState;
+ u8 filler8[5];
+ u8* unk4;
union {
u32 all;
- struct {
- u32 filler9:3;
- u32 noMinishCap:1;
- u32 pullingState:1;
- u32 windyState:1;
- u32 filler10:4;
- u32 slipperyState:1;
- u32 filler11:5;
- u32 filler11b:16;
- } PACKED b;
+ struct {
+ u32 filler9 : 3;
+ u32 noMinishCap : 1;
+ u32 pullingState : 1;
+ u32 windyState : 1;
+ u32 filler10 : 4;
+ u32 slipperyState : 1;
+ u32 filler11 : 5;
+ u32 filler11b : 16;
+ } PACKED b;
} flags;
- u8 filler12[6];
- u16 unk5;
- u8 filler13[2];
- u8 swordGoldParticle:1;
- u8 swordBlueParticle:1;
- u8 filler14:6;
- u8 unk6;
- u8 filler15[75];
- u8 unk7;
+ u8 filler12[6];
+ u16 unk5;
+ u8 filler13[2];
+ u8 swordGoldParticle : 1;
+ u8 swordBlueParticle : 1;
+ u8 filler14 : 6;
+ u8 unk6;
+ u8 filler15[75];
+ u8 unk7;
} LinkState;
typedef struct {
- u8 walletType;
- u8 heartPieces;
- u8 health;
- u8 maxHealth;
- u8 bombCount;
- u8 arrowCount;
- u8 bombBagType;
- u8 quiverType;
- u8 filler[4];
- u8 itemOnA;
- u8 itemonB;
- u8 filler2[10];
- u16 rupees;
- u8 filler3[12];
+ u8 walletType;
+ u8 heartPieces;
+ u8 health;
+ u8 maxHealth;
+ u8 bombCount;
+ u8 arrowCount;
+ u8 bombBagType;
+ u8 quiverType;
+ u8 filler[4];
+ u8 itemOnA;
+ u8 itemonB;
+ u8 filler2[10];
+ u16 rupees;
+ u8 filler3[12];
} Stats;
extern LinkState gLinkState;
diff --git a/include/main.h b/include/main.h
index 3414c9c3..61c3f6ae 100644
--- a/include/main.h
+++ b/include/main.h
@@ -1,17 +1,17 @@
#ifndef MAIN_H
#define MAIN_H
-typedef struct { //0x03001000
- u8 field_0x0;
- u8 field_0x1;
- u8 field_0x2;
- u8 field_0x3;
- u8 field_0x4;
- u16 field_0x6;
- u8 field_0x8;
- u8 field_0x9;
- u8 field_0xa;
- u8 field_0xb;
- u32 ticks;
+typedef struct { // 0x03001000
+ u8 field_0x0;
+ u8 field_0x1;
+ u8 field_0x2;
+ u8 field_0x3;
+ u8 field_0x4;
+ u16 field_0x6;
+ u8 field_0x8;
+ u8 field_0x9;
+ u8 field_0xa;
+ u8 field_0xb;
+ u32 ticks;
} MainStruct;
extern s32 sub_08055F70();
diff --git a/include/menu.h b/include/menu.h
index b1f799b7..5ff44751 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -8,12 +8,12 @@ typedef struct {
u8 transitionType;
u8 unk4;
u8 state;
- u8 unk6;
- u8 unk7;
- u8 unk8;
+ u8 unk6;
+ u8 unk7;
+ u8 unk8;
u16 unk2;
u16 fadeInTime;
- u8 filler2 [4];
+ u8 filler2[4];
u32 filler3[3];
} Menu;
diff --git a/include/readKeyInput.h b/include/readKeyInput.h
index 3fe77ce6..27114243 100644
--- a/include/readKeyInput.h
+++ b/include/readKeyInput.h
@@ -1,9 +1,9 @@
struct Input {
- u16 unk0;
- u16 unk1;
- u16 unk2;
- u8 unk3;
- u8 unk4;
+ u16 unk0;
+ u16 unk1;
+ u16 unk2;
+ u8 unk3;
+ u8 unk4;
};
-//void ReadKeyInput(void);
+// void ReadKeyInput(void);
diff --git a/include/room.h b/include/room.h
index ed8fc8ff..6345e352 100644
--- a/include/room.h
+++ b/include/room.h
@@ -6,8 +6,8 @@
/*
typedef struct {
- u8 areaID;
- u8 roomID;
+ u8 areaID;
+ u8 roomID;
} RoomID;
*/
@@ -15,34 +15,34 @@ typedef struct {
u16 unk2;
u8 unk3;
u8 unk4;
- u8 areaID;
- u8 roomID;
+ u8 areaID;
+ u8 roomID;
u16 roomOriginX;
- u16 roomOriginY;
- s16 roomScrollX;
- s16 roomScrollY;
- u8 unk5;
+ u16 roomOriginY;
+ s16 roomScrollX;
+ s16 roomScrollY;
+ u8 unk5;
u8 unk6;
u8 filler[4];
- u8 screenShakeMagnitude;
- u8 unk7;
- u16 screenShakeTime;
- u16 filler2[6];
- u8 filler3[4];
- u16 filler4[4];
- Entity * cameraTarget;
+ u8 screenShakeMagnitude;
+ u8 unk7;
+ u16 screenShakeTime;
+ u16 filler2[6];
+ u8 filler3[4];
+ u16 filler4[4];
+ Entity* cameraTarget;
} RoomControls;
typedef struct {
- u8 filler[6];
- u8 itemForSaleIndex;
- u16 unk;
- u8 unk2;
- u16 filler2[3];
- u8 filler3[4];
- u8 filler4[52];
- u8 filler5[28];
- u32 greatFairyState;
+ u8 filler[6];
+ u8 itemForSaleIndex;
+ u16 unk;
+ u8 unk2;
+ u16 filler2[3];
+ u8 filler3[4];
+ u8 filler4[52];
+ u8 filler5[28];
+ u32 greatFairyState;
} RoomVars;
extern RoomControls gRoomControls;
diff --git a/include/screen.h b/include/screen.h
index a2c0ba5f..3c732093 100644
--- a/include/screen.h
+++ b/include/screen.h
@@ -4,67 +4,67 @@
#include "global.h"
typedef struct {
- u16 lcdControl2;
- u32 unk;
- u16 lcdControl1;
+ u16 lcdControl2;
+ u32 unk;
+ u16 lcdControl1;
} LcdControls;
typedef struct {
- u16 bg0Control;
- u16 bg0xOffset;
- u16 bg0yOffset;
- u16 bg0Updated;
- u32 unk;
+ u16 bg0Control;
+ u16 bg0xOffset;
+ u16 bg0yOffset;
+ u16 bg0Updated;
+ u32 unk;
} BgSettings;
typedef struct {
- u16 bg2Control;
- u16 bg2xOffset;
- u16 bg2yOffset;
- u16 unk;
- u32 unk2;
- u16 bg3Control;
- u16 bg3xOffset;
- u16 bg3yOffset;
- u16 unk4;
- u32 unk5;
+ u16 bg2Control;
+ u16 bg2xOffset;
+ u16 bg2yOffset;
+ u16 unk;
+ u32 unk2;
+ u16 bg3Control;
+ u16 bg3xOffset;
+ u16 bg3yOffset;
+ u16 unk4;
+ u32 unk5;
} BgAffSettings;
typedef struct {
- u16 bg2dx;
- u16 bg2dmx;
- u16 bg2dy;
- u16 bg2dmy;
- u16 bg2xPointLeastSig;
- u16 bg2xPointMostSig;
- u16 bg2yPointLeastSig;
- u16 bg2yPointMostSig;
- u16 bg3dx;
- u16 bg3dmx;
- u16 bg3dy;
- u16 bg3dmy;
- u16 bg3xPointLeastSig;
- u16 bg3xPointMostSig;
- u16 bg3yPointLeastSig;
- u16 bg3yPointMostSig;
- u16 window0HorizontalDimensions;
- u16 window1HorizontalDimensions;
- u16 window0VerticalDimensions;
- u16 window1VerticalDimensions;
- u16 windowInsideControl;
- u16 windowOutsideControl;
- u16 mosaicSize;
- u16 layerFXControl;
- u16 alphaBlend;
- u16 layerBrightness;
+ u16 bg2dx;
+ u16 bg2dmx;
+ u16 bg2dy;
+ u16 bg2dmy;
+ u16 bg2xPointLeastSig;
+ u16 bg2xPointMostSig;
+ u16 bg2yPointLeastSig;
+ u16 bg2yPointMostSig;
+ u16 bg3dx;
+ u16 bg3dmx;
+ u16 bg3dy;
+ u16 bg3dmy;
+ u16 bg3xPointLeastSig;
+ u16 bg3xPointMostSig;
+ u16 bg3yPointLeastSig;
+ u16 bg3yPointMostSig;
+ u16 window0HorizontalDimensions;
+ u16 window1HorizontalDimensions;
+ u16 window0VerticalDimensions;
+ u16 window1VerticalDimensions;
+ u16 windowInsideControl;
+ u16 windowOutsideControl;
+ u16 mosaicSize;
+ u16 layerFXControl;
+ u16 alphaBlend;
+ u16 layerBrightness;
} BgControls;
typedef struct {
- LcdControls lcd;
- BgSettings bg1;
- BgSettings bg2;
- BgAffSettings affine;
- BgControls controls;
+ LcdControls lcd;
+ BgSettings bg1;
+ BgSettings bg2;
+ BgAffSettings affine;
+ BgControls controls;
} Screen;
#endif \ No newline at end of file
diff --git a/include/textbox.h b/include/textbox.h
index dbc11020..a25e0723 100644
--- a/include/textbox.h
+++ b/include/textbox.h
@@ -4,16 +4,16 @@
#include "global.h"
typedef struct {
- u8 doTextBox;
- u8 unk;
- u8 textSpeed;
- u8 unk3; //HI?
- u8 textWindowWidth;
- u8 textWindowHeight;
- u8 textWindowPosX;
- u8 textWindowPosY;
- u16 textIndex;
- u16 unk2; //HI?
+ u8 doTextBox;
+ u8 unk;
+ u8 textSpeed;
+ u8 unk3; // HI?
+ u8 textWindowWidth;
+ u8 textWindowHeight;
+ u8 textWindowPosX;
+ u8 textWindowPosY;
+ u16 textIndex;
+ u16 unk2; // HI?
} TextBox;
extern TextBox gTextBox;
diff --git a/src/_dmaFill32.c b/src/_dmaFill32.c
index 1982d82c..5426ba31 100644
--- a/src/_dmaFill32.c
+++ b/src/_dmaFill32.c
@@ -1,6 +1,5 @@
#include "global.h"
-void _DmaFill32(u32 a1, u32 a2, u32 a3)
-{
+void _DmaFill32(u32 a1, u32 a2, u32 a3) {
DmaFill32(3, a1, a2, a3);
-} \ No newline at end of file
+}
diff --git a/src/bell.c b/src/bell.c
index 589d0117..7dc1c864 100644
--- a/src/bell.c
+++ b/src/bell.c
@@ -7,22 +7,19 @@ extern void (*gUnk_08123384[])(Entity*);
extern void UpdateSpriteOrderAndFlip(Entity*);
extern void LoadAnimation();
-void sub_08097D78(Entity *ent)
-{
+void sub_08097D78(Entity* ent) {
gUnk_08123384[ent->action](ent);
}
-void sub_08097D90(Entity *ent)
-{
- ent->action = 1;
- ent->spriteSettings.b.ss0 = 1;
- ent->collisionLayer = 1;
- ent->ticks.b0 = 0;
- UpdateSpriteOrderAndFlip(ent);
- LoadAnimation(ent, 0);
+void sub_08097D90(Entity* ent) {
+ ent->action = 1;
+ ent->spriteSettings.b.ss0 = 1;
+ ent->collisionLayer = 1;
+ ent->ticks.b0 = 0;
+ UpdateSpriteOrderAndFlip(ent);
+ LoadAnimation(ent, 0);
}
-void sub_08097DCC(Entity *ent)
-{
+void sub_08097DCC(Entity* ent) {
sub_080042B8(ent);
}
diff --git a/src/bigGoron.c b/src/bigGoron.c
index f1755b8c..bc4da6bd 100644
--- a/src/bigGoron.c
+++ b/src/bigGoron.c
@@ -1,33 +1,31 @@
#include "global.h"
#include "entity.h"
-extern void (*gUnk_081140D4[])(Entity *);
+extern void (*gUnk_081140D4[])(Entity*);
extern u16 gUnk_081140CC[];
extern Entity gLinkEntity;
extern u32 gUnk_030010A0;
extern void sub_0805E3A0(Entity*, u32);
-extern void sub_0806D0B0(Entity *);
-extern void sub_0807DD64(Entity *);
-extern void sub_0807DDAC(Entity *, u32);
-extern void sub_0807DDE4(Entity *);
+extern void sub_0806D0B0(Entity*);
+extern void sub_0807DD64(Entity*);
+extern void sub_0807DDAC(Entity*, u32);
+extern void sub_0807DDE4(Entity*);
extern u32 Random(void);
extern void PlaySFX(u32);
-extern void sub_0806D02C(Entity *);
-extern Entity * sub_0805EB2C(u32, u32, u32, u32, u32);
+extern void sub_0806D02C(Entity*);
+extern Entity* sub_0805EB2C(u32, u32, u32, u32, u32);
-void sub_0806CF18(Entity *this)
-{
+void sub_0806CF18(Entity* this) {
gUnk_081140D4[this->entityType.parameter1](this);
}
#ifdef NON_MATCHING
-void sub_0806CF30(Entity *this)
-{
+void sub_0806CF30(Entity* this) {
u8 bVar1;
u32 uVar2;
int iVar3;
-
+
if (this->action == 0) {
this->action = 1;
this->previousActionFlag = 1;
@@ -35,19 +33,18 @@ void sub_0806CF30(Entity *this)
sub_0805E3A0(this, 2);
sub_0806D0B0(this);
sub_0807DD64(this);
- }
- else {
- sub_0807DDAC(this,0);
+ } else {
+ sub_0807DDAC(this, 0);
sub_0807DDE4(this);
}
if (this->previousActionFlag != 2) {
-
+
if (this->previousActionFlag < 3) {
if ((gUnk_030010A0 & 3) == 0) {
iVar3 = this->x.HALF.HI;
if (gLinkEntity.x.HALF.HI < iVar3) {
if ((this->field_0x68 - 32) < iVar3) {
- this->x.HALF.HI =- 1;
+ this->x.HALF.HI = -1;
}
}
if (this->x.HALF.HI > gLinkEntity.x.HALF.HI) {
@@ -57,8 +54,7 @@ void sub_0806CF30(Entity *this)
}
}
}
- }
- else {
+ } else {
bVar1 = this->parameter3 -= 1;
if (bVar1 == 0) {
uVar2 = Random();
@@ -70,18 +66,16 @@ void sub_0806CF30(Entity *this)
}
#else
NAKED
-void sub_0806CF30(Entity *this)
-{
- asm(".include \"asm/non_matching/bigGoron/sub_0806CF30.inc\"");
+void sub_0806CF30(Entity* this) {
+ asm(".include \"asm/non_matching/bigGoron/sub_0806CF30.inc\"");
}
#endif
-void sub_0806D00C(Entity *this)
-{
- Entity *pEVar1;
-
- pEVar1 = sub_0805EB2C(7,76,7,0,0);
+void sub_0806D00C(Entity* this) {
+ Entity* pEVar1;
+
+ pEVar1 = sub_0805EB2C(7, 76, 7, 0, 0);
if (pEVar1 != NULL) {
this->parent = pEVar1;
}
-} \ No newline at end of file
+}
diff --git a/src/bitGetters.c b/src/bitGetters.c
index 9eb5063c..4616248c 100644
--- a/src/bitGetters.c
+++ b/src/bitGetters.c
@@ -2,23 +2,19 @@
extern u8 gArea;
-u32 sub_08052654()
-{
+u32 sub_08052654() {
return (gArea >> 7) & 1;
}
-u32 CheckIsDungeon()
-{
+u32 CheckIsDungeon() {
return (gArea >> 2) & 1;
}
-u32 sub_08052670()
-{
+u32 sub_08052670() {
return (gArea >> 4) & 1;
}
-u32 sub_08052680()
-{
+u32 sub_08052680() {
return (gArea >> 6) & 1;
}
diff --git a/src/bladeTrap.c b/src/bladeTrap.c
index ba37b3ae..5d9ac081 100644
--- a/src/bladeTrap.c
+++ b/src/bladeTrap.c
@@ -5,29 +5,28 @@
extern void sub_080A2CC0();
extern void sub_0806F69C();
extern void sub_08004488();
-extern Entity * sub_0804B128();
+extern Entity* sub_0804B128();
-void sub_08032358(Entity *ent)
-{
- u16 uVar1;
- Entity *pEVar2;
- u16 *puVar3;
- if (ent->action == 0) {
- ent->action = 1;
- pEVar2 = sub_0804B128((u8)(ent->entityType).parameter1);
- ent->attachedEntity = pEVar2;
- sub_080A2CC0((EntityData *)ent,&ent->attachedEntity,&ent->heldObjectPtr);
- }
- if ((ent->direction & 0x80) == 0) {
- sub_0806F69C(ent);
- }
- (u32)puVar3 = &(ent->heldObjectPtr);
- uVar1 = *puVar3;
- *puVar3 = uVar1 - 1;
- if ((u16)(*puVar3) == 0) {
+void sub_08032358(Entity* ent) {
+ u16 uVar1;
+ Entity* pEVar2;
+ u16* puVar3;
+ if (ent->action == 0) {
+ ent->action = 1;
+ pEVar2 = sub_0804B128((u8)(ent->entityType).parameter1);
+ ent->attachedEntity = pEVar2;
+ sub_080A2CC0((EntityData*)ent, &ent->attachedEntity, &ent->heldObjectPtr);
+ }
if ((ent->direction & 0x80) == 0) {
- sub_08004488(0x74);
+ sub_0806F69C(ent);
+ }
+ (u32) puVar3 = &(ent->heldObjectPtr);
+ uVar1 = *puVar3;
+ *puVar3 = uVar1 - 1;
+ if ((u16)(*puVar3) == 0) {
+ if ((ent->direction & 0x80) == 0) {
+ sub_08004488(0x74);
+ }
+ sub_080A2CC0((EntityData*)ent, &ent->attachedEntity, puVar3);
}
- sub_080A2CC0((EntityData *)ent,&ent->attachedEntity,puVar3);
- }
}
diff --git a/src/cat.c b/src/cat.c
index 493e5495..34ed8433 100644
--- a/src/cat.c
+++ b/src/cat.c
@@ -4,14 +4,13 @@
extern void sub_0806ED78();
extern void sub_08067C44();
-extern void (*gCat[9])(Entity *);
+extern void (*gCat[9])(Entity*);
-//Main
-void sub_080677B4(Entity *ent)
-{
+// Main
+void sub_080677B4(Entity* ent) {
gCat[ent->action](ent);
sub_08067C44(ent);
if (((ent->flags & 128) == 0) && ((ent->entityType).parameter1 != 5)) {
sub_0806ED78(ent);
}
-} \ No newline at end of file
+}
diff --git a/src/cloud.c b/src/cloud.c
index dccb3e62..2cf8200f 100644
--- a/src/cloud.c
+++ b/src/cloud.c
@@ -3,10 +3,10 @@
#include "room.h"
#include "link.h"
-extern void sub_0809F7BC(Entity *);
+extern void sub_0809F7BC(Entity*);
extern void PlaySFX(u32);
extern void sub_0809F814(u32);
-extern void sub_0809F7F4(Entity *);
+extern void sub_0809F7F4(Entity*);
extern void SetGlobalFlag(u32);
extern void LoadRoomEntityList();
extern void DeleteThisEntity();
@@ -15,51 +15,46 @@ extern void sub_08078A90(u32);
extern void sub_08078B48(void);
extern u32 SetLocalFlag(u32);
extern u32 Random(void);
-extern void sub_0806F69C(Entity *);
-extern void (*gUnk_08124798[])(Entity *);
-extern void (*gUnk_081247A0[])(Entity *);
-extern void (*gUnk_081247AC[])(Entity *);
-extern Entity * CreateObject(u32, u32, u32);
-extern void sub_0806FA30(Entity *, Entity *);
-extern void sub_0807BB68(u32 *, u32, u32);
+extern void sub_0806F69C(Entity*);
+extern void (*gUnk_08124798[])(Entity*);
+extern void (*gUnk_081247A0[])(Entity*);
+extern void (*gUnk_081247AC[])(Entity*);
+extern Entity* CreateObject(u32, u32, u32);
+extern void sub_0806FA30(Entity*, Entity*);
+extern void sub_0807BB68(u32*, u32, u32);
extern u8 gUnk_02034490;
extern u32 gUnk_030010A0;
-extern void *gUnk_080DD750;
+extern void* gUnk_080DD750;
extern Entity gLinkEntity;
extern LinkState gLinkState;
extern u8 gUnk_081247C0[];
extern u16 gUnk_081247C8[];
extern u32 gUnk_081247D0;
-void sub_0809F4C4(Entity *this)
-{
+void sub_0809F4C4(Entity* this) {
gUnk_08124798[(this->entityType).parameter1](this);
}
-void sub_0809F4DC(Entity *this)
-{
+void sub_0809F4DC(Entity* this) {
if ((this->entityType).parameter2 == 0) {
gUnk_081247A0[this->action](this);
- }
- else {
+ } else {
gUnk_081247AC[this->action](this);
}
}
-void sub_0809F514(Entity *this)
-{
+void sub_0809F514(Entity* this) {
this->action = 1;
this->parameter3 = 120;
this->spriteSettings.b.ss0 = 0;
- *(u8 *)&this->field_0x68 = 12;
+ *(u8*)&this->field_0x68 = 12;
gRoomControls.cameraTarget = this;
gUnk_02034490 = 255;
sub_0809F7BC(this);
}
-void sub_0809F548(Entity *this)
-{
+void sub_0809F548(Entity* this) {
if (--this->parameter3 == 0) {
this->action = 2;
@@ -67,8 +62,7 @@ void sub_0809F548(Entity *this)
PlaySFX(285);
sub_0809F814((((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 63) |
(((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 63) << 6);
- }
- else {
+ } else {
if ((gUnk_030010A0 & 7) == 0) {
sub_0809F7BC(this);
}
@@ -76,8 +70,7 @@ void sub_0809F548(Entity *this)
}
}
-void sub_0809F5B0(Entity *this)
-{
+void sub_0809F5B0(Entity* this) {
if (--this->parameter3 == 0) {
PlaySFX(115);
SetGlobalFlag(36);
@@ -86,17 +79,15 @@ void sub_0809F5B0(Entity *this)
}
}
-void sub_0809F5DC(Entity *this)
-{
+void sub_0809F5DC(Entity* this) {
this->action = 1;
this->spriteSettings.b.ss0 = 0;
- *(u8 *)&this->field_0x68 = 12;
+ *(u8*)&this->field_0x68 = 12;
}
-void sub_0809F5F0(Entity *this)
-{
+void sub_0809F5F0(Entity* this) {
u32 iVar1;
-
+
iVar1 = CheckRoomFlag(this->parameter3);
if (iVar1 != 0) {
this->action = 2;
@@ -107,9 +98,8 @@ void sub_0809F5F0(Entity *this)
}
}
-void sub_0809F61C(Entity *this)
-{
-
+void sub_0809F61C(Entity* this) {
+
if ((gRoomControls.unk6 & 4) == 0) {
if (this->parameter3 == 30) {
SetLocalFlag(this->entityType.parameter2);
@@ -119,8 +109,8 @@ void sub_0809F61C(Entity *this)
this->parameter3 = 120;
PlaySFX(285);
sub_0809F814((((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 63) |
- (((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 63) << 6); }
- else {
+ (((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 63) << 6);
+ } else {
if ((gUnk_030010A0 & 7) == 0) {
sub_0809F7BC(this);
}
@@ -129,8 +119,7 @@ void sub_0809F61C(Entity *this)
}
}
-void sub_0809F69C(Entity *this)
-{
+void sub_0809F69C(Entity* this) {
if (--this->parameter3 == 0) {
this->parameter3 = 30;
@@ -140,21 +129,18 @@ void sub_0809F69C(Entity *this)
}
}
-void sub_0809F6CC(Entity *this)
-{
-
- if (((gRoomControls.unk6 & 4) == 0) &&
- (--this->parameter3 == 0)) {
+void sub_0809F6CC(Entity* this) {
+
+ if (((gRoomControls.unk6 & 4) == 0) && (--this->parameter3 == 0)) {
gLinkState.unk7 = 1;
DeleteThisEntity();
}
}
-void sub_0809F700(Entity *this)
-{
+void sub_0809F700(Entity* this) {
u8 bVar1;
u32 uVar2;
-
+
if (this->action == 0) {
this->action = 1;
this->parameter3 = (Random() & 30) + 8;
@@ -172,12 +158,11 @@ void sub_0809F700(Entity *this)
}
#ifdef NON_MATCHING
-Entity * sub_0809F770(Entity *this)
-{
- Entity *cloud;
+Entity* sub_0809F770(Entity* this) {
+ Entity* cloud;
s32 uVar1;
-
- cloud = CreateObject(163,1,0);
+
+ cloud = CreateObject(163, 1, 0);
if (cloud != NULL) {
sub_0806FA30(this, cloud);
uVar1 = Random();
@@ -190,18 +175,16 @@ Entity * sub_0809F770(Entity *this)
}
#else
NAKED
-Entity * sub_0809F770(Entity *this)
-{
- asm(".include \"asm/non_matching/cloud/sub_0809F770.inc\"");
+Entity* sub_0809F770(Entity* this) {
+ asm(".include \"asm/non_matching/cloud/sub_0809F770.inc\"");
}
#endif
-void sub_0809F7BC(Entity *this)
-{
- Entity *cloud;
+void sub_0809F7BC(Entity* this) {
+ Entity* cloud;
u32 uVar1;
u32 uVar2;
-
+
for (uVar2 = 0; uVar2 < 8; uVar2++) {
cloud = sub_0809F770(this);
if (cloud != NULL) {
@@ -212,12 +195,11 @@ void sub_0809F7BC(Entity *this)
}
}
-void sub_0809F7F4(Entity *this)
-{
+void sub_0809F7F4(Entity* this) {
u8 cVar1;
- u8 *puVar2;
-
- puVar2 = (u8 *)&this->field_0x68;
+ u8* puVar2;
+
+ puVar2 = (u8*)&this->field_0x68;
*puVar2 -= 1;
if (*puVar2 == 0) {
@@ -226,7 +208,6 @@ void sub_0809F7F4(Entity *this)
}
}
-void sub_0809F814(u32 r0)
-{
+void sub_0809F814(u32 r0) {
sub_0807BB68(&gUnk_081247D0, r0, 1);
-} \ No newline at end of file
+}
diff --git a/src/copyPosition.c b/src/copyPosition.c
index cb70c380..3819d01b 100644
--- a/src/copyPosition.c
+++ b/src/copyPosition.c
@@ -3,9 +3,9 @@
extern void PositionRelative();
-void CopyPosition(Entity *param_1,Entity *param_2)
+void CopyPosition(Entity* param_1, Entity* param_2)
{
- PositionRelative(param_1,param_2,0,0);
+ PositionRelative(param_1, param_2, 0, 0);
return;
-} \ No newline at end of file
+}
diff --git a/src/cow.c b/src/cow.c
index 48d517ca..9dee1303 100644
--- a/src/cow.c
+++ b/src/cow.c
@@ -35,9 +35,9 @@ void sub_08068FC0(Entity* ent) {
ent->action = 1;
ent->animationState = ent->entityType.parameter2;
ent->nonPlanarMovement = 0x40;
-
+
ent->field_0x6d = 0xFF;
-
+
r2 = sub_0805ACC0(ent);
if (r2 == 0) {
u16 x, y;
@@ -49,7 +49,7 @@ void sub_08068FC0(Entity* ent) {
ent->field_0x6a = y;
} else {
u32 var1 = r2 >> 16;
- //0x68+0x69 probably a SplitWord
+ // 0x68+0x69 probably a SplitWord
*(u16*)&ent->field_0x68 = var1;
ent->field_0x6a = r2;
}
@@ -71,17 +71,17 @@ void sub_08069018(Entity* ent) {
var0 = --ent->field_0xf;
if (var0 == 0) {
if (ent->parameter3 == 0) {
- ent->action = 2;
+ ent->action = 2;
} else {
- ent->action = 3;
+ ent->action = 3;
}
ent->previousActionFlag = var0;
}
-
+
sub_0806924C(ent);
}
-void sub_08069068(Entity *ent) {
+void sub_08069068(Entity* ent) {
s32 var0;
if (ent->previousActionFlag == 0) {
@@ -103,7 +103,7 @@ void sub_08069068(Entity *ent) {
{
s32 x = ent->x.HALF.HI;
- s16 *x2 = (s16 *)&ent->field_0x68;
+ s16* x2 = (s16*)&ent->field_0x68;
x -= *x2;
if (x > 16) {
ent->x.HALF.HI = *x2 + 16;
@@ -116,7 +116,7 @@ void sub_08069068(Entity *ent) {
}
{
s32 y = ent->y.HALF.HI;
- s16 *y2 = &ent->field_0x6a;
+ s16* y2 = &ent->field_0x6a;
y -= *y2;
if (y > 16) {
ent->y.HALF.HI = *y2 + 16;
@@ -159,10 +159,12 @@ void sub_08069168(Entity* ent) {
}
void sub_08069188(Entity* ent) {
- if (ent->frames.b.f0 == 0) return;
+ if (ent->frames.b.f0 == 0)
+ return;
ent->frames.all = 0;
- if (((s8) --ent->field_0xf) != 0) return;
+ if (((s8)--ent->field_0xf) != 0)
+ return;
ent->previousActionFlag = 3;
LoadAnimation(ent, ent->animationState + 16);
}
@@ -182,7 +184,7 @@ void sub_080691E0(Entity* ent) {
}
}
-//Show dialogue
+// Show dialogue
void sub_080691F8(Entity* ent) {
u32 var0 = ent->entityType.parameter1;
u32* var1 = gUnk_08111938 + (var0 * 2);
@@ -190,7 +192,7 @@ void sub_080691F8(Entity* ent) {
}
void sub_0806920C(Entity* ent) {
- //TODO: figure out what bitfield flag this is
+ // TODO: figure out what bitfield flag this is
u32 var0 = gLinkState.flags.all & 0x80;
u32 var1 = -var0 >> 0x1F;
@@ -205,11 +207,11 @@ void sub_0806920C(Entity* ent) {
ent->field_0x6d = var1;
}
-//Check if player interacting
+// Check if player interacting
void sub_0806924C(Entity* ent) {
s8 itype = ent->interactType;
if (itype != 0) {
- //TODO: figure out what bitfield flag this is
+ // TODO: figure out what bitfield flag this is
if ((gLinkState.flags.all & 0x80) != 0) {
if (itype == 2) {
ent->action = 4;
diff --git a/src/createEnemy.c b/src/createEnemy.c
index e570c13c..74df8f75 100644
--- a/src/createEnemy.c
+++ b/src/createEnemy.c
@@ -1,19 +1,18 @@
#include "entity.h"
#include "global.h"
-extern Entity * GetEmptyEntity();
-extern void sub_0805EA2C(Entity *, u8);
+extern Entity* GetEmptyEntity();
+extern void sub_0805EA2C(Entity*, u8);
+
+Entity* CreateEnemy(u32 subtype, u32 param1) {
+ Entity* enemy;
-Entity * CreateEnemy(u32 subtype, u32 param1)
-{
- Entity *enemy;
-
enemy = GetEmptyEntity();
if (enemy != NULL) {
(enemy->entityType).type = 3;
(enemy->entityType).subtype = subtype;
(enemy->entityType).parameter1 = param1;
- sub_0805EA2C(enemy,4);
+ sub_0805EA2C(enemy, 4);
}
return enemy;
-} \ No newline at end of file
+}
diff --git a/src/createEntity.c b/src/createEntity.c
index 92fef210..b7eeb595 100644
--- a/src/createEntity.c
+++ b/src/createEntity.c
@@ -2,7 +2,7 @@
// #include "entityData.h"
// #include "global.h"
-// extern Entity * sub_0805EB9C(u32, u32);
+// extern Entity * sub_0805EB9C(u32, u32);
// extern Entity * sub_0805E768();
// extern void sub_0804AEB0(Entity *, EntityData *);
// extern u32 sub_0804AF0C(Entity *, EntityData *);
@@ -11,41 +11,41 @@
// Entity * CreateEntity(EntityData *param_1)
// {
- // Entity *preexisting;
- // Entity *entity;
- // s32 type;
-
- // type = param_1->entityType & 15;
- // if (((param_1->field_0x1 & 240) == 80) &&
- // (preexisting = sub_0805EB9C(type,param_1->entitySubtype), preexisting != NULL)) {
- // entity = NULL;
- // }
- // else {
- // entity = sub_0805E768(); //Get empty entity
- // if (entity != NULL) {
- // (entity->entityType).type = type;
- // (entity->entityType).subtype = param_1->entitySubtype;
- // (entity->entityType).parameter1 = param_1->entityParameter1;
- // sub_0804AEB0(entity,param_1);
- // if ((param_1->field_0x1 & 240) != 16) {
- // (entity->entityType).parameter2 = *(u8 *)&param_1->entityParameter2;
- // /* i suspect this is where the entity's behavior is defined. Not sure. */
- // entity->parameter3 = (u8)((u32)param_1->entityParameter2 >> 8);
- // if ((type != 9) && (sub_0804AF0C(entity,param_1), entity->field_0x4 != NULL)) {
- // if ((param_1->entityType & 16) == 0) {
- // if ((param_1->entityType & 32) != 0) {
- // entity->collisionLayer = 2;
- // return entity;
- // }
- // if ((gRoomControls & 2) == 0) {
- // sub_08016A30(entity);
- // return entity;
- // }
- // }
- // entity->collisionLayer = 1;
- // }
- // }
- // }
- // }
- // return entity;
+// Entity *preexisting;
+// Entity *entity;
+// s32 type;
+
+// type = param_1->entityType & 15;
+// if (((param_1->field_0x1 & 240) == 80) &&
+// (preexisting = sub_0805EB9C(type,param_1->entitySubtype), preexisting != NULL)) {
+// entity = NULL;
+// }
+// else {
+// entity = sub_0805E768(); //Get empty entity
+// if (entity != NULL) {
+// (entity->entityType).type = type;
+// (entity->entityType).subtype = param_1->entitySubtype;
+// (entity->entityType).parameter1 = param_1->entityParameter1;
+// sub_0804AEB0(entity,param_1);
+// if ((param_1->field_0x1 & 240) != 16) {
+// (entity->entityType).parameter2 = *(u8 *)&param_1->entityParameter2;
+// /* i suspect this is where the entity's behavior is defined. Not sure. */
+// entity->parameter3 = (u8)((u32)param_1->entityParameter2 >> 8);
+// if ((type != 9) && (sub_0804AF0C(entity,param_1), entity->field_0x4 != NULL)) {
+// if ((param_1->entityType & 16) == 0) {
+// if ((param_1->entityType & 32) != 0) {
+// entity->collisionLayer = 2;
+// return entity;
+// }
+// if ((gRoomControls & 2) == 0) {
+// sub_08016A30(entity);
+// return entity;
+// }
+// }
+// entity->collisionLayer = 1;
+// }
+// }
+// }
+// }
+// return entity;
// }
diff --git a/src/createNPC.c b/src/createNPC.c
index fc6b575e..d68253f0 100644
--- a/src/createNPC.c
+++ b/src/createNPC.c
@@ -1,22 +1,21 @@
#include "global.h"
#include "entity.h"
+extern Entity* GetEmptyEntity();
+extern void sub_0805EA2C(Entity*, u8);
-extern Entity * GetEmptyEntity();
-extern void sub_0805EA2C(Entity *, u8);
-
-Entity * CreateNPC(u32 subtype,u32 parameter1,u32 parameter2)
+Entity* CreateNPC(u32 subtype, u32 parameter1, u32 parameter2)
{
- Entity *pEVar1;
-
+ Entity* pEVar1;
+
pEVar1 = GetEmptyEntity();
if (pEVar1 != NULL) {
(pEVar1->entityType).type = 7;
(pEVar1->entityType).subtype = subtype;
(pEVar1->entityType).parameter1 = parameter1;
(pEVar1->entityType).parameter2 = parameter2;
- sub_0805EA2C(pEVar1,7);
+ sub_0805EA2C(pEVar1, 7);
}
return pEVar1;
-} \ No newline at end of file
+}
diff --git a/src/createObject.c b/src/createObject.c
index c6863ac9..702107f4 100644
--- a/src/createObject.c
+++ b/src/createObject.c
@@ -1,21 +1,21 @@
#include "global.h"
#include "entity.h"
-extern Entity * GetEmptyEntity();
-extern void sub_0805EA2C(Entity *,u8);
+extern Entity* GetEmptyEntity();
+extern void sub_0805EA2C(Entity*, u8);
-Entity * CreateObject(u32 subtype,u32 param1,u32 param2)
+Entity* CreateObject(u32 subtype, u32 param1, u32 param2)
{
- Entity *newEnt;
-
+ Entity* newEnt;
+
newEnt = GetEmptyEntity();
if (newEnt != NULL) {
(newEnt->entityType).type = 6;
(newEnt->entityType).subtype = subtype;
(newEnt->entityType).parameter1 = param1;
(newEnt->entityType).parameter2 = param2;
- sub_0805EA2C(newEnt,6);
+ sub_0805EA2C(newEnt, 6);
}
return newEnt;
-} \ No newline at end of file
+}
diff --git a/src/createObjectWithParent.c b/src/createObjectWithParent.c
index f7eb9814..bee2c86c 100644
--- a/src/createObjectWithParent.c
+++ b/src/createObjectWithParent.c
@@ -1,18 +1,17 @@
#include "global.h"
#include "entity.h"
-extern Entity * CreateObject();
+extern Entity* CreateObject();
extern void CopyPosition();
-Entity * CreateObjectWithParent(Entity *parentEnt,u32 subtype,u32 param1, u32 param2)
-{
- Entity *ent;
-
+Entity* CreateObjectWithParent(Entity* parentEnt, u32 subtype, u32 param1, u32 param2) {
+ Entity* ent;
+
ent = CreateObject(subtype, param1, param2);
if (ent != NULL) {
ent->parent = parentEnt;
- CopyPosition(parentEnt,ent);
+ CopyPosition(parentEnt, ent);
}
-
- return ent;
-} \ No newline at end of file
+
+ return ent;
+}
diff --git a/src/emma.c b/src/emma.c
index 4e45083c..a65a67e4 100644
--- a/src/emma.c
+++ b/src/emma.c
@@ -5,21 +5,20 @@ extern u32 gUnk_0813AD10;
extern u32 gUnk_0813AD24;
extern u32 gUnk_0813AD38;
-extern void sub_0805E3A0(Entity *, u32);
-extern void sub_0807DD50(Entity *);
-extern void sub_0807DD94(Entity *, u32);
-extern void sub_08080840(u32 *);
+extern void sub_0805E3A0(Entity*, u32);
+extern void sub_0807DD50(Entity*);
+extern void sub_0807DD94(Entity*, u32);
+extern void sub_08080840(u32*);
-void sub_0806C550(Entity *param_1)
+void sub_0806C550(Entity* param_1)
{
if (param_1->action == 0) {
param_1->action += 1;
- sub_0805E3A0(param_1,2);
+ sub_0805E3A0(param_1, 2);
sub_0807DD50(param_1);
- }
- else {
- sub_0807DD94(param_1,0);
+ } else {
+ sub_0807DD94(param_1, 0);
}
return;
}
@@ -43,4 +42,4 @@ void FUN_0806c598(void)
{
sub_08080840(&gUnk_0813AD38);
return;
-} \ No newline at end of file
+}
diff --git a/src/epona.c b/src/epona.c
index 044dd37d..be050c87 100644
--- a/src/epona.c
+++ b/src/epona.c
@@ -23,122 +23,96 @@ extern TextBox gTextBox;
extern LinkState gLinkState;
extern Entity gLinkEntity;
-void sub_08065A64(Entity* ent);
+void sub_08065A64(Entity* this);
extern void (*gUnk_0811006C[])(Entity*);
extern u64 gUnk_08110080[];
-void sub_08065990(Entity* ent)
-{
- gUnk_0811006C[ent->action](ent);
- sub_08065A64(ent);
- sub_0806ED78(ent);
+void sub_08065990(Entity* this) {
+ gUnk_0811006C[this->action](this);
+ sub_08065A64(this);
+ sub_0806ED78(this);
}
-void sub_080659B8(Entity* ent)
-{
- ent->action = 1;
- ent->spriteSettings.b.ss0 = 1;
- ent->animationState = 6;
- ent->field_0x69 = -1;
- ent->field_0x68 = sub_0801E99C(ent);
- LoadAnimation(ent, ent->animationState / 2);
+void sub_080659B8(Entity* this) {
+ this->action = 1;
+ this->spriteSettings.b.ss0 = 1;
+ this->animationState = 6;
+ this->field_0x69 = -1;
+ this->field_0x68 = sub_0801E99C(this);
+ LoadAnimation(this, this->animationState / 2);
}
-void sub_080659F0(Entity* ent)
-{
- sub_080042B8(ent);
- sub_08065AA4(ent);
+void sub_080659F0(Entity* this) {
+ sub_080042B8(this);
+ sub_08065AA4(this);
}
-void sub_08065A00(Entity* ent)
-{
- sub_080042B8(ent);
- sub_08065AA4(ent);
+void sub_08065A00(Entity* this) {
+ sub_080042B8(this);
+ sub_08065AA4(this);
}
-void sub_08065A10(Entity* ent)
-{
- if ((gTextBox.doTextBox & 0x7F) == 0)
- {
- ent->action = 1;
- LoadAnimation(ent, ent->animationState / 2);
+void sub_08065A10(Entity* this) {
+ if ((gTextBox.doTextBox & 0x7F) == 0) {
+ this->action = 1;
+ LoadAnimation(this, this->animationState / 2);
}
}
-void sub_08065A34(Entity* ent)
-{
- if (UpdateFuseInteraction() != 0)
- {
- ent->action = 1;
- LoadAnimation(ent, ent->animationState / 2);
+void sub_08065A34(Entity* this) {
+ if (UpdateFuseInteraction() != 0) {
+ this->action = 1;
+ LoadAnimation(this, this->animationState / 2);
}
}
-void sub_08065A50(Entity* ent)
-{
- ShowNPCDialogue(ent, &gUnk_08110080[ent->entityType.parameter1]);
+void sub_08065A50(Entity* this) {
+ ShowNPCDialogue(this, &gUnk_08110080[this->entityType.parameter1]);
}
-void sub_08065A64(Entity* ent)
-{
+void sub_08065A64(Entity* this) {
u32 uVar2;
-
+
uVar2 = -(gLinkState.flags.all & 0x80) >> 0x1f;
- if (uVar2 != ent->field_0x69)
- {
- if (uVar2 == 0)
- {
- sub_08078778(ent);
- }
- else
- {
- sub_080787A8(ent, ent->field_0x68);
+ if (uVar2 != this->field_0x69) {
+ if (uVar2 == 0) {
+ sub_08078778(this);
+ } else {
+ sub_080787A8(this, this->field_0x68);
}
}
- ent->field_0x69 = uVar2;
+ this->field_0x69 = uVar2;
}
-void sub_08065AA4(Entity* ent)
-{
- if (ent->interactType != 0)
- {
- if (gLinkState.flags.all & 0x80)
- {
- if (ent->interactType == 2)
- {
- ent->action = 4;
- sub_0806F118(ent);
- }
- else
- {
- ent->action = 3;
- sub_0805E3A0(ent, 2);
- sub_08065A50(ent);
+void sub_08065AA4(Entity* this) {
+ if (this->interactType != 0) {
+ if (gLinkState.flags.all & 0x80) {
+ if (this->interactType == 2) {
+ this->action = 4;
+ sub_0806F118(this);
+ } else {
+ this->action = 3;
+ sub_0805E3A0(this, 2);
+ sub_08065A50(this);
}
- sub_080045C4(ent, &gLinkEntity);
- LoadAnimation(ent, sub_0806F5A4());
- }
- else
- {
- sub_08065A50(ent);
+ sub_080045C4(this, &gLinkEntity);
+ LoadAnimation(this, sub_0806F5A4());
+ } else {
+ sub_08065A50(this);
sub_080791D0();
}
PlaySFX(0xD3);
- ent->interactType = 0;
+ this->interactType = 0;
}
}
-void sub_08065B1C(Entity* ent)
-{
- if (ent->action == 0)
- {
- ent->action += 1;
- ent->spriteSettings.b.ss0 = 1;
- LoadAnimation(ent, 7);
- }
- else
- {
- sub_080042B8(ent);
+void sub_08065B1C(Entity* this) {
+ if (this->action == 0) {
+ this->action += 1;
+ this->spriteSettings.b.ss0 = 1;
+ LoadAnimation(this, 7);
+ } else {
+ sub_080042B8(this);
}
}
diff --git a/src/getProgressFlag.c b/src/getProgressFlag.c
index fe9197fd..c2907340 100644
--- a/src/getProgressFlag.c
+++ b/src/getProgressFlag.c
@@ -2,6 +2,6 @@
u32 extern CheckLocalFlagByOffset(u32, u32);
-u32 CheckGlobalFlag (u32 index) {
- return CheckLocalFlagByOffset(0, index);
-} \ No newline at end of file
+u32 CheckGlobalFlag(u32 index) {
+ return CheckLocalFlagByOffset(0, index);
+}
diff --git a/src/giantLeaf.c b/src/giantLeaf.c
index 6c6b4d47..d3d6ef02 100644
--- a/src/giantLeaf.c
+++ b/src/giantLeaf.c
@@ -9,10 +9,8 @@ extern RoomControls gRoomControls;
extern s16 gUnk_08121750[];
extern s16 gUnk_0812176A[];
-void sub_0808D5DC(Entity* ent)
-{
- if (ent->action == 0)
- {
+void sub_0808D5DC(Entity* ent) {
+ if (ent->action == 0) {
ent->action = 1;
ent->spriteSettings.b.ss0 = 1;
ent->spriteOrder.b3 = 3;
@@ -22,17 +20,16 @@ void sub_0808D5DC(Entity* ent)
}
}
-void sub_0808D618(Entity *ent)
-{
+void sub_0808D618(Entity* ent) {
u32 tilePos;
- s16 *arr;
+ s16* arr;
u32 i;
arr = (ent->entityType.parameter1 != 0) ? gUnk_0812176A : gUnk_08121750;
- tilePos = (((ent->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3F) | ((((ent->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3F) * 64);
+ tilePos = (((ent->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3F) |
+ ((((ent->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3F) * 64);
- for (i = 0; i < 13; i++)
- {
+ for (i = 0; i < 13; i++) {
SetTile(16500, tilePos + arr[i], 1);
}
}
diff --git a/src/greatFairy.c b/src/greatFairy.c
index 64a90fb3..3cb6b186 100644
--- a/src/greatFairy.c
+++ b/src/greatFairy.c
@@ -4,11 +4,10 @@
#include "screen.h"
#include "greatFairy.h"
-//Main
-void sub_08086A90(Entity *ent)
-{
+// Main
+void sub_08086A90(Entity* ent) {
u8 bVar1;
-
+
if (ent->action == 0) {
bVar1 = __modsi3((ent->entityType).parameter1, 11);
(ent->entityType).parameter2 = bVar1;
@@ -16,38 +15,33 @@ void sub_08086A90(Entity *ent)
gGreatFairy[(ent->entityType).parameter2](ent);
}
-//Behaviors
-void sub_08086ABC(Entity *ent)
-{
+// Behaviors
+void sub_08086ABC(Entity* ent) {
gGreatFairyBehaviors[ent->action](ent);
-
if ((gLinkEntity.y.HALF.HI - gRoomControls.roomOriginY) < 168) {
-
+
gRoomControls.cameraTarget = ent;
gRoomControls.unk5 = 2;
- }
- else {
+ } else {
gRoomControls.cameraTarget = &gLinkEntity;
gRoomControls.unk5 = 2;
}
}
-//Init
-void sub_08086AF8(Entity *ent)
-{
+// Init
+void sub_08086AF8(Entity* ent) {
sub_08087380();
ent->parameter3 = 0;
ent->cutsceneBeh.HWORD = 290;
}
-//Dormant update
-void sub_08086B10(Entity *ent)
-{
- u16 *pFrame; // r1@2
- s32 frame; // r1@4
- Entity *ripple; // r5@16
- u32 event;
+// Dormant update
+void sub_08086B10(Entity* ent) {
+ u16* pFrame; // r1@2
+ s32 frame; // r1@4
+ Entity* ripple; // r5@16
+ u32 event;
event = CheckRoomFlag(0);
if (event == 0) {
@@ -59,68 +53,52 @@ void sub_08086B10(Entity *ent)
}
frame = *pFrame;
- if ( frame == 0x96 )
- {
+ if (frame == 0x96) {
goto LABEL_16;
}
-
- if ( frame < 0x97 )
- {
- if (frame != 0)
- {
- if ( frame == 0x82 )
- {
+
+ if (frame < 0x97) {
+ if (frame != 0) {
+ if (frame == 0x82) {
goto LABEL_16;
- }
- else {
+ } else {
return;
}
}
goto LABEL_17;
- }
- else {
- if (frame == 0xd2)
- {
+ } else {
+ if (frame == 0xd2) {
goto LABEL_16;
}
- if (frame < 0xd3)
- {
- if (frame == 0xaa)
- {
+ if (frame < 0xd3) {
+ if (frame == 0xaa) {
goto LABEL_16;
- }
- else return;
+ } else
+ return;
}
- if ( frame == 289 )
- {
+ if (frame == 289) {
goto LABEL_16;
- }
- else {
+ } else {
return;
}
}
LABEL_17:
- ent->action = 2;
- return;
+ ent->action = 2;
+ return;
LABEL_16:
ripple = sub_080873AC(ent, 6, 0);
- if ( ripple )
- {
- PositionRelative(
- ent,
- ripple,
- (s32)gGreatFairyRippleOffsets[ent->parameter3] << 16,
- (s32)gGreatFairyRippleOffsets[ent->parameter3 + 1] << 16);
+ if (ripple) {
+ PositionRelative(ent, ripple, (s32)gGreatFairyRippleOffsets[ent->parameter3] << 16,
+ (s32)gGreatFairyRippleOffsets[ent->parameter3 + 1] << 16);
ent->parameter3 += 2;
}
}
-//Create Great Fairy
-void sub_08086BA0(Entity *ent)
-{
- Entity *gf;
-
+// Create Great Fairy
+void sub_08086BA0(Entity* ent) {
+ Entity* gf;
+
gf = sub_080873AC(ent, 7, 0);
if (gf != NULL) {
PositionRelative(ent, gf, 0, 0x80000);
@@ -128,17 +106,14 @@ void sub_08086BA0(Entity *ent)
}
}
-//Great Fairy spawn-in update
-void sub_08086BC4(Entity *ent)
-{
- Entity *mini;
+// Great Fairy spawn-in update
+void sub_08086BC4(Entity* ent) {
+ Entity* mini;
u32 var;
- if (gRoomVars.greatFairyState & 1)
- {
+ if (gRoomVars.greatFairyState & 1) {
mini = sub_080873AC(ent, 2, 0);
- if (mini != NULL)
- {
+ if (mini != NULL) {
CopyPosition(ent, mini);
DoFade(6, 4);
PlaySFX(325);
@@ -150,20 +125,16 @@ void sub_08086BC4(Entity *ent)
}
}
-//Mini Great Fairy update
-void sub_08086C18(Entity *ent)
-{
- Entity *target;
-
+// Mini Great Fairy update
+void sub_08086C18(Entity* ent) {
+ Entity* target;
+
sub_08004274(ent);
- if (ent->parameter3 != 0)
- {
+ if (ent->parameter3 != 0) {
ent->parameter3 = ent->parameter3 - 1;
- }
- else {
+ } else {
target = sub_080873AC(ent, 1, 0);
- if (target != NULL)
- {
+ if (target != NULL) {
PositionRelative(ent, target, 0, -0x140000);
ent->action = 5;
ent->parameter3 = 120;
@@ -172,19 +143,14 @@ void sub_08086C18(Entity *ent)
}
}
-//Final Great Fairy update
-void sub_08086C58(Entity *ent)
-{
- Entity *target;
-
- if (ent->parameter3 != 0)
- {
+// Final Great Fairy update
+void sub_08086C58(Entity* ent) {
+ Entity* target;
+
+ if (ent->parameter3 != 0) {
ent->parameter3 = ent->parameter3 - 1;
- }
- else
- {
- if ((ent->field_0xf == 0) && (target = sub_080873AC(ent, 9, 0), target != NULL))
- {
+ } else {
+ if ((ent->field_0xf == 0) && (target = sub_080873AC(ent, 9, 0), target != NULL)) {
PositionRelative(ent, target, 0, -0x4C0000);
target->parent = ent;
ent->field_0xf = 1;
@@ -193,14 +159,12 @@ void sub_08086C58(Entity *ent)
sub_08004274(ent);
}
-//Wings
-void sub_08086C9C(Entity *ent)
-{
+// Wings
+void sub_08086C9C(Entity* ent) {
gGreatFairyWings[ent->action](ent);
}
-void sub_08086CB4(Entity *ent)
-{
+void sub_08086CB4(Entity* ent) {
sub_08087380();
ent->ticks.b0 = 5;
ent->spriteSettings.b.ss0 = 1;
@@ -211,11 +175,10 @@ void sub_08086CB4(Entity *ent)
sub_0805EC9C(ent, 1024, 256, 0);
}
-//Wings init
-void sub_08086D18(Entity *ent)
-{
+// Wings init
+void sub_08086D18(Entity* ent) {
s32 iVar1;
-
+
iVar1 = (u16)ent->nonPlanarMovement - 32;
ent->nonPlanarMovement = (short)iVar1;
if (iVar1 * 65536 >> 16 == 256) {
@@ -223,47 +186,40 @@ void sub_08086D18(Entity *ent)
sub_0805EC60(ent);
gRoomVars.greatFairyState = gRoomVars.greatFairyState | 32;
gUnk_02033280 = gUnk_02033280 | 4;
- }
- else {
+ } else {
sub_0805EC9C(ent, ent->nonPlanarMovement, 256, 0);
}
}
-void nullsub_116(void)
-{
+void nullsub_116(void) {
}
-//Wake
-void sub_08086D6C(Entity *ent)
-{
+// Wake
+void sub_08086D6C(Entity* ent) {
gGreatFairyWake[ent->action](ent);
}
-//Wake init
-void sub_08086D84(Entity *ent)
-{
+// Wake init
+void sub_08086D84(Entity* ent) {
sub_08087380();
ent->spriteSettings.b.ss0 = 1;
ent->ticks.b0 = 6;
}
-//Wake update
-void sub_08086DAC(Entity *ent)
-{
+// Wake update
+void sub_08086DAC(Entity* ent) {
sub_08004274(ent);
}
-//Mini great fairy
-void sub_08086DB4(Entity *ent)
-{
+// Mini great fairy
+void sub_08086DB4(Entity* ent) {
gGreatFairyMini[ent->action](ent);
}
-//Mini great fairy init
-void sub_08086DCC(Entity *ent)
-{
- Entity *wake;
-
+// Mini great fairy init
+void sub_08086DCC(Entity* ent) {
+ Entity* wake;
+
wake = sub_080873AC(ent, 4, 0);
if (wake != NULL) {
CopyPosition(ent, wake);
@@ -274,28 +230,25 @@ void sub_08086DCC(Entity *ent)
}
}
-//Mini great fairy pre-drip
-void sub_08086E04(Entity *ent)
-{
- Entity *target;
-
+// Mini great fairy pre-drip
+void sub_08086E04(Entity* ent) {
+ Entity* target;
+
sub_08004274(ent);
- ent->height.WORD = ent->height.WORD + -32768;
+ ent->height.WORD = ent->height.WORD + -0x8000;
if (ent->height.HALF.HI == -20) {
ent->action = 2;
PlaySFX(321);
- }
- else {
+ } else {
if (((ent->height.HALF.HI == -10) && (ent->field_0xf == 0)) &&
- (target = sub_080873AC(ent, 5, 0), target != NULL)) {
+ (target = sub_080873AC(ent, 5, 0), target != NULL)) {
PositionRelative(ent, target, 0, 0x40000);
ent->field_0xf = 1;
}
}
}
-void sub_08086E64(Entity *ent)
-{
+void sub_08086E64(Entity* ent) {
sub_08004274(ent);
sub_080873D0(ent);
if ((gRoomVars.greatFairyState & 1) != 0) {
@@ -303,26 +256,23 @@ void sub_08086E64(Entity *ent)
}
}
-//Mini great fairy behaviors
-void sub_08086E8C(Entity *ent)
-{
+// Mini great fairy behaviors
+void sub_08086E8C(Entity* ent) {
gGreatFairyMiniAnim[ent->action](ent);
}
-void sub_08086EA4(Entity *ent)
-{
+void sub_08086EA4(Entity* ent) {
sub_08087380();
ent->ticks.b0 = 6;
ent->spriteSettings.b.ss0 = 1;
}
-//Mini great fairy translate
-void sub_08086ED0(Entity *ent)
-{
- Entity *parent = ent->parent;
+// Mini great fairy translate
+void sub_08086ED0(Entity* ent) {
+ Entity* parent = ent->parent;
CopyPosition(parent, ent);
-
+
if (ent->height.HALF.HI == -20) {
ent->action = 2;
ent->parameter3 = 90;
@@ -332,35 +282,28 @@ void sub_08086ED0(Entity *ent)
}
}
-//Mini great fairy stretch
-void sub_08086F10(Entity *ent)
-{
- u32 bVar1;
+// Mini great fairy stretch
+void sub_08086F10(Entity* ent) {
s32 iVar2;
-
- bVar1 = ent->parameter3 -= 1;
- if (bVar1 == 0) {
+ if (--ent->parameter3 == 0) {
gRoomVars.greatFairyState = gRoomVars.greatFairyState | 1;
ent->action = 3;
sub_0805EC60(ent);
- }
- else {
+ } else {
iVar2 = (u16)ent->nonPlanarMovement - 24;
ent->nonPlanarMovement = iVar2;
sub_0805EC9C(ent, 256, iVar2 * 65536 >> 20, 0);
}
}
-//Drip
-void sub_08086F54(Entity *ent)
-{
+// Drip
+void sub_08086F54(Entity* ent) {
gGreatFairyDrip[ent->action](ent);
}
-//Drip init
-void sub_08086F6C(Entity *ent)
-{
+// Drip init
+void sub_08086F6C(Entity* ent) {
sub_08087380();
ent->spriteSettings.b.ss0 = 1;
ent->height.HALF.HI = 0;
@@ -368,49 +311,42 @@ void sub_08086F6C(Entity *ent)
PlaySFX(320);
}
-//Drip update
-void sub_08086FA0(Entity *ent)
-{
+// Drip update
+void sub_08086FA0(Entity* ent) {
sub_08004274(ent);
if ((ent->frames.all & 128) != 0) {
DeleteEntity(ent);
}
}
-//Ripple
-void sub_08086FC0(Entity *ent)
-{
+// Ripple
+void sub_08086FC0(Entity* ent) {
gGreatFairyRipple[ent->action](ent);
}
-//Ripple init
-void sub_08086FD8(Entity *ent)
-{
+// Ripple init
+void sub_08086FD8(Entity* ent) {
sub_08087380();
ent->spriteSettings.b.ss0 = 1;
ent->ticks.b0 = 6;
}
-//Ripple update
-void sub_08087000(Entity *ent)
-{
+// Ripple update
+void sub_08087000(Entity* ent) {
if ((gRoomVars.greatFairyState & 2) != 0) {
DeleteEntity(ent);
- }
- else {
+ } else {
sub_08004274(ent);
}
}
-//Big ripple
-void sub_08087024(Entity *ent)
-{
+// Big ripple
+void sub_08087024(Entity* ent) {
gGreatFairyBigRipple[ent->action](ent);
}
-//Big ripple init
-void sub_0808703C(Entity *ent)
-{
+// Big ripple init
+void sub_0808703C(Entity* ent) {
sub_08087380();
ent->parameter3 = 120;
ent->spriteSettings.b.ss0 = 1;
@@ -418,63 +354,54 @@ void sub_0808703C(Entity *ent)
PlaySFX(249);
}
-//Big ripple update
-void sub_0808706C(Entity *ent)
-{
- Entity *target;
-
+// Big ripple update
+void sub_0808706C(Entity* ent) {
+ Entity* target;
+
sub_08004274(ent);
if (ent->parameter3 != 0) {
- ent->parameter3 = ent->parameter3 - 1;
- }
- else {
- target = sub_080873AC(ent,3,0);
+ ent->parameter3--;
+ } else {
+ target = sub_080873AC(ent, 3, 0);
if (target != NULL) {
- PositionRelative(ent,target,0,-524288);
+ PositionRelative(ent, target, 0, -0x80000);
gRoomVars.greatFairyState = gRoomVars.greatFairyState | 2;
DeleteEntity(ent);
}
}
}
-//Energy
-void GreatFairyEnergy(Entity *ent)
-{
+// Energy
+void GreatFairyEnergy(Entity* ent) {
gGreatFairyEnergy[ent->action](ent);
}
-//Energy init
-void sub_080870CC(Entity *ent)
-{
+// Energy init
+void sub_080870CC(Entity* ent) {
sub_08087380();
ent->spriteSettings.b.ss0 = 1;
ent->ticks.b0 = 5;
}
-//Energy update
-void sub_080870F4(Entity *ent)
-{
+// Energy update
+void sub_080870F4(Entity* ent) {
sub_08004274(ent);
if ((ent->frames.all & 128) != 0) {
DeleteEntity(ent);
}
}
-
-void sub_08087114(Entity *ent)
-{
+void sub_08087114(Entity* ent) {
if ((ent->entityType).parameter2 == 0) {
gGreatFairyInteract1[ent->action](ent);
- }
- else {
+ } else {
gGreatFairyInteract2[ent->action](ent);
sub_08004274(ent);
}
}
#ifdef NON_MATCHING
-void sub_08087150(Entity *ent)
-{
+void sub_08087150(Entity* ent) {
u8 var;
u32 var2;
@@ -490,22 +417,19 @@ void sub_08087150(Entity *ent)
}
#else
NAKED
-void sub_08087150(Entity *ent)
-{
- asm(".include \"asm/greatFairy/sub_08087150.inc\"");
+void sub_08087150(Entity* ent) {
+ asm(".include \"asm/greatFairy/sub_08087150.inc\"");
}
#endif
-void nullsub_516()
-{
+void nullsub_516() {
}
-void sub_080871A8(Entity *ent)
-{
+void sub_080871A8(Entity* ent) {
u32 bVar1;
-
+
bVar1 = ent->parameter3 -= 1;
-
+
if (bVar1 == 0) {
ent->action = 3;
ent->parameter3 = 60;
@@ -513,10 +437,9 @@ void sub_080871A8(Entity *ent)
}
}
-void sub_080871D0(Entity *ent)
-{
+void sub_080871D0(Entity* ent) {
u8 bVar1;
-
+
bVar1 = ent->parameter3 -= 1;
if (bVar1 == 0) {
gRoomVars.greatFairyState = gRoomVars.greatFairyState | 8;
@@ -525,15 +448,13 @@ void sub_080871D0(Entity *ent)
}
#ifdef NON_MATCHING
-void sub_080871F8(Entity *ent)
-{
+void sub_080871F8(Entity* ent) {
s32 bVar1;
-
- if ((( ent->attachedEntity->x.HALF.HI == (ent->x).HALF.HI) &&
- ((Entity *)ent->attachedEntity)->y.HALF.HI + -32 == (ent->y).HALF.HI)) {
+
+ if (((ent->attachedEntity->x.HALF.HI == (ent->x).HALF.HI) &&
+ ((Entity*)ent->attachedEntity)->y.HALF.HI + -32 == (ent->y).HALF.HI)) {
ent->action = 2;
- }
- else {
+ } else {
bVar1 = (ent->x).HALF.HI;
sub_080045D4();
ent->direction = bVar1;
@@ -542,14 +463,12 @@ void sub_080871F8(Entity *ent)
}
#else
NAKED
-void sub_080871F8(Entity *ent)
-{
- asm(".include \"asm/greatFairy/sub_080871F8.inc\"");
+void sub_080871F8(Entity* ent) {
+ asm(".include \"asm/greatFairy/sub_080871F8.inc\"");
}
#endif
-void sub_08087240(Entity *ent)
-{
+void sub_08087240(Entity* ent) {
if ((gRoomVars.greatFairyState & 4) != 0) {
ent->action = 3;
ent->parameter3 = 20;
@@ -557,32 +476,26 @@ void sub_08087240(Entity *ent)
}
}
-void sub_08087264(Entity *ent)
-{
+void sub_08087264(Entity* ent) {
if (ent->parameter3 != 0) {
- ent->parameter3 = ent->parameter3 - 1;
+ ent->parameter3--;
sub_0806F69C(ent);
}
}
-void sub_0808727C(Entity *ent)
-{
- u8 bVar1;
-
- bVar1 = ent->parameter3 -= 1;
- if (bVar1 == 0) {
+void sub_0808727C(Entity* ent) {
+
+ if (--ent->parameter3 == 0) {
DeleteEntity(ent);
}
}
-void sub_08087294(Entity *ent)
-{
+void sub_08087294(Entity* ent) {
gUnk_081207A4[ent->action](ent);
}
#ifdef NON_MATCHING
-void sub_080872AC(Entity *ent)
-{
+void sub_080872AC(Entity* ent) {
ent->spriteSettings.b.ss0 = 1;
ent->spriteOrientation.b2 = 1;
ent->spriteOrder.b0 = 0;
@@ -594,9 +507,7 @@ void sub_080872AC(Entity *ent)
}
#else
NAKED
-void sub_080872AC(Entity *ent)
-{
- asm(".include \"asm/greatFairy/sub_080872AC.inc\"");
+void sub_080872AC(Entity* ent) {
+ asm(".include \"asm/greatFairy/sub_080872AC.inc\"");
}
#endif
-
diff --git a/src/introSetTransition.c b/src/introSetTransition.c
index ee56a4e1..81ce484c 100644
--- a/src/introSetTransition.c
+++ b/src/introSetTransition.c
@@ -13,17 +13,16 @@ typedef struct {
} TransitionStruct;
extern u32 DoFade(u32, u32);
-extern void sub_0801D630(u32 *, u32, u32);
+extern void sub_0801D630(u32*, u32, u32);
extern u32 gUnk_02000080;
extern TransitionStruct gUnk_03001000;
extern Menu gUnk_02032EC0;
-
-u32 IntroSetTransition(u8 transition,u32 param_2,u32 param_3)
+u32 IntroSetTransition(u8 transition, u32 param_2, u32 param_3)
{
gUnk_02032EC0.transitionType = transition;
gUnk_03001000.functionIndex = 2;
- sub_0801D630(&gUnk_02000080,48,param_3);
- return DoFade(7,8);
+ sub_0801D630(&gUnk_02000080, 48, param_3);
+ return DoFade(7, 8);
}
diff --git a/src/loadRoom.c b/src/loadRoom.c
index c2eedb70..7c7fcd19 100644
--- a/src/loadRoom.c
+++ b/src/loadRoom.c
@@ -1,32 +1,32 @@
#include "global.h"
/* called when loading any room */
- void LoadRoomEntityList();
- s32 CheckGlobalFlag(u32 flag);
- extern s32* sub_0804B128(u8 unk);
- extern void sub_0804B058(s32 *unk);
- extern void sub_0804B1AC();
- extern void sub_0801AC98();
+void LoadRoomEntityList();
+s32 CheckGlobalFlag(u32 flag);
+extern s32* sub_0804B128(u8 unk);
+extern void sub_0804B058(s32* unk);
+extern void sub_0804B1AC();
+extern void sub_0801AC98();
void LoadRoom(void)
{
s32 iVar1;
- s32 *dat;
+ s32* dat;
+
+ sub_0804B128(1);
+ LoadRoomEntityList();
+ sub_0804B128(0);
+ LoadRoomEntityList();
- sub_0804B128(1);
- LoadRoomEntityList();
- sub_0804B128(0);
- LoadRoomEntityList();
-
iVar1 = CheckGlobalFlag(21);
if (iVar1 != 0) {
- dat = sub_0804B128(2);
- sub_0804B058(dat);
+ dat = sub_0804B128(2);
+ sub_0804B058(dat);
}
- sub_0804B128(3);
- sub_0804B1AC();
- sub_0801AC98();
+ sub_0804B128(3);
+ sub_0804B1AC();
+ sub_0801AC98();
return;
-} \ No newline at end of file
+}
diff --git a/src/loadRoomEntityList.c b/src/loadRoomEntityList.c
index d877a1aa..0937e9c8 100644
--- a/src/loadRoomEntityList.c
+++ b/src/loadRoomEntityList.c
@@ -1,12 +1,12 @@
#include "global.h"
#include "entityData.h"
-void extern CreateEntity(EntityData *);
+void extern CreateEntity(EntityData*);
-void LoadRoomEntityList(EntityData *listPtr) {
- if (listPtr != NULL) {
- while (listPtr->entityType != 0xFF) {
- CreateEntity(listPtr++);
- }
- }
-} \ No newline at end of file
+void LoadRoomEntityList(EntityData* listPtr) {
+ if (listPtr != NULL) {
+ while (listPtr->entityType != 0xFF) {
+ CreateEntity(listPtr++);
+ }
+ }
+}
diff --git a/src/mailbox.c b/src/mailbox.c
index 0e17c18a..c617a04e 100644
--- a/src/mailbox.c
+++ b/src/mailbox.c
@@ -1,25 +1,24 @@
#include "global.h"
#include "entity.h"
-extern void sub_0806ED78(Entity *);
+extern void sub_0806ED78(Entity*);
extern void LoadAnimation();
extern void sub_08063280();
extern void TextboxTryNoOverlap(u32);
extern void sub_080042B8();
extern void CreateFx();
-extern void (*gMailboxBehaviors[4])(Entity *);
+extern void (*gMailboxBehaviors[4])(Entity*);
-void sub_080631E8(Entity *ent)
-{
+void sub_080631E8(Entity* ent) {
gMailboxBehaviors[ent->action](ent);
-
+
if (ent->action != 0) {
sub_0806ED78(ent);
}
}
-void sub_08063210(Entity *ent)
+void sub_08063210(Entity* ent)
{
ent->action = 1;
@@ -27,29 +26,26 @@ void sub_08063210(Entity *ent)
return;
}
-void sub_08063220(Entity *ent)
+void sub_08063220(Entity* ent)
{
u8 bVar1;
-
+
if (ent->interactType != 0) {
ent->action = 2;
bVar1 = 8;
- }
- else {
+ } else {
bVar1 = 0;
}
-
+
if (ent->field_0x58 != bVar1) {
LoadAnimation(ent);
- }
- else {
+ } else {
sub_08063280(ent, bVar1);
}
-
}
-void sub_08063254(Entity *ent)
+void sub_08063254(Entity* ent)
{
sub_08063280(ent);
@@ -60,23 +56,23 @@ void sub_08063254(Entity *ent)
return;
}
-void sub_08063278(Entity *ent)
+void sub_08063278(Entity* ent)
{
sub_08063280(ent);
return;
}
-void sub_08063280(Entity *ent)
+void sub_08063280(Entity* ent)
{
- Entity *e; // r4@1
- u8 var; // r2@1
-
- e = ent;
- sub_080042B8();
- var = e->frames.all & 0x7F;
- e->frames.all = e->frames.all ^ var;
- if ( var == 2 )
- CreateFx(e, 49, 0);
-} \ No newline at end of file
+ Entity* e; // r4@1
+ u8 var; // r2@1
+
+ e = ent;
+ sub_080042B8();
+ var = e->frames.all & 0x7F;
+ e->frames.all = e->frames.all ^ var;
+ if (var == 2)
+ CreateFx(e, 49, 0);
+}
diff --git a/src/mainLoop.c b/src/mainLoop.c
index 9230a2af..a9bf0d32 100644
--- a/src/mainLoop.c
+++ b/src/mainLoop.c
@@ -30,7 +30,7 @@ extern void sub_0804FFE4(void);
extern void sub_0804FF84(u32);
extern void sub_08056418(void);
extern void sub_080ADD30(void);
-extern void sub_0801D630(void *,u32);
+extern void sub_0801D630(void*, u32);
extern void sub_08056010(u32);
extern void ReadKeyInput();
extern u32 sub_08055FF4();
@@ -45,15 +45,14 @@ extern u8 gUnk_02000014;
extern u32 gUnk_020176A0;
extern u32 gRand;
extern MainStruct gUnk_03001000;
-extern void (* gUnk_08100CBC[])();
+extern void (*gUnk_08100CBC[])();
extern void VBlankInterruptWait(void);
-void MainLoop(void)
-{
+void MainLoop(void) {
bool32 codeInputted;
u8 cVar1;
u32 uVar2;
-
+
sub_08055F70();
sub_080A3204();
sub_0805616C();
@@ -62,12 +61,12 @@ void MainLoop(void)
sub_08056208();
gUnk_02000014 = 193;
sub_0804FFE4();
- DmaSet(3, 0x5000000U, &gUnk_020176A0, 0x84000080U);
+ DmaSet(3, 0x5000000U, &gUnk_020176A0, 0x84000080U);
sub_0804FF84(1);
sub_08056418();
sub_080ADD30();
gRand = 0x1234567;
- sub_0801D630(&gUnk_03001000,16);
+ sub_0801D630(&gUnk_03001000, 16);
sub_08056010(0);
do {
ReadKeyInput();
@@ -97,16 +96,15 @@ void MainLoop(void)
sub_08056458();
sub_08050154();
sub_080A3480();
- }
- else {
+ } else {
sub_08056260();
}
sub_08016E78();
- } while( TRUE );
+ } while (TRUE);
}
#else
NAKED
void MainLoop(void) {
- asm(".include \"asm/non_matching/mainLoop.inc\"");
+ asm(".include \"asm/non_matching/mainLoop.inc\"");
}
-#endif \ No newline at end of file
+#endif
diff --git a/src/milkCart.c b/src/milkCart.c
index f313422b..85da0d96 100644
--- a/src/milkCart.c
+++ b/src/milkCart.c
@@ -1,22 +1,19 @@
#include "global.h"
#include "entity.h"
-extern void _call_via_r1(Entity *, u32);
+extern void _call_via_r1(Entity*, u32);
extern void sub_0806ED78();
extern void LoadAnimation();
extern void sub_080042B8();
extern void (*gMilkCartBehaviors[2])(Entity*);
-void sub_08065B4C(Entity *ent)
-{
+void sub_08065B4C(Entity* ent) {
gMilkCartBehaviors[ent->action](ent);
sub_0806ED78(ent);
}
-
-void sub_08065B6C(Entity *ent)
-{
+void sub_08065B6C(Entity* ent) {
ent->action++;
ent->spriteSettings.b.ss0 = 1;
(ent->y).HALF.LO += -32768;
@@ -24,8 +21,6 @@ void sub_08065B6C(Entity *ent)
LoadAnimation(ent, 3);
}
-
-void sub_08065B9C(Entity *ent)
-{
+void sub_08065B9C(Entity* ent) {
sub_080042B8(ent);
-} \ No newline at end of file
+}
diff --git a/src/modHealth.c b/src/modHealth.c
index be51881c..8706debe 100644
--- a/src/modHealth.c
+++ b/src/modHealth.c
@@ -6,7 +6,7 @@ s32 ModHealth(s32 deltaHealth)
{
s32 newHealth;
-
+
newHealth = gStats.health + deltaHealth;
if (newHealth < 0) {
newHealth = 0;
@@ -17,4 +17,4 @@ s32 ModHealth(s32 deltaHealth)
gStats.health = newHealth;
gLinkEntity.currentHealth = newHealth;
return newHealth;
-} \ No newline at end of file
+}
diff --git a/src/modRupees.c b/src/modRupees.c
index 47f59412..bbe8b88e 100644
--- a/src/modRupees.c
+++ b/src/modRupees.c
@@ -7,16 +7,15 @@ void ModRupees(s32 rupeeDelta)
{
s32 newRupeeCount;
- Stats *s = &gStats;
+ Stats* s = &gStats;
newRupeeCount = s->rupees + rupeeDelta;
if (newRupeeCount < 0) {
newRupeeCount = 0;
- }
- else {
+ } else {
if (newRupeeCount > gWalletSizes[s->walletType * 2]) {
newRupeeCount = gWalletSizes[s->walletType * 2];
}
}
s->rupees = newRupeeCount;
-} \ No newline at end of file
+}
diff --git a/src/object1A.c b/src/object1A.c
index 005683c5..4083c55d 100644
--- a/src/object1A.c
+++ b/src/object1A.c
@@ -1,7 +1,7 @@
#include "global.h"
#include "entity.h"
-extern Entity * CreateObject();
+extern Entity* CreateObject();
extern void CopyPosition();
extern void sub_08086A6C();
extern s32 sub_080044EC();
@@ -9,20 +9,18 @@ extern void sub_080AEF88();
extern void DeleteThisEntity();
extern u32 Random(void);
-extern void (*gUnk_081206C4[99])(Entity *);
+extern void (*gUnk_081206C4[99])(Entity*);
extern u32 gUnk_080FD1A8;
-//Main
-void sub_080869C4(Entity *ent)
-{
+// Main
+void sub_080869C4(Entity* ent) {
gUnk_081206C4[ent->action](ent);
}
-void sub_080869DC(Entity *ent)
-{
- Entity *itemEntity;
-
+void sub_080869DC(Entity* ent) {
+ Entity* itemEntity;
+
ent->action = 1;
ent->spriteSettings.b.ss0 = 0;
ent->boundingBox = &gUnk_080FD1A8;
@@ -37,35 +35,31 @@ void sub_080869DC(Entity *ent)
}
}
-void sub_08086A28(Entity *ent)
-{
+void sub_08086A28(Entity* ent) {
s32 iVar1;
-
+
if (ent->attachedEntity->field_0x4 == NULL) {
ent->action = 2;
- }
- else {
+ } else {
iVar1 = sub_080044EC(ent, 10240);
if (iVar1 == 0) {
ent->action = 2;
}
sub_080AEF88(ent);
- CopyPosition(ent,ent->attachedEntity);
+ CopyPosition(ent, ent->attachedEntity);
}
}
-void sub_08086A5C(Entity *ent)
-{
+void sub_08086A5C(Entity* ent) {
ent->attachedEntity->parent = NULL;
DeleteThisEntity();
}
-void sub_08086A6C(Entity *ent)
-{
+void sub_08086A6C(Entity* ent) {
u32 uVar1;
-
+
uVar1 = Random();
ent->field_0x20 = 163840;
ent->direction = (uVar1 >> 16) & 31;
ent->nonPlanarMovement = uVar1 & 480;
-} \ No newline at end of file
+}
diff --git a/src/ocarina.c b/src/ocarina.c
index 3c916ced..0a5dc2e6 100644
--- a/src/ocarina.c
+++ b/src/ocarina.c
@@ -4,38 +4,36 @@
#include "link.h"
extern void _call_via_r2();
-extern void sub_08077E78(ItemBehavior *, u32);
+extern void sub_08077E78(ItemBehavior*, u32);
extern void PlaySFX(u32);
extern void sub_08078F60(void);
-extern void sub_08077D38(ItemBehavior *, u32);
+extern void sub_08077D38(ItemBehavior*, u32);
extern void sub_0805E544(void);
-extern void UpdateItemAnim(ItemBehavior *);
+extern void UpdateItemAnim(ItemBehavior*);
extern void CreateBird(void);
extern void UnfreezeTime(void);
extern Entity gLinkEntity;
extern LinkState gLinkState;
-extern void (*gOcarinaStates[4])(ItemBehavior *, u32);
+extern void (*gOcarinaStates[4])(ItemBehavior*, u32);
extern u8 gUnk_02034490;
-void Ocarina(ItemBehavior *pItemBeh,u32 inputFlags)
+void Ocarina(ItemBehavior* pItemBeh, u32 inputFlags)
{
- //u32 *ocarinaStates = &gOcarinaStates;
+ // u32 *ocarinaStates = &gOcarinaStates;
//_call_via_r2(pItemBeh, inputFlags,(ocarinaStates)[pItemBeh->stateID]);
gOcarinaStates[pItemBeh->stateID](pItemBeh, inputFlags);
gLinkEntity.itemCooldown = gLinkEntity.itemCooldown + 1;
}
-void OcarinaUse(ItemBehavior *itemBeh,s32 inputFlags)
-{
+void OcarinaUse(ItemBehavior* itemBeh, s32 inputFlags) {
u32 bVar1;
u32 var;
if (gLinkState.linkAction == 24) {
- sub_08077E78(itemBeh,inputFlags);
- }
- else {
+ sub_08077E78(itemBeh, inputFlags);
+ } else {
itemBeh->unk4 |= 15;
gLinkEntity.animationState = 4;
var = gLinkEntity.spriteSettings.raw & ~0x40;
@@ -50,8 +48,8 @@ void OcarinaUse(ItemBehavior *itemBeh,s32 inputFlags)
gLinkState.unk3 = bVar1 | gLinkState.unk3;
gLinkState.keepFacing = bVar1 | gLinkState.keepFacing;
sub_08078F60();
- sub_08077D38(itemBeh,inputFlags);
+ sub_08077D38(itemBeh, inputFlags);
PlaySFX(534);
sub_0805E544();
}
-} \ No newline at end of file
+}
diff --git a/src/octorok.c b/src/octorok.c
index 4d6a0a78..21ad23e4 100644
--- a/src/octorok.c
+++ b/src/octorok.c
@@ -18,117 +18,100 @@ extern u32 Random();
extern void sub_0801ED14();
extern void sub_08004274();
-extern void (*gOctorok[2]);
-extern void (*gOctorokIdle[4])(Entity *);
-extern void (*gUnk_080CA158[4])(Entity *);
+extern void(*gOctorok[2]);
+extern void (*gOctorokIdle[4])(Entity*);
+extern void (*gUnk_080CA158[4])(Entity*);
extern u8 gUnk_080CA170[8];
-//Main
-void sub_0801EAB0(Entity *ent)
-{
+// Main
+void sub_0801EAB0(Entity* ent) {
EnemyFunctionHandler(ent, gOctorok);
SetChildOffset(ent, 0, 1, -16);
}
-//Idle
-void sub_0801EAD0(Entity *ent)
-{
+// Idle
+void sub_0801EAD0(Entity* ent) {
gOctorokIdle[ent->action](ent);
}
-//Touch player
-void sub_0801EAE8(Entity *ent)
-{
+// Touch player
+void sub_0801EAE8(Entity* ent) {
if (ent->field_0x43 != 0) {
sub_0804A9FC(ent, 28);
}
sub_0804AA30(ent, gOctorok);
}
-//Death
-void sub_0801EB0C(Entity *ent)
-{
+// Death
+void sub_0801EB0C(Entity* ent) {
if ((ent->entityType).parameter1 == 0) {
sub_0804A7D4(ent);
- }
- else {
+ } else {
CreateDeathFx(ent, 241, 0);
}
}
-void sub_0801EB2C(Entity *ent)
-{
+void sub_0801EB2C(Entity* ent) {
s32 iVar1;
-
+
if ((ent->previousActionFlag < 3) && (iVar1 = sub_0806F520(ent), iVar1 == 0)) {
sub_0801ECFC(ent);
InitializeAnimation(ent, ent->animationState);
- }
- else {
+ } else {
gUnk_080CA158[ent->previousActionFlag](ent);
}
}
-void sub_0801EB68(Entity *ent)
-{
+void sub_0801EB68(Entity* ent) {
ent->previousActionFlag = 1;
ent->filler[1] = 60;
}
-void sub_0801EB74(Entity *ent)
-{
- sub_0806F4E8(ent);
+void sub_0801EB74(Entity* ent) {
+ sub_0806F4E8(ent);
}
-void sub_0801EB7C(Entity *ent)
-{
+void sub_0801EB7C(Entity* ent) {
sub_0806F3E4(ent);
}
-void sub_0801EB84(Entity *ent)
-{
+void sub_0801EB84(Entity* ent) {
ent->flags = ent->flags & 127;
InitializeAnimationAnimation(ent, 2);
}
-void nullsub_3()
-{
+void nullsub_3() {
}
-void sub_0801EB9C(Entity *ent)
-{
+void sub_0801EB9C(Entity* ent) {
if ((ent->flags & 128) != 0) {
ent->flags = ent->flags | 128;
ent->field_0x3a = ent->field_0x3a & 251;
- }
- else {
+ } else {
ent->currentHealth = 0;
}
}
-//Init
+// Init
#ifdef NON_MATCHING
-void sub_0801EBC8(Entity *ent)
-{
+void sub_0801EBC8(Entity* ent) {
sub_0804A720();
ent->animationState = (ent->entityType).parameter1 == 2 ? (ent->entityType).parameter1 : Random() & 3;
ent->filler[0] = 18;
sub_0801ECFC(ent);
- InitializeAnimation(ent,ent->animationState);
+ InitializeAnimation(ent, ent->animationState);
}
#else
NAKED
-void sub_0801EBC8(Entity *ent)
-{
- asm(".include \"asm/octorok/sub_0801EBC8.inc\"");
+void sub_0801EBC8(Entity* ent) {
+ asm(".include \"asm/octorok/sub_0801EBC8.inc\"");
}
#endif
-void sub_0801EBF4(Entity *ent)
-{
+void sub_0801EBF4(Entity* ent) {
u8 bVar1;
u32 uVar2;
-
+
bVar1 = ent->parameter3 -= 1;
if (bVar1 == 0) {
ent->action = 2;
@@ -137,4 +120,4 @@ void sub_0801EBF4(Entity *ent)
sub_0801ED14(ent);
}
sub_08004274(ent);
-} \ No newline at end of file
+}
diff --git a/src/positionRelative.c b/src/positionRelative.c
index 14aab5b3..2c18c7b0 100644
--- a/src/positionRelative.c
+++ b/src/positionRelative.c
@@ -1,19 +1,19 @@
#include "global.h"
#include "entity.h"
-extern void UpdateSpriteOrderAndFlip(Entity *);
+extern void UpdateSpriteOrderAndFlip(Entity*);
-void PositionRelative(Entity *source, Entity *target, s32 offsetX, s32 offsetY) { //r0, r1, r2, r3
- s32 x;
- s32 y;
-
- x = source->x.WORD;
+void PositionRelative(Entity* source, Entity* target, s32 offsetX, s32 offsetY) { // r0, r1, r2, r3
+ s32 x;
+ s32 y;
+
+ x = source->x.WORD;
target->x.WORD = x + offsetX;
-
- y = source->y.WORD;
+
+ y = source->y.WORD;
target->y.WORD = y + offsetY;
-
- target->height = source->height; //ldr
- target->collisionLayer = source->collisionLayer;
- UpdateSpriteOrderAndFlip(target);
-} \ No newline at end of file
+
+ target->height = source->height; // ldr
+ target->collisionLayer = source->collisionLayer;
+ UpdateSpriteOrderAndFlip(target);
+}
diff --git a/src/room.c b/src/room.c
index c1f98162..8149cc1f 100644
--- a/src/room.c
+++ b/src/room.c
@@ -8,10 +8,10 @@ extern u32 gUnk_0200B650;
extern u32 gUnk_02025EB0;
extern u8 gUnk_030010A0[10];
-extern void sub_08080840(Entity *);
+extern void sub_08080840(Entity*);
extern void sub_080809D4();
-void sub_0808091C(Entity *param_1,u32 param_2)
+void sub_0808091C(Entity* param_1, u32 param_2)
{
sub_08080840(param_1);
@@ -30,22 +30,21 @@ void sub_08080930(void)
return;
}
-u32 * GetLayerByIndex(u32 param_1)
+u32* GetLayerByIndex(u32 param_1)
{
-
+
if (param_1 == 2) {
return &gUnk_0200B650;
- }
- else {
+ } else {
return &gUnk_02025EB0;
}
}
-void sub_08080964(u16 time,u32 magnitude)
+void sub_08080964(u16 time, u32 magnitude)
{
gRoomControls.screenShakeTime = time;
gRoomControls.screenShakeMagnitude = magnitude & 7;
return;
-} \ No newline at end of file
+}
diff --git a/src/slime.c b/src/slime.c
index 679be3f4..4c226ec0 100644
--- a/src/slime.c
+++ b/src/slime.c
@@ -2,64 +2,59 @@
#include "entity.h"
typedef struct {
- void * field_0x0;
- void * entityCount;
+ void* field_0x0;
+ void* entityCount;
u8 freezeTime;
} EntityHandler;
-extern void EnemyFunctionHandler(Entity *, void *);
-extern void SetChildOffset(Entity *, u32, u32, u32);
-extern void sub_0804AA30(Entity *, void *);
-extern void sub_0804A9FC(Entity *, u32);
-extern void sub_0804A720(Entity *);
-extern void InitializeAnimation(Entity *, u32);
-extern void sub_08044FF8(Entity *);
+extern void EnemyFunctionHandler(Entity*, void*);
+extern void SetChildOffset(Entity*, u32, u32, u32);
+extern void sub_0804AA30(Entity*, void*);
+extern void sub_0804A9FC(Entity*, u32);
+extern void sub_0804A720(Entity*);
+extern void InitializeAnimation(Entity*, u32);
+extern void sub_08044FF8(Entity*);
extern u32 Random(void);
-extern void sub_08004274(Entity *);
+extern void sub_08004274(Entity*);
extern u32 sub_0806FA04(u32, u32);
-extern u32 sub_08049FA0(Entity *);
-extern u32 sub_08049EE4(Entity *);
+extern u32 sub_08049FA0(Entity*);
+extern u32 sub_08049EE4(Entity*);
extern u32 sub_080AEF88(void);
-extern Entity * CreateEnemy(u32, u32);
+extern Entity* CreateEnemy(u32, u32);
-
-extern void (*gUnk_080D16BC[])(Entity *);
-extern void (*gUnk_080D16A4[])(Entity *);
+extern void (*gUnk_080D16BC[])(Entity*);
+extern void (*gUnk_080D16A4[])(Entity*);
extern u8 gUnk_080D16D0;
extern EntityHandler gUnk_03003DB8;
-
-void sub_08044F50(Entity *this)
+void sub_08044F50(Entity* this)
{
EnemyFunctionHandler(this, &gUnk_080D16A4);
- SetChildOffset(this,0,1,-12);
+ SetChildOffset(this, 0, 1, -12);
}
-void sub_08044F70(Entity *this)
-{
+void sub_08044F70(Entity* this) {
gUnk_080D16BC[this->action](this);
}
-void sub_08044F88(Entity *this)
-{
+void sub_08044F88(Entity* this) {
if ((this->currentHealth != 0) && (this->cutsceneBeh.HALF.LO != this->currentHealth)) {
this->action = 4;
- }
- else {
- sub_0804AA30(this,&gUnk_080D16A4);
+ } else {
+ sub_0804AA30(this, &gUnk_080D16A4);
}
if (this->field_0x43 != 0) {
- sub_0804A9FC(this,28);
+ sub_0804A9FC(this, 28);
}
}
-void nullsub_171(){}
+void nullsub_171() {
+}
-void sub_08044FC8(Entity *this)
-{
+void sub_08044FC8(Entity* this) {
this->action = 1;
this->spriteSettings.b.ss0 = 1;
this->nonPlanarMovement = 128;
@@ -68,23 +63,21 @@ void sub_08044FC8(Entity *this)
sub_08044FF8(this);
}
-void sub_08044FF8(Entity *this)
-{
+void sub_08044FF8(Entity* this) {
u32 bVar1;
-
+
this->action = 2;
bVar1 = Random();
this->parameter3 = (bVar1 & 31) + 30;
this->cutsceneBeh.HALF.LO = this->currentHealth;
}
-void sub_08045018(Entity *this)
-{
+void sub_08045018(Entity* this) {
u32 cVar1;
u32 param3;
u32 iVar3;
u32 randValue;
-
+
sub_08004274(this);
param3 = this->parameter3 -= 1;
if (param3 == 0) {
@@ -96,17 +89,16 @@ void sub_08045018(Entity *this)
iVar3 = sub_08049FA0(this);
if ((iVar3 == 0) && (randValue = Random(), (randValue & 3) != 0)) {
cVar1 = sub_08049EE4(this);
- this->direction = (cVar1 + 0xfc + (Random() & 8)) & 24;
+ this->direction = (cVar1 + 0xfc + (Random() & 8)) & 24;
return;
}
this->direction = Random() & 24;
}
}
-void sub_08045088(Entity *this)
-{
+void sub_08045088(Entity* this) {
u8 bVar1;
-
+
sub_080AEF88();
sub_08004274(this);
bVar1 = this->parameter3 -= 1;
@@ -116,22 +108,22 @@ void sub_08045088(Entity *this)
}
#ifdef NON_MATCHING
-void sub_080450A8(Entity *this)
+void sub_080450A8(Entity* this)
{
u8 bVar1;
u32 uVar2;
s32 iVar3;
s32 iVar4;
- Entity *pEVar5;
- Entity **ppEVar6;
+ Entity* pEVar5;
+ Entity** ppEVar6;
s32 dividend;
u32 uVar7;
- Entity *local_r6_72;
+ Entity* local_r6_72;
u32 divisor;
- u8 *pcVar8;
- Entity *local_2c [4];
-
+ u8* pcVar8;
+ Entity* local_2c[4];
+
ppEVar6 = local_2c;
bVar1 = (&gUnk_080D16D0)[(this->entityType).parameter1];
divisor = (u32)bVar1;
@@ -139,7 +131,7 @@ void sub_080450A8(Entity *this)
uVar7 = divisor;
if (bVar1 != 0) {
do {
- uVar2 = CreateEnemy(87,this->entityType.parameter1);
+ uVar2 = CreateEnemy(87, this->entityType.parameter1);
*ppEVar6 = uVar2;
ppEVar6 = ppEVar6 + 1;
uVar7 = uVar7 - 1;
@@ -151,28 +143,28 @@ void sub_080450A8(Entity *this)
do {
local_r6_72 = local_2c[iVar4];
dividend = iVar4 + 1;
- iVar3 = Div(dividend,divisor);
+ iVar3 = Div(dividend, divisor);
local_r6_72->attachedEntity = local_2c[iVar3];
- iVar4 = Div(iVar4 + divisor + -1,divisor);
+ iVar4 = Div(iVar4 + divisor + -1, divisor);
local_r6_72->parent = local_2c[iVar4];
(local_r6_72->entityType).parameter2 = 1;
local_r6_72->height.WORD = 0;
local_r6_72->hurtBlinkTime = 240;
- sub_08045178(this,local_r6_72,*pcVar8,pcVar8[1]);
+ sub_08045178(this, local_r6_72, *pcVar8, pcVar8[1]);
pcVar8 = pcVar8 + 2;
iVar4 = dividend;
} while (dividend < divisor);
}
- pEVar5 = CreateFx(this,2,0);
+ pEVar5 = CreateFx(this, 2, 0);
if (pEVar5 != NULL) {
- CopyPosition(this,pEVar5);
+ CopyPosition(this, pEVar5);
}
DeleteEnemy(this);
}
}
#else
NAKED
-void sub_080450A8(Entity *this) {
- asm(".include \"asm/non_matching/slime/sub_080450A8.inc\"");
+void sub_080450A8(Entity* this) {
+ asm(".include \"asm/non_matching/slime/sub_080450A8.inc\"");
}
-#endif \ No newline at end of file
+#endif
diff --git a/src/stamp.c b/src/stamp.c
index 6f8ae194..8ac339da 100644
--- a/src/stamp.c
+++ b/src/stamp.c
@@ -2,11 +2,11 @@
#include "entity.h"
#include "textbox.h"
-extern void InitializeAnimation(Entity *, u32);
-extern void sub_08078778(Entity *);
-extern void sub_0805E47C(Entity *);
-extern void sub_08004274(Entity *);
-extern void sub_0806ED78(Entity *);
+extern void InitializeAnimation(Entity*, u32);
+extern void sub_08078778(Entity*);
+extern void sub_0805E47C(Entity*);
+extern void sub_08004274(Entity*);
+extern void sub_0806ED78(Entity*);
extern void TextboxTryNoOverlap(u32);
extern void sub_0805E584();
extern void sub_0807DD64();
@@ -17,18 +17,17 @@ extern void sub_0807DDE4();
extern u32 sub_0801E7F4();
extern void ShowNPCDialogue();
-
extern void (*gStampBehaviors1[4])(Entity*);
extern void (*gStampBehaviors2[2])(Entity*);
extern TextBox gTextBox;
extern u32 gUnk_0810C2E4;
-extern void InitializeAnimation(Entity *, u32);
-extern void sub_08078778(Entity *);
-extern void sub_0805E47C(Entity *);
-extern void sub_08004274(Entity *);
-extern void sub_0806ED78(Entity *);
+extern void InitializeAnimation(Entity*, u32);
+extern void sub_08078778(Entity*);
+extern void sub_0805E47C(Entity*);
+extern void sub_08004274(Entity*);
+extern void sub_0806ED78(Entity*);
extern void TextboxTryNoOverlap(u32);
extern void sub_0805E584();
extern void sub_0807DD64();
@@ -39,33 +38,28 @@ extern void sub_0807DDE4();
extern u32 sub_0801E7F4();
extern void ShowNPCDialogue();
-
extern void (*gStampBehaviors1[4])(Entity*);
extern void (*gStampBehaviors2[2])(Entity*);
extern TextBox gTextBox;
extern u32 gUnk_0810C2E4;
-void sub_08062B98(Entity *ent)
-{
+void sub_08062B98(Entity* ent) {
if ((ent->flags & 2) != 0) {
gStampBehaviors2[ent->action](ent);
- }
- else {
+ } else {
gStampBehaviors1[ent->action](ent);
}
}
-void sub_08062BD4(Entity *ent)
-{
+void sub_08062BD4(Entity* ent) {
ent->action = 1;
ent->spriteSettings.b.ss0 = 1;
InitializeAnimation(ent, 0);
sub_08078778(ent);
}
-void sub_08062BF8(Entity *ent)
-{
+void sub_08062BF8(Entity* ent) {
sub_08004274(ent);
if (ent->interactType != 0) {
ent->interactType = 0;
@@ -75,8 +69,7 @@ void sub_08062BF8(Entity *ent)
sub_0806ED78(ent);
}
-void sub_08062C24(Entity *ent)
-{
+void sub_08062C24(Entity* ent) {
sub_08004274(ent);
if ((ent->frames.all & 128) != 0) {
InitializeAnimation(ent, 4);
@@ -85,8 +78,7 @@ void sub_08062C24(Entity *ent)
}
}
-void sub_08062C54(Entity *ent)
-{
+void sub_08062C54(Entity* ent) {
if ((gTextBox.doTextBox & 127) == 0) {
ent->action = 1;
InitializeAnimation(ent, 0);
@@ -94,8 +86,7 @@ void sub_08062C54(Entity *ent)
}
}
-void sub_08062C7C(Entity *ent)
-{
+void sub_08062C7C(Entity* ent) {
ent->action = 1;
sub_0807DD64(ent);
InitializeAnimation(ent, 0);
@@ -103,24 +94,21 @@ void sub_08062C7C(Entity *ent)
sub_08062CA4(ent);
}
-void sub_08062CA4(Entity *ent)
-{
+void sub_08062CA4(Entity* ent) {
sub_0807DDAC(ent, 0);
sub_0807DDE4(ent);
sub_08004274(ent);
}
-void sub_08062CBC(Entity *ent)
-{
+void sub_08062CBC(Entity* ent) {
u32 uVar1;
-
+
uVar1 = sub_0801E7F4(44);
ShowNPCDialogue(ent, &gUnk_0810C2E4 + ((-uVar1 | uVar1) >> 31) * 2);
}
-void sub_08062CE0(Entity *ent)
-{
+void sub_08062CE0(Entity* ent) {
if (ent->action == 0) {
ent->action = 1;
}
-} \ No newline at end of file
+}
diff --git a/src/sub_0801D5EC.c b/src/sub_0801D5EC.c
index f5757230..a660e4f0 100644
--- a/src/sub_0801D5EC.c
+++ b/src/sub_0801D5EC.c
@@ -1,5 +1,4 @@
#include "global.h"
-void sub_0801D5EC(u32 a1, u32 a2, u32 a3)
-{
+void sub_0801D5EC(u32 a1, u32 a2, u32 a3) {
DmaFill16(3, a1, a2, a3);
-} \ No newline at end of file
+}
diff --git a/src/sub_0801D754.c b/src/sub_0801D754.c
index 9ef36979..f2bab6f9 100644
--- a/src/sub_0801D754.c
+++ b/src/sub_0801D754.c
@@ -3,14 +3,13 @@
extern void sub_0807C960();
extern u32 sub_0801D754(u32, u8, u8);
-u32 sub_0807C9D8(u32 *a1)
-{
- u32 *v1; // r5@1
+u32 sub_0807C9D8(u32* a1) {
+ u32* v1; // r5@1
- v1 = a1;
- sub_0807C960(0x6004000, *a1);
- sub_0807C960(0x6000000, v1[1]);
- sub_0807C960(0x6008000, v1[2]);
- sub_0807C960(0x20176E0, v1[3]);
- return sub_0801D754(0x20176E0, 2, 13);
-} \ No newline at end of file
+ v1 = a1;
+ sub_0807C960(0x6004000, *a1);
+ sub_0807C960(0x6000000, v1[1]);
+ sub_0807C960(0x6008000, v1[2]);
+ sub_0807C960(0x20176E0, v1[3]);
+ return sub_0801D754(0x20176E0, 2, 13);
+}
diff --git a/src/sub_0804AA84.c b/src/sub_0804AA84.c
index 8f45ee69..b706d4f1 100644
--- a/src/sub_0804AA84.c
+++ b/src/sub_0804AA84.c
@@ -10,30 +10,28 @@ extern u8 gUnk_03001000;
u32 sub_0804AA84(void)
{
- u8 * r3 = &gArea;
- u8 * r2;
- u8 r0 = *(u8 *)(r3 + 0x19);
- u8 r1;
-
+ u8 * r3 = &gArea;
+ u8 * r2;
+ u8 r0 = *(u8 *)(r3 + 0x19);
+ u8 r1;
+
if (!r0) {
- *(r3 + 0x18) = r0;
- *(r3 + 0x19) = r0;
- r0 = 0;
- }
+ *(r3 + 0x18) = r0;
+ *(r3 + 0x19) = r0;
+ r0 = 0;
+ }
else {
- r2 = &gUnk_03001000;
- r1 = 0;
- r0 = 4;
+ r2 = &gUnk_03001000;
+ r1 = 0;
+ r0 = 4;
*(r2 + 0x4) = r0;
*(r3 + 0xe) = r1;
*(r3 + 0xf) = r1;
*(u16*)(r3 + 0x10) = r1;
sub_0805E5A8();
- r0 = 1;
+ r0 = 1;
}
- return r0;
+ return r0;
} */
-//void sub_0804AA9C() {
-
-
+// void sub_0804AA9C() {
diff --git a/src/sub_0804AFF4.c b/src/sub_0804AFF4.c
index bcf104a4..a1a4731d 100644
--- a/src/sub_0804AFF4.c
+++ b/src/sub_0804AFF4.c
@@ -1,15 +1,13 @@
#include "global.h"
-
extern void sub_080186EC();
-extern u32 * sub_0804B128(u8);
-extern u32 _call_via_r0(u32 *);
+extern u32* sub_0804B128(u8);
+extern u32 _call_via_r0(u32*);
extern void sub_0804B16C();
-void sub_0804AFF4(void)
-{
- u32 *func;
-
+void sub_0804AFF4(void) {
+ u32* func;
+
sub_080186EC();
func = sub_0804B128(5);
if (func != NULL) {
@@ -24,22 +22,22 @@ void sub_0804AFF4(void)
}
/*
- thumb_func_start sub_0804AFF4
+ thumb_func_start sub_0804AFF4
sub_0804AFF4: @ 0x0804AFF4
- push {lr}
- bl sub_080186EC
- movs r0, #5
- bl sub_0804B128
- cmp r0, #0
- beq _0804B008
- bl _call_via_r0
+ push {lr}
+ bl sub_080186EC
+ movs r0, #5
+ bl sub_0804B128
+ cmp r0, #0
+ beq _0804B008
+ bl _call_via_r0
_0804B008:
- movs r0, #7
- bl sub_0804B128
- cmp r0, #0
- beq _0804B016
- bl _call_via_r0
+ movs r0, #7
+ bl sub_0804B128
+ cmp r0, #0
+ beq _0804B016
+ bl _call_via_r0
_0804B016:
- bl sub_0804B16C
- pop {pc}
- */ \ No newline at end of file
+ bl sub_0804B16C
+ pop {pc}
+ */
diff --git a/src/sub_08050008.c b/src/sub_08050008.c
index ad18e610..7ed85c26 100644
--- a/src/sub_08050008.c
+++ b/src/sub_08050008.c
@@ -4,14 +4,13 @@ extern u32 gUnk_020354C0;
extern s32 gUnk_03000FD0;
extern void sub_0801D630(u32, u32, u32);
-void sub_08050008(u32 param_1,u32 param_2,u32 param_3)
-{
- s32 * unk;
-
- sub_0801D630((u32)&gUnk_020354C0,128,param_3);
-
- unk = &gUnk_03000FD0;
+void sub_08050008(u32 param_1, u32 param_2, u32 param_3) {
+ s32* unk;
+
+ sub_0801D630((u32)&gUnk_020354C0, 128, param_3);
+
+ unk = &gUnk_03000FD0;
*(unk + 1) = -1;
-
+
return;
-} \ No newline at end of file
+}
diff --git a/src/sub_08050024.c b/src/sub_08050024.c
index 0938882a..23f50e01 100644
--- a/src/sub_08050024.c
+++ b/src/sub_08050024.c
@@ -3,22 +3,20 @@
extern void sub_0801E104();
extern void DoFade(u32, u32);
-void sub_08050024()
-{
- sub_0801E104();
- DoFade(5, 0x80 << 1);
- return;
+void sub_08050024() {
+ sub_0801E104();
+ DoFade(5, 0x80 << 1);
+ return;
}
-
/* thumb_func_start sub_08050024
sub_08050024: @ 0x08050024
- push {lr}
- bl sub_0801E104
- movs r1, #0x80
- lsls r1, r1, #1
- movs r0, #5
- bl DoFade
- pop {pc}
- .align 2, 0
- */ \ No newline at end of file
+ push {lr}
+ bl sub_0801E104
+ movs r1, #0x80
+ lsls r1, r1, #1
+ movs r0, #5
+ bl DoFade
+ pop {pc}
+ .align 2, 0
+ */
diff --git a/src/sub_08052620.c b/src/sub_08052620.c
index c91c9267..c4ec163a 100644
--- a/src/sub_08052620.c
+++ b/src/sub_08052620.c
@@ -2,7 +2,6 @@
extern u8 gArea;
-bool32 sub_08052620(u32 r0)
-{
+bool32 sub_08052620(u32 r0) {
return gArea == 0x81;
}
diff --git a/src/sub_08052638.c b/src/sub_08052638.c
index 5271d607..987572d8 100644
--- a/src/sub_08052638.c
+++ b/src/sub_08052638.c
@@ -2,10 +2,9 @@
extern u8 gUnk_08127D30[69];
-u32 sub_08052638(u32 r0)
-{
- //u32 r1 = gUnk_08127D30;
- //u32 r1 = gUnk_08127D30;
+u32 sub_08052638(u32 r0) {
+ // u32 r1 = gUnk_08127D30;
+ // u32 r1 = gUnk_08127D30;
return gUnk_08127D30[r0 * 4] == 129;
-} \ No newline at end of file
+}
diff --git a/src/sub_08055E08.c b/src/sub_08055E08.c
index 310ceaaa..7ae07b29 100644
--- a/src/sub_08055E08.c
+++ b/src/sub_08055E08.c
@@ -1,13 +1,13 @@
#include "global.h"
-extern u32 * _call_via_r0(u32 *func);
+extern u32* _call_via_r0(u32* func);
extern u8 gUnk_02000080;
-extern u32 *gUnk_080FF420;
+extern u32* gUnk_080FF420;
void sub_08055E08() {
- u32 **arr = &gUnk_080FF420;
+ u32** arr = &gUnk_080FF420;
u8 i = gUnk_02000080;
- i = *(&gUnk_02000080 + 6);
- _call_via_r0(arr[i]);
-} \ No newline at end of file
+ i = *(&gUnk_02000080 + 6);
+ _call_via_r0(arr[i]);
+}
diff --git a/src/sub_0805E374.c b/src/sub_0805E374.c
index 6ae1ddd0..38b30e94 100644
--- a/src/sub_0805E374.c
+++ b/src/sub_0805E374.c
@@ -1,15 +1,14 @@
#include "entity.h"
-extern Entity * sub_0805E3A0(Entity *, u32);
+extern Entity* sub_0805E3A0(Entity*, u32);
extern u8 gUnk_030010A0[];
extern u8 gUnk_081091F8[];
extern u8 gUnk_081091EE[];
-Entity * sub_0805E374(Entity *param_1)
-{
+Entity* sub_0805E374(Entity* param_1) {
u8 r3 = gUnk_030010A0[0x2C];
- u8 *array = gUnk_081091F8;
+ u8* array = gUnk_081091F8;
- if ( r3 != '\x02') {
+ if (r3 != '\x02') {
array = gUnk_081091EE;
}
- return sub_0805E3A0(param_1,array[(param_1->entityType).type]);
-} \ No newline at end of file
+ return sub_0805E3A0(param_1, array[(param_1->entityType).type]);
+}
diff --git a/src/sub_0805E3A0.c b/src/sub_0805E3A0.c
index 61b4cef7..809d4b54 100644
--- a/src/sub_0805E3A0.c
+++ b/src/sub_0805E3A0.c
@@ -1,9 +1,9 @@
#include "global.h"
#include "entity.h"
-Entity * sub_0805E3A0(Entity *ent, u32 param){
- //these are bitfields
- ent->scriptedScene2 = param;
+Entity* sub_0805E3A0(Entity* ent, u32 param) {
+ // these are bitfields
+ ent->scriptedScene2 = param;
ent->scriptedScene = param;
- return ent;
+ return ent;
}
diff --git a/src/sub_0806F9EC.c b/src/sub_0806F9EC.c
index 70a5b993..9f029530 100644
--- a/src/sub_0806F9EC.c
+++ b/src/sub_0806F9EC.c
@@ -1,13 +1,13 @@
#include "global.h"
-s32 sub_0806F9EC(s16 param_1,s16 param_2)
+s32 sub_0806F9EC(s16 param_1, s16 param_2)
{
int iVar1;
-
+
iVar1 = (s32)param_1 * (s32)param_2;
if (iVar1 < 0) {
iVar1 = iVar1 + 255;
}
return (iVar1 << 8) >> 16;
-} \ No newline at end of file
+}
diff --git a/src/sub_0806FA04.c b/src/sub_0806FA04.c
index d5fc114d..a7eb191a 100644
--- a/src/sub_0806FA04.c
+++ b/src/sub_0806FA04.c
@@ -2,18 +2,17 @@
extern s32 __divsi3(s32, s32);
-s16 sub_0806FA04(s16 param_1,s16 param_2)
+s16 sub_0806FA04(s16 param_1, s16 param_2)
{
s16 sVar1;
s32 iVar2;
-
+
if (param_2 != 0) {
- sVar1 = __divsi3( (param_1 << 16) >> 8 ,param_2);
+ sVar1 = __divsi3((param_1 << 16) >> 8, param_2);
iVar2 = sVar1;
- }
- else {
+ } else {
iVar2 = 0;
}
return iVar2;
-} \ No newline at end of file
+}
diff --git a/src/sub_0806FA24.c b/src/sub_0806FA24.c
index 015b773d..de614717 100644
--- a/src/sub_0806FA24.c
+++ b/src/sub_0806FA24.c
@@ -1,10 +1,10 @@
#include "global.h"
#include "entity.h"
-void PositionRelative(Entity *, Entity *, s32, s32);
+void PositionRelative(Entity*, Entity*, s32, s32);
-void CopyPosition(Entity *param_1,Entity *param_2)
+void CopyPosition(Entity* param_1, Entity* param_2)
{
PositionRelative(param_1, param_2, 0, 0);
-} \ No newline at end of file
+}
diff --git a/src/sub_0806FA30.c b/src/sub_0806FA30.c
index 5cc41c23..280f539a 100644
--- a/src/sub_0806FA30.c
+++ b/src/sub_0806FA30.c
@@ -1,23 +1,23 @@
#include "global.h"
#include "entity.h"
-extern void PositionRelative(Entity *, Entity *, s32, s32);
-extern void sub_0806FAB0(Entity *, Entity *);
+extern void PositionRelative(Entity*, Entity*, s32, s32);
+extern void sub_0806FAB0(Entity*, Entity*);
-void sub_0806FA30(Entity * ent, Entity * ent2) {
- PositionRelative(ent, ent2, 0, 0);
- sub_0806FAB0(ent, ent2);
+void sub_0806FA30(Entity* ent, Entity* ent2) {
+ PositionRelative(ent, ent2, 0, 0);
+ sub_0806FAB0(ent, ent2);
}
/*
- thumb_func_start sub_0806FA30
+ thumb_func_start sub_0806FA30
sub_0806FA30: @ 0x0806FA30
- push {r4, r5, lr}
- adds r4, r0, #0
- adds r5, r1, #0
- movs r2, #0
- movs r3, #0
- bl PositionRelative
- adds r0, r4, #0
- adds r1, r5, #0
- bl sub_0806FAB0
- pop {r4, r5, pc}
- */ \ No newline at end of file
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ adds r5, r1, #0
+ movs r2, #0
+ movs r3, #0
+ bl PositionRelative
+ adds r0, r4, #0
+ adds r1, r5, #0
+ bl sub_0806FAB0
+ pop {r4, r5, pc}
+ */
diff --git a/src/sub_08070680.c b/src/sub_08070680.c
index c24314ad..d5b5b517 100644
--- a/src/sub_08070680.c
+++ b/src/sub_08070680.c
@@ -1,10 +1,9 @@
#include "global.h"
#include "entity.h"
-extern void (*gUnk_0811B9E0[])(Entity *);
+extern void (*gUnk_0811B9E0[])(Entity*);
-
-//inject
-void sub_08070680(Entity *this) {
- gUnk_0811B9E0[this->action](this);
-} \ No newline at end of file
+// inject
+void sub_08070680(Entity* this) {
+ gUnk_0811B9E0[this->action](this);
+}
diff --git a/src/sub_0807B7D8.c b/src/sub_0807B7D8.c
index 917a12c8..7ef8b080 100644
--- a/src/sub_0807B7D8.c
+++ b/src/sub_0807B7D8.c
@@ -4,19 +4,18 @@ extern void sub_08000152(u32);
extern void sub_0807B778(u32, u32);
extern void SetTileType(u32, u32, u32);
-void sub_0807B7D8(u32 param_1,u32 param_2,u32 param_3)
+void sub_0807B7D8(u32 param_1, u32 param_2, u32 param_3)
{
if (param_1 == 53) {
sub_08000152(53);
- sub_0807B778(param_2,param_3);
- sub_0807B778(param_2 + 1,param_3);
- sub_0807B778(param_2 + -1,param_3);
- sub_0807B778(param_2 + 64,param_3);
- sub_0807B778(param_2 + -64,param_3);
- }
- else {
- SetTileType(param_1,param_2,param_3);
+ sub_0807B778(param_2, param_3);
+ sub_0807B778(param_2 + 1, param_3);
+ sub_0807B778(param_2 + -1, param_3);
+ sub_0807B778(param_2 + 64, param_3);
+ sub_0807B778(param_2 + -64, param_3);
+ } else {
+ SetTileType(param_1, param_2, param_3);
}
return;
-} \ No newline at end of file
+}
diff --git a/src/sub_0807B820.c b/src/sub_0807B820.c
index 96aebec6..b8ae309d 100644
--- a/src/sub_0807B820.c
+++ b/src/sub_0807B820.c
@@ -5,14 +5,14 @@ extern void SetTileType(u32, u32, u32);
void sub_0807B820(u32 param_1)
{
- SetTileType(620,param_1 + -65,1);
- SetTileType(627,param_1 + -65,2);
- SetTileType(621,param_1 + -64,1);
- SetTileType(628,param_1 + -64,2);
- SetTileType(622,param_1 + -63,1);
- SetTileType(629,param_1 + -63,2);
- SetTileType(623,param_1 + -1,1);
- SetTileType(624,param_1,1);
- SetTileType(626,param_1 + 1,1);
+ SetTileType(620, param_1 + -65, 1);
+ SetTileType(627, param_1 + -65, 2);
+ SetTileType(621, param_1 + -64, 1);
+ SetTileType(628, param_1 + -64, 2);
+ SetTileType(622, param_1 + -63, 1);
+ SetTileType(629, param_1 + -63, 2);
+ SetTileType(623, param_1 + -1, 1);
+ SetTileType(624, param_1, 1);
+ SetTileType(626, param_1 + 1, 1);
return;
-} \ No newline at end of file
+}
diff --git a/src/sub_0807B8A8.c b/src/sub_0807B8A8.c
index dd332789..5c008ad2 100644
--- a/src/sub_0807B8A8.c
+++ b/src/sub_0807B8A8.c
@@ -5,14 +5,14 @@ extern void SetTileType(u32, u32, u32);
void sub_0807B8A8(u32 param_1)
{
- SetTileType(636,param_1 + -65,1);
- SetTileType(643,param_1 + -65,2);
- SetTileType(637,param_1 + -64,1);
- SetTileType(644,param_1 + -64,2);
- SetTileType(638,param_1 + -63,1);
- SetTileType(645,param_1 + -63,2);
- SetTileType(639,param_1 + -1,1);
- SetTileType(640,param_1,1);
- SetTileType(642,param_1 + 1,1);
+ SetTileType(636, param_1 + -65, 1);
+ SetTileType(643, param_1 + -65, 2);
+ SetTileType(637, param_1 + -64, 1);
+ SetTileType(644, param_1 + -64, 2);
+ SetTileType(638, param_1 + -63, 1);
+ SetTileType(645, param_1 + -63, 2);
+ SetTileType(639, param_1 + -1, 1);
+ SetTileType(640, param_1, 1);
+ SetTileType(642, param_1 + 1, 1);
return;
-} \ No newline at end of file
+}
diff --git a/src/sub_0807B930.c b/src/sub_0807B930.c
index 4daff516..aae0472c 100644
--- a/src/sub_0807B930.c
+++ b/src/sub_0807B930.c
@@ -1,19 +1,18 @@
#include "global.h"
-
extern void SetTileType(u32, u32, u32);
void sub_0807B930(int param_1)
{
- SetTileType(652,param_1 + -65,1);
- SetTileType(659,param_1 + -65,2);
- SetTileType(653,param_1 + -64,1);
- SetTileType(660,param_1 + -64,2);
- SetTileType(654,param_1 + -63,1);
- SetTileType(661,param_1 + -63,2);
- SetTileType(655,param_1 + -1,1);
- SetTileType(656,param_1,1);
- SetTileType(658,param_1 + 1,1);
+ SetTileType(652, param_1 + -65, 1);
+ SetTileType(659, param_1 + -65, 2);
+ SetTileType(653, param_1 + -64, 1);
+ SetTileType(660, param_1 + -64, 2);
+ SetTileType(654, param_1 + -63, 1);
+ SetTileType(661, param_1 + -63, 2);
+ SetTileType(655, param_1 + -1, 1);
+ SetTileType(656, param_1, 1);
+ SetTileType(658, param_1 + 1, 1);
return;
}
diff --git a/src/sub_0807C998.c b/src/sub_0807C998.c
index ec3b162b..a1d16fdf 100644
--- a/src/sub_0807C998.c
+++ b/src/sub_0807C998.c
@@ -4,8 +4,7 @@ extern void sub_0807C960();
extern u32 gUnk_0202CEB4;
extern u32 gUnk_02012654;
-void sub_0807C998(u32 *a1)
-{
+void sub_0807C998(u32* a1) {
sub_0807C960(&gUnk_0202CEB4, a1[0]);
sub_0807C960(&gUnk_0202CEB4 - 0x800, a1[1]);
sub_0807C960(&gUnk_02012654, a1[2]);
diff --git a/src/sub_080A554C.c b/src/sub_080A554C.c
index ab9057fe..d28668ce 100644
--- a/src/sub_080A554C.c
+++ b/src/sub_080A554C.c
@@ -6,7 +6,7 @@ u32 sub_080A554C(u32 param_1)
{
u32 uVar1;
-
+
if (param_1 != 0) {
uVar1 = 0;
do {
diff --git a/src/sub_080AD644.c b/src/sub_080AD644.c
index 3d501516..059c544b 100644
--- a/src/sub_080AD644.c
+++ b/src/sub_080AD644.c
@@ -3,15 +3,13 @@
extern s32 sub_080ADA14(u32, u32);
extern u16 gUnk_03001010[4];
-
-void sub_080AD644(void)
-{
+void sub_080AD644(void) {
gUnk_03001010[2] = 0;
gUnk_03001010[3] = 0;
gUnk_03001010[4] = 57376;
gUnk_03001010[0] = 120;
gUnk_03001010[1] = 152;
- sub_080ADA14(511,1);
+ sub_080ADA14(511, 1);
return;
-} \ No newline at end of file
+}
diff --git a/src/sub_08127D30.c b/src/sub_08127D30.c
index c4830e1d..aa953d3a 100644
--- a/src/sub_08127D30.c
+++ b/src/sub_08127D30.c
@@ -2,10 +2,9 @@
extern u8 gUnk_08127D30[69];
-u32 sub_08052654(u32 r0)
-{
- //u32 r1 = gUnk_08127D30;
- //u32 r1 = gUnk_08127D30;
+u32 sub_08052654(u32 r0) {
+ // u32 r1 = gUnk_08127D30;
+ // u32 r1 = gUnk_08127D30;
return gUnk_08127D30[r0 * 4] == 129;
-} \ No newline at end of file
+}
diff --git a/src/textbox.c b/src/textbox.c
index da855444..37010283 100644
--- a/src/textbox.c
+++ b/src/textbox.c
@@ -3,7 +3,7 @@
#include "entity.h"
#include "textbox.h"
-void TextboxNoOverlap(u32 index,Entity *ent);
+void TextboxNoOverlap(u32 index, Entity* ent);
void sub_0801D630();
void ShowTextbox();
void TextboxAtPosition();
@@ -29,14 +29,13 @@ void TextboxTryNoOverlap(u32 index)
{
if (gRoomControls.cameraTarget != NULL) {
TextboxNoOverlap(index, gRoomControls.cameraTarget);
- }
- else {
+ } else {
ShowTextbox(index);
}
return;
}
-void TextboxNoOverlap(u32 index,Entity *ent)
+void TextboxNoOverlap(u32 index, Entity* ent)
{
s16 y;
@@ -46,29 +45,26 @@ void TextboxNoOverlap(u32 index,Entity *ent)
y = ent->y.HALF.HI;
h = ent->height.HALF.HI;
-
+
if (88 < ((y + h) - gRoomControls.roomScrollY)) {
gTextBox.textWindowPosY = 1;
}
return;
}
-void sub_080563C8(u32 param_1,u32 param_2)
-{
- TextboxAtPosition(param_1,1,param_2);
+void sub_080563C8(u32 param_1, u32 param_2) {
+ TextboxAtPosition(param_1, 1, param_2);
return;
}
-void TextboxAtPosition(u32 index,u32 x,u32 y)
-{
+void TextboxAtPosition(u32 index, u32 x, u32 y) {
ShowTextbox(index);
gTextBox.textWindowPosX = x;
gTextBox.textWindowPosY = y;
return;
}
-void ShowTextbox(u32 index,u32 param_2,u32 *dest)
-{
+void ShowTextbox(u32 index, u32 param_2, u32* dest) {
sub_0801D630(&gTextBox, 32, dest);
gTextBox.textIndex = index;
gTextBox.textSpeed = 99;
@@ -80,13 +76,12 @@ void ShowTextbox(u32 index,u32 param_2,u32 *dest)
return;
}
-void sub_08056418(void)
-{
+void sub_08056418(void) {
- sub_0801D630(&gTextBox,32);
- sub_0801D630(&gUnk_02022780,168);
- sub_0801D630(&gUnk_02036A40,8);
- sub_0801D630(&gUnk_02036A38,8);
- sub_0801D630(&gUnk_02000040,4);
+ sub_0801D630(&gTextBox, 32);
+ sub_0801D630(&gUnk_02022780, 168);
+ sub_0801D630(&gUnk_02036A40, 8);
+ sub_0801D630(&gUnk_02036A38, 8);
+ sub_0801D630(&gUnk_02000040, 4);
return;
}
diff --git a/src/well.c b/src/well.c
index b57ae803..512f9f9a 100644
--- a/src/well.c
+++ b/src/well.c
@@ -9,30 +9,27 @@ void DeleteThisEntity();
extern Entity gLinkEntity;
extern RoomControls gRoomControls;
-extern void (*gUnk_08124C08[])(Entity *);
+extern void (*gUnk_08124C08[])(Entity*);
-void sub_080A0E98(Entity* ent)
-{
+void sub_080A0E98(Entity* ent) {
gUnk_08124C08[ent->action](ent);
}
-void sub_080A0EB0(Entity* ent)
-{
+void sub_080A0EB0(Entity* ent) {
u32 tilePos;
ent->action = 1;
- tilePos = (((ent->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3F) | ((((ent->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3F) * 64);
+ tilePos = (((ent->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3F) |
+ ((((ent->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3F) * 64);
ent->field_0x80 = tilePos;
SetTile(16509, ent->field_0x80, 1);
}
-void sub_080A0EF0(Entity* ent)
-{
+void sub_080A0EF0(Entity* ent) {
s32 tileIndex;
-
+
tileIndex = GetTileType(ent->field_0x80, 1);
- if (tileIndex != 16509)
- {
+ if (tileIndex != 16509) {
sub_08078B48();
gLinkEntity.x.WORD = ent->x.WORD;
gLinkEntity.y.HALF.HI = ent->y.HALF.HI + 4;
diff --git a/src/zelda.c b/src/zelda.c
index 4400351d..65c72d6c 100644
--- a/src/zelda.c
+++ b/src/zelda.c
@@ -6,12 +6,12 @@ extern void sub_0805EA78(Entity*, u32);
extern void sub_0805E3A0(Entity*, u32);
extern void sub_0807DD50(Entity*);
extern void sub_0807DD94(Entity*, u32);
-extern Entity* sub_0805EB9C(u32, u32);
+extern Entity* sub_0805EB9C(u32, u32);
void CopyPosition(Entity*, Entity*);
void sub_08068680(Entity*, Entity*);
void sub_08068694(Entity*, Entity*);
extern void SetGlobalFlag(u32);
-extern Entity* CreateNPC(u32 subtype,u32 parameter1,u32 parameter2);
+extern Entity* CreateNPC(u32 subtype, u32 parameter1, u32 parameter2);
u32 sub_0806EDC4(Entity* ent);
void DeleteThisEntity(void);
extern Entity* GetEntityByType(u32, u32);
@@ -31,14 +31,11 @@ extern void (*gUnk_08110BD8[])(Entity* ent);
extern u8 gUnk_02033280[];
extern u16 gUnk_08110BE0[];
-
-void sub_08066CB4(Entity* ent)
-{
+void sub_08066CB4(Entity* ent) {
gUnk_08110BD8[ent->action](ent);
}
-void sub_08066CCC(Entity *ent)
-{
+void sub_08066CCC(Entity* ent) {
ent->action = 1;
ent->spriteSettings.b.ss0 = 1;
sub_0805EA78(ent, 7);
@@ -46,42 +43,34 @@ void sub_08066CCC(Entity *ent)
sub_0807DD50(ent);
}
-void sub_08066CF8(Entity* ent)
-{
+void sub_08066CF8(Entity* ent) {
sub_0807DD94(ent, 0);
}
-void sub_08066D04(Entity* ent)
-{
+void sub_08066D04(Entity* ent) {
ent->parent = sub_0805EB9C(7, 0x2E);
}
-void sub_08066D14(Entity* ent, u32* param_2)
-{
+void sub_08066D14(Entity* ent, u32* param_2) {
Entity* parent;
-
+
parent = ent->parent;
- if (parent != NULL)
- {
+ if (parent != NULL) {
ent->animationState = parent->animationState;
ent->spriteSettings.b.ss0 = 1;
CopyPosition(parent, ent);
sub_08068680(ent, ent->parent);
param_2[5] = 1;
- }
- else
- {
+ } else {
param_2[5] = 0;
}
}
-void sub_08066D4C(Entity* ent, u32* param_2)
-{
+void sub_08066D4C(Entity* ent, u32* param_2) {
Entity* parent;
parent = ent->parent;
- if (ent->parent != NULL)
- {
+ if (ent->parent != NULL) {
CopyPosition(ent, parent);
ent->parent->spriteSettings.b.ss0 = 1;
ent->parent->animationState = ent->animationState;
@@ -89,22 +78,18 @@ void sub_08066D4C(Entity* ent, u32* param_2)
ent->field_0x17 &= 0xFE;
sub_08068694(ent, ent->parent);
param_2[5] = 1;
- }
- else
- {
+ } else {
param_2[5] = 0;
}
}
-void sub_08066D94(Entity* ent)
-{
+void sub_08066D94(Entity* ent) {
u32 roomID;
Entity* npc;
-
+
SetGlobalFlag(0x1C);
npc = CreateNPC(0x2E, 0, 0);
- if (npc != NULL)
- {
+ if (npc != NULL) {
npc->animationState = gLinkEntity.animationState;
npc->flags |= 0x20;
npc->animationState = sub_0806EDC4(ent);
@@ -115,60 +100,50 @@ void sub_08066D94(Entity* ent)
DeleteThisEntity();
}
-void sub_08066DE4(Entity* ent)
-{
+void sub_08066DE4(Entity* ent) {
Entity* pEVar1;
-
+
pEVar1 = sub_0805EB9C(7, 0x2E);
- if (pEVar1 != NULL)
- {
+ if (pEVar1 != NULL) {
CopyPosition(ent, pEVar1);
sub_080686C4(ent, pEVar1);
}
}
-void sub_08066E08(Entity* ent)
-{
+void sub_08066E08(Entity* ent) {
LoadAnimation(ent, 0x50);
ent->field_0x80 = ent->field_0x58;
}
-void sub_08066E20(Entity* ent)
-{
+void sub_08066E20(Entity* ent) {
LoadAnimation(ent, 0x44);
ent->field_0x80 = ent->field_0x58;
}
-void sub_08066E38(Entity* ent)
-{
+void sub_08066E38(Entity* ent) {
LoadAnimation(ent, 0x48);
ent->field_0x80 = ent->field_0x58;
}
-void sub_08066E50(Entity* ent)
-{
+void sub_08066E50(Entity* ent) {
LoadAnimation(ent, 0x4C);
ent->field_0x80 = ent->field_0x58;
}
-void sub_08066E68(Entity* ent)
-{
+void sub_08066E68(Entity* ent) {
LoadAnimation(ent, 0x54);
ent->field_0x80 = ent->field_0x58;
}
-void sub_08066E80(Entity* ent, u8* param_2)
-{
- switch(param_2[0x18])
- {
+void sub_08066E80(Entity* ent, u8* param_2) {
+ switch (param_2[0x18]) {
case 0:
param_2[0x18]++;
LoadAnimation(ent, 0x16);
break;
case 1:
sub_080042B8(ent);
- if (ent->frames.all & 1)
- {
+ if (ent->frames.all & 1) {
param_2[0x18]++;
ent->field_0x20 = 0x20000;
ent->frames.all &= 0xFE;
@@ -178,28 +153,24 @@ void sub_08066E80(Entity* ent, u8* param_2)
case 2:
sub_0806F62C(ent, 0x100, 0x80);
sub_08003FC4(ent, 0x2000);
- if (!(ent->frames.all & 1))
- {
+ if (!(ent->frames.all & 1)) {
sub_080042B8(ent);
}
- if (ent->field_0x20 < 0)
- {
+ if (ent->field_0x20 < 0) {
param_2[0x18]++;
}
break;
case 3:
sub_0806F62C(ent, 0x100, 0x80);
sub_080042B8(ent);
- if (sub_08003FC4(ent, 0x2000) == 0)
- {
+ if (sub_08003FC4(ent, 0x2000) == 0) {
param_2[0x18]++;
LoadAnimation(ent, 0x1E);
}
break;
case 4:
sub_080042B8(ent);
- if (ent->frames.b.f3)
- {
+ if (ent->frames.b.f3) {
gUnk_02033280[7] |= 1;
return;
}
@@ -208,28 +179,24 @@ void sub_08066E80(Entity* ent, u8* param_2)
gUnk_02033280[6] = 0;
}
-void sub_08066F94(void)
-{
+void sub_08066F94(void) {
u16 uVar1;
u16* puVar2;
-
+
puVar2 = gUnk_08110BE0;
- while (*puVar2 != 0)
- {
+ while (*puVar2 != 0) {
uVar1 = *puVar2;
puVar2++;
SetTileType(16498, uVar1, 1);
}
}
-void sub_08066FB8(void)
-{
+void sub_08066FB8(void) {
u16 uVar1;
u16* puVar2;
-
+
puVar2 = gUnk_08110BE0;
- while (*puVar2 != 0)
- {
+ while (*puVar2 != 0) {
uVar1 = *puVar2;
puVar2++;
sub_0807BA8C(uVar1, 1);