notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
32x: improve 68k bios handling
[picodrive.git]
/
pico
/
pico_cmn.c
diff --git
a/pico/pico_cmn.c
b/pico/pico_cmn.c
index
50b8ced
..
95b6b10
100644
(file)
--- a/
pico/pico_cmn.c
+++ b/
pico/pico_cmn.c
@@
-81,7
+81,7
@@
static void do_timing_hacks_as(struct PicoVideo *pv, int vdp_slots)
static void do_timing_hacks_vb(void)
{
static void do_timing_hacks_vb(void)
{
- if (
Pico.m.dma_xfers
)
+ if (
unlikely(Pico.m.dma_xfers)
)
SekCyclesBurn(CheckDMA());
}
SekCyclesBurn(CheckDMA());
}
@@
-153,7
+153,7
@@
static int PicoFrameHints(void)
}
// get samples from sound chips
}
// get samples from sound chips
- if ((y == 224 || y == line_sample) && PsndOut)
+ if ((y == 224 || y == line_sample) && P
icoIn.
sndOut)
{
cycles = SekCyclesDone();
{
cycles = SekCyclesDone();
@@
-241,7
+241,7
@@
static int PicoFrameHints(void)
#endif
// get samples from sound chips
#endif
// get samples from sound chips
- if (y == 224 && PsndOut)
+ if (y == 224 && P
icoIn.
sndOut)
PsndGetSamples(y);
// Run scanline:
PsndGetSamples(y);
// Run scanline:
@@
-272,7
+272,7
@@
static int PicoFrameHints(void)
PAD_DELAY();
PAD_DELAY();
- if ((pv->status & PVS_ACTIVE) && --hint < 0)
+ if (
unlikely
(pv->status & PVS_ACTIVE) && --hint < 0)
{
hint = pv->reg[10]; // Reload H-Int counter
do_hint(pv);
{
hint = pv->reg[10]; // Reload H-Int counter
do_hint(pv);
@@
-287,6
+287,15
@@
static int PicoFrameHints(void)
pevt_log_m68k_o(EVT_NEXT_LINE);
}
pevt_log_m68k_o(EVT_NEXT_LINE);
}
+ if (unlikely(PicoIn.overclockM68k)) {
+ unsigned int l = PicoIn.overclockM68k * lines / 100;
+ while (l-- > 0) {
+ Pico.t.m68c_cnt -= CYCLES_M68K_LINE;
+ do_timing_hacks_vb();
+ SekSyncM68k();
+ }
+ }
+
pv->status &= ~(SR_VB | PVS_VB2);
pv->status |= ((pv->reg[1] >> 3) ^ SR_VB) & SR_VB; // forced blanking
pv->status &= ~(SR_VB | PVS_VB2);
pv->status |= ((pv->reg[1] >> 3) ^ SR_VB) & SR_VB; // forced blanking
@@
-315,9
+324,9
@@
static int PicoFrameHints(void)
cycles = SekCyclesDone();
if (Pico.m.z80Run && !Pico.m.z80_reset && (PicoIn.opt&POPT_EN_Z80))
PicoSyncZ80(cycles);
cycles = SekCyclesDone();
if (Pico.m.z80Run && !Pico.m.z80_reset && (PicoIn.opt&POPT_EN_Z80))
PicoSyncZ80(cycles);
- if (P
sndOut && ym2612.dacen && PsndDacL
ine < lines)
+ if (P
icoIn.sndOut && ym2612.dacen && Pico.snd.dac_l
ine < lines)
PsndDoDAC(lines - 1);
PsndDoDAC(lines - 1);
- if (P
sndOut && PsndPsgL
ine < lines)
+ if (P
icoIn.sndOut && Pico.snd.psg_l
ine < lines)
PsndDoPSG(lines - 1);
#ifdef PICO_CD
PsndDoPSG(lines - 1);
#ifdef PICO_CD