X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fgp2x%2Fcode940%2F940.c;h=3f7130aa74ebf9b20b8d57f42c22bfb2a7d70e75;hb=4f265db77684ec33f9533e7c76734498df03bba4;hp=34b42b9b5dc904afca73c86a32576e4d2eadb907;hpb=75736070161d40608ba3052b4c95b42943f9de3d;p=picodrive.git diff --git a/platform/gp2x/code940/940.c b/platform/gp2x/code940/940.c index 34b42b9..3f7130a 100644 --- a/platform/gp2x/code940/940.c +++ b/platform/gp2x/code940/940.c @@ -57,17 +57,18 @@ static void mp3_decode(void) } -void Main940(int startvector) +void Main940(int startvector, int pc_at_irq) { 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 +78,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 +128,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 +144,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(); } }