static int init_raster(void) { raster_t *raster; raster = &ted.raster; raster->sprite_status = NULL; raster_line_changes_init(raster); if (raster_init(raster, TED_NUM_VMODES) < 0) { return -1; } raster_modes_set_idle_mode(raster->modes, TED_IDLE_MODE); resources_touch("TEDVideoCache"); ted_set_geometry(); if (ted_color_update_palette(raster->canvas) < 0) { log_error(ted.log, "Cannot load palette."); return -1; } raster_set_title(raster, machine_name); if (raster_realize(raster) < 0) { return -1; } raster->display_ystart = raster->display_ystop = -1; raster->display_xstart = TED_40COL_START_PIXEL; raster->display_xstop = TED_40COL_STOP_PIXEL; return 0; }
static int init_raster(void) { raster_t *raster; raster = &vic.raster; video_color_set_canvas(raster->canvas); raster->sprite_status = NULL; raster_line_changes_init(raster); if (raster_init(raster, VIC_NUM_VMODES) < 0) return -1; update_pixel_tables(raster); raster_modes_set_idle_mode(raster->modes, VIC_IDLE_MODE); resources_touch("VICVideoCache"); vic_set_geometry(); vic_color_update_palette(raster->canvas); raster_set_title(raster, machine_name); if (raster_realize(raster) < 0) return -1; raster->display_ystart = vic.first_displayed_line; raster->display_ystop = vic.first_displayed_line + 1; raster->display_xstart = 0; raster->display_xstop = 1; return 0; }
static int init_raster(void) { raster_t *raster; raster = &vdc.raster; raster->sprite_status = NULL; raster_line_changes_init(raster); if (raster_init(raster, VDC_NUM_VMODES) < 0) return -1; raster_modes_set_idle_mode(raster->modes, VDC_IDLE_MODE); resources_touch("VDCVideoCache"); vdc_set_geometry(); video_color_palette_internal(vdc.raster.canvas, &vdc_palette); if (video_color_update_palette(vdc.raster.canvas) < 0) { log_error(vdc.log, "Cannot load palette."); return -1; } raster_set_title(raster, machine_name); if (raster_realize(raster) < 0) return -1; raster->border_color = 0; return 0; }
raster_t *crtc_init(void) { raster_t *raster; DBG(("crtc_init")); crtc.log = log_open("CRTC"); crtc.raster_draw_alarm = alarm_new(maincpu_alarm_context, "CrtcRasterDraw", crtc_raster_draw_alarm_handler, NULL); clk_guard_add_callback(maincpu_clk_guard, clk_overflow_callback, NULL); raster = &crtc.raster; raster->sprite_status = NULL; raster_line_changes_init(raster); if (raster_init(raster, CRTC_NUM_VMODES) < 0) { return NULL; } raster_modes_set_idle_mode(raster->modes, CRTC_IDLE_MODE); resources_touch("CrtcVideoCache"); if (crtc_color_update_palette(raster->canvas) < 0) { log_error(crtc.log, "Cannot load palette."); return NULL; } if (!crtc.regs[0]) crtc.regs[0] = 49; if (!crtc.regs[1]) crtc.regs[1] = 40; if (!crtc.regs[2]) crtc.regs[2] = 45; if (!crtc.regs[4]) crtc.regs[4] = 30; if (!crtc.regs[6]) crtc.regs[6] = 25; if (!crtc.regs[9]) crtc.regs[9] = 7; /* FIXME */ crtc.screen_xoffset = 0; crtc.screen_yoffset = CRTC_SCREEN_BORDERHEIGHT; crtc.retrace_callback = NULL; crtc.hires_draw_callback = NULL; #if 0 log_debug("scr_width=%d, scr_height=%d", crtc.screen_width, crtc.screen_height); log_debug("tcols=%d, tlines=%d, bwidth=%d, bheight=%d", CRTC_SCREEN_TEXTCOLS(), CRTC_SCREEN_TEXTLINES(), CRTC_SCREEN_BORDERWIDTH, CRTC_SCREEN_BORDERHEIGHT); log_debug("displayed lines: first=%d, last=%d", CRTC_FIRST_DISPLAYED_LINE, CRTC_LAST_DISPLAYED_LINE); #endif crtc.initialized = 1; crtc_update_window(); raster_set_title(raster, machine_name); if (raster_realize(raster) < 0) { return NULL; } crtc_update_chargen_rel(); crtc_update_disp_char(); crtc_reset_screen_ptr(); crtc_draw_init(); crtc_reset(); /* raster->display_ystart = CRTC_SCREEN_BORDERHEIGHT; raster->display_ystop = crtc.screen_height - 2 * CRTC_SCREEN_BORDERHEIGHT; raster->display_xstart = CRTC_SCREEN_BORDERWIDTH; raster->display_xstop = crtc.screen_width - 2 * CRTC_SCREEN_BORDERWIDTH; */ resources_touch("CrtcDoubleSize"); return &crtc.raster; }