Thread: [Fuse-for-macosx-commits] SF.net SVN: fuse-for-macosx: [249] vendor/fuse/current
Brought to you by:
fredm
|
From: <fr...@us...> - 2006-12-17 13:30:53
|
Revision: 249
http://svn.sourceforge.net/fuse-for-macosx/?rev=249&view=rev
Author: fredm
Date: 2006-12-17 05:30:52 -0800 (Sun, 17 Dec 2006)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
vendor/fuse/current/debugger/breakpoint.c
vendor/fuse/current/hacking/ChangeLog
vendor/fuse/current/machine.c
vendor/fuse/current/man/fuse.1
vendor/fuse/current/ui/sdl/sdljoystick.c
vendor/fuse/current/ui/xlib/xdisplay.c
vendor/fuse/current/widget/widget.c
Modified: vendor/fuse/current/debugger/breakpoint.c
===================================================================
--- vendor/fuse/current/debugger/breakpoint.c 2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/debugger/breakpoint.c 2006-12-17 13:30:52 UTC (rev 249)
@@ -1,7 +1,7 @@
/* breakpoint.c: a debugger breakpoint
Copyright (c) 2002-2004 Philip Kendall
- $Id: breakpoint.c,v 1.7 2004/06/16 14:46:34 pak21 Exp $
+ $Id: breakpoint.c,v 1.8 2006/12/15 20:50:47 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -440,11 +440,11 @@
found++;
+ free( ptr->data );
+
debugger_breakpoints = g_slist_remove( debugger_breakpoints, ptr->data );
if( debugger_mode == DEBUGGER_MODE_ACTIVE && !debugger_breakpoints )
debugger_mode = DEBUGGER_MODE_INACTIVE;
-
- free( ptr->data );
}
if( !found ) {
Modified: vendor/fuse/current/hacking/ChangeLog
===================================================================
--- vendor/fuse/current/hacking/ChangeLog 2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/hacking/ChangeLog 2006-12-17 13:30:52 UTC (rev 249)
@@ -1469,3 +1469,15 @@
specplus3e.c,tc2048.c,tc2068.c,ts2068.c},profile.c,settings-header.pl,
settings.dat,settings.pl,widget/roms.c: fallback to loading default ROM
if custom ROM is not found (Fred).
+20061126 ui/sdl/sdljoystick.c: fix joystick support in SDL UI (Fred).
+20061126 man/fuse.1: add a smidgeon of content about Interface I (Fred).
+20061202 widget/widget.c: guard against the double free on the options dialog
+ (Fred).
+20061202 widget/widget.c: use checkbox instead of "On/Off" text in widget UIs
+ (patch #1309374) (Gergely Szasz).
+20061202 man/fuse.1: add some more TS2068 stuff (Fred).
+20061213 ui/xlib/xdisplay.c: fix compilation.
+20061215 debugger/breakpoint.c: fix segfault on "clear" command (thanks,
+ Stuart Brady)
+20061217 machine.c: load rom into correct memory bank (fixes If1 ROM paging)
+ (Fred).
Modified: vendor/fuse/current/machine.c
===================================================================
--- vendor/fuse/current/machine.c 2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/machine.c 2006-12-17 13:30:52 UTC (rev 249)
@@ -1,7 +1,7 @@
/* machine.c: Routines for handling the various machine types
Copyright (c) 1999-2005 Philip Kendall
- $Id: machine.c,v 1.117 2006/10/21 05:28:33 fredm Exp $
+ $Id: machine.c,v 1.118 2006/12/17 12:47:01 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -326,10 +326,10 @@
const char *filename, const char *fallback,
size_t expected_length )
{
- int retval = machine_load_rom_bank_internal( memory_map_rom, which, page_num,
+ int retval = machine_load_rom_bank_internal( bank_map, which, page_num,
filename, expected_length );
if( retval && fallback )
- retval = machine_load_rom_bank_internal( memory_map_rom, which, page_num,
+ retval = machine_load_rom_bank_internal( bank_map, which, page_num,
fallback, expected_length );
return retval;
}
Modified: vendor/fuse/current/man/fuse.1
===================================================================
--- vendor/fuse/current/man/fuse.1 2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/man/fuse.1 2006-12-17 13:30:52 UTC (rev 249)
@@ -58,7 +58,8 @@
the old DAT-file variant is not. DSK disk images are supported when
emulating a +3, TRD and SCL disk images are supported when emulating
a Pentagon or Scorpion and DCK cartridge images are supported when
-emulating a TC2068. Interface II ROM cartridges are also supported.
+emulating a Timex 2068 variant. Interface II ROM cartridges are also
+supported.
.PP
Finally, there is also support for reading and writing the RZX input recording
format.
@@ -181,8 +182,8 @@
.PP
.I "\-\-dock file"
.RS
-Insert the specified file into the emulated Timex TC2068 dock; also select
-the TC2068 on startup if available.
+Insert the specified file into the emulated Timex 2068 variant dock;
+also select the TC2068 on startup if available.
.RE
.PP
.I "\-\-embed\-snapshot"
@@ -269,6 +270,13 @@
Insert the specified file into the emulated Interface II.
.RE
.PP
+.I \-\-interface1
+.RS
+Emulate a Sinclair Interface I. Same as the Peripherals Options dialog's
+.I "Interface I"
+option.
+.RE
+.PP
.I \-\-interface2
.RS
Emulate a Sinclair Interface II. Same as the Peripherals Options dialog's
@@ -345,8 +353,10 @@
.IR plus3 ,
.IR 2048 ,
.IR 2068 ,
+.IR ts2068 ,
+.IR pentagon ,
and
-.IR pentagon .
+.IR scorpion .
.RE
.PP
.I "\-p file"
@@ -1246,6 +1256,15 @@
it successfully opens one. The first of these is preferred since (at least on
Linux, with a 2.6-series kernel) any type of mouse can be used and any
connected mouse may be used.
+.PP
+.I "Interface I"
+.RS
+If this option is selected, Fuse will emulate the simple Sinclair
+Interface I, and allow microdrive cartriges to be
+connected and disconnected via the
+.I "Media, Interface I, Microdrive"
+menus. It also enables support for the Interface I RS-232 and Sinclair
+network interfaces.
.RE
.PP
.I "Interface II"
@@ -1458,8 +1477,8 @@
.br
.I Timex 2
.RS
-The `left' and `right' joysticks as attached to the TC2068's built-in
-joystick interface.
+The `left' and `right' joysticks as attached to the Timex 2068 variant's
+built-in joystick interface.
.RE
.RE
.PP
@@ -1524,9 +1543,11 @@
.RS
Choose a type of Spectrum to emulate. An brief overview of the
Sinclair, Amstrad and Timex can be found at
-.IR "http://www.nvg.ntnu.no/sinclair/computers/zxspectrum/zxspectrum.htm" ,
+.IR "http://www.nvg.ntnu.no/sinclair/computers/zxspectrum/zxspectrum.htm"
while more technical information can be found at
-.IR "http://www.worldofspectrum.org/faq/reference/reference.htm" .
+.IR "http://www.worldofspectrum.org/faq/reference/reference.htm" ,
+and
+.IR "http://www.worldofspectrum.org/faq/reference/tmxreference.htm" .
.PP
.I "Spectrum 16K"
.br
@@ -1570,10 +1591,12 @@
.br
.I "Timex TC2068"
.RS
-The variants of the Spectrum as released by Timex in Portugal. See
-.I "http://www.worldofspectrum.org/faq/reference/tmxreference.htm"
-for more details.
+The variants of the Spectrum as released by Timex in Portugal.
.RE
+.I "Timex TS2048"
+.RS
+The variant of the Spectrum released by Timex in North America.
+.RE
.PP
.I "Pentagon 128K"
.br
@@ -1792,14 +1815,14 @@
.PP
.I "Media, Cartridge, Timex Dock, Insert..."
.RS
-Insert a cartridge into the TC2068's dock. This will cause the
-emulated machine to be changed to the TC2068 (if it wasn't already)
-and reset.
+Insert a cartridge into the Timex 2068 dock. This will cause the
+emulated machine to be changed to the TC2068 (if it wasn't already
+a 2068 variant) and reset.
.RE
.PP
.I "Media, Cartridge, Timex Dock, Eject"
.RS
-Remove the cartridge from the TC2068's dock. This will cause the
+Remove the cartridge from the Timex 2068 dock. This will cause the
emulated machine to be reset.
.RE
.PP
@@ -2090,7 +2113,7 @@
printers, three of which are supported by Fuse. Different printers are
made available for the different models:
.TP
-.IR 16 ", " 48 ", " TC2048 ", " TC2068
+.IR 16 ", " 48 ", " TC2048 ", " TC2068 ", " TS2068
ZX Printer
.TP
.IR 128 / +2 / Pentagon
@@ -2709,9 +2732,9 @@
.PP
Alexander Yurchenko wrote the OpenBSD/Solaris-specific sound code.
.PP
-Fredrick Meunier wrote the TC2048, Pentagon and Spectrum SE support as
-well as maintaining the OS X port and importing the graphics filter
-code.
+Fredrick Meunier wrote the TC2048, TS2068, Pentagon and Spectrum SE
+support as well as maintaining the OS X port and importing the
+graphics filter code.
.PP
Ludvig Strigeus and The ScummVM project wrote the original graphics
filter code.
Modified: vendor/fuse/current/ui/sdl/sdljoystick.c
===================================================================
--- vendor/fuse/current/ui/sdl/sdljoystick.c 2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/ui/sdl/sdljoystick.c 2006-12-17 13:30:52 UTC (rev 249)
@@ -1,7 +1,7 @@
/* sdljoystick.c: routines for dealing with the SDL joystick
Copyright (c) 2003-2004 Darren Salt, Fredrick Meunier, Philip Kendall
- $Id: sdljoystick.c,v 1.7 2004/06/18 21:53:22 pak21 Exp $
+ $Id: sdljoystick.c,v 1.8 2006/11/26 03:26:19 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -53,10 +53,16 @@
int
ui_joystick_init( void )
{
- int retval = SDL_NumJoysticks();
+ int error, retval;
- SDL_InitSubSystem( SDL_INIT_JOYSTICK );
+ error = SDL_InitSubSystem( SDL_INIT_JOYSTICK );
+ if ( error ) {
+ ui_error( UI_ERROR_ERROR, "failed to initialise joystick subsystem" );
+ return 0;
+ }
+ retval = SDL_NumJoysticks();
+
if( retval >= 2 ) {
retval = 2;
Modified: vendor/fuse/current/ui/xlib/xdisplay.c
===================================================================
--- vendor/fuse/current/ui/xlib/xdisplay.c 2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/ui/xlib/xdisplay.c 2006-12-17 13:30:52 UTC (rev 249)
@@ -1,7 +1,7 @@
/* xdisplay.c: Routines for dealing with drawing the Speccy's screen via Xlib
Copyright (c) 2000-2005 Philip Kendall, Darren Salt
- $Id: xdisplay.c,v 1.53 2006/09/17 00:56:20 fredm Exp $
+ $Id: xdisplay.c,v 1.54 2006/12/13 22:01:04 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -452,7 +452,7 @@
scaled_x = scale * x; scaled_y = scale * y;
/* Create scaled image */
- scaler_proc16( (libspectrum_byte*)&xdisplay_image[y][x], display_pitch,
+ scaler_proc16( (libspectrum_byte*)&xdisplay_image[y][x], xdisplay_pitch,
(libspectrum_byte*)&scaled_image[scaled_y][scaled_x],
scaled_pitch, w, h );
Modified: vendor/fuse/current/widget/widget.c
===================================================================
--- vendor/fuse/current/widget/widget.c 2006-12-17 11:37:47 UTC (rev 248)
+++ vendor/fuse/current/widget/widget.c 2006-12-17 13:30:52 UTC (rev 249)
@@ -1,7 +1,7 @@
/* widget.c: Simple dialog boxes for all user interfaces.
Copyright (c) 2001-2005 Matan Ziv-Av, Philip Kendall, Russell Marks
- $Id: widget.c,v 1.111 2006/09/17 00:56:20 fredm Exp $
+ $Id: widget.c,v 1.113 2006/12/02 03:24:17 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -315,6 +315,28 @@
widget_putpixel( x + mx, y + my, col );
}
+void widget_print_checkbox( int x, int y, int value )
+{
+ static const int CHECK_COLOR=7;
+ int z;
+
+ y += 2;
+ x += 6;
+ widget_rectangle( x, y - 1, 3, 3, WIDGET_COLOUR_BACKGROUND );
+ widget_rectangle( x - 5, y, 5, 5, 0 );
+ widget_rectangle( x - 4, y + 1, 3, 3, WIDGET_COLOUR_BACKGROUND );
+ if( value ) { /* checked */
+ for( z = -1; z < 3; z++ ) {
+ widget_putpixel( x - z, y + z, CHECK_COLOR );
+ widget_putpixel( x - z + 1, y + z, CHECK_COLOR );
+ }
+ widget_putpixel( x - z + 1, y + z, CHECK_COLOR );
+ widget_putpixel( x - z, y + z - 1, CHECK_COLOR );
+ widget_putpixel( x - z, y + z - 2, CHECK_COLOR );
+ widget_putpixel( x - z - 1, y + z - 2, CHECK_COLOR );
+ }
+}
+
/* Arrows for any scrollable widget */
void
widget_up_arrow( int x, int y, int colour )
@@ -566,7 +588,10 @@
int widget_options_print_value( int number, int value )
{
- return widget_options_print_data( number, value ? "On" : "Off" );
+ widget_rectangle( 233, number * 8 + 28, 7, 8, WIDGET_COLOUR_BACKGROUND );
+ widget_print_checkbox( 233, number * 8 + 28, value );
+ widget_display_rasters( number * 8 + 28, 8 );
+ return 0;
}
static int widget_options_print_data( int number, const char *string )
@@ -599,6 +624,7 @@
if( finished == WIDGET_FINISHED_OK ) {
error = settings_copy( &settings_current, &widget_options_settings );
settings_free( &widget_options_settings );
+ memset( &widget_options_settings, 0, sizeof( settings_info ) );
if( error ) return error;
/* Bring the peripherals list into sync with the new options */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-02-04 11:16:18
|
Revision: 298
http://svn.sourceforge.net/fuse-for-macosx/?rev=298&view=rev
Author: fredm
Date: 2007-02-04 03:14:46 -0800 (Sun, 04 Feb 2007)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
vendor/fuse/current/ChangeLog
vendor/fuse/current/Makefile.am
vendor/fuse/current/README
vendor/fuse/current/autogen.sh
vendor/fuse/current/ay.c
vendor/fuse/current/ay.h
vendor/fuse/current/compat/Makefile.am
vendor/fuse/current/compat/dirname.c
vendor/fuse/current/compat.h
vendor/fuse/current/configure.in
vendor/fuse/current/dck.c
vendor/fuse/current/dck.h
vendor/fuse/current/debugger/Makefile.am
vendor/fuse/current/debugger/breakpoint.c
vendor/fuse/current/debugger/breakpoint.h
vendor/fuse/current/debugger/command.c
vendor/fuse/current/debugger/commandl.l
vendor/fuse/current/debugger/commandy.y
vendor/fuse/current/debugger/debugger.c
vendor/fuse/current/debugger/debugger.h
vendor/fuse/current/debugger/debugger_internals.h
vendor/fuse/current/debugger/disassemble.c
vendor/fuse/current/debugger/expression.c
vendor/fuse/current/display.c
vendor/fuse/current/display.h
vendor/fuse/current/divide.c
vendor/fuse/current/divide.h
vendor/fuse/current/event.c
vendor/fuse/current/event.h
vendor/fuse/current/fuse.c
vendor/fuse/current/fuse.h
vendor/fuse/current/hacking/ChangeLog
vendor/fuse/current/hacking/Makefile.am
vendor/fuse/current/hacking/cvs-tags
vendor/fuse/current/ide.c
vendor/fuse/current/ide.h
vendor/fuse/current/if1.c
vendor/fuse/current/if1.h
vendor/fuse/current/if2.c
vendor/fuse/current/if2.h
vendor/fuse/current/input.c
vendor/fuse/current/input.h
vendor/fuse/current/joystick.c
vendor/fuse/current/joystick.h
vendor/fuse/current/keyboard.c
vendor/fuse/current/keyboard.h
vendor/fuse/current/keysyms.dat
vendor/fuse/current/keysyms.pl
vendor/fuse/current/lib/Makefile.am
vendor/fuse/current/loader.c
vendor/fuse/current/loader.h
vendor/fuse/current/machine.c
vendor/fuse/current/machine.h
vendor/fuse/current/machines/Makefile.am
vendor/fuse/current/machines/machines.h
vendor/fuse/current/machines/pentagon.c
vendor/fuse/current/machines/scorpion.c
vendor/fuse/current/machines/scorpion.h
vendor/fuse/current/machines/spec128.c
vendor/fuse/current/machines/spec128.h
vendor/fuse/current/machines/spec16.c
vendor/fuse/current/machines/spec48.c
vendor/fuse/current/machines/spec48.h
vendor/fuse/current/machines/spec_se.c
vendor/fuse/current/machines/specplus2.c
vendor/fuse/current/machines/specplus2a.c
vendor/fuse/current/machines/specplus3.c
vendor/fuse/current/machines/specplus3.h
vendor/fuse/current/machines/specplus3e.c
vendor/fuse/current/machines/tc2048.c
vendor/fuse/current/machines/tc2068.c
vendor/fuse/current/machines/tc2068.h
vendor/fuse/current/machines/ts2068.c
vendor/fuse/current/man/Makefile.am
vendor/fuse/current/man/fuse.1
vendor/fuse/current/memory.c
vendor/fuse/current/memory.h
vendor/fuse/current/menu.c
vendor/fuse/current/menu.h
vendor/fuse/current/menu_data.c
vendor/fuse/current/menu_data.pl
vendor/fuse/current/periph.c
vendor/fuse/current/periph.h
vendor/fuse/current/perl/Fuse/Dialog.pm
vendor/fuse/current/perl/Fuse/Makefile.am
vendor/fuse/current/perl/Fuse.pm
vendor/fuse/current/perl/Makefile.am
vendor/fuse/current/perl/cpp-perl.pl
vendor/fuse/current/pokefinder/Makefile.am
vendor/fuse/current/pokefinder/pokefinder.c
vendor/fuse/current/pokefinder/pokefinder.h
vendor/fuse/current/printer.c
vendor/fuse/current/printer.h
vendor/fuse/current/profile.c
vendor/fuse/current/profile.h
vendor/fuse/current/psg.c
vendor/fuse/current/psg.h
vendor/fuse/current/roms/Makefile.am
vendor/fuse/current/rzx.c
vendor/fuse/current/rzx.h
vendor/fuse/current/scld.c
vendor/fuse/current/screenshot.c
vendor/fuse/current/screenshot.h
vendor/fuse/current/settings-header.pl
vendor/fuse/current/settings.dat
vendor/fuse/current/settings.pl
vendor/fuse/current/simpleide.c
vendor/fuse/current/slt.c
vendor/fuse/current/slt.h
vendor/fuse/current/snapshot.c
vendor/fuse/current/snapshot.h
vendor/fuse/current/sound/Makefile.am
vendor/fuse/current/sound/aosound.c
vendor/fuse/current/sound/dxsound.c
vendor/fuse/current/sound/lowlevel.h
vendor/fuse/current/sound/sdlsound.c
vendor/fuse/current/sound/sfifo.c
vendor/fuse/current/sound.c
vendor/fuse/current/sound.h
vendor/fuse/current/spectrum.c
vendor/fuse/current/spectrum.h
vendor/fuse/current/tape.c
vendor/fuse/current/tape.h
vendor/fuse/current/timer.c
vendor/fuse/current/timer.h
vendor/fuse/current/trdos.c
vendor/fuse/current/trdos.h
vendor/fuse/current/ui/Makefile.am
vendor/fuse/current/ui/aalib/Makefile.am
vendor/fuse/current/ui/aalib/aalibdisplay.c
vendor/fuse/current/ui/aalib/aalibkeyboard.c
vendor/fuse/current/ui/aalib/aalibkeyboard.h
vendor/fuse/current/ui/aalib/aalibui.c
vendor/fuse/current/ui/aalib/aalibui.h
vendor/fuse/current/ui/aalib/error.c
vendor/fuse/current/ui/fb/Makefile.am
vendor/fuse/current/ui/fb/fbdisplay.c
vendor/fuse/current/ui/fb/fbdisplay.h
vendor/fuse/current/ui/fb/fbjoystick.c
vendor/fuse/current/ui/fb/fbkeyboard.c
vendor/fuse/current/ui/fb/fbkeyboard.h
vendor/fuse/current/ui/fb/fbui.c
vendor/fuse/current/ui/ggi/Makefile.am
vendor/fuse/current/ui/ggi/ggi_internals.h
vendor/fuse/current/ui/ggi/ggidisplay.c
vendor/fuse/current/ui/ggi/ggikeyboard.c
vendor/fuse/current/ui/ggi/ggiui.c
vendor/fuse/current/ui/gtk/Makefile.am
vendor/fuse/current/ui/gtk/binary.c
vendor/fuse/current/ui/gtk/browse.c
vendor/fuse/current/ui/gtk/confirm.c
vendor/fuse/current/ui/gtk/debugger.c
vendor/fuse/current/ui/gtk/fileselector.c
vendor/fuse/current/ui/gtk/gtkdisplay.c
vendor/fuse/current/ui/gtk/gtkinternals.h
vendor/fuse/current/ui/gtk/gtkjoystick.c
vendor/fuse/current/ui/gtk/gtkkeyboard.c
vendor/fuse/current/ui/gtk/gtkui.c
vendor/fuse/current/ui/gtk/memory.c
vendor/fuse/current/ui/gtk/options-header.pl
vendor/fuse/current/ui/gtk/options.pl
vendor/fuse/current/ui/gtk/picture.c
vendor/fuse/current/ui/gtk/pixmaps.c
vendor/fuse/current/ui/gtk/pokefinder.c
vendor/fuse/current/ui/gtk/rollback.c
vendor/fuse/current/ui/gtk/roms.c
vendor/fuse/current/ui/gtk/statusbar.c
vendor/fuse/current/ui/gtk/stock.c
vendor/fuse/current/ui/options.dat
vendor/fuse/current/ui/scaler/Makefile.am
vendor/fuse/current/ui/scaler/scaler.c
vendor/fuse/current/ui/scaler/scaler.h
vendor/fuse/current/ui/scaler/scaler_internals.h
vendor/fuse/current/ui/scaler/scalers.c
vendor/fuse/current/ui/sdl/Makefile.am
vendor/fuse/current/ui/sdl/sdldisplay.c
vendor/fuse/current/ui/sdl/sdldisplay.h
vendor/fuse/current/ui/sdl/sdljoystick.c
vendor/fuse/current/ui/sdl/sdljoystick.h
vendor/fuse/current/ui/sdl/sdlkeyboard.c
vendor/fuse/current/ui/sdl/sdlkeyboard.h
vendor/fuse/current/ui/sdl/sdlui.c
vendor/fuse/current/ui/svga/Makefile.am
vendor/fuse/current/ui/svga/svgadisplay.c
vendor/fuse/current/ui/svga/svgadisplay.h
vendor/fuse/current/ui/svga/svgajoystick.c
vendor/fuse/current/ui/svga/svgakeyboard.c
vendor/fuse/current/ui/svga/svgakeyboard.h
vendor/fuse/current/ui/svga/svgaui.c
vendor/fuse/current/ui/ui.h
vendor/fuse/current/ui/uidisplay.h
vendor/fuse/current/ui/uijoystick.c
vendor/fuse/current/ui/uijoystick.h
vendor/fuse/current/ui/win32/Makefile.am
vendor/fuse/current/ui/win32/debugger.c
vendor/fuse/current/ui/win32/debugger.h
vendor/fuse/current/ui/win32/debugger.rc
vendor/fuse/current/ui/win32/error.c
vendor/fuse/current/ui/win32/keysyms.c
vendor/fuse/current/ui/win32/menu_data.c
vendor/fuse/current/ui/win32/menu_data.h
vendor/fuse/current/ui/win32/menu_data.rc
vendor/fuse/current/ui/win32/pokefinder.c
vendor/fuse/current/ui/win32/pokefinder.h
vendor/fuse/current/ui/win32/pokefinder.rc
vendor/fuse/current/ui/win32/statusbar.c
vendor/fuse/current/ui/win32/win32display.c
vendor/fuse/current/ui/win32/win32display.h
vendor/fuse/current/ui/win32/win32internals.h
vendor/fuse/current/ui/win32/win32keyboard.c
vendor/fuse/current/ui/win32/win32keyboard.h
vendor/fuse/current/ui/win32/win32ui.c
vendor/fuse/current/ui/win32/win32ui.rc
vendor/fuse/current/ui/xlib/Makefile.am
vendor/fuse/current/ui/xlib/xdisplay.c
vendor/fuse/current/ui/xlib/xdisplay.h
vendor/fuse/current/ui/xlib/xerror.c
vendor/fuse/current/ui/xlib/xjoystick.c
vendor/fuse/current/ui/xlib/xkeyboard.c
vendor/fuse/current/ui/xlib/xkeyboard.h
vendor/fuse/current/ui/xlib/xui.c
vendor/fuse/current/ui/xlib/xui.h
vendor/fuse/current/ui.c
vendor/fuse/current/uidisplay.c
vendor/fuse/current/ula.c
vendor/fuse/current/ula.h
vendor/fuse/current/utils.c
vendor/fuse/current/utils.h
vendor/fuse/current/widget/Makefile.am
vendor/fuse/current/widget/browse.c
vendor/fuse/current/widget/debugger.c
vendor/fuse/current/widget/error.c
vendor/fuse/current/widget/filesel.c
vendor/fuse/current/widget/menu.c
vendor/fuse/current/widget/options-header.pl
vendor/fuse/current/widget/options.pl
vendor/fuse/current/widget/picture.c
vendor/fuse/current/widget/roms.c
vendor/fuse/current/widget/select.c
vendor/fuse/current/widget/text.c
vendor/fuse/current/widget/widget.c
vendor/fuse/current/widget/widget.h
vendor/fuse/current/widget/widget_internals.h
vendor/fuse/current/z80/Makefile.am
vendor/fuse/current/z80/coretest.c
vendor/fuse/current/z80/harness.pl
vendor/fuse/current/z80/tests/Makefile.am
vendor/fuse/current/z80/z80.c
vendor/fuse/current/z80/z80.h
vendor/fuse/current/z80/z80.pl
vendor/fuse/current/z80/z80_macros.h
vendor/fuse/current/z80/z80_ops.c
vendor/fuse/current/zxatasp.c
vendor/fuse/current/zxatasp.h
vendor/fuse/current/zxcf.c
vendor/fuse/current/zxcf.h
Added Paths:
-----------
vendor/fuse/current/sound/coreaudiosound.c
Modified: vendor/fuse/current/ChangeLog
===================================================================
--- vendor/fuse/current/ChangeLog 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/ChangeLog 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,30 +1,56 @@
-2005-??-?? Philip Kendall <pak...@sr...>
+2007-??-?? Philip Kendall <phi...@sh...>
+ * Fuse 0.8.0 released
+
* New features:
+ * Loader improvements: automatically run at full speed while
+ a loader is in progress and automatically start/stop the tape
+ when the start/end of a loader is detected (Philip Kendall).
* RZX 'rollback' support (Philip Kendall).
+ * DivIDE support (Matthew Westcott)
+ * Interface I and microdrive emulation (Gergely Szasz).
* TS2068 support (Fredrick Meunier).
- * Interface I and microdrive emulation (Gergely Szasz).
* Kempston mouse emulation (Darren Salt).
+ * TZX generalized data block (0x19) support (Philip Kendall).
+ * Much improved widget UI, including allowing selection of
+ filenames (Darren Salt, Gergely Szasz).
* Allow SDL full screen mode to be used (Darren Salt).
* Add the ability to save 'movies' as collections of screenshots
(Gergely Szasz).
* Widget pokefinder (Darren Salt).
* Add a simple code profiler (Philip Kendall).
* New libao sound driver (Gergely Szasz).
+ * New CoreAudio sound driver (Fredrick Meunier).
+ * New PALTV 1-3x and TV3x graphics scalers (Gergely Szasz).
* Emulation core improvements:
* Improved screen rendering code (now character accurate rather
- than line accurate) (Philip Kendall).
+ than line accurate) (Philip Kendall, Fredrick Meunier).
+ * Corrections to write ordering and contention for EX (SP),HL,
+ EX (SP),IX and EX (SP),IY (Philip Kendall; thanks, Mark
+ Woodmass).
+ * Corrections to contention for OTIR and OTDR (Philip Kendall;
+ thanks, Mark Woodmass).
+ * IR contention (Philip Kendall; thanks, Mark Woodmass).
+ * Flag bits 3 and 5 are copied on all BIT instructions (Philip
+ Kendall; thanks, Mark Woodmass).
* Improved ULA emulation with respect to interrupt length
(thanks, Jon Needle, Ramsoft and Mark Woodmass) (Philip
Kendall).
+ * Fix timings of shifted no operation opcodes (Philip Kendall).
+ * An interrupt in IM 0 takes 13 tstates to acknowledge, not 12
+ (Philip Kendall).
* Improved speed control code (Fredrick Meunier).
* Miscellaneous:
- * Allow filenames to be selected from the widget UIs (Darren
- Salt).
* Add a 'save, don't save, cancel' confirmation dialog before any
changes to media are lost under the GTK+ UIs (Philip Kendall).
+ * On the Pentagon, page in the TR-DOS ROM on NMI, allowing the
+ snapshot function to work (Philip Kendall). On the Scorpion,
+ page in ROM 2, allowing the monitor to work (thanks, Erik
+ Kunze).
+ * Default snapshot format is now .szx rather than .z80 (Fredrick
+ Meunier)
* Store current joystick information in snapshots (Fredrick
Meunier).
* Optional use of doublescan modes in the framebuffer and
@@ -35,11 +61,8 @@
* Use stock button icons in the GTK+ 2.x UI (Darren Salt).
* Save/restore the 'issue 2 keyboard' flag from snapshots
(Philip Kendall).
- * Deactivate widget menu items when they are inappropriate
- (Darren Salt).
* Correctly quote '-' characters in the man page (needed for
UTF-8 environments) (Darren Salt, Stuart Brady).
- * Widget query confirmation dialog (Darren Salt).
* Use separate menus for controlling +3 and TR-DOS disks (Philip
Kendall).
* Fix behaviour of ZXATASP and ZXCF on reset (Garry Lancaster).
@@ -50,9 +73,13 @@
(Darren Salt).
* Various minor improvements to the framebuffer UI (Darren
Salt).
+ * Various fixes to allow compilation with gcc 4.x (Philip
+ Kendall).
- * Various other minor bugfixes (Fredrick Meunier, Philip Kendall,
- Mark Round, Darren Salt, Paul van der Laan).
+ * Various other minor bugfixes (Philip Kendall, Fredrick Meunier,
+ Jon Needle, Markus Oberhumer, Mark Round, Darren Salt, Gergely
+ Szasz, Paul van der Laan and other people to whom I apologise
+ for forgetting).
2004-07-16 Philip Kendall <pak...@sr...>
@@ -756,4 +783,4 @@
* Version 0.1.0 released.
-$Id: ChangeLog,v 1.42 2005/03/26 17:24:54 pak21 Exp $
+$Id: ChangeLog,v 1.46 2007/02/02 16:21:50 pak21 Exp $
Modified: vendor/fuse/current/Makefile.am
===================================================================
--- vendor/fuse/current/Makefile.am 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/Makefile.am 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 1999-2004 Philip Kendall
-## $Id: Makefile.am,v 1.118 2006/07/30 19:00:40 pak21 Exp $
+## $Id: Makefile.am,v 1.120 2007/02/02 16:21:50 pak21 Exp $
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
##
## Author contact information:
##
-## E-mail: pak...@sr...
-## Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+## E-mail: phi...@sh...
AUTOMAKE_OPTIONS = foreign
@@ -107,6 +106,7 @@
@GLIB_LIBS@ \
@PNG_LIBS@ \
@AO_LIBS@ \
+@COREAUDIO_LIBS@ \
@X_LIBS@ \
@XML_LIBS@ \
compat/libcompat.a
Modified: vendor/fuse/current/README
===================================================================
--- vendor/fuse/current/README 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/README 2007-02-04 11:14:46 UTC (rev 298)
@@ -136,7 +136,7 @@
the Usenet group 'comp.sys.sinclair', but do read the FAQ
( http://www.worldofspectrum.org/faq/index.html ) first!
-Philip Kendall <pak...@sr...>
+Philip Kendall <phi...@sh...>
16 July 2004
-$Id: README,v 1.39 2004/07/15 10:42:29 pak21 Exp $
+$Id: README,v 1.40 2007/02/02 16:21:50 pak21 Exp $
Modified: vendor/fuse/current/autogen.sh
===================================================================
--- vendor/fuse/current/autogen.sh 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/autogen.sh 2007-02-04 11:14:46 UTC (rev 298)
@@ -3,7 +3,7 @@
# autogen.sh: autotools invocation
# Copyright (c) 2004 Philip Kendall
-# $Id: autogen.sh,v 1.4 2005/12/24 16:18:18 pak21 Exp $
+# $Id: autogen.sh,v 1.5 2007/02/02 16:21:50 pak21 Exp $
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -21,8 +21,7 @@
# Author contact information:
-# E-mail: Philip Kendall <pak...@sr...>
-# Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+# E-mail: Philip Kendall <phi...@sh...>
# Exit on errors
set -e
Modified: vendor/fuse/current/ay.c
===================================================================
--- vendor/fuse/current/ay.c 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/ay.c 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
/* ay.c: AY-8-3912 routines
Copyright (c) 1999-2004 Philip Kendall
- $Id: ay.c,v 1.25 2004/06/15 09:48:40 pak21 Exp $
+ $Id: ay.c,v 1.26 2007/02/02 16:21:50 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
Author contact information:
- E-mail: pak...@sr...
- Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+ E-mail: phi...@sh...
*/
Modified: vendor/fuse/current/ay.h
===================================================================
--- vendor/fuse/current/ay.h 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/ay.h 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
/* ay.h: AY-8-3912 routines
Copyright (c) 1999-2004 Philip Kendall
- $Id: ay.h,v 1.15 2004/06/15 09:48:40 pak21 Exp $
+ $Id: ay.h,v 1.16 2007/02/02 16:21:50 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
Author contact information:
- E-mail: pak...@sr...
- Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+ E-mail: phi...@sh...
*/
Modified: vendor/fuse/current/compat/Makefile.am
===================================================================
--- vendor/fuse/current/compat/Makefile.am 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/compat/Makefile.am 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2003 Philip Kendall
-## $Id: Makefile.am,v 1.5 2004/03/28 09:55:50 pak21 Exp $
+## $Id: Makefile.am,v 1.6 2007/02/02 16:21:53 pak21 Exp $
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
##
## Author contact information:
##
-## E-mail: pak...@sr...
-## Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+## E-mail: phi...@sh...
AUTOMAKE_OPTIONS = foreign
Modified: vendor/fuse/current/compat/dirname.c
===================================================================
--- vendor/fuse/current/compat/dirname.c 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/compat/dirname.c 2007-02-04 11:14:46 UTC (rev 298)
@@ -20,8 +20,7 @@
Author contact information:
- E-mail: pak...@sr...
- Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+ E-mail: phi...@sh...
*/
Modified: vendor/fuse/current/compat.h
===================================================================
--- vendor/fuse/current/compat.h 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/compat.h 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
/* compat.h: various compatbility bits
Copyright (c) 2003 Philip Kendall
- $Id: compat.h,v 1.6 2004/04/11 10:13:22 pak21 Exp $
+ $Id: compat.h,v 1.7 2007/02/02 16:21:50 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
Author contact information:
- E-mail: pak...@sr...
- Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+ E-mail: phi...@sh...
*/
Modified: vendor/fuse/current/configure.in
===================================================================
--- vendor/fuse/current/configure.in 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/configure.in 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in,v 1.151 2005/03/06 05:30:27 fredm Exp $
+dnl $Id: configure.in,v 1.155 2007/02/02 16:21:50 pak21 Exp $
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
@@ -17,8 +17,7 @@
dnl
dnl Author contact information:
dnl
-dnl E-mail: pak...@sr...
-dnl Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+dnl E-mail: phi...@sh...
AC_INIT(fuse.c)
AM_CONFIG_HEADER(config.h)
@@ -397,8 +396,7 @@
AC_CHECK_LIB( ao, ao_open_live,
[AC_CHECK_HEADER(
ao/ao.h,
- [AC_DEFINE([USE_LIBAO], 1, [Defined if we're going to be using the instal
-ed libao]) AO_LIBS='-lao'],
+ [AC_DEFINE([USE_LIBAO], 1, [Defined if we're going to be using the installed libao]) AO_LIBS='-lao'],
[AC_MSG_WARN(ao/ao.h not found - no libao sound output)]
)],
[AC_MSG_WARN(ao_open_live not found - no libao sound output)]
@@ -406,6 +404,14 @@
AC_SUBST(AO_LIBS)
fi
+dnl Check if CoreAudio is available
+AC_CHECK_HEADER(
+ CoreAudio/AudioHardware.h,
+ [AC_DEFINE([USE_COREAUDIO], 1, [Defined if we're going to be using CoreAudio]) COREAUDIO_LIBS='-framework CoreAudio -framework AudioUnit -framework CoreServices'],
+ [AC_MSG_WARN(CoreAudio/AudioHardware.h not found - no CoreAudio sound output)]
+)
+AC_SUBST(COREAUDIO_LIBS)
+
dnl Are we supplying the ROMs or relying on another package?
AC_MSG_CHECKING(where to find the Spectrum ROM images)
AC_ARG_WITH(roms-dir,
Modified: vendor/fuse/current/dck.c
===================================================================
--- vendor/fuse/current/dck.c 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/dck.c 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
/* dck.c: dock snapshot (Warajevo .DCK) handling routines
Copyright (c) 2003-2004 Darren Salt, Fredrick Meunier, Philip Kendall
- $Id: dck.c,v 1.21 2004/05/25 10:05:05 fredm Exp $
+ $Id: dck.c,v 1.22 2007/02/02 16:21:50 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
Author contact information:
- Philip: pak...@sr...
- Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+ Philip: phi...@sh...
Darren: li...@yo...
Fred: fr...@sp...
Modified: vendor/fuse/current/dck.h
===================================================================
--- vendor/fuse/current/dck.h 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/dck.h 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
/* dck.c: dock snapshot (Warajevo .DCK) handling routines
Copyright (c) 2003 Darren Salt, Fredrick Meunier
- $Id: dck.h,v 1.2 2004/05/25 10:05:06 fredm Exp $
+ $Id: dck.h,v 1.3 2007/02/02 16:21:50 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
Author contact information:
- Philip: pak...@sr...
- Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+ Philip: phi...@sh...
Darren: li...@yo...
Fred: fr...@sp...
Modified: vendor/fuse/current/debugger/Makefile.am
===================================================================
--- vendor/fuse/current/debugger/Makefile.am 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/Makefile.am 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 2001-2004 Philip Kendall
-## $Id: Makefile.am,v 1.12 2004/07/09 17:38:06 pak21 Exp $
+## $Id: Makefile.am,v 1.13 2007/02/02 16:21:53 pak21 Exp $
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
##
## Author contact information:
##
-## E-mail: pak...@sr...
-## Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+## E-mail: phi...@sh...
AUTOMAKE_OPTIONS = foreign
Modified: vendor/fuse/current/debugger/breakpoint.c
===================================================================
--- vendor/fuse/current/debugger/breakpoint.c 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/breakpoint.c 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
/* breakpoint.c: a debugger breakpoint
Copyright (c) 2002-2004 Philip Kendall
- $Id: breakpoint.c,v 1.8 2006/12/15 20:50:47 pak21 Exp $
+ $Id: breakpoint.c,v 1.9 2007/02/02 16:21:53 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
Author contact information:
- E-mail: pak...@sr...
- Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+ E-mail: phi...@sh...
*/
Modified: vendor/fuse/current/debugger/breakpoint.h
===================================================================
--- vendor/fuse/current/debugger/breakpoint.h 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/breakpoint.h 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
/* breakpoint.h: a debugger breakpoint
Copyright (c) 2002-2004 Philip Kendall
- $Id: breakpoint.h,v 1.4 2004/05/14 22:05:57 pak21 Exp $
+ $Id: breakpoint.h,v 1.5 2007/02/02 16:21:53 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
Author contact information:
- E-mail: pak...@sr...
- Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+ E-mail: phi...@sh...
*/
Modified: vendor/fuse/current/debugger/command.c
===================================================================
--- vendor/fuse/current/debugger/command.c 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/command.c 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
/* command.c: Parse a debugger command
Copyright (c) 2002 Philip Kendall
- $Id: command.c,v 1.16 2003/12/02 14:56:32 pak21 Exp $
+ $Id: command.c,v 1.17 2007/02/02 16:21:53 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
Author contact information:
- E-mail: pak...@sr...
- Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+ E-mail: phi...@sh...
*/
Modified: vendor/fuse/current/debugger/commandl.l
===================================================================
--- vendor/fuse/current/debugger/commandl.l 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/commandl.l 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
/* commandl.l: Debugger command lexical scanner
Copyright (c) 2002 Philip Kendall
- $Id: commandl.l,v 1.36 2004/06/16 14:46:34 pak21 Exp $
+ $Id: commandl.l,v 1.37 2007/02/02 16:21:53 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
Author contact information:
- E-mail: pak...@sr...
- Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+ E-mail: phi...@sh...
*/
Modified: vendor/fuse/current/debugger/commandy.y
===================================================================
--- vendor/fuse/current/debugger/commandy.y 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/commandy.y 2007-02-04 11:14:46 UTC (rev 298)
@@ -1,7 +1,7 @@
/* commandy.y: Parse a debugger command
Copyright (c) 2002-2004 Philip Kendall
- $Id: commandy.y,v 1.42 2004/06/16 14:46:34 pak21 Exp $
+ $Id: commandy.y,v 1.43 2007/02/02 16:21:53 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
Author contact information:
- E-mail: pak...@sr...
- Postal address: 15 Crescent Road, Wokingham, Berks, RG40 2DB, England
+ E-mail: phi...@sh...
*/
Modified: vendor/fuse/current/debugger/debugger.c
===================================================================
--- vendor/fuse/current/debugger/debugger.c 2007-02-04 08:40:22 UTC (rev 297)
+++ vendor/fuse/current/debugger/de...
[truncated message content] |
|
From: <fr...@us...> - 2007-03-10 12:02:08
|
Revision: 309
http://svn.sourceforge.net/fuse-for-macosx/?rev=309&view=rev
Author: fredm
Date: 2007-03-10 04:02:05 -0800 (Sat, 10 Mar 2007)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
vendor/fuse/current/configure.in
vendor/fuse/current/display.c
vendor/fuse/current/fuse.c
vendor/fuse/current/hacking/ChangeLog
vendor/fuse/current/hacking/cvs-tags
vendor/fuse/current/if1.c
vendor/fuse/current/man/fuse.1
vendor/fuse/current/rzx.c
vendor/fuse/current/settings.dat
vendor/fuse/current/sound/aosound.c
vendor/fuse/current/sound/coreaudiosound.c
vendor/fuse/current/sound/sdlsound.c
vendor/fuse/current/sound.c
vendor/fuse/current/ui/gtk/gtkui.c
vendor/fuse/current/ui.c
vendor/fuse/current/utils.c
vendor/fuse/current/widget/filesel.c
Modified: vendor/fuse/current/configure.in
===================================================================
--- vendor/fuse/current/configure.in 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/configure.in 2007-03-10 12:02:05 UTC (rev 309)
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in,v 1.155 2007/02/02 16:21:50 pak21 Exp $
+dnl $Id: configure.in,v 1.155.2.1 2007/03/03 21:26:14 pak21 Exp $
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
@@ -388,9 +388,9 @@
dnl Check if a version of libao which supplies ao_open_live is available
AC_MSG_CHECKING(whether libao requested)
AC_ARG_WITH(libao,
-[ --without-libao don't use libao],
+[ --with-libao use libao for sound output],
if test "$withval" = no; then libao=no; else libao=yes; fi,
-libao=yes)
+libao=no)
AC_MSG_RESULT($libao)
if test "$libao" = yes; then
AC_CHECK_LIB( ao, ao_open_live,
Modified: vendor/fuse/current/display.c
===================================================================
--- vendor/fuse/current/display.c 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/display.c 2007-03-10 12:02:05 UTC (rev 309)
@@ -2,7 +2,7 @@
Copyright (c) 1999-2006 Philip Kendall, Thomas Harte, Witold Filipczyk
and Fredrick Meunier
- $Id: display.c,v 1.59 2007/02/02 16:21:50 pak21 Exp $
+ $Id: display.c,v 1.59.2.1 2007/03/06 11:39:47 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -651,7 +651,9 @@
*y = ( tstates - machine_current->line_times[ 0 ] ) /
machine_current->timings.tstates_per_line;
- *x = ( tstates - machine_current->line_times[ *y ] ) / 4;
+ if( *y >= 0 && *y <= DISPLAY_SCREEN_HEIGHT )
+ *x = ( tstates - machine_current->line_times[ *y ] ) / 4;
+ else *x = 0;
}
void
Modified: vendor/fuse/current/fuse.c
===================================================================
--- vendor/fuse/current/fuse.c 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/fuse.c 2007-03-10 12:02:05 UTC (rev 309)
@@ -1,7 +1,7 @@
/* fuse.c: The Free Unix Spectrum Emulator
Copyright (c) 1999-2005 Philip Kendall
- $Id: fuse.c,v 1.133 2007/02/02 16:21:51 pak21 Exp $
+ $Id: fuse.c,v 1.133.2.1 2007/02/17 17:12:29 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -113,6 +113,7 @@
const char *zxatasp_master, *zxatasp_slave;
const char *zxcf;
const char *divide_master, *divide_slave;
+ const char *mdr[8];
} start_files_t;
@@ -474,6 +475,15 @@
start_files->divide_master = settings_current.divide_master_file;
start_files->divide_slave = settings_current.divide_slave_file;
+ start_files->mdr[0] = settings_current.mdr_file;
+ start_files->mdr[1] = settings_current.mdr_file2;
+ start_files->mdr[2] = settings_current.mdr_file3;
+ start_files->mdr[3] = settings_current.mdr_file4;
+ start_files->mdr[4] = settings_current.mdr_file5;
+ start_files->mdr[5] = settings_current.mdr_file6;
+ start_files->mdr[6] = settings_current.mdr_file7;
+ start_files->mdr[7] = settings_current.mdr_file8;
+
return 0;
}
@@ -482,7 +492,7 @@
parse_nonoption_args( int argc, char **argv, int first_arg,
start_files_t *start_files )
{
- size_t i;
+ size_t i, j;
const char *filename;
utils_file file;
libspectrum_id_t type;
@@ -536,6 +546,15 @@
case LIBSPECTRUM_CLASS_SNAPSHOT:
start_files->snapshot = filename; break;
+ case LIBSPECTRUM_CLASS_MICRODRIVE:
+ for( j = 0; j < 8; j++ ) {
+ if( !start_files->mdr[j] ) {
+ start_files->mdr[j] = filename;
+ break;
+ }
+ }
+ break;
+
case LIBSPECTRUM_CLASS_TAPE:
start_files->tape = filename; break;
@@ -558,7 +577,7 @@
static int
do_start_files( start_files_t *start_files )
{
- int autoload, error;
+ int autoload, error, i;
/* Can't do both input recording and playback */
if( start_files->playback && start_files->recording ) {
@@ -637,6 +656,15 @@
if( error ) return error;
}
+ /* Microdrive cartridges */
+
+ for( i = 0; i < 8; i++ ) {
+ if( start_files->mdr[i] ) {
+ error = utils_open_file( start_files->mdr[i], autoload, NULL );
+ if( error ) return error;
+ }
+ }
+
/* IDE hard disk images */
if( start_files->simpleide_master ) {
Modified: vendor/fuse/current/hacking/ChangeLog
===================================================================
--- vendor/fuse/current/hacking/ChangeLog 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/hacking/ChangeLog 2007-03-10 12:02:05 UTC (rev 309)
@@ -1524,4 +1524,41 @@
20070202 BRANCH: Release-0_8_0-branch
20070202 TAG: Release-0_8_0-pre1 (Release-0_8_0-branch)
20070204 sound.c: don't disable sound completely if we don't enable sound
- after an unpause (fixes bug #1648246) (Fred).
+ after an unpause (fixes bug #1648246) (Release-0_8_0-branch) (Fred).
+20070204 rzx.c: use new libspectrum_rzx_playback_frame() API to allow
+ loading of snapshots (necessary for playing back RZX files made with
+ SPIN's "RZX Pause" feature).
+20070207 man/fuse.1: document that metacity needs --no-aspect-hint
+ (Thanks, Stuart Brady and dave in #spin) (Release-0_8_0-branch).
+20070208 rzx.c: ensure tstates is sane after RZX completion
+ (bug #1654165) (Release-0_8_0-branch).
+20070209 rzx.c: ensure tstates is sane after RZX desync
+ (Release-0_8_0-branch).
+20070210 sound/{coreaudiosound.c,sdlsound.c}: make sound fifo two frames in
+ size rather than a multiple of the sound fragment size, make sound
+ callbacks run after some sound is available, calculate SDL fragment
+ size based on machine speed and output frequency
+ (Release-0_8_0-branch) (Fred).
+20070217 widget/filesel.c: allow absolute pathnames to be used (fixes bug
+ #1651433) (Release-0_8_0-branch) (Gergely Szasz).
+20070217 sound/aosound.c: stop possible segfaults (part of bug #1659865)
+ (Release-0_8_0-branch) (Gergely Szasz).
+20070217 man/fuse.1: small ao improvements (rest of bug #1659865)
+ (Release-0_8_0-branch) (Gergely Szasz).
+20070217 fuse.c,if1.c,settings.dat,utils.c: allow microdrive cartridge images
+ to be used on startup (bug #1660099) (Release-0_8_0-branch)
+ (Gergely Szasz).
+20070303 settings.dat,man/fuse.1,ui/gtk/gtkui.c: new --strict-aspect-hint
+ option to improve situation with Metacity not being able to resize
+ or move GTK+ window (bug #1539655) (Release-0_8_0-branch).
+20070303 configure.in: don't use libao by default (bug #1668916)
+ (Release-0_8_0-branch).
+20070303 TAG: Release-0_8_0-pre2 (Release-0_8_0-branch)
+20070303 man/fuse.1: document --rom-* options (bug #1262547)
+ (Release-0_8_0-branch).
+20070304 ui.c: swap Kempston mouse buttons (bug #1507684)
+ (Release-0_8_0-branch).
+20070306 sound.c: don't leak memory for tape_buf (Release-0_8_0-branch) (Fred).
+20070306 display.c: don't overrun line_times array (Release-0_8_0-branch)
+ (Fred).
+20070310 man/fuse.1: add divide url (Release-0_8_0-branch) (Fred).
Modified: vendor/fuse/current/hacking/cvs-tags
===================================================================
--- vendor/fuse/current/hacking/cvs-tags 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/hacking/cvs-tags 2007-03-10 12:02:05 UTC (rev 309)
@@ -1,6 +1,6 @@
CVS tags for Fuse
-$Id: cvs-tags,v 1.32 2007/02/02 17:16:19 pak21 Exp $
+$Id: cvs-tags,v 1.32.2.1 2007/03/03 21:49:10 pak21 Exp $
| Release-0_3_1
| Release-0_3_2pre1
@@ -145,6 +145,7 @@
|
+-\
| | Release-0_8_0-pre1
+| | Release-0_8_0-pre2
| |
| | Release-0_8_0-branch
|
Modified: vendor/fuse/current/if1.c
===================================================================
--- vendor/fuse/current/if1.c 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/if1.c 2007-03-10 12:02:05 UTC (rev 309)
@@ -1,7 +1,7 @@
/* if2.c: Interface I handling routines
Copyright (c) 2004-2007 Gergely Szasz, Philip Kendall
- $Id: if1.c,v 1.14 2007/01/20 17:54:51 pak21 Exp $
+ $Id: if1.c,v 1.14.2.1 2007/02/17 17:12:29 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -788,8 +788,26 @@
void
if1_mdr_insert( const char *filename, int drive )
{
- microdrive_t *mdr = µdrive[drive];
+ microdrive_t *mdr;
+ int i;
+
+ if( drive == -1 ) { /* find an emtpty one */
+ for( i = 0; i < 8; i++ ) {
+ if( !microdrive[i].inserted ) {
+ drive = i;
+ break;
+ }
+ }
+ }
+
+ if( drive == -1 ) {
+ ui_error( UI_ERROR_ERROR,
+ "Cannot insert cartridge '%s', all microdrive loaded", filename );
+ return;
+ }
+ mdr = µdrive[drive];
+
if( mdr->inserted && if1_mdr_eject( NULL, drive ) ) {
ui_error( UI_ERROR_ERROR,
"New cartridge in drive, please eject manually" );
Modified: vendor/fuse/current/man/fuse.1
===================================================================
--- vendor/fuse/current/man/fuse.1 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/man/fuse.1 2007-03-10 12:02:05 UTC (rev 309)
@@ -83,15 +83,15 @@
.I \-\-aspect\-hint
.RS
Specify whether the GTK+ and Xlib user interfaces should `hint' to the
-window manager about the preferred aspect ratio for the top-level
+window manager about the preferred aspect ratio for the graphics
window, thus preventing resizing to non-square sizes which lead to
-Fuse not displaying correctly. However, with some window managers (for
-example
-.IR icewm (1))
-this prevents the window from being resized at all. (Enabled by
+Fuse not displaying correctly. This option has been observed to cause
+problems with some window managers when using the GTK+ UI which can
+prevent the window from being resized or moved at all. (Enabled by
default, but you can use
.RI ` \-\-no\-aspect\-hint '
-to disable).
+to disable). See also the
+.RI ` \-\-strict\-aspect\-hint ' option.
.RE
.PP
.I \-\-autosave\-settings
@@ -406,6 +406,102 @@
Specify an RZX file to begin recording to.
.RE
.PP
+.I "\-\-rom\-16 file"
+.br
+.I "\-\-rom\-48 file"
+.br
+.I "\-\-rom\-128-0 file"
+.br
+.I "\-\-rom\-128-1 file"
+.br
+.I "\-\-rom\-plus2-0 file"
+.br
+.I "\-\-rom\-plus2-1 file"
+.br
+.I "\-\-rom\-plus2a-0 file"
+.br
+.I "\-\-rom\-plus2a-1 file"
+.br
+.I "\-\-rom\-plus2a-2 file"
+.br
+.I "\-\-rom\-plus2a-3 file"
+.br
+.I "\-\-rom\-plus3-0 file"
+.br
+.I "\-\-rom\-plus3-1 file"
+.br
+.I "\-\-rom\-plus3-2 file"
+.br
+.I "\-\-rom\-plus3-3 file"
+.br
+.I "\-\-rom\-plus3e-0 file"
+.br
+.I "\-\-rom\-plus3e-1 file"
+.br
+.I "\-\-rom\-plus3e-2 file"
+.br
+.I "\-\-rom\-plus3e-3 file"
+.br
+.I "\-\-rom\-tc2048 file"
+.br
+.I "\-\-rom\-tc2068-0 file"
+.br
+.I "\-\-rom\-tc2068-1 file"
+.br
+.I "\-\-rom\-ts2068-0 file"
+.br
+.I "\-\-rom\-ts2068-1 file"
+.br
+.I "\-\-rom\-pentagon-0 file"
+.br
+.I "\-\-rom\-pentagon-1 file"
+.br
+.I "\-\-rom\-pentagon-2 file"
+.br
+.I "\-\-rom\-scorpion-0 file"
+.br
+.I "\-\-rom\-scorpion-1 file"
+.br
+.I "\-\-rom\-scorpion-2 file"
+.br
+.I "\-\-rom\-scorpion-3 file"
+.br
+.I "\-\-rom\-spec-se-0 file"
+.br
+.I "\-\-rom\-spec-se-1 file"
+.br
+.I "\-\-rom\-interface-1 file"
+.RS
+Specify the file to be used for ROM(s) used for each machine. The
+options respectively refer to the 16K Spectrum
+.RI ( 48.rom ),
+48K Spectrum
+.RI ( 48.rom ),
+the two ROMs for the 128K Spectrum
+.RI ( 128-0.rom " and " 128-1.rom ),
+the two ROMs for the +2
+.RI ( plus2-0.rom " and " plus2-1.rom ),
+the four ROMs for the +2A
+.RI ( plus3-0.rom ", " plus3-1.rom ", " plus3-2.rom " and " plus3-3.rom ),
+the four ROMs for the +3
+.RI ( plus3-0.rom ", " plus3-1.rom ", " plus3-2.rom " and " plus3-3.rom ),
+the TC2048 ROM
+.RI ( tc2048.rom ),
+the two ROMs for the TC2068
+.RI ( tc2068-0.rom " and " tc2068-1.rom ),
+the two ROMs for the TS2068
+.RI ( tc2068-0.rom " and " tc2068-1.rom ),
+the two main ROMs and the TR-DOS ROM for the Pentagon 128
+.RI ( 128p-0.rom ", " 128p-1.rom " and " trdos.rom ),
+the four ROMs for the Scorpion 256
+.RI ( 256s-0.rom ", " 256s-1.rom ", " 256s-2.rom " and " 256s-3.rom ),
+the two ROMs for the Spectrum SE
+.RI ( se-0.rom " and " se-1.rom ),
+and the Interface I ROM
+.RI ( if1-2.rom ).
+The names in brackets denote the defaults.
+.RE
+.PP
.I \-\-separation
.RS
Give stereo separation of the 128's AY sound channels. Same as the
@@ -556,12 +652,16 @@
.RI buffer_time= num
.br
.RI ` num '
-gives the ALSA buffer time.
+gives the ALSA buffer time in microseconds.
.IP \[bu]
.RI period_time= num
.br
.RI ` num '
-gives the ALSA period time.
+gives the ALSA period time in microseconds.
+.IP \[bu]
+.RI use_mmap= yes|y|true|t|1
+.br
+specifies that libao use memory mapped transfer.
.RE
.IP \[bu]
.IR arts :
@@ -691,6 +791,19 @@
option.
.RE
.PP
+.I "\-\-strict\-aspect\-hint"
+.RS
+For the GTK+ UI, use stricter limits for the aspect ratio limits set
+by the
+.RI ` \-\-aspect\-hint '
+option. This can cause some window managers (for example,
+.IR metacity (1))
+to not allow the window to be resized and moved, but is necessary to
+prevent others (for example,
+.IR fvwm (1))
+from being able resize the window away from square.
+.RE
+.PP
.I "\-v mode"
.br
.I "\-\-svgamode mode"
@@ -2358,7 +2471,7 @@
.SH "DIVIDE"
The DivIDE is another IDE interface for the Spectrum, of which full
details can be found at
-.IR "http://insert.divide.url/" .
+.IR "http://baze.au.com/divide/" .
The interface can be activated via the
.I "DivIDE interface"
option from the
Modified: vendor/fuse/current/rzx.c
===================================================================
--- vendor/fuse/current/rzx.c 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/rzx.c 2007-03-10 12:02:05 UTC (rev 309)
@@ -1,7 +1,7 @@
/* rzx.c: .rzx files
Copyright (c) 2002-2003 Philip Kendall
- $Id: rzx.c,v 1.70 2007/02/02 16:21:51 pak21 Exp $
+ $Id: rzx.c,v 1.70.2.3 2007/02/09 08:21:33 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -307,9 +307,22 @@
out of frames, as this occurs just before a normal end of frame
and everything works normally as rzx_playback is now zero again */
if( add_interrupt ) {
+
error = event_add( machine_current->timings.tstates_per_frame,
EVENT_TYPE_FRAME );
if( error ) return error;
+
+ /* We're no longer doing RZX playback, so tstates now be <= the
+ normal frame count */
+ if( tstates > machine_current->timings.tstates_per_frame )
+ tstates = machine_current->timings.tstates_per_frame;
+
+ } else {
+
+ /* Ensure that tstates will be zero after it is reduced in
+ spectrum_frame() */
+ tstates = machine_current->timings.tstates_per_frame;
+
}
libspec_error = libspectrum_rzx_free( rzx );
@@ -360,8 +373,9 @@
static int playback_frame( void )
{
int error, finished;
+ libspectrum_snap *snap;
- error = libspectrum_rzx_playback_frame( rzx, &finished );
+ error = libspectrum_rzx_playback_frame( rzx, &finished, &snap );
if( error ) return rzx_stop_playback( 0 );
if( finished ) {
@@ -369,6 +383,11 @@
return rzx_stop_playback( 0 );
}
+ if( snap ) {
+ error = snapshot_copy_from( snap );
+ if( error ) return rzx_stop_playback( 0 );
+ }
+
/* If we've got another frame to do, fetch the new instruction count and
continue */
rzx_instruction_count = libspectrum_rzx_instructions( rzx );
Modified: vendor/fuse/current/settings.dat
===================================================================
--- vendor/fuse/current/settings.dat 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/settings.dat 2007-03-10 12:02:05 UTC (rev 309)
@@ -1,7 +1,7 @@
# settings.dat: configuration options for Fuse
# Copyright (c) 2002-2004 Philip Kendall
-# $Id: settings.dat,v 1.56 2007/02/02 16:21:52 pak21 Exp $
+# $Id: settings.dat,v 1.56.2.2 2007/03/03 21:02:01 pak21 Exp $
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -107,6 +107,14 @@
dck_file, string, NULL,, dock
if2_file, string, NULL,, if2cart
+mdr_file, string, NULL,, microdrive-file
+mdr_file2, string, NULL,, microdrive-2-file
+mdr_file3, string, NULL,, microdrive-3-file
+mdr_file4, string, NULL,, microdrive-4-file
+mdr_file5, string, NULL,, microdrive-5-file
+mdr_file6, string, NULL,, microdrive-6-file
+mdr_file7, string, NULL,, microdrive-7-file
+mdr_file8, string, NULL,, microdrive-8-file
simpleide_active, boolean, 0,, simpleide
simpleide_master_file, string, NULL,, simpleide-masterfile
simpleide_slave_file, string, NULL,, simpleide-slavefile
@@ -127,6 +135,7 @@
printer_text_filename, string, "printout.txt",, textfile
aspect_hint, boolean, 1
+strict_aspect_hint, boolean, 0
svga_mode, numeric, 320, 'v', svgamode
doublescan_mode, numeric, 1, 'D', doublescan-mode
Modified: vendor/fuse/current/sound/aosound.c
===================================================================
--- vendor/fuse/current/sound/aosound.c 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/sound/aosound.c 2007-03-10 12:02:05 UTC (rev 309)
@@ -1,7 +1,7 @@
/* aosound.c: libao sound I/O
Copyright (c) 2004 Gergely Szasz, Philip Kendall
- $Id: aosound.c,v 1.3 2007/02/02 16:21:55 pak21 Exp $
+ $Id: aosound.c,v 1.3.2.1 2007/02/17 17:05:43 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -43,6 +43,7 @@
static int sixteenbit = 1;
static char *filename = NULL;
static const char *default_filename = "fuse-sound.ao";
+static int first_init = 1;
static void
driver_error( void )
@@ -87,6 +88,9 @@
char *mutable, *option, *key, *value;
/* Get a copy of the device string we can modify */
+ if( !device || *device == '\0' )
+ return 0;
+
mutable = strdup( device );
if( !mutable ) {
ui_error( UI_ERROR_ERROR, "out of memory at %s:%d", __FILE__, __LINE__ );
@@ -97,7 +101,8 @@
option = strchr( mutable, ':' );
if( option ) *option++ = '\0';
- *driver_id = ao_driver_id( mutable );
+ if( *mutable ) /* ! \0 */
+ *driver_id = ao_driver_id( mutable );
/* Now parse any further options */
while( option ) {
@@ -118,8 +123,11 @@
free( mutable );
return 1;
}
- } else {
+ } else if( key && value) {
ao_append_option( options, key, value );
+ } else if ( first_init ) {
+ ui_error( UI_ERROR_ERROR, "ignoring badly formed libao option (%s%s)",
+ key ? key : "", value ? value : "" );
}
}
@@ -148,21 +156,16 @@
ao_initialize();
- if( !device || *device == '\0' ) {
+ error = parse_driver_options( device, &driver_id, &options );
+ if( error ) {
+ settings_current.sound = 0;
+ sound_lowlevel_init_in_progress = 0;
+ return error;
+ }
+ if( driver_id == -1 )
driver_id = ao_default_driver_id();
- } else {
-
- error = parse_driver_options( device, &driver_id, &options );
- if( error ) {
- settings_current.sound = 0;
- sound_lowlevel_init_in_progress = 0;
- return error;
- }
-
- }
-
if( driver_id == -1 ) {
ui_error( UI_ERROR_ERROR, "ao: driver '%s' unknown",
device );
@@ -191,7 +194,7 @@
} else {
- if( !filename ) filename = default_filename;
+ if( !filename ) filename = (char *)default_filename;
dev_for_ao = ao_open_file( driver_id, filename, 1, &format, options);
}
@@ -206,6 +209,7 @@
ao_free_options( options );
sound_lowlevel_init_in_progress = 0;
+ first_init = 0;
return 0;
}
@@ -221,8 +225,8 @@
void
sound_lowlevel_frame( libspectrum_signed_word *data, int len )
{
- static unsigned char buf8[4096];
- signed char *data8 = ( signed char* )data;
+ static signed char buf8[4096];
+ void *data8 = data;
len <<= 1; /* now in bytes */
Modified: vendor/fuse/current/sound/coreaudiosound.c
===================================================================
--- vendor/fuse/current/sound/coreaudiosound.c 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/sound/coreaudiosound.c 2007-03-10 12:02:05 UTC (rev 309)
@@ -28,12 +28,16 @@
#include <CoreAudio/AudioHardware.h>
#include <AudioUnit/AudioUnit.h>
+#include "settings.h"
#include "sfifo.h"
#include "sound.h"
#include "ui/ui.h"
sfifo_t sound_fifo;
+/* Number of Spectrum frames audio latency to use */
+#define NUM_FRAMES 2
+
static
OSStatus coreaudiowrite( void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
@@ -49,6 +53,9 @@
*/
static AudioUnit gOutputUnit;
+/* Records sound writer status information */
+static int audio_output_started;
+
int
sound_lowlevel_init( const char *dev, int *freqptr, int *stereoptr )
{
@@ -58,6 +65,8 @@
UInt32 deviceBufferSize; /* bufferSize returned by
kAudioDevicePropertyBufferSize */
int error;
+ float hz;
+ int sound_framesiz;
/* get the default output device for the HAL */
count = sizeof( device );
@@ -158,21 +167,21 @@
return 1;
}
- if( ( error = sfifo_init( &sound_fifo, 2 * deviceFormat.mChannelsPerFrame
- * deviceBufferSize + 1 ) ) ) {
+ hz = (float)machine_current->timings.processor_speed /
+ machine_current->timings.tstates_per_frame;
+ sound_framesiz = deviceFormat.mSampleRate / hz;
+
+ if( ( error = sfifo_init( &sound_fifo, NUM_FRAMES
+ * deviceFormat.mBytesPerFrame
+ * deviceFormat.mChannelsPerFrame
+ * sound_framesiz + 1 ) ) ) {
ui_error( UI_ERROR_ERROR, "Problem initialising sound fifo: %s",
strerror ( error ) );
return 1;
}
- /* Start the rendering
- The DefaultOutputUnit will do any format conversions to the format of the
- default device */
- err = AudioOutputUnitStart( gOutputUnit );
- if( err ) {
- ui_error( UI_ERROR_ERROR, "AudioOutputUnitStart=%ld", err );
- return 1;
- }
+ /* wait to run sound until we have some sound to play */
+ audio_output_started = 0;
return 0;
}
@@ -182,7 +191,8 @@
{
OSStatus err;
- verify_noerr( AudioOutputUnitStop( gOutputUnit ) );
+ if( audio_output_started )
+ verify_noerr( AudioOutputUnitStop( gOutputUnit ) );
err = AudioUnitUninitialize( gOutputUnit );
if( err ) {
@@ -218,6 +228,19 @@
ui_error( UI_ERROR_ERROR, "Couldn't write sound fifo: %s",
strerror( i ) );
}
+
+ if( !audio_output_started ) {
+ /* Start the rendering
+ The DefaultOutputUnit will do any format conversions to the format of the
+ default device */
+ OSStatus err = AudioOutputUnitStart( gOutputUnit );
+ if( err ) {
+ ui_error( UI_ERROR_ERROR, "AudioOutputUnitStart=%ld", err );
+ return;
+ }
+
+ audio_output_started = 1;
+ }
}
/* This is the audio processing callback. */
Modified: vendor/fuse/current/sound/sdlsound.c
===================================================================
--- vendor/fuse/current/sound/sdlsound.c 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/sound/sdlsound.c 2007-03-10 12:02:05 UTC (rev 309)
@@ -2,7 +2,7 @@
Copyright (c) 2002-2004 Alexander Yurchenko, Russell Marks, Philip Kendall,
Fredrick Meunier
- $Id: sdlsound.c,v 1.18 2006/12/22 10:55:46 fredm Exp $
+ $Id: sdlsound.c,v 1.18.2.1 2007/02/10 00:59:36 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -28,6 +28,7 @@
#include <errno.h>
#include <fcntl.h>
+#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
@@ -41,19 +42,23 @@
#include "sound.h"
#include "ui/ui.h"
-/* using (7) 32 byte frags for 8kHz, scale up for higher */
-#define BASE_SOUND_FRAG_PWR 7
-
static void sdlwrite( void *userdata, Uint8 *stream, int len );
sfifo_t sound_fifo;
+/* Number of Spectrum frames audio latency to use */
+#define NUM_FRAMES 2
+
+/* Records sound writer status information */
+static int audio_output_started;
+
int
sound_lowlevel_init( const char *device, int *freqptr, int *stereoptr )
{
SDL_AudioSpec requested, received;
- int frag;
int error;
+ float hz;
+ int sound_framesiz;
/* I'd rather just use setenv, but Windows doesn't have it */
if( device ) {
@@ -80,16 +85,11 @@
requested.format = AUDIO_S16SYS;
requested.callback = sdlwrite;
- frag = BASE_SOUND_FRAG_PWR;
- if (*freqptr > 8250)
- frag++;
- if (*freqptr > 16500)
- frag++;
- if (*freqptr > 33000)
- frag++;
+ hz = (float)machine_current->timings.processor_speed /
+ machine_current->timings.tstates_per_frame;
+ sound_framesiz = *freqptr / hz;
+ requested.samples = pow(2.0, floor(log2(sound_framesiz)));
- requested.samples = 1 << frag;
-
if ( SDL_OpenAudio( &requested, &received ) < 0 ) {
settings_current.sound = 0;
ui_error( UI_ERROR_ERROR, "Couldn't open sound device: %s",
@@ -106,39 +106,36 @@
requested.freq = *freqptr;
- frag = BASE_SOUND_FRAG_PWR;
- if (*freqptr > 8250)
- frag++;
- if (*freqptr > 16500)
- frag++;
- if (*freqptr > 33000)
- frag++;
+ hz = (float)machine_current->timings.processor_speed /
+ machine_current->timings.tstates_per_frame;
+ sound_framesiz = *freqptr / hz;
+ requested.samples = pow(2.0, floor(log2(sound_framesiz)));
- requested.samples = 1 << frag;
-
if( SDL_OpenAudio( &requested, NULL ) < 0 ) {
settings_current.sound = 0;
ui_error( UI_ERROR_ERROR, "Couldn't open sound device: %s",
SDL_GetError() );
return 1;
}
-
- /* Convert from 16-bit stereo samples to bytes plus some headroom */
- frag = 1 << (frag+3);
-
} else {
- *freqptr = received.freq;
*stereoptr = received.channels == 1 ? 0 : 1;
- frag = received.size;
}
- if( ( error = sfifo_init( &sound_fifo, 2 * frag + 1 ) ) ) {
+ hz = (float)machine_current->timings.processor_speed /
+ machine_current->timings.tstates_per_frame;
+ sound_framesiz = *freqptr / hz;
+ sound_framesiz <<= 1;
+
+ if( ( error = sfifo_init( &sound_fifo, NUM_FRAMES
+ * received.channels
+ * sound_framesiz + 1 ) ) ) {
ui_error( UI_ERROR_ERROR, "Problem initialising sound fifo: %s",
strerror ( error ) );
return 1;
}
- SDL_PauseAudio( 0 );
+ /* wait to run sound until we have some sound to play */
+ audio_output_started = 0;
return 0;
}
@@ -177,6 +174,11 @@
ui_error( UI_ERROR_ERROR, "Couldn't write sound fifo: %s\n",
strerror( i ) );
}
+
+ if( !audio_output_started ) {
+ SDL_PauseAudio( 0 );
+ audio_output_started = 1;
+ }
}
/* Write len samples from fifo into stream */
Modified: vendor/fuse/current/sound.c
===================================================================
--- vendor/fuse/current/sound.c 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/sound.c 2007-03-10 12:02:05 UTC (rev 309)
@@ -1,7 +1,7 @@
/* sound.c: Sound support
Copyright (c) 2000-2005 Russell Marks, Matan Ziv-Av, Philip Kendall
- $Id: sound.c,v 1.49.2.1 2007/02/04 06:35:04 fredm Exp $
+ $Id: sound.c,v 1.49.2.2 2007/03/06 11:36:23 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -278,7 +278,12 @@
if(sound_enabled)
{
if(sound_buf)
+ {
free(sound_buf);
+ sound_buf=NULL;
+ free(tape_buf);
+ tape_buf=NULL;
+ }
sound_lowlevel_end();
sound_enabled=0;
}
Modified: vendor/fuse/current/ui/gtk/gtkui.c
===================================================================
--- vendor/fuse/current/ui/gtk/gtkui.c 2007-03-10 11:54:28 UTC (rev 308)
+++ vendor/fuse/current/ui/gtk/gtkui.c 2007-03-10 12:02:05 UTC (rev 309)
@@ -1,7 +1,7 @@
/* gtkui.c: GTK+ routines for dealing with the user interface
Copyright (c) 2000-2005 Philip Kendall, Russell Marks
- $Id: gtkui.c,v 1.162 2007/02/02 16:21:59 pak21 Exp $
+ $Id: gtkui.c,v 1.162.2.1 2007/03/03 21:02:01 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -187,11 +187,17 @@
if( settings_current.aspect_hint ) {
hints |= GDK_HINT_ASPECT;
- geometry.min_aspect = geometry.max_aspect =
- ((float)DISPLAY_ASPECT_WIDTH)/DISPLAY_SCREEN_HEIGHT;
+ if( settings_current.strict_aspect_hint ) {
+ geometry.min_aspect = geometry.max_aspect =
+ (float)DISPLAY_ASPECT_WIDTH / DISPLAY_SCREEN_HEIGHT;
+ } else {
+ geometry.min_aspect = 1.2;
+ geometry.max_aspect = 1.5;
+ }
}
- gtk_window_set_geometry_hints( GTK_WINDOW(gtkui_window), gtkui_drawing_area,
+ gtk_window_set_geometry_hints( GTK_WINDOW(gtkui_window),
+ GTK_WIDGET(gtkui_drawing_area),
...
[truncated message content] |
|
From: <fr...@us...> - 2007-04-09 02:18:47
|
Revision: 343
http://svn.sourceforge.net/fuse-for-macosx/?rev=343&view=rev
Author: fredm
Date: 2007-04-08 19:18:45 -0700 (Sun, 08 Apr 2007)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
vendor/fuse/current/compat/mkstemp.c
vendor/fuse/current/hacking/ChangeLog
vendor/fuse/current/joystick.c
vendor/fuse/current/machines/spec_se.c
vendor/fuse/current/periph.c
vendor/fuse/current/printer.c
Modified: vendor/fuse/current/compat/mkstemp.c
===================================================================
--- vendor/fuse/current/compat/mkstemp.c 2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/compat/mkstemp.c 2007-04-09 02:18:45 UTC (rev 343)
@@ -95,7 +95,6 @@
XXXXXX[5] = letters[v % 62];
fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
- break;
if (fd >= 0)
{
Modified: vendor/fuse/current/hacking/ChangeLog
===================================================================
--- vendor/fuse/current/hacking/ChangeLog 2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/hacking/ChangeLog 2007-04-09 02:18:45 UTC (rev 343)
@@ -1562,3 +1562,15 @@
20070306 display.c: don't overrun line_times array (Release-0_8_0-branch)
(Fred).
20070310 man/fuse.1: add divide url (Release-0_8_0-branch) (Fred).
+20070311 machines/spec_se.c: fix marking Dock and EXROM banks as writable in
+ the SE (Release-0_8_0-branch) (thanks, Andrew Owen) (Fred).
+20070317 compat/mkstemp.c: remove abberant break (thanks, Marek Januszewski)
+ (Release-0_8_0-branch).
+20070321 periph.c: when stopping RZX playback due to overrun, ensure the
+ change is picked up in z80_do_opcodes() (thanks, Julian Wiseman)
+ (Release-0_8_0-branch).
+20070327 joystick.c: don't prompt for joystick config changes when loading a
+ snap during RZX playback (Release-0_8_0-branch)
+ (thanks, Julian Wiseman) (Fred).
+20070404 printer.c: don't buffer output so text is available as it is
+ printed (Release-0_8_0-branch) (Fred).
Modified: vendor/fuse/current/joystick.c
===================================================================
--- vendor/fuse/current/joystick.c 2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/joystick.c 2007-04-09 02:18:45 UTC (rev 343)
@@ -2,7 +2,7 @@
Copyright (c) 2001-2004 Russell Marks, Philip Kendall
Copyright (c) 2003 Darren Salt
- $Id: joystick.c,v 1.25 2007/02/02 16:21:51 pak21 Exp $
+ $Id: joystick.c,v 1.25.2.1 2007/03/27 11:32:23 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -32,6 +32,7 @@
#include "joystick.h"
#include "keyboard.h"
#include "periph.h"
+#include "rzx.h"
#include "settings.h"
#include "spectrum.h"
#include "machine.h"
@@ -217,7 +218,8 @@
if( settings_current.joystick_keyboard_output != fuse_type &&
settings_current.joystick_1_output != fuse_type &&
- settings_current.joystick_2_output != fuse_type ) {
+ settings_current.joystick_2_output != fuse_type &&
+ !rzx_playback ) {
switch( ui_confirm_joystick( libspectrum_snap_joystick_list(snap,i),
libspectrum_snap_joystick_inputs(snap,i)) ) {
case UI_CONFIRM_JOYSTICK_KEYBOARD:
Modified: vendor/fuse/current/machines/spec_se.c
===================================================================
--- vendor/fuse/current/machines/spec_se.c 2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/machines/spec_se.c 2007-04-09 02:18:45 UTC (rev 343)
@@ -5,7 +5,7 @@
Copyright (c) 1999-2002 Philip Kendall
Copyright (c) 2002-2003 Fredrick Meunier
- $Id: spec_se.c,v 1.15 2007/02/02 16:21:54 pak21 Exp $
+ $Id: spec_se.c,v 1.15.2.1 2007/03/11 01:06:42 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -202,6 +202,10 @@
periph_setup_interface2( PERIPH_PRESENT_OPTIONAL );
periph_update();
+ /* Mark as present/writeable */
+ for( i = 0; i < 34; ++i )
+ memory_map_ram[i].writable = 1;
+
for( i = 0; i < 8; i++ ) {
timex_dock[i] = memory_map_ram[ i + 18 ];
@@ -230,10 +234,6 @@
memset( memory_map_home[4]->page, 0, MEMORY_PAGE_SIZE );
memset( memory_map_home[5]->page, 0, MEMORY_PAGE_SIZE );
- /* Mark as present/writeable */
- for( i = 0; i < 34; ++i )
- memory_map_ram[i].writable = 1;
-
/* RAM pages 1, 3, 5 and 7 contended */
for( i = 0; i < 8; i++ )
memory_map_ram[ 2 * i ].contended =
Modified: vendor/fuse/current/periph.c
===================================================================
--- vendor/fuse/current/periph.c 2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/periph.c 2007-04-09 02:18:45 UTC (rev 343)
@@ -1,7 +1,7 @@
/* periph.c: code for handling peripherals
- Copyright (c) 2005 Philip Kendall
+ Copyright (c) 2005-2007 Philip Kendall
- $Id: periph.c,v 1.20 2007/02/02 16:21:51 pak21 Exp $
+ $Id: periph.c,v 1.20.2.1 2007/03/21 16:21:54 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -29,6 +29,7 @@
#include "debugger/debugger.h"
#include "divide.h"
+#include "event.h"
#include "if1.h"
#include "if2.h"
#include "joystick.h"
@@ -191,8 +192,15 @@
libspectrum_byte value;
error = libspectrum_rzx_playback( rzx, &value );
- if( error ) { rzx_stop_playback( 1 ); return readport_internal( port ); }
+ if( error ) {
+ rzx_stop_playback( 1 );
+ /* Add a null event to mean we pick up the RZX state change in
+ z80_do_opcodes() */
+ event_add( tstates, EVENT_TYPE_NULL );
+ return readport_internal( port );
+ }
+
return value;
}
Modified: vendor/fuse/current/printer.c
===================================================================
--- vendor/fuse/current/printer.c 2007-04-07 07:21:59 UTC (rev 342)
+++ vendor/fuse/current/printer.c 2007-04-09 02:18:45 UTC (rev 343)
@@ -1,7 +1,7 @@
/* printer.c: Printer support
Copyright (c) 2001-2004 Ian Collier, Russell Marks, Philip Kendall
- $Id: printer.c,v 1.20 2007/02/02 16:21:51 pak21 Exp $
+ $Id: printer.c,v 1.20.2.1 2007/04/04 10:48:08 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -182,6 +182,9 @@
return(0);
}
+/* ensure users have immediate access to text file contents */
+setbuf( printer_text_file, NULL );
+
return(1);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-04-11 12:04:21
|
Revision: 350
http://svn.sourceforge.net/fuse-for-macosx/?rev=350&view=rev
Author: fredm
Date: 2007-04-11 04:52:28 -0700 (Wed, 11 Apr 2007)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
vendor/fuse/current/ChangeLog
vendor/fuse/current/README
vendor/fuse/current/configure.in
vendor/fuse/current/fuse.c
vendor/fuse/current/hacking/ChangeLog
vendor/fuse/current/hacking/cvs-tags
vendor/fuse/current/man/fuse.1
vendor/fuse/current/rzx.c
Modified: vendor/fuse/current/ChangeLog
===================================================================
--- vendor/fuse/current/ChangeLog 2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/ChangeLog 2007-04-11 11:52:28 UTC (rev 350)
@@ -1,4 +1,4 @@
-2007-??-?? Philip Kendall <phi...@sh...>
+2007-04-11 Philip Kendall <phi...@sh...>
* Fuse 0.8.0 released
@@ -81,6 +81,11 @@
Szasz, Paul van der Laan and other people to whom I apologise
for forgetting).
+ * On a personal note, I (Philip) would like to dedicate the 0.8
+ release of Fuse to the memory of Chris "Oggie" Lightfoot. I
+ don't know whether he would have loved or hated some of the code
+ in Fuse, but I'm sure he would have expressed his opinion.
+
2004-07-16 Philip Kendall <pak...@sr...>
* Fuse 0.7.0 released.
@@ -783,4 +788,4 @@
* Version 0.1.0 released.
-$Id: ChangeLog,v 1.46 2007/02/02 16:21:50 pak21 Exp $
+$Id: ChangeLog,v 1.46.2.1 2007/04/09 16:59:02 pak21 Exp $
Modified: vendor/fuse/current/README
===================================================================
--- vendor/fuse/current/README 2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/README 2007-04-11 11:52:28 UTC (rev 350)
@@ -1,4 +1,4 @@
-The Free Unix Spectrum Emulator (Fuse) 0.7.0
+The Free Unix Spectrum Emulator (Fuse) 0.8.0
============================================
Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat
@@ -10,9 +10,10 @@
What Fuse does have:
-* Working Spectrum 16K/48K/128K/+2/+2A/+3/+3e/SE, Timex TC2048/TC2068,
- Pentagon 128 and Scorpion ZS 256 emulation, running at true Speccy
- speed on any computer you're likely to try it on.
+* Working Spectrum 16K/48K/128K/+2/+2A/+3/+3e/SE, Timex TC2048,
+ TC2068 and TS2068, Pentagon 128 and Scorpion ZS 256 emulation,
+ running at true Speccy speed on any computer you're likely to try it
+ on.
* Support for loading from .tzx files.
* Sound (on systems supporting the Open Sound System, SDL, or OpenBSD/
Solaris's /dev/audio).
@@ -20,8 +21,9 @@
(including Kempston, Sinclair and Cursor joysticks).
* Emulation of some of the printers you could attach to a Spectrum.
* Support for the RZX input recording file format, including
- 'competition mode'.
-* Emulation of the Spectrum +3e, ZXATASP and ZXCF IDE interfaces.
+ rollback and 'competition mode'.
+* Emulation of the DivIDE, Interface I, Kempston mouse, Spectrum +3e,
+ ZXATASP and ZXCF interfaces.
What you'll need to run Fuse
----------------------------
@@ -30,8 +32,8 @@
Required:
-* X, SDL, svgalib, framebuffer support. If you have GTK+, you'll get a
- (much) nicer user interface under X.
+* X, SDL, svgalib or framebuffer support. If you have GTK+, you'll get
+ a (much) nicer user interface under X.
* libspectrum: this is available from
http://fuse-emulator.sourceforge.net/libspectrum.php
@@ -137,6 +139,6 @@
( http://www.worldofspectrum.org/faq/index.html ) first!
Philip Kendall <phi...@sh...>
-16 July 2004
+11 April 2007
-$Id: README,v 1.40 2007/02/02 16:21:50 pak21 Exp $
+$Id: README,v 1.40.2.2 2007/04/11 08:44:19 pak21 Exp $
Modified: vendor/fuse/current/configure.in
===================================================================
--- vendor/fuse/current/configure.in 2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/configure.in 2007-04-11 11:52:28 UTC (rev 350)
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in,v 1.155.2.1 2007/03/03 21:26:14 pak21 Exp $
+dnl $Id: configure.in,v 1.155.2.2 2007/04/09 16:59:02 pak21 Exp $
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
AC_CANONICAL_SYSTEM
dnl Use automake to produce `Makefile.in'
-AM_INIT_AUTOMAKE(fuse, 0.7.0)
+AM_INIT_AUTOMAKE(fuse, 0.8.0)
dnl Checks for programs.
AC_PROG_CC
Modified: vendor/fuse/current/fuse.c
===================================================================
--- vendor/fuse/current/fuse.c 2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/fuse.c 2007-04-11 11:52:28 UTC (rev 350)
@@ -1,7 +1,7 @@
/* fuse.c: The Free Unix Spectrum Emulator
- Copyright (c) 1999-2005 Philip Kendall
+ Copyright (c) 1999-2007 Philip Kendall
- $Id: fuse.c,v 1.133.2.1 2007/02/17 17:12:29 pak21 Exp $
+ $Id: fuse.c,v 1.133.2.3 2007/04/11 09:39:32 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -305,9 +305,7 @@
error = libspectrum_creator_alloc( &fuse_creator ); if( error ) return error;
- error = libspectrum_creator_set_program(
- fuse_creator, (const libspectrum_byte*)"Fuse"
- );
+ error = libspectrum_creator_set_program( fuse_creator, "Fuse" );
if( error ) { libspectrum_creator_free( fuse_creator ); return error; }
error = libspectrum_creator_set_major( fuse_creator,
@@ -367,7 +365,7 @@
printf( "\n" );
fuse_show_version();
printf(
- "Copyright (c) 1999-2005 Philip Kendall <phi...@sh...>\n"
+ "Copyright (c) 1999-2007 Philip Kendall <phi...@sh...>\n"
"and others; see the file 'AUTHORS' for more details.\n"
"\n"
"This program is distributed in the hope that it will be useful,\n"
Modified: vendor/fuse/current/hacking/ChangeLog
===================================================================
--- vendor/fuse/current/hacking/ChangeLog 2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/hacking/ChangeLog 2007-04-11 11:52:28 UTC (rev 350)
@@ -1574,3 +1574,12 @@
(thanks, Julian Wiseman) (Fred).
20070404 printer.c: don't buffer output so text is available as it is
printed (Release-0_8_0-branch) (Fred).
+20070409 ChangeLog,README,configure.in,man/fuse.1: updates for 0.8 release
+ (Release-0_8_0-branch).
+20070409 rzx.c: change over to the 'release' DSA key (Release-0_8_0-branch).
+20070409 fuse.c: remove warning (Release-0_8_0-branch).
+20070410 rzx.c: don't allow use of rollback commands during playback (thanks,
+ Julian Wiseman) (Release-0_8_0-branch).
+20070411 README: these aren't all IDE interfaces (Release-0_8_0-branch).
+20070411 fuse.c: update copyright date to 2007 (Release-0_8_0-branch).
+20070411 TAG: Release-0_8_0 (Release-0_8_0-branch).
Modified: vendor/fuse/current/hacking/cvs-tags
===================================================================
--- vendor/fuse/current/hacking/cvs-tags 2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/hacking/cvs-tags 2007-04-11 11:52:28 UTC (rev 350)
@@ -1,6 +1,6 @@
CVS tags for Fuse
-$Id: cvs-tags,v 1.32.2.1 2007/03/03 21:49:10 pak21 Exp $
+$Id: cvs-tags,v 1.32.2.2 2007/04/11 09:41:31 pak21 Exp $
| Release-0_3_1
| Release-0_3_2pre1
@@ -146,6 +146,7 @@
+-\
| | Release-0_8_0-pre1
| | Release-0_8_0-pre2
+| | Release-0_8_0
| |
| | Release-0_8_0-branch
|
Modified: vendor/fuse/current/man/fuse.1
===================================================================
--- vendor/fuse/current/man/fuse.1 2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/man/fuse.1 2007-04-11 11:52:28 UTC (rev 350)
@@ -23,7 +23,7 @@
.\" E-mail: phi...@sh...
.\"
.\"
-.TH fuse 1 "16th July, 2004" "Version 0.7.0" "Emulators"
+.TH fuse 1 "11th April, 2007" "Version 0.8.0" "Emulators"
.\"
.\"------------------------------------------------------------------
.\"
Modified: vendor/fuse/current/rzx.c
===================================================================
--- vendor/fuse/current/rzx.c 2007-04-11 11:43:41 UTC (rev 349)
+++ vendor/fuse/current/rzx.c 2007-04-11 11:52:28 UTC (rev 350)
@@ -1,7 +1,7 @@
/* rzx.c: .rzx files
Copyright (c) 2002-2003 Philip Kendall
- $Id: rzx.c,v 1.70.2.3 2007/02/09 08:21:33 pak21 Exp $
+ $Id: rzx.c,v 1.70.2.5 2007/04/10 08:29:51 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -79,11 +79,11 @@
/* Fuse's DSA key */
libspectrum_rzx_dsa_key rzx_key = {
- "9E140C4CEA9CA011AA8AD17443CB5DC18DC634908474992D38AB7D4A27038CBB209420BA2CAB8508CED35ADF8CBD31A0A034FC082A168A0E190FFC4CCD21706F", /* p */
- "C52E9CA1804BD021FFAD30E8FB89A94437C2E4CB", /* q */
- "90E56D9493DE80E1A35F922007357888A1A47805FD365AD27BC5F184601EBC74E44F576AA4BF8C5244D202BBAE697C4F9132DFB7AD0A56892A414C96756BD21A", /* g */
- "7810A35AC94EA5750934FB9C922351EE597C71E2B83913C121C6655EA25CE7CBE2C259FA3168F8475B2510AA29C5FEB50ACAB25F34366C2FFC93B3870A522232", /* y */
- "9A4E53CC249750C3194A38A3BE3EDEED28B171A9" /* x */
+ "A9E3BD74E136A9ABD41E614383BB1B01EB24B2CD7B920ED6A62F786A879AC8B00F2FF318BF96F81654214B1A064889FF6D8078858ED00CF61D2047B2AAB7888949F35D166A2BBAAE23A331BD4728A736E76901D74B195B68C4A2BBFB9F005E3655BDE8256C279A626E00C7087A2D575F78D7DC5CA6E392A535FFE47A816BA503", /* p */
+ "FE8D540EED2CAE1983690E2886259F8956FB5A19", /* q */
+ "9680ABFFB98EF2021945ADDF86C21D6EE3F7C8777FB0A0220AB59E9DFA3A3338611B32CFD1F22F8F26547858754ED93BFBDD87DC13C09F42B42A36B2024467D98EB754DEB2847FCA7FC60C81A99CF95133847EA38AD9D037AFE9DD189E9F0EE47624848CEE840D7E3724A39681E71B97ECF777383DC52A48C0A2C93BADA93F4C", /* g */
+ "46605F0514D56BC0B4207A350367A5038DBDD4DD62B7C997D26D0ADC5BE42D01F852C199E34553BCBCE5955FF80E3B402B55316606D7E39C0F500AE5EE41A7B7A4DCE78EC19072C21FCC7BA48DFDC830C17B72BCAA2B2D70D9DFC0AAD9B7E73F7AEB6241E54D55C33E41AB749CAAFBE7AB00F2D74C500E5F5DD63BD299C65778", /* y */
+ "948744AA7A1D1BE9EE65150B0A95A678B4181F0E" /* x */
};
/* By how much is the speed allowed to deviate from 100% whilst recording
@@ -288,7 +288,7 @@
counter_reset();
ui_menu_activate( UI_MENU_ITEM_RECORDING, 1 );
- ui_menu_activate( UI_MENU_ITEM_RECORDING_ROLLBACK, 1 );
+ ui_menu_activate( UI_MENU_ITEM_RECORDING_ROLLBACK, 0 );
return 0;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2007-05-12 00:13:59
|
Revision: 364
http://svn.sourceforge.net/fuse-for-macosx/?rev=364&view=rev
Author: fredm
Date: 2007-05-11 17:13:58 -0700 (Fri, 11 May 2007)
Log Message:
-----------
Load . into vendor/fuse/current.
Modified Paths:
--------------
vendor/fuse/current/ChangeLog
vendor/fuse/current/README
vendor/fuse/current/acinclude.m4
vendor/fuse/current/configure.in
vendor/fuse/current/hacking/ChangeLog
vendor/fuse/current/hacking/cvs-tags
vendor/fuse/current/hacking/ui.txt
vendor/fuse/current/lib/Makefile.am
vendor/fuse/current/machines/pentagon.c
vendor/fuse/current/machines/scorpion.c
vendor/fuse/current/machines/spec128.c
vendor/fuse/current/machines/spec16.c
vendor/fuse/current/machines/spec48.c
vendor/fuse/current/man/fuse.1
vendor/fuse/current/periph.c
vendor/fuse/current/screenshot.c
vendor/fuse/current/snapshot.c
vendor/fuse/current/spectrum.c
vendor/fuse/current/spectrum.h
vendor/fuse/current/ui/fb/fbdisplay.c
vendor/fuse/current/ui/ggi/ggidisplay.c
vendor/fuse/current/ui/gtk/gtkdisplay.c
vendor/fuse/current/ui/scaler/scaler.c
vendor/fuse/current/ui/scaler/scalers.c
vendor/fuse/current/ui/sdl/sdldisplay.c
vendor/fuse/current/ui/svga/svgadisplay.c
vendor/fuse/current/ui/uidisplay.h
vendor/fuse/current/ui/win32/win32display.c
vendor/fuse/current/ui/xlib/xdisplay.c
vendor/fuse/current/uidisplay.c
vendor/fuse/current/ula.c
vendor/fuse/current/ula.h
vendor/fuse/current/widget/Makefile.am
vendor/fuse/current/widget/menu.c
vendor/fuse/current/widget/pokefinder.c
Modified: vendor/fuse/current/ChangeLog
===================================================================
--- vendor/fuse/current/ChangeLog 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ChangeLog 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,3 +1,22 @@
+2007-05-11 Philip Kendall <phi...@sh...>
+
+ * Fuse 0.8.0.1 released (bug fix release)
+
+ * Fix IN timings and floating bus behaviour: fixes Sidewize (thanks,
+ Pegaz and Mark Woodmass) (Philip Kendall).
+ * Fix widget UI pokefinder and keyboard help picture
+ (thanks, Alberto Garcia) (Philip Kendall and Fredrick Meunier).
+ * Fix crash if fullscreen mode attempted a resolution higher than
+ the native graphics mode could handle (thanks, Alberto Garcia)
+ (Fredrick Meunier).
+ * Ensure ABS, MIN and PATH_MAX are available where needed (Fredrick
+ Meunier).
+ * Distribute autoload snapshots (thanks, Stuart Brady and Arda
+ Erdikmen) (Fredrick Meunier).
+ * Remove flicker when playing back RZX files with embedded
+ snapshots (thanks, Julian Wiseman) (Fredrick Meunier).
+ * Remove warnings when building from CVS (Stuart Brady).
+
2007-04-11 Philip Kendall <phi...@sh...>
* Fuse 0.8.0 released
@@ -788,4 +807,4 @@
* Version 0.1.0 released.
-$Id: ChangeLog,v 1.46.2.1 2007/04/09 16:59:02 pak21 Exp $
+$Id: ChangeLog,v 1.46.2.2 2007/05/10 07:32:38 pak21 Exp $
Modified: vendor/fuse/current/README
===================================================================
--- vendor/fuse/current/README 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/README 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,5 +1,5 @@
-The Free Unix Spectrum Emulator (Fuse) 0.8.0
-============================================
+The Free Unix Spectrum Emulator (Fuse) 0.8.0.1
+==============================================
Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat
unsurprisingly, an emulator of the ZX Spectrum (a popular 1980s home
@@ -139,6 +139,6 @@
( http://www.worldofspectrum.org/faq/index.html ) first!
Philip Kendall <phi...@sh...>
-11 April 2007
+11 May 2007
-$Id: README,v 1.40.2.2 2007/04/11 08:44:19 pak21 Exp $
+$Id: README,v 1.40.2.3 2007/05/10 07:32:38 pak21 Exp $
Modified: vendor/fuse/current/acinclude.m4
===================================================================
--- vendor/fuse/current/acinclude.m4 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/acinclude.m4 2007-05-12 00:13:58 UTC (rev 364)
@@ -7,7 +7,7 @@
dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or
dnl gthread is specified in MODULES, pass to glib-config
dnl
-AC_DEFUN(AM_PATH_GLIB,
+AC_DEFUN([AM_PATH_GLIB],
[dnl
dnl Get the cflags and libraries from the glib-config script
dnl
@@ -420,7 +420,7 @@
dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
dnl
-AC_DEFUN(AM_PATH_GTK,
+AC_DEFUN([AM_PATH_GTK],
[dnl
dnl Get the cflags and libraries from the gtk-config script
dnl
Modified: vendor/fuse/current/configure.in
===================================================================
--- vendor/fuse/current/configure.in 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/configure.in 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-dnl $Id: configure.in,v 1.155.2.2 2007/04/09 16:59:02 pak21 Exp $
+dnl $Id: configure.in,v 1.155.2.3 2007/05/10 07:32:38 pak21 Exp $
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
@@ -24,7 +24,7 @@
AC_CANONICAL_SYSTEM
dnl Use automake to produce `Makefile.in'
-AM_INIT_AUTOMAKE(fuse, 0.8.0)
+AM_INIT_AUTOMAKE(fuse, 0.8.0.1)
dnl Checks for programs.
AC_PROG_CC
Modified: vendor/fuse/current/hacking/ChangeLog
===================================================================
--- vendor/fuse/current/hacking/ChangeLog 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/hacking/ChangeLog 2007-05-12 00:13:58 UTC (rev 364)
@@ -1582,4 +1582,37 @@
Julian Wiseman) (Release-0_8_0-branch).
20070411 README: these aren't all IDE interfaces (Release-0_8_0-branch).
20070411 fuse.c: update copyright date to 2007 (Release-0_8_0-branch).
-20070411 TAG: Release-0_8_0 (Release-0_8_0-branch).
+20070416 widget/Makefile.am: distribute fuse.font.sbf and mkfusefont.pl
+ (Release-0_8_0-branch) (Fred).
+20070424 TAG: Release-0_8_0 (Release-0_8_0-branch).
+20070425 uidisplay.c,widget/menu.c: initialise border in help screen and
+ center keyboard picture on help screen (thanks, Alberto Garcia)
+ (Release-0_8_0-branch).
+20070425 widget/pokefinder.c: fix up for non-proportional display
+ (thanks, Alberto Garcia) (Release-0_8_0-branch).
+20070428 hacking/ui.txt,ui/{uidisplay.h,fb/fbdisplay.c,ggi/ggidisplay.c,
+ gtk/gtkdisplay.c,scaler/scaler.c,sdl/sdldisplay.c,
+ svga/svgadisplay.c,win32/win32display.c,xlib/xdisplay.c}:
+ check that we don't exceed maximum fullscreen dimensions with
+ SDL UI and attempt a more graceful failure if things go wrong
+ (fixes bug #1708636; thanks Alberto Garcia) (Release-0_8_0-branch)
+ (Fred).
+20070501 screenshot.c: include limits.h for PATH_MAX (Release-0_8_0-branch)
+ (Fred).
+20070501 ui/scaler/scalers.c: make sure MIN and ABS are defined
+ (Release-0_8_0-branch) (Fred).
+20070503 periph.c,spectrum.[ch],ula.[ch],machines/{pentagon.c,scorpion.c,
+ spec128.c,spec16.c,spec48.c}: fix IN timings and consequent fixes
+ to floating bus behaviour (fixes bug #1708597) (thanks, Pegaz and
+ Mark Woodmass) (Release-0_8_0-branch).
+20070507 lib/Makefile.am: distribute autoload snapshots
+ (thanks Stuart Brady and Arda Erdikmen) (Release-0_8_0-branch)
+ (Fred).
+20070509 snapshot.c: call machine_select() only if the machine has changed
+ (fixes bug #1701246) (thanks, Julian Wiseman) (Release-0_8_0-branch)
+ (Fred).
+20070509 acinclude.m4: remove warnings about underquoted definitions
+ (Release-0_8_0-branch) (Stuart Brady).
+20070510 ChangeLog,README,configure.in,man/fuse.1: doc updates for 0.8.0.1
+ release (Release-0_8_0-branch).
+20070511 TAG: Release-0_8_0_1 (Release-0_8_0-branch).
Modified: vendor/fuse/current/hacking/cvs-tags
===================================================================
--- vendor/fuse/current/hacking/cvs-tags 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/hacking/cvs-tags 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,6 +1,6 @@
CVS tags for Fuse
-$Id: cvs-tags,v 1.32.2.2 2007/04/11 09:41:31 pak21 Exp $
+$Id: cvs-tags,v 1.32.2.3 2007/05/11 07:27:47 pak21 Exp $
| Release-0_3_1
| Release-0_3_2pre1
@@ -147,6 +147,7 @@
| | Release-0_8_0-pre1
| | Release-0_8_0-pre2
| | Release-0_8_0
+| | Release-0_8_0_1
| |
| | Release-0_8_0-branch
|
Modified: vendor/fuse/current/hacking/ui.txt
===================================================================
--- vendor/fuse/current/hacking/ui.txt 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/hacking/ui.txt 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
Some brief instructions on adding another user interface to Fuse
================================================================
-Version: $Id: ui.txt,v 1.9 2003/03/13 14:55:28 pak21 Exp $
+Version: $Id: ui.txt,v 1.9.14.1 2007/04/28 00:23:09 fredm Exp $
In order to add a new user interface (UI) to Fuse, you need to
implement:
@@ -71,7 +71,7 @@
This is called at the end of every spectrum frame, giving the ui a
chance to flush all the drawing done over the course of the frame.
-* void uidisplay_hotswap_gfx_mode( void )
+* int uidisplay_hotswap_gfx_mode( void )
This is called when the user has changed the scaler in use by the
emulator. The ui should change the window to a multiple of the
Modified: vendor/fuse/current/lib/Makefile.am
===================================================================
--- vendor/fuse/current/lib/Makefile.am 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/lib/Makefile.am 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
## Copyright (c) 1999-2004 Philip Kendall
-## $Id: Makefile.am,v 1.15 2007/02/02 16:21:53 pak21 Exp $
+## $Id: Makefile.am,v 1.15.2.1 2007/05/07 12:54:24 fredm Exp $
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -26,9 +26,8 @@
FILES = cassette.bmp \
keyboard.scr \
microdrive.bmp \
- plus3disk.bmp
-
-noinst_FILES = @AUTOLOAD_SNAPS@/disk_plus3.szx \
+ plus3disk.bmp \
+ @AUTOLOAD_SNAPS@/disk_plus3.szx \
@AUTOLOAD_SNAPS@/tape_128.szx \
@AUTOLOAD_SNAPS@/tape_16.szx \
@AUTOLOAD_SNAPS@/tape_2048.szx \
Modified: vendor/fuse/current/machines/pentagon.c
===================================================================
--- vendor/fuse/current/machines/pentagon.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/machines/pentagon.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* pentagon.c: Pentagon 128K specific routines
- Copyright (c) 1999-2004 Philip Kendall and Fredrick Meunier
+ Copyright (c) 1999-2007 Philip Kendall and Fredrick Meunier
- $Id: pentagon.c,v 1.31 2007/02/02 16:21:54 pak21 Exp $
+ $Id: pentagon.c,v 1.31.2.1 2007/05/03 07:31:42 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -84,7 +84,7 @@
static libspectrum_byte
pentagon_unattached_port( void )
{
- return spectrum_unattached_port( 3 );
+ return spectrum_unattached_port();
}
int
Modified: vendor/fuse/current/machines/scorpion.c
===================================================================
--- vendor/fuse/current/machines/scorpion.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/machines/scorpion.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,8 +1,7 @@
/* scorpion.c: Scorpion 256K specific routines
- Copyright (c) 1999-2004 Philip Kendall and Fredrick Meunier
- Copyright (c) 2004 Stuart Brady
+ Copyright (c) 1999-2007 Philip Kendall, Fredrick Meunier and Stuart Brady
- $Id: scorpion.c,v 1.24 2007/02/02 16:21:54 pak21 Exp $
+ $Id: scorpion.c,v 1.24.2.1 2007/05/03 07:31:42 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -94,7 +93,7 @@
static libspectrum_byte
scorpion_unattached_port( void )
{
- return spectrum_unattached_port( 3 );
+ return spectrum_unattached_port();
}
static libspectrum_byte
Modified: vendor/fuse/current/machines/spec128.c
===================================================================
--- vendor/fuse/current/machines/spec128.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/machines/spec128.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* spec128.c: Spectrum 128K specific routines
- Copyright (c) 1999-2004 Philip Kendall
+ Copyright (c) 1999-2007 Philip Kendall
- $Id: spec128.c,v 1.77 2007/02/02 16:21:54 pak21 Exp $
+ $Id: spec128.c,v 1.77.2.1 2007/05/03 07:31:42 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -61,7 +61,7 @@
libspectrum_byte
spec128_unattached_port( void )
{
- return spectrum_unattached_port( 3 );
+ return spectrum_unattached_port();
}
libspectrum_byte
Modified: vendor/fuse/current/machines/spec16.c
===================================================================
--- vendor/fuse/current/machines/spec16.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/machines/spec16.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* spec16.c: Spectrum 16K specific routines
- Copyright (c) 1999-2005 Philip Kendall
+ Copyright (c) 1999-2007 Philip Kendall
- $Id: spec16.c,v 1.32 2007/02/02 16:21:54 pak21 Exp $
+ $Id: spec16.c,v 1.32.2.1 2007/05/03 07:31:42 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -61,7 +61,7 @@
static libspectrum_byte
spec16_unattached_port( void )
{
- return spectrum_unattached_port( 1 );
+ return spectrum_unattached_port();
}
int spec16_init( fuse_machine_info *machine )
Modified: vendor/fuse/current/machines/spec48.c
===================================================================
--- vendor/fuse/current/machines/spec48.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/machines/spec48.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* spec48.c: Spectrum 48K specific routines
- Copyright (c) 1999-2004 Philip Kendall
+ Copyright (c) 1999-2007 Philip Kendall
- $Id: spec48.c,v 1.72 2007/02/02 16:21:54 pak21 Exp $
+ $Id: spec48.c,v 1.72.2.1 2007/05/03 07:31:42 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -57,7 +57,7 @@
static libspectrum_byte
spec48_unattached_port( void )
{
- return spectrum_unattached_port( 1 );
+ return spectrum_unattached_port();
}
int
Modified: vendor/fuse/current/man/fuse.1
===================================================================
--- vendor/fuse/current/man/fuse.1 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/man/fuse.1 2007-05-12 00:13:58 UTC (rev 364)
@@ -23,7 +23,7 @@
.\" E-mail: phi...@sh...
.\"
.\"
-.TH fuse 1 "11th April, 2007" "Version 0.8.0" "Emulators"
+.TH fuse 1 "11th May, 2007" "Version 0.8.0.1" "Emulators"
.\"
.\"------------------------------------------------------------------
.\"
Modified: vendor/fuse/current/periph.c
===================================================================
--- vendor/fuse/current/periph.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/periph.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* periph.c: code for handling peripherals
Copyright (c) 2005-2007 Philip Kendall
- $Id: periph.c,v 1.20.2.1 2007/03/21 16:21:54 pak21 Exp $
+ $Id: periph.c,v 1.20.2.2 2007/05/03 07:31:42 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -168,9 +168,10 @@
{
libspectrum_byte b;
- ula_contend_port_preio( port );
+ ula_contend_port_early( port );
+ ula_contend_port_late( port );
b = readport_internal( port );
- ula_contend_port_postio( port );
+ tstates++;
return b;
}
@@ -240,9 +241,9 @@
void
writeport( libspectrum_word port, libspectrum_byte b )
{
- ula_contend_port_preio( port );
+ ula_contend_port_early( port );
writeport_internal( port, b );
- ula_contend_port_postio( port );
+ ula_contend_port_late( port ); tstates++;
}
void
Modified: vendor/fuse/current/screenshot.c
===================================================================
--- vendor/fuse/current/screenshot.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/screenshot.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* screenshot.c: Routines for handling .png and .scr screenshots
Copyright (c) 2002-2003 Philip Kendall, Fredrick Meunier
- $Id: screenshot.c,v 1.33 2007/02/02 16:21:52 pak21 Exp $
+ $Id: screenshot.c,v 1.33.2.1 2007/05/01 13:23:51 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -26,6 +26,7 @@
#include <config.h>
#include <errno.h>
+#include <limits.h>
#include <string.h>
#include <libspectrum.h>
Modified: vendor/fuse/current/snapshot.c
===================================================================
--- vendor/fuse/current/snapshot.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/snapshot.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* snapshot.c: snapshot handling routines
Copyright (c) 1999-2004 Philip Kendall
- $Id: snapshot.c,v 1.105 2007/02/02 16:21:52 pak21 Exp $
+ $Id: snapshot.c,v 1.105.2.1 2007/05/09 19:31:02 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -136,9 +136,13 @@
machine = libspectrum_snap_machine( snap );
- error = machine_select( machine );
- if( error ) {
- error = try_fallback_machine( machine ); if( error ) return error;
+ if( machine != machine_current->machine ) {
+ error = machine_select( machine );
+ if( error ) {
+ error = try_fallback_machine( machine ); if( error ) return error;
+ }
+ } else {
+ machine_reset();
}
capabilities = machine_current->capabilities;
Modified: vendor/fuse/current/spectrum.c
===================================================================
--- vendor/fuse/current/spectrum.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/spectrum.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* spectrum.c: Generic Spectrum routines
Copyright (c) 1999-2004 Philip Kendall, Darren Salt
- $Id: spectrum.c,v 1.67 2007/02/02 16:21:52 pak21 Exp $
+ $Id: spectrum.c,v 1.67.2.1 2007/05/03 07:31:42 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -97,7 +97,7 @@
/* What happens if we read from an unattached port? */
libspectrum_byte
-spectrum_unattached_port( int offset )
+spectrum_unattached_port( void )
{
int line, tstates_through_line, column;
@@ -110,24 +110,26 @@
machine_current->line_times[ DISPLAY_BORDER_HEIGHT ] ) /
machine_current->timings.tstates_per_line;
- /* Idle bus if we're in the lower or upper borders */
+ /* Idle bus if we're in the lower border */
if( line >= DISPLAY_HEIGHT ) return 0xff;
- /* Work out where we are in this line */
+ /* Work out where we are in this line, remembering that line_times[] holds
+ the first pixel we display, not the start of where the Spectrum produced
+ the left border */
tstates_through_line = tstates -
- machine_current->line_times[ DISPLAY_BORDER_HEIGHT + line ];
+ machine_current->line_times[ DISPLAY_BORDER_HEIGHT + line ] +
+ ( machine_current->timings.left_border - DISPLAY_BORDER_WIDTH_COLS * 4 );
/* Idle bus if we're in the left border */
- if( tstates_through_line < machine_current->timings.left_border - offset )
+ if( tstates_through_line < machine_current->timings.left_border )
return 0xff;
/* Or the right border or retrace */
if( tstates_through_line >= machine_current->timings.left_border +
- machine_current->timings.horizontal_screen -
- offset )
+ machine_current->timings.horizontal_screen )
return 0xff;
- column = ( ( tstates_through_line + 1 -
+ column = ( ( tstates_through_line -
machine_current->timings.left_border ) / 8 ) * 2;
switch( tstates_through_line % 8 ) {
@@ -137,24 +139,24 @@
http://www.ramsoft.bbk.org/floatingbus.html
However, the timings used are based on the first byte being
- returned at 14335 (48K) and 14361 (128K) respectively, not
+ returned at 14338 (48K) and 14364 (128K) respectively, not
14347 and 14368 as used by Ramsoft.
In contrast to previous versions of this code, Arkanoid and
Sidewize now work. */
/* Attribute bytes */
- case 3: column++;
- case 1:
+ case 5: column++;
+ case 3:
return RAM[ memory_current_screen ][ display_attr_start[line] + column ];
/* Screen data */
- case 2: column++;
- case 0:
+ case 4: column++;
+ case 2:
return RAM[ memory_current_screen ][ display_line_start[line] + column ];
/* Idle bus */
- case 4: case 5: case 6: case 7:
+ case 0: case 1: case 6: case 7:
return 0xff;
}
Modified: vendor/fuse/current/spectrum.h
===================================================================
--- vendor/fuse/current/spectrum.h 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/spectrum.h 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* spectrum.h: Spectrum 48K specific routines
Copyright (c) 1999-2004 Philip Kendall, Darren Salt
- $Id: spectrum.h,v 1.45 2007/02/02 16:21:52 pak21 Exp $
+ $Id: spectrum.h,v 1.45.2.1 2007/05/03 07:31:42 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -66,7 +66,7 @@
} spectrum_raminfo;
-libspectrum_byte spectrum_unattached_port( int offset );
+libspectrum_byte spectrum_unattached_port( void );
/* Miscellaneous stuff */
Modified: vendor/fuse/current/ui/fb/fbdisplay.c
===================================================================
--- vendor/fuse/current/ui/fb/fbdisplay.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/fb/fbdisplay.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -2,7 +2,7 @@
Copyright (c) 2000-2003 Philip Kendall, Matan Ziv-Av, Darren Salt,
Witold Filipczyk
- $Id: fbdisplay.c,v 1.40 2007/02/02 16:21:56 pak21 Exp $
+ $Id: fbdisplay.c,v 1.40.2.1 2007/04/28 00:23:08 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -293,10 +293,10 @@
return 1;
}
-void
+int
uidisplay_hotswap_gfx_mode( void )
{
- return;
+ return 0;
}
void
Modified: vendor/fuse/current/ui/ggi/ggidisplay.c
===================================================================
--- vendor/fuse/current/ui/ggi/ggidisplay.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/ggi/ggidisplay.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* ggiui.c: Routines for dealing with the GGI user interface
Copyright (c) 2003 Catalin Mihaila, Philip Kendall
- $Id: ggidisplay.c,v 1.6 2007/02/02 16:21:56 pak21 Exp $
+ $Id: ggidisplay.c,v 1.6.2.1 2007/04/28 00:23:08 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -160,10 +160,10 @@
}
-void
+int
uidisplay_hotswap_gfx_mode( void )
{
- return;
+ return 0;
}
/* Set one pixel in the display */
Modified: vendor/fuse/current/ui/gtk/gtkdisplay.c
===================================================================
--- vendor/fuse/current/ui/gtk/gtkdisplay.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/gtk/gtkdisplay.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* gtkdisplay.c: GTK+ routines for dealing with the Speccy screen
Copyright (c) 2000-2005 Philip Kendall
- $Id: gtkdisplay.c,v 1.59 2007/02/02 16:21:59 pak21 Exp $
+ $Id: gtkdisplay.c,v 1.59.2.1 2007/04/28 00:23:08 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -332,7 +332,7 @@
scaled_pitch );
}
-void
+int
uidisplay_hotswap_gfx_mode( void )
{
fuse_emulation_pause();
@@ -341,6 +341,8 @@
display_refresh_all();
fuse_emulation_unpause();
+
+ return 0;
}
int
Modified: vendor/fuse/current/ui/scaler/scaler.c
===================================================================
--- vendor/fuse/current/ui/scaler/scaler.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/scaler/scaler.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* scaler.c: code for selecting (etc) scalers
* Copyright (C) 2003 Fredrick Meunier, Philip Kendall
*
- * $Id: scaler.c,v 1.28 2007/01/28 11:27:13 fredm Exp $
+ * $Id: scaler.c,v 1.28.2.1 2007/04/28 00:23:08 fredm Exp $
*
* Originally taken from ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
@@ -136,9 +136,7 @@
scaler_flags = scaler_get_flags( current_scaler );
scaler_expander = scaler_get_expander( current_scaler );
- uidisplay_hotswap_gfx_mode();
-
- return 0;
+ return uidisplay_hotswap_gfx_mode();
}
int
Modified: vendor/fuse/current/ui/scaler/scalers.c
===================================================================
--- vendor/fuse/current/ui/scaler/scalers.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/scaler/scalers.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* scalers.c: the actual graphics scalers
* Copyright (C) 2003 Fredrick Meunier, Philip Kendall
*
- * $Id: scalers.c,v 1.37 2007/01/29 09:21:18 fredm Exp $
+ * $Id: scalers.c,v 1.37.2.1 2007/05/01 13:26:26 fredm Exp $
*
* Originally taken from ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
@@ -35,6 +35,14 @@
#include "ui/ui.h"
#include "ui/uidisplay.h"
+#ifndef MIN
+#define MIN(a,b) (((a) < (b)) ? (a) : (b))
+#endif
+
+#ifndef ABS
+#define ABS(a) ((x)>=0?(x):-(x))
+#endif
+
/* The actual code for the scalers starts here */
#if SCALER_DATA_SIZE == 2
Modified: vendor/fuse/current/ui/sdl/sdldisplay.c
===================================================================
--- vendor/fuse/current/ui/sdl/sdldisplay.c 2007-05-12 00:06:47 UTC (rev 363)
+++ vendor/fuse/current/ui/sdl/sdldisplay.c 2007-05-12 00:13:58 UTC (rev 364)
@@ -1,7 +1,7 @@
/* sdldisplay.c: Routines for dealing with the SDL display
Copyright (c) 2000-2006 Philip Kendall, Matan Ziv-Av, Fredrick Meunier
- $Id: sdldisplay.c,v 1.43 2007/02/02 16:21:59 pak21 Exp $
+ $Id: sdldisplay.c,v 1.43.2.1 2007/04/28 00:23:08 fredm Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -89,7 +89,7 @@
static int num_rects = 0;
static libspectrum_byte sdldisplay_force_full_refresh = 1;
-static int min_fullscreen_width;
+static int max_fullscreen_height;
static int min_fullscreen_height;
/* The current size of the display (in units of DISPLAY_SCREEN_*) */
@@ -225,12 +225,14 @@
at all */
if( modes == (SDL_Rect **) 0 || modes == (SDL_Rect **) -1 ){
/* Just try whatever we have and see what happens */
- min_fullscreen_width = 320;
+ max_fullscreen_height = 480;
min_fullscreen_height = 240;
} else {
+ /* Record the largest supported fullscreen software mode */
+ max_fullscreen_height = modes[0]->h;
+
/* Record the smallest supported fullscreen software mode */
for( i=0; modes[i]; ++i ) {
- min_fullscreen_width = modes[i]->w;
min_fullscreen_height = modes[i]->h;
}
}
@@ -245,7 +247,7 @@
if ( scaler_select_scaler( current_scaler ) )
scaler_select_scaler( SCALER_NORMAL );
- sdldisplay_load_gfx_mode();
+ if( sdldisplay_load_gfx_mode() ) return 1;
SDL_WM_SetCaption( "Fuse", "Fuse" );
@@ -293,15 +295,17 @@
if( settings_current.full_screen ) {
int i = 0;
while( i < SCALER_NUM &&
- image_height * sdldisplay_current_size <= min_fullscreen_height/2 ) {
+ ( image_height*sdldisplay_current_size <= min_fullscreen_height/2 ||
+ image_height*sdldisplay_current_size > max_fullscreen_height ) ) {
if( windowed_scaler == -1) windowed_scaler = current_scaler;
while( !scaler_is_supported(i) ) i++;
scaler_select_scaler( i++ );
sdldisplay_current_size = scaler_get_scaling_factor( current_scaler );
- /* if we failed to find a suitable size scaler, just use what the user had
- originally */
- if( image_height * sdldisplay_current_size <= min_fullscreen_height/2 ) {
- scaler_select_scaler( windowed_scaler );
+ /* if we failed to find a suitable size scaler, just use normal (what the
+ user had originally may be too big) */
+ if( image_height * sdldisplay_current_size <= min_fullscreen_height/2 ||
+ image_height * sdldisplay_current_size > max_fullscreen_height ) {
+ scaler_select_scaler( SCALER_NORMAL );
sdldisplay_current_size = scaler_get_scaling_factor( current_scaler );
}
}
@@ -337,8 +341,8 @@
: SDL_SWSURFACE
);
if( !sdldisplay_gc ) {
- fprintf( stderr, "%s: couldn't create gc\n", fuse_progname );
- return 1;
+ fprintf( stderr, "%s: couldn't create SDL graphics context\n", fuse_progname );
+ fuse_abort();
}
sdldisplay_is_full_screen =
@@ -365,7 +369,7 @@
if( !tmp_screen ) {
fprintf( stderr, "%s:...
[truncated message content] |
|
From: <fr...@us...> - 2008-02-13 21:18:32
|
Revision: 473
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=473&view=rev
Author: fredm
Date: 2008-02-13 13:18:36 -0800 (Wed, 13 Feb 2008)
Log Message:
-----------
To prepare to load . into vendor/fuse/current, perform 3 renames.
* vendor/fuse/current/timer/timer.h: Renamed from
vendor/fuse/current/trdos.h.
* vendor/fuse/current/timer/timer.c: Renamed from
vendor/fuse/current/timer.c.
* vendor/fuse/current/disk/wd_fdc.c: Renamed from
vendor/fuse/current/timer.h.
Added Paths:
-----------
vendor/fuse/current/disk/
vendor/fuse/current/disk/wd_fdc.c
vendor/fuse/current/timer/
vendor/fuse/current/timer/timer.c
vendor/fuse/current/timer/timer.h
Removed Paths:
-------------
vendor/fuse/current/timer.c
vendor/fuse/current/timer.h
vendor/fuse/current/trdos.h
Copied: vendor/fuse/current/disk/wd_fdc.c (from rev 472, vendor/fuse/current/timer.h)
===================================================================
--- vendor/fuse/current/disk/wd_fdc.c (rev 0)
+++ vendor/fuse/current/disk/wd_fdc.c 2008-02-13 21:18:36 UTC (rev 473)
@@ -0,0 +1,62 @@
+/* timer.h: Speed routines for Fuse
+ Copyright (c) 1999-2004 Philip Kendall
+
+ $Id: timer.h,v 1.16 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#ifndef FUSE_TIMER_H
+#define FUSE_TIMER_H
+
+#ifdef UI_SDL
+
+#include "SDL.h"
+
+typedef Uint32 timer_type;
+
+#elif defined(WIN32) /* #ifdef UI_SDL */
+
+#include <windows.h>
+
+typedef DWORD timer_type;
+
+#else /* #ifdef UI_SDL */
+
+#include <sys/time.h>
+#include <time.h>
+
+typedef struct timeval timer_type;
+
+#endif /* #ifdef UI_SDL */
+
+int timer_estimate_reset( void );
+int timer_estimate_speed( void );
+int timer_get_real_time( timer_type *real_time );
+float timer_get_time_difference( timer_type *a, timer_type *b );
+
+int timer_init(void);
+void timer_sleep_ms( int ms );
+int timer_frame( libspectrum_dword last_tstates );
+int timer_end(void);
+
+extern float current_speed;
+
+#endif /* #ifndef FUSE_TIMER_H */
Copied: vendor/fuse/current/timer/timer.c (from rev 472, vendor/fuse/current/timer.c)
===================================================================
--- vendor/fuse/current/timer/timer.c (rev 0)
+++ vendor/fuse/current/timer/timer.c 2008-02-13 21:18:36 UTC (rev 473)
@@ -0,0 +1,330 @@
+/* timer.c: Speed routines for Fuse
+ Copyright (c) 1999-2004 Philip Kendall, Marek Januszewski, Fredrick Meunier
+
+ $Id: timer.c,v 1.39 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "fuse.h"
+#include "event.h"
+#include "settings.h"
+#include "sound.h"
+#include "tape.h"
+#include "timer.h"
+#include "ui/ui.h"
+#include "ula.h"
+
+/*
+ * Routines for estimating emulation speed
+ */
+
+/* The actual time at the end of each of the last 10 emulated seconds */
+static timer_type stored_times[10];
+
+/* Which is the next entry in 'stored_times' that we will update */
+static size_t next_stored_time;
+
+/* The number of frames until we next update 'stored_times' */
+static int frames_until_update;
+
+/* The number of time samples we have for estimating speed */
+static int samples;
+
+float current_speed = 100.0;
+
+static timer_type start_time;
+
+static const int TEN_MS = 10;
+
+int
+timer_estimate_speed( void )
+{
+ timer_type current_time;
+ float difference;
+ int error;
+
+ if( frames_until_update-- ) return 0;
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return error;
+
+ if( samples < 10 ) {
+
+ /* If we don't have enough data, assume we're running at the desired
+ speed :-) */
+ current_speed = settings_current.emulation_speed;
+
+ } else {
+
+ difference =
+ timer_get_time_difference( ¤t_time,
+ &stored_times[ next_stored_time ] );
+ current_speed = 100 * ( 10.0 / difference );
+
+ }
+
+ ui_statusbar_update_speed( current_speed );
+
+ stored_times[ next_stored_time ] = current_time;
+
+ next_stored_time = ( next_stored_time + 1 ) % 10;
+ frames_until_update =
+ ( machine_current->timings.processor_speed /
+ machine_current->timings.tstates_per_frame ) - 1;
+
+ samples++;
+
+ return 0;
+}
+
+#ifdef UI_SDL
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ *real_time = SDL_GetTicks();
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ SDL_Delay( ms );
+}
+
+#elif defined(WIN32) /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ *real_time = GetTickCount();
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ Sleep( ms );
+}
+
+#else /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ int error;
+
+ error = gettimeofday( real_time, NULL );
+ if( error ) {
+ ui_error( UI_ERROR_ERROR, "error getting time: %s", strerror( errno ) );
+ return 1;
+ }
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( a->tv_sec - b->tv_sec ) + ( a->tv_usec - b->tv_usec ) / 1000000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ a->tv_usec += msec * 1000;
+ if( a->tv_usec >= 1000000 ) {
+ a->tv_usec -= 1000000;
+ a->tv_sec += 1;
+ } else if( a->tv_usec < 0 ) {
+ a->tv_usec += 1000000;
+ a->tv_sec -= 1;
+ }
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ usleep( ms * 1000 );
+}
+
+#endif /* #ifdef UI_SDL */
+
+int
+timer_estimate_reset( void )
+{
+ int error = timer_get_real_time( &start_time ); if( error ) return error;
+ samples = 0;
+ next_stored_time = 0;
+ frames_until_update = 0;
+
+ return 0;
+}
+
+int
+timer_init( void )
+{
+ int error = timer_get_real_time( &start_time ); if( error ) return error;
+
+ error = event_add( 0, EVENT_TYPE_TIMER );
+ if( error ) return error;
+
+ return 0;
+}
+
+int
+timer_end( void )
+{
+ return event_remove_type( EVENT_TYPE_TIMER );
+}
+
+#if defined UI_SDL || defined USE_COREAUDIO
+
+/* Callback-style sound based timer */
+#include "sound/sfifo.h"
+
+extern sfifo_t sound_fifo;
+
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+ for(;;) {
+
+ /* Sleep while fifo is full */
+ if( sfifo_space( &sound_fifo ) < sound_framesiz ) {
+ timer_sleep_ms( TEN_MS );
+ } else {
+ break;
+ }
+
+ }
+
+ if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+ EVENT_TYPE_TIMER ) )
+ return 1;
+
+ return 0;
+}
+
+#else /* #ifdef UI_SDL */
+
+/* Blocking socket-style sound based timer */
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+ if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+ EVENT_TYPE_TIMER ) )
+ return 1;
+
+ return 0;
+}
+
+#endif /* #ifdef UI_SDL */
+
+int
+timer_frame( libspectrum_dword last_tstates )
+{
+ int error;
+ timer_type current_time;
+ float difference;
+ float speed = ( settings_current.emulation_speed < 1 ?
+ 100 :
+ settings_current.emulation_speed ) / 100.0;
+ long tstates;
+
+ if( sound_enabled )
+ return timer_frame_callback_sound( last_tstates );
+
+ /* If we're fastloading, just schedule another check in a frame's time
+ and do nothing else */
+ if( settings_current.fastload && tape_is_playing() ) {
+
+ libspectrum_dword next_check_time =
+ last_tstates + machine_current->timings.tstates_per_frame;
+
+ if( event_add( next_check_time, EVENT_TYPE_TIMER ) )
+ return 1;
+
+ } else {
+
+ while( 1 ) {
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+
+ difference = timer_get_time_difference( ¤t_time, &start_time );
+
+ /* Sleep while we are still 10ms ahead */
+ if( difference < 0 ) {
+ timer_sleep_ms( TEN_MS );
+ } else {
+ break;
+ }
+
+ }
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+
+ difference = timer_get_time_difference( ¤t_time, &start_time );
+
+ tstates = ( ( difference + TEN_MS / 1000.0 ) *
+ machine_current->timings.processor_speed
+ ) * speed + 0.5;
+
+ if( event_add( last_tstates + tstates, EVENT_TYPE_TIMER ) ) return 1;
+
+ start_time = current_time;
+ timer_add_time_difference( &start_time, TEN_MS );
+
+ }
+
+ return 0;
+}
Copied: vendor/fuse/current/timer/timer.h (from rev 472, vendor/fuse/current/trdos.h)
===================================================================
--- vendor/fuse/current/timer/timer.h (rev 0)
+++ vendor/fuse/current/timer/timer.h 2008-02-13 21:18:36 UTC (rev 473)
@@ -0,0 +1,81 @@
+/* trdos.h: Routines for handling the Betadisk interface
+ Copyright (c) 2003-2004 Fredrick Meunier, Philip Kendall
+
+ $Id: trdos.h,v 1.14 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+ Fred: fr...@sp...
+
+*/
+
+#ifndef FUSE_TRDOS_H
+#define FUSE_TRDOS_H
+
+#include <libspectrum.h>
+
+extern int trdos_available; /* Is TRDOS available for use? */
+extern int trdos_active; /* TRDOS enabled? */
+
+int trdos_init( void );
+
+void trdos_reset( void );
+
+void trdos_end( void );
+
+void trdos_page( void );
+void trdos_unpage( void );
+void trdos_memory_map( void );
+
+int trdos_from_snapshot( libspectrum_snap *snap, int capabilities );
+int trdos_to_snapshot( libspectrum_snap *snap );
+
+void trdos_cr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sr_read( libspectrum_word port, int *attached );
+
+libspectrum_byte trdos_tr_read( libspectrum_word port, int *attached );
+void trdos_tr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sec_read( libspectrum_word port, int *attached );
+void trdos_sec_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_dr_read( libspectrum_word port, int *attached );
+void trdos_dr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sp_read( libspectrum_word port, int *attached );
+void trdos_sp_write( libspectrum_word port, libspectrum_byte b );
+
+typedef enum trdos_drive_number {
+ TRDOS_DRIVE_A = 0,
+ TRDOS_DRIVE_B,
+ TRDOS_DRIVE_C,
+ TRDOS_DRIVE_D,
+} trdos_drive_number;
+
+int trdos_disk_insert( trdos_drive_number which, const char *filename,
+ int autoload );
+int trdos_disk_insert_default_autoload( trdos_drive_number which,
+ const char *filename );
+int trdos_disk_eject( trdos_drive_number which, int write );
+int trdos_disk_write( trdos_drive_number which, const char *filename );
+int trdos_event_cmd_done( libspectrum_dword last_tstates );
+int trdos_event_index( libspectrum_dword last_tstates );
+
+#endif /* #ifndef FUSE_TRDOS_H */
Deleted: vendor/fuse/current/timer.c
===================================================================
--- vendor/fuse/current/timer.c 2008-02-13 20:57:58 UTC (rev 472)
+++ vendor/fuse/current/timer.c 2008-02-13 21:18:36 UTC (rev 473)
@@ -1,330 +0,0 @@
-/* timer.c: Speed routines for Fuse
- Copyright (c) 1999-2004 Philip Kendall, Marek Januszewski, Fredrick Meunier
-
- $Id: timer.c,v 1.39 2007/02/02 16:21:52 pak21 Exp $
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- Author contact information:
-
- E-mail: phi...@sh...
-
-*/
-
-#include <config.h>
-
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "fuse.h"
-#include "event.h"
-#include "settings.h"
-#include "sound.h"
-#include "tape.h"
-#include "timer.h"
-#include "ui/ui.h"
-#include "ula.h"
-
-/*
- * Routines for estimating emulation speed
- */
-
-/* The actual time at the end of each of the last 10 emulated seconds */
-static timer_type stored_times[10];
-
-/* Which is the next entry in 'stored_times' that we will update */
-static size_t next_stored_time;
-
-/* The number of frames until we next update 'stored_times' */
-static int frames_until_update;
-
-/* The number of time samples we have for estimating speed */
-static int samples;
-
-float current_speed = 100.0;
-
-static timer_type start_time;
-
-static const int TEN_MS = 10;
-
-int
-timer_estimate_speed( void )
-{
- timer_type current_time;
- float difference;
- int error;
-
- if( frames_until_update-- ) return 0;
-
- error = timer_get_real_time( ¤t_time ); if( error ) return error;
-
- if( samples < 10 ) {
-
- /* If we don't have enough data, assume we're running at the desired
- speed :-) */
- current_speed = settings_current.emulation_speed;
-
- } else {
-
- difference =
- timer_get_time_difference( ¤t_time,
- &stored_times[ next_stored_time ] );
- current_speed = 100 * ( 10.0 / difference );
-
- }
-
- ui_statusbar_update_speed( current_speed );
-
- stored_times[ next_stored_time ] = current_time;
-
- next_stored_time = ( next_stored_time + 1 ) % 10;
- frames_until_update =
- ( machine_current->timings.processor_speed /
- machine_current->timings.tstates_per_frame ) - 1;
-
- samples++;
-
- return 0;
-}
-
-#ifdef UI_SDL
-
-int
-timer_get_real_time( timer_type *real_time )
-{
- *real_time = SDL_GetTicks();
-
- return 0;
-}
-
-float
-timer_get_time_difference( timer_type *a, timer_type *b )
-{
- return ( (long)*a - (long)*b ) / 1000.0;
-}
-
-void
-timer_add_time_difference( timer_type *a, long msec )
-{
- *a += msec;
-}
-
-void
-timer_sleep_ms( int ms )
-{
- SDL_Delay( ms );
-}
-
-#elif defined(WIN32) /* #ifdef UI_SDL */
-
-int
-timer_get_real_time( timer_type *real_time )
-{
- *real_time = GetTickCount();
-
- return 0;
-}
-
-float
-timer_get_time_difference( timer_type *a, timer_type *b )
-{
- return ( (long)*a - (long)*b ) / 1000.0;
-}
-
-void
-timer_add_time_difference( timer_type *a, long msec )
-{
- *a += msec;
-}
-
-void
-timer_sleep_ms( int ms )
-{
- Sleep( ms );
-}
-
-#else /* #ifdef UI_SDL */
-
-int
-timer_get_real_time( timer_type *real_time )
-{
- int error;
-
- error = gettimeofday( real_time, NULL );
- if( error ) {
- ui_error( UI_ERROR_ERROR, "error getting time: %s", strerror( errno ) );
- return 1;
- }
-
- return 0;
-}
-
-float
-timer_get_time_difference( timer_type *a, timer_type *b )
-{
- return ( a->tv_sec - b->tv_sec ) + ( a->tv_usec - b->tv_usec ) / 1000000.0;
-}
-
-void
-timer_add_time_difference( timer_type *a, long msec )
-{
- a->tv_usec += msec * 1000;
- if( a->tv_usec >= 1000000 ) {
- a->tv_usec -= 1000000;
- a->tv_sec += 1;
- } else if( a->tv_usec < 0 ) {
- a->tv_usec += 1000000;
- a->tv_sec -= 1;
- }
-}
-
-void
-timer_sleep_ms( int ms )
-{
- usleep( ms * 1000 );
-}
-
-#endif /* #ifdef UI_SDL */
-
-int
-timer_estimate_reset( void )
-{
- int error = timer_get_real_time( &start_time ); if( error ) return error;
- samples = 0;
- next_stored_time = 0;
- frames_until_update = 0;
-
- return 0;
-}
-
-int
-timer_init( void )
-{
- int error = timer_get_real_time( &start_time ); if( error ) return error;
-
- error = event_add( 0, EVENT_TYPE_TIMER );
- if( error ) return error;
-
- return 0;
-}
-
-int
-timer_end( void )
-{
- return event_remove_type( EVENT_TYPE_TIMER );
-}
-
-#if defined UI_SDL || defined USE_COREAUDIO
-
-/* Callback-style sound based timer */
-#include "sound/sfifo.h"
-
-extern sfifo_t sound_fifo;
-
-int
-timer_frame_callback_sound( libspectrum_dword last_tstates )
-{
- for(;;) {
-
- /* Sleep while fifo is full */
- if( sfifo_space( &sound_fifo ) < sound_framesiz ) {
- timer_sleep_ms( TEN_MS );
- } else {
- break;
- }
-
- }
-
- if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
- EVENT_TYPE_TIMER ) )
- return 1;
-
- return 0;
-}
-
-#else /* #ifdef UI_SDL */
-
-/* Blocking socket-style sound based timer */
-int
-timer_frame_callback_sound( libspectrum_dword last_tstates )
-{
- if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
- EVENT_TYPE_TIMER ) )
- return 1;
-
- return 0;
-}
-
-#endif /* #ifdef UI_SDL */
-
-int
-timer_frame( libspectrum_dword last_tstates )
-{
- int error;
- timer_type current_time;
- float difference;
- float speed = ( settings_current.emulation_speed < 1 ?
- 100 :
- settings_current.emulation_speed ) / 100.0;
- long tstates;
-
- if( sound_enabled )
- return timer_frame_callback_sound( last_tstates );
-
- /* If we're fastloading, just schedule another check in a frame's time
- and do nothing else */
- if( settings_current.fastload && tape_is_playing() ) {
-
- libspectrum_dword next_check_time =
- last_tstates + machine_current->timings.tstates_per_frame;
-
- if( event_add( next_check_time, EVENT_TYPE_TIMER ) )
- return 1;
-
- } else {
-
- while( 1 ) {
-
- error = timer_get_real_time( ¤t_time ); if( error ) return 1;
-
- difference = timer_get_time_difference( ¤t_time, &start_time );
-
- /* Sleep while we are still 10ms ahead */
- if( difference < 0 ) {
- timer_sleep_ms( TEN_MS );
- } else {
- break;
- }
-
- }
-
- error = timer_get_real_time( ¤t_time ); if( error ) return 1;
-
- difference = timer_get_time_difference( ¤t_time, &start_time );
-
- tstates = ( ( difference + TEN_MS / 1000.0 ) *
- machine_current->timings.processor_speed
- ) * speed + 0.5;
-
- if( event_add( last_tstates + tstates, EVENT_TYPE_TIMER ) ) return 1;
-
- start_time = current_time;
- timer_add_time_difference( &start_time, TEN_MS );
-
- }
-
- return 0;
-}
Deleted: vendor/fuse/current/timer.h
===================================================================
--- vendor/fuse/current/timer.h 2008-02-13 20:57:58 UTC (rev 472)
+++ vendor/fuse/current/timer.h 2008-02-13 21:18:36 UTC (rev 473)
@@ -1,62 +0,0 @@
-/* timer.h: Speed routines for Fuse
- Copyright (c) 1999-2004 Philip Kendall
-
- $Id: timer.h,v 1.16 2007/02/02 16:21:52 pak21 Exp $
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- Author contact information:
-
- E-mail: phi...@sh...
-
-*/
-
-#ifndef FUSE_TIMER_H
-#define FUSE_TIMER_H
-
-#ifdef UI_SDL
-
-#include "SDL.h"
-
-typedef Uint32 timer_type;
-
-#elif defined(WIN32) /* #ifdef UI_SDL */
-
-#include <windows.h>
-
-typedef DWORD timer_type;
-
-#else /* #ifdef UI_SDL */
-
-#include <sys/time.h>
-#include <time.h>
-
-typedef struct timeval timer_type;
-
-#endif /* #ifdef UI_SDL */
-
-int timer_estimate_reset( void );
-int timer_estimate_speed( void );
-int timer_get_real_time( timer_type *real_time );
-float timer_get_time_difference( timer_type *a, timer_type *b );
-
-int timer_init(void);
-void timer_sleep_ms( int ms );
-int timer_frame( libspectrum_dword last_tstates );
-int timer_end(void);
-
-extern float current_speed;
-
-#endif /* #ifndef FUSE_TIMER_H */
Deleted: vendor/fuse/current/trdos.h
===================================================================
--- vendor/fuse/current/trdos.h 2008-02-13 20:57:58 UTC (rev 472)
+++ vendor/fuse/current/trdos.h 2008-02-13 21:18:36 UTC (rev 473)
@@ -1,81 +0,0 @@
-/* trdos.h: Routines for handling the Betadisk interface
- Copyright (c) 2003-2004 Fredrick Meunier, Philip Kendall
-
- $Id: trdos.h,v 1.14 2007/02/02 16:21:52 pak21 Exp $
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- Author contact information:
-
- E-mail: phi...@sh...
-
- Fred: fr...@sp...
-
-*/
-
-#ifndef FUSE_TRDOS_H
-#define FUSE_TRDOS_H
-
-#include <libspectrum.h>
-
-extern int trdos_available; /* Is TRDOS available for use? */
-extern int trdos_active; /* TRDOS enabled? */
-
-int trdos_init( void );
-
-void trdos_reset( void );
-
-void trdos_end( void );
-
-void trdos_page( void );
-void trdos_unpage( void );
-void trdos_memory_map( void );
-
-int trdos_from_snapshot( libspectrum_snap *snap, int capabilities );
-int trdos_to_snapshot( libspectrum_snap *snap );
-
-void trdos_cr_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_sr_read( libspectrum_word port, int *attached );
-
-libspectrum_byte trdos_tr_read( libspectrum_word port, int *attached );
-void trdos_tr_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_sec_read( libspectrum_word port, int *attached );
-void trdos_sec_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_dr_read( libspectrum_word port, int *attached );
-void trdos_dr_write( libspectrum_word port, libspectrum_byte b );
-
-libspectrum_byte trdos_sp_read( libspectrum_word port, int *attached );
-void trdos_sp_write( libspectrum_word port, libspectrum_byte b );
-
-typedef enum trdos_drive_number {
- TRDOS_DRIVE_A = 0,
- TRDOS_DRIVE_B,
- TRDOS_DRIVE_C,
- TRDOS_DRIVE_D,
-} trdos_drive_number;
-
-int trdos_disk_insert( trdos_drive_number which, const char *filename,
- int autoload );
-int trdos_disk_insert_default_autoload( trdos_drive_number which,
- const char *filename );
-int trdos_disk_eject( trdos_drive_number which, int write );
-int trdos_disk_write( trdos_drive_number which, const char *filename );
-int trdos_event_cmd_done( libspectrum_dword last_tstates );
-int trdos_event_index( libspectrum_dword last_tstates );
-
-#endif /* #ifndef FUSE_TRDOS_H */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fr...@us...> - 2008-02-14 11:33:36
|
Revision: 474
http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=474&view=rev
Author: fredm
Date: 2008-02-14 03:33:39 -0800 (Thu, 14 Feb 2008)
Log Message:
-----------
Revert last bad commit (pilot error on svn_load_dirs.pl).
Added Paths:
-----------
vendor/fuse/current/timer.c
vendor/fuse/current/timer.h
vendor/fuse/current/trdos.h
Removed Paths:
-------------
vendor/fuse/current/disk/
vendor/fuse/current/timer/
Copied: vendor/fuse/current/timer.c (from rev 472, vendor/fuse/current/timer.c)
===================================================================
--- vendor/fuse/current/timer.c (rev 0)
+++ vendor/fuse/current/timer.c 2008-02-14 11:33:39 UTC (rev 474)
@@ -0,0 +1,330 @@
+/* timer.c: Speed routines for Fuse
+ Copyright (c) 1999-2004 Philip Kendall, Marek Januszewski, Fredrick Meunier
+
+ $Id: timer.c,v 1.39 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#include <config.h>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "fuse.h"
+#include "event.h"
+#include "settings.h"
+#include "sound.h"
+#include "tape.h"
+#include "timer.h"
+#include "ui/ui.h"
+#include "ula.h"
+
+/*
+ * Routines for estimating emulation speed
+ */
+
+/* The actual time at the end of each of the last 10 emulated seconds */
+static timer_type stored_times[10];
+
+/* Which is the next entry in 'stored_times' that we will update */
+static size_t next_stored_time;
+
+/* The number of frames until we next update 'stored_times' */
+static int frames_until_update;
+
+/* The number of time samples we have for estimating speed */
+static int samples;
+
+float current_speed = 100.0;
+
+static timer_type start_time;
+
+static const int TEN_MS = 10;
+
+int
+timer_estimate_speed( void )
+{
+ timer_type current_time;
+ float difference;
+ int error;
+
+ if( frames_until_update-- ) return 0;
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return error;
+
+ if( samples < 10 ) {
+
+ /* If we don't have enough data, assume we're running at the desired
+ speed :-) */
+ current_speed = settings_current.emulation_speed;
+
+ } else {
+
+ difference =
+ timer_get_time_difference( ¤t_time,
+ &stored_times[ next_stored_time ] );
+ current_speed = 100 * ( 10.0 / difference );
+
+ }
+
+ ui_statusbar_update_speed( current_speed );
+
+ stored_times[ next_stored_time ] = current_time;
+
+ next_stored_time = ( next_stored_time + 1 ) % 10;
+ frames_until_update =
+ ( machine_current->timings.processor_speed /
+ machine_current->timings.tstates_per_frame ) - 1;
+
+ samples++;
+
+ return 0;
+}
+
+#ifdef UI_SDL
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ *real_time = SDL_GetTicks();
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ SDL_Delay( ms );
+}
+
+#elif defined(WIN32) /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ *real_time = GetTickCount();
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( (long)*a - (long)*b ) / 1000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ *a += msec;
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ Sleep( ms );
+}
+
+#else /* #ifdef UI_SDL */
+
+int
+timer_get_real_time( timer_type *real_time )
+{
+ int error;
+
+ error = gettimeofday( real_time, NULL );
+ if( error ) {
+ ui_error( UI_ERROR_ERROR, "error getting time: %s", strerror( errno ) );
+ return 1;
+ }
+
+ return 0;
+}
+
+float
+timer_get_time_difference( timer_type *a, timer_type *b )
+{
+ return ( a->tv_sec - b->tv_sec ) + ( a->tv_usec - b->tv_usec ) / 1000000.0;
+}
+
+void
+timer_add_time_difference( timer_type *a, long msec )
+{
+ a->tv_usec += msec * 1000;
+ if( a->tv_usec >= 1000000 ) {
+ a->tv_usec -= 1000000;
+ a->tv_sec += 1;
+ } else if( a->tv_usec < 0 ) {
+ a->tv_usec += 1000000;
+ a->tv_sec -= 1;
+ }
+}
+
+void
+timer_sleep_ms( int ms )
+{
+ usleep( ms * 1000 );
+}
+
+#endif /* #ifdef UI_SDL */
+
+int
+timer_estimate_reset( void )
+{
+ int error = timer_get_real_time( &start_time ); if( error ) return error;
+ samples = 0;
+ next_stored_time = 0;
+ frames_until_update = 0;
+
+ return 0;
+}
+
+int
+timer_init( void )
+{
+ int error = timer_get_real_time( &start_time ); if( error ) return error;
+
+ error = event_add( 0, EVENT_TYPE_TIMER );
+ if( error ) return error;
+
+ return 0;
+}
+
+int
+timer_end( void )
+{
+ return event_remove_type( EVENT_TYPE_TIMER );
+}
+
+#if defined UI_SDL || defined USE_COREAUDIO
+
+/* Callback-style sound based timer */
+#include "sound/sfifo.h"
+
+extern sfifo_t sound_fifo;
+
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+ for(;;) {
+
+ /* Sleep while fifo is full */
+ if( sfifo_space( &sound_fifo ) < sound_framesiz ) {
+ timer_sleep_ms( TEN_MS );
+ } else {
+ break;
+ }
+
+ }
+
+ if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+ EVENT_TYPE_TIMER ) )
+ return 1;
+
+ return 0;
+}
+
+#else /* #ifdef UI_SDL */
+
+/* Blocking socket-style sound based timer */
+int
+timer_frame_callback_sound( libspectrum_dword last_tstates )
+{
+ if( event_add( last_tstates + machine_current->timings.tstates_per_frame,
+ EVENT_TYPE_TIMER ) )
+ return 1;
+
+ return 0;
+}
+
+#endif /* #ifdef UI_SDL */
+
+int
+timer_frame( libspectrum_dword last_tstates )
+{
+ int error;
+ timer_type current_time;
+ float difference;
+ float speed = ( settings_current.emulation_speed < 1 ?
+ 100 :
+ settings_current.emulation_speed ) / 100.0;
+ long tstates;
+
+ if( sound_enabled )
+ return timer_frame_callback_sound( last_tstates );
+
+ /* If we're fastloading, just schedule another check in a frame's time
+ and do nothing else */
+ if( settings_current.fastload && tape_is_playing() ) {
+
+ libspectrum_dword next_check_time =
+ last_tstates + machine_current->timings.tstates_per_frame;
+
+ if( event_add( next_check_time, EVENT_TYPE_TIMER ) )
+ return 1;
+
+ } else {
+
+ while( 1 ) {
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+
+ difference = timer_get_time_difference( ¤t_time, &start_time );
+
+ /* Sleep while we are still 10ms ahead */
+ if( difference < 0 ) {
+ timer_sleep_ms( TEN_MS );
+ } else {
+ break;
+ }
+
+ }
+
+ error = timer_get_real_time( ¤t_time ); if( error ) return 1;
+
+ difference = timer_get_time_difference( ¤t_time, &start_time );
+
+ tstates = ( ( difference + TEN_MS / 1000.0 ) *
+ machine_current->timings.processor_speed
+ ) * speed + 0.5;
+
+ if( event_add( last_tstates + tstates, EVENT_TYPE_TIMER ) ) return 1;
+
+ start_time = current_time;
+ timer_add_time_difference( &start_time, TEN_MS );
+
+ }
+
+ return 0;
+}
Copied: vendor/fuse/current/timer.h (from rev 472, vendor/fuse/current/timer.h)
===================================================================
--- vendor/fuse/current/timer.h (rev 0)
+++ vendor/fuse/current/timer.h 2008-02-14 11:33:39 UTC (rev 474)
@@ -0,0 +1,62 @@
+/* timer.h: Speed routines for Fuse
+ Copyright (c) 1999-2004 Philip Kendall
+
+ $Id: timer.h,v 1.16 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+*/
+
+#ifndef FUSE_TIMER_H
+#define FUSE_TIMER_H
+
+#ifdef UI_SDL
+
+#include "SDL.h"
+
+typedef Uint32 timer_type;
+
+#elif defined(WIN32) /* #ifdef UI_SDL */
+
+#include <windows.h>
+
+typedef DWORD timer_type;
+
+#else /* #ifdef UI_SDL */
+
+#include <sys/time.h>
+#include <time.h>
+
+typedef struct timeval timer_type;
+
+#endif /* #ifdef UI_SDL */
+
+int timer_estimate_reset( void );
+int timer_estimate_speed( void );
+int timer_get_real_time( timer_type *real_time );
+float timer_get_time_difference( timer_type *a, timer_type *b );
+
+int timer_init(void);
+void timer_sleep_ms( int ms );
+int timer_frame( libspectrum_dword last_tstates );
+int timer_end(void);
+
+extern float current_speed;
+
+#endif /* #ifndef FUSE_TIMER_H */
Copied: vendor/fuse/current/trdos.h (from rev 472, vendor/fuse/current/trdos.h)
===================================================================
--- vendor/fuse/current/trdos.h (rev 0)
+++ vendor/fuse/current/trdos.h 2008-02-14 11:33:39 UTC (rev 474)
@@ -0,0 +1,81 @@
+/* trdos.h: Routines for handling the Betadisk interface
+ Copyright (c) 2003-2004 Fredrick Meunier, Philip Kendall
+
+ $Id: trdos.h,v 1.14 2007/02/02 16:21:52 pak21 Exp $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author contact information:
+
+ E-mail: phi...@sh...
+
+ Fred: fr...@sp...
+
+*/
+
+#ifndef FUSE_TRDOS_H
+#define FUSE_TRDOS_H
+
+#include <libspectrum.h>
+
+extern int trdos_available; /* Is TRDOS available for use? */
+extern int trdos_active; /* TRDOS enabled? */
+
+int trdos_init( void );
+
+void trdos_reset( void );
+
+void trdos_end( void );
+
+void trdos_page( void );
+void trdos_unpage( void );
+void trdos_memory_map( void );
+
+int trdos_from_snapshot( libspectrum_snap *snap, int capabilities );
+int trdos_to_snapshot( libspectrum_snap *snap );
+
+void trdos_cr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sr_read( libspectrum_word port, int *attached );
+
+libspectrum_byte trdos_tr_read( libspectrum_word port, int *attached );
+void trdos_tr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sec_read( libspectrum_word port, int *attached );
+void trdos_sec_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_dr_read( libspectrum_word port, int *attached );
+void trdos_dr_write( libspectrum_word port, libspectrum_byte b );
+
+libspectrum_byte trdos_sp_read( libspectrum_word port, int *attached );
+void trdos_sp_write( libspectrum_word port, libspectrum_byte b );
+
+typedef enum trdos_drive_number {
+ TRDOS_DRIVE_A = 0,
+ TRDOS_DRIVE_B,
+ TRDOS_DRIVE_C,
+ TRDOS_DRIVE_D,
+} trdos_drive_number;
+
+int trdos_disk_insert( trdos_drive_number which, const char *filename,
+ int autoload );
+int trdos_disk_insert_default_autoload( trdos_drive_number which,
+ const char *filename );
+int trdos_disk_eject( trdos_drive_number which, int write );
+int trdos_disk_write( trdos_drive_number which, const char *filename );
+int trdos_event_cmd_done( libspectrum_dword last_tstates );
+int trdos_event_index( libspectrum_dword last_tstates );
+
+#endif /* #ifndef FUSE_TRDOS_H */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|