loading msgs, bugfixes
[libpicofe.git] / gp2x / emu.c
index a98a5be..033f275 100644 (file)
@@ -393,6 +393,8 @@ int emu_ReloadRom(void)
 }\r
 \r
 \r
+static void emu_msg_cb(const char *msg);\r
+\r
 void emu_Init(void)\r
 {\r
        // make temp buffer for alt renderer\r
@@ -409,6 +411,7 @@ void emu_Init(void)
        mkdir("cfg", 0777);\r
 \r
        PicoInit();\r
+       PicoMessage = emu_msg_cb;\r
 \r
 //     logf = fopen("log.txt", "w");\r
 }\r
@@ -771,6 +774,23 @@ static void vidResetMode(void)
 }\r
 \r
 \r
+static void emu_msg_cb(const char *msg)\r
+{\r
+       if ((PicoOpt&0x10)||!(currentConfig.EmuOpt&0x80)) {\r
+               // 8-bit renderers\r
+               gp2x_memset_all_buffers(320*232, 0xe0, 320*8);\r
+               osd_text(4, 232, msg);\r
+               gp2x_memcpy_all_buffers((char *)gp2x_screen+320*232, 320*232, 320*8);\r
+       } else {\r
+               // 16bit accurate renderer\r
+               gp2x_memset_all_buffers(320*232*2, 0, 320*8*2);\r
+               osd_text(4, 232, msg);\r
+               gp2x_memcpy_all_buffers((char *)gp2x_screen+320*232*2, 320*232*2, 320*8*2);\r
+       }\r
+       gettimeofday(&noticeMsgTime, 0);\r
+       noticeMsgTime.tv_sec -= 2;\r
+}\r
+\r
 static void emu_state_cb(const char *str)\r
 {\r
        clearArea(0);\r