about summary refs log tree commit diff stats
path: root/gba/source/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'gba/source/main.c')
-rw-r--r--gba/source/main.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/gba/source/main.c b/gba/source/main.c index 6207685..14d2f1d 100644 --- a/gba/source/main.c +++ b/gba/source/main.c
@@ -10,6 +10,10 @@
10 10
11int main(void) 11int main(void)
12{ 12{
13 // This possibly increases stability, I don't rightly know, this is all black
14 // magic, will test more later.
15 REG_IME = 0;
16
13 initializeLink(); 17 initializeLink();
14 18
15 // Identify the host game. 19 // Identify the host game.
@@ -105,4 +109,57 @@ int main(void)
105 109
106 sendU32(tti); 110 sendU32(tti);
107 waitForAck(); 111 waitForAck();
112
113 // Does the player want to import this game?
114 if (waitForResponse() == 0)
115 {
116 return 0;
117 }
118
119 // Send Pokédex data
120 u8* pokedexSeen = 0;
121 if (GAME_RS)
122 {
123 pokedexSeen = SaveBlock2->rs.pokedex.seen;
124 } else if (GAME_FRLG)
125 {
126 pokedexSeen = SaveBlock2->frlg.pokedex.seen;
127 } else if (GAME_EM)
128 {
129 pokedexSeen = SaveBlock2->e.pokedex.seen;
130 }
131
132 for (int i=0; i<13; i++)
133 {
134 u32 psi =
135 (pokedexSeen[i*4])
136 | (pokedexSeen[i*4+1] << 8)
137 | (pokedexSeen[i*4+2] << 16)
138 | (pokedexSeen[i*4+3] << 24);
139
140 directSendU32(psi);
141 }
142
143 u8* pokedexCaught = 0;
144 if (GAME_RS)
145 {
146 pokedexCaught = SaveBlock2->rs.pokedex.owned;
147 } else if (GAME_FRLG)
148 {
149 pokedexCaught = SaveBlock2->frlg.pokedex.owned;
150 } else if (GAME_EM)
151 {
152 pokedexCaught = SaveBlock2->e.pokedex.owned;
153 }
154
155 for (int i=0; i<13; i++)
156 {
157 u32 psi =
158 (pokedexCaught[i*4])
159 | (pokedexCaught[i*4+1] << 8)
160 | (pokedexCaught[i*4+2] << 16)
161 | (pokedexCaught[i*4+3] << 24);
162
163 directSendU32(psi);
164 }
108} 165}