X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=gp2x%2F940ctl.c;h=77083c991220c52f81626a8548d3d56d6e63f88d;hb=2c60056042e94007286e3e0e1789f4c9a78b7731;hp=b372d92ee08d4137411bed9039df9eb24a9f1ea0;hpb=389aa76ee60522348261b5310db3486375b05c1e;p=libpicofe.git diff --git a/gp2x/940ctl.c b/gp2x/940ctl.c index b372d92..77083c9 100644 --- a/gp2x/940ctl.c +++ b/gp2x/940ctl.c @@ -18,9 +18,9 @@ #include "../common/arm_utils.h" #include "../common/menu.h" #include "../common/emu.h" -#include "../../Pico/PicoInt.h" -#include "../../Pico/sound/ym2612.h" -#include "../../Pico/sound/mix.h" +#include "../../pico/pico_int.h" +#include "../../pico/sound/ym2612.h" +#include "../../pico/sound/mix.h" /* we will need some gp2x internals here */ extern volatile unsigned short *gp2x_memregs; /* from minimal library rlyeh */ @@ -82,10 +82,6 @@ int YM2612Write_940(unsigned int a, unsigned int v, int scanline) upd = 0; break; - case 1: /* data port 0 */ - if (ST_address == 0x2b) upd = 0; /* DAC sel */ - break; - case 2: /* address port 1 */ if (addr_A1 == 1 && ST_address == v) return 0; @@ -154,7 +150,7 @@ static void wait_busy_940(int job) gp2x_memregs[0x3b46>>1], gp2x_memregl[0x4500>>2], gp2x_memregl[0x4510>>2]); printf("last lr: %08x, lastjob: %i\n", shared_ctl->last_lr, shared_ctl->lastjob); - strcpy(menuErrorMsg, "940 crashed, too much overclock?"); + me_update_msg("940 crashed, too much overclock?"); engineState = PGS_Menu; crashed_940 = 1; } @@ -317,7 +313,7 @@ void YM2612Init_940(int baseclock, int rate) fp = fopen(binpath, "rb"); if(!fp) { - memset(gp2x_screen, 0, 320*240*2); + memset(g_screen_ptr, 0, 320*240*2); text_out16(10, 100, "failed to open required file:"); text_out16(10, 110, CODE940_FILE); gp2x_video_flip2(); @@ -403,8 +399,8 @@ int YM2612UpdateOne_940(int *buffer, int length, int stereo, int is_buf_empty) /* predict sample counter for next frame */ if (PsndLen_exc_add) { - if (PsndLen_exc_cnt + PsndLen_exc_add >= 0x10000) length = PsndLen + 1; - else length = PsndLen; + length = PsndLen; + if (PsndLen_exc_cnt + PsndLen_exc_add >= 0x10000) length++; } /* give 940 ym job */ @@ -512,7 +508,7 @@ void mp3_start_play(FILE *f, int pos) // pos is 0-1023 shared_ctl->mp3_len = ftell(f); loaded_mp3 = f; - if (PicoOpt&0x200) { + if (PicoOpt & POPT_EXT_FM) { // as we are going to change 940's cacheable area, we must invalidate it's cache.. if (CHECK_BUSY(JOB940_MP3DECODE)) wait_busy_940(JOB940_MP3DECODE); add_job_940(JOB940_INVALIDATE_DCACHE); @@ -526,7 +522,7 @@ void mp3_start_play(FILE *f, int pos) // pos is 0-1023 byte_offs *= pos; byte_offs >>= 6; } - // printf("mp3 pos1024: %i, byte_offs %i/%i\n", pos, byte_offs, shared_ctl->mp3_len); + printf(" mp3 pos1024: %i, byte_offs %i/%i\n", pos, byte_offs, shared_ctl->mp3_len); shared_ctl->mp3_offs = byte_offs; @@ -535,7 +531,13 @@ void mp3_start_play(FILE *f, int pos) // pos is 0-1023 mp3_job_started = 0; shared_ctl->mp3_buffsel = 1; // will change to 0 on first decode - if (!(PicoOpt&0x200)) mp3_start_local(); + if (PicoOpt & POPT_EXT_FM) + { + add_job_940(JOB940_MP3RESET); + if (CHECK_BUSY(JOB940_MP3RESET)) wait_busy_940(JOB940_MP3RESET); + } + else + mp3_start_local(); }