~ubuntu-branches/ubuntu/dapper/vice/dapper

« back to all changes in this revision

Viewing changes to src/arch/riscos/vsync.c

  • Committer: Bazaar Package Importer
  • Author(s): Zed Pobre
  • Date: 2004-08-26 13:35:51 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040826133551-gcje8j31q5cqgdq2
Tags: 1.14-3
Apply patch from Spiro Trikaliotis <vice@trikaliotis.net> to fix a
problem that some users were experiencing with a floating point
exception on startup related to the fullscreen option being enabled
during compile.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 * vsync.c - End-of-frame handling on RISC OS.
3
3
 *
4
4
 * Written by
5
 
 *  Andreas Dehmel <dehmel@forwiss.tu-muenchen.de>
 
5
 *  Andreas Dehmel <zarquon@t-online.de>
6
6
 *
7
7
 * This file is part of VICE, the Versatile Commodore Emulator.
8
8
 * See README for copyright notice.
27
27
#include "vice.h"
28
28
 
29
29
#include "wimp.h"
30
 
#include "drive/drive.h"
 
30
#include "machine.h"
 
31
#include "mousedrv.h"
31
32
#include "types.h"
32
33
#include "vsync.h"
33
34
#include "vsyncarch.h"
37
38
#include "ui.h"
38
39
#include "kbd.h"
39
40
#include "kbdbuf.h"
40
 
#include "joystick.h"
 
41
#include "joy.h"
41
42
#include "maincpu.h"
42
43
 
43
44
 
133
134
}
134
135
 
135
136
 
136
 
static resource_t resources[] = {
 
137
static const resource_t resources[] = {
137
138
  {"RefreshRate", RES_INTEGER, (resource_value_t)0,
138
 
    (resource_value_t*)&refresh_rate, set_refresh_rate, NULL },
 
139
    (void *)&refresh_rate, set_refresh_rate, NULL },
139
140
  {"WarpMode", RES_INTEGER, (resource_value_t)0,
140
 
    (resource_value_t*)&warp_mode_enabled, set_warp_mode, NULL },
 
141
    (void *)&warp_mode_enabled, set_warp_mode, NULL },
141
142
  {"PollEvery", RES_INTEGER, (resource_value_t)20,
142
 
    (resource_value_t*)&PollEvery, set_poll_every, NULL },
 
143
    (void *)&PollEvery, set_poll_every, NULL },
143
144
  {"SpeedEvery", RES_INTEGER, (resource_value_t)100,
144
 
    (resource_value_t*)&SpeedEvery, set_speed_every, NULL },
 
145
    (void *)&SpeedEvery, set_speed_every, NULL },
145
146
  {"Speed", RES_INTEGER, (resource_value_t)100,
146
 
    (resource_value_t*)&CurrentSpeedLimit, set_speed_limit, NULL },
 
147
    (void *)&CurrentSpeedLimit, set_speed_limit, NULL },
147
148
  {"MaxSkippedFrames", RES_INTEGER, (resource_value_t)MAX_SKIPPED_FRAMES,
148
 
    (resource_value_t*)&MaxSkippedFrames, set_max_skipped_frames, NULL },
 
149
    (void *)&MaxSkippedFrames, set_max_skipped_frames, NULL },
149
150
  {NULL}
150
151
};
151
152
 
202
203
#define VSYNC_TIME_DELTA(t,n) \
203
204
  ((10000*(n)) - FramesPerSecond*CurrentSpeedLimit*((t)-LastSpeed))
204
205
 
205
 
int vsync_do_vsync(int been_skipped)
 
206
int vsync_do_vsync(struct video_canvas_s *canvas, int been_skipped)
206
207
{
207
208
  int skip_next_frame = 0;
208
209
  int frame_delay;
266
267
  vsync_hook();
267
268
 
268
269
  joystick();
 
270
  mousedrv_sync();
269
271
 
270
272
  NumberOfFrames += 1 - frame_delay;
271
273
 
291
293
      RelativeSpeed = (10000 * NumberOfFrames) / (FramesPerSecond * (now - LastSpeed));
292
294
      ui_display_speed(RelativeSpeed, (100 * NumberOfRefreshes) / (now - LastSpeed), 0);
293
295
      LastSpeed = now; NumberOfFrames = 0; NumberOfRefreshes = 0;
294
 
      resources_get_value("VideoStandard", &val);
295
 
      FramesPerSecond = ((int)val == DRIVE_SYNC_PAL) ? 50 : 60;
 
296
      resources_get_value("MachineVideoStandard", (void *)&val);
 
297
      FramesPerSecond = ((int)val == MACHINE_SYNC_PAL) ? 50 : 60;
296
298
    }
297
299
  }
298
300