giz menu works
[libpicofe.git] / gp2x / 940ctl.c
index 6c52cca..075b827 100644 (file)
@@ -14,8 +14,9 @@
 #include "gp2x.h"\r
 #include "emu.h"\r
 #include "menu.h"\r
-#include "asmutils.h"\r
 #include "mp3.h"\r
+#include "../common/arm_utils.h"\r
+#include "../common/menu.h"\r
 #include "../../Pico/PicoInt.h"\r
 #include "../../Pico/sound/mix.h"\r
 \r
@@ -29,7 +30,8 @@ static _940_data_t *shared_data = 0;
 _940_ctl_t *shared_ctl = 0;\r
 unsigned char *mp3_mem = 0;\r
 \r
-#define MP3_SIZE_MAX (0x1000000 - 4*640*480)\r
+#define MP3_SIZE_MAX (0x400000 + 0x800000) // 12M\r
+#define CODE940_FILE "pico940.bin"\r
 \r
 int crashed_940 = 0;\r
 \r
@@ -360,7 +362,7 @@ void sharedmem_init(void)
        shared_data = (_940_data_t *) (shared_mem+0x100000);\r
        /* this area must not get buffered on either side */\r
        shared_ctl =  (_940_ctl_t *)  (shared_mem+0x200000);\r
-       mp3_mem = (unsigned char *) mmap(0, MP3_SIZE_MAX, PROT_READ|PROT_WRITE, MAP_SHARED, memdev, 0x3000000);\r
+       mp3_mem = (unsigned char *) mmap(0, MP3_SIZE_MAX, PROT_READ|PROT_WRITE, MAP_SHARED, memdev, 0x2400000);\r
        if (mp3_mem == MAP_FAILED)\r
        {\r
                printf("mmap(mp3_mem) failed with %i\n", errno);\r
@@ -409,15 +411,15 @@ void YM2612Init_940(int baseclock, int rate)
                binpath[1023] = 0;\r
                for (i = strlen(binpath); i > 0; i--)\r
                        if (binpath[i] == '/') { binpath[i] = 0; break; }\r
-               strcat(binpath, "/code940.bin");\r
+               strcat(binpath, "/" CODE940_FILE);\r
 \r
                fp = fopen(binpath, "rb");\r
                if(!fp)\r
                {\r
-                       memset(gp2x_screen, 0, 320*240);\r
-                       gp2x_text_out8(10, 100, "failed to open required file:");\r
-                       gp2x_text_out8(10, 110, "code940.bin");\r
-                       gp2x_video_flip();\r
+                       memset(gp2x_screen, 0, 320*240*2);\r
+                       text_out16(10, 100, "failed to open required file:");\r
+                       text_out16(10, 110, CODE940_FILE);\r
+                       gp2x_video_flip2();\r
                        printf("failed to open %s\n", binpath);\r
                        exit(1);\r
                }\r
@@ -599,7 +601,6 @@ void mp3_start_play(FILE *f, int pos) // pos is 0-1023
 \r
        if (loaded_mp3 != f)\r
        {\r
-               // printf("loading mp3... "); fflush(stdout);\r
                if (PicoMessage != NULL)\r
                {\r
                        fseek(f, 0, SEEK_END);\r
@@ -608,8 +609,7 @@ void mp3_start_play(FILE *f, int pos) // pos is 0-1023
                }\r
                fseek(f, 0, SEEK_SET);\r
                fread(mp3_mem, 1, MP3_SIZE_MAX, f);\r
-               // if (feof(f)) printf("done.\n");\r
-               // else printf("done. mp3 too large, not all data loaded.\n");\r
+               if (!feof(f)) printf("Warning: mp3 was too large, not all data loaded.\n");\r
                shared_ctl->mp3_len = ftell(f);\r
                loaded_mp3 = f;\r
 \r