Here's a simplified version of my code.
Code:
#include <string>
#include <3ds.h>
#include <sf2d.h>
#include <sfil.h>
#include "topscr_png.h"
using namespace std;
int main() {
aptInit();
sf2d_init();
sf2d_texture* topScreen = sfil_load_PNG_buffer(topscr_png, SF2D_PLACE_RAM);
// Main loop
while (aptMainLoop()) {
hidScanInput();
u32 kDown = hidKeysDown();
u32 kHeld = hidKeysHeld();
u32 kUp = hidKeysUp();
if (kDown & KEY_START) {
break;
}
// draw instructions
sf2d_start_frame(GFX_TOP, GFX_LEFT);
sf2d_draw_texture(topScreen, 0, 0);
sf2d_end_frame();
sf2d_swapbuffers();
}
sf2d_free_texture(topScreen);
sf2d_fini();
aptExit();
return 0;
}