mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 07:17:45 -04:00
supporting caanoo, line doublers, refactoring
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@893 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
bf61bea0f2
commit
f4750ee051
24 changed files with 349 additions and 222 deletions
16
pico/draw.c
16
pico/draw.c
|
@ -1590,3 +1590,19 @@ void PicoDrawSetInternalBuf(void *dest, int increment)
|
|||
}
|
||||
}
|
||||
|
||||
void PicoDrawSetCallbacks(int (*begin)(unsigned int num), int (*end)(unsigned int num))
|
||||
{
|
||||
PicoScanBegin = NULL;
|
||||
PicoScanEnd = NULL;
|
||||
PicoScan32xBegin = NULL;
|
||||
PicoScan32xEnd = NULL;
|
||||
|
||||
if ((PicoAHW & PAHW_32X) && FinalizeLine != FinalizeLine32xRGB555) {
|
||||
PicoScan32xBegin = begin;
|
||||
PicoScan32xEnd = end;
|
||||
}
|
||||
else {
|
||||
PicoScanBegin = begin;
|
||||
PicoScanEnd = end;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1638,7 +1638,7 @@ vidConvCpyRGB565: @ void *to, void *from, int pixels
|
|||
stmfd sp!, {r4-r9,lr}
|
||||
mov r8, #0x0061
|
||||
orr r8, r8, #0x0800
|
||||
orr r8, r8, lsl #16
|
||||
orr r8, r8, r8, lsl #16
|
||||
vidConvCpyRGB565_local
|
||||
ldmfd sp!, {r4-r9,lr}
|
||||
bx lr
|
||||
|
@ -1663,7 +1663,7 @@ PicoDoHighPal555_nopush:
|
|||
mov r2, #0x40
|
||||
mov r8, #0x0061
|
||||
orr r8, r8, #0x0800
|
||||
orr r8, r8, lsl #16
|
||||
orr r8, r8, r8, lsl #16
|
||||
|
||||
vidConvCpyRGB565_local
|
||||
|
||||
|
|
|
@ -170,10 +170,9 @@ typedef enum
|
|||
} pdso_t;
|
||||
void PicoDrawSetOutFormat(pdso_t which, int allow_32x);
|
||||
void PicoDrawSetOutBuf(void *dest, int increment);
|
||||
void PicoDrawSetCallbacks(int (*begin)(unsigned int num), int (*end)(unsigned int num));
|
||||
extern void *DrawLineDest;
|
||||
extern unsigned char *HighCol;
|
||||
extern int (*PicoScanBegin)(unsigned int num);
|
||||
extern int (*PicoScanEnd)(unsigned int num);
|
||||
// utility
|
||||
#ifdef _ASM_DRAW_C
|
||||
void vidConvCpyRGB565(void *to, void *from, int pixels);
|
||||
|
@ -219,8 +218,6 @@ extern int p32x_ssh2_multiplier;
|
|||
|
||||
// 32x/draw.c
|
||||
void PicoDraw32xSetFrameMode(int is_on, int only_32x);
|
||||
extern int (*PicoScan32xBegin)(unsigned int num);
|
||||
extern int (*PicoScan32xEnd)(unsigned int num);
|
||||
|
||||
// sound.c
|
||||
extern int PsndRate,PsndLen;
|
||||
|
|
|
@ -540,6 +540,8 @@ PICO_INTERNAL void PicoFrameStart(void);
|
|||
void PicoDrawSync(int to, int blank_last_line);
|
||||
void BackFill(int reg7, int sh);
|
||||
void FinalizeLine555(int sh, int line);
|
||||
extern int (*PicoScanBegin)(unsigned int num);
|
||||
extern int (*PicoScanEnd)(unsigned int num);
|
||||
extern int DrawScanline;
|
||||
#define MAX_LINE_SPRITES 29
|
||||
extern unsigned char HighLnSpr[240][3 + MAX_LINE_SPRITES];
|
||||
|
@ -727,6 +729,8 @@ void p32x_poll_event(int cpu_mask, int is_vdp);
|
|||
void FinalizeLine32xRGB555(int sh, int line);
|
||||
void PicoDraw32xLayer(int offs, int lines, int mdbg);
|
||||
void PicoDraw32xLayerMdOnly(int offs, int lines);
|
||||
extern int (*PicoScan32xBegin)(unsigned int num);
|
||||
extern int (*PicoScan32xEnd)(unsigned int num);
|
||||
enum {
|
||||
PDM32X_OFF,
|
||||
PDM32X_32X_ONLY,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue