X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fgp2x%2Fcode940%2F940.c;h=18d282cb782bad33df14b6ffac7617c7dd04af9a;hb=7a93adeb29f01f5867ff36606cd73a382b6ee0e3;hp=34b42b9b5dc904afca73c86a32576e4d2eadb907;hpb=51a902ae2512cffdb3ac7751988c1bde4a641be4;p=picodrive.git diff --git a/platform/gp2x/code940/940.c b/platform/gp2x/code940/940.c index 34b42b9..18d282c 100644 --- a/platform/gp2x/code940/940.c +++ b/platform/gp2x/code940/940.c @@ -4,7 +4,6 @@ static _940_data_t *shared_data = (_940_data_t *) 0x00100000; static _940_ctl_t *shared_ctl = (_940_ctl_t *) 0x00200000; static unsigned char *mp3_data = (unsigned char *) 0x01000000; YM2612 *ym2612_940; -int *mix_buffer; // from init.s void wait_irq(void); @@ -57,17 +56,18 @@ static void mp3_decode(void) } -void Main940(int startvector) +void Main940(int startvector, int pc_at_irq) { + int mix_buffer = shared_data->mix_buffer; ym2612_940 = &shared_data->ym2612; - mix_buffer = shared_data->mix_buffer; // debug shared_ctl->vstarts[startvector]++; + shared_ctl->last_irq_pc = pc_at_irq; // asm volatile ("mcr p15, 0, r0, c7, c10, 4" ::: "r0"); - for (;;) +// for (;;) { int job_num = 0; /* @@ -77,13 +77,18 @@ void Main940(int startvector) spend_cycles(8*1024); } */ +/* if (!shared_ctl->busy) { wait_irq(); } + shared_ctl->lastbusy = shared_ctl->busy; +*/ for (job_num = 0; job_num < MAX_940JOBS; job_num++) { + shared_ctl->lastjob = (job_num << 8) | shared_ctl->jobs[job_num]; + switch (shared_ctl->jobs[job_num]) { case JOB940_INITALL: @@ -122,7 +127,7 @@ void Main940(int startvector) YM2612Write_(d >> 8, d); } - YM2612UpdateOne_(0, shared_ctl->length, shared_ctl->stereo); + YM2612UpdateOne_(mix_buffer, shared_ctl->length, shared_ctl->stereo, 1); break; } @@ -138,7 +143,10 @@ void Main940(int startvector) // cache_clean_flush(); shared_ctl->loopc++; - shared_ctl->busy = 0; + +// // shared_ctl->busy = 0; // shared mem is not reliable? + + wait_irq(); } }