mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 07:17:45 -04:00
sh2 overclock and logging stuff, menu refactoring
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@869 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
b4db550e41
commit
fcdefcf62c
16 changed files with 379 additions and 365 deletions
|
@ -4,6 +4,9 @@
|
|||
struct Pico32x Pico32x;
|
||||
SH2 sh2s[2];
|
||||
|
||||
int p32x_msh2_multiplier = MSH2_MULTI_DEFAULT;
|
||||
int p32x_ssh2_multiplier = SSH2_MULTI_DEFAULT;
|
||||
|
||||
static int REGPARM(2) sh2_irq_cb(SH2 *sh2, int level)
|
||||
{
|
||||
if (sh2->pending_irl > sh2->pending_int_irq) {
|
||||
|
@ -194,6 +197,7 @@ static __inline void run_m68k(int cyc)
|
|||
{
|
||||
pprof_start(m68k);
|
||||
|
||||
p32x_poll_event(3, 0);
|
||||
#if defined(EMU_C68K)
|
||||
PicoCpuCM68k.cycles = cyc;
|
||||
CycloneRun(&PicoCpuCM68k);
|
||||
|
@ -210,7 +214,8 @@ static __inline void run_m68k(int cyc)
|
|||
// ~1463.8, but due to cache misses and slow mem
|
||||
// it's much lower than that
|
||||
//#define SH2_LINE_CYCLES 735
|
||||
#define CYCLES_M68K2SH2(x) ((x) * 6 / 4)
|
||||
#define CYCLES_M68K2MSH2(x) (((x) * p32x_msh2_multiplier) >> 10)
|
||||
#define CYCLES_M68K2SSH2(x) (((x) * p32x_ssh2_multiplier) >> 10)
|
||||
|
||||
#define PICO_32X
|
||||
#define CPUS_RUN_SIMPLE(m68k_cycles,s68k_cycles) \
|
||||
|
@ -227,12 +232,12 @@ static __inline void run_m68k(int cyc)
|
|||
elprintf(EL_32X, "slice %d", slice); \
|
||||
if (!(Pico32x.emu_flags & (P32XF_SSH2POLL|P32XF_SSH2VPOLL))) { \
|
||||
pprof_start(ssh2); \
|
||||
sh2_execute(&ssh2, CYCLES_M68K2SH2(slice)); \
|
||||
sh2_execute(&ssh2, CYCLES_M68K2SSH2(slice)); \
|
||||
pprof_end(ssh2); \
|
||||
} \
|
||||
if (!(Pico32x.emu_flags & (P32XF_MSH2POLL|P32XF_MSH2VPOLL))) { \
|
||||
pprof_start(msh2); \
|
||||
sh2_execute(&msh2, CYCLES_M68K2SH2(slice)); \
|
||||
sh2_execute(&msh2, CYCLES_M68K2MSH2(slice)); \
|
||||
pprof_end(msh2); \
|
||||
} \
|
||||
pprof_start(dummy); \
|
||||
|
|
|
@ -209,6 +209,14 @@ extern unsigned char *PicoDraw2FB; // buffer for fast renderer in format (8+32
|
|||
extern unsigned short *PicoCramHigh; // pointer to CRAM buff (0x40 shorts), converted to native device color (works only with 16bit for now)
|
||||
extern void (*PicoPrepareCram)(); // prepares PicoCramHigh for renderer to use
|
||||
|
||||
// 32x/32x.c
|
||||
// multipliers against 68k clock
|
||||
extern int p32x_msh2_multiplier;
|
||||
extern int p32x_ssh2_multiplier;
|
||||
#define SH2_MULTI_SHIFT 10
|
||||
#define MSH2_MULTI_DEFAULT ((1 << SH2_MULTI_SHIFT) * 3 / 2)
|
||||
#define SSH2_MULTI_DEFAULT ((1 << SH2_MULTI_SHIFT) * 3 / 2)
|
||||
|
||||
// 32x/draw.c
|
||||
void PicoDraw32xSetFrameMode(int is_on, int only_32x);
|
||||
extern int (*PicoScan32xBegin)(unsigned int num);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue