summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-09-18 12:29:37 -0700
committerYamaArashi <shadow962@live.com>2016-09-18 12:35:05 -0700
commit2782f7d614b27bcace2af95a1a206426dd7817f1 (patch)
tree9557df17e4781f9eabcf89e6c0b562e7e2672254
parentd50f25ab1e382ec9a8a815eba33c3c87c9611869 (diff)
expand WRAM sections and add some variables
-rw-r--r--ewram_syms.txt15
-rw-r--r--include/berry.h30
-rw-r--r--include/pokemon.h2
-rw-r--r--ld_script.txt6
-rw-r--r--src/pokemon_2.c17
5 files changed, 68 insertions, 2 deletions
diff --git a/ewram_syms.txt b/ewram_syms.txt
index 260c9deaa..e39adbc85 100644
--- a/ewram_syms.txt
+++ b/ewram_syms.txt
@@ -5,12 +5,27 @@ unk_20160BC = 0x20160BC;
gSecretBaseRecord = 0x2017000;
+dword_2017100 = 0x2017100;
+
gUnknown_020239F8 = 0x20239F8;
+gUnknown_02024A60 = 0x2024A60;
+
gBattleMons = 0x2024A80;
+gUnknown_02024BE6 = 0x2024BE6;
+
byte_2024C06 = 0x2024C06;
+gUnknown_02024C07 = 0x2024C07;
+gUnknown_02024C08 = 0x2024C08;
+gUnknown_02024C0C = 0x2024C0C;
+gXXX_CritRelated = 0x2024C0D;
+
+word_2024DB8 = 0x2024DB8;
+
+gEnigmaBerries = 0x2024DF0;
+gBattleMovePower = 0x2024E80;
word_2024E82 = 0x2024E82;
byte_2024E88 = 0x2024E88;
diff --git a/include/berry.h b/include/berry.h
new file mode 100644
index 000000000..9d75eada6
--- /dev/null
+++ b/include/berry.h
@@ -0,0 +1,30 @@
+#ifndef GUARD_BERRY_H
+#define GUARD_BERRY_H
+
+struct Berry
+{
+ u8 name[7];
+ u8 firmness;
+ u16 size;
+ u8 maxYield;
+ u8 minYield;
+ u8 *description1;
+ u8 *description2;
+ u8 stageDuration;
+ u8 spicy;
+ u8 dry;
+ u8 sweet;
+ u8 bitter;
+ u8 sour;
+ u8 smoothness;
+};
+
+struct EnigmaBerry
+{
+ u8 name[7];
+ u8 holdEffect;
+ u8 unknown[18];
+ u8 holdEffectParam;
+};
+
+#endif // GUARD_BERRY_H
diff --git a/include/pokemon.h b/include/pokemon.h
index bed60925b..a49ade10b 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -257,7 +257,7 @@ struct BattlePokemon
u32 spDefenseIV:5;
u32 isEgg:1;
u32 altAbility:1;
- u8 statStages[8];
+ s8 statStages[8];
u8 ability;
u8 type1, type2;
u8 unknown;
diff --git a/ld_script.txt b/ld_script.txt
index 5d1ac9d7a..70d59a52d 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -4,11 +4,12 @@ gNumMusicPlayers = 4;
gMaxLines = 60;
SECTIONS {
- . = 0x2020000;
+ . = 0x2000000;
ewram (NOLOAD) :
ALIGN(4)
{
+ . = 0x20000;
src/main.o(ewram_data);
src/sprite.o(ewram_data);
. = ALIGN(4);
@@ -17,6 +18,7 @@ SECTIONS {
. += 0x2E8; /* big gap */
src/link.o(ewram_data);
src/rtc.o(ewram_data);
+ . = 0x40000;
}
. = 0x3000000;
@@ -58,6 +60,8 @@ SECTIONS {
. = 0x7490;
src/agb_flash.o(iwram_data);
+
+ . = 0x8000;
}
. = 0x8000000;
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index a05f2dbaa..ec683affd 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -5,6 +5,7 @@
#include "species.h"
#include "main.h"
#include "sprite.h"
+#include "berry.h"
extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[6];
@@ -13,9 +14,19 @@ extern struct Pokemon gEnemyParty[6];
extern u16 unk_20160BC[];
extern struct SecretBaseRecord gSecretBaseRecord;
+extern u32 dword_2017100[];
extern u16 gUnknown_020239F8;
+extern u8 gUnknown_02024A60;
extern struct BattlePokemon gBattleMons[4];
+extern u16 gUnknown_02024BE6;
extern u8 byte_2024C06;
+extern u8 gUnknown_02024C07;
+extern u8 gUnknown_02024C08;
+extern u8 gUnknown_02024C0C;
+extern u8 gXXX_CritRelated;
+extern u16 word_2024DB8;
+extern struct EnigmaBerry gEnigmaBerries[];
+extern u16 gBattleMovePower;
extern struct SpriteTemplate gUnknown_02024E8C;
extern u16 word_202FF5E;
extern struct PokemonStorage gPokemonStorage;
@@ -35,8 +46,14 @@ extern u8 gTrainerClassToNameIndex[];
extern u8 gSecretBaseTrainerClasses[];
extern u8 gUnknown_08208238[];
extern u8 gUnknown_0820823C[];
+extern u8 gStatStageRatios[][2];
+extern u8 gHoldEffectToType[][2];
extern u8 battle_side_get_owner(u8);
+extern u8 battle_get_side_with_given_state(u8);
+extern u8 FlagGet(u16);
+extern u8 sub_8018324(u8, u8, u8, u8, u16);
+extern u8 sub_803C348(u8);
u8 GetMonGender(struct Pokemon *mon)
{