mirror of
https://github.com/libretro/RetroArch
synced 2025-04-16 17:43:02 +00:00
(PSP) Style nits
This commit is contained in:
parent
2ec7fdde51
commit
f517c41070
@ -59,8 +59,6 @@
|
|||||||
#define FROM_GU_POINTER(ptr) ((void *)((uint32_t)(ptr)|0x44000000))
|
#define FROM_GU_POINTER(ptr) ((void *)((uint32_t)(ptr)|0x44000000))
|
||||||
#define TO_GU_POINTER(ptr) ((void *)((uint32_t)(ptr)&~0x44000000))
|
#define TO_GU_POINTER(ptr) ((void *)((uint32_t)(ptr)&~0x44000000))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct __attribute__((packed)) psp1_vertex
|
typedef struct __attribute__((packed)) psp1_vertex
|
||||||
{
|
{
|
||||||
float u,v;
|
float u,v;
|
||||||
@ -72,7 +70,6 @@ typedef struct __attribute__((packed)) psp1_sprite
|
|||||||
{
|
{
|
||||||
psp1_vertex_t v0;
|
psp1_vertex_t v0;
|
||||||
psp1_vertex_t v1;
|
psp1_vertex_t v1;
|
||||||
|
|
||||||
} psp1_sprite_t;
|
} psp1_sprite_t;
|
||||||
|
|
||||||
typedef struct psp1_menu_frame
|
typedef struct psp1_menu_frame
|
||||||
@ -84,7 +81,6 @@ typedef struct psp1_menu_frame
|
|||||||
bool active;
|
bool active;
|
||||||
|
|
||||||
PspGeContext context_storage;
|
PspGeContext context_storage;
|
||||||
|
|
||||||
} psp1_menu_frame_t;
|
} psp1_menu_frame_t;
|
||||||
|
|
||||||
typedef struct psp1_video
|
typedef struct psp1_video
|
||||||
@ -100,7 +96,6 @@ typedef struct psp1_video
|
|||||||
bool rgb32;
|
bool rgb32;
|
||||||
int bpp_log2;
|
int bpp_log2;
|
||||||
|
|
||||||
|
|
||||||
psp1_menu_frame_t menu;
|
psp1_menu_frame_t menu;
|
||||||
|
|
||||||
video_viewport_t vp;
|
video_viewport_t vp;
|
||||||
@ -110,7 +105,6 @@ typedef struct psp1_video
|
|||||||
bool keep_aspect;
|
bool keep_aspect;
|
||||||
bool should_resize;
|
bool should_resize;
|
||||||
bool hw_render;
|
bool hw_render;
|
||||||
|
|
||||||
} psp1_video_t;
|
} psp1_video_t;
|
||||||
|
|
||||||
// both row and column count need to be a power of 2
|
// both row and column count need to be a power of 2
|
||||||
@ -123,8 +117,8 @@ static INLINE void psp_set_screen_coords (psp1_sprite_t* framecoords,
|
|||||||
int x, int y, int width, int height, unsigned rotation)
|
int x, int y, int width, int height, unsigned rotation)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int current_column = 0;
|
|
||||||
float x0, y0, step_x, step_y;
|
float x0, y0, step_x, step_y;
|
||||||
|
int current_column = 0;
|
||||||
|
|
||||||
if (rotation == 0)
|
if (rotation == 0)
|
||||||
{
|
{
|
||||||
@ -223,26 +217,25 @@ static INLINE void psp_set_tex_coords (psp1_sprite_t* framecoords,
|
|||||||
int width, int height)
|
int width, int height)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int current_column = 0;
|
int current_column = 0;
|
||||||
|
float u0 = 0;
|
||||||
float u0 = 0;
|
float v0 = 0;
|
||||||
float v0 = 0;
|
float step_u = ((float) width) / PSP_FRAME_COLUMNS_COUNT;
|
||||||
float step_u = ((float) width) / PSP_FRAME_COLUMNS_COUNT;
|
float step_v = ((float) height) / PSP_FRAME_ROWS_COUNT;
|
||||||
float step_v = ((float) height) / PSP_FRAME_ROWS_COUNT;
|
|
||||||
|
|
||||||
for (i=0; i < PSP_FRAME_SLICE_COUNT; i++)
|
for (i=0; i < PSP_FRAME_SLICE_COUNT; i++)
|
||||||
{
|
{
|
||||||
framecoords[i].v0.u = u0;
|
framecoords[i].v0.u = u0;
|
||||||
framecoords[i].v0.v = v0;
|
framecoords[i].v0.v = v0;
|
||||||
u0+=step_u;
|
u0 += step_u;
|
||||||
framecoords[i].v1.u = u0;
|
framecoords[i].v1.u = u0;
|
||||||
framecoords[i].v1.v = v0 + step_v;
|
framecoords[i].v1.v = v0 + step_v;
|
||||||
|
|
||||||
if (++current_column == PSP_FRAME_COLUMNS_COUNT)
|
if (++current_column == PSP_FRAME_COLUMNS_COUNT)
|
||||||
{
|
{
|
||||||
u0 = 0;
|
u0 = 0;
|
||||||
v0 += step_v;
|
v0 += step_v;
|
||||||
current_column = 0;
|
current_column = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -251,32 +244,33 @@ static void psp_update_viewport(psp1_video_t* psp);
|
|||||||
|
|
||||||
static void psp_on_vblank(u32 sub, psp1_video_t *psp)
|
static void psp_on_vblank(u32 sub, psp1_video_t *psp)
|
||||||
{
|
{
|
||||||
psp->vblank_not_reached = false;
|
if (psp)
|
||||||
|
psp->vblank_not_reached = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *psp_init(const video_info_t *video,
|
static void *psp_init(const video_info_t *video,
|
||||||
const input_driver_t **input, void **input_data)
|
const input_driver_t **input, void **input_data)
|
||||||
{
|
{
|
||||||
/* to-do : add ASSERT() checks or use main RAM if
|
/* TODO : add ASSERT() checks or use main RAM if
|
||||||
* VRAM is too low for desired video->input_scale. */
|
* VRAM is too low for desired video->input_scale. */
|
||||||
void *pspinput;
|
void *pspinput = NULL;
|
||||||
int pixel_format, lut_pixel_format, lut_block_count;
|
int pixel_format, lut_pixel_format, lut_block_count;
|
||||||
unsigned int red_shift, color_mask;
|
unsigned int red_shift, color_mask;
|
||||||
void *displayBuffer, *LUT_r, *LUT_b;
|
void *displayBuffer, *LUT_r, *LUT_b;
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
psp1_video_t *psp = (psp1_video_t*)calloc(1, sizeof(psp1_video_t));
|
psp1_video_t *psp = (psp1_video_t*)calloc(1, sizeof(psp1_video_t));
|
||||||
|
|
||||||
if (!psp)
|
if (!psp)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
sceGuInit();
|
sceGuInit();
|
||||||
|
|
||||||
psp->vp.x = 0;
|
psp->vp.x = 0;
|
||||||
psp->vp.y = 0;
|
psp->vp.y = 0;
|
||||||
psp->vp.width = SCEGU_SCR_WIDTH;
|
psp->vp.width = SCEGU_SCR_WIDTH;
|
||||||
psp->vp.height = SCEGU_SCR_HEIGHT;
|
psp->vp.height = SCEGU_SCR_HEIGHT;
|
||||||
psp->vp.full_width = SCEGU_SCR_WIDTH;
|
psp->vp.full_width = SCEGU_SCR_WIDTH;
|
||||||
psp->vp.full_height = SCEGU_SCR_HEIGHT;
|
psp->vp.full_height = SCEGU_SCR_HEIGHT;
|
||||||
|
|
||||||
/* Make sure anything using uncached pointers reserves
|
/* Make sure anything using uncached pointers reserves
|
||||||
* whole cachelines (memory address and size need to be a multiple of 64)
|
* whole cachelines (memory address and size need to be a multiple of 64)
|
||||||
@ -286,14 +280,14 @@ static void *psp_init(const video_info_t *video,
|
|||||||
* uncached pointers to write to them. */
|
* uncached pointers to write to them. */
|
||||||
|
|
||||||
/* Allocate more space if bigger display lists are needed. */
|
/* Allocate more space if bigger display lists are needed. */
|
||||||
psp->main_dList = memalign(64, 256);
|
psp->main_dList = memalign(64, 256);
|
||||||
|
|
||||||
psp->frame_dList = memalign(64, 256);
|
psp->frame_dList = memalign(64, 256);
|
||||||
psp->menu.dList = memalign(64, 256);
|
psp->menu.dList = memalign(64, 256);
|
||||||
psp->menu.frame = memalign(16, 2 * 480 * 272);
|
psp->menu.frame = memalign(16, 2 * 480 * 272);
|
||||||
psp->frame_coords = memalign(64,
|
psp->frame_coords = memalign(64,
|
||||||
(((PSP_FRAME_SLICE_COUNT * sizeof(psp1_sprite_t)) + 63) & ~63));
|
(((PSP_FRAME_SLICE_COUNT * sizeof(psp1_sprite_t)) + 63) & ~63));
|
||||||
psp->menu.frame_coords = memalign(64,
|
psp->menu.frame_coords = memalign(64,
|
||||||
(((PSP_FRAME_SLICE_COUNT * sizeof(psp1_sprite_t)) + 63) & ~63));
|
(((PSP_FRAME_SLICE_COUNT * sizeof(psp1_sprite_t)) + 63) & ~63));
|
||||||
|
|
||||||
memset(psp->frame_coords, 0,
|
memset(psp->frame_coords, 0,
|
||||||
@ -302,78 +296,81 @@ static void *psp_init(const video_info_t *video,
|
|||||||
PSP_FRAME_SLICE_COUNT * sizeof(psp1_sprite_t));
|
PSP_FRAME_SLICE_COUNT * sizeof(psp1_sprite_t));
|
||||||
|
|
||||||
sceKernelDcacheWritebackInvalidateAll();
|
sceKernelDcacheWritebackInvalidateAll();
|
||||||
psp->frame_coords = TO_UNCACHED_PTR(psp->frame_coords);
|
psp->frame_coords = TO_UNCACHED_PTR(psp->frame_coords);
|
||||||
psp->menu.frame_coords = TO_UNCACHED_PTR(psp->menu.frame_coords);
|
psp->menu.frame_coords = TO_UNCACHED_PTR(psp->menu.frame_coords);
|
||||||
|
|
||||||
psp->frame_coords->v0.x = 60;
|
psp->frame_coords->v0.x = 60;
|
||||||
psp->frame_coords->v0.y = 0;
|
psp->frame_coords->v0.y = 0;
|
||||||
psp->frame_coords->v0.u = 0;
|
psp->frame_coords->v0.u = 0;
|
||||||
psp->frame_coords->v0.v = 0;
|
psp->frame_coords->v0.v = 0;
|
||||||
|
|
||||||
psp->frame_coords->v1.x = 420;
|
psp->frame_coords->v1.x = 420;
|
||||||
psp->frame_coords->v1.y = SCEGU_SCR_HEIGHT;
|
psp->frame_coords->v1.y = SCEGU_SCR_HEIGHT;
|
||||||
psp->frame_coords->v1.u = 256;
|
psp->frame_coords->v1.u = 256;
|
||||||
psp->frame_coords->v1.v = 240;
|
psp->frame_coords->v1.v = 240;
|
||||||
|
|
||||||
psp->vsync = video->vsync;
|
psp->vsync = video->vsync;
|
||||||
psp->rgb32 = video->rgb32;
|
psp->rgb32 = video->rgb32;
|
||||||
|
|
||||||
if(psp->rgb32)
|
if(psp->rgb32)
|
||||||
{
|
{
|
||||||
|
u32 i;
|
||||||
uint32_t* LUT_r_local = (uint32_t*)(SCEGU_VRAM_BP32_2);
|
uint32_t* LUT_r_local = (uint32_t*)(SCEGU_VRAM_BP32_2);
|
||||||
uint32_t* LUT_b_local = (uint32_t*)(SCEGU_VRAM_BP32_2) + (1 << 8);
|
uint32_t* LUT_b_local = (uint32_t*)(SCEGU_VRAM_BP32_2) + (1 << 8);
|
||||||
|
|
||||||
red_shift = 8 + 8;
|
red_shift = 8 + 8;
|
||||||
color_mask = 0xFF;
|
color_mask = 0xFF;
|
||||||
lut_block_count = (1 << 8) / 8;
|
lut_block_count = (1 << 8) / 8;
|
||||||
|
|
||||||
psp->texture = (void*)(LUT_b_local + (1 << 8));
|
psp->texture = (void*)(LUT_b_local + (1 << 8));
|
||||||
psp->draw_buffer = SCEGU_VRAM_BP32_0;
|
psp->draw_buffer = SCEGU_VRAM_BP32_0;
|
||||||
psp->bpp_log2 = 2;
|
psp->bpp_log2 = 2;
|
||||||
|
|
||||||
pixel_format = GU_PSM_8888;
|
pixel_format = GU_PSM_8888;
|
||||||
lut_pixel_format = GU_PSM_T32;
|
lut_pixel_format = GU_PSM_T32;
|
||||||
|
|
||||||
displayBuffer = SCEGU_VRAM_BP32_1;
|
displayBuffer = SCEGU_VRAM_BP32_1;
|
||||||
|
|
||||||
for (u32 i=0; i < (1 << 8); i++){
|
for (i = 0; i < (1 << 8); i++)
|
||||||
LUT_r_local[i]= i;
|
{
|
||||||
LUT_b_local[i]= i << (8 + 8);
|
LUT_r_local[i] = i;
|
||||||
|
LUT_b_local[i] = i << (8 + 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
LUT_r = (void*)LUT_r_local;
|
LUT_r = (void*)LUT_r_local;
|
||||||
LUT_b = (void*)LUT_b_local;
|
LUT_b = (void*)LUT_b_local;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
u16 i;
|
||||||
uint16_t* LUT_r_local = (uint16_t*)(SCEGU_VRAM_BP_2);
|
uint16_t* LUT_r_local = (uint16_t*)(SCEGU_VRAM_BP_2);
|
||||||
uint16_t* LUT_b_local = (uint16_t*)(SCEGU_VRAM_BP_2) + (1 << 5);
|
uint16_t* LUT_b_local = (uint16_t*)(SCEGU_VRAM_BP_2) + (1 << 5);
|
||||||
|
|
||||||
red_shift = 6 + 5;
|
red_shift = 6 + 5;
|
||||||
color_mask = 0x1F;
|
color_mask = 0x1F;
|
||||||
lut_block_count = (1 << 5) / 8;
|
lut_block_count = (1 << 5) / 8;
|
||||||
|
|
||||||
psp->texture = (void*)(LUT_b_local + (1 << 5));
|
psp->texture = (void*)(LUT_b_local + (1 << 5));
|
||||||
psp->draw_buffer = SCEGU_VRAM_BP_0;
|
psp->draw_buffer = SCEGU_VRAM_BP_0;
|
||||||
psp->bpp_log2 = 1;
|
psp->bpp_log2 = 1;
|
||||||
|
|
||||||
pixel_format =
|
pixel_format =
|
||||||
(global->system.pix_fmt == RETRO_PIXEL_FORMAT_0RGB1555)
|
(global->system.pix_fmt == RETRO_PIXEL_FORMAT_0RGB1555)
|
||||||
? GU_PSM_5551 : GU_PSM_5650 ;
|
? GU_PSM_5551 : GU_PSM_5650 ;
|
||||||
|
|
||||||
lut_pixel_format = GU_PSM_T16;
|
lut_pixel_format = GU_PSM_T16;
|
||||||
|
|
||||||
displayBuffer = SCEGU_VRAM_BP_1;
|
displayBuffer = SCEGU_VRAM_BP_1;
|
||||||
|
|
||||||
for (u16 i = 0; i < (1 << 5); i++)
|
for (i = 0; i < (1 << 5); i++)
|
||||||
{
|
{
|
||||||
LUT_r_local[i]= i;
|
LUT_r_local[i] = i;
|
||||||
LUT_b_local[i]= i << (5 + 6);
|
LUT_b_local[i] = i << (5 + 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
LUT_r = (void*)LUT_r_local;
|
LUT_r = (void*)LUT_r_local;
|
||||||
LUT_b = (void*)LUT_b_local;
|
LUT_b = (void*)LUT_b_local;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -454,9 +451,9 @@ static void *psp_init(const video_info_t *video,
|
|||||||
sceKernelRegisterSubIntrHandler(PSP_VBLANK_INT, 0, psp_on_vblank, psp);
|
sceKernelRegisterSubIntrHandler(PSP_VBLANK_INT, 0, psp_on_vblank, psp);
|
||||||
sceKernelEnableSubIntr(PSP_VBLANK_INT, 0);
|
sceKernelEnableSubIntr(PSP_VBLANK_INT, 0);
|
||||||
|
|
||||||
psp->keep_aspect = true;
|
psp->keep_aspect = true;
|
||||||
psp->should_resize = true;
|
psp->should_resize = true;
|
||||||
psp->hw_render = false;
|
psp->hw_render = false;
|
||||||
|
|
||||||
return psp;
|
return psp;
|
||||||
error:
|
error:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user