notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PCM sound, refactored code940
[picodrive.git]
/
platform
/
gp2x
/
code940
/
940.c
diff --git
a/platform/gp2x/code940/940.c
b/platform/gp2x/code940/940.c
index
34b42b9
..
3f7130a
100644
(file)
--- a/
platform/gp2x/code940/940.c
+++ b/
platform/gp2x/code940/940.c
@@
-57,17
+57,18
@@
static void mp3_decode(void)
}
\r
\r
\r
}
\r
\r
\r
-void Main940(int startvector)
\r
+void Main940(int startvector
, int pc_at_irq
)
\r
{
\r
ym2612_940 = &shared_data->ym2612;
\r
mix_buffer = shared_data->mix_buffer;
\r
\r
// debug
\r
shared_ctl->vstarts[startvector]++;
\r
{
\r
ym2612_940 = &shared_data->ym2612;
\r
mix_buffer = shared_data->mix_buffer;
\r
\r
// debug
\r
shared_ctl->vstarts[startvector]++;
\r
+ shared_ctl->last_irq_pc = pc_at_irq;
\r
// asm volatile ("mcr p15, 0, r0, c7, c10, 4" ::: "r0");
\r
\r
\r
// asm volatile ("mcr p15, 0, r0, c7, c10, 4" ::: "r0");
\r
\r
\r
-
for (;;)
\r
+
//
for (;;)
\r
{
\r
int job_num = 0;
\r
/*
\r
{
\r
int job_num = 0;
\r
/*
\r
@@
-77,13
+78,18
@@
void Main940(int startvector)
spend_cycles(8*1024);
\r
}
\r
*/
\r
spend_cycles(8*1024);
\r
}
\r
*/
\r
+/*
\r
if (!shared_ctl->busy)
\r
{
\r
wait_irq();
\r
}
\r
if (!shared_ctl->busy)
\r
{
\r
wait_irq();
\r
}
\r
+ shared_ctl->lastbusy = shared_ctl->busy;
\r
+*/
\r
\r
for (job_num = 0; job_num < MAX_940JOBS; job_num++)
\r
{
\r
\r
for (job_num = 0; job_num < MAX_940JOBS; job_num++)
\r
{
\r
+ shared_ctl->lastjob = (job_num << 8) | shared_ctl->jobs[job_num];
\r
+
\r
switch (shared_ctl->jobs[job_num])
\r
{
\r
case JOB940_INITALL:
\r
switch (shared_ctl->jobs[job_num])
\r
{
\r
case JOB940_INITALL:
\r
@@
-122,7
+128,7
@@
void Main940(int startvector)
YM2612Write_(d >> 8, d);
\r
}
\r
\r
YM2612Write_(d >> 8, d);
\r
}
\r
\r
- YM2612UpdateOne_(
0, shared_ctl->length, shared_ctl->stereo
);
\r
+ YM2612UpdateOne_(
mix_buffer, shared_ctl->length, shared_ctl->stereo, 1
);
\r
break;
\r
}
\r
\r
break;
\r
}
\r
\r
@@
-138,7
+144,10
@@
void Main940(int startvector)
// cache_clean_flush();
\r
\r
shared_ctl->loopc++;
\r
// cache_clean_flush();
\r
\r
shared_ctl->loopc++;
\r
- shared_ctl->busy = 0;
\r
+
\r
+// // shared_ctl->busy = 0; // shared mem is not reliable?
\r
+
\r
+ wait_irq();
\r
}
\r
}
\r
\r
}
\r
}
\r
\r