#define VOUT_MAX_WIDTH 320
#define VOUT_MAX_HEIGHT 240
static void *vout_buf;
-static int vout_width, vout_height;
+static int vout_width, vout_height, vout_offset;
static short __attribute__((aligned(4))) sndBuffer[2*44100/50];
memset(vout_buf, 0, 320 * 240 * 2);
vout_width = is_32cols ? 256 : 320;
PicoDrawSetOutBuf(vout_buf, vout_width * 2);
+
+ vout_height = line_count;
+ vout_offset = vout_width * start_line;
}
void emu_32x_startup(void)
info->timing.fps = Pico.m.pal ? 50 : 60;
info->timing.sample_rate = 44100;
info->geometry.base_width = 320;
- info->geometry.base_height = 240;
+ info->geometry.base_height = vout_height;
info->geometry.max_width = VOUT_MAX_WIDTH;
info->geometry.max_height = VOUT_MAX_HEIGHT;
- info->geometry.aspect_ratio = 4.0 / 3.0;
+ info->geometry.aspect_ratio = 0.0f;
}
/* savestates */
static bool disk_set_image_index(unsigned int index)
{
- cd_img_type cd_type;
+ enum cd_img_type cd_type;
int ret;
if (index >= sizeof(disks) / sizeof(disks[0]))
ret = -1;
cd_type = PicoCdCheck(disks[index].fname, NULL);
if (cd_type != CIT_NOT_CD)
- ret = Insert_CD(disks[index].fname, cd_type);
+ ret = cdd_load(disks[index].fname, cd_type);
if (ret != 0) {
lprintf("Load failed, invalid CD image?\n");
return 0;
PicoFrame();
- video_cb(vout_buf, vout_width, vout_height, vout_width * 2);
+ video_cb((short *)vout_buf + vout_offset,
+ vout_width, vout_height, vout_width * 2);
}
void retro_init(void)
#endif
PsndRate = 44100;
PicoAutoRgnOrder = 0x184; // US, EU, JP
- PicoCDBuffers = 0;
vout_width = 320;
vout_height = 240;