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 irq handling + few bugfixes
[picodrive.git]
/
pico
/
pico_int.h
diff --git
a/pico/pico_int.h
b/pico/pico_int.h
index
68a77c0
..
3ee4ea1
100644
(file)
--- a/
pico/pico_int.h
+++ b/
pico/pico_int.h
@@
-437,6
+437,8
@@
typedef struct
#define P32XV_PRI (1<< 7)
\r
#define P32XV_Mx (3<< 0) // display mode mask
\r
\r
#define P32XV_PRI (1<< 7)
\r
#define P32XV_Mx (3<< 0) // display mode mask
\r
\r
+#define P32XV_SFT (1<< 0)
\r
+
\r
#define P32XV_VBLK (1<<15)
\r
#define P32XV_HBLK (1<<14)
\r
#define P32XV_PEN (1<<13)
\r
#define P32XV_VBLK (1<<15)
\r
#define P32XV_HBLK (1<<14)
\r
#define P32XV_PEN (1<<13)
\r
@@
-469,11
+471,13
@@
typedef struct
#define SH2_DRCBLK_RAM_SHIFT 1
\r
#define SH2_DRCBLK_DA_SHIFT 1
\r
\r
#define SH2_DRCBLK_RAM_SHIFT 1
\r
#define SH2_DRCBLK_DA_SHIFT 1
\r
\r
+#define SH2_WRITE_SHIFT 25
\r
+
\r
struct Pico32x
\r
{
\r
unsigned short regs[0x20];
\r
struct Pico32x
\r
{
\r
unsigned short regs[0x20];
\r
- unsigned short vdp_regs[0x10];
\r
- unsigned short sh2_regs[3];
\r
+ unsigned short vdp_regs[0x10];
// 0x40
\r
+ unsigned short sh2_regs[3];
// 0x60
\r
unsigned char pending_fb;
\r
unsigned char dirty_pal;
\r
unsigned int emu_flags;
\r
unsigned char pending_fb;
\r
unsigned char dirty_pal;
\r
unsigned int emu_flags;
\r
@@
-545,10
+549,12
@@
int CM_compareRun(int cyc, int is_sub);
PICO_INTERNAL void PicoFrameStart(void);
\r
void PicoDrawSync(int to, int blank_last_line);
\r
void BackFill(int reg7, int sh);
\r
PICO_INTERNAL void PicoFrameStart(void);
\r
void PicoDrawSync(int to, int blank_last_line);
\r
void BackFill(int reg7, int sh);
\r
-void FinalizeLine
RGB
555(int sh, int line);
\r
+void FinalizeLine555(int sh, int line);
\r
extern int DrawScanline;
\r
#define MAX_LINE_SPRITES 29
\r
extern unsigned char HighLnSpr[240][3 + MAX_LINE_SPRITES];
\r
extern int DrawScanline;
\r
#define MAX_LINE_SPRITES 29
\r
extern unsigned char HighLnSpr[240][3 + MAX_LINE_SPRITES];
\r
+extern void *DrawLineDestBase;
\r
+extern int DrawLineDestIncrement;
\r
\r
// draw2.c
\r
PICO_INTERNAL void PicoFrameFull();
\r
\r
// draw2.c
\r
PICO_INTERNAL void PicoFrameFull();
\r
@@
-557,7
+563,7
@@
PICO_INTERNAL void PicoFrameFull();
void PicoFrameStartMode4(void);
\r
void PicoLineMode4(int line);
\r
void PicoDoHighPal555M4(void);
\r
void PicoFrameStartMode4(void);
\r
void PicoLineMode4(int line);
\r
void PicoDoHighPal555M4(void);
\r
-void PicoDrawSet
ColorFormatMode4(in
t which);
\r
+void PicoDrawSet
OutputMode4(pdso_
t which);
\r
\r
// memory.c
\r
PICO_INTERNAL void PicoMemSetup(void);
\r
\r
// memory.c
\r
PICO_INTERNAL void PicoMemSetup(void);
\r
@@
-700,7
+706,7
@@
void PicoReset32x(void);
void Pico32xStartup(void);
\r
void PicoUnload32x(void);
\r
void PicoFrame32x(void);
\r
void Pico32xStartup(void);
\r
void PicoUnload32x(void);
\r
void PicoFrame32x(void);
\r
-void p32x_update_irls(
void
);
\r
+void p32x_update_irls(
int nested_call
);
\r
void p32x_reset_sh2s(void);
\r
\r
// 32x/memory.c
\r
void p32x_reset_sh2s(void);
\r
\r
// 32x/memory.c
\r
@@
-715,12
+721,20
@@
void p32x_poll_event(int cpu_mask, int is_vdp);
\r
// 32x/draw.c
\r
void FinalizeLine32xRGB555(int sh, int line);
\r
\r
// 32x/draw.c
\r
void FinalizeLine32xRGB555(int sh, int line);
\r
+void PicoDraw32xLayer(int offs, int lines, int mdbg);
\r
+void PicoDraw32xLayerMdOnly(int offs, int lines);
\r
+enum {
\r
+ PDM32X_OFF,
\r
+ PDM32X_32X_ONLY,
\r
+ PDM32X_BOTH,
\r
+};
\r
+extern int Pico32xDrawMode;
\r
\r
// 32x/pwm.c
\r
unsigned int p32x_pwm_read16(unsigned int a);
\r
void p32x_pwm_write16(unsigned int a, unsigned int d);
\r
void p32x_pwm_update(int *buf32, int length, int stereo);
\r
\r
// 32x/pwm.c
\r
unsigned int p32x_pwm_read16(unsigned int a);
\r
void p32x_pwm_write16(unsigned int a, unsigned int d);
\r
void p32x_pwm_update(int *buf32, int length, int stereo);
\r
-void p32x_timers_do(int
new_line
);
\r
+void p32x_timers_do(int
line_call
);
\r
void p32x_timers_recalc(void);
\r
extern int pwm_frame_smp_cnt;
\r
\r
void p32x_timers_recalc(void);
\r
extern int pwm_frame_smp_cnt;
\r
\r
@@
-777,6
+791,18
@@
extern void lprintf(const char *fmt, ...);
#define elprintf(w,f,...)
\r
#endif
\r
\r
#define elprintf(w,f,...)
\r
#endif
\r
\r
+// profiling
\r
+#ifdef PPROF
\r
+#include <platform/linux/pprof.h>
\r
+#else
\r
+#define pprof_init()
\r
+#define pprof_finish()
\r
+#define pprof_start(x)
\r
+#define pprof_end(...)
\r
+#define pprof_end_sub(...)
\r
+#endif
\r
+
\r
+// misc
\r
#ifdef _MSC_VER
\r
#define cdprintf
\r
#else
\r
#ifdef _MSC_VER
\r
#define cdprintf
\r
#else
\r