@@ -23,6 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
2323#include "errno.h"
2424
2525#include <3ds.h>
26+ #include <dirent.h>
2627#include "ctr.h"
2728#include "touch_ctr.h"
2829
@@ -219,77 +220,47 @@ void Sys_Sleep (void)
219220{
220221}
221222
222- void CTR_KeyDown (u32 keys ){
223+ void CTR_SetKeys (u32 keys , u32 state ){
223224 if ( keys & KEY_SELECT )
224- Key_Event (K_ESCAPE , true );
225+ Key_Event (K_ESCAPE , state );
225226 if ( keys & KEY_START )
226- Key_Event (K_ENTER , true );
227+ Key_Event (K_ENTER , state );
227228 if ( keys & KEY_DUP )
228- Key_Event (K_UPARROW , true );
229+ Key_Event (K_UPARROW , state );
229230 if ( keys & KEY_DDOWN )
230- Key_Event (K_DOWNARROW , true );
231+ Key_Event (K_DOWNARROW , state );
231232 if ( keys & KEY_DLEFT )
232- Key_Event (K_LEFTARROW , true );
233+ Key_Event (K_LEFTARROW , state );
233234 if ( keys & KEY_DRIGHT )
234- Key_Event (K_RIGHTARROW , true );
235+ Key_Event (K_RIGHTARROW , state );
235236 if ( keys & KEY_Y )
236- Key_Event ('y' , true );
237+ Key_Event ('y' , state );
237238 if ( keys & KEY_X )
238- Key_Event ('x' , true );
239+ Key_Event ('x' , state );
239240 if ( keys & KEY_B )
240- Key_Event ('b' , true );
241+ Key_Event ('b' , state );
241242 if ( keys & KEY_A )
242- Key_Event ('a' , true );
243+ Key_Event ('a' , state );
243244 if ( keys & KEY_L )
244- Key_Event ('l' , true );
245+ Key_Event ('l' , state );
245246 if ( keys & KEY_R )
246- Key_Event ('r' , true );
247+ Key_Event ('r' , state );
247248 if ( keys & KEY_ZL )
248- Key_Event ('k' , true );
249+ Key_Event ('k' , state );
249250 if ( keys & KEY_ZR )
250- Key_Event ('t' , true );
251+ Key_Event ('t' , state );
251252}
252253
253- void CTR_KeyUp (u32 keys ){
254- if ( keys & KEY_SELECT )
255- Key_Event (K_ESCAPE , false);
256- if ( keys & KEY_START )
257- Key_Event (K_ENTER , false);
258- if ( keys & KEY_DUP )
259- Key_Event (K_UPARROW , false);
260- if ( keys & KEY_DDOWN )
261- Key_Event (K_DOWNARROW , false);
262- if ( keys & KEY_DLEFT )
263- Key_Event (K_LEFTARROW , false);
264- if ( keys & KEY_DRIGHT )
265- Key_Event (K_RIGHTARROW , false);
266- if ( keys & KEY_Y )
267- Key_Event ('y' , false);
268- if ( keys & KEY_X )
269- Key_Event ('x' , false);
270- if ( keys & KEY_B )
271- Key_Event ('b' , false);
272- if ( keys & KEY_A )
273- Key_Event ('a' , false);
274- if ( keys & KEY_L )
275- Key_Event ('l' , false);
276- if ( keys & KEY_R )
277- Key_Event ('r' , false);
278- if ( keys & KEY_ZL )
279- Key_Event ('k' , false);
280- if ( keys & KEY_ZR )
281- Key_Event ('t' , false);
282- }
283254
284255void Sys_SendKeyEvents (void )
285256{
286257 hidScanInput ();
287258 u32 kDown = hidKeysDown ();
288259 u32 kUp = hidKeysUp ();
289260 if (kDown )
290- CTR_KeyDown (kDown );
261+ CTR_SetKeys (kDown , true );
291262 if (kUp )
292- CTR_KeyUp (kUp );
263+ CTR_SetKeys (kUp , false );
293264
294265 Touch_Update ();
295266}
@@ -308,7 +279,7 @@ int main (int argc, char **argv)
308279{
309280 float time , oldtime ;
310281
311- APT_CheckNew3DS (NULL , & isN3DS );
282+ APT_CheckNew3DS (& isN3DS );
312283 if (isN3DS )
313284 osSetSpeedupEnable (true);
314285
@@ -318,13 +289,25 @@ int main (int argc, char **argv)
318289 gfxSetDoubleBuffering (GFX_BOTTOM , false);
319290 gfxSet3D (false);
320291 consoleInit (GFX_BOTTOM , NULL );
292+
293+ char * qargv [3 ];
294+ int qargc = 1 ;
295+
296+ qargv [0 ] = "" ;
297+
298+ if (strlen (argv [1 ]) != 0 ){
299+ qargv [1 ] = "-game" ;
300+ qargv [2 ] = argv [1 ];
301+ qargc += 2 ;
302+ }
303+
321304 static quakeparms_t parms ;
322305
323- parms .memsize = 16 * 1024 * 1024 ;
306+ parms .memsize = 24 * 1024 * 1024 ;
324307 parms .membase = malloc (parms .memsize );
325308 parms .basedir = "." ;
326309
327- COM_InitArgv (argc , argv );
310+ COM_InitArgv (qargc , qargv );
328311
329312 parms .argc = com_argc ;
330313 parms .argv = com_argv ;
@@ -334,7 +317,7 @@ int main (int argc, char **argv)
334317 Touch_DrawOverlay ();
335318 //Sys_Init();
336319 oldtime = Sys_FloatTime () - 0.1 ;
337- while (1 )
320+ while (aptMainLoop () )
338321 {
339322 time = Sys_FloatTime ();
340323 Host_Frame (time - oldtime );
0 commit comments