diff --git a/src/render/psp/SDL_render_psp.c b/src/render/psp/SDL_render_psp.c index dfde199141..c50d214caf 100644 --- a/src/render/psp/SDL_render_psp.c +++ b/src/render/psp/SDL_render_psp.c @@ -1201,10 +1201,18 @@ PSP_RunCommandQueue(SDL_Renderer * renderer, SDL_RenderCommand *cmd, void *verti sceGuEnable(GU_TEXTURE_2D); } else { const VertTCV *verts = (VertTCV *) (gpumem + cmd->data.draw.first); + const Uint8 a = cmd->data.draw.a; + const Uint8 r = cmd->data.draw.r; + const Uint8 g = cmd->data.draw.g; + const Uint8 b = cmd->data.draw.b; + PSP_BlendState state = { + .color = GU_RGBA(r,g,b,a), + .texture = NULL, + .mode = cmd->data.draw.blend, + .shadeModel = GU_FLAT + }; TextureActivate(cmd->data.draw.texture); - /* Need to force refresh of blending mode, probably something to FIXME */ - PSP_SetBlendMode(renderer, SDL_BLENDMODE_INVALID); - PSP_SetBlendMode(renderer, cmd->data.draw.blend); + PSP_SetBlendState(renderer, &state); sceGuDrawArray(GU_TRIANGLES, GU_TEXTURE_32BITF|GU_COLOR_8888|GU_VERTEX_32BITF|GU_TRANSFORM_2D, count, 0, verts); } break; diff --git a/src/video/psp/SDL_pspvideo.c b/src/video/psp/SDL_pspvideo.c index a37e8b25d5..a5c86ecc3a 100644 --- a/src/video/psp/SDL_pspvideo.c +++ b/src/video/psp/SDL_pspvideo.c @@ -173,7 +173,7 @@ PSP_VideoInit(_THIS) display.current_mode = current_mode; SDL_AddDisplayMode(&display, ¤t_mode); - SDL_AddVideoDisplay(&display); + SDL_AddVideoDisplay(&display, SDL_FALSE); return 1; }