Thread: [Fuse-for-macosx-commits] SF.net SVN: fuse-for-macosx: [311] branches/Release-0_8_0
Brought to you by:
fredm
|
From: <fr...@us...> - 2007-03-10 12:53:35
|
Revision: 311
http://svn.sourceforge.net/fuse-for-macosx/?rev=311&view=rev
Author: fredm
Date: 2007-03-10 04:53:34 -0800 (Sat, 10 Mar 2007)
Log Message:
-----------
Merge up to libspectrum-0.3.0-pre2 and fuse-20070310.
Modified Paths:
--------------
branches/Release-0_8_0/fuse/configure.in
branches/Release-0_8_0/fuse/display.c
branches/Release-0_8_0/fuse/fuse.cpp
branches/Release-0_8_0/fuse/fusepb/English.lproj/InfoPlist.strings
branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist
branches/Release-0_8_0/fuse/fusepb/SDLMain.mm
branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/divide.html
branches/Release-0_8_0/fuse/hacking/ChangeLog
branches/Release-0_8_0/fuse/hacking/cvs-tags
branches/Release-0_8_0/fuse/if1.c
branches/Release-0_8_0/fuse/man/fuse.1
branches/Release-0_8_0/fuse/rzx.c
branches/Release-0_8_0/fuse/settings.dat
branches/Release-0_8_0/fuse/sound/aosound.c
branches/Release-0_8_0/fuse/sound/coreaudiosound.c
branches/Release-0_8_0/fuse/sound/sdlsound.c
branches/Release-0_8_0/fuse/sound.c
branches/Release-0_8_0/fuse/ui/gtk/gtkui.c
branches/Release-0_8_0/fuse/ui.c
branches/Release-0_8_0/fuse/utils.c
branches/Release-0_8_0/fuse/widget/filesel.c
branches/Release-0_8_0/libspectrum/Info.plist
branches/Release-0_8_0/libspectrum/libspectrum/ChangeLog
branches/Release-0_8_0/libspectrum/libspectrum/doc/libspectrum.txt
branches/Release-0_8_0/libspectrum/libspectrum/hacking/ChangeLog
branches/Release-0_8_0/libspectrum/libspectrum/internals.h
branches/Release-0_8_0/libspectrum/libspectrum/libspectrum.h.in
branches/Release-0_8_0/libspectrum/libspectrum/rzx.c
branches/Release-0_8_0/libspectrum/libspectrum/tzx_read.c
branches/Release-0_8_0/libspectrum/libspectrum.h
Modified: branches/Release-0_8_0/fuse/configure.in
===================================================================
--- branches/Release-0_8_0/fuse/configure.in 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/configure.in 2007-03-10 12:53:34 UTC (rev 311)
@@ -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
@@ -389,9 +389,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: branches/Release-0_8_0/fuse/display.c
===================================================================
--- branches/Release-0_8_0/fuse/display.c 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/display.c 2007-03-10 12:53:34 UTC (rev 311)
@@ -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
@@ -657,7 +657,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: branches/Release-0_8_0/fuse/fuse.cpp
===================================================================
--- branches/Release-0_8_0/fuse/fuse.cpp 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/fuse.cpp 2007-03-10 12:53:34 UTC (rev 311)
@@ -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
@@ -115,6 +115,7 @@
const char *zxatasp_master, *zxatasp_slave;
const char *zxcf;
const char *divide_master, *divide_slave;
+ const char *mdr[8];
} start_files_t;
@@ -477,6 +478,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;
}
@@ -485,7 +495,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;
@@ -539,6 +549,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;
@@ -561,7 +580,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 ) {
@@ -640,6 +659,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: branches/Release-0_8_0/fuse/fusepb/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)
Modified: branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist 2007-03-10 12:53:34 UTC (rev 311)
@@ -361,11 +361,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>0.8.0-pre1</string>
+ <string>0.8.0-pre2</string>
<key>CFBundleSignature</key>
<string>FUSE</string>
<key>CFBundleVersion</key>
- <string>0.8.0-pre1</string>
+ <string>0.8.0-pre2</string>
<key>NSMainNibFile</key>
<string>SDLMain</string>
<key>NSPrincipalClass</key>
Modified: branches/Release-0_8_0/fuse/fusepb/SDLMain.mm
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/SDLMain.mm 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/fusepb/SDLMain.mm 2007-03-10 12:53:34 UTC (rev 311)
@@ -24,6 +24,7 @@
#include "dck.h"
#include "display.h"
#include "fuse.h"
+#include "if1.h"
#include "if2.h"
#include "machines/specplus3.h"
#include "rzx.h"
@@ -432,6 +433,10 @@
error = if2_insert( fsrep );
break;
+ case LIBSPECTRUM_CLASS_MICRODRIVE:
+ if1_mdr_insert( fsrep, -1 );
+ break;
+
default:
fprintf( stderr, "%s: loadFile: unknown class %d!\n", fuse_progname, type );
fuse_abort();
Modified: branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/divide.html
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/divide.html 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/divide.html 2007-03-10 12:53:34 UTC (rev 311)
@@ -11,11 +11,11 @@
<p>
<font face="Lucida Grande,Helvetica,Arial">The DivIDE is another IDE
interface for the Spectrum, of which full details can be found at
-http://insert.divide.url/. The interface can be activated via the </font><font
+http://baze.au.com/divide/. The interface can be activated via the </font><font
face="Lucida Grande,Helvetica,Arial"><span class="emphasis"><em>DivIDE
interface</em></span></font><font face="Lucida Grande,Helvetica,Arial">
option on the </font><font face="Lucida Grande,Helvetica,Arial"><span
- class="emphasis"><em>Options,
+ class="emphasis"><em>Preferences,
Peripherals...</em></span></font><font
face="Lucida Grande,Helvetica,Arial"> dialog, and the state of its
write protect jumper controlled via the </font><font
Modified: branches/Release-0_8_0/fuse/hacking/ChangeLog
===================================================================
--- branches/Release-0_8_0/fuse/hacking/ChangeLog 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/hacking/ChangeLog 2007-03-10 12:53:34 UTC (rev 311)
@@ -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: branches/Release-0_8_0/fuse/hacking/cvs-tags
===================================================================
--- branches/Release-0_8_0/fuse/hacking/cvs-tags 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/hacking/cvs-tags 2007-03-10 12:53:34 UTC (rev 311)
@@ -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: branches/Release-0_8_0/fuse/if1.c
===================================================================
--- branches/Release-0_8_0/fuse/if1.c 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/if1.c 2007-03-10 12:53:34 UTC (rev 311)
@@ -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: branches/Release-0_8_0/fuse/man/fuse.1
===================================================================
--- branches/Release-0_8_0/fuse/man/fuse.1 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/man/fuse.1 2007-03-10 12:53:34 UTC (rev 311)
@@ -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: branches/Release-0_8_0/fuse/rzx.c
===================================================================
--- branches/Release-0_8_0/fuse/rzx.c 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/rzx.c 2007-03-10 12:53:34 UTC (rev 311)
@@ -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: branches/Release-0_8_0/fuse/settings.dat
===================================================================
--- branches/Release-0_8_0/fuse/settings.dat 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/settings.dat 2007-03-10 12:53:34 UTC (rev 311)
@@ -2,7 +2,7 @@
# Copyright (c) 2002-2004 Philip Kendall
# Copyright (c) 2003-2005 Fredrick Meunier
-# $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
@@ -117,6 +117,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
@@ -137,6 +145,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: branches/Release-0_8_0/fuse/sound/aosound.c
===================================================================
--- branches/Release-0_8_0/fuse/sound/aosound.c 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/sound/aosound.c 2007-03-10 12:53:34 UTC (rev 311)
@@ -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: branches/Release-0_8_0/fuse/sound/coreaudiosound.c
===================================================================
--- branches/Release-0_8_0/fuse/sound/coreaudiosound.c 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/sound/coreaudiosound.c 2007-03-10 12:53:34 UTC (rev 311)
@@ -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: branches/Release-0_8_0/fuse/sound/sdlsound.c
===================================================================
--- branches/Release-0_8_0/fuse/sound/sdlsound.c 2007-03-10 12:02:19 UTC (rev 310)
+++ branches/Release-0_8_0/fuse/sound/sdlsound.c 2007-03-10 12:53:34 UTC (rev 311)
@@ -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 @@...
[truncated message content] |
|
From: <fr...@us...> - 2007-05-12 01:09:14
|
Revision: 366
http://svn.sourceforge.net/fuse-for-macosx/?rev=366&view=rev
Author: fredm
Date: 2007-05-11 18:09:14 -0700 (Fri, 11 May 2007)
Log Message:
-----------
Merge up to vendor fuse-0.8.0.1 and libspectrum-0.3.0.1 releases.
Modified Paths:
--------------
branches/Release-0_8_0/fuse/ChangeLog
branches/Release-0_8_0/fuse/README
branches/Release-0_8_0/fuse/acinclude.m4
branches/Release-0_8_0/fuse/configure.in
branches/Release-0_8_0/fuse/fusepb/English.lproj/InfoPlist.strings
branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist
branches/Release-0_8_0/fuse/fusepb/config.h
branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/changelog.html
branches/Release-0_8_0/fuse/hacking/ChangeLog
branches/Release-0_8_0/fuse/hacking/cvs-tags
branches/Release-0_8_0/fuse/hacking/ui.txt
branches/Release-0_8_0/fuse/lib/Makefile.am
branches/Release-0_8_0/fuse/machines/pentagon.c
branches/Release-0_8_0/fuse/machines/scorpion.c
branches/Release-0_8_0/fuse/machines/spec128.c
branches/Release-0_8_0/fuse/machines/spec16.c
branches/Release-0_8_0/fuse/machines/spec48.c
branches/Release-0_8_0/fuse/man/fuse.1
branches/Release-0_8_0/fuse/periph.c
branches/Release-0_8_0/fuse/screenshot.c
branches/Release-0_8_0/fuse/snapshot.c
branches/Release-0_8_0/fuse/spectrum.c
branches/Release-0_8_0/fuse/spectrum.h
branches/Release-0_8_0/fuse/ui/fb/fbdisplay.c
branches/Release-0_8_0/fuse/ui/ggi/ggidisplay.c
branches/Release-0_8_0/fuse/ui/gtk/gtkdisplay.c
branches/Release-0_8_0/fuse/ui/scaler/scaler.c
branches/Release-0_8_0/fuse/ui/scaler/scalers.cpp
branches/Release-0_8_0/fuse/ui/sdl/sdldisplay.c
branches/Release-0_8_0/fuse/ui/svga/svgadisplay.c
branches/Release-0_8_0/fuse/ui/uidisplay.h
branches/Release-0_8_0/fuse/ui/win32/win32display.c
branches/Release-0_8_0/fuse/ui/xlib/xdisplay.c
branches/Release-0_8_0/fuse/uidisplay.c
branches/Release-0_8_0/fuse/ula.c
branches/Release-0_8_0/fuse/ula.h
branches/Release-0_8_0/fuse/widget/Makefile.am
branches/Release-0_8_0/fuse/widget/menu.c
branches/Release-0_8_0/fuse/widget/pokefinder.c
branches/Release-0_8_0/libspectrum/Info.plist
branches/Release-0_8_0/libspectrum/libspectrum/ChangeLog
branches/Release-0_8_0/libspectrum/libspectrum/Makefile.am
branches/Release-0_8_0/libspectrum/libspectrum/README
branches/Release-0_8_0/libspectrum/libspectrum/acinclude.m4
branches/Release-0_8_0/libspectrum/libspectrum/configure.in
branches/Release-0_8_0/libspectrum/libspectrum/doc/cvs-tags
branches/Release-0_8_0/libspectrum/libspectrum/doc/libspectrum.3
branches/Release-0_8_0/libspectrum/libspectrum/doc/libspectrum.txt
branches/Release-0_8_0/libspectrum/libspectrum/hacking/ChangeLog
branches/Release-0_8_0/libspectrum/libspectrum/libspectrum.h.in
branches/Release-0_8_0/libspectrum/libspectrum/tap.c
branches/Release-0_8_0/libspectrum/libspectrum/tzx_read.c
branches/Release-0_8_0/libspectrum/libspectrum.h
branches/Release-0_8_0/libspectrum/libspectrum.xcodeproj/project.pbxproj
Added Paths:
-----------
branches/Release-0_8_0/libspectrum/libspectrum/hacking/.cvsignore
branches/Release-0_8_0/libspectrum/libspectrum/hacking/Makefile.am
Modified: branches/Release-0_8_0/fuse/ChangeLog
===================================================================
--- branches/Release-0_8_0/fuse/ChangeLog 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/ChangeLog 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/README
===================================================================
--- branches/Release-0_8_0/fuse/README 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/README 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/acinclude.m4
===================================================================
--- branches/Release-0_8_0/fuse/acinclude.m4 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/acinclude.m4 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/configure.in
===================================================================
--- branches/Release-0_8_0/fuse/configure.in 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/configure.in 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/fusepb/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)
Modified: branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/fusepb/Info-Fuse.plist 2007-05-12 01:09:14 UTC (rev 366)
@@ -365,7 +365,7 @@
<key>CFBundleSignature</key>
<string>FUSE</string>
<key>CFBundleVersion</key>
- <string>0.8.0</string>
+ <string>0.8.0.1</string>
<key>NSMainNibFile</key>
<string>SDLMain</string>
<key>NSPrincipalClass</key>
Modified: branches/Release-0_8_0/fuse/fusepb/config.h
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/config.h 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/fusepb/config.h 2007-05-12 01:09:14 UTC (rev 366)
@@ -169,7 +169,7 @@
#define STDC_HEADERS 1
/* Version number of package */
-#define VERSION "0.8.0"
+#define VERSION "0.8.0.1"
/* Define to 1 if your processor stores words with the most significant byte
first (like Motorola and SPARC, unlike Intel and VAX). */
Modified: branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/changelog.html
===================================================================
--- branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/changelog.html 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/fusepb/resources/Fuse Help/html/changelog.html 2007-05-12 01:09:14 UTC (rev 366)
@@ -14,7 +14,37 @@
name="What's New In Fuse?" id="What's New In Fuse?"></a><!-- AppleSegDescription="This section describes the changes for version 0.8.0 of the Fuse emulator." --></font>
<div class="refsect1" xml:lang="en" lang="en">
<h2><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse
-For Mac OS X 0.8.0</font></h2>
+For Mac OS X 0.8.0.1</font></h2>
+<ul>
+ <li><font face="Lucida Grande,Helvetica,Arial">Emulation core
+improvements:</font></li>
+ <li
+ style="list-style-type: none; list-style-image: none; list-style-position: outside;">
+ <ul>
+ <li><font face="Lucida Grande,Helvetica,Arial">Fix IN timings and
+floating bus behaviour: fixes Sidewize (thanks, Pegaz and Mark
+Woodmass) (Philip Kendall).</font></li>
+ </ul>
+ </li>
+ <li><font face="Lucida Grande,Helvetica,Arial">Miscellaneous </font><font
+ face="Lucida Grande,Helvetica,Arial">bugfixes</font><font
+ face="Lucida Grande,Helvetica,Arial">:</font></li>
+ <li
+ style="list-style-type: none; list-style-image: none; list-style-position: outside;">
+ <ul>
+ <li><font face="Lucida Grande,Helvetica,Arial">Fix crash if
+fullscreen mode attempted a resolution higher than the native graphics
+mode could handle (thanks, Alberto Garcia) (Fredrick Meunier).</font></li>
+ <li><font face="Lucida Grande,Helvetica,Arial">Remove flicker
+when playing back RZX files with embedded snapshots (thanks, Julian
+Wiseman) (Fredrick Meunier).</font></li>
+ <li><font face="Lucida Grande,Helvetica,Arial">Avoid crash when
+reading an invalid TZX file (thanks, crabfists) (Philip Kendall).</font></li>
+ </ul>
+ </li>
+</ul>
+<h2><font><font face="Lucida Grande,Helvetica,Arial">What's new in Fuse
+For Mac OS X 0.8.0</font></font></h2>
</div>
<ul>
<li><font face="Lucida Grande,Helvetica,Arial">New
Modified: branches/Release-0_8_0/fuse/hacking/ChangeLog
===================================================================
--- branches/Release-0_8_0/fuse/hacking/ChangeLog 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/hacking/ChangeLog 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/hacking/cvs-tags
===================================================================
--- branches/Release-0_8_0/fuse/hacking/cvs-tags 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/hacking/cvs-tags 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/hacking/ui.txt
===================================================================
--- branches/Release-0_8_0/fuse/hacking/ui.txt 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/hacking/ui.txt 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/lib/Makefile.am
===================================================================
--- branches/Release-0_8_0/fuse/lib/Makefile.am 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/lib/Makefile.am 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/machines/pentagon.c
===================================================================
--- branches/Release-0_8_0/fuse/machines/pentagon.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/machines/pentagon.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/machines/scorpion.c
===================================================================
--- branches/Release-0_8_0/fuse/machines/scorpion.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/machines/scorpion.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/machines/spec128.c
===================================================================
--- branches/Release-0_8_0/fuse/machines/spec128.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/machines/spec128.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/machines/spec16.c
===================================================================
--- branches/Release-0_8_0/fuse/machines/spec16.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/machines/spec16.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/machines/spec48.c
===================================================================
--- branches/Release-0_8_0/fuse/machines/spec48.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/machines/spec48.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/man/fuse.1
===================================================================
--- branches/Release-0_8_0/fuse/man/fuse.1 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/man/fuse.1 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/periph.c
===================================================================
--- branches/Release-0_8_0/fuse/periph.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/periph.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/screenshot.c
===================================================================
--- branches/Release-0_8_0/fuse/screenshot.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/screenshot.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/snapshot.c
===================================================================
--- branches/Release-0_8_0/fuse/snapshot.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/snapshot.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/spectrum.c
===================================================================
--- branches/Release-0_8_0/fuse/spectrum.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/spectrum.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/spectrum.h
===================================================================
--- branches/Release-0_8_0/fuse/spectrum.h 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/spectrum.h 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/ui/fb/fbdisplay.c
===================================================================
--- branches/Release-0_8_0/fuse/ui/fb/fbdisplay.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/ui/fb/fbdisplay.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/ui/ggi/ggidisplay.c
===================================================================
--- branches/Release-0_8_0/fuse/ui/ggi/ggidisplay.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/ui/ggi/ggidisplay.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -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: branches/Release-0_8_0/fuse/ui/gtk/gtkdisplay.c
===================================================================
--- branches/Release-0_8_0/fuse/ui/gtk/gtkdisplay.c 2007-05-12 00:14:12 UTC (rev 365)
+++ branches/Release-0_8_0/fuse/ui/gtk/gtkdisplay.c 2007-05-12 01:09:14 UTC (rev 366)
@@ -1,7 +1,7 @@
/* gtkdisplay.c: GTK+ routines for dealing with the Speccy screen
Copyright (c) 2000-2005 Philip Kenda...
[truncated message content] |