summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asm.h9
-rw-r--r--include/asm.inc.h4
-rw-r--r--include/battle_move_effects.h222
-rw-r--r--include/gba/gba.h1
-rw-r--r--include/gba/io_reg.h3
-rw-r--r--include/gba/multiboot.h55
-rw-r--r--include/gba/syscall.h2
-rw-r--r--include/global.h11
-rw-r--r--include/rom4.h4
9 files changed, 304 insertions, 7 deletions
diff --git a/include/asm.h b/include/asm.h
index acf688d84..9e47794f5 100644
--- a/include/asm.h
+++ b/include/asm.h
@@ -16,7 +16,14 @@ struct UnkInputStruct
u8 input_field_0_5:1;
u8 input_field_0_6:1;
u8 input_field_0_7:1;
- u8 input_field_1;
+ u8 input_field_1_0:1;
+ u8 input_field_1_1:1;
+ u8 input_field_1_2:1;
+ u8 input_field_1_3:1;
+ u8 input_field_1_4:1;
+ u8 input_field_1_5:1;
+ u8 input_field_1_6:1;
+ u8 input_field_1_7:1;
u8 input_field_2;
u8 input_field_3;
};
diff --git a/include/asm.inc.h b/include/asm.inc.h
index 6f78b2a08..036cf0266 100644
--- a/include/asm.inc.h
+++ b/include/asm.inc.h
@@ -245,8 +245,8 @@ void sub_80A2B18(void);
u16 sub_80A2D64(u16, u8 *);
// asm/map_name_popup.o
-void AddMapNamePopUpWindowTask(void);
-void HideMapNamePopUpWindow();
+void ShowMapNamePopup(void);
+void HideMapNamePopup();
// asm/item_menu.o
void sub_80A3684(void);
diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h
new file mode 100644
index 000000000..4a9415379
--- /dev/null
+++ b/include/battle_move_effects.h
@@ -0,0 +1,222 @@
+#ifndef GUARD_BATTLE_MOVE_EFFECTS_H
+#define GUARD_BATTLE_MOVE_EFFECTS_H
+
+enum
+{
+ EFFECT_HIT,
+ EFFECT_SLEEP,
+ EFFECT_POISON_HIT,
+ EFFECT_ABSORB,
+ EFFECT_BURN_HIT,
+ EFFECT_FREEZE_HIT,
+ EFFECT_PARALYZE_HIT,
+ EFFECT_EXPLOSION,
+ EFFECT_DREAM_EATER,
+ EFFECT_MIRROR_MOVE,
+ EFFECT_ATTACK_UP,
+ EFFECT_DEFENSE_UP,
+ EFFECT_SPEED_UP,
+ EFFECT_SPECIAL_ATTACK_UP,
+ EFFECT_SPECIAL_DEFENSE_UP,
+ EFFECT_ACCURACY_UP,
+ EFFECT_EVASION_UP,
+ EFFECT_ALWAYS_HIT,
+ EFFECT_ATTACK_DOWN,
+ EFFECT_DEFENSE_DOWN,
+ EFFECT_SPEED_DOWN,
+ EFFECT_SPECIAL_ATTACK_DOWN, // unused
+ EFFECT_SPECIAL_DEFENSE_DOWN, // unused
+ EFFECT_ACCURACY_DOWN,
+ EFFECT_EVASION_DOWN,
+ EFFECT_HAZE,
+ EFFECT_BIDE,
+ EFFECT_RAMPAGE,
+ EFFECT_ROAR,
+ EFFECT_MULTI_HIT,
+ EFFECT_CONVERSION,
+ EFFECT_FLINCH_HIT,
+ EFFECT_RESTORE_HP,
+ EFFECT_TOXIC,
+ EFFECT_PAY_DAY,
+ EFFECT_LIGHT_SCREEN,
+ EFFECT_TRI_ATTACK,
+ EFFECT_REST,
+ EFFECT_OHKO,
+ EFFECT_RAZOR_WIND,
+ EFFECT_SUPER_FANG,
+ EFFECT_DRAGON_RAGE,
+ EFFECT_TRAP,
+ EFFECT_HIGH_CRITICAL,
+ EFFECT_DOUBLE_HIT,
+ EFFECT_RECOIL_IF_MISS,
+ EFFECT_MIST,
+ EFFECT_FOCUS_ENERGY,
+ EFFECT_RECOIL,
+ EFFECT_CONFUSE,
+ EFFECT_ATTACK_UP_2,
+ EFFECT_DEFENSE_UP_2,
+ EFFECT_SPEED_UP_2,
+ EFFECT_SPECIAL_ATTACK_UP_2,
+ EFFECT_SPECIAL_DEFENSE_UP_2,
+ EFFECT_ACCURACY_UP_2,
+ EFFECT_EVASION_UP_2,
+ EFFECT_TRANSFORM,
+ EFFECT_ATTACK_DOWN_2,
+ EFFECT_DEFENSE_DOWN_2,
+ EFFECT_SPEED_DOWN_2,
+ EFFECT_SPECIAL_ATTACK_DOWN_2,
+ EFFECT_SPECIAL_DEFENSE_DOWN_2,
+ EFFECT_ACCURACY_DOWN_2,
+ EFFECT_EVASION_DOWN_2,
+ EFFECT_REFLECT,
+ EFFECT_POISON,
+ EFFECT_PARALYZE,
+ EFFECT_ATTACK_DOWN_HIT,
+ EFFECT_DEFENSE_DOWN_HIT,
+ EFFECT_SPEED_DOWN_HIT,
+ EFFECT_SPECIAL_ATTACK_DOWN_HIT,
+ EFFECT_SPECIAL_DEFENSE_DOWN_HIT,
+ EFFECT_ACCURACY_DOWN_HIT,
+ EFFECT_EVASION_DOWN_HIT,
+ EFFECT_SKY_ATTACK,
+ EFFECT_CONFUSE_HIT,
+ EFFECT_TWINEEDLE,
+ EFFECT_VITAL_THROW,
+ EFFECT_SUBSTITUTE,
+ EFFECT_RECHARGE,
+ EFFECT_RAGE,
+ EFFECT_MIMIC,
+ EFFECT_METRONOME,
+ EFFECT_LEECH_SEED,
+ EFFECT_SPLASH,
+ EFFECT_DISABLE,
+ EFFECT_LEVEL_DAMAGE,
+ EFFECT_PSYWAVE,
+ EFFECT_COUNTER,
+ EFFECT_ENCORE,
+ EFFECT_PAIN_SPLIT,
+ EFFECT_SNORE,
+ EFFECT_CONVERSION_2,
+ EFFECT_LOCK_ON,
+ EFFECT_SKETCH,
+ EFFECT_UNUSED_60, // thaw
+ EFFECT_SLEEP_TALK,
+ EFFECT_DESTINY_BOND,
+ EFFECT_FLAIL,
+ EFFECT_SPITE,
+ EFFECT_FALSE_SWIPE,
+ EFFECT_HEAL_BELL,
+ EFFECT_QUICK_ATTACK,
+ EFFECT_TRIPLE_KICK,
+ EFFECT_THIEF,
+ EFFECT_MEAN_LOOK,
+ EFFECT_NIGHTMARE,
+ EFFECT_MINIMIZE,
+ EFFECT_CURSE,
+ EFFECT_UNUSED_6E,
+ EFFECT_PROTECT,
+ EFFECT_SPIKES,
+ EFFECT_FORESIGHT,
+ EFFECT_PERISH_SONG,
+ EFFECT_SANDSTORM,
+ EFFECT_ENDURE,
+ EFFECT_ROLLOUT,
+ EFFECT_SWAGGER,
+ EFFECT_FURY_CUTTER,
+ EFFECT_ATTRACT,
+ EFFECT_RETURN,
+ EFFECT_PRESENT,
+ EFFECT_FRUSTRATION,
+ EFFECT_SAFEGUARD,
+ EFFECT_THAW_HIT,
+ EFFECT_MAGNITUDE,
+ EFFECT_BATON_PASS,
+ EFFECT_PURSUIT,
+ EFFECT_RAPID_SPIN,
+ EFFECT_SONICBOOM,
+ EFFECT_UNUSED_83,
+ EFFECT_MORNING_SUN,
+ EFFECT_SYNTHESIS,
+ EFFECT_MOONLIGHT,
+ EFFECT_HIDDEN_POWER,
+ EFFECT_RAIN_DANCE,
+ EFFECT_SUNNY_DAY,
+ EFFECT_DEFENSE_UP_HIT,
+ EFFECT_ATTACK_UP_HIT,
+ EFFECT_ALL_STATS_UP_HIT,
+ EFFECT_UNUSED_8D, // incomplete fake out in gen 2
+ EFFECT_BELLY_DRUM,
+ EFFECT_PSYCH_UP,
+ EFFECT_MIRROR_COAT,
+ EFFECT_SKULL_BASH,
+ EFFECT_TWISTER,
+ EFFECT_EARTHQUAKE,
+ EFFECT_FUTURE_SIGHT,
+ EFFECT_GUST,
+ EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
+ EFFECT_SOLARBEAM,
+ EFFECT_THUNDER,
+ EFFECT_TELEPORT,
+ EFFECT_BEAT_UP,
+ EFFECT_FLY,
+ EFFECT_DEFENSE_CURL,
+ EFFECT_SOFTBOILED,
+ EFFECT_FAKE_OUT,
+ EFFECT_UPROAR,
+ EFFECT_STOCKPILE,
+ EFFECT_SPIT_UP,
+ EFFECT_SWALLOW,
+ EFFECT_UNUSED_A3,
+ EFFECT_HAIL,
+ EFFECT_TORMENT,
+ EFFECT_FLATTER,
+ EFFECT_WILL_O_WISP,
+ EFFECT_MEMENTO,
+ EFFECT_FACADE,
+ EFFECT_FOCUS_PUNCH,
+ EFFECT_SMELLINGSALT,
+ EFFECT_FOLLOW_ME,
+ EFFECT_NATURE_POWER,
+ EFFECT_CHARGE,
+ EFFECT_TAUNT,
+ EFFECT_HELPING_HAND,
+ EFFECT_TRICK,
+ EFFECT_ROLE_PLAY,
+ EFFECT_WISH,
+ EFFECT_ASSIST,
+ EFFECT_INGRAIN,
+ EFFECT_SUPERPOWER,
+ EFFECT_MAGIC_COAT,
+ EFFECT_RECYCLE,
+ EFFECT_REVENGE,
+ EFFECT_BRICK_BREAK,
+ EFFECT_YAWN,
+ EFFECT_KNOCK_OFF,
+ EFFECT_ENDEAVOR,
+ EFFECT_ERUPTION,
+ EFFECT_SKILL_SWAP,
+ EFFECT_IMPRISON,
+ EFFECT_REFRESH,
+ EFFECT_GRUDGE,
+ EFFECT_SNATCH,
+ EFFECT_LOW_KICK,
+ EFFECT_SECRET_POWER,
+ EFFECT_DOUBLE_EDGE,
+ EFFECT_TEETER_DANCE,
+ EFFECT_BLAZE_KICK,
+ EFFECT_MUD_SPORT,
+ EFFECT_POISON_FANG,
+ EFFECT_WEATHER_BALL,
+ EFFECT_OVERHEAT,
+ EFFECT_TICKLE,
+ EFFECT_COSMIC_POWER,
+ EFFECT_SKY_UPPERCUT,
+ EFFECT_BULK_UP,
+ EFFECT_POISON_TAIL,
+ EFFECT_WATER_SPORT,
+ EFFECT_CALM_MIND,
+ EFFECT_DRAGON_DANCE,
+ EFFECT_CAMOUFLAGE,
+};
+
+#endif // GUARD_BATTLE_MOVE_EFFECTS_H
diff --git a/include/gba/gba.h b/include/gba/gba.h
index 26342cf88..42ae3cdde 100644
--- a/include/gba/gba.h
+++ b/include/gba/gba.h
@@ -4,6 +4,7 @@
#include "gba/defines.h"
#include "gba/io_reg.h"
#include "gba/types.h"
+#include "gba/multiboot.h"
#include "gba/syscall.h"
#include "gba/macro.h"
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index 0be92fa60..5234e5b6c 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -577,6 +577,8 @@
#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
@@ -589,6 +591,7 @@
#define SIO_MULTI_SI 0x0004 // Multi-player communication SI terminal
#define SIO_MULTI_SD 0x0008 // SD terminal
+#define SIO_MULTI_BUSY 0x0080
#define SIO_ERROR 0x0040 // Detect error
#define SIO_START 0x0080 // Start transfer
diff --git a/include/gba/multiboot.h b/include/gba/multiboot.h
new file mode 100644
index 000000000..e88b43a19
--- /dev/null
+++ b/include/gba/multiboot.h
@@ -0,0 +1,55 @@
+#ifndef GUARD_GBA_MULTIBOOT_H
+#define GUARD_GBA_MULTIBOOT_H
+
+#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];
+ u8 handshake_data;
+ u8 padding;
+ u16 handshake_timeout;
+ u8 probe_count;
+ u8 client_data[MULTIBOOT_NCHILD];
+ u8 palette_data;
+ u8 response_bit;
+ u8 client_bit;
+ u8 reserved1;
+ u8 *boot_srcp;
+ u8 *boot_endp;
+ u8 *masterp;
+ u8 *reserved2[MULTIBOOT_NCHILD];
+ u32 system_work2[4];
+ u8 sendflag;
+ u8 probe_target_bit;
+ u8 check_wait;
+ u8 server_type;
+};
+
+#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
+
+#define MULTIBOOT_CONNECTION_CHECK_WAIT 15
+
+#define MULTIBOOT_SERVER_TYPE_NORMAL 0
+#define MULTIBOOT_SERVER_TYPE_QUICK 1
+
+#define MULTIBOOT_HANDSHAKE_TIMEOUT 400
+
+#endif // GUARD_GBA_MULTIBOOT_H
diff --git a/include/gba/syscall.h b/include/gba/syscall.h
index e47f964d1..deddec5ba 100644
--- a/include/gba/syscall.h
+++ b/include/gba/syscall.h
@@ -43,4 +43,6 @@ void RLUnCompWram(const void *src, void *dest);
void RLUnCompVram(const void *src, void *dest);
+int MultiBoot(struct MultiBootParam *mp);
+
#endif // GUARD_GBA_SYSCALL_H
diff --git a/include/global.h b/include/global.h
index a9056ed55..22927f749 100644
--- a/include/global.h
+++ b/include/global.h
@@ -271,7 +271,7 @@ struct MailStruct
/*0x20*/ u16 itemId;
};
-struct SaveBlock1
+struct SaveBlock1 /* 0x02025734 */
{
/*0x00*/ struct Coords16 pos;
/*0x04*/ struct WarpData location;
@@ -380,7 +380,14 @@ struct Pokedex
struct SaveBlock2_Sub
{
- /*0x0000, 0x00A8*/ u8 filler_000[0x4C8];
+ /*0x0000, 0x00A8*/ u8 filler_000[0x4AE];
+ /*0x04AE, 0x0556*/ u8 var_4AE;
+ /*0x04AF, 0x0557*/ u8 var_4AF;
+ /*0x04B0, 0x0558*/ u16 var_4B0;
+ /*0x04B2, 0x055A*/ u16 var_4B2;
+ /*0x04B4, 0x055C*/ u16 var_4B4;
+ /*0x04B6, 0x055E*/ u16 var_4B6;
+ /*0x04B8, 0x0560*/ u8 filler_4B8[0x10];
/*0x04C8, 0x0570*/ u16 var_4C8;
/*0x04CA, 0x0572*/ u16 var_4CA;
/*0x04CC, 0x0574*/ u8 filler_4CC[0x31C];
diff --git a/include/rom4.h b/include/rom4.h
index 215c7ff17..82d6e4f38 100644
--- a/include/rom4.h
+++ b/include/rom4.h
@@ -19,7 +19,7 @@ struct LinkPlayerMapObject
// sub_8052F5C
// flag_var_implications_of_teleport_
-// new_game
+void new_game(void);
// sub_8053014
void sub_8053050(void);
// sub_805308C
@@ -102,7 +102,7 @@ u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum);
u8 sav1_map_get_light_level(void);
// get_map_light_from_warp0
bool8 is_light_level_1_2_3_5_or_6(u8 a1);
-// is_light_level_1_2_3_or_6
+bool8 is_light_level_1_2_3_or_6(u8 a1);
u8 is_light_level_8_or_9(u8);
// unref_sub_8054260
u8 sav1_map_get_name();