diff --git a/Makefile.ps2 b/Makefile.ps2 index 7f11a362ba..f4a4f0a8a0 100644 --- a/Makefile.ps2 +++ b/Makefile.ps2 @@ -1,8 +1,8 @@ BUILD_PRX = 0 -DEBUG = 1 +DEBUG = 0 HAVE_KERNEL_PRX = 0 HAVE_LOGGER = 0 -HAVE_FILE_LOGGER = 1 +HAVE_FILE_LOGGER = 0 HAVE_THREADS = 0 BIG_STACK = 0 WHOLE_ARCHIVE_LINK = 0 diff --git a/audio/drivers/ps2_audio.c b/audio/drivers/ps2_audio.c index 5874e1fa1b..7a515a4942 100644 --- a/audio/drivers/ps2_audio.c +++ b/audio/drivers/ps2_audio.c @@ -57,17 +57,15 @@ static void audioMainLoop(void *data) while (ps2->running) { WaitSema(ps2->lock); - if (fifo_read_avail(ps2->buffer) >= sizeof(out_tmp)) { - fifo_read(ps2->buffer, out_tmp, sizeof(out_tmp)); - } else { - memset(out_tmp, 0, sizeof(out_tmp)); - } + size_t size = MIN(fifo_read_avail(ps2->buffer), sizeof(out_tmp)); + fifo_read(ps2->buffer, out_tmp, size); + iSignalSema(ps2->lock); iSignalSema(ps2->cond_lock); int ret; - audsrv_wait_audio(sizeof(out_tmp)); - ret = audsrv_play_audio(out_tmp, sizeof(out_tmp)); + audsrv_wait_audio(size); + ret = audsrv_play_audio(out_tmp, size); } audsrv_stop_audio(); @@ -83,7 +81,7 @@ static void audioCreateThread(ps2_audio_t *ps2) { thread.stack=audioThreadStack; thread.stack_size=sizeof(audioThreadStack); thread.gp_reg=&_gp; - thread.initial_priority=0x50; + thread.initial_priority=0x40; thread.attr=thread.option=0; /*Backup the PS2 content to be used in the thread */ @@ -258,6 +256,27 @@ static bool ps2_audio_use_float(void *data) return false; } +static size_t psp_write_avail(void *data) +{ + size_t val; + ps2_audio_t* ps2 = (ps2_audio_t*)data; + + if (!ps2||!ps2->running) + return 0; + + WaitSema(ps2->lock); + size_t size = AUDIO_BUFFER - fifo_read_avail(ps2->buffer); + iSignalSema(ps2->lock); + + + return size; +} + +static size_t psp_buffer_size(void *data) +{ + return AUDIO_BUFFER ; +} + audio_driver_t audio_ps2 = { ps2_audio_init, ps2_audio_write, diff --git a/gfx/drivers/ps2_gfx.c b/gfx/drivers/ps2_gfx.c index 39a9053793..dd58af5cdd 100644 --- a/gfx/drivers/ps2_gfx.c +++ b/gfx/drivers/ps2_gfx.c @@ -44,11 +44,17 @@ typedef struct ps2_video static GSGLOBAL *init_GSGlobal(void) { GSGLOBAL *gsGlobal = gsKit_init_global(); - gsGlobal->PSM = GS_PSM_CT16; + gsGlobal->Mode = GS_MODE_NTSC; + gsGlobal->Interlace = GS_INTERLACED; + gsGlobal->Field = GS_FIELD; + gsGlobal->Width = 640; + gsGlobal->Height = 448; + + gsGlobal->PSM = GS_PSM_CT16; gsGlobal->PSMZ = GS_PSMZ_16; gsGlobal->DoubleBuffering = GS_SETTING_OFF; gsGlobal->ZBuffering = GS_SETTING_OFF; - gsGlobal->PrimAlphaEnable = GS_SETTING_OFF; + gsGlobal->PrimAlphaEnable = GS_SETTING_OFF; dmaKit_init(D_CTRL_RELE_OFF,D_CTRL_MFD_OFF, D_CTRL_STS_UNSPEC, D_CTRL_STD_OFF, D_CTRL_RCYC_8, 1 << DMA_CHANNEL_GIF);