about summary refs log tree commit diff stats
path: root/gba/source/main.c
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2017-07-13 15:22:55 -0400
committerKelly Rauchenberger <fefferburbia@gmail.com>2017-07-13 15:22:55 -0400
commit252e2911383a5267673f00c08419e2afeac35a31 (patch)
tree9713a54f6a17afa14999bab5b4c4e982ca40bfea /gba/source/main.c
parent2c837223756de2596931c22c8f4fa2ba4a4237a9 (diff)
downloadgen3uploader-252e2911383a5267673f00c08419e2afeac35a31.tar.gz
gen3uploader-252e2911383a5267673f00c08419e2afeac35a31.tar.bz2
gen3uploader-252e2911383a5267673f00c08419e2afeac35a31.zip
App now waits for confirmation to import, and reads pokedex seen&caught
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}