fuse-for-macosx-commits Mailing List for Fuse for macOS (Page 9)
Brought to you by:
fredm
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(9) |
Dec
(31) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(24) |
Feb
(11) |
Mar
(6) |
Apr
(48) |
May
(9) |
Jun
(38) |
Jul
(33) |
Aug
(15) |
Sep
|
Oct
(3) |
Nov
(6) |
Dec
(3) |
2008 |
Jan
|
Feb
(24) |
Mar
(11) |
Apr
(22) |
May
(7) |
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(3) |
Nov
(18) |
Dec
(23) |
2009 |
Jan
(16) |
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
(7) |
Jul
(4) |
Aug
(11) |
Sep
(9) |
Oct
|
Nov
(3) |
Dec
(2) |
2010 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
(2) |
May
(8) |
Jun
|
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(9) |
Nov
|
Dec
(8) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
(7) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
(2) |
Dec
|
2012 |
Jan
(4) |
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(10) |
Nov
(13) |
Dec
(11) |
2013 |
Jan
(4) |
Feb
(1) |
Mar
(8) |
Apr
(8) |
May
(16) |
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
2014 |
Jan
|
Feb
(6) |
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(6) |
2015 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(10) |
Jun
(9) |
Jul
(6) |
Aug
(5) |
Sep
(3) |
Oct
(6) |
Nov
(5) |
Dec
|
From: <fr...@us...> - 2010-05-24 12:04:31
|
Revision: 637 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=637&view=rev Author: fredm Date: 2010-05-24 12:04:23 +0000 (Mon, 24 May 2010) Log Message: ----------- Load . into vendor/fuse-emulator/current. Modified Paths: -------------- vendor/fuse-emulator/current/fuse/ChangeLog vendor/fuse-emulator/current/fuse/Makefile.am vendor/fuse-emulator/current/fuse/README vendor/fuse-emulator/current/fuse/compat/unix/file.c vendor/fuse-emulator/current/fuse/compat/wii/paths.c vendor/fuse-emulator/current/fuse/compat.h vendor/fuse-emulator/current/fuse/configure.in vendor/fuse-emulator/current/fuse/debugger/command.c vendor/fuse-emulator/current/fuse/debugger/commandl.l vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h vendor/fuse-emulator/current/fuse/debugger/disassemble.c vendor/fuse-emulator/current/fuse/disk/beta.c vendor/fuse-emulator/current/fuse/disk/beta.h vendor/fuse-emulator/current/fuse/disk/disk.c vendor/fuse-emulator/current/fuse/disk/disk.h vendor/fuse-emulator/current/fuse/disk/fdd.c vendor/fuse-emulator/current/fuse/disk/fdd.h vendor/fuse-emulator/current/fuse/disk/opus.c vendor/fuse-emulator/current/fuse/disk/plusd.c vendor/fuse-emulator/current/fuse/disk/upd_fdc.c vendor/fuse-emulator/current/fuse/disk/upd_fdc.h vendor/fuse-emulator/current/fuse/display.c vendor/fuse-emulator/current/fuse/fuse.c vendor/fuse-emulator/current/fuse/hacking/ChangeLog vendor/fuse-emulator/current/fuse/ide/divide.c vendor/fuse-emulator/current/fuse/ide/zxatasp.c vendor/fuse-emulator/current/fuse/ide/zxcf.c vendor/fuse-emulator/current/fuse/if1.c vendor/fuse-emulator/current/fuse/if2.c vendor/fuse-emulator/current/fuse/input.c vendor/fuse-emulator/current/fuse/input.h vendor/fuse-emulator/current/fuse/keyboard.c vendor/fuse-emulator/current/fuse/keysyms.dat vendor/fuse-emulator/current/fuse/keysyms.pl vendor/fuse-emulator/current/fuse/machines/pentagon.c vendor/fuse-emulator/current/fuse/machines/pentagon1024.c vendor/fuse-emulator/current/fuse/machines/pentagon512.c vendor/fuse-emulator/current/fuse/machines/scorpion.c vendor/fuse-emulator/current/fuse/machines/specplus3.c vendor/fuse-emulator/current/fuse/machines/specplus3.h vendor/fuse-emulator/current/fuse/man/fuse.1 vendor/fuse-emulator/current/fuse/memory.c vendor/fuse-emulator/current/fuse/memory.h vendor/fuse-emulator/current/fuse/menu.c vendor/fuse-emulator/current/fuse/menu.h vendor/fuse-emulator/current/fuse/menu_data.dat vendor/fuse-emulator/current/fuse/periph.c vendor/fuse-emulator/current/fuse/printer.c vendor/fuse-emulator/current/fuse/rzx.c vendor/fuse-emulator/current/fuse/settings-header.pl vendor/fuse-emulator/current/fuse/settings.dat vendor/fuse-emulator/current/fuse/settings.pl vendor/fuse-emulator/current/fuse/sound/Makefile.am vendor/fuse-emulator/current/fuse/sound/coreaudiosound.c vendor/fuse-emulator/current/fuse/sound.c vendor/fuse-emulator/current/fuse/tape.c vendor/fuse-emulator/current/fuse/ui/fb/fbkeyboard.c vendor/fuse-emulator/current/fuse/ui/fb/fbui.c vendor/fuse-emulator/current/fuse/ui/gtk/gtkkeyboard.c vendor/fuse-emulator/current/fuse/ui/gtk/gtkui.c vendor/fuse-emulator/current/fuse/ui/gtk/picture.c vendor/fuse-emulator/current/fuse/ui/options.dat vendor/fuse-emulator/current/fuse/ui/sdl/sdldisplay.c vendor/fuse-emulator/current/fuse/ui/sdl/sdlkeyboard.c vendor/fuse-emulator/current/fuse/ui/sdl/sdlui.c vendor/fuse-emulator/current/fuse/ui/svga/svgadisplay.c vendor/fuse-emulator/current/fuse/ui/svga/svgakeyboard.c vendor/fuse-emulator/current/fuse/ui/svga/svgaui.c vendor/fuse-emulator/current/fuse/ui/ui.h vendor/fuse-emulator/current/fuse/ui/uijoystick.c vendor/fuse-emulator/current/fuse/ui/widget/browse.c vendor/fuse-emulator/current/fuse/ui/widget/debugger.c vendor/fuse-emulator/current/fuse/ui/widget/error.c vendor/fuse-emulator/current/fuse/ui/widget/filesel.c vendor/fuse-emulator/current/fuse/ui/widget/memory.c vendor/fuse-emulator/current/fuse/ui/widget/menu.c vendor/fuse-emulator/current/fuse/ui/widget/options.pl vendor/fuse-emulator/current/fuse/ui/widget/picture.c vendor/fuse-emulator/current/fuse/ui/widget/pokefinder.c vendor/fuse-emulator/current/fuse/ui/widget/query.c vendor/fuse-emulator/current/fuse/ui/widget/roms.c vendor/fuse-emulator/current/fuse/ui/widget/select.c vendor/fuse-emulator/current/fuse/ui/widget/text.c vendor/fuse-emulator/current/fuse/ui/widget/widget.c vendor/fuse-emulator/current/fuse/ui/widget/widget.h vendor/fuse-emulator/current/fuse/ui/wii/wiidisplay.c vendor/fuse-emulator/current/fuse/ui/wii/wiikeyboard.c vendor/fuse-emulator/current/fuse/ui/wii/wiiui.c vendor/fuse-emulator/current/fuse/ui/win32/confirm.c vendor/fuse-emulator/current/fuse/ui/win32/options-header.pl vendor/fuse-emulator/current/fuse/ui/win32/options-resource.pl vendor/fuse-emulator/current/fuse/ui/win32/options.pl vendor/fuse-emulator/current/fuse/ui/win32/picture.c vendor/fuse-emulator/current/fuse/ui/xlib/xdisplay.c vendor/fuse-emulator/current/fuse/ui/xlib/xerror.c vendor/fuse-emulator/current/fuse/ui/xlib/xkeyboard.c vendor/fuse-emulator/current/fuse/ui/xlib/xui.c vendor/fuse-emulator/current/fuse/ui.c vendor/fuse-emulator/current/fuse/ula.c vendor/fuse-emulator/current/fuse/utils.c vendor/fuse-emulator/current/fuse/windres.rc vendor/fuse-emulator/current/fuse/z80/z80.c vendor/fuse-emulator/current/fuse-utils/Makefile.am vendor/fuse-emulator/current/fuse-utils/compat.h vendor/fuse-emulator/current/fuse-utils/configure.in vendor/fuse-emulator/current/fuse-utils/converter/romloader.cc vendor/fuse-emulator/current/fuse-utils/hacking/ChangeLog vendor/fuse-emulator/current/fuse-utils/importer/soundfile.cc vendor/fuse-emulator/current/fuse-utils/snap2tzx.c vendor/fuse-emulator/current/fuse-utils/utils.c vendor/fuse-emulator/current/fusetest/Makefile vendor/fuse-emulator/current/libspectrum/dck.c vendor/fuse-emulator/current/libspectrum/dll.c vendor/fuse-emulator/current/libspectrum/generate.pl.in vendor/fuse-emulator/current/libspectrum/hacking/ChangeLog vendor/fuse-emulator/current/libspectrum/internals.h vendor/fuse-emulator/current/libspectrum/libspectrum.h.in vendor/fuse-emulator/current/libspectrum/make-perl.c vendor/fuse-emulator/current/libspectrum/myglib/ghash.c vendor/fuse-emulator/current/libspectrum/plusd.c vendor/fuse-emulator/current/libspectrum/rzx.c vendor/fuse-emulator/current/libspectrum/snapshot.c vendor/fuse-emulator/current/libspectrum/szx.c vendor/fuse-emulator/current/libspectrum/tape.c vendor/fuse-emulator/current/libspectrum/warajevo_read.c vendor/fuse-emulator/current/libspectrum/wav.c Added Paths: ----------- vendor/fuse-emulator/current/fuse/rectangle.c vendor/fuse-emulator/current/fuse/rectangle.h vendor/fuse-emulator/current/fuse/sound/blipbuffer.c vendor/fuse-emulator/current/fuse/sound/blipbuffer.h vendor/fuse-emulator/current/fuse-utils/compat/ vendor/fuse-emulator/current/fuse-utils/compat/amiga/ vendor/fuse-emulator/current/fuse-utils/compat/amiga/Makefile.am vendor/fuse-emulator/current/fuse-utils/compat/amiga/basename.c vendor/fuse-emulator/current/fuse-utils/compat/amiga/osname.c vendor/fuse-emulator/current/fuse-utils/compat/unix/ vendor/fuse-emulator/current/fuse-utils/compat/unix/Makefile.am vendor/fuse-emulator/current/fuse-utils/compat/unix/basename.c vendor/fuse-emulator/current/fuse-utils/compat/unix/osname.c vendor/fuse-emulator/current/fusetest/iocontention.asm Removed Paths: ------------- vendor/fuse-emulator/current/fuse/sound/Blip_Buffer.cpp vendor/fuse-emulator/current/fuse/sound/Blip_Buffer.h Modified: vendor/fuse-emulator/current/fuse/ChangeLog =================================================================== --- vendor/fuse-emulator/current/fuse/ChangeLog 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/ChangeLog 2010-05-24 12:04:23 UTC (rev 637) @@ -1,13 +1,13 @@ -2009-xx-xx Philip Kendall <phi...@sh...> +2010-xx-xx Philip Kendall <phi...@sh...> - * Fuse ?.??.? released + * Fuse 0.11.0 released - FIXME: Just a start, mostly changes visible on Fuse for OS X at the - moment * Add Opus Discovery disk interface support (Gergely Szasz and Fredrick Meunier). - * Wii support. - * Many improvements to Win32 UI (Marek Januszewski). + * Wii support (Bjoern Giesler, Philip Kendall, Marek Januszewski). + * Many improvements to Win32 UI, including an installer (Marek + Januszewski). + * Support weak data in +3 disk images (Gergely Szasz). * Add support for flipping disk images in single sided drives (Gergely Szasz). * Add support for automatically merging both both disk images where @@ -25,6 +25,16 @@ that use the 128K sound ports (Fredrick Meunier). * Add support for Pentagon 1024SL v2.2 16 colour mode (Fredrick Meunier). + * Implement GTK+ drag and drop support (Dmitry Semyonov). + * Better support for international keyboards (Michal Jurica). + * Allow svgalib UI to use full range of bit depths and scalers (Gergely + Szasz). + * Allow GTK+ scalers to set window size in GTK+ UI (rkd77, Fredrick + Meunier). + * Allow selection of "TV speaker" or "beeper"-style sound output + (Fredrick Meunier) + * Allow hot-key switching between full-screen and windowed mode in + SDL UI (György Szombathelyi). * Miscellaneous improvements: * Preformat new disks on +3 to allow the format command on +3 to work @@ -37,7 +47,51 @@ notebooks (thanks, Andrew Owen) (Fredrick Meunier). * Fixes for speed estimation (Gergely Szasz). * Fix border colour in Timex HiRes screenshots (Fredrick Meunier). + * Fix accelerated loaders when compiling with gcc 3.x (Carlos + Almeida, Alberto Garcia and Philip Kendall). + * Allow "combo" boxes in widget UI (Gergely Szasz). + * Allow Home and End keys to work in widget UI (Gergely Szasz). + * Fix poke finder passing the wrong page to the debugger (Marek + Januszewski). + * Ensure joystick code always activates fire buttons correctly + (thanks, anonymous user) + * Don't fire joystick fire button events unless they've actually + changed (Fredrick Meunier; thanks, Phil Reynolds). + * Make svgalib UI use event interface rather than polling (thanks, + anonymous user). + * Ensure empty XML elements can't cause a segfault (thanks, + anonymous user). + * Tweak sector padding to fix Opus ATC+Technician Ted.dsk (Gergely + Szasz; thanks, Simon Owen). + * Z80 NMI should take some time (Fredrick Meunier). + * Ensure netbooks always recognise the enter key (Fredrick Meunier; + thanks, Marce). + * Add a --without-png option to configure for Gentoo (José Manuel + Ferrer Ortiz) + * Many other things I forgot. If you contributed something and would + like to be mentioned here, please mail me. + +2009-01-14 Philip Kendall <phi...@sh...> + + * Fuse 0.10.0.2 released + + * Make loader acceleration work on all compilers (Philip Kendall; + thanks, Carlos Almeida, Alberto Garcia and Alexander Yurchenko). + + * Make the "Don't Save" option in the widget UI do the right thing + (Frederick Meunier). + + * Allow both +3 disk drives to be used at once (Gergely Szasz). + + * Allow both +D disk drives to be used at once (Gergely Szasz). + + * Make .dsk code handle missing newline on "Track-Info" header + (Gergely Szasz; thanks, Simon Owen). + + * Remove unnecessary 'use' directive when building widget options + header file; fixes some build issues (Frederick Meunier) + 2008-12-10 Philip Kendall <phi...@sh...> * Fuse 0.10.0.1 released @@ -981,4 +1035,4 @@ * Version 0.1.0 released. -$Id: ChangeLog 4060 2009-07-30 13:21:38Z fredm $ +$Id: ChangeLog 4134 2010-05-21 13:16:19Z fredm $ Modified: vendor/fuse-emulator/current/fuse/Makefile.am =================================================================== --- vendor/fuse-emulator/current/fuse/Makefile.am 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/Makefile.am 2010-05-24 12:04:23 UTC (rev 637) @@ -1,7 +1,7 @@ # Process this file with automake to produce Makefile.in ## Copyright (c) 1999-2009 Philip Kendall -## $Id: Makefile.am 4032 2009-06-10 11:09:44Z fredm $ +## $Id: Makefile.am 4112 2010-01-08 11:03:43Z fredm $ ## 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 @@ -81,13 +81,14 @@ printer.c \ profile.c \ psg.c \ + rectangle.c \ rzx.c \ scld.c \ screenshot.c \ settings.c \ slt.c \ snapshot.c \ - sound.cpp \ + sound.c \ spectrum.c \ tape.c \ ui.c \ @@ -149,8 +150,8 @@ BUILT_SOURCES = options.h settings.c settings.h -windres.o: windres.rc winfuse.ico - @WINDRES@ -I$(srcdir) -I. $(srcdir)/windres.rc windres.o +windres.o: windres.rc winfuse.ico ui/win32/*.rc + @WINDRES@ -I$(srcdir) -I. $(srcdir)/windres.rc @LIBSPEC_CFLAGS@ @CPPFLAGS@ windres.o settings.c: settings.pl settings.dat @PERL@ -I$(srcdir)/perl $(srcdir)/settings.pl $(srcdir)/settings.dat > $@.tmp && mv $@.tmp $@ @@ -191,6 +192,7 @@ module.h \ periph.h \ psg.h \ + rectangle.h \ rzx.h \ screenshot.h \ settings.h \ Modified: vendor/fuse-emulator/current/fuse/README =================================================================== --- vendor/fuse-emulator/current/fuse/README 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/README 2010-05-24 12:04:23 UTC (rev 637) @@ -1,4 +1,4 @@ -The Free Unix Spectrum Emulator (Fuse) 0.10.0.1 +The Free Unix Spectrum Emulator (Fuse) 0.10.0.2 =============================================== Fuse (the Free Unix Spectrum Emulator) was originally, and somewhat @@ -111,9 +111,9 @@ Once you've got Fuse configured and built, read the man page :-) -Note that if you're using version of Fuse from CVS rather than one of -the released tarballs, you'll need to run `autogen.sh' before running -'configure' for the first time. +Note that if you're using version of Fuse from Subversion rather than +one of the released tarballs, you'll need to run `autogen.sh' before +running 'configure' for the first time. Building the OS X version of Fuse --------------------------------- @@ -138,7 +138,7 @@ --with-wii \ --without-libxml2 --without-libiconv --without-gpm \ --without-x --without-glib \ - CFLAGS="-g -I$DEVKITPPC/include -I$DEVKITPRO/libogc/include" \ + CFLAGS="-g -I$DEVKITPPC/include -I$DEVKITPRO/libogc/include -DGEKKO" \ LDFLAGS="-g -mrvl -mcpu=750 -meabi -mhard-float \ -Wl,-Map,fuse.elf.map -L$DEVKITPPC/lib \ -L$DEVKITPRO/libogc/lib/wii" \ @@ -151,6 +151,42 @@ This should build fuse.elf, which you can run on your Wii via the usual methods. +Building the Win32 version of Fuse on Linux +-------------------------------- + +You'll need to have the standard MinGW programming tool set. e.g. on Debian +`apt-get install mingw32 mingw-binutils mingw32-runtime' + <http://www.mingw.org/> + +First, have to compile libspectrum: + +./configure --host=i586-mingw32msvc --without-libaudiofile --without-zlib \ + --without-libgcrypt --without-bzip2 --without-glib --prefix=`pwd` +make install + +This should compile libspectrum without any external lib, and `install' into the +source directory. All of the external libs needed by libspectrum and fuse +compile with successfully with MingGW environment - in case of problems +with compiling any of the libs please refer to the lib's homepage for help. + +Then, compile fuse: + +./configure --host=i586-mingw32msvc --without-glib --prefix=`pwd` \ + --with-libspectrum-prefix=`pwd`/../libspectrum --with-win32 \ + --without-libxml2 --without-x +make + +You have to use the real path of libspectrum with `--with-libspectrum-prefix='. +This should build `fuse.exe' without any external lib, but you can run it on +Windows or Linux (with Wine). + +Note: you need `libspectrum-7.dll' and the `roms' directory and the `lib' + directory to `fuse' run perfectly. You may copy this file and directories + into that directory where `fuse.exe' exists. On windows you may need to + copy all files from `lib/uncompressed' into `lib'. + With wine you need `fltmgr.sys' in Windows `system32' directory. (e.g.: + ~/.wine/c_drive/windows/system32). + Closing comments ---------------- @@ -178,6 +214,6 @@ ( http://www.worldofspectrum.org/faq/index.html ) first! Philip Kendall <phi...@sh...> -10 December 2008 +14 January 2009 -$Id: README 4060 2009-07-30 13:21:38Z fredm $ +$Id: README 4132 2010-05-20 12:06:53Z fredm $ Modified: vendor/fuse-emulator/current/fuse/compat/unix/file.c =================================================================== --- vendor/fuse-emulator/current/fuse/compat/unix/file.c 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/compat/unix/file.c 2010-05-24 12:04:23 UTC (rev 637) @@ -1,7 +1,7 @@ /* file.c: File-related compatibility routines Copyright (c) 2008 Philip Kendall - $Id: file.c 4040 2009-06-27 09:32:42Z fredm $ + $Id: file.c 4072 2009-08-31 15:42:26Z specu $ 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 @@ -41,7 +41,7 @@ compat_fd compat_file_open( const char *path, int write ) { - return fopen( path, write ? "w" : "r" ); + return fopen( path, write ? "wb" : "rb" ); } off_t Modified: vendor/fuse-emulator/current/fuse/compat/wii/paths.c =================================================================== --- vendor/fuse-emulator/current/fuse/compat/wii/paths.c 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/compat/wii/paths.c 2010-05-24 12:04:23 UTC (rev 637) @@ -1,7 +1,7 @@ /* paths.c: Path-related compatibility routines Copyright (c) 1999-2009 Philip Kendall, Bjoern Giesler - $Id: paths.c 3970 2009-01-19 03:47:02Z specu $ + $Id: paths.c 4065 2009-08-13 18:33:21Z specu $ 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 @@ -50,5 +50,8 @@ if(strlen(path) >= strlen("fat:/") && strncmp(path, "fat:/", strlen("fat:/")) == 0) return 1; + if(strlen(path) >= strlen("sd:/") && + strncmp(path, "sd:/", strlen("sd:/")) == 0) + return 1; return 0; } Modified: vendor/fuse-emulator/current/fuse/compat.h =================================================================== --- vendor/fuse-emulator/current/fuse/compat.h 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/compat.h 2010-05-24 12:04:23 UTC (rev 637) @@ -1,7 +1,7 @@ /* compat.h: various compatibility bits Copyright (c) 2003-2008 Philip Kendall - $Id: compat.h 4040 2009-06-27 09:32:42Z fredm $ + $Id: compat.h 4068 2009-08-30 19:30:19Z specu $ 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 @@ -78,11 +78,11 @@ typedef FILE* compat_fd; -#ifndef UI_WII +#ifndef GEKKO typedef DIR* compat_dir; -#else /* #ifndef UI_WII */ +#else /* #ifndef GEKKO */ typedef DIR_ITER* compat_dir; -#endif /* #ifndef UI_WII */ +#endif /* #ifndef GEKKO */ extern const compat_fd COMPAT_FILE_OPEN_FAILED; Modified: vendor/fuse-emulator/current/fuse/configure.in =================================================================== --- vendor/fuse-emulator/current/fuse/configure.in 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/configure.in 2010-05-24 12:04:23 UTC (rev 637) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.in 4028 2009-05-31 13:15:52Z fredm $ +dnl $Id: configure.in 4132 2010-05-20 12:06:53Z fredm $ 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,11 +24,10 @@ AC_CANONICAL_SYSTEM dnl Use automake to produce `Makefile.in' -AM_INIT_AUTOMAKE(fuse, 0.10.0.1) +AM_INIT_AUTOMAKE(fuse, 0.10.0.2) dnl Checks for programs. AC_PROG_CC -AC_PROG_CXX AC_PROG_RANLIB AC_PATH_PROG(PERL, perl) AC_SUBST(PERL) @@ -308,10 +307,7 @@ ac_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $LIBSPEC_CFLAGS" AC_TRY_COMPILE([#include <libspectrum.h>],[ -void test() -{ int test = LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION; -} ], AUTOLOAD_SNAPS=compressed; AC_MSG_RESULT(yes), AUTOLOAD_SNAPS=uncompressed; AC_MSG_RESULT(no)) @@ -348,33 +344,41 @@ lib/tape_ts2068.szx]) dnl Check if a version of libpng which supplies png_write_png is available -AC_PATH_PROG([LIBPNG_CONFIG], [libpng-config]) -if test -n "$LIBPNG_CONFIG"; then - PNG_CFLAGS=`libpng-config --cflags` - PNG_LIBS=`libpng-config --ldflags` - PNG_LIBS=`echo " $PNG_LIBS" | sed 's/ -l[[^ ]][[^ ]]*//g'` -fi +AC_MSG_CHECKING(whether PNG support requested) +AC_ARG_WITH(png, +[ --without-png don't use libpng], +if test "$withval" = no; then libpng=no; else libpng=yes; fi, +libpng=yes) +AC_MSG_RESULT($libpng) +if test "$libpng" = yes; then + AC_PATH_PROG([LIBPNG_CONFIG], [libpng-config]) + if test -n "$LIBPNG_CONFIG"; then + PNG_CFLAGS=`libpng-config --cflags` + PNG_LIBS=`libpng-config --ldflags` + PNG_LIBS=`echo " $PNG_LIBS" | sed 's/ -l[[^ ]][[^ ]]*//g'` + fi -ac_save_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS $PNG_CFLAGS" -ac_save_LDFLAGS="$LDFLAGS" -LDFLAGS="$PNG_LIBS $LDFLAGS" + ac_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $PNG_CFLAGS" + ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$PNG_LIBS $LDFLAGS" -AC_CHECK_LIB( png, png_write_png, - [AC_CHECK_HEADER( - png.h, - [AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) PNG_LIBS='-lpng -lm -lz'], - [AC_CHECK_HEADERS(libpng/png.h, - [CPPFLAGS="$ac_save_CPPFLAGS $PNG_CFLAGS/libpng" - AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) PNG_LIBS='-lpng -lm -lz'], - [AC_MSG_WARN(png.h not found - saving screenshots disabled) - PNG_LIBS=''] + AC_CHECK_LIB( png, png_write_png, + [AC_CHECK_HEADER( + png.h, + [AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) PNG_LIBS='-lpng -lm -lz'], + [AC_CHECK_HEADERS(libpng/png.h, + [CPPFLAGS="$ac_save_CPPFLAGS $PNG_CFLAGS/libpng" + AC_DEFINE([USE_LIBPNG], 1, [Defined if we're going to be using the installed libpng]) PNG_LIBS='-lpng -lm -lz'], + [AC_MSG_WARN(png.h not found - saving screenshots disabled) + PNG_LIBS=''] + )], )], - )], - [AC_MSG_WARN(png_write_png not found - saving screenshots disabled) - PNG_LIBS=''] -) -AC_SUBST(PNG_LIBS) + [AC_MSG_WARN(png_write_png not found - saving screenshots disabled) + PNG_LIBS=''] + ) + AC_SUBST(PNG_LIBS) +fi LDFLAGS="$ac_save_LDFLAGS" @@ -554,7 +558,7 @@ if test "$libxml2" = yes; then AM_PATH_XML2(2.0.0,AC_DEFINE([HAVE_LIB_XML2], 1, [Defined if we've got libxml2]), - AC_WARN(libxml2 not found - config file use disabled)) + AC_WARN(libxml2 not found - config file will use ini format)) fi dnl Work out which timer routines to use Modified: vendor/fuse-emulator/current/fuse/debugger/command.c =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/command.c 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/debugger/command.c 2010-05-24 12:04:23 UTC (rev 637) @@ -1,7 +1,7 @@ /* command.c: Parse a debugger command Copyright (c) 2002-2008 Philip Kendall - $Id: command.c 3631 2008-05-26 12:22:29Z pak21 $ + $Id: command.c 4125 2010-05-06 22:18:50Z pak21 $ 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 Modified: vendor/fuse-emulator/current/fuse/debugger/commandl.l =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/commandl.l 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/debugger/commandl.l 2010-05-24 12:04:23 UTC (rev 637) @@ -1,7 +1,7 @@ /* commandl.l: Debugger command lexical scanner Copyright (c) 2002-2008 Philip Kendall - $Id: commandl.l 3712 2008-07-06 11:45:24Z pak21 $ + $Id: commandl.l 4130 2010-05-18 12:06:19Z fredm $ 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 @@ -37,7 +37,9 @@ #define YY_INPUT(buf,result,max_size) \ { \ - if( !debugger_command_input( buf, &result, max_size ) ) result = YY_NULL; \ + int retval; \ + if( !debugger_command_input( buf, &retval, max_size ) ) retval = YY_NULL; \ + result = (yy_size_t)retval; \ } #define YY_NO_INPUT Modified: vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/debugger/debugger_internals.h 2010-05-24 12:04:23 UTC (rev 637) @@ -1,7 +1,7 @@ /* debugger_internals.h: The internals of Fuse's monitor/debugger Copyright (c) 2002-2008 Philip Kendall - $Id: debugger_internals.h 3681 2008-06-16 09:40:29Z pak21 $ + $Id: debugger_internals.h 4125 2010-05-06 22:18:50Z pak21 $ 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 Modified: vendor/fuse-emulator/current/fuse/debugger/disassemble.c =================================================================== --- vendor/fuse-emulator/current/fuse/debugger/disassemble.c 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/debugger/disassemble.c 2010-05-24 12:04:23 UTC (rev 637) @@ -1,7 +1,7 @@ /* disassemble.c: Fuse's disassembler Copyright (c) 2002-2003 Darren Salt, Philip Kendall - $Id: disassemble.c 3115 2007-08-19 02:49:14Z fredm $ + $Id: disassemble.c 4087 2009-09-02 13:42:00Z fredm $ 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 @@ -161,7 +161,7 @@ case 0x00: case 0x08: if( b <= 0x08 ) { - snprintf( buffer, buflen, opcode_00xxx000[ b >> 3 ] ); *length = 1; + snprintf( buffer, buflen, "%s", opcode_00xxx000[ b >> 3 ] ); *length = 1; } else { get_offset( buffer2, 40, address + 2, readbyte_internal( address + 1 ) ); snprintf( buffer, buflen, "%s%s", opcode_00xxx000[ b >> 3 ], buffer2 ); @@ -540,7 +540,7 @@ break; case 0x07: case 0x0f: - snprintf( buffer, buflen, opcode_01xxx111[ ( b >> 3 ) & 0x07 ] ); + snprintf( buffer, buflen, "%s", opcode_01xxx111[ ( b >> 3 ) & 0x07 ] ); *length = 1; break; @@ -560,7 +560,7 @@ snprintf( buffer, buflen, "NOPD" ); *length = 1; *length = 1; } else { /* Note: 0xbc to 0xbf already removed */ - snprintf( buffer, buflen, opcode_101xxxxx[ b & 0x1f ] ); *length = 1; + snprintf( buffer, buflen, "%s", opcode_101xxxxx[ b & 0x1f ] ); *length = 1; } } @@ -713,7 +713,7 @@ return 1; } else { const char *regs[] = { "B", "C", "D", "E", "H", "L", "(HL)", "A" }; - snprintf( buffer, buflen, regs[i] ); + snprintf( buffer, buflen, "%s", regs[i] ); return 0; } } Modified: vendor/fuse-emulator/current/fuse/disk/beta.c =================================================================== --- vendor/fuse-emulator/current/fuse/disk/beta.c 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/disk/beta.c 2010-05-24 12:04:23 UTC (rev 637) @@ -1,7 +1,7 @@ /* beta.c: Routines for handling the Beta disk interface Copyright (c) 2004-2008 Stuart Brady - $Id: beta.c 4060 2009-07-30 13:21:38Z fredm $ + $Id: beta.c 4131 2010-05-19 10:52:37Z fredm $ 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 @@ -58,6 +58,9 @@ #define DISK_TRY_MERGE(heads) ( option_enumerate_diskoptions_disk_try_merge() == 2 || \ ( option_enumerate_diskoptions_disk_try_merge() == 1 && heads == 1 ) ) +/* Two 8Kb memory chunks accessible by the Z80 when /ROMCS is low */ +memory_page beta_memory_map_romcs[2]; + int beta_available = 0; int beta_active = 0; int beta_builtin = 0; @@ -124,8 +127,8 @@ { if( !beta_active ) return; - memory_map_read[0] = memory_map_write[0] = memory_map_romcs[ 0 ]; - memory_map_read[1] = memory_map_write[1] = memory_map_romcs[ 1 ]; + memory_map_read[0] = memory_map_write[0] = beta_memory_map_romcs[0]; + memory_map_read[1] = memory_map_write[1] = beta_memory_map_romcs[1]; } static void @@ -150,7 +153,7 @@ for( i = 0; i < BETA_NUM_DRIVES; i++ ) { d = &beta_drives[ i ]; - fdd_init( &d->fdd, FDD_SHUGART, 0, 0, 0 ); /* drive geometry 'autodetect' */ + fdd_init( &d->fdd, FDD_SHUGART, NULL, 0 ); /* drive geometry 'autodetect' */ d->disk.flag = DISK_FLAG_NONE; } beta_select_drive( 0 ); @@ -165,6 +168,7 @@ if( index_event == -1 ) return 1; module_register( &beta_module_info ); + for( i = 0; i < 2; i++ ) beta_memory_map_romcs[i].bank = MEMORY_BANK_ROMCS; return 0; } @@ -199,15 +203,15 @@ } if( !beta_builtin ) { - machine_load_rom_bank( memory_map_romcs, 0, 0, + machine_load_rom_bank( beta_memory_map_romcs, 0, 0, settings_current.rom_beta128, settings_default.rom_beta128, 0x4000 ); - memory_map_romcs[ 0 ].writable = 0; - memory_map_romcs[ 1 ].writable = 0; + beta_memory_map_romcs[ 0 ].writable = 0; + beta_memory_map_romcs[ 1 ].writable = 0; - memory_map_romcs[0].source = MEMORY_SOURCE_PERIPHERAL; - memory_map_romcs[1].source = MEMORY_SOURCE_PERIPHERAL; + beta_memory_map_romcs[0].source = MEMORY_SOURCE_PERIPHERAL; + beta_memory_map_romcs[1].source = MEMORY_SOURCE_PERIPHERAL; beta_active = 0; @@ -225,8 +229,7 @@ /* We can eject disks only if they are currently present */ dt = &fdd_params[ option_enumerate_diskoptions_drive_beta128a_type() + 1 ]; /* +1 => there is no `Disabled' */ - fdd_init( &beta_drives[ BETA_DRIVE_A ].fdd, FDD_SHUGART, - dt->heads, dt->cylinders, 1 ); + fdd_init( &beta_drives[ BETA_DRIVE_A ].fdd, FDD_SHUGART, dt, 1 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A, dt->enabled ); ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_A_EJECT, beta_drives[ BETA_DRIVE_A ].fdd.loaded ); @@ -237,8 +240,7 @@ dt = &fdd_params[ option_enumerate_diskoptions_drive_beta128b_type() ]; - fdd_init( &beta_drives[ BETA_DRIVE_B ].fdd, dt->enabled ? FDD_SHUGART : FDD_TYPE_NONE, - dt->heads, dt->cylinders, 1 ); + fdd_init( &beta_drives[ BETA_DRIVE_B ].fdd, dt->enabled ? FDD_SHUGART : FDD_TYPE_NONE, dt, 1 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B, dt->enabled ); ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_B_FLIP_SET, !beta_drives[ BETA_DRIVE_B ].fdd.upsidedown ); @@ -249,8 +251,7 @@ dt = &fdd_params[ option_enumerate_diskoptions_drive_beta128c_type() ]; - fdd_init( &beta_drives[ BETA_DRIVE_C ].fdd, dt->enabled ? FDD_SHUGART : FDD_TYPE_NONE, - dt->heads, dt->cylinders, 1 ); + fdd_init( &beta_drives[ BETA_DRIVE_C ].fdd, dt->enabled ? FDD_SHUGART : FDD_TYPE_NONE, dt, 1 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C, dt->enabled ); ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_C_FLIP_SET, !beta_drives[ BETA_DRIVE_C ].fdd.upsidedown ); @@ -261,8 +262,7 @@ dt = &fdd_params[ option_enumerate_diskoptions_drive_beta128d_type() ]; - fdd_init( &beta_drives[ BETA_DRIVE_D ].fdd, dt->enabled ? FDD_SHUGART : FDD_TYPE_NONE, - dt->heads, dt->cylinders, 1 ); + fdd_init( &beta_drives[ BETA_DRIVE_D ].fdd, dt->enabled ? FDD_SHUGART : FDD_TYPE_NONE, dt, 1 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D, dt->enabled ); ui_menu_activate( UI_MENU_ITEM_MEDIA_DISK_BETA_D_FLIP_SET, !beta_drives[ BETA_DRIVE_D ].fdd.upsidedown ); @@ -702,7 +702,7 @@ if( libspectrum_snap_beta_custom_rom( snap ) && libspectrum_snap_beta_rom( snap, 0 ) && machine_load_rom_bank_from_buffer( - memory_map_romcs, 0, 0, + beta_memory_map_romcs, 0, 0, libspectrum_snap_beta_rom( snap, 0 ), MEMORY_PAGE_SIZE * 2, 1 ) ) @@ -734,7 +734,7 @@ libspectrum_snap_set_beta_active( snap, 1 ); - if( memory_map_romcs[0].source == MEMORY_SOURCE_CUSTOMROM ) { + if( beta_memory_map_romcs[0].source == MEMORY_SOURCE_CUSTOMROM ) { size_t rom_length = MEMORY_PAGE_SIZE * 2; buffer = malloc( rom_length ); @@ -743,8 +743,8 @@ return; } - memcpy( buffer, memory_map_romcs[0].page, MEMORY_PAGE_SIZE ); - memcpy( buffer + MEMORY_PAGE_SIZE, memory_map_romcs[1].page, + memcpy( buffer, beta_memory_map_romcs[0].page, MEMORY_PAGE_SIZE ); + memcpy( buffer + MEMORY_PAGE_SIZE, beta_memory_map_romcs[1].page, MEMORY_PAGE_SIZE ); libspectrum_snap_set_beta_rom( snap, 0, buffer ); Modified: vendor/fuse-emulator/current/fuse/disk/beta.h =================================================================== --- vendor/fuse-emulator/current/fuse/disk/beta.h 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/disk/beta.h 2010-05-24 12:04:23 UTC (rev 637) @@ -1,7 +1,7 @@ /* beta.h: Routines for handling the Beta disk interface Copyright (c) 2003-2004 Fredrick Meunier, Philip Kendall - $Id: beta.h 4029 2009-06-05 13:50:55Z fredm $ + $Id: beta.h 4099 2009-10-22 10:59:02Z fredm $ 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 @@ -30,6 +30,7 @@ #include <libspectrum.h> +#include "memory.h" #include "periph.h" #include "disk/fdd.h" @@ -37,6 +38,9 @@ extern int beta_active; /* Is the Beta disk interface enabled? */ extern int beta_builtin; /* Is the Beta disk interface built-in? */ +/* Two 8Kb memory chunks accessible by the Z80 when /ROMCS is low */ +extern memory_page beta_memory_map_romcs[2]; + extern libspectrum_word beta_pc_mask; /* Bits to mask in PC for enable check */ extern libspectrum_word beta_pc_value; /* Value to compare masked PC against */ Modified: vendor/fuse-emulator/current/fuse/disk/disk.c =================================================================== --- vendor/fuse-emulator/current/fuse/disk/disk.c 2010-05-24 11:59:18 UTC (rev 636) +++ vendor/fuse-emulator/current/fuse/disk/disk.c 2010-05-24 12:04:23 UTC (rev 637) @@ -1,7 +1,7 @@ /* disk.c: Routines for handling disk images - Copyright (c) 2007 Gergely Szasz + Copyright (c) 2007-2010 Gergely Szasz - $Id: disk.c 4061 2009-07-30 23:37:29Z fredm $ + $Id: disk.c 4114 2010-01-15 13:45:51Z fredm $ 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,7 +53,7 @@ "Cannot close file", /* DISK_CLOSE */ "Cannot write disk image", /* DISK_WRFILE */ "Partially written file", /* DISK_WRPART */ - + "Unknown error code" /* DISK_LAST_ERROR */ }; @@ -135,7 +135,7 @@ id_read( disk_t *d, int *head, int *track, int *sector, int *length ) { int a1mark = 0; - + while( d->i < d->bpt ) { if( d->track[ d->i ] == 0xa1 && bitmap_test( d->clocks, d->i ) ) { /* 0xa1 with clock */ @@ -210,9 +210,8 @@ { int s; int del; - - d->track = d->data + ( ( d->sides * track + head ) * d->tlen ); - d->clocks = d->track + d->bpt; + + DISK_SET_TRACK( d, head, track ); d->i = 0; for( s = sector_base; s < sector_base + sectors; s++ ) { if( id_seek( d, s ) ) { @@ -232,9 +231,8 @@ { int h, t, s, seclen; int del; - - d->track = d->data + ( ( d->sides * track + head ) * d->tlen ); - d->clocks = d->track + d->bpt; + + DISK_SET_TRACK( d, head, track ); d->i = 0; while( id_read( d, &h, &t, &s, &seclen ) ) { if( datamark_read( d, &del ) ) { /* write data if we have data */ @@ -253,6 +251,8 @@ #define DISK_DDAM 32 #define DISK_CORRUPT_SECTOR 64 #define DISK_UNFORMATTED_TRACK 128 +#define DISK_FM_DATA 256 +#define DISK_WEAK_DATA 512 static int guess_track_geom( disk_t *d, int head, int track, int *sector_base, @@ -266,8 +266,7 @@ *seclen = -1; *mfm = -1; - d->track = d->data + ( d->sides * track + head ) * d->tlen; - d->clocks = d->track + d->bpt; + DISK_SET_TRACK( d, head, track ); d->i = 0; while( id_read( d, &h, &t, &s, &sl ) ) { if( *sector_base == -1 ) @@ -294,6 +293,31 @@ return r; } +static void +update_tracks_mode( disk_t *d ) +{ + int i, j, bpt; + int mfm, fm, weak; + + for( i = 0; i < d->cylinders * d->sides; i++ ) { + DISK_SET_TRACK_IDX( d, i ); + mfm = 0, fm = 0, weak = 0; + bpt = d->track[-3] + 256 * d->track[-2]; + for( j = DISK_CLEN( bpt ) - 1; j >= 0; j-- ) { + mfm |= ~d->fm[j]; + fm |= d->fm[j]; + weak |= d->weak[j]; + } + if( mfm && !fm ) d->track[-1] = 0x00; + if( !mfm && fm ) d->track[-1] = 0x01; + if( mfm && fm ) d->track[-1] = 0x02; + if( weak ) { + d->track[-1] |= 0x80; + d->have_weak = 1; + } + } +} + static int check_disk_geom( disk_t *d, int *sector_base, int *sectors, int *seclen, int *mfm, int *unf ) @@ -301,7 +325,7 @@ int h, t, s, slen, sbase, m; int r = 0; - d->track = d->data; d->clocks = d->track + d->bpt; + DISK_SET_TRACK_IDX( d, 0 ); d->i = 0; *sector_base = -1; *sectors = -1; @@ -310,6 +334,9 @@ *unf = -1; for( t = 0; t < d->cylinders; t++ ) { for( h = 0; h < d->sides; h++ ) { + r |= ( d->track[-1] & 0x80 ) ? DISK_WEAK_DATA : 0; + r |= ( d->track[-1] & 0x03 ) == 0x02 ? DISK_MFM_VARI : 0; + r |= ( d->track[-1] & 0x03 ) == 0x01 ? DISK_FM_DATA : 0; r |= guess_track_geom( d, h, t, &sbase, &s, &slen, &m ); if( *sector_base == -1 ) *sector_base = sbase; @@ -512,7 +539,7 @@ /* if 'buffer' == NULL, then copy data bytes from 'data' */ static int data_add( disk_t *d, buffer_t *buffer, unsigned char *data, int len, int ddam, - int gaptype, int crc_error, int autofill ) + int gaptype, int crc_error, int autofill, int *start_data ) { int length; libspectrum_word crc = 0xffff; @@ -532,6 +559,7 @@ if( d->i + len + 2 >= d->bpt ) /* too many data bytes */ return 1; /*------------------------------ data ------------------------------*/ + if( start_data != NULL ) *start_data = d->i; /* record data start position */ if( buffer == NULL ) { memcpy( d->track + d->i, data, len ); length = len; @@ -580,6 +608,19 @@ return len; } +static int +calc_lenid( int sector_length ) +{ + int id = 0; + + while( sector_length > 0x80 ) { + id++; + sector_length >>= 1; + } + + return id; +} + #define NO_INTERLEAVE 1 #define INTERLEAVE_2 2 #define INTERLEAVE_OPUS 13 @@ -597,8 +638,7 @@ int idx; d->i = 0; - d->track = d->data + ( ( d->sides * track + head ) * d->tlen ); - d->clocks = d->track + d->bpt; + DISK_SET_TRACK( d, head, track ); if( preindex && preindex_add( d, gap ) ) return 1; if( postindex_add( d, gap ) ) @@ -608,9 +648,9 @@ pos = i = 0; for( s = sector_base; s < sector_base + sectors; s++ ) { d->i = idx + pos * slen; - if( id_add( d, head, track, s, sector_length >> 8, gap, CRC_OK ) ) + if( id_add( d, head, track, s, calc_lenid( sector_length ), gap, CRC_OK ) ) return 1; - if( data_add( d, buffer, NULL, sector_length, NO_DDAM, gap, CRC_OK, autofill ) ) + if( data_add( d, buffer, NULL, sector_length, NO_DDAM, gap, CRC_OK, autofill, NULL ) ) return 1; pos += interleave; if( pos >= sectors ) { /* wrap around */ @@ -672,8 +712,8 @@ } if( d->bpt > 0 ) - d->tlen = d->bpt + d->bpt / 8 + ( d->bpt % 8 ? 1 : 0 ); - dlen = d->sides * d->cylinders * d->tlen; /* track len with clock marks */ + d->tlen = 4 + d->bpt + 3 * DISK_CLEN( d->bpt ); + dlen = d->sides * d->cylinders * d->tlen; /* track len with clock and other marks */ if( ( d->data = calloc( 1, dlen ) ) == NULL ) return d->status = DISK_MEM; @@ -739,11 +779,221 @@ if( d->sides < 1 || d->sides > 2 || \ d->cylinders < 1 || d->cylinders > 85 ) return d->status = DISK_GEOM +#ifdef LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION static int +udi_read_compressed( const libspectrum_byte *buffer, + size_t compr_size, size_t uncompr_size, + libspectrum_byte **data, size_t *data_size ) +{ + libspectrum_error error; + libspectrum_byte *tmp; + size_t olength = uncompr_size; + + tmp = NULL; + + error = libspectrum_zlib_inflate( buffer, compr_size, &tmp, &olength ); + if( error ) { + if( *data ) free( *data ); + *data_size = 0; + return error; + } + if( *data_size < uncompr_size ) { + *data = libspectrum_realloc( *data, uncompr_size ); + *data_size = uncompr_size; + } + memcpy( *data, tmp, uncompr_size ); + libspectrum_free( tmp ); + + return 0; +} + +static int +udi_write_compressed( const libspectrum_byte *buffer, + size_t uncompr_size, size_t *compr_size, + libspectrum_byte **data, size_t *data_size ) +{ + libspectrum_error error; + libspectrum_byte *tmp; + + tmp = NULL; + error = libspectrum_zlib_compress( buffer, uncompr_size, + &tmp, compr_size ); + if( error ) return error; + + if( *data_size < *compr_size ) { + *data = libspectrum_realloc( *data, *compr_size ); + *data_size = *compr_size; + } + memcpy( *data, tmp, *compr_size ); + libspectrum_free( tmp ); + + return LIBSPECTRUM_ERROR_NONE; +} +#endif /* #ifdef LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION */ + +static void +udi_pack_tracks( disk_t *d ) +{ + int i, tlen, clen, ttyp; + libspectrum_byte *tmp; + + for( i = 0; i < d->sides * d->cylinders; i++ ) { + DISK_SET_TRACK_IDX( d, i ); + tmp = d->track; + ttyp = tmp[-1]; + tlen = tmp[-3] + 256 * tmp[-2]; + clen = DISK_CLEN( tlen ); + tmp += tlen; + /* copy clock if needed */ + if( tmp != d->clocks ) + memcpy( tmp, d->clocks, clen ); + if( ttyp == 0x00 || ttyp == 0x01 ) continue; + tmp += clen; + if( ttyp & 0x02 ) { /* copy FM marks */ + if( tmp != d->fm ) + memcpy( tmp, d->fm, clen ); + tmp += clen; + } + if( ! ( ttyp & 0x80 ) ) continue; + if( tmp != d->weak ) /* copy WEAK marks*/ + memcpy( tmp, d->weak, clen ); + } +} + +static void +udi_unpack_tracks( disk_t *d ) +{ + int i, tlen, clen, ttyp; + libspectrum_byte *tmp; + libspectrum_byte mask[] = { 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe }; + + for( i = 0; i < d->sides * d->cylinders; i++ ) { + DISK_SET_TRACK_IDX( d, i ); + tmp = d->track; + ttyp = tmp[-1]; + tlen = tmp[-3] + 256 * tmp[-2]; + clen = DISK_CLEN( tlen ); + tmp += tlen; + if( ttyp & 0x80 ) tmp += clen; + if( ttyp & 0x02 ) tmp += clen; + if( ( ttyp & 0x80 ) ) { /* copy WEAK marks*/ + if( tmp != d->weak ) + memcpy( d->weak, tmp, clen ); + tmp -= clen; + } else { /* clear WEAK marks*/ + memset( d->weak, 0, clen ); + } + if( ttyp & 0x02 ) { /* copy FM marks */ + if( tmp != d->fm ) + memcpy( d->fm, tmp, clen ); + tmp -= clen; + } else { /* set/clear FM marks*/ + memset( d->fm, ttyp & 0x01 ? 0xff : 0, clen ); + if( tlen % 8 ) { /* adjust last byte */ + d->fm[clen - 1] &= mask[ tlen % 8 ]; + } + } + /* copy clock if needed */ + if( tmp != d->clocks ) + memcpy( d->clocks, tmp, clen ); + } +} + +/* calculate track len from type, if type eq. 0x00/0x01/0x02/0x80/0x81/0x82 + !!! not for 0x83 nor 0xf0 !!! +*/ +#define UDI_TLEN( type, bpt ) ( ( bpt ) + DISK_CLEN( bpt ) * ( 1 + \ + ( type & 0x02 ? 1 : 0 ) + \ + ( type & 0x80 ? 1 : 0 ) ) ) + +static int +udi_uncompress_tracks( disk_t *d ) +{ + int i; + libspectrum_byte *data = NULL; +#ifdef LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION + size_t data_size = 0; + int bpt, tlen, clen, ttyp; +#endif /* #ifdef LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION */ + + for( i = 0; i < d->sides * d->cylinders; i++ ) { + DISK_SET_TRACK_IDX( d, i ); + if( d->track[-1] != 0xf0 ) continue; /* if not compressed */ + +#ifndef LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION + /* if libspectrum cannot support */ + return d->status = DISK_UNSUP; +#else /* #ifndef LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION */ + clen = d->track[-3] + 256 * d->track[-2] + 1; + ttyp = d->track[0]; /* compressed track type */ + bpt = d->track[1] + 256 * d->track[2]; /* compressed track len... */ + tlen = UDI_TLEN( ttyp, bpt ); + d->track[-1] = ttyp; + d->track[-3] = d->track[1]; + d->track[-2] = d->track[2]; + if( udi_read_compressed( d->track + 3, clen, tlen, &data, &data_size ) ) { + if( data ) libspectrum_free( data ); + return d->status = DISK_UNSUP; + } + memcpy( d->track, data, tlen ); /* read track */ +#endif /* #ifndef LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION */ + } + if( data ) libspectrum_free( data ); + return DISK_OK; +} + +#ifdef LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION +static int +udi_compress_tracks( disk_t *d ) +{ + int i, tlen; + libspectrum_byte *data = NULL; + size_t clen, data_size = 0; + + for( i = 0; i < d->sides * d->cylinders; i++ ) { + DISK_SET_TRACK_IDX( d, i ); + if( d->track[-1] == 0xf0 ) continue; /* already compressed??? */ + + tlen = UDI_TLEN( d->track[-1], d->track[-3] + 256 * d->track[-2] ); + /* if fail to compress, skip ... */ + if( udi_write_compressed( d->track, tlen, &clen, &data, &data_size ) || + clen < 1 ) continue; + /* if compression too large, skip... */ + if( clen > 65535 || clen >= tlen ) continue; + d->track[0] = d->track[-1]; /* track type... */ + d->track[1] = d->track[-3]; /* compressed track len... */ + d->track[2] = d->track[-2]; /* compressed track len... */ + memcpy( d->track + 3, data, clen ); /* read track */ + clen--; + d->track[-1] = 0xf0; + d->track[-3] = clen & 0xff; + d->track[-2] = ( clen >> 8 ) & 0xff; + } + if( data ) libspectrum_free( data ); + return DISK_OK; +} +#endif /* #ifdef LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION */ + +static int open_udi( buffer_t *buffer, disk_t *d ) { - int i, j, bpt; + int i, bpt, ttyp, tlen, error; + size_t clen, eof; + libspectrum_dword crc; + crc = ~(libspectrum_dword) 0; + + /* check file length */ + eof = buff[4] + 256 * buff[5] + 65536 * buff[6] + 16777216 * buff[7]; + if( eof != buffer->file.length - 4 ) + return d->status = DISK_OPEN; + /* check CRC32 */ + for( i = 0; i < eof; i++ ) + crc = crc_udi( crc, buff[i] ); + if( crc != buff[eof] + 256 * buff[eof + 1] + 65536 * buff[eof + 2] + + 16777216 * buff[eof + 3] ) + return d->status = DISK_OPEN; + d->sides = buff[10] + 1; d->cylinders = buff[9] + 1; GEOM_CHECK; @@ -752,15 +1002,35 @@ d->bpt = 0; /* scan file for the longest track */ - for( i = 0; i < d->sides * d->cylinders; i++ ) { + for( i = 0; buffer->index < eof; i++ ) { if( buffavail( buffer ) < 3 ) return d->status = DISK_OPEN; - if( buff[0] != 0x00 ) + ttyp = buff[0]; + if( ttyp != 0x00 && ttyp != 0x01 && ttyp != 0x02 && ttyp != 0x80 && + ttyp != 0x81 && ttyp != 0x82 && ttyp != 0x83 && ttyp != 0xf0 ) return d->status = DISK_UNSUP; - bpt = buff[1] + 256 * buff[2]; /* current track len... */ + + /* if libspectrum cannot suppot*/ +#ifndef LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION + if( ttyp == 0xf0 ) d->status = DISK_UNSUP; +#endif /* #ifndef LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION */ + if( ttyp == 0x83 ) { /* multiple read */ + if( i == 0 ) return d->status = DISK_GEOM; /* cannot be first track */ + i--; bpt = 0; /* not a real track */ + tlen = buff[1] + 256 * buff[2]; /* current track len... */ + tlen = ( tlen & 0xfff8 ) * ( tlen & 0x07 ); + } else if( ttyp == 0xf0 ) { /* compressed track */ + if( buffavail( buffer ) < 7 ) + return d->status = DISK_OPEN; + bpt = buff[4] + 256 * buff[5]; + tlen = 7 + buff[1] + 256 * buff[2]; + } else { + bpt = buff[1] + 256 * buff[2]; /* current track len... */ + tlen = 3 + UDI_TLEN( ttyp, bpt ); + } if( bpt > d->bpt ) d->bpt = bpt; - if( buffseek( buffer, 3 + bpt + bpt / 8 + ( bpt % 8 ? 1 : 0 ), SEEK_CUR ) == -1 ) + if( buffseek( buffer, tlen, SEEK_CUR ) == -1 ) return d->status = DISK_OPEN; } @@ -768,33 +1038,46 @@ return d->status = DISK_GEOM; bpt = d->bpt; /* save the maximal value */ - d->tlen = bpt + bpt / 8 + ( bpt % 8 ? 1 : 0 ); + d->tlen = 3 + bpt + 3 * DISK_CLEN( bpt ); d->bpt = 0; /* we know exactly the track len... */ if( disk_alloc( d ) != DISK_OK ) return d->status; d->bpt = bpt; /* restore the maximal byte per track */ buffer->index = 16; - d->track = d->data; - for( i = 0; i < d->sides * d->cylinders; i++ ) { + for( i = 0; buffer->index < eof; i++ ) { + DISK_SET_TRACK_IDX( d, i ); + ttyp = buff[0]; bpt = buff[1] + 256 * buff[2]; /* current track len... */ - buffer->index += 3; + clen = DISK_CLEN( bpt ); + + memset( d->track, d->bpt, 0x4e ); /* fillup */ /* read track + clocks */ - if( d->bpt == bpt ) { /* if udi track length equal with the maximal track length */ - buffread( d->track, bpt + bpt / 8 + ( bpt % 8 ? 1 : 0 ), buffer ); + if( ttyp == 0x83 ) { /* multiple read */ + i--; /* not a real track */ + DISK_SET_TRACK_IDX( d, i ); /* back to previouse track */ + d->weak += buff[3] + 256 * buff[4]; /* add offset to weak */ + tlen = ( buff[1] + 256 * buff[2] ) >> 3; /* weak len in bytes */ + for( tlen--; tlen >= 0; tlen-- ) + d->weak[tlen] = 0xff; + tlen = buff[1] + 256 * buff[2]; /* current track len... */ + tlen = ( tlen & 0xfff8 ) * ( tlen & 0x07 ); + buffseek( buffer, tlen, SEEK_CUR ); } else { - buffread( d->track, bpt, buffer ); /* first the data */ - d->track += bpt; - for( j = d->bpt - bpt; j > 0; j--, d->track++ ) - *d->track = 0x4e; /* fill track data with 0x4e */ - buffread( d->track, bpt / 8 + ( bpt % 8 ? 1 : 0 ), buffer ); - d->track += bpt / 8 + ( bpt % 8 ? 1 : 0 ); - for( j = ( d->bpt / 8 + ( d->bpt % 8 ? 1 : 0 ) ) - - ( bpt / 8 + ( bpt % 8 ? 1 : 0 ) ); j > 0; j--, d->track++ ) - *d->track = 0x00; /* fill the clocks with 0x00 */ + if( ttyp == 0xf0 ) /* compressed */ + tlen = bpt + 4; + else + tlen = UDI_TLEN( ttyp, bpt ); + d->track[-1] = ttyp; + d->track[-3] = buff[1]; + d->track[-2] = buff[2]; + buffer->index += 3; + buffread( d->track, tlen, buffer ); /* first read data */ } - d->track += d->tlen; } + error = udi_uncompress_tracks( d ); + if( error ) return error; + udi_unpack_tracks( d ); return d->status = DISK_OK; } @@ -990,12 +1273,11 @@ buffread( head, 7, buffer ); /* 7 = track head */ track_offset = head[0x00] + 256 * head[0x01] + 65536 * head[0x02] + 16777216 * head[0x03]; - d->track = d->data + i * d->tlen; d->clocks = d->track + d->bpt; + DISK_SET_TRACK_IDX( d, i ); d->i = 0; if( preindex ) preindex_add( d, gap ); postindex_add( d, gap ); - bpt = 0; for( j = 0; j < head[0x06]; j++ ) { if( j % 35 == 0 ) { /* if we have more than 35 sector in a track, we have to seek back to the next sector @@ -1012,7 +1294,7 @@ data_add( d, buffer, NULL, ( head[ 0x0b + 7 * ( j % 35 ) ] & 0x3f ) == 0 ? -1 : 0x80 << head[ 0x0a + 7 * ( j % 35 ) ], head[ 0x0b + 7 * ( j % 35 ) ] & 0x80 ? DDAM : NO_DDAM, - gap, CRC_OK, NO_AUTOFILL ); + gap, CRC_OK, NO_AUTOFILL, NULL ); } head_offset += 7 + 7 * head[0x06]; gap4_add( d, gap ); @@ -1020,6 +1302,28 @@ return d->status = DISK_OK; } +static void +cpc_set_weak_range( disk_t *d, int idx, buffer_t *buffer, int n, int len ) +{ + int i, j, first = -1, last = -1; + libspectrum_byte *t, *w; + + t = d->track + idx; + w = buffer->file.buffer + buffer->index; + + for( i = 0; i < len; i++, t++, w++ ) { + for( j = 0; j < n - 1; j ++ ) { + if( *t != w[j * len] ) { + if( first == -1 ) first = idx + i; + last = idx + i; + } + } + } + for( ; first <= last; first++ ) { + bitmap_set( d->weak, first ); + } +} + #define CPC_ISSUE_NONE 0 #define CPC_ISSUE_1 1 #define CPC_ISSUE_2 2 @@ -1030,7 +1334,7 @@ static int open_cpc( buffer_t *buffer, disk_t *d, int preindex ) { - int i, j, seclen, idlen, gap, sector_pad; + int i, j, seclen, idlen, gap, sector_pad, idx; int bpt, max_bpt = 0, trlen; int fix[84], plus3_fix; unsigned char *hdrb; @@ -1122,7 +1426,7 @@ if( disk_alloc( d ) != DISK_OK ) return d->status; - d->track = d->data; d->clocks = d->track + d->bpt; + DISK_SET_TRACK_IDX( d, 0 ); buffer->index = 256; /* rewind to first track */ for( i = 0; i < d->sides*d->cylinders; i++ ) { hdrb = buff; @@ -1130,7 +1434,7 @@ gap = (unsigned char)hdrb[0x16] == 0xff ? GAP_MINIMAL_FM : GAP_MINIMAL_MFM; i = hdrb[0x10] * d->sides + hdrb[0x11]; /* adjust track No. */ - d->track = d->data + i * d->tlen; d->clocks = d->track + d->bpt; + DISK_SET_TRACK_IDX( d, i ); d->i = 0; if( preindex) preindex_add( d, gap ); @@ -1158,7 +1462,7 @@ data_add( d, buffer, NULL, seclen, hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? - CRC_ERROR : CRC_OK, 0x00 ); + CRC_ERROR : CRC_OK, 0x00, NULL ); } else if( i < 84 && fix[i] == CPC_ISSUE_2 && j == 0 ) { /* 6144, 10x512 */ datamark_add( d, hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap ); gap_add( d, 2, gap ); @@ -1167,13 +1471,13 @@ data_add( d, buffer, NULL, 128, hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? - CRC_ERROR : CRC_OK, 0x00 ); + CRC_ERROR : CRC_OK, 0x00, NULL ); buffer->index += seclen - 128; } else if( i < 84 && fix[i] == CPC_ISSUE_4 ) { /* Nx8192 (max 6384 byte ) */ data_add( d, buffer, NULL, 6384, hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? - CRC_ERROR : CRC_OK, 0x00 ); + CRC_ERROR : CRC_OK, 0x00, NULL ); buffer->index += seclen - 6384; } else if( i < 84 && fix[i] == CPC_ISSUE_5 ) { /* 9x512 */ /* 512 256 512 256 512 256 512 256 512 */ @@ -1181,22 +1485,22 @@ data_add( d, NULL, buff, 512, hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? - CRC_ERROR : CRC_OK, 0x00 ); + CRC_ERROR : CRC_OK, 0x00, NULL ); buffer->index += idlen; } else { data_add( d, buffer, NULL, idlen, hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? - CRC_ERROR : CRC_OK, 0x00 ); + CRC_ERROR : CRC_OK, 0x00, NULL ); } } else { data_add( d, buffer, NULL, seclen > idlen ? idlen : seclen, hdrb[ 0x1d + 8 * j ] & 0x40 ? DDAM : NO_DDAM, gap, hdrb[ 0x1c + 8 * j ] & 0x20 && hdrb[ 0x1d + 8 * j ] & 0x20 ? - CRC_ERROR : CRC_OK, 0x00 ); + CRC_ERROR : CRC_OK, 0x00, &idx ); if( seclen > idlen ) { /* weak sector with multiple copy */ - buffer->index +=( seclen / ( 0x80 << hdrb[ 0x1b + 8 * j ] ) - 1 ) * - ( 0x80 << hdrb[ 0x1b + 8 * j ] ); + cpc_set_weak_range( d, idx, buffer, seclen / idlen, idlen ); + buffer->index += ( seclen / idlen - 1 ) * idlen; /* ( ( N * len ) / len - 1 ) * len */ } } @@ -1236,8 +1540,7 @@ return d->status = DISK_GEOM; /* too many file */ buffer->index = 9; /* read SCL entries */ - d->track = d->data; /* track 0 */ - d->clocks = d->track + d->bpt; + DISK_SET_TRACK_IDX( d, 0 ); d->i = 0; postindex_add( d, GAP_TRDOS ); scl_i = d->i; /* the position of first sector */ @@ -1266,7 +1569,7 @@ if( j == 256 ) { /* one sector ready */ d->i = scl_i + ( ( s - 1 ) % 8 * 2 + ( s - 1 ) / 8 ) * seclen; /* 1 9 2 10 3 ... */ id_add( d, 0, 0, s, SECLEN_256, GAP_TRDOS, CRC_OK ); - data_add( d, NULL, head, 256, NO_DDAM, GAP_TRDOS, CRC_OK, NO_AUTOFILL ); + data_add( d, NULL, head, 256, NO_DDAM, GAP_TRDOS, CRC_OK, NO_AUTOFILL, NULL ); memset( head, 0, 256 ); s++; j = 0; @@ -1276,7 +1579,7 @@ if( j != 0 ) { /* we have to add this sector */ d->i = scl_i + ( ( s - 1 ) % 8 * 2 + ( s - 1 ) / 8 ) * seclen; /* 1 9 2 10 3 ... */ id_add( d, 0, 0, s, SECLEN_256, GAP_TRDOS, CRC_OK ); - data_add( d, NULL, head, 256, NO_DDAM, GAP_TRDOS, CRC_OK, NO_AUTOFILL ); + data_add( d, NULL, head, 256, NO_DDAM, GAP_TRDOS, CRC_OK, NO_AUTOFILL, NULL ); s++; } /* and add empty sectors up to No. 16 */ @@ -1296,7 +1599,7 @@ head[244] = scl_deleted; /* number of deleted files */ memcpy( head + 245, "FUSE-SCL", 8 ); } - data_add( d, NULL, head, 256, NO_DDAM, GAP_TRDOS, CRC_OK, NO_AUTOFILL ); + data_add( d, NULL, head, 256, NO_DDAM, GAP_TRDOS, CRC_OK, NO_AUTOFILL, NULL ); if( s == 9 ) memset( head, 0, 256 ); /* clear sector data... */ } @@ -1346,7 +1649,6 @@ return d->status = DISK_OPEN; if( buff[1] + 1 > d->cylinders ) /* find the biggest cylinder number */ d->cylinders = buff[1] + 1; - bpt = 0; sector_offset = track_offset + 4; mfm = buff[2] & 0x80 ? 0 : 1; /* 0x80 == 1 => SD track */ bpt = postindex_len( d, mfm_old || mfm ? GAP_MINIMAL_FM : GAP_MINIMAL_MFM ) + @@ -1382,15 +1684,14 @@ if( disk_alloc( d ) != DISK_OK ) return d->status; - d->track = d->data; d->clocks = d->track + d->bpt; + DISK_SET_TRACK_IDX( d, 0 ); buffer->index = data_offset; /* first track header */ while( 1 ) { if( ( sectors = buff[0] ) == 255 ) /* sector number 255 => end of tracks */ break; - d->track = d->data + ( d->sides * buff[1] + ( buff[2] & 0x01 ) ) * d->tlen; - d->clocks = d->track + d->bpt; + DISK_SET_TRACK( d, ( buff[2] & 0x01 ), buff[1] ); d->i = 0; /* later teledisk -> if buff[2] & 0x80 -> FM track */ gap = mfm_old || buff[2] & 0x80 ? GAP_MINIMAL_FM : GAP_MINIMAL_MFM; @@ -1418,7 +1719,7 @@ return d->status = DISK_OPEN; } if( data_add( d, buffer, NULL, hdrb[6] + 256 * hdrb[7] - 1, - hdrb[4] & 0x04 ? DDAM : NO_DDAM, gap, CRC_OK, NO_AUTOFILL ) ) { + hdrb[4] & 0x04 ? DDAM : NO_DDAM, gap, CRC_OK, NO_AUTOFILL, NULL ) ) { if( uncomp_buff ) free( uncomp_buff ); return d->status = DISK_OPEN; @@ -1443,7 +1744,7 @@ i += 2 * ( hdrb[9] + 256 * hdrb[10] ); } if( data_add( d, NULL, uncomp_buff, hdrb[6] + 256 * hdrb[7] - 1, - hdrb[4] & 0x04 ? DDAM : NO_DDAM, gap, CRC_OK, NO_AUTOFILL ) ) { + hdrb[4] & 0x04 ? DDAM : NO_DDAM, gap, CRC_OK, NO_AUTOFILL, NULL ) ) { free( uncomp_buff ); return d->status = DISK_OPEN; } @@ -1482,7 +1783,7 @@ } } if( data_add( d, NULL, uncomp_... [truncated message content] |
From: <fr...@us...> - 2010-05-24 11:59:24
|
Revision: 636 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=636&view=rev Author: fredm Date: 2010-05-24 11:59:18 +0000 (Mon, 24 May 2010) Log Message: ----------- To prepare to load . into vendor/fuse-emulator/current, perform 1 rename. * vendor/fuse-emulator/current/fuse/sound.c: Renamed from vendor/fuse-emulator/current/fuse/sound.cpp. Added Paths: ----------- vendor/fuse-emulator/current/fuse/sound.c Removed Paths: ------------- vendor/fuse-emulator/current/fuse/sound.cpp Copied: vendor/fuse-emulator/current/fuse/sound.c (from rev 635, vendor/fuse-emulator/current/fuse/sound.cpp) =================================================================== --- vendor/fuse-emulator/current/fuse/sound.c (rev 0) +++ vendor/fuse-emulator/current/fuse/sound.c 2010-05-24 11:59:18 UTC (rev 636) @@ -0,0 +1,652 @@ +/* sound.cpp: Sound support + Copyright (c) 2000-2009 Russell Marks, Matan Ziv-Av, Philip Kendall, + Fredrick Meunier + + $Id: sound.cpp 4036 2009-06-13 09:57:55Z fredm $ + + 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + Author contact information: + + E-mail: phi...@sh... + +*/ + +/* The AY white noise RNG algorithm is based on info from MAME's ay8910.c - + * MAME's licence explicitly permits free use of info (even encourages it). + */ + +extern "C" { +#include "fuse.h" +#include "machine.h" +#include "options.h" +#include "settings.h" +#include "sound.h" +#include "tape.h" +#include "ui/ui.h" +} + +#include "sound/Blip_Buffer.h" + +/* Do we have any of our sound devices available? */ + +/* configuration */ +int sound_enabled = 0; /* Are we currently using the sound card */ +int sound_enabled_ever = 0; /* if it's *ever* been in use; see + sound_ay_write() and sound_ay_reset() */ +int sound_stereo = 0; /* true for stereo *output sample* (only) */ +int sound_stereo_ay = 0; /* local copy of settings_current.stereo_ay */ + +/* assume all three tone channels together match the beeper volume (ish). + * Must be <=127 for all channels; 50+2+(24*3) = 124. + * (Now scaled up for 16-bit.) + */ +#define AMPL_BEEPER ( 50 * 256) +#define AMPL_TAPE ( 5 * 256 ) +#define AMPL_AY_TONE ( 24 * 256 ) /* three of these */ + +/* max. number of sub-frame AY port writes allowed; + * given the number of port writes theoretically possible in a + * 50th I think this should be plenty. + */ +#define AY_CHANGE_MAX 8000 + +int sound_freq; +int sound_framesiz; + +static int sound_channels; + +static unsigned int ay_tone_levels[16]; + +static unsigned int ay_tone_tick[3], ay_tone_high[3], ay_noise_tick; +static unsigned int ay_tone_cycles, ay_env_cycles; +static unsigned int ay_env_internal_tick, ay_env_tick; +static unsigned int ay_tone_period[3], ay_noise_period, ay_env_period; + +/* Local copy of the AY registers */ +static libspectrum_byte sound_ay_registers[16]; + +struct ay_change_tag +{ + libspectrum_dword tstates; + unsigned char reg, val; +}; + +static struct ay_change_tag ay_change[ AY_CHANGE_MAX ]; +static int ay_change_count; + +Blip_Buffer *left_buf; +Blip_Buffer *right_buf; +blip_sample_t *samples; + +typedef Blip_Synth<blip_good_quality, blip_unscaled> fuse_synth; +fuse_synth *left_beeper_synth, *right_beeper_synth; + +fuse_synth *ay_a_synth, *ay_b_synth, *ay_c_synth; +fuse_synth *ay_a_synth_r, *ay_b_synth_r, *ay_c_synth_r; + +struct speaker_type_tag +{ + int bass; + double treble; +}; + +static struct speaker_type_tag speaker_type[] = + { { 200, -47.0 }, { 1000, -67.0 } }; + +static double +sound_get_volume( int volume ) +{ + if( volume < 0 ) volume = 0; + else if( volume > 100 ) volume = 100; + + return volume / 100.0; +} + +/* Returns the emulation speed adjusted processor speed */ +libspectrum_dword +sound_get_effective_processor_speed( void ) +{ + return machine_current->timings.processor_speed / 100 * + settings_current.emulation_speed; +} + +bool +sound_init_blip( Blip_Buffer **buf, fuse_synth **synth ) +{ + *buf = new Blip_Buffer(); + (*buf)->clock_rate( sound_get_effective_processor_speed() ); + /* Allow up to 1s of playback buffer - this allows us to cope with slowing + down to 2% of speed where a single Speccy frame generates just under 1s + of sound */ + if ( (*buf)->set_sample_rate( settings_current.sound_freq, 1000 ) ) { + sound_end(); + ui_error( UI_ERROR_ERROR, "out of memory at %s:%d", __FILE__, __LINE__ ); + return false; + } + + *synth = new fuse_synth(); + + (*synth)->volume( sound_get_volume( settings_current.volume_beeper ) ); + (*synth)->output( *buf ); + + (*buf)->bass_freq( speaker_type[ option_enumerate_sound_speaker_type() ].bass ); + (*synth)->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); + + return true; +} + +static void +sound_ay_init( void ) +{ + /* AY output doesn't match the claimed levels; these levels are based + * on the measurements posted to comp.sys.sinclair in Dec 2001 by + * Matthew Westcott, adjusted as I described in a followup to his post, + * then scaled to 0..0xffff. + */ + static const int levels[16] = { + 0x0000, 0x0385, 0x053D, 0x0770, + 0x0AD7, 0x0FD5, 0x15B0, 0x230C, + 0x2B4C, 0x43C1, 0x5A4B, 0x732F, + 0x9204, 0xAFF1, 0xD921, 0xFFFF + }; + int f; + + /* scale the values down to fit */ + for( f = 0; f < 16; f++ ) + ay_tone_levels[f] = ( levels[f] * AMPL_AY_TONE + 0x8000 ) / 0xffff; + + ay_noise_tick = ay_noise_period = 0; + ay_env_internal_tick = ay_env_tick = ay_env_period = 0; + ay_tone_cycles = ay_env_cycles = 0; + for( f = 0; f < 3; f++ ) + ay_tone_tick[f] = ay_tone_high[f] = 0, ay_tone_period[f] = 1; + + ay_change_count = 0; +} + +void +sound_init( const char *device ) +{ + int ret; + float hz; + + /* Allow sound as long as emulation speed is greater than 2% + (less than that and a single Speccy frame generates more + than a seconds worth of sound which is bigger than the + maximum Blip_Buffer of 1 second) */ + if( !( !sound_enabled && settings_current.sound && + settings_current.emulation_speed > 1 ) ) + return; + + sound_stereo_ay = settings_current.stereo_ay; + + /* only try for stereo if we need it */ + if( sound_stereo_ay ) + sound_stereo = 1; + + ret = + sound_lowlevel_init( device, &settings_current.sound_freq, &sound_stereo ); + + if( ret ) + return; + + if( !sound_init_blip(&left_buf, &left_beeper_synth) ) return; + if( sound_stereo && !sound_init_blip(&right_buf, &right_beeper_synth) ) return; + + ay_a_synth = new fuse_synth(); + ay_a_synth->volume( sound_get_volume( settings_current.volume_ay) ); + ay_a_synth->output( left_buf ); + ay_a_synth->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); + + ay_b_synth = new fuse_synth(); + ay_b_synth->volume( sound_get_volume( settings_current.volume_ay) ); + ay_b_synth->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); + + ay_c_synth = new fuse_synth(); + ay_c_synth->volume( sound_get_volume( settings_current.volume_ay) ); + ay_c_synth->output( left_buf ); + ay_c_synth->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); + + /* important to override these settings if not using stereo + * (it would probably be confusing to mess with the stereo + * settings in settings_current though, which is why we make copies + * rather than using the real ones). + */ + if( !sound_stereo ) { + sound_stereo_ay = 0; + } + + ay_a_synth_r = 0; + ay_b_synth_r = 0; + ay_c_synth_r = 0; + + if( sound_stereo ) { + ay_c_synth_r = new fuse_synth(); + ay_c_synth_r->volume( sound_get_volume( settings_current.volume_ay ) ); + ay_c_synth_r->output( right_buf ); + + if( sound_stereo_ay ) { + /* stereo with ACB stereo. */ + ay_b_synth->output( right_buf ); + } else { + ay_a_synth_r = new fuse_synth(); + ay_a_synth_r->volume( sound_get_volume( settings_current.volume_ay ) ); + ay_a_synth_r->output( right_buf ); + ay_a_synth_r->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); + + ay_b_synth->output( left_buf ); + + ay_b_synth_r = new fuse_synth(); + ay_b_synth_r->volume( sound_get_volume( settings_current.volume_ay ) ); + ay_b_synth_r->output( right_buf ); + ay_b_synth_r->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); + } + } else { + ay_b_synth->output( left_buf ); + } + + sound_enabled = sound_enabled_ever = 1; + + sound_channels = ( sound_stereo ? 2 : 1 ); + + /* Adjust relative processor speed to deal with adjusting sound generation + frequency against emulation speed (more flexible than adjusting generated + sample rate) */ + hz = ( float )sound_get_effective_processor_speed() / + machine_current->timings.tstates_per_frame; + + /* Size of audio data we will get from running a single Spectrum frame */ + sound_framesiz = ( float )settings_current.sound_freq / hz; + sound_framesiz++; + + samples = (blip_sample_t *)calloc( sound_framesiz * sound_channels, + sizeof(blip_sample_t) ); +} + +void +sound_pause( void ) +{ + if( sound_enabled ) + sound_end(); +} + +void +sound_unpause( void ) +{ + /* No sound if fastloading in progress */ + if( settings_current.fastload && tape_is_playing() ) + return; + + sound_init( settings_current.sound_device ); +} + +void +sound_end( void ) +{ + if( sound_enabled ) { + delete left_beeper_synth; left_beeper_synth = 0; + delete left_buf; left_buf = 0; + delete right_beeper_synth; right_beeper_synth = 0; + delete right_buf; right_buf = 0; + + delete ay_a_synth; ay_a_synth = 0; + delete ay_b_synth; ay_b_synth = 0; + delete ay_c_synth; ay_c_synth = 0; + delete ay_a_synth_r; ay_a_synth_r = 0; + delete ay_b_synth_r; ay_b_synth_r = 0; + delete ay_c_synth_r; ay_c_synth_r = 0; + + sound_lowlevel_end(); + free( samples ); + sound_enabled = 0; + } +} + +static inline void +ay_do_tone( int level, unsigned int tone_count, int& var, int chan ) +{ + var = 0; + + ay_tone_tick[ chan ] += tone_count; + + if( ay_tone_tick[ chan ] >= ay_tone_period[ chan ] ) { + ay_tone_tick[ chan ] -= ay_tone_period[ chan ]; + ay_tone_high[ chan ] = !ay_tone_high[ chan ]; + } + + if( level ) { + if( ay_tone_high[ chan ] ) + var = level; + else { + var = -level; + } + } + + /* The AY output goes from 0 to the maximum volume, so there + * is a DC component that is half the maxmum volume. + * Robocop uses a high frequency square wave with a tone + * period of one to average out to being like a DC offset at + * around half the maximum volume. This is used as a base for + * the sample playback. + * This seems to intefere with our attempt to remove the + * returned DC offset, so for now we just ignore the high + * frequency wave and hope it's a sample + */ + if( ay_tone_period[ chan ] == 1 ) { + var = -level; + } +} + +/* bitmasks for envelope */ +#define AY_ENV_CONT 8 +#define AY_ENV_ATTACK 4 +#define AY_ENV_ALT 2 +#define AY_ENV_HOLD 1 + +/* the AY steps down the external clock by 16 for tone and noise + generators */ +#define AY_CLOCK_DIVISOR 16 +/* all Spectrum models and clones with an AY seem to count down the + master clock by 2 to drive the AY */ +#define AY_CLOCK_RATIO 2 + +static void +sound_ay_overlay( void ) +{ + static int rng = 1; + static int noise_toggle = 0; + static int env_first = 1, env_rev = 0, env_counter = 15; + int tone_level[3]; + int mixer, envshape; + int g, level; + libspectrum_dword f; + struct ay_change_tag *change_ptr = ay_change; + int changes_left = ay_change_count; + int reg, r; + int chan1, chan2, chan3; + int last_chan1 = 0, last_chan2 = 0, last_chan3 = 0; + unsigned int tone_count, noise_count; + + /* If no AY chip, don't produce any AY sound (!) */ + if( !( periph_fuller_active || periph_melodik_active || + machine_current->capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_AY ) ) + return; + + for( f = 0; f < machine_current->timings.tstates_per_frame; + f+= AY_CLOCK_DIVISOR * AY_CLOCK_RATIO ) { + /* update ay registers. */ + while( changes_left && f >= change_ptr->tstates ) { + sound_ay_registers[ reg = change_ptr->reg ] = change_ptr->val; + change_ptr++; + changes_left--; + + /* fix things as needed for some register changes */ + switch ( reg ) { + case 0: case 1: case 2: case 3: case 4: case 5: + r = reg >> 1; + /* a zero-len period is the same as 1 */ + ay_tone_period[r] = ( sound_ay_registers[ reg & ~1 ] | + ( sound_ay_registers[ reg | 1 ] & 15 ) << 8 ); + if( !ay_tone_period[r] ) + ay_tone_period[r]++; + + /* important to get this right, otherwise e.g. Ghouls 'n' Ghosts + * has really scratchy, horrible-sounding vibrato. + */ + if( ay_tone_tick[r] >= ay_tone_period[r] * 2 ) + ay_tone_tick[r] %= ay_tone_period[r] * 2; + break; + case 6: + ay_noise_tick = 0; + ay_noise_period = ( sound_ay_registers[ reg ] & 31 ); + break; + case 11: case 12: + ay_env_period = + sound_ay_registers[11] | ( sound_ay_registers[12] << 8 ); + break; + case 13: + ay_env_internal_tick = ay_env_tick = ay_env_cycles = 0; + env_first = 1; + env_rev = 0; + env_counter = ( sound_ay_registers[13] & AY_ENV_ATTACK ) ? 0 : 15; + break; + } + } + + /* the tone level if no enveloping is being used */ + for( g = 0; g < 3; g++ ) + tone_level[g] = ay_tone_levels[ sound_ay_registers[ 8 + g ] & 15 ]; + + /* envelope */ + envshape = sound_ay_registers[13]; + level = ay_tone_levels[ env_counter ]; + + for( g = 0; g < 3; g++ ) + if( sound_ay_registers[ 8 + g ] & 16 ) + tone_level[g] = level; + + /* envelope output counter gets incr'd every 16 AY cycles. */ + ay_env_cycles += AY_CLOCK_DIVISOR; + noise_count = 0; + while( ay_env_cycles >= 16 ) { + ay_env_cycles -= 16; + noise_count++; + ay_env_tick++; + while( ay_env_tick >= ay_env_period ) { + ay_env_tick -= ay_env_period; + + /* do a 1/16th-of-period incr/decr if needed */ + if( env_first || + ( ( envshape & AY_ENV_CONT ) && !( envshape & AY_ENV_HOLD ) ) ) { + if( env_rev ) + env_counter -= ( envshape & AY_ENV_ATTACK ) ? 1 : -1; + else + env_counter += ( envshape & AY_ENV_ATTACK ) ? 1 : -1; + if( env_counter < 0 ) + env_counter = 0; + if( env_counter > 15 ) + env_counter = 15; + } + + ay_env_internal_tick++; + while( ay_env_internal_tick >= 16 ) { + ay_env_internal_tick -= 16; + + /* end of cycle */ + if( !( envshape & AY_ENV_CONT ) ) + env_counter = 0; + else { + if( envshape & AY_ENV_HOLD ) { + if( env_first && ( envshape & AY_ENV_ALT ) ) + env_counter = ( env_counter ? 0 : 15 ); + } else { + /* non-hold */ + if( envshape & AY_ENV_ALT ) + env_rev = !env_rev; + else + env_counter = ( envshape & AY_ENV_ATTACK ) ? 0 : 15; + } + } + + env_first = 0; + } + + /* don't keep trying if period is zero */ + if( !ay_env_period ) + break; + } + } + + /* generate tone+noise... or neither. + * (if no tone/noise is selected, the chip just shoves the + * level out unmodified. This is used by some sample-playing + * stuff.) + */ + chan1 = tone_level[0]; + chan2 = tone_level[1]; + chan3 = tone_level[2]; + mixer = sound_ay_registers[7]; + + ay_tone_cycles += AY_CLOCK_DIVISOR; + tone_count = ay_tone_cycles >> 3; + ay_tone_cycles &= 7; + + if( ( mixer & 1 ) == 0 ) { + level = chan1; + ay_do_tone( level, tone_count, chan1, 0 ); + } + if( ( mixer & 0x08 ) == 0 && noise_toggle ) + chan1 = 0; + + if( ( mixer & 2 ) == 0 ) { + level = chan2; + ay_do_tone( level, tone_count, chan2, 1 ); + } + if( ( mixer & 0x10 ) == 0 && noise_toggle ) + chan2 = 0; + + if( ( mixer & 4 ) == 0 ) { + level = chan3; + ay_do_tone( level, tone_count, chan3, 2 ); + } + if( ( mixer & 0x20 ) == 0 && noise_toggle ) + chan3 = 0; + + if( last_chan1 != chan1 ) { + ay_a_synth->update( f, chan1 ); + if( ay_a_synth_r ) ay_a_synth_r->update( f, chan1 ); + last_chan1 = chan1; + } + if( last_chan2 != chan2 ) { + ay_b_synth->update( f, chan2 ); + if( ay_b_synth_r ) ay_b_synth_r->update( f, chan2 ); + last_chan2 = chan2; + } + if( last_chan3 != chan3 ) { + ay_c_synth->update( f, chan3 ); + if( ay_c_synth_r ) ay_c_synth_r->update( f, chan3 ); + last_chan3 = chan3; + } + + /* update noise RNG/filter */ + ay_noise_tick += noise_count; + while( ay_noise_tick >= ay_noise_period ) { + ay_noise_tick -= ay_noise_period; + + if( ( rng & 1 ) ^ ( ( rng & 2 ) ? 1 : 0 ) ) + noise_toggle = !noise_toggle; + + /* rng is 17-bit shift reg, bit 0 is output. + * input is bit 0 xor bit 2. + */ + rng |= ( ( rng & 1 ) ^ ( ( rng & 4 ) ? 1 : 0 ) ) ? 0x20000 : 0; + rng >>= 1; + + /* don't keep trying if period is zero */ + if( !ay_noise_period ) + break; + } + } +} + +/* don't make the change immediately; record it for later, + * to be made by sound_frame() (via sound_ay_overlay()). + */ +void +sound_ay_write( int reg, int val, libspectrum_dword now ) +{ + if( ay_change_count < AY_CHANGE_MAX ) { + ay_change[ ay_change_count ].tstates = now; + ay_change[ ay_change_count ].reg = ( reg & 15 ); + ay_change[ ay_change_count ].val = val; + ay_change_count++; + } +} + +/* no need to call this initially, but should be called + * on reset otherwise. + */ +void +sound_ay_reset( void ) +{ + int f; + + /* recalculate timings based on new machines ay clock */ + sound_ay_init(); + + ay_change_count = 0; + for( f = 0; f < 16; f++ ) + sound_ay_write( f, 0, 0 ); + for( f = 0; f < 3; f++ ) + ay_tone_high[f] = 0; + ay_tone_cycles = ay_env_cycles = 0; +} + +void +sound_frame( void ) +{ + long count; + + if( !sound_enabled ) + return; + + /* overlay AY sound */ + sound_ay_overlay(); + + left_buf->end_frame( machine_current->timings.tstates_per_frame ); + + if( sound_stereo ) { + right_buf->end_frame( machine_current->timings.tstates_per_frame ); + + /* Read left channel into even samples, right channel into odd samples: + LRLRLRLRLR... */ + count = left_buf->read_samples( samples, sound_framesiz, 1 ); + right_buf->read_samples( samples + 1, count, 1 ); + count <<= 1; + } else { + count = left_buf->read_samples( samples, sound_framesiz ); + } + + sound_lowlevel_frame( samples, count ); + + ay_change_count = 0; +} + +void +sound_beeper( int on ) +{ + static int beeper_ampl[] = { 0, AMPL_TAPE, AMPL_BEEPER, AMPL_BEEPER+AMPL_TAPE }; + + int val; + int ampl; + + if( !sound_enabled ) + return; + + /* Timex machines have no loading noise */ + if( tape_is_playing() && + ( !settings_current.sound_load || machine_current->timex ) ) + on = on & 0x02; + + ampl = beeper_ampl[on]; + + val = -beeper_ampl[3] + ampl*2; + + left_beeper_synth->update( tstates, val ); + if( sound_stereo ) { + right_beeper_synth->update( tstates, val ); + } +} Deleted: vendor/fuse-emulator/current/fuse/sound.cpp =================================================================== --- vendor/fuse-emulator/current/fuse/sound.cpp 2010-04-06 11:24:38 UTC (rev 635) +++ vendor/fuse-emulator/current/fuse/sound.cpp 2010-05-24 11:59:18 UTC (rev 636) @@ -1,652 +0,0 @@ -/* sound.cpp: Sound support - Copyright (c) 2000-2009 Russell Marks, Matan Ziv-Av, Philip Kendall, - Fredrick Meunier - - $Id: sound.cpp 4036 2009-06-13 09:57:55Z fredm $ - - 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., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - Author contact information: - - E-mail: phi...@sh... - -*/ - -/* The AY white noise RNG algorithm is based on info from MAME's ay8910.c - - * MAME's licence explicitly permits free use of info (even encourages it). - */ - -extern "C" { -#include "fuse.h" -#include "machine.h" -#include "options.h" -#include "settings.h" -#include "sound.h" -#include "tape.h" -#include "ui/ui.h" -} - -#include "sound/Blip_Buffer.h" - -/* Do we have any of our sound devices available? */ - -/* configuration */ -int sound_enabled = 0; /* Are we currently using the sound card */ -int sound_enabled_ever = 0; /* if it's *ever* been in use; see - sound_ay_write() and sound_ay_reset() */ -int sound_stereo = 0; /* true for stereo *output sample* (only) */ -int sound_stereo_ay = 0; /* local copy of settings_current.stereo_ay */ - -/* assume all three tone channels together match the beeper volume (ish). - * Must be <=127 for all channels; 50+2+(24*3) = 124. - * (Now scaled up for 16-bit.) - */ -#define AMPL_BEEPER ( 50 * 256) -#define AMPL_TAPE ( 5 * 256 ) -#define AMPL_AY_TONE ( 24 * 256 ) /* three of these */ - -/* max. number of sub-frame AY port writes allowed; - * given the number of port writes theoretically possible in a - * 50th I think this should be plenty. - */ -#define AY_CHANGE_MAX 8000 - -int sound_freq; -int sound_framesiz; - -static int sound_channels; - -static unsigned int ay_tone_levels[16]; - -static unsigned int ay_tone_tick[3], ay_tone_high[3], ay_noise_tick; -static unsigned int ay_tone_cycles, ay_env_cycles; -static unsigned int ay_env_internal_tick, ay_env_tick; -static unsigned int ay_tone_period[3], ay_noise_period, ay_env_period; - -/* Local copy of the AY registers */ -static libspectrum_byte sound_ay_registers[16]; - -struct ay_change_tag -{ - libspectrum_dword tstates; - unsigned char reg, val; -}; - -static struct ay_change_tag ay_change[ AY_CHANGE_MAX ]; -static int ay_change_count; - -Blip_Buffer *left_buf; -Blip_Buffer *right_buf; -blip_sample_t *samples; - -typedef Blip_Synth<blip_good_quality, blip_unscaled> fuse_synth; -fuse_synth *left_beeper_synth, *right_beeper_synth; - -fuse_synth *ay_a_synth, *ay_b_synth, *ay_c_synth; -fuse_synth *ay_a_synth_r, *ay_b_synth_r, *ay_c_synth_r; - -struct speaker_type_tag -{ - int bass; - double treble; -}; - -static struct speaker_type_tag speaker_type[] = - { { 200, -47.0 }, { 1000, -67.0 } }; - -static double -sound_get_volume( int volume ) -{ - if( volume < 0 ) volume = 0; - else if( volume > 100 ) volume = 100; - - return volume / 100.0; -} - -/* Returns the emulation speed adjusted processor speed */ -libspectrum_dword -sound_get_effective_processor_speed( void ) -{ - return machine_current->timings.processor_speed / 100 * - settings_current.emulation_speed; -} - -bool -sound_init_blip( Blip_Buffer **buf, fuse_synth **synth ) -{ - *buf = new Blip_Buffer(); - (*buf)->clock_rate( sound_get_effective_processor_speed() ); - /* Allow up to 1s of playback buffer - this allows us to cope with slowing - down to 2% of speed where a single Speccy frame generates just under 1s - of sound */ - if ( (*buf)->set_sample_rate( settings_current.sound_freq, 1000 ) ) { - sound_end(); - ui_error( UI_ERROR_ERROR, "out of memory at %s:%d", __FILE__, __LINE__ ); - return false; - } - - *synth = new fuse_synth(); - - (*synth)->volume( sound_get_volume( settings_current.volume_beeper ) ); - (*synth)->output( *buf ); - - (*buf)->bass_freq( speaker_type[ option_enumerate_sound_speaker_type() ].bass ); - (*synth)->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); - - return true; -} - -static void -sound_ay_init( void ) -{ - /* AY output doesn't match the claimed levels; these levels are based - * on the measurements posted to comp.sys.sinclair in Dec 2001 by - * Matthew Westcott, adjusted as I described in a followup to his post, - * then scaled to 0..0xffff. - */ - static const int levels[16] = { - 0x0000, 0x0385, 0x053D, 0x0770, - 0x0AD7, 0x0FD5, 0x15B0, 0x230C, - 0x2B4C, 0x43C1, 0x5A4B, 0x732F, - 0x9204, 0xAFF1, 0xD921, 0xFFFF - }; - int f; - - /* scale the values down to fit */ - for( f = 0; f < 16; f++ ) - ay_tone_levels[f] = ( levels[f] * AMPL_AY_TONE + 0x8000 ) / 0xffff; - - ay_noise_tick = ay_noise_period = 0; - ay_env_internal_tick = ay_env_tick = ay_env_period = 0; - ay_tone_cycles = ay_env_cycles = 0; - for( f = 0; f < 3; f++ ) - ay_tone_tick[f] = ay_tone_high[f] = 0, ay_tone_period[f] = 1; - - ay_change_count = 0; -} - -void -sound_init( const char *device ) -{ - int ret; - float hz; - - /* Allow sound as long as emulation speed is greater than 2% - (less than that and a single Speccy frame generates more - than a seconds worth of sound which is bigger than the - maximum Blip_Buffer of 1 second) */ - if( !( !sound_enabled && settings_current.sound && - settings_current.emulation_speed > 1 ) ) - return; - - sound_stereo_ay = settings_current.stereo_ay; - - /* only try for stereo if we need it */ - if( sound_stereo_ay ) - sound_stereo = 1; - - ret = - sound_lowlevel_init( device, &settings_current.sound_freq, &sound_stereo ); - - if( ret ) - return; - - if( !sound_init_blip(&left_buf, &left_beeper_synth) ) return; - if( sound_stereo && !sound_init_blip(&right_buf, &right_beeper_synth) ) return; - - ay_a_synth = new fuse_synth(); - ay_a_synth->volume( sound_get_volume( settings_current.volume_ay) ); - ay_a_synth->output( left_buf ); - ay_a_synth->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); - - ay_b_synth = new fuse_synth(); - ay_b_synth->volume( sound_get_volume( settings_current.volume_ay) ); - ay_b_synth->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); - - ay_c_synth = new fuse_synth(); - ay_c_synth->volume( sound_get_volume( settings_current.volume_ay) ); - ay_c_synth->output( left_buf ); - ay_c_synth->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); - - /* important to override these settings if not using stereo - * (it would probably be confusing to mess with the stereo - * settings in settings_current though, which is why we make copies - * rather than using the real ones). - */ - if( !sound_stereo ) { - sound_stereo_ay = 0; - } - - ay_a_synth_r = 0; - ay_b_synth_r = 0; - ay_c_synth_r = 0; - - if( sound_stereo ) { - ay_c_synth_r = new fuse_synth(); - ay_c_synth_r->volume( sound_get_volume( settings_current.volume_ay ) ); - ay_c_synth_r->output( right_buf ); - - if( sound_stereo_ay ) { - /* stereo with ACB stereo. */ - ay_b_synth->output( right_buf ); - } else { - ay_a_synth_r = new fuse_synth(); - ay_a_synth_r->volume( sound_get_volume( settings_current.volume_ay ) ); - ay_a_synth_r->output( right_buf ); - ay_a_synth_r->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); - - ay_b_synth->output( left_buf ); - - ay_b_synth_r = new fuse_synth(); - ay_b_synth_r->volume( sound_get_volume( settings_current.volume_ay ) ); - ay_b_synth_r->output( right_buf ); - ay_b_synth_r->treble_eq( speaker_type[ option_enumerate_sound_speaker_type() ].treble ); - } - } else { - ay_b_synth->output( left_buf ); - } - - sound_enabled = sound_enabled_ever = 1; - - sound_channels = ( sound_stereo ? 2 : 1 ); - - /* Adjust relative processor speed to deal with adjusting sound generation - frequency against emulation speed (more flexible than adjusting generated - sample rate) */ - hz = ( float )sound_get_effective_processor_speed() / - machine_current->timings.tstates_per_frame; - - /* Size of audio data we will get from running a single Spectrum frame */ - sound_framesiz = ( float )settings_current.sound_freq / hz; - sound_framesiz++; - - samples = (blip_sample_t *)calloc( sound_framesiz * sound_channels, - sizeof(blip_sample_t) ); -} - -void -sound_pause( void ) -{ - if( sound_enabled ) - sound_end(); -} - -void -sound_unpause( void ) -{ - /* No sound if fastloading in progress */ - if( settings_current.fastload && tape_is_playing() ) - return; - - sound_init( settings_current.sound_device ); -} - -void -sound_end( void ) -{ - if( sound_enabled ) { - delete left_beeper_synth; left_beeper_synth = 0; - delete left_buf; left_buf = 0; - delete right_beeper_synth; right_beeper_synth = 0; - delete right_buf; right_buf = 0; - - delete ay_a_synth; ay_a_synth = 0; - delete ay_b_synth; ay_b_synth = 0; - delete ay_c_synth; ay_c_synth = 0; - delete ay_a_synth_r; ay_a_synth_r = 0; - delete ay_b_synth_r; ay_b_synth_r = 0; - delete ay_c_synth_r; ay_c_synth_r = 0; - - sound_lowlevel_end(); - free( samples ); - sound_enabled = 0; - } -} - -static inline void -ay_do_tone( int level, unsigned int tone_count, int& var, int chan ) -{ - var = 0; - - ay_tone_tick[ chan ] += tone_count; - - if( ay_tone_tick[ chan ] >= ay_tone_period[ chan ] ) { - ay_tone_tick[ chan ] -= ay_tone_period[ chan ]; - ay_tone_high[ chan ] = !ay_tone_high[ chan ]; - } - - if( level ) { - if( ay_tone_high[ chan ] ) - var = level; - else { - var = -level; - } - } - - /* The AY output goes from 0 to the maximum volume, so there - * is a DC component that is half the maxmum volume. - * Robocop uses a high frequency square wave with a tone - * period of one to average out to being like a DC offset at - * around half the maximum volume. This is used as a base for - * the sample playback. - * This seems to intefere with our attempt to remove the - * returned DC offset, so for now we just ignore the high - * frequency wave and hope it's a sample - */ - if( ay_tone_period[ chan ] == 1 ) { - var = -level; - } -} - -/* bitmasks for envelope */ -#define AY_ENV_CONT 8 -#define AY_ENV_ATTACK 4 -#define AY_ENV_ALT 2 -#define AY_ENV_HOLD 1 - -/* the AY steps down the external clock by 16 for tone and noise - generators */ -#define AY_CLOCK_DIVISOR 16 -/* all Spectrum models and clones with an AY seem to count down the - master clock by 2 to drive the AY */ -#define AY_CLOCK_RATIO 2 - -static void -sound_ay_overlay( void ) -{ - static int rng = 1; - static int noise_toggle = 0; - static int env_first = 1, env_rev = 0, env_counter = 15; - int tone_level[3]; - int mixer, envshape; - int g, level; - libspectrum_dword f; - struct ay_change_tag *change_ptr = ay_change; - int changes_left = ay_change_count; - int reg, r; - int chan1, chan2, chan3; - int last_chan1 = 0, last_chan2 = 0, last_chan3 = 0; - unsigned int tone_count, noise_count; - - /* If no AY chip, don't produce any AY sound (!) */ - if( !( periph_fuller_active || periph_melodik_active || - machine_current->capabilities & LIBSPECTRUM_MACHINE_CAPABILITY_AY ) ) - return; - - for( f = 0; f < machine_current->timings.tstates_per_frame; - f+= AY_CLOCK_DIVISOR * AY_CLOCK_RATIO ) { - /* update ay registers. */ - while( changes_left && f >= change_ptr->tstates ) { - sound_ay_registers[ reg = change_ptr->reg ] = change_ptr->val; - change_ptr++; - changes_left--; - - /* fix things as needed for some register changes */ - switch ( reg ) { - case 0: case 1: case 2: case 3: case 4: case 5: - r = reg >> 1; - /* a zero-len period is the same as 1 */ - ay_tone_period[r] = ( sound_ay_registers[ reg & ~1 ] | - ( sound_ay_registers[ reg | 1 ] & 15 ) << 8 ); - if( !ay_tone_period[r] ) - ay_tone_period[r]++; - - /* important to get this right, otherwise e.g. Ghouls 'n' Ghosts - * has really scratchy, horrible-sounding vibrato. - */ - if( ay_tone_tick[r] >= ay_tone_period[r] * 2 ) - ay_tone_tick[r] %= ay_tone_period[r] * 2; - break; - case 6: - ay_noise_tick = 0; - ay_noise_period = ( sound_ay_registers[ reg ] & 31 ); - break; - case 11: case 12: - ay_env_period = - sound_ay_registers[11] | ( sound_ay_registers[12] << 8 ); - break; - case 13: - ay_env_internal_tick = ay_env_tick = ay_env_cycles = 0; - env_first = 1; - env_rev = 0; - env_counter = ( sound_ay_registers[13] & AY_ENV_ATTACK ) ? 0 : 15; - break; - } - } - - /* the tone level if no enveloping is being used */ - for( g = 0; g < 3; g++ ) - tone_level[g] = ay_tone_levels[ sound_ay_registers[ 8 + g ] & 15 ]; - - /* envelope */ - envshape = sound_ay_registers[13]; - level = ay_tone_levels[ env_counter ]; - - for( g = 0; g < 3; g++ ) - if( sound_ay_registers[ 8 + g ] & 16 ) - tone_level[g] = level; - - /* envelope output counter gets incr'd every 16 AY cycles. */ - ay_env_cycles += AY_CLOCK_DIVISOR; - noise_count = 0; - while( ay_env_cycles >= 16 ) { - ay_env_cycles -= 16; - noise_count++; - ay_env_tick++; - while( ay_env_tick >= ay_env_period ) { - ay_env_tick -= ay_env_period; - - /* do a 1/16th-of-period incr/decr if needed */ - if( env_first || - ( ( envshape & AY_ENV_CONT ) && !( envshape & AY_ENV_HOLD ) ) ) { - if( env_rev ) - env_counter -= ( envshape & AY_ENV_ATTACK ) ? 1 : -1; - else - env_counter += ( envshape & AY_ENV_ATTACK ) ? 1 : -1; - if( env_counter < 0 ) - env_counter = 0; - if( env_counter > 15 ) - env_counter = 15; - } - - ay_env_internal_tick++; - while( ay_env_internal_tick >= 16 ) { - ay_env_internal_tick -= 16; - - /* end of cycle */ - if( !( envshape & AY_ENV_CONT ) ) - env_counter = 0; - else { - if( envshape & AY_ENV_HOLD ) { - if( env_first && ( envshape & AY_ENV_ALT ) ) - env_counter = ( env_counter ? 0 : 15 ); - } else { - /* non-hold */ - if( envshape & AY_ENV_ALT ) - env_rev = !env_rev; - else - env_counter = ( envshape & AY_ENV_ATTACK ) ? 0 : 15; - } - } - - env_first = 0; - } - - /* don't keep trying if period is zero */ - if( !ay_env_period ) - break; - } - } - - /* generate tone+noise... or neither. - * (if no tone/noise is selected, the chip just shoves the - * level out unmodified. This is used by some sample-playing - * stuff.) - */ - chan1 = tone_level[0]; - chan2 = tone_level[1]; - chan3 = tone_level[2]; - mixer = sound_ay_registers[7]; - - ay_tone_cycles += AY_CLOCK_DIVISOR; - tone_count = ay_tone_cycles >> 3; - ay_tone_cycles &= 7; - - if( ( mixer & 1 ) == 0 ) { - level = chan1; - ay_do_tone( level, tone_count, chan1, 0 ); - } - if( ( mixer & 0x08 ) == 0 && noise_toggle ) - chan1 = 0; - - if( ( mixer & 2 ) == 0 ) { - level = chan2; - ay_do_tone( level, tone_count, chan2, 1 ); - } - if( ( mixer & 0x10 ) == 0 && noise_toggle ) - chan2 = 0; - - if( ( mixer & 4 ) == 0 ) { - level = chan3; - ay_do_tone( level, tone_count, chan3, 2 ); - } - if( ( mixer & 0x20 ) == 0 && noise_toggle ) - chan3 = 0; - - if( last_chan1 != chan1 ) { - ay_a_synth->update( f, chan1 ); - if( ay_a_synth_r ) ay_a_synth_r->update( f, chan1 ); - last_chan1 = chan1; - } - if( last_chan2 != chan2 ) { - ay_b_synth->update( f, chan2 ); - if( ay_b_synth_r ) ay_b_synth_r->update( f, chan2 ); - last_chan2 = chan2; - } - if( last_chan3 != chan3 ) { - ay_c_synth->update( f, chan3 ); - if( ay_c_synth_r ) ay_c_synth_r->update( f, chan3 ); - last_chan3 = chan3; - } - - /* update noise RNG/filter */ - ay_noise_tick += noise_count; - while( ay_noise_tick >= ay_noise_period ) { - ay_noise_tick -= ay_noise_period; - - if( ( rng & 1 ) ^ ( ( rng & 2 ) ? 1 : 0 ) ) - noise_toggle = !noise_toggle; - - /* rng is 17-bit shift reg, bit 0 is output. - * input is bit 0 xor bit 2. - */ - rng |= ( ( rng & 1 ) ^ ( ( rng & 4 ) ? 1 : 0 ) ) ? 0x20000 : 0; - rng >>= 1; - - /* don't keep trying if period is zero */ - if( !ay_noise_period ) - break; - } - } -} - -/* don't make the change immediately; record it for later, - * to be made by sound_frame() (via sound_ay_overlay()). - */ -void -sound_ay_write( int reg, int val, libspectrum_dword now ) -{ - if( ay_change_count < AY_CHANGE_MAX ) { - ay_change[ ay_change_count ].tstates = now; - ay_change[ ay_change_count ].reg = ( reg & 15 ); - ay_change[ ay_change_count ].val = val; - ay_change_count++; - } -} - -/* no need to call this initially, but should be called - * on reset otherwise. - */ -void -sound_ay_reset( void ) -{ - int f; - - /* recalculate timings based on new machines ay clock */ - sound_ay_init(); - - ay_change_count = 0; - for( f = 0; f < 16; f++ ) - sound_ay_write( f, 0, 0 ); - for( f = 0; f < 3; f++ ) - ay_tone_high[f] = 0; - ay_tone_cycles = ay_env_cycles = 0; -} - -void -sound_frame( void ) -{ - long count; - - if( !sound_enabled ) - return; - - /* overlay AY sound */ - sound_ay_overlay(); - - left_buf->end_frame( machine_current->timings.tstates_per_frame ); - - if( sound_stereo ) { - right_buf->end_frame( machine_current->timings.tstates_per_frame ); - - /* Read left channel into even samples, right channel into odd samples: - LRLRLRLRLR... */ - count = left_buf->read_samples( samples, sound_framesiz, 1 ); - right_buf->read_samples( samples + 1, count, 1 ); - count <<= 1; - } else { - count = left_buf->read_samples( samples, sound_framesiz ); - } - - sound_lowlevel_frame( samples, count ); - - ay_change_count = 0; -} - -void -sound_beeper( int on ) -{ - static int beeper_ampl[] = { 0, AMPL_TAPE, AMPL_BEEPER, AMPL_BEEPER+AMPL_TAPE }; - - int val; - int ampl; - - if( !sound_enabled ) - return; - - /* Timex machines have no loading noise */ - if( tape_is_playing() && - ( !settings_current.sound_load || machine_current->timex ) ) - on = on & 0x02; - - ampl = beeper_ampl[on]; - - val = -beeper_ampl[3] + ampl*2; - - left_beeper_synth->update( tstates, val ); - if( sound_stereo ) { - right_beeper_synth->update( tstates, val ); - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2010-04-06 11:24:44
|
Revision: 635 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=635&view=rev Author: fredm Date: 2010-04-06 11:24:38 +0000 (Tue, 06 Apr 2010) Log Message: ----------- prevents problems with pressing one "special" key and releasing another (because more than one were pressed or shift was released before the key itself) Modified Paths: -------------- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj trunk/fuse/fusepb/models/Emulator.h trunk/fuse/fusepb/models/Emulator.m Added Paths: ----------- trunk/fuse/fusepb/keystate.c trunk/fuse/fusepb/keystate.h Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj =================================================================== --- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2010-04-05 13:34:11 UTC (rev 634) +++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2010-04-06 11:24:38 UTC (rev 635) @@ -158,6 +158,8 @@ B631BA0F1025878600BE1EE1 /* opus.rom in Resources */ = {isa = PBXBuildFile; fileRef = B631BA0E1025878600BE1EE1 /* opus.rom */; }; B63225EC0C66BA1300BB081B /* osname.c in Sources */ = {isa = PBXBuildFile; fileRef = B63225EB0C66BA1300BB081B /* osname.c */; }; B63225EE0C66BA3700BB081B /* paths.c in Sources */ = {isa = PBXBuildFile; fileRef = B63225ED0C66BA3700BB081B /* paths.c */; }; + B635EAE7116A0FE500A166F2 /* keystate.c in Sources */ = {isa = PBXBuildFile; fileRef = B635EAE5116A0FE500A166F2 /* keystate.c */; }; + B635EAE8116A0FE500A166F2 /* keystate.h in Headers */ = {isa = PBXBuildFile; fileRef = B635EAE6116A0FE500A166F2 /* keystate.h */; }; B6374FA50F178298003CE6E2 /* timer.c in Sources */ = {isa = PBXBuildFile; fileRef = B6374FA40F178298003CE6E2 /* timer.c */; }; B639B7680A6BAFCF00927E24 /* csw.icns in Resources */ = {isa = PBXBuildFile; fileRef = B639B7670A6BAFCF00927E24 /* csw.icns */; }; B639B7D10A6BB45600927E24 /* raw.icns in Resources */ = {isa = PBXBuildFile; fileRef = B639B7D00A6BB45600927E24 /* raw.icns */; }; @@ -422,6 +424,8 @@ B63225F30C66BA7400BB081B /* timer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = timer.h; sourceTree = "<group>"; }; B632C6AE03E5368700A864FD /* DebuggerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DebuggerController.h; path = controllers/DebuggerController.h; sourceTree = "<group>"; }; B632C6AF03E5368700A864FD /* DebuggerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DebuggerController.m; path = controllers/DebuggerController.m; sourceTree = "<group>"; }; + B635EAE5116A0FE500A166F2 /* keystate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = keystate.c; sourceTree = SOURCE_ROOT; }; + B635EAE6116A0FE500A166F2 /* keystate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = keystate.h; sourceTree = SOURCE_ROOT; }; B6374FA40F178298003CE6E2 /* timer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = timer.c; path = timer/timer.c; sourceTree = SOURCE_ROOT; }; B6379299060AA0D300246736 /* se-0.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = "se-0.rom"; path = "../roms/se-0.rom"; sourceTree = SOURCE_ROOT; }; B637929A060AA0D300246736 /* se-1.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = "se-1.rom"; path = "../roms/se-1.rom"; sourceTree = SOURCE_ROOT; }; @@ -1154,6 +1158,8 @@ B6CE7E8A0B28027000EB65B3 /* cocoa */ = { isa = PBXGroup; children = ( + B635EAE5116A0FE500A166F2 /* keystate.c */, + B635EAE6116A0FE500A166F2 /* keystate.h */, B6042DBD0BBE2606000CC959 /* SDL_joystick */, B6CE7F3B0B2830A300EB65B3 /* cocoadisplay.h */, B6B99F890B5F798700EE408F /* cocoadisplay.m */, @@ -1441,6 +1447,7 @@ B631BA0010257CA400BE1EE1 /* opus.h in Headers */, B6DCBBD3114FA0E700DC9A11 /* internals.h in Headers */, B6DCBBEF114FA0E700DC9A11 /* tape_block.h in Headers */, + B635EAE8116A0FE500A166F2 /* keystate.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1756,6 +1763,7 @@ B6DCBC11114FA0E700DC9A11 /* z80em.c in Sources */, B6DCBC12114FA0E700DC9A11 /* zlib.c in Sources */, B6DCBC13114FA0E700DC9A11 /* zxs.c in Sources */, + B635EAE7116A0FE500A166F2 /* keystate.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; Added: trunk/fuse/fusepb/keystate.c =================================================================== --- trunk/fuse/fusepb/keystate.c (rev 0) +++ trunk/fuse/fusepb/keystate.c 2010-04-06 11:24:38 UTC (rev 635) @@ -0,0 +1,160 @@ +/* keystate.c: keyboard input state machine - prevents problems with pressing + one "special" key and releasing another (because more than one + were pressed or shift was released before the key) + Copyright (c) 2010 Fredrick Meunier + + $Id$ + + 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + Author contact information: + + E-mail: fr...@sp... + +*/ + +#include <stdio.h> + +#include "input.h" +#include "keyboard.h" +#include "keystate.h" + +enum states { + NONE, + NORMAL, + SPECIAL, + MAX_STATES +} current_state = NONE; + +static void action_sNONE_ePRESS_NORMAL( input_key ); +static void action_sNONE_ePRESS_SPECIAL( input_key ); +static void action_sNORMAL_ePRESS_NORMAL( input_key ); +static void action_sNORMAL_eRELEASE_NORMAL( input_key ); +static void action_sSPECIAL_ePRESS_NORMAL( input_key ); +static void action_sSPECIAL_ePRESS_SPECIAL( input_key ); +static void action_sSPECIAL_eRELEASE_SPECIAL( input_key ); +static void action_ignore( input_key ); + +void (*const state_table[MAX_STATES][MAX_EVENTS]) (input_key keysym) = { + + { action_sNONE_ePRESS_NORMAL, action_ignore, action_sNONE_ePRESS_SPECIAL, + action_ignore }, /* procedures for state NONE */ + + { action_sNORMAL_ePRESS_NORMAL, action_sNORMAL_eRELEASE_NORMAL, + action_ignore, action_ignore }, /* procedures for state NORMAL */ + + { action_sSPECIAL_ePRESS_NORMAL, action_ignore, + action_sSPECIAL_ePRESS_SPECIAL, + action_sSPECIAL_eRELEASE_SPECIAL }, /* procedures for state SPECIAL */ + +}; + +static input_key current_special; +static int normal_count = 0; + +void +press_key( input_key keysym ) +{ + input_event_t fuse_event; + fuse_event.type = INPUT_EVENT_KEYPRESS; + //fuse_event.types.key.native_key = fuse_keysym; + fuse_event.types.key.spectrum_key = keysym; + input_event( &fuse_event ); +} + +void +release_key( input_key keysym ) +{ + input_event_t fuse_event; + fuse_event.type = INPUT_EVENT_KEYRELEASE; + //fuse_event.types.key.native_key = fuse_keysym; + fuse_event.types.key.spectrum_key = keysym; + input_event( &fuse_event ); +} + +void action_ignore( input_key keysym ) {} + +void +action_sNONE_ePRESS_NORMAL( input_key keysym ) +{ + normal_count++; + press_key(keysym); + current_state = NORMAL; +} + +void +action_sNONE_ePRESS_SPECIAL( input_key keysym ) +{ + current_special = keysym; + /* override caps and symbol shifts if the user is pressing a special key that + * may require specific settings of these + */ + keyboard_release( KEYBOARD_Caps ); + keyboard_release( KEYBOARD_Symbol ); + press_key(keysym); + current_state = SPECIAL; +} + +void +action_sNORMAL_ePRESS_NORMAL( input_key keysym ) +{ + normal_count++; + // track depth, increment no of pressed NORMALs + press_key(keysym); +} + +void +action_sNORMAL_eRELEASE_NORMAL( input_key keysym ) +{ + normal_count--; + // track depth, if depth is 0 switch back to NONE + if( !normal_count ) current_state = NONE; + release_key(keysym); +} + +void +action_sSPECIAL_ePRESS_NORMAL( input_key keysym ) +{ + normal_count++; + release_key(current_special); + current_state = NORMAL; +} + +void +action_sSPECIAL_ePRESS_SPECIAL( input_key keysym ) +{ + // release old special key, press new one + release_key(current_special); + current_special = keysym; + press_key(current_special); +} + +void +action_sSPECIAL_eRELEASE_SPECIAL( input_key keysym ) +{ + current_state = NONE; + release_key(current_special); +} + +void +process_keyevent( enum events event, input_key keysym ) +{ + if(((event >=0) && (event < MAX_EVENTS)) && + ((current_state >= 0) && (current_state < MAX_STATES))) { + state_table[current_state][event]( keysym ); /* call the action procedure */ + } else { + /* invalid event/state - shouldn't happen, just ignore for now */ + } +} Added: trunk/fuse/fusepb/keystate.h =================================================================== --- trunk/fuse/fusepb/keystate.h (rev 0) +++ trunk/fuse/fusepb/keystate.h 2010-04-06 11:24:38 UTC (rev 635) @@ -0,0 +1,41 @@ +/* keystate.h: keyboard input state machine - prevents problems with pressing + one "special" key and releasing another (because more than one + were pressed or shift was released before the key) + Copyright (c) 2010 Fredrick Meunier + + $Id$ + + 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + Author contact information: + + E-mail: fr...@sp... + +*/ + +#ifndef KEYSTATE_H +#define KEYSTATE_H + +enum events { + PRESS_NORMAL, + RELEASE_NORMAL, + PRESS_SPECIAL, + RELEASE_SPECIAL, + MAX_EVENTS +}; + +void process_keyevent( enum events event, input_key keysym ); + +#endif /* #ifndef KEYSTATE_H */ Modified: trunk/fuse/fusepb/models/Emulator.h =================================================================== --- trunk/fuse/fusepb/models/Emulator.h 2010-04-05 13:34:11 UTC (rev 634) +++ trunk/fuse/fusepb/models/Emulator.h 2010-04-06 11:24:38 UTC (rev 635) @@ -18,7 +18,6 @@ Author contact information: E-mail: fr...@sp... - Postal address: 3/66 Roslyn Gardens, Ruscutters Bay, NSW 2011, Australia */ @@ -47,10 +46,6 @@ BOOL shiftDown; BOOL commandDown; - int cocoakeyboard_caps_shift_pressed; - int cocoakeyboard_symbol_shift_pressed; - input_key unicode_keysym; - DisplayOpenGLView *proxy_view; } +(Emulator *) instance; Modified: trunk/fuse/fusepb/models/Emulator.m =================================================================== --- trunk/fuse/fusepb/models/Emulator.m 2010-04-05 13:34:11 UTC (rev 634) +++ trunk/fuse/fusepb/models/Emulator.m 2010-04-06 11:24:38 UTC (rev 635) @@ -18,7 +18,6 @@ Author contact information: E-mail: fr...@sp... - Postal address: 3/66 Roslyn Gardens, Ruscutters Bay, NSW 2011, Australia */ @@ -34,6 +33,7 @@ #include "if1.h" #include "if2.h" #include "keyboard.h" +#include "keystate.h" #include "machine.h" #include "menu.h" #include "profile.h" @@ -128,10 +128,6 @@ shiftDown = NO; commandDown = NO; - cocoakeyboard_caps_shift_pressed = 0; - cocoakeyboard_symbol_shift_pressed = 0; - unicode_keysym = INPUT_KEY_NONE; - time = CFAbsoluteTimeGetCurrent(); /* set emulation time start time */ return self; @@ -746,42 +742,70 @@ return ptr ? *ptr : INPUT_KEY_NONE; } +// Things that will be implemented as multiple key presses in the emulation +// core +-(BOOL) isSpecial:(input_key)type +{ + switch( type ) { + case INPUT_KEY_Up: + case INPUT_KEY_Down: + case INPUT_KEY_Left: + case INPUT_KEY_Right: + case INPUT_KEY_BackSpace: + case INPUT_KEY_minus: + case INPUT_KEY_underscore: + case INPUT_KEY_equal: + case INPUT_KEY_plus: + case INPUT_KEY_semicolon: + case INPUT_KEY_colon: + case INPUT_KEY_apostrophe: + case INPUT_KEY_quotedbl: + case INPUT_KEY_numbersign: + case INPUT_KEY_comma: + case INPUT_KEY_less: + case INPUT_KEY_period: + case INPUT_KEY_greater: + case INPUT_KEY_slash: + case INPUT_KEY_question: + case INPUT_KEY_exclamation: + case INPUT_KEY_at: + case INPUT_KEY_dollar: + case INPUT_KEY_percent: + case INPUT_KEY_ampersand: + case INPUT_KEY_lbracket: + case INPUT_KEY_rbracket: + case INPUT_KEY_carat: + case INPUT_KEY_star: + return YES; + break; + default: + return NO; + } +} + -(void) keyChange:(NSEvent *)theEvent type:(input_event_type)type { + if( [theEvent isARepeat] == YES ) return; unsigned short keyCode = [theEvent keyCode]; NSString *characters = [theEvent charactersIgnoringModifiers]; if( NO == commandDown && [characters length] ) { input_key fuse_keysym; - input_event_t fuse_event; + enum events event_type; fuse_keysym = keysyms_remap( keyCode ); if( fuse_keysym == INPUT_KEY_NONE ) { fuse_keysym = [self otherKeysymsRemap:[characters characterAtIndex:0] inHash:unicode_keysyms_hash]; - if( fuse_keysym != INPUT_KEY_NONE ) { - unicode_keysym = fuse_keysym; - /* record current values of caps and symbol shift. We will temoprarily - * override these for the duration of the unicoded simulated keypresses - */ - if( ( cocoakeyboard_caps_shift_pressed = keyboard_state( KEYBOARD_Caps ) ) ) - { - keyboard_release( KEYBOARD_Caps ); - } - if( ( cocoakeyboard_symbol_shift_pressed = - keyboard_state( KEYBOARD_Symbol ) ) ) { - keyboard_release( KEYBOARD_Symbol ); - } - } } - fuse_event.type = type; - if( unicode_keysym == INPUT_KEY_NONE ) - fuse_event.types.key.native_key = fuse_keysym; - else - fuse_event.types.key.native_key = unicode_keysym; - fuse_event.types.key.spectrum_key = fuse_keysym; + if( [self isSpecial:fuse_keysym] == YES ) { + event_type = type == INPUT_EVENT_KEYPRESS ? PRESS_SPECIAL : + RELEASE_SPECIAL; + } else { + event_type = type == INPUT_EVENT_KEYPRESS ? PRESS_NORMAL : RELEASE_NORMAL; + } - input_event( &fuse_event ); + process_keyevent( event_type, fuse_keysym ); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2010-04-05 13:34:19
|
Revision: 634 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=634&view=rev Author: fredm Date: 2010-04-05 13:34:11 +0000 (Mon, 05 Apr 2010) Log Message: ----------- No longer use IconFamily, replaced with QuickLook. Removed Paths: ------------- trunk/fuse/fusepb/icon_family/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2010-03-17 11:02:59
|
Revision: 633 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=633&view=rev Author: fredm Date: 2010-03-17 11:02:52 +0000 (Wed, 17 Mar 2010) Log Message: ----------- Statically link libspectrum as there doesn't seem to be any benefit to using the framework. Modified Paths: -------------- trunk/README trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj trunk/fuse/fusepb/config.h Added Paths: ----------- trunk/fuse/fusepb/generate.pl trunk/fuse/fusepb/libspectrum trunk/fuse/fusepb/libspectrum.h Modified: trunk/README =================================================================== --- trunk/README 2010-01-16 09:34:06 UTC (rev 632) +++ trunk/README 2010-03-17 11:02:52 UTC (rev 633) @@ -6,23 +6,12 @@ Your Mac is expected to be running OS X 10.6 with the Xcode development environment. -The directory structure is expected to be: -fuse/ - FuseGenerator - FuseImporter - audiofile - fuse - libspectrum - Full build instructions: Uncompress the source package, and cd into the directory created. Then: cd audiofile xcodebuild -configuration Deployment cd .. -cd libspectrum -xcodebuild -configuration Deployment -cd .. cd FuseGenerator xcodebuild -configuration Release cd .. Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj =================================================================== --- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2010-01-16 09:34:06 UTC (rev 632) +++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2010-03-17 11:02:52 UTC (rev 633) @@ -28,7 +28,6 @@ B61F459C09121DF100C8096C /* tape_plus3.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C4080765986A00DE7E81 /* tape_plus3.szx */; }; B61F459D09121DF100C8096C /* tape_plus2a.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C4060765984000DE7E81 /* tape_plus2a.szx */; }; B61F459F09121DF100C8096C /* tape_scorpion.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C40A0765988200DE7E81 /* tape_scorpion.szx */; }; - B61F45A209121DF100C8096C /* spectrum.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = F541C04303963A9F01C2A5B9 /* spectrum.framework */; }; B61F45FF09121DF100C8096C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; B61F460009121DF100C8096C /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = F5F291060396932B01730B00 /* Credits.html */; }; B61F460C09121DF100C8096C /* 48.rom in Resources */ = {isa = PBXBuildFile; fileRef = F559854C0389212301A804BA /* 48.rom */; }; @@ -148,9 +147,9 @@ B61F469A09121DF100C8096C /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; B61F469B09121DF100C8096C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; B61F469C09121DF100C8096C /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; - B61F469D09121DF100C8096C /* spectrum.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F541C04303963A9F01C2A5B9 /* spectrum.framework */; }; B61F46A409121DF100C8096C /* FuseImporter.mdimporter in CopyFiles */ = {isa = PBXBuildFile; fileRef = B64FEA96084F8EC300879389 /* FuseImporter.mdimporter */; }; B6251C3E0C2EB24500BD5543 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6251C3D0C2EB24500BD5543 /* QuartzCore.framework */; }; + B629532E114FB265007808E0 /* libspectrum.h.in in Resources */ = {isa = PBXBuildFile; fileRef = B6DCBB7A114FA0E700DC9A11 /* libspectrum.h.in */; }; B62B19E10DD31DF500D42AAF /* scalers16.c in Sources */ = {isa = PBXBuildFile; fileRef = B62B19E00DD31DF500D42AAF /* scalers16.c */; }; B62B1A280DD6655800D42AAF /* fuse.c in Sources */ = {isa = PBXBuildFile; fileRef = B62B1A270DD6655800D42AAF /* fuse.c */; }; B62B1A2A0DD667EC00D42AAF /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = B62B1A290DD667EC00D42AAF /* main.mm */; }; @@ -235,6 +234,42 @@ B6CE3A190CD218A6005ACDC8 /* gluck.rom in Resources */ = {isa = PBXBuildFile; fileRef = B6CE3A180CD218A6005ACDC8 /* gluck.rom */; }; B6CE7F420B2830A300EB65B3 /* cocoajoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = B6CE7F3C0B2830A300EB65B3 /* cocoajoystick.c */; }; B6CE7FCE0B28FBD600EB65B3 /* DisplayOpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = B6CE7FCC0B28FBD600EB65B3 /* DisplayOpenGLView.m */; }; + B6DCBBBF114FA0E700DC9A11 /* bzip2.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB62114FA0E700DC9A11 /* bzip2.c */; }; + B6DCBBC4114FA0E700DC9A11 /* creator.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB67114FA0E700DC9A11 /* creator.c */; }; + B6DCBBC5114FA0E700DC9A11 /* crypto.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB68114FA0E700DC9A11 /* crypto.c */; }; + B6DCBBC6114FA0E700DC9A11 /* csw.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB69114FA0E700DC9A11 /* csw.c */; }; + B6DCBBC7114FA0E700DC9A11 /* dck.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB6A114FA0E700DC9A11 /* dck.c */; }; + B6DCBBD2114FA0E700DC9A11 /* ide.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB77114FA0E700DC9A11 /* ide.c */; }; + B6DCBBD3114FA0E700DC9A11 /* internals.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DCBB78114FA0E700DC9A11 /* internals.h */; }; + B6DCBBD4114FA0E700DC9A11 /* libspectrum.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB79114FA0E700DC9A11 /* libspectrum.c */; }; + B6DCBBD9114FA0E700DC9A11 /* memory.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB7E114FA0E700DC9A11 /* memory.c */; }; + B6DCBBDA114FA0E700DC9A11 /* microdrive.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB7F114FA0E700DC9A11 /* microdrive.c */; }; + B6DCBBDC114FA0E700DC9A11 /* garray.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB82114FA0E700DC9A11 /* garray.c */; }; + B6DCBBDD114FA0E700DC9A11 /* ghash.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB83114FA0E700DC9A11 /* ghash.c */; }; + B6DCBBDE114FA0E700DC9A11 /* gslist.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB84114FA0E700DC9A11 /* gslist.c */; }; + B6DCBBE0114FA0E700DC9A11 /* plusd.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB86114FA0E700DC9A11 /* plusd.c */; }; + B6DCBBE2114FA0E700DC9A11 /* rzx.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB88114FA0E700DC9A11 /* rzx.c */; }; + B6DCBBE3114FA0E700DC9A11 /* sna.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB89114FA0E700DC9A11 /* sna.c */; }; + B6DCBBE5114FA0E700DC9A11 /* snapshot.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB8B114FA0E700DC9A11 /* snapshot.c */; }; + B6DCBBE6114FA0E700DC9A11 /* snp.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB8C114FA0E700DC9A11 /* snp.c */; }; + B6DCBBE7114FA0E700DC9A11 /* sp.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB8D114FA0E700DC9A11 /* sp.c */; }; + B6DCBBE8114FA0E700DC9A11 /* symbol_table.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB8E114FA0E700DC9A11 /* symbol_table.c */; }; + B6DCBBE9114FA0E700DC9A11 /* szx.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB8F114FA0E700DC9A11 /* szx.c */; }; + B6DCBBEA114FA0E700DC9A11 /* tap.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB90114FA0E700DC9A11 /* tap.c */; }; + B6DCBBEB114FA0E700DC9A11 /* tape.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB91114FA0E700DC9A11 /* tape.c */; }; + B6DCBBEE114FA0E700DC9A11 /* tape_block.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBB94114FA0E700DC9A11 /* tape_block.c */; }; + B6DCBBEF114FA0E700DC9A11 /* tape_block.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DCBB95114FA0E700DC9A11 /* tape_block.h */; }; + B6DCBC0B114FA0E700DC9A11 /* timings.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBBB2114FA0E700DC9A11 /* timings.c */; }; + B6DCBC0C114FA0E700DC9A11 /* tzx_read.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBBB3114FA0E700DC9A11 /* tzx_read.c */; }; + B6DCBC0D114FA0E700DC9A11 /* tzx_write.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBBB4114FA0E700DC9A11 /* tzx_write.c */; }; + B6DCBC0E114FA0E700DC9A11 /* warajevo_read.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBBB5114FA0E700DC9A11 /* warajevo_read.c */; }; + B6DCBC0F114FA0E700DC9A11 /* wav.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBBB6114FA0E700DC9A11 /* wav.c */; }; + B6DCBC10114FA0E700DC9A11 /* z80.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBBB7114FA0E700DC9A11 /* z80.c */; }; + B6DCBC11114FA0E700DC9A11 /* z80em.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBBB8114FA0E700DC9A11 /* z80em.c */; }; + B6DCBC12114FA0E700DC9A11 /* zlib.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBBB9114FA0E700DC9A11 /* zlib.c */; }; + B6DCBC13114FA0E700DC9A11 /* zxs.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBBBA114FA0E700DC9A11 /* zxs.c */; }; + B6DCBC96114FA67200DC9A11 /* tape_accessors.txt in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBC14114FA19F00DC9A11 /* tape_accessors.txt */; }; + B6DCBC97114FA67200DC9A11 /* snap_accessors.txt in Sources */ = {isa = PBXBuildFile; fileRef = B6DCBC16114FA1AF00DC9A11 /* snap_accessors.txt */; }; B6DDE53C0D67963600D6F905 /* ui.c in Sources */ = {isa = PBXBuildFile; fileRef = B6DDE53B0D67963600D6F905 /* ui.c */; }; B6E0252C0B38AFE500E23A0F /* keysyms.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E0252B0B38AFE500E23A0F /* keysyms.m */; }; B6F047F60952A6D6006D8005 /* tape_se.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6F047F20952A6BA006D8005 /* tape_se.szx */; }; @@ -251,6 +286,43 @@ B6FA75C60C1D76A5007F5A10 /* audiofile.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6FA759C0C1D7507007F5A10 /* audiofile.framework */; }; /* End PBXBuildFile section */ +/* Begin PBXBuildRule section */ + B6DCBC42114FA33300DC9A11 /* PBXBuildRule */ = { + isa = PBXBuildRule; + compilerSpec = com.apple.compilers.proxy.script; + filePatterns = "*ibspectrum.h.in"; + fileType = pattern.proxy; + isEditable = 1; + outputFiles = ( + "${SRCROOT}/libspectrum.h", + ); + script = "perl -p ${SRCROOT}/generate.pl ${INPUT_FILE_PATH} > ${SRCROOT}/libspectrum.h"; + }; + B6DCBC47114FA3E100DC9A11 /* PBXBuildRule */ = { + isa = PBXBuildRule; + compilerSpec = com.apple.compilers.proxy.script; + filePatterns = "*ape_accessors.txt"; + fileType = pattern.proxy; + isEditable = 1; + outputFiles = ( + "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).c", + "$(DERIVED_FILE_DIR)/tape_set.c", + ); + script = "perl ${SRCROOT}/libspectrum/tape_accessors.pl ${INPUT_FILE_PATH} > ${DERIVED_FILE_DIR}/${INPUT_FILE_BASE}.c\nperl ${SRCROOT}/libspectrum/tape_set.pl ${INPUT_FILE_PATH} > ${DERIVED_FILE_DIR}/tape_set.c"; + }; + B6DCBC48114FA3E100DC9A11 /* PBXBuildRule */ = { + isa = PBXBuildRule; + compilerSpec = com.apple.compilers.proxy.script; + filePatterns = "*nap_accessors.txt"; + fileType = pattern.proxy; + isEditable = 1; + outputFiles = ( + "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).c", + ); + script = "perl ${SRCROOT}/libspectrum/accessor.pl ${INPUT_FILE_PATH} > ${DERIVED_FILE_DIR}/${INPUT_FILE_BASE}.c"; + }; +/* End PBXBuildRule section */ + /* Begin PBXCopyFilesBuildPhase section */ B604B2190DC1827200981CC7 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; @@ -293,7 +365,6 @@ dstSubfolderSpec = 10; files = ( B6FA75C60C1D76A5007F5A10 /* audiofile.framework in CopyFiles */, - B61F45A209121DF100C8096C /* spectrum.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -541,6 +612,43 @@ B6CE7FCC0B28FBD600EB65B3 /* DisplayOpenGLView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = DisplayOpenGLView.m; sourceTree = "<group>"; }; B6D2989105B061CB00C2AA14 /* MemoryBrowserController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MemoryBrowserController.h; path = controllers/MemoryBrowserController.h; sourceTree = "<group>"; }; B6D2989205B061CB00C2AA14 /* MemoryBrowserController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MemoryBrowserController.m; path = controllers/MemoryBrowserController.m; sourceTree = "<group>"; }; + B6DCBB62114FA0E700DC9A11 /* bzip2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bzip2.c; sourceTree = "<group>"; }; + B6DCBB67114FA0E700DC9A11 /* creator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = creator.c; sourceTree = "<group>"; }; + B6DCBB68114FA0E700DC9A11 /* crypto.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = crypto.c; sourceTree = "<group>"; }; + B6DCBB69114FA0E700DC9A11 /* csw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csw.c; sourceTree = "<group>"; }; + B6DCBB6A114FA0E700DC9A11 /* dck.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dck.c; sourceTree = "<group>"; }; + B6DCBB77114FA0E700DC9A11 /* ide.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ide.c; sourceTree = "<group>"; }; + B6DCBB78114FA0E700DC9A11 /* internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internals.h; sourceTree = "<group>"; }; + B6DCBB79114FA0E700DC9A11 /* libspectrum.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = libspectrum.c; sourceTree = "<group>"; }; + B6DCBB7A114FA0E700DC9A11 /* libspectrum.h.in */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = libspectrum.h.in; sourceTree = "<group>"; }; + B6DCBB7E114FA0E700DC9A11 /* memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = memory.c; sourceTree = "<group>"; }; + B6DCBB7F114FA0E700DC9A11 /* microdrive.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = microdrive.c; sourceTree = "<group>"; }; + B6DCBB82114FA0E700DC9A11 /* garray.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = garray.c; sourceTree = "<group>"; }; + B6DCBB83114FA0E700DC9A11 /* ghash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ghash.c; sourceTree = "<group>"; }; + B6DCBB84114FA0E700DC9A11 /* gslist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gslist.c; sourceTree = "<group>"; }; + B6DCBB86114FA0E700DC9A11 /* plusd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = plusd.c; sourceTree = "<group>"; }; + B6DCBB88114FA0E700DC9A11 /* rzx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rzx.c; sourceTree = "<group>"; }; + B6DCBB89114FA0E700DC9A11 /* sna.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sna.c; sourceTree = "<group>"; }; + B6DCBB8B114FA0E700DC9A11 /* snapshot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = snapshot.c; sourceTree = "<group>"; }; + B6DCBB8C114FA0E700DC9A11 /* snp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = snp.c; sourceTree = "<group>"; }; + B6DCBB8D114FA0E700DC9A11 /* sp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sp.c; sourceTree = "<group>"; }; + B6DCBB8E114FA0E700DC9A11 /* symbol_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = symbol_table.c; sourceTree = "<group>"; }; + B6DCBB8F114FA0E700DC9A11 /* szx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = szx.c; sourceTree = "<group>"; }; + B6DCBB90114FA0E700DC9A11 /* tap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tap.c; sourceTree = "<group>"; }; + B6DCBB91114FA0E700DC9A11 /* tape.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tape.c; sourceTree = "<group>"; }; + B6DCBB94114FA0E700DC9A11 /* tape_block.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tape_block.c; sourceTree = "<group>"; }; + B6DCBB95114FA0E700DC9A11 /* tape_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tape_block.h; sourceTree = "<group>"; }; + B6DCBBB2114FA0E700DC9A11 /* timings.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = timings.c; sourceTree = "<group>"; }; + B6DCBBB3114FA0E700DC9A11 /* tzx_read.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tzx_read.c; sourceTree = "<group>"; }; + B6DCBBB4114FA0E700DC9A11 /* tzx_write.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tzx_write.c; sourceTree = "<group>"; }; + B6DCBBB5114FA0E700DC9A11 /* warajevo_read.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = warajevo_read.c; sourceTree = "<group>"; }; + B6DCBBB6114FA0E700DC9A11 /* wav.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wav.c; sourceTree = "<group>"; }; + B6DCBBB7114FA0E700DC9A11 /* z80.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = z80.c; sourceTree = "<group>"; }; + B6DCBBB8114FA0E700DC9A11 /* z80em.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = z80em.c; sourceTree = "<group>"; }; + B6DCBBB9114FA0E700DC9A11 /* zlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zlib.c; sourceTree = "<group>"; }; + B6DCBBBA114FA0E700DC9A11 /* zxs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zxs.c; sourceTree = "<group>"; }; + B6DCBC14114FA19F00DC9A11 /* tape_accessors.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = tape_accessors.txt; path = ../../libspectrum/libspectrum/tape_accessors.txt; sourceTree = SOURCE_ROOT; }; + B6DCBC16114FA1AF00DC9A11 /* snap_accessors.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = snap_accessors.txt; path = ../../libspectrum/libspectrum/snap_accessors.txt; sourceTree = SOURCE_ROOT; }; B6DDE5280D64D96E00D6F905 /* pentagon.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = pentagon.h; path = machines/pentagon.h; sourceTree = "<group>"; }; B6DDE53B0D67963600D6F905 /* ui.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ui.c; sourceTree = "<group>"; }; B6E0252B0B38AFE500E23A0F /* keysyms.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = keysyms.m; sourceTree = "<group>"; }; @@ -579,7 +687,6 @@ B6FEA44F0444C3370013916D /* tc2068.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = tc2068.c; path = ../machines/tc2068.c; sourceTree = SOURCE_ROOT; }; F520C8BC038D022E01A804BA /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; F536B56503A0C275011517A0 /* utils.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = utils.c; path = ../utils.c; sourceTree = SOURCE_ROOT; }; - F541C04303963A9F01C2A5B9 /* spectrum.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = spectrum.framework; path = ../../libspectrum/build/Deployment/spectrum.framework; sourceTree = SOURCE_ROOT; }; F541FB5E03B0B33401FF8235 /* scaler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = scaler.h; path = ../ui/scaler/scaler.h; sourceTree = SOURCE_ROOT; }; F54670EB03A3F3E70143EC2C /* settings.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = settings.m; sourceTree = SOURCE_ROOT; }; F559854C0389212301A804BA /* 48.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = 48.rom; path = ../roms/48.rom; sourceTree = SOURCE_ROOT; }; @@ -657,7 +764,6 @@ B61F469A09121DF100C8096C /* Cocoa.framework in Frameworks */, B61F469B09121DF100C8096C /* Foundation.framework in Frameworks */, B61F469C09121DF100C8096C /* AppKit.framework in Frameworks */, - B61F469D09121DF100C8096C /* spectrum.framework in Frameworks */, B64E2A170A6534A3006863D9 /* Carbon.framework in Frameworks */, B6A6F0EE0B3D5F9E000B88E9 /* CoreAudio.framework in Frameworks */, B6A6F0F30B3D602F000B88E9 /* AudioUnit.framework in Frameworks */, @@ -691,7 +797,6 @@ isa = PBXGroup; children = ( B6FA759C0C1D7507007F5A10 /* audiofile.framework */, - F541C04303963A9F01C2A5B9 /* spectrum.framework */, ); name = "Linked Frameworks"; sourceTree = "<group>"; @@ -736,6 +841,7 @@ 29B97315FDCFA39411CA2CEA /* Other Sources */ = { isa = PBXGroup; children = ( + B6DCBB5D114FA0E700DC9A11 /* libspectrum */, B64BD1060FF6EB27000B82AE /* ide */, B63225E50C66B9D500BB081B /* compat */, B68CB2BC03DD91D800A804BA /* debugger */, @@ -1079,6 +1185,59 @@ path = views; sourceTree = "<group>"; }; + B6DCBB5D114FA0E700DC9A11 /* libspectrum */ = { + isa = PBXGroup; + children = ( + B6DCBB7A114FA0E700DC9A11 /* libspectrum.h.in */, + B6DCBC14114FA19F00DC9A11 /* tape_accessors.txt */, + B6DCBC16114FA1AF00DC9A11 /* snap_accessors.txt */, + B6DCBB80114FA0E700DC9A11 /* myglib */, + B6DCBB62114FA0E700DC9A11 /* bzip2.c */, + B6DCBB67114FA0E700DC9A11 /* creator.c */, + B6DCBB68114FA0E700DC9A11 /* crypto.c */, + B6DCBB69114FA0E700DC9A11 /* csw.c */, + B6DCBB6A114FA0E700DC9A11 /* dck.c */, + B6DCBB77114FA0E700DC9A11 /* ide.c */, + B6DCBB78114FA0E700DC9A11 /* internals.h */, + B6DCBB79114FA0E700DC9A11 /* libspectrum.c */, + B6DCBB7E114FA0E700DC9A11 /* memory.c */, + B6DCBB7F114FA0E700DC9A11 /* microdrive.c */, + B6DCBB86114FA0E700DC9A11 /* plusd.c */, + B6DCBB88114FA0E700DC9A11 /* rzx.c */, + B6DCBB89114FA0E700DC9A11 /* sna.c */, + B6DCBB8B114FA0E700DC9A11 /* snapshot.c */, + B6DCBB8C114FA0E700DC9A11 /* snp.c */, + B6DCBB8D114FA0E700DC9A11 /* sp.c */, + B6DCBB8E114FA0E700DC9A11 /* symbol_table.c */, + B6DCBB8F114FA0E700DC9A11 /* szx.c */, + B6DCBB90114FA0E700DC9A11 /* tap.c */, + B6DCBB91114FA0E700DC9A11 /* tape.c */, + B6DCBB94114FA0E700DC9A11 /* tape_block.c */, + B6DCBB95114FA0E700DC9A11 /* tape_block.h */, + B6DCBBB2114FA0E700DC9A11 /* timings.c */, + B6DCBBB3114FA0E700DC9A11 /* tzx_read.c */, + B6DCBBB4114FA0E700DC9A11 /* tzx_write.c */, + B6DCBBB5114FA0E700DC9A11 /* warajevo_read.c */, + B6DCBBB6114FA0E700DC9A11 /* wav.c */, + B6DCBBB7114FA0E700DC9A11 /* z80.c */, + B6DCBBB8114FA0E700DC9A11 /* z80em.c */, + B6DCBBB9114FA0E700DC9A11 /* zlib.c */, + B6DCBBBA114FA0E700DC9A11 /* zxs.c */, + ); + name = libspectrum; + path = fusepb/libspectrum; + sourceTree = "<group>"; + }; + B6DCBB80114FA0E700DC9A11 /* myglib */ = { + isa = PBXGroup; + children = ( + B6DCBB82114FA0E700DC9A11 /* garray.c */, + B6DCBB83114FA0E700DC9A11 /* ghash.c */, + B6DCBB84114FA0E700DC9A11 /* gslist.c */, + ); + path = myglib; + sourceTree = "<group>"; + }; B6DD457908134943008E9F7E /* Content Arrays */ = { isa = PBXGroup; children = ( @@ -1280,6 +1439,8 @@ B64BD1290FF701AA000B82AE /* options.h in Headers */, B64BD1790FF8E89B000B82AE /* options_cocoa.h in Headers */, B631BA0010257CA400BE1EE1 /* opus.h in Headers */, + B6DCBBD3114FA0E700DC9A11 /* internals.h in Headers */, + B6DCBBEF114FA0E700DC9A11 /* tape_block.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1301,6 +1462,9 @@ B604B2190DC1827200981CC7 /* CopyFiles */, ); buildRules = ( + B6DCBC47114FA3E100DC9A11 /* PBXBuildRule */, + B6DCBC48114FA3E100DC9A11 /* PBXBuildRule */, + B6DCBC42114FA33300DC9A11 /* PBXBuildRule */, ); dependencies = ( ); @@ -1346,6 +1510,7 @@ B6CE3A190CD218A6005ACDC8 /* gluck.rom in Resources */, B61F461509121DF100C8096C /* if1-1.rom in Resources */, B61F461609121DF100C8096C /* if1-2.rom in Resources */, + B631BA0F1025878600BE1EE1 /* opus.rom in Resources */, B61F461709121DF100C8096C /* plus2-0.rom in Resources */, B61F461809121DF100C8096C /* plus2-1.rom in Resources */, B61F461909121DF100C8096C /* plus3-0.rom in Resources */, @@ -1400,7 +1565,6 @@ B61159C70EEE9A080029FEA3 /* RZX.png in Resources */, B61159C90EEE9A140029FEA3 /* Select_ROMs.png in Resources */, B61159CB0EEE9A1E0029FEA3 /* Sound.png in Resources */, - B631BA0F1025878600BE1EE1 /* opus.rom in Resources */, B665EE031052A29F00FCFED8 /* Debugger.xib in Resources */, B665EE081052A34700FCFED8 /* JoystickConfiguration.xib in Resources */, B665EE0B1052A39000FCFED8 /* Keyboard.xib in Resources */, @@ -1413,6 +1577,7 @@ B665EE221052A4F200FCFED8 /* MainMenu.xib in Resources */, B665EE251052A51B00FCFED8 /* TapeBrowser.xib in Resources */, B665EE281052A53C00FCFED8 /* SavePanelAccessoryView.xib in Resources */, + B629532E114FB265007808E0 /* libspectrum.h.in in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1435,6 +1600,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + B6DCBC96114FA67200DC9A11 /* tape_accessors.txt in Sources */, + B6DCBC97114FA67200DC9A11 /* snap_accessors.txt in Sources */, B61F463909121DF100C8096C /* z80_ops.c in Sources */, B61F463A09121DF100C8096C /* z80.c in Sources */, B61F463B09121DF100C8096C /* ay.c in Sources */, @@ -1557,6 +1724,38 @@ B64BD11E0FF6EF98000B82AE /* native.c in Sources */, B64BD1650FF8D284000B82AE /* options.m in Sources */, B631B9FF10257CA400BE1EE1 /* opus.c in Sources */, + B6DCBBBF114FA0E700DC9A11 /* bzip2.c in Sources */, + B6DCBBC4114FA0E700DC9A11 /* creator.c in Sources */, + B6DCBBC5114FA0E700DC9A11 /* crypto.c in Sources */, + B6DCBBC6114FA0E700DC9A11 /* csw.c in Sources */, + B6DCBBC7114FA0E700DC9A11 /* dck.c in Sources */, + B6DCBBD2114FA0E700DC9A11 /* ide.c in Sources */, + B6DCBBD4114FA0E700DC9A11 /* libspectrum.c in Sources */, + B6DCBBD9114FA0E700DC9A11 /* memory.c in Sources */, + B6DCBBDA114FA0E700DC9A11 /* microdrive.c in Sources */, + B6DCBBDC114FA0E700DC9A11 /* garray.c in Sources */, + B6DCBBDD114FA0E700DC9A11 /* ghash.c in Sources */, + B6DCBBDE114FA0E700DC9A11 /* gslist.c in Sources */, + B6DCBBE0114FA0E700DC9A11 /* plusd.c in Sources */, + B6DCBBE2114FA0E700DC9A11 /* rzx.c in Sources */, + B6DCBBE3114FA0E700DC9A11 /* sna.c in Sources */, + B6DCBBE5114FA0E700DC9A11 /* snapshot.c in Sources */, + B6DCBBE6114FA0E700DC9A11 /* snp.c in Sources */, + B6DCBBE7114FA0E700DC9A11 /* sp.c in Sources */, + B6DCBBE8114FA0E700DC9A11 /* symbol_table.c in Sources */, + B6DCBBE9114FA0E700DC9A11 /* szx.c in Sources */, + B6DCBBEA114FA0E700DC9A11 /* tap.c in Sources */, + B6DCBBEB114FA0E700DC9A11 /* tape.c in Sources */, + B6DCBBEE114FA0E700DC9A11 /* tape_block.c in Sources */, + B6DCBC0B114FA0E700DC9A11 /* timings.c in Sources */, + B6DCBC0C114FA0E700DC9A11 /* tzx_read.c in Sources */, + B6DCBC0D114FA0E700DC9A11 /* tzx_write.c in Sources */, + B6DCBC0E114FA0E700DC9A11 /* warajevo_read.c in Sources */, + B6DCBC0F114FA0E700DC9A11 /* wav.c in Sources */, + B6DCBC10114FA0E700DC9A11 /* z80.c in Sources */, + B6DCBC11114FA0E700DC9A11 /* z80em.c in Sources */, + B6DCBC12114FA0E700DC9A11 /* zlib.c in Sources */, + B6DCBC13114FA0E700DC9A11 /* zxs.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1580,8 +1779,6 @@ COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = ( "$(HOME)/Library/Frameworks", - ../../libspectrum/build/Deployment, - ../../libgcrypt/build/Deployment, ../../, "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)", ); @@ -1595,14 +1792,17 @@ GCC_MODEL_CPU = G3; GCC_OPTIMIZATION_LEVEL = 0; HEADER_SEARCH_PATHS = ( - ../../libspectrum/build/Deployment/spectrum.framework/Headers, - ../../libgcrypt/build/Deployment/gcrypt.framework/Headers, + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)/audiofile.framework/Headers", .., ); INFOPLIST_FILE = "Info-Fuse.plist"; INSTALL_PATH = "$(HOME)/Applications"; LIBRARY_SEARCH_PATHS = .; OTHER_CFLAGS_ppc = "-mmultiple -mpowerpc-gfxopt -falign-loops=16"; + OTHER_LDFLAGS = ( + "-lbz2", + "-lz", + ); PRODUCT_NAME = Fuse; SECTORDER_FLAGS = ""; USE_ALTIVEC = 1; @@ -1619,8 +1819,6 @@ COPY_PHASE_STRIP = YES; FRAMEWORK_SEARCH_PATHS = ( "$(HOME)/Library/Frameworks", - ../../libspectrum/build/Deployment, - ../../libgcrypt/build/Deployment, ../../, "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)", ); @@ -1633,14 +1831,17 @@ GCC_MODEL_CPU = G3; GCC_OPTIMIZATION_LEVEL = 2; HEADER_SEARCH_PATHS = ( - ../../libspectrum/build/Deployment/spectrum.framework/Headers, - ../../libgcrypt/build/Deployment/gcrypt.framework/Headers, + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)/audiofile.framework/Headers", .., ); INFOPLIST_FILE = "Info-Fuse.plist"; INSTALL_PATH = "$(HOME)/Applications"; LIBRARY_SEARCH_PATHS = .; OTHER_CFLAGS_ppc = "-mmultiple -mpowerpc-gfxopt -falign-loops=16"; + OTHER_LDFLAGS = ( + "-lbz2", + "-lz", + ); PREBINDING = NO; PRODUCT_NAME = Fuse; SECTORDER_FLAGS = ""; @@ -1656,10 +1857,6 @@ buildSettings = { FRAMEWORK_SEARCH_PATHS = ( "$(HOME)/Library/Frameworks", - ../../libspectrum/build/Deployment, - ../../lib765/build/Deployment, - ../../libgcrypt/build/Deployment, - ../../bzip2/build/Deployment, ../../, "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)", ); @@ -1669,17 +1866,17 @@ GCC_ENABLE_OBJC_EXCEPTIONS = NO; GCC_OPTIMIZATION_LEVEL = 2; HEADER_SEARCH_PATHS = ( - ../../lib765/build/Deployment/765.framework/Headers, - ../../libspectrum/build/Deployment/spectrum.framework/Headers, - ../../libgcrypt/build/Deployment/gcrypt.framework/Headers, - ../../SDL.framework/Headers, - ../../bzip2/build/Deployment/libbz2.framework/Headers, + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)/audiofile.framework/Headers", .., ); INFOPLIST_FILE = "Info-Fuse.plist"; INSTALL_PATH = "$(HOME)/Applications"; LIBRARY_SEARCH_PATHS = .; OTHER_CFLAGS_ppc = "-mmultiple -mpowerpc-gfxopt -falign-loops=16"; + OTHER_LDFLAGS = ( + "-lbz2", + "-lz", + ); PRODUCT_NAME = Fuse; SECTORDER_FLAGS = ""; WARNING_CFLAGS = "-Wall"; Modified: trunk/fuse/fusepb/config.h =================================================================== --- trunk/fuse/fusepb/config.h 2010-01-16 09:34:06 UTC (rev 632) +++ trunk/fuse/fusepb/config.h 2010-03-17 11:02:52 UTC (rev 633) @@ -175,3 +175,36 @@ #ifndef __cplusplus /* #undef inline */ #endif + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the <gcrypt.h> header file. */ +/* #undef HAVE_GCRYPT_H */ + +/* Define to 1 if you have the `bz2' library (-lbz2). */ +#define HAVE_LIBBZ2 1 + +/* Defined if we've got audiofile */ +#define HAVE_LIB_AUDIOFILE 1 + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* Define to 1 if you have the `strcasecmp' function. */ +#define HAVE_STRCASECMP 1 + +/* Define to 1 if you have the `strncasecmp' function. */ +#define HAVE_STRNCASECMP 1 + +/* Define to 1 if you have the <zlib.h> header file. */ +#define HAVE_ZLIB_H 1 + +/* Define to 1 if you have the `_snprintf' function. */ +/* #undef HAVE__SNPRINTF */ + +/* Define to 1 if you have the `_stricmp' function. */ +/* #undef HAVE__STRICMP */ + +/* Define to 1 if you have the `_strnicmp' function. */ +/* #undef HAVE__STRNICMP */ Copied: trunk/fuse/fusepb/generate.pl (from rev 623, trunk/FuseImporter/generate.pl) =================================================================== --- trunk/fuse/fusepb/generate.pl (rev 0) +++ trunk/fuse/fusepb/generate.pl 2010-03-17 11:02:52 UTC (rev 633) @@ -0,0 +1,256 @@ +if( /LIBSPECTRUM_DEFINE_TYPES/ ) { + + $_ = << "CODE"; +#include <stdint.h> + +typedef uint8_t libspectrum_byte; +typedef int8_t libspectrum_signed_byte; +typedef uint16_t libspectrum_word; +typedef int16_t libspectrum_signed_word; +typedef uint32_t libspectrum_dword; +typedef int32_t libspectrum_signed_dword; +typedef uint64_t libspectrum_qword; +typedef int64_t libspectrum_signed_qword; +CODE +} + +if( /LIBSPECTRUM_GLIB_REPLACEMENT/ ) { + + $_ = << "CODE"; +#ifndef FALSE +#define FALSE (0) +#endif + +#ifndef TRUE +#define TRUE (!FALSE) +#endif + +typedef char gchar; +typedef int gint; +typedef long glong; +typedef gint gboolean; +typedef unsigned int guint; +typedef const void * gconstpointer; +typedef void * gpointer; + +typedef struct _GSList GSList; + +struct _GSList { + gpointer data; + GSList *next; +}; + +typedef void (*GFunc) (gpointer data, + gpointer user_data); + +typedef gint (*GCompareFunc) (gconstpointer a, + gconstpointer b); + + +GSList WIN32_DLL *g_slist_insert_sorted (GSList *list, + gpointer data, + GCompareFunc func); + +GSList WIN32_DLL *g_slist_insert (GSList *list, + gpointer data, + gint position); + +GSList WIN32_DLL *g_slist_append (GSList *list, + gpointer data); + +GSList WIN32_DLL *g_slist_prepend (GSList *list, + gpointer data); + +GSList WIN32_DLL *g_slist_remove (GSList *list, + gpointer data); + +GSList WIN32_DLL *g_slist_delete_link (GSList *list, + GSList *link); + +guint WIN32_DLL g_slist_length (GSList *list); + +void WIN32_DLL g_slist_foreach (GSList *list, + GFunc func, + gpointer user_data); + +void WIN32_DLL g_slist_free (GSList *list); + +GSList WIN32_DLL *g_slist_last (GSList *list); + +GSList WIN32_DLL *g_slist_reverse (GSList *list); + +GSList WIN32_DLL *g_slist_nth (GSList *list, + guint n); + +GSList WIN32_DLL * g_slist_find_custom (GSList *list, + gpointer data, + GCompareFunc func ); + +gint WIN32_DLL g_slist_position (GSList *list, + GSList *llink); + +typedef struct _GHashTable GHashTable; + +typedef guint (*GHashFunc) (gconstpointer key); + +typedef gboolean (*GHRFunc) (gpointer key, + gpointer value, + gpointer user_data); + +gint WIN32_DLL g_int_equal (gconstpointer v, + gconstpointer v2); +guint WIN32_DLL g_int_hash (gconstpointer v); +gint WIN32_DLL g_str_equal (gconstpointer v, + gconstpointer v2); +guint WIN32_DLL g_str_hash (gconstpointer v); + +GHashTable WIN32_DLL *g_hash_table_new (GHashFunc hash_func, + GCompareFunc key_compare_func); + +void WIN32_DLL g_hash_table_destroy (GHashTable *hash_table); + +void WIN32_DLL g_hash_table_insert (GHashTable *hash_table, + gpointer key, + gpointer value); + +gpointer WIN32_DLL g_hash_table_lookup (GHashTable *hash_table, + gconstpointer key); + +guint WIN32_DLL g_hash_table_foreach_remove (GHashTable *hash_table, + GHRFunc func, + gpointer user_data); + +guint WIN32_DLL g_hash_table_size (GHashTable *hash_table); + +typedef struct _GArray GArray; + +struct _GArray { + /* Public */ + gchar *data; + size_t len; + + /* Private */ + guint element_size; + size_t allocated; +}; + +GArray* WIN32_DLL g_array_new( gboolean zero_terminated, gboolean clear, + guint element_size ); +#define g_array_append_val(a,v) g_array_append_vals( a, &(v), 1 ); +GArray* WIN32_DLL g_array_append_vals( GArray *array, gconstpointer data, guint len ); +#define g_array_index(a,t,i) (*(((t*)a->data)+i)) +GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); + +#include <TargetConditionals.h> + +#ifdef TARGET_RT_64_BIT +#define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) +#define GPOINTER_TO_INT(p) ((gint) (glong)(p)) +#else +#define GINT_TO_POINTER(i) ((gpointer) (i)) +#define GPOINTER_TO_INT(p) ((gint) (p)) +#endif +CODE +} + +if( /LIBSPECTRUM_INCLUDE_GCRYPT/ ) { + + $_ = ''; + +} + +if( /LIBSPECTRUM_SIGNATURE_PARAMETERS/ ) { + + $_ = "/* Signature parameters not stored as libgcrypt is not present */ +"; + +} + +if( /LIBSPECTRUM_CAPABILITIES/ ) { + + $_ = << "CODE"; + +/* we support snapshots etc. requiring zlib (e.g. compressed szx) */ +#define LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION (1) +CODE +} + +if( /LIBSPECTRUM_SNAP_ACCESSORS/ ) { + + open( DATAFILE, "< $ENV{SRCROOT}/libspectrum/snap_accessors.txt" ) or die "Couldn't open `$ENV{SRCROOT}/libspectrum/snap_accessors.txt': $!"; + + $_ = ''; + while( <DATAFILE> ) { + + next if /^\s*$/; next if /^\s*#/; + + my( $type, $name, $indexed ) = split; + + my $return_type; + if( $type =~ /^(.*)\*/ ) { + $return_type = "$1 WIN32_DLL *"; + } else { + $return_type = "$type WIN32_DLL"; + } + + if( $indexed ) { + + print << "CODE"; +$return_type libspectrum_snap_$name( libspectrum_snap *snap, int idx ); +void WIN32_DLL libspectrum_snap_set_$name( libspectrum_snap *snap, int idx, $type $name ); +CODE + + } else { + + print << "CODE"; +$return_type libspectrum_snap_$name( libspectrum_snap *snap ); +void WIN32_DLL libspectrum_snap_set_$name( libspectrum_snap *snap, $type $name ); +CODE + + } + } +} + +if( /LIBSPECTRUM_TAPE_ACCESSORS/ ) { + + open( DATAFILE, "< $ENV{SRCROOT}/libspectrum/tape_accessors.txt" ) + or die "Couldn't open `$ENV{SRCROOT}/libspectrum/tape_accessors.txt': $!"; + + $_ = ''; + while( <DATAFILE> ) { + + # Remove comments and blank lines + s/#.*//; + next if /^\s*$/; + + # Skip which block types each accessor applies to + next if /^\s/; + + my( $type, $name, $indexed, undef ) = split; + + my $return_type; + if( $type =~ /^(.*)\*/ ) { + $return_type = "$1 WIN32_DLL *"; + } else { + $return_type = "$type WIN32_DLL"; + } + + if( $indexed ) { + + print << "CODE"; +$return_type libspectrum_tape_block_$name( libspectrum_tape_block *block, size_t idx ); +libspectrum_error WIN32_DLL libspectrum_tape_block_set_$name( libspectrum_tape_block *block, $type \*$name ); +CODE + + } else { + + print << "CODE"; +$return_type libspectrum_tape_block_$name( libspectrum_tape_block *block ); +libspectrum_error WIN32_DLL libspectrum_tape_block_set_$name( libspectrum_tape_block *block, $type $name ); +CODE + + } + } + + close DATAFILE or die "Couldn't close `$ENV{SRCROOT}/libspectrum/tape_accessors.txt': $!"; +} Added: trunk/fuse/fusepb/libspectrum =================================================================== --- trunk/fuse/fusepb/libspectrum (rev 0) +++ trunk/fuse/fusepb/libspectrum 2010-03-17 11:02:52 UTC (rev 633) @@ -0,0 +1 @@ +link ../../libspectrum/libspectrum \ No newline at end of file Property changes on: trunk/fuse/fusepb/libspectrum ___________________________________________________________________ Added: svn:special + * Copied: trunk/fuse/fusepb/libspectrum.h (from rev 623, trunk/libspectrum/libspectrum.h) =================================================================== --- trunk/fuse/fusepb/libspectrum.h (rev 0) +++ trunk/fuse/fusepb/libspectrum.h 2010-03-17 11:02:52 UTC (rev 633) @@ -0,0 +1,1419 @@ +/* libspectrum.h: the library for dealing with ZX Spectrum emulator files + Copyright (c) 2001-2007 Philip Kendall, Darren Salt, Fredrick Meunier + + $Id: libspectrum.h.in 4060 2009-07-30 13:21:38Z fredm $ + + 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + Author contact information: + + E-mail: phi...@sh... + +*/ + +/* NB: This file is autogenerated from libspectrum.h.in. Do not edit + unless you know what you're doing */ + +#ifndef LIBSPECTRUM_LIBSPECTRUM_H +#define LIBSPECTRUM_LIBSPECTRUM_H + +#ifdef __cplusplus +extern "C" { +#endif /* #ifdef __cplusplus */ + +#include <stdarg.h> +#include <stddef.h> +#include <stdlib.h> +#include <stdio.h> + +#ifdef _WIN32 + +#define WIN32_LEAN_AND_MEAN /* Exclude rarely used stuff from Windows + headers */ +#include <windows.h> + +#ifdef LIBSPECTRUM_EXPORTS +#define WIN32_DLL __declspec( dllexport ) +#else /* #ifdef LIBSPECTRUM_EXPORTS */ +#define WIN32_DLL __declspec( dllimport ) +#endif /* #ifdef LIBSPECTRUM_EXPORTS */ + +#else /* #ifdef _WIN32 */ + +#define WIN32_DLL + +#endif /* #ifdef _WIN32 */ + +#ifdef __GNUC__ +#define DEPRECATED __attribute__((deprecated)) +#else /* #ifdef __GNUC__ */ +#define DEPRECATED +#endif /* #ifdef __GNUC__ */ + + +/* Standard typedefs */ +#include <stdint.h> + +typedef uint8_t libspectrum_byte; +typedef int8_t libspectrum_signed_byte; +typedef uint16_t libspectrum_word; +typedef int16_t libspectrum_signed_word; +typedef uint32_t libspectrum_dword; +typedef int32_t libspectrum_signed_dword; +typedef uint64_t libspectrum_qword; +typedef int64_t libspectrum_signed_qword; + +/* glib replacement (if necessary) */ +#ifndef FALSE +#define FALSE (0) +#endif + +#ifndef TRUE +#define TRUE (!FALSE) +#endif + +typedef char gchar; +typedef int gint; +typedef long glong; +typedef gint gboolean; +typedef unsigned int guint; +typedef const void * gconstpointer; +typedef void * gpointer; + +typedef struct _GSList GSList; + +struct _GSList { + gpointer data; + GSList *next; +}; + +typedef void (*GFunc) (gpointer data, + gpointer user_data); + +typedef gint (*GCompareFunc) (gconstpointer a, + gconstpointer b); + + +GSList WIN32_DLL *g_slist_insert_sorted (GSList *list, + gpointer data, + GCompareFunc func); + +GSList WIN32_DLL *g_slist_insert (GSList *list, + gpointer data, + gint position); + +GSList WIN32_DLL *g_slist_append (GSList *list, + gpointer data); + +GSList WIN32_DLL *g_slist_prepend (GSList *list, + gpointer data); + +GSList WIN32_DLL *g_slist_remove (GSList *list, + gpointer data); + +GSList WIN32_DLL *g_slist_delete_link (GSList *list, + GSList *link); + +guint WIN32_DLL g_slist_length (GSList *list); + +void WIN32_DLL g_slist_foreach (GSList *list, + GFunc func, + gpointer user_data); + +void WIN32_DLL g_slist_free (GSList *list); + +GSList WIN32_DLL *g_slist_last (GSList *list); + +GSList WIN32_DLL *g_slist_reverse (GSList *list); + +GSList WIN32_DLL *g_slist_nth (GSList *list, + guint n); + +GSList WIN32_DLL * g_slist_find_custom (GSList *list, + gpointer data, + GCompareFunc func ); + +gint WIN32_DLL g_slist_position (GSList *list, + GSList *llink); + +typedef struct _GHashTable GHashTable; + +typedef guint (*GHashFunc) (gconstpointer key); + +typedef gboolean (*GHRFunc) (gpointer key, + gpointer value, + gpointer user_data); + +gint WIN32_DLL g_int_equal (gconstpointer v, + gconstpointer v2); +guint WIN32_DLL g_int_hash (gconstpointer v); +gint WIN32_DLL g_str_equal (gconstpointer v, + gconstpointer v2); +guint WIN32_DLL g_str_hash (gconstpointer v); + +GHashTable WIN32_DLL *g_hash_table_new (GHashFunc hash_func, + GCompareFunc key_compare_func); + +void WIN32_DLL g_hash_table_destroy (GHashTable *hash_table); + +void WIN32_DLL g_hash_table_insert (GHashTable *hash_table, + gpointer key, + gpointer value); + +gpointer WIN32_DLL g_hash_table_lookup (GHashTable *hash_table, + gconstpointer key); + +guint WIN32_DLL g_hash_table_foreach_remove (GHashTable *hash_table, + GHRFunc func, + gpointer user_data); + +guint WIN32_DLL g_hash_table_size (GHashTable *hash_table); + +typedef struct _GArray GArray; + +struct _GArray { + /* Public */ + gchar *data; + size_t len; + + /* Private */ + guint element_size; + size_t allocated; +}; + +GArray* WIN32_DLL g_array_new( gboolean zero_terminated, gboolean clear, + guint element_size ); +#define g_array_append_val(a,v) g_array_append_vals( a, &(v), 1 ); +GArray* WIN32_DLL g_array_append_vals( GArray *array, gconstpointer data, guint len ); +#define g_array_index(a,t,i) (*(((t*)a->data)+i)) +GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); + +#include <TargetConditionals.h> + +#ifdef TARGET_RT_64_BIT +#define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) +#define GPOINTER_TO_INT(p) ((gint) (glong)(p)) +#else +#define GINT_TO_POINTER(i) ((gpointer) (i)) +#define GPOINTER_TO_INT(p) ((gint) (p)) +#endif + +/* Library capabilities */ + +/* we support snapshots etc. requiring zlib (e.g. compressed szx) */ +#define LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION (1) + +/* + * General libspectrum routines + */ + +/* Error handling */ + +/* The various errors which can occur */ +typedef enum libspectrum_error { + + LIBSPECTRUM_ERROR_NONE = 0, + + LIBSPECTRUM_ERROR_WARNING, + + LIBSPECTRUM_ERROR_MEMORY, + LIBSPECTRUM_ERROR_UNKNOWN, + LIBSPECTRUM_ERROR_CORRUPT, + LIBSPECTRUM_ERROR_SIGNATURE, + LIBSPECTRUM_ERROR_SLT, /* .slt data found at end of a .z80 file */ + LIBSPECTRUM_ERROR_INVALID, /* Invalid parameter supplied */ + + LIBSPECTRUM_ERROR_LOGIC = -1, + +} libspectrum_error; + +/* Initialisation */ + +libspectrum_error WIN32_DLL libspectrum_init( void ); + +/* Version checking */ + +int WIN32_DLL libspectrum_check_version( const char *version ); +const char WIN32_DLL *libspectrum_version( void ); +const char WIN32_DLL *libspectrum_gcrypt_version( void ); + +/* Error handling */ +typedef libspectrum_error +(*libspectrum_error_function_t)( libspectrum_error error, + const char *format, va_list ap ); + +extern libspectrum_error_function_t WIN32_DLL libspectrum_error_function; + +libspectrum_error WIN32_DLL +libspectrum_default_error_function( libspectrum_error error, + const char *format, va_list ap ); + +/* Memory allocators */ + +typedef void* (*libspectrum_malloc_fn_t)( size_t size ); +typedef void* (*libspectrum_calloc_fn_t)( size_t nmemb, size_t size ); +typedef void* (*libspectrum_realloc_fn_t)( void *ptr, size_t size ); +typedef void (*libspectrum_free_fn_t)( void *ptr ); + +typedef struct libspectrum_mem_vtable_t { + libspectrum_malloc_fn_t malloc; + libspectrum_calloc_fn_t calloc; + libspectrum_realloc_fn_t realloc; + libspectrum_free_fn_t free; +} libspectrum_mem_vtable_t; + +void* WIN32_DLL libspectrum_malloc( size_t size ); +void* WIN32_DLL libspectrum_calloc( size_t nmemb, size_t size ); +void* WIN32_DLL libspectrum_realloc( void *ptr, size_t size ); +void WIN32_DLL libspectrum_free( void *ptr ); + +void WIN32_DLL libspectrum_mem_set_vtable( libspectrum_mem_vtable_t *table ); + +/* Attempt to identify a given file */ + +/* Various types of file we might manage to identify */ +typedef enum libspectrum_id_t { + + /* These types present in all versions of libspectrum */ + + LIBSPECTRUM_ID_UNKNOWN = 0, /* Unidentified file */ + LIBSPECTRUM_ID_RECORDING_RZX, /* RZX input recording */ + LIBSPECTRUM_ID_SNAPSHOT_SNA, /* .sna snapshot */ + LIBSPECTRUM_ID_SNAPSHOT_Z80, /* .z80 snapshot */ + LIBSPECTRUM_ID_TAPE_TAP, /* Z80-style .tap tape image */ + LIBSPECTRUM_ID_TAPE_TZX, /* TZX tape image */ + + /* Below here, present only in 0.1.1 and later */ + + /* The next entry is deprecated in favour of the more specific + LIBSPECTRUM_ID_DISK_CPC and LIBSPECTRUM_ID_DISK_ECPC */ + LIBSPECTRUM_ID_DISK_DSK, /* .dsk +3 disk image */ + + LIBSPECTRUM_ID_DISK_SCL, /* .scl TR-DOS disk image */ + LIBSPECTRUM_ID_DISK_TRD, /* .trd TR-DOS disk image */ + LIBSPECTRUM_ID_CARTRIDGE_DCK, /* .dck Timex cartridge image */ + + /* Below here, present only in 0.2.0 and later */ + + LIBSPECTRUM_ID_TAPE_WARAJEVO, /* Warajevo-style .tap tape image */ + + LIBSPECTRUM_ID_SNAPSHOT_PLUSD, /* DISCiPLE/+D snapshot */ + LIBSPECTRUM_ID_SNAPSHOT_SP, /* .sp snapshot */ + LIBSPECTRUM_ID_SNAPSHOT_SNP, /* .snp snapshot */ + LIBSPECTRUM_ID_SNAPSHOT_ZXS, /* .zxs snapshot (zx32) */ + LIBSPECTRUM_ID_SNAPSHOT_SZX, /* .szx snapshot (Spectaculator) */ + + /* Below here, present only in 0.2.1 and later */ + + LIBSPECTRUM_ID_COMPRESSED_BZ2, /* bzip2 compressed file */ + LIBSPECTRUM_ID_COMPRESSED_GZ, /* gzip compressed file */ + + /* Below here, present only in 0.2.2 and later */ + + LIBSPECTRUM_ID_HARDDISK_HDF, /* .hdf hard disk image */ + LIBSPECTRUM_ID_CARTRIDGE_IF2, /* .rom Interface II cartridge image */ + + /* Below here, present only in 0.3.0 and later */ + + LIBSPECTRUM_ID_MICRODRIVE_MDR, /* .mdr microdrive cartridge */ + LIBSPECTRUM_ID_TAPE_CSW, /* .csw tape image */ + LIBSPECTRUM_ID_TAPE_Z80EM, /* Z80Em tape image */ + + /* Below here, present only in 0.4.0 and later */ + + LIBSPECTRUM_ID_TAPE_WAV, /* .wav tape image */ + LIBSPECTRUM_ID_TAPE_SPC, /* SP-style .spc tape image */ + LIBSPECTRUM_ID_TAPE_STA, /* Speculator-style .sta tape image */ + LIBSPECTRUM_ID_TAPE_LTP, /* Nuclear ZX-style .ltp tape image */ + LIBSPECTRUM_ID_COMPRESSED_XFD, /* xfdmaster (Amiga) compressed file */ + LIBSPECTRUM_ID_DISK_IMG, /* .img DISCiPLE/+D disk image */ + LIBSPECTRUM_ID_DISK_MGT, /* .mgt DISCiPLE/+D disk image */ + + /* Below here, present only in 0.5.0 and later */ + + LIBSPECTRUM_ID_DISK_UDI, /* .udi generic disk image */ + LIBSPECTRUM_ID_DISK_FDI, /* .fdi generic disk image */ + LIBSPECTRUM_ID_DISK_CPC, /* .dsk plain CPC +3 disk image */ + LIBSPECTRUM_ID_DISK_ECPC, /* .dsk extended CPC +3 disk image */ + LIBSPECTRUM_ID_DISK_SAD, /* .sad generic disk image */ + LIBSPECTRUM_ID_DISK_TD0, /* .td0 generic disk image */ + + LIBSPECTRUM_ID_DISK_OPD, /* .opu/.opd Opus Discovery disk image */ + + LIBSPECTRUM_ID_SCREEN_SCR, /* .scr screen file */ + +} libspectrum_id_t; + +/* And 'classes' of file */ +typedef enum libspectrum_class_t { + + LIBSPECTRUM_CLASS_UNKNOWN, + + LIBSPECTRUM_CLASS_CARTRIDGE_TIMEX, /* Timex cartridges */ + LIBSPECTRUM_CLASS_DISK_PLUS3, /* +3 disk */ + LIBSPECTRUM_CLASS_DISK_TRDOS, /* TR-DOS disk */ + LIBSPECTRUM_CLASS_DISK_OPUS, /* Opus Discovery disk*/ + LIBSPECTRUM_CLASS_RECORDING, /* Input recording */ + LIBSPECTRUM_CLASS_SNAPSHOT, /* Snapshot */ + LIBSPECTRUM_CLASS_TAPE, /* Tape */ + + /* Below here, present only in 0.2.1 and later */ + + LIBSPECTRUM_CLASS_COMPRESSED, /* A compressed file */ + + /* Below here, present only in 0.2.2 and later */ + + LIBSPECTRUM_CLASS_HARDDISK, /* A hard disk image */ + LIBSPECTRUM_CLASS_CARTRIDGE_IF2, /* Interface II cartridges */ + + /* Below here, present only in 0.3.0 and later */ + + LIBSPECTRUM_CLASS_MICRODRIVE, /* Microdrive cartridges */ + + /* Below here, present only in 0.4.0 and later */ + + LIBSPECTRUM_CLASS_DISK_PLUSD, /* DISCiPLE/+D disk image */ + + /* Below here, present only in 0.5.0 and later */ + + LIBSPECTRUM_CLASS_DISK_GENERIC, /* generic disk image */ + + LIBSPECTRUM_CLASS_SCREENSHOT, /* Screenshot */ + +} libspectrum_class_t; + +libspectrum_error WIN32_DLL +libspectrum_identify_file( libspectrum_id_t *type, const char *filename, + const unsigned char *buffer, size_t length ); + +libspectrum_error WIN32_DLL +libspectrum_identify_file_with_class( + libspectrum_id_t *type, libspectrum_class_t *libspectrum_class, + const char *filename, const unsigned char *buffer, size_t length ); + +libspectrum_error WIN32_DLL +libspectrum_identify_file_raw( libspectrum_id_t *type, const char *filename, + const unsigned char *buffer, size_t length ); + +libspectrum_error WIN32_DLL +libspectrum_identify_class( libspectrum_class_t *libspectrum_class, + libspectrum_id_t type ); + +/* Different Spectrum variants and their capabilities */ + +/* The machine types we can handle */ +typedef enum libspectrum_machine { + + LIBSPECTRUM_MACHINE_48, + LIBSPECTRUM_MACHINE_TC2048, + LIBSPECTRUM_MACHINE_128, + LIBSPECTRUM_MACHINE_PLUS2, + LIBSPECTRUM_MACHINE_PENT, + LIBSPECTRUM_MACHINE_PLUS2A, + LIBSPECTRUM_MACHINE_PLUS3, + + /* Used by libspectrum_tape_guess_hardware if we can't work out what + hardware should be used */ + LIBSPECTRUM_MACHINE_UNKNOWN, + + LIBSPECTRUM_MACHINE_16, + LIBSPECTRUM_MACHINE_TC2068, + + LIBSPECTRUM_MACHINE_SCORP, + LIBSPECTRUM_MACHINE_PLUS3E, + LIBSPECTRUM_MACHINE_SE, + + LIBSPECTRUM_MACHINE_TS2068, + + LIBSPECTRUM_MACHINE_PENT512, + LIBSPECTRUM_MACHINE_PENT1024, + +} libspectrum_machine; + +const char* WIN32_DLL libspectrum_machine_name( libspectrum_machine type ); + +/* The various capabilities of the different machines */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_AY; /* AY-3-8192 */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_128_MEMORY; /* 128-style memory paging */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_PLUS3_MEMORY; /* +3-style memory paging */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_PLUS3_DISK; /* +3-style disk drive */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_TIMEX_MEMORY; /* Timex-style memory paging */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_TIMEX_VIDEO; /* Timex-style video modes */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_TRDOS_DISK; /* TRDOS-style disk drive */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_TIMEX_DOCK; /* T[SC]2068-style cartridge port */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_SINCLAIR_JOYSTICK; + /* Sinclair-style joystick ports */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_KEMPSTON_JOYSTICK; + /* Kempston-style joystick ports */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_SCORP_MEMORY; /* Scorpion-style memory paging */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_EVEN_M1; + /* M1 cycles always start on even tstate counts */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_SE_MEMORY; /* SE-style memory paging */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_NTSC; /* NTSC display */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_PENT512_MEMORY; /* Pentagon 512 memory paging */ +extern const int WIN32_DLL +LIBSPECTRUM_MACHINE_CAPABILITY_PENT1024_MEMORY; + /* Pentagon 1024 memory paging */ + +/* Get the capabilities of a machine */ +int WIN32_DLL libspectrum_machine_capabilities( libspectrum_machine type ); + +/* Get the timings of a machine */ +libspectrum_dword WIN32_DLL +libspectrum_timings_processor_speed( libspectrum_machine machine ); +libspectrum_dword WIN32_DLL +libspectrum_timings_ay_speed( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_left_border( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_horizontal_screen( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_right_border( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_horizontal_retrace( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_top_border( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_vertical_screen( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_bottom_border( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_vertical_retrace( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_interrupt_length( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_top_left_pixel( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_tstates_per_line( libspectrum_machine machine ); +libspectrum_word WIN32_DLL +libspectrum_timings_lines_per_frame( libspectrum_machine machine ); +libspectrum_dword WIN32_DLL +libspectrum_timings_tstates_per_frame( libspectrum_machine machine ); + +/* Creator information */ + +typedef struct libspectrum_creator libspectrum_creator; + +libspectrum_creator* WIN32_DLL +libspectrum_creator_alloc( void ); +libspectrum_error WIN32_DLL +libspectrum_creator_free( libspectrum_creator *creator ); + +libspectrum_error WIN32_DLL +libspectrum_creator_set_program( libspectrum_creator *creator, + const char *program ); +const char WIN32_DLL * +libspectrum_creator_program( libspectrum_creator *creator ); + +libspectrum_error WIN32_DLL +libspectrum_creator_set_major( libspectrum_creator *creator, + libspectrum_word major ); +libspectrum_word WIN32_DLL +libspectrum_creator_major( libspectrum_creator *creator ); + +libspectrum_error WIN32_DLL +libspectrum_creator_set_minor( libspectrum_creator *creator, + libspectrum_word minor ); +libspectrum_word WIN32_DLL +libspectrum_creator_minor( libspectrum_creator *creator ); + +libspectrum_error WIN32_DLL +libspectrum_creator_set_competition_code( libspectrum_creator *creator, + libspectrum_dword competition_code ); +libspectrum_dword WIN32_DLL +libspectrum_creator_competition_code( libspectrum_creator *creator ); + +libspectrum_error WIN32_DLL +libspectrum_creator_set_custom( libspectrum_creator *creator, + libspectrum_byte *data, size_t length ); + +libspectrum_byte WIN32_DLL * +libspectrum_creator_custom( libspectrum_creator *creator ); + +size_t WIN32_DLL +libspectrum_creator_custom_length( libspectrum_creator *creator ); + +/* + * Snap handling routines + */ + +typedef struct libspectrum_snap libspectrum_snap; + +libspectrum_snap* WIN32_DLL libspectrum_snap_alloc( void ); +libspectrum_error WIN32_DLL libspectrum_snap_free( libspectrum_snap *snap ); + +/* Read in a snapshot, optionally guessing what type it is */ +libspectrum_error WIN32_DLL +libspectrum_snap_read( libspectrum_snap *snap, const libspectrum_byte *buffer, + size_t length, libspectrum_id_t type, + const char *filename ); + +/* Write a snapshot */ +libspectrum_error WIN32_DLL +libspectrum_snap_write( libspectrum_byte **buffer, size_t *length, + int *out_flags, libspectrum_snap *snap, + libspectrum_id_t type, libspectrum_creator *creator, + int in_flags ); + +/* The flags that can be given to libspectrum_snap_write() */ +extern const int WIN32_DLL LIBSPECTRUM_FLAG_SNAPSHOT_NO_COMPRESSION; +extern const int WIN32_DLL LIBSPECTRUM_FLAG_SNAPSHOT_ALWAYS_COMPRESS; + +/* The flags that may be returned from libspectrum_snap_write() */ +extern const int WIN32_DLL LIBSPECTRUM_FLAG_SNAPSHOT_MINOR_INFO_LOSS; +extern const int WIN32_DLL LIBSPECTRUM_FLAG_SNAPSHOT_MAJOR_INFO_LOSS; + +/* The joystick types we can handle */ +typedef enum libspectrum_joystick { + + LIBSPECTRUM_JOYSTICK_NONE, + + LIBSPECTRUM_JOYSTICK_CURSOR, + LIBSPECTRUM_JOYSTICK_KEMPSTON, + LIBSPECTRUM_JOYSTICK_SINCLAIR_1, + LIBSPECTRUM_JOYSTICK_SINCLAIR_2, + LIBSPECTRUM_JOYSTICK_TIMEX_1, + LIBSPECTRUM_JOYSTICK_TIMEX_2, + LIBSPECTRUM_JOYSTICK_FULLER, + +} libspectrum_joystick; + +const char* WIN32_DLL libspectrum_joystick_name( libspectrum_joystick type ); + +extern const int WIN32_DLL... [truncated message content] |
From: <fr...@us...> - 2010-01-16 09:34:12
|
Revision: 632 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=632&view=rev Author: fredm Date: 2010-01-16 09:34:06 +0000 (Sat, 16 Jan 2010) Log Message: ----------- Remove RZX compression option as it is obscure and of marginal use for non-developers. Modified Paths: -------------- trunk/fuse/fusepb/resources/Fuse Help/html/rzx.html trunk/fuse/fusepb/xibs/Preferences.xib Modified: trunk/fuse/fusepb/resources/Fuse Help/html/rzx.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/rzx.html 2009-12-11 11:11:15 UTC (rev 631) +++ trunk/fuse/fusepb/resources/Fuse Help/html/rzx.html 2010-01-16 09:34:06 UTC (rev 632) @@ -47,18 +47,6 @@ </tr> <tr> <td style="vertical-align: top;"><span class="emphasis"><font - face="Lucida Grande,Helvetica,Arial"><em>Compress -data</em></font></span></td> - <td style="vertical-align: top;"><font - face="Lucida Grande,Helvetica,Arial">If this option is -selected, any RZX files written by Fuse will be compressed. This is -generally a good thing as it makes the files significantly smaller, -and you probably want to turn it off only if you're debugging the -RZX files or there's some other program which doesn't support -compressed RZX files.</font></td> - </tr> - <tr> - <td style="vertical-align: top;"><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Always embed snapshot</em></font></span></td> Modified: trunk/fuse/fusepb/xibs/Preferences.xib =================================================================== --- trunk/fuse/fusepb/xibs/Preferences.xib 2009-12-11 11:11:15 UTC (rev 631) +++ trunk/fuse/fusepb/xibs/Preferences.xib 2010-01-16 09:34:06 UTC (rev 632) @@ -2,19 +2,20 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10A432</string> - <string key="IBDocument.InterfaceBuilderVersion">732</string> - <string key="IBDocument.AppKitVersion">1038</string> - <string key="IBDocument.HIToolboxVersion">437.00</string> + <string key="IBDocument.SystemVersion">10C540</string> + <string key="IBDocument.InterfaceBuilderVersion">740</string> + <string key="IBDocument.AppKitVersion">1038.25</string> + <string key="IBDocument.HIToolboxVersion">458.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> - <string key="NS.object.0">732</string> + <string key="NS.object.0">740</string> </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> <integer value="1347"/> <integer value="1446"/> <integer value="6"/> + <integer value="1488"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2445,35 +2446,14 @@ <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="76952719"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">268</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSButton" id="785777834"> - <reference key="NSNextResponder" ref="76952719"/> - <int key="NSvFlags">256</int> - <string key="NSFrame">{{183, 90}, {145, 18}}</string> - <reference key="NSSuperview" ref="76952719"/> - <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="825652056"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">0</int> - <string key="NSContents">Compress data</string> - <reference key="NSSupport" ref="447006373"/> - <reference key="NSControlView" ref="785777834"/> - <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">2</int> - <reference key="NSAlternateImage" ref="529831564"/> - <string key="NSAlternateContents"/> - <string key="NSKeyEquivalent"/> - <int key="NSPeriodicDelay">200</int> - <int key="NSPeriodicInterval">25</int> - </object> - </object> <object class="NSButton" id="742175854"> <reference key="NSNextResponder" ref="76952719"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{183, 70}, {175, 18}}</string> + <string key="NSFrame">{{183, 90}, {175, 18}}</string> <reference key="NSSuperview" ref="76952719"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="167661398"> @@ -2514,6 +2494,7 @@ </object> </object> <string key="NSFrameSize">{627, 146}</string> + <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="206600598"> @@ -5623,22 +5604,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">value: values.compressrzx</string> - <reference key="source" ref="785777834"/> - <reference key="destination" ref="979455873"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="785777834"/> - <reference key="NSDestination" ref="979455873"/> - <string key="NSLabel">value: values.compressrzx</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">values.compressrzx</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">1502</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> <string key="label">value: values.embedsnapshot</string> <reference key="source" ref="742175854"/> <reference key="destination" ref="979455873"/> @@ -7852,7 +7817,6 @@ <reference key="object" ref="76952719"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="785777834"/> <reference ref="889648036"/> <reference ref="742175854"/> </object> @@ -7869,15 +7833,6 @@ <reference key="parent" ref="76952719"/> </object> <object class="IBObjectRecord"> - <int key="objectID">1492</int> - <reference key="object" ref="785777834"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="825652056"/> - </object> - <reference key="parent" ref="76952719"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">1493</int> <reference key="object" ref="889648036"/> <object class="NSMutableArray" key="children"> @@ -7892,11 +7847,6 @@ <reference key="parent" ref="889648036"/> </object> <object class="IBObjectRecord"> - <int key="objectID">1495</int> - <reference key="object" ref="825652056"/> - <reference key="parent" ref="785777834"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">1500</int> <reference key="object" ref="167661398"/> <reference key="parent" ref="742175854"/> @@ -9312,12 +9262,9 @@ <string>1488.editorWindowContentRectSynchronizationRect</string> <string>1489.IBPluginDependency</string> <string>1489.ImportedFromIB2</string> - <string>1492.IBPluginDependency</string> - <string>1492.ImportedFromIB2</string> <string>1493.IBPluginDependency</string> <string>1493.ImportedFromIB2</string> <string>1494.IBPluginDependency</string> - <string>1495.IBPluginDependency</string> <string>1500.IBPluginDependency</string> <string>1506.IBEditorWindowLastContentRect</string> <string>1506.IBPluginDependency</string> @@ -9800,10 +9747,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{16, 109}, {627, 319}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-12-11 11:11:21
|
Revision: 631 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=631&view=rev Author: fredm Date: 2009-12-11 11:11:15 +0000 (Fri, 11 Dec 2009) Log Message: ----------- Attempt to resolve the "hang-on-double-click-file" issue. Modified Paths: -------------- trunk/fuse/fusepb/views/DisplayOpenGLView.m Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m =================================================================== --- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2009-12-08 12:21:05 UTC (rev 630) +++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2009-12-11 11:11:15 UTC (rev 631) @@ -1276,8 +1276,15 @@ { int i; PIG_dirtytable *workdirty = NULL; - - [buffered_screen_lock lock]; + + // Is it possible that while waiting for a lock the emulator is stopped? + // or already holds the lock? If so give up on updating the frame rather + // than deadlock on getting the lock - may mean that we miss some screen + // updates if we are invoked while the buffered screen is being updated + if( !buffered_screen_lock || [buffered_screen_lock tryLock] == NO ) { + return kCVReturnSuccess; + } + if( buffered_screen.dirty->count == 0 && !statusbar_updated ) { [buffered_screen_lock unlock]; return kCVReturnSuccess; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-12-08 12:21:29
|
Revision: 630 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=630&view=rev Author: fredm Date: 2009-12-08 12:21:05 +0000 (Tue, 08 Dec 2009) Log Message: ----------- Split up the preferences manual sections per preferences pane. Modified Paths: -------------- trunk/fuse/fusepb/resources/Fuse Help/html/menus.html trunk/fuse/fusepb/resources/Fuse Help/html/preferences.html trunk/fuse/fusepb/resources/Fuse Help/html/tocstart.html trunk/fuse/fusepb/resources/Fuse Help/html/zxatasp.html Added Paths: ----------- trunk/fuse/fusepb/resources/Fuse Help/html/general.html trunk/fuse/fusepb/resources/Fuse Help/html/graphics_filter.html trunk/fuse/fusepb/resources/Fuse Help/html/joysticks.html trunk/fuse/fusepb/resources/Fuse Help/html/machine.html trunk/fuse/fusepb/resources/Fuse Help/html/peripherals.html trunk/fuse/fusepb/resources/Fuse Help/html/roms.html trunk/fuse/fusepb/resources/Fuse Help/html/rzx.html trunk/fuse/fusepb/resources/Fuse Help/html/sound.html Added: trunk/fuse/fusepb/resources/Fuse Help/html/general.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/general.html (rev 0) +++ trunk/fuse/fusepb/resources/Fuse Help/html/general.html 2009-12-08 12:21:05 UTC (rev 630) @@ -0,0 +1,207 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <meta http-equiv="content-type" + content="text/html; charset=ISO-8859-1"> +<!-- AppleSegStart="General Preferences" --> + <title>General Preferences</title> +</head> +<body> +<font face="Lucida Grande,Helvetica,Arial"><a name="General Preferences"></a><!-- AppleSegDescription="This section describes the Fuse general preferences dialog." --></font> +<h2><font face="Lucida Grande,Helvetica,Arial"><span + style="font-style: italic;">General</span> preferences</font></h2> +<p><font face="Lucida Grande,Helvetica,Arial">The General pane of Fuse +preferences lets you configure miscellaneous Fuse options.<br> +</font></p> +<table style="text-align: left; width: 100%;" cellpadding="2" + cellspacing="2"> + <tbody> + <tr> + <th style="vertical-align: top;"><font style="font-weight: bold;" + face="Lucida Grande,Helvetica,Arial">OPTION</font><br> + </th> + <th style="vertical-align: top;"><font style="font-weight: bold;" + face="Lucida Grande,Helvetica,Arial">DESCRIPTION</font><br> + </th> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Emulation +speed</em></font></span></td> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em></em></font></span><font + face="Lucida Grande,Helvetica,Arial">Set how fast Fuse will +attempt to emulate the Spectrum, as a percentage of the speed at +which the real machine runs. If your machine isn't fast enough to +keep up with the requested speed, Fuse will just run as fast as it +can. Note that if the emulation speed is 1%, no sound +output will be produced.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Screen +refresh +rate</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Specify the frame rate, +the ratio of spectrum frame updates to real frame updates. This is +useful if your machine is having trouble keeping up with the +spectrum screen updates.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Issue +2 +keyboard</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Early versions of the +Spectrum used a different value for unused bits on the keyboard +input ports, and a few games depended on the old value of these +bits. Enabling this option switches to the old value, to let you </font><font + face="Lucida Grande,Helvetica,Arial">run those games.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Late +timings</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">If +selected, +Fuse +will +cause all screen-related timings (for example, when +the screen is rendered and when memory contention occurs) to be one +tstate later than "normal", an effect which is present on some real +hardware.</font> + <span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em></em></font></span></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Use +tape +traps</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Ordinarily, Fuse +intercepts calls to the ROM tape-loading routine in order to load +from tape files more quickly when possible. But this can (rarely) +interfere with TZX loading; disabling this option avoids the +problem at the cost of slower (i.e. always real-time) tape-loading. +When tape-loading traps are disabled, you need to start tape +playback manually, by choosing the<span class="emphasis"><em>Tape, +Play</em></span> menu item.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Fast +tape +loading</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">If this option is +enabled, then Fuse will run at the fastest possible speed when the +virtual tape is playing, thus dramatically reducing the time it +takes to load programs. You may wish to disable this option if you +wish to stop the tape at a specific point.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Detect +tape +loaders</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">If +this +option +is enabled, Fuse +will attempt to detect when a loading routine is in progress, and then +automatically start the virtual tape to load the program in. This is +done by using a heuristic to identify a +loading routine, so is by no means infalliable, but works in most cases.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Auto-load +media</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">On many occasions when +you open a tape or disk file, it's because it's got a program in +you want to load and run. If this option is selected, this will +automatically happen for you when you open one of these files using the + </font><font face="Lucida Grande,Helvetica,Arial"><span + class="emphasis"><em>File, +Open...</em></span></font><font face="Lucida Grande,Helvetica,Arial"> +menu option - you must then use the Media menu to use tapes or disks +for saving data to, or for loading data into an already running program.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Use +.slt +traps</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">The multi-load aspect of +SLT files requires a trap instruction to be supported. This +instruction is not generally used except for this trap, but since +it's not inconceivable that a program could be wanting to use the +real instruction instead, you can choose whether to support the +trap or not.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Confirm +actions</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Specify +whether `dangerous' actions (those which could cause data loss, for +example resetting the Spectrum) require confirmation before occuring.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Allow +writes +to +ROM</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">If this option is +selected, Fuse will happily allow programs to overwrite what would +normally be ROM. This probably isn't very useful in most +circumstances, especially as the 48K ROM overwrites parts of +itself.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Show +tape/disk +status</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Enables the status icons +showing whether the disk and tape are being accessed.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Set +joysticks +on +snapshot +load</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Controls +whether Fuse should +allow snapshot files to override your current joystick configuration.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Reset +Preferences</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">This causes all of Fuse's +current preferences to be discarded and replaced with the default +values as shipped.</font></td> + </tr> + </tbody> +</table> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em></em></font></span><font + face="Lucida Grande,Helvetica,Arial"></font> +<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em></em></font></span> +<!-- AppleSegEnd --></p> +</body> +</html> Added: trunk/fuse/fusepb/resources/Fuse Help/html/graphics_filter.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/graphics_filter.html (rev 0) +++ trunk/fuse/fusepb/resources/Fuse Help/html/graphics_filter.html 2009-12-08 12:21:05 UTC (rev 630) @@ -0,0 +1,66 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <meta http-equiv="content-type" + content="text/html; charset=ISO-8859-1"> +<!-- AppleSegStart="Video Preferences" --> + <title>Video Preferences</title> +</head> +<body> +<font face="Lucida Grande,Helvetica,Arial"><a name="Video Preferences"></a><!-- AppleSegDescription="This section describes the Fuse video preferences dialog." --></font> +<h2><font face="Lucida Grande,Helvetica,Arial"><span + style="font-style: italic;">Video</span> preferences</font></h2> +<p><font face="Lucida Grande,Helvetica,Arial">Use the Video pane of +Fuse preferences to select the graphics +filter currently in use. See the +<a href="filters.html"><span class="emphasis"><em>GRAPHICS FILTERS</em></span></a> +section for +more details.<br> +</font></p> +<table style="text-align: left; width: 100%;" cellpadding="2" + cellspacing="2"> + <tbody> + <tr> + <td style="vertical-align: top;"><font style="font-weight: bold;" + face="Lucida Grande,Helvetica,Arial">OPTION</font></td> + <td style="vertical-align: top;"><font style="font-weight: bold;" + face="Lucida Grande,Helvetica,Arial">DESCRIPTION</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Bilinear</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">This filter can be used in +addition to any of the other graphics filters and sets each pixels +colour based on it's nearest neighbours vertically and horizontally.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Black +and +white +TV</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">This option allows you +to choose whether to simulate a colour or black and white +television.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Use +scanlines +in +PAL +TV +filters</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">This +option +allows you +to choose whether the PAL TV scalers should also simulate TV scanlines.</font></td> + </tr> + </tbody> +</table> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em></em></font></span><!-- AppleSegEnd --> +</body> +</html> Added: trunk/fuse/fusepb/resources/Fuse Help/html/joysticks.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/joysticks.html (rev 0) +++ trunk/fuse/fusepb/resources/Fuse Help/html/joysticks.html 2009-12-08 12:21:05 UTC (rev 630) @@ -0,0 +1,74 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <meta http-equiv="content-type" + content="text/html; charset=ISO-8859-1"> +<!-- AppleSegStart="Joysticks Preferences" --> + <title>Preferences</title> +</head> +<body> +<font face="Lucida Grande,Helvetica,Arial"><a + name="Joysticks Preferences"></a><!-- AppleSegDescription="This section describes the Fuse joysticks preferences dialog." --></font> +<h2><font face="Lucida Grande,Helvetica,Arial"><span + style="font-style: italic;">Joysticks</span> preferences</font></h2> +<p><font face="Lucida Grande,Helvetica,Arial">Fuse can emulate many of +the common types of joystick which were available for the Spectrum. +The input for these emulated joysticks can be taken from real +joysticks attached to the emulating machine, or from the q, a, o, +p, and space keys on the emulating machines keyboard, configured +via the <span class="emphasis"><em>Real device</em></span> option. +You can also configure which joystick axes to use on gamepads with +more than one joystick/pad.<br> +</font></p> +<p><font face="Lucida Grande,Helvetica,Arial">Note that when using the +keyboard to +emulate a joystick, the q, a, o, p, and space keys will not have +their normal effect (to avoid problems with games which do things +like use p for pause when using a joystick). See also the <span + class="emphasis"><em>Machine > Bind Keys to Joystick</em></span> +option.</font></p> +<p><font face="Lucida Grande,Helvetica,Arial">Each of the joysticks +(including the `fake' keyboard joystick) can be configured to +emulate any one of the following joystick types:</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>None</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">No joystick: any input +will simply be ignored.</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Cursor</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">A cursor joystick, +equivalent to pressing 5 (left), 6 (down), 7 (up), 8 (right), and 0 +(fire).</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Kempston</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">A Kempston joystick, +read from input port 31. Note that the +<span class="emphasis"><em>Peripherals preferences > Kempston +interface</em></span> option must also be set for the input to be +recognised.</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Sinclair +1</em></font></span> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Sinclair +2</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">The `left' and `right' +Sinclair joysticks, equivalent to pressing 1 (left), 2 (right), 3 +(down), 4 (up), and 5 (fire), or 6 (left), 7 (right), 8 (down), 9 +(up), and 0 (fire) respectively.</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Timex +1</em></font></span> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Timex +2</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">The `left' and `right' +joysticks as attached to the Timex 2068s built-in joystick +interface.</font></p> +<p><font face="Lucida Grande,Helvetica,Arial">For the real +joysticks, it is also possible to configure what effect each button +on the joystick will have: this can be Joystick Fire, equivalent to +presing the emulated joystick's fire button, Nothing, meaning to +have no effect, or any Spectrum key, meaning that pressing that +button will be equivalent to pressing that Spectrum key.</font><!-- AppleSegEnd --> +</p> +</body> +</html> Added: trunk/fuse/fusepb/resources/Fuse Help/html/machine.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/machine.html (rev 0) +++ trunk/fuse/fusepb/resources/Fuse Help/html/machine.html 2009-12-08 12:21:05 UTC (rev 630) @@ -0,0 +1,127 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <meta http-equiv="content-type" + content="text/html; charset=ISO-8859-1"> +<!-- AppleSegStart="Machine Preferences" --> + <title>Preferences</title> +</head> +<body> +<font face="Lucida Grande,Helvetica,Arial"><a name="Machine Preferences"></a><!-- AppleSegDescription="This section describes the Fuse machine preferences dialog." --></font> +<h2><font face="Lucida Grande,Helvetica,Arial"><span + style="font-style: italic;">Machine</span> preferences</font></h2> +<p><font face="Lucida Grande,Helvetica,Arial">Choose a type of +Spectrum to emulate. An brief overview of the Sinclair, Amstrad and +Timex computers can be found at +<a + href="http://www.nvg.ntnu.no/sinclair/computers/zxspectrum/zxspectrum.htm">http://www.nvg.ntnu.no/sinclair/computers/zxspectrum/zxspectrum.htm</a>, +while +more +technical +information +can be found at +<a href="http://www.worldofspectrum.org/faq/reference/reference.htm">http://www.worldofspectrum.org/faq/reference/reference.htm</a>.</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Spectrum +16K</em></font></span> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Spectrum +48K</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">The original machines as +released by Sinclair in 1982 with 16 or 48K of RAM +respectively.</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Spectrum +128K</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">The 128K machine as +released by Sinclair in 1985 (Spain) or 1986 (UK).</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Spectrum ++2</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">The first machine +released by Amstrad, in 1986. From an emulation point of view, the ++2 is virtually identical to the 128K.</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Spectrum ++2A</em></font></span> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Spectrum ++3</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">The two machines +released by Amstrad in 1988. Technically very similar to each +other, except that the +3 features a 3" disk drive while the +2A +does not.</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Spectrum ++3e</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">A +3 with modified ROMs +allowing access to IDE hard disks via the simple 8-bit interface, +as activated from the <span class="emphasis"><em>Options, +Peripherals</em></span> dialog. See the +<a href="http://www.zxplus3e.plus.com/">http://www.zxplus3e.plus.com/</a> +for more details.<br> +</font></p> +<p style="margin-left: 40px;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Timex +TS2068</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">The NTSC variant of the +Spectrum as released by Timex in North America.</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Timex +TC2048</em></font></span> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Timex +TC2068</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">The variants of the +Spectrum as released by Timex in Portugal. See +<a href="http://www.worldofspectrum.org/faq/reference/tmxreference.htm">http://www.worldofspectrum.org/faq/reference/tmxreference.htm</a> +for more details on the Timex models.</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Pentagon +128K</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">Russian clone of the +Spectrum. There were many different machines<br> +called Pentagon from 1989 to 2006, this machine corresponds to a 1991 +era Pentagon-128K with the optional AY sound chip and the integrated +Beta 128 disk interface, and is the version of the machine most often +emulated. More technical details can be found at +<a href="http://www.worldofspectrum.org/rusfaq/index.html">http://www.worldofspectrum.org/rusfaq/index.html</a>.</font></p> +<p style="margin-left: 40px;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Pentagon 512K</em></font></span> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Pentagon +1024K</em></font></span> <font face="Lucida Grande,Helvetica,Arial">Newer +versions +of +the +Pentagon +Russian Spectrum clones which incorporate more +memory and the "Mr Gluk Reset Service" ROM offering a more powerful +firmware.</font></p> +<p style="margin-left: 40px;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Scorpion +ZS 256</em></font></span> <font face="Lucida Grande,Helvetica,Arial">Another +Russian +clone +of +the +Spectrum. +Some details can be found at +<a href="http://www.worldofspectrum.org/rusfaq/index.html">http://www.worldofspectrum.org/rusfaq/index.html</a>, +like +all +the +Russian +clones they have built in 3.5" disk drives, +accessed via +the Betadisk interface and TR-DOS (the Technology Research Disk +Operating System). The most important distinction from the Pentagon +128k and similar machines is the display timing details.</font></p> +<p style="margin-left: 40px;"> +<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Spectrum +SE</em></font></span> +<font face="Lucida Grande,Helvetica,Arial">A recent variant +designed by Andrew Owen and Jarek Adamski, which is possibly best +thought of as a cross between the 128K machine and the Timex +variants, allowing 272K of RAM to be accessed. Some more details +are available at +<a href="http://www.worldofspectrum.org/faq/reference/sereference.htm">http://www.worldofspectrum.org/faq/reference/sereference.htm</a>.</font><!-- AppleSegEnd --> +</p> +</body> +</html> Modified: trunk/fuse/fusepb/resources/Fuse Help/html/menus.html =================================================================== --- trunk/fuse/fusepb/resources/Fuse Help/html/menus.html 2009-11-28 05:21:05 UTC (rev 629) +++ trunk/fuse/fusepb/resources/Fuse Help/html/menus.html 2009-12-08 12:21:05 UTC (rev 630) @@ -1,6 +1,8 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> + <meta http-equiv="content-type" + content="text/html; charset=ISO-8859-1"> <!-- AppleSegStart="Menus And Keys" --> <title>Menus And Keys</title> </head> @@ -17,166 +19,290 @@ some menu options.</font></p> <p><font face="Lucida Grande,Helvetica,Arial">Here's what the menu options do, along with the shortcuts for those items which have -them:</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Command-O</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Open File...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Open a Spectrum file. +them:<br> +</font></p> +<table style="text-align: left; width: 100%;" cellpadding="2" + cellspacing="2"> + <tbody> + <tr> + <th style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">MENU</font></th> + <th style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">SHORTCUT</font></th> + <th style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">DESCRIPTION</font></th> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Open File...</em></font></span></td> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Command-O</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Open a Spectrum file. Snapshots will be loaded into memory; tape images will be inserted -into the emulated tape deck, and if the -<span class="emphasis"><em>Auto-load tapes/disks</em></span> option +into the emulated tape deck, and if the <span class="emphasis"><em>Auto-load +tapes/disks</em></span> +option is set will begin loading. Opening a disk image or a Timex dock image will cause the appropriate machine type (+3, Pentagon or TC2068) to be selected with the image inserted, and disks will automatically load if the <span class="emphasis"><em>Auto-load -tapes/disks</em></span> option is set. -</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Shift-Command-S</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Save Snapshot As...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Save a snapshot (machine +tapes/disks</em></span> option is set.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Save Snapshot As...</em></font></span></td> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Shift-Command-S</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Save a snapshot (machine state, memory contents, etc.). By default the file will be saved in SZX format, you can also save in the Z80 or SNA formats by selecting -the appropriate format from the Format popup button.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Emulator Recording, Record...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Start recording input to +the appropriate format from the Format popup button.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Emulator Recording, Record...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Start recording input to an RZX file, initialised from the current emulation -state.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Emulator Recording, Record from -snapshot...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Start recording input to +state.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Emulator Recording > Record from +snapshot...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Start recording input to an RZX file, initialised from a snapshot. You will first be asked for the snapshot to use and then for the file to save the recording -to.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Command-B</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em></em></font></span><span - class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Emulator Recording, Insert Bookmark</em></font></span> <font +to.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Emulator Recording > Insert Bookmark</em></font></span></td> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Command-B</em></font></span></td> + <td style="vertical-align: top;"><font face="Lucida Grande,Helvetica,Arial">Inserts a bookmark of the current state into the RZX file. This can be used at a later point to roll back -to the inserted state by using one of the commands below.</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Command-Z</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em></em></font></span><span - class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Emulator Recording, Go To Last Bookmark</em></font></span> <font +to the inserted state by using one of the commands below.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Emulator Recording > Go To Last Bookmark</em></font></span></td> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Command-Z</em></font></span></td> + <td style="vertical-align: top;"><font face="Lucida Grande,Helvetica,Arial">Rolls back the recording to the point at which the previous bookmark was inserted. Recording will -continue from that point.</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em></em></font></span><span - class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em></em></font></span><span - class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Emulator Recording, Go To Bookmark...</em></font></span> <font +continue from that point.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Emulator Recording > Go To Bookmark...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font face="Lucida Grande,Helvetica,Arial">Roll back the recording to any -bookmark which has been inserted into the recording.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Emulator Recording, Play...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Playback recorded input +bookmark which has been inserted into the recording.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Emulator Recording > Play...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Playback recorded input from an RZX file. This lets you replay keypresses recorded previously. RZX files generally contain a snapshot with the Spectrum's state at the start of the recording; if the selected RZX file doesn't, you'll be prompted for a snapshot to load as -well.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Emulator Recording, Stop</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Stop any -currently-recording/playing RZX file.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -AY Sound Recording, Record...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Start recording the -bytes output via the AY-3-8192 sound chip to a PSG file.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -AY Sound Recording, Stop</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Stop any current AY -logging.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Open Screenshot...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Load an SCR screenshot +well.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Emulator Recording > Stop</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Stop any +currently-recording/playing RZX file.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +AY Sound Recording > Record...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Start recording the +bytes output via the AY-3-8192 sound chip to a PSG file.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +AY Sound Recording > Stop</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Stop any current AY +logging.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Open Screenshot...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Load an SCR screenshot (essentially just a binary dump of the Spectrum's video memory) onto the current screen. Fuse supports screenshots saved in the Timex hi-colour and hi-res modes as well as `normal' Spectrum screens, and will make a simple conversion if a hi-colour or hi-res -screenshot is loaded onto a non-Timex machine.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Save Screenshot as...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Save a copy of +screenshot is loaded onto a non-Timex machine.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Save Screenshot as...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Save a copy of whatever's currently displayed on the Spectrum's screen as an SCR -file.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Export Screenshot...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Save the current screen -as any supported format (currently PNG, TIFF, BMP, JPG and GIF).</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Import Binary Data...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Load binary data from a +file.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Export Screenshot...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Save the current screen +as any supported format (currently PNG, TIFF, BMP, JPG and GIF).</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Import Binary Data...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Load binary data from a file into the Spectrum's memory. After selecting the file to load data from, you can choose where to load the data and how much data -to load.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>File, -Export Binary Data...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Save an arbitrary chunk +to load.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>File > +Export Binary Data...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Save an arbitrary chunk of the Spectrum's memory to a file. Select the file you wish to save to, followed by the location and length of data you wish to -save.</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Machine, -Reset</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Reset the emulated -Spectrum.</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Machine, -Hard Reset</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Reset the emulated +save.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Machine > +Reset</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Reset the emulated +Spectrum.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Machine > +Hard Reset</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Reset the emulated Spectrum. A hard reset is equivalent to turning the Spectrum's power -off, and then turning it back on.</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Machine, -Debugger...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Start the -monitor/debugger. See the -<span class="emphasis"><em>Monitor/Debugger</em></span> section for -more information.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Machine, -Poke Finder...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Start the `poke finder'. -See the -<span class="emphasis"><em>Poke Finder</em></span> section for more -information.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Machine, -Memory Browser...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Start the memory +off, and then turning it back on.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Machine > +Debugger...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Start the +monitor/debugger. See the <span class="emphasis"><em>Monitor/Debugger</em></span> +section +for +more information.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Machine > +Poke Finder...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Start the `poke finder'. +See the <span class="emphasis"><em>Poke Finder</em></span> section for +more +information.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Machine > +Memory Browser...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Start the memory browser. It should be fairly obvious what this does; perhaps the only thing worth noting is that emulation is paused until you close -the window.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Machine, -NMI</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Sends a non-maskable +the window.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Machine > +NMI</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Sends a non-maskable interrupt to the emulated Spectrum. Due to a typo in the standard 48K ROM, this will cause a reset, but modified ROMs are available which make use of this feature. When the +D is emulated, this is used to access the +D's screenshot and snapshot features (see the </font><font face="Lucida Grande,Helvetica,Arial"><span class="emphasis"><em>+D Emulation</em></span></font><font face="Lucida Grande,Helvetica,Arial"> -section for more information).</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Command-J</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Bind -Keys to Joystick</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">If this option is +section for more information).</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Bind +Keys to Joystick</em></font></span></td> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Command-J</em></font></span></td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">If this option is selected and the Keyboard joystick is configured via the </font><font face="Lucida Grande,Helvetica,Arial"><span class="emphasis"><em>Preferences</em></span></font><font face="Lucida Grande,Helvetica,Arial"><span class="emphasis"><em>, @@ -185,33 +311,48 @@ the q, a, o, p, and space keys will not have their normal effect and will be used as the up, down, left, right and fire -buttons of the joystick respectively. This setting can be toggled with -<span class="emphasis"><em>Command-J</em></span>.<br> -</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media,</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Tape, -Open...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Choose a TAP or TZX -virtual-tape file to load from. If -<span class="emphasis"><em>Auto-load tapes/disks</em></span> is set +buttons of the joystick respectively. This setting can be toggled with <span + class="emphasis"><em>Command-J</em></span>.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media ></em></font></span> + <span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Tape +> +Open...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"> + <p><font face="Lucida Grande,Helvetica,Arial">Choose a TAP or TZX +virtual-tape file to load from. If <span class="emphasis"><em>Auto-load +tapes/disks</em></span> is +set in the General Options dialog (as it is by default), the tape will begin loading. Otherwise, you have to start the load in the emulated machine (with LOAD "" or the 128's Tape Loader option, though you may need to reset first).</font></p> -<p><font face="Lucida Grande,Helvetica,Arial">To -<span class="emphasis"><em>guarantee</em></span> that TZX files + <font face="Lucida Grande,Helvetica,Arial"> </font> + <p><font face="Lucida Grande,Helvetica,Arial"> </font><font + face="Lucida Grande,Helvetica,Arial">To <span class="emphasis"><em>guarantee</em></span> +that TZX files will load properly, you should select the file, make sure tape-loading traps are disabled in the General Options dialog, then select the <span class="emphasis"><em>Tape, Play</em></span> option. That said, most TZXs will work with tape-loading traps enabled (often quickly loading partway, then loading the rest real-time), so you might want to try it that way first.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media,</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Tape, -Play</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Start playing the TAP or + </td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media ></em></font></span> + <span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Tape +> +Play</em></font></span> </td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Start playing the TAP or TZX file, if required. (Choosing the option again pauses playback, and a further press resumes). To explain - if tape-loading traps have been disabled (in the General Options dialog), starting the @@ -219,45 +360,81 @@ to `press play', so to speak :-), and this is how you do that. You may also need to `press play' like this in certain other circumstances, e.g. TZXs containing multi-load games may have a -stop-the-tape request (which Fuse obeys).</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media,</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Tape, -Browse</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Browse through the +stop-the-tape request (which Fuse obeys).</font> </td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media ></em></font></span> + <span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Tape +> +Browse</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Browse through the current tape. A brief display of each of the data blocks on the current tape will appear, from which you can select which block Fuse will play next. Emulation will continue while the browser is displayed; clicking on a block will select it and `fast-foward' the -virtual tape deck.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media,</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Tape, -Rewind</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Rewind the current +virtual tape deck.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media ></em></font></span><span + style="font-family: Lucida Grande,Helvetica,Arial;"><span + style="font-style: italic;"> </span></span><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Tape > +Rewind</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Rewind the current virtual tape, so it can be read again from the -beginning.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media,</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Tape, -Close</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Close the current +beginning.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media ></em></font></span> + <span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Tape +> +Close</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Close the current virtual tape file. This is particularly useful when you want a `clean -slate' to add newly-saved files to, before doing -<span class="emphasis"><em>Tape, Save As...</em></span></font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media,</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Tape, -Save As...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Write the current +slate' to add newly-saved files to, before doing <span class="emphasis"><em>Tape, +Save +As...</em></span></font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media ></em></font></span> + <span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Tape +> +Save +As...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Write the current virtual-tape contents to a TZX file. The virtual-tape contents are the contents of the previously-loaded tape (if any has been loaded since you last did a <span class="emphasis"><em>Tape, Close</em></span>), followed by anything you've saved from the -emulated machine since. These newly-saved files are -<span class="emphasis"><em>not</em></span> written to any tape file -until you choose this option!</font></p> -<p><font face="Lucida Grande,Helvetica,Arial"> Virtual +emulated machine since. These newly-saved files are <span + class="emphasis"><em>not</em></span> written to any tape +file +until you choose this option!</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media > </em></font></span><span + class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Microdrive</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Virtual Microdrive images are accessible only when the Interface I is active from the </font><font face="Lucida Grande,Helvetica,Arial"><span class="emphasis"><em>Preferences</em></span></font><font @@ -266,43 +443,92 @@ menu. Note that any changes to the Microdrive image will not be written to the file on disk until the appropriate `eject and write' option is used. Each Microdrive cartridge has it's own version of the following -menus:</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media, -</em></font></span><span class="emphasis"><font - face="Lucida Grande,Helvetica,Arial"><em>Microdrive 1, -Insert New</em></font></span><font face="Lucida Grande,Helvetica,Arial"> -Insert a new (unformatted) Microdrive cartridge into emulated -Microdrive 1.</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media, -</em></font></span><span class="emphasis"><font - face="Lucida Grande,Helvetica,Arial"><em>Microdrive 1, -Insert...</em></font></span><font face="Lucida Grande,Helvetica,Arial"> -</font><font face="Lucida Grande,Helvetica,Arial">Select a Microdrive +menus:</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media > </em></font></span><span + class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Microdrive +1 +> +Insert +New</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Insert a new (unformatted) +Microdrive cartridge into emulated +Microdrive 1.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media > </em></font></span><span + class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Microdrive +1 +> +Insert...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Select a Microdrive cartridge image file to read/write</font><font face="Lucida Grande,Helvetica,Arial"> into -emulated Microdrive 1.</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media, -</em></font></span><span class="emphasis"><font - face="Lucida Grande,Helvetica,Arial"><em>Microdrive 1, -Eject</em></font></span><font face="Lucida Grande,Helvetica,Arial"> -Eject the Microdrive image in Microdrive 1. If the image has been -modified, you will be asked as to whether you want any changes saved.</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media, -</em></font></span><span class="emphasis"><font - face="Lucida Grande,Helvetica,Arial"><em>Microdrive 1, -Eject and write...</em></font></span><font - face="Lucida Grande,Helvetica,Arial"> Write the Microdrive image in +emulated Microdrive 1.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media > </em></font></span><span + class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Microdrive +1 +> +Eject</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Eject the Microdrive image in +Microdrive 1. If the image has been +modified, you will be asked as to whether you want any changes saved.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media > </em></font></span><span + class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Microdrive +1 +> +Eject +and +write...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Write the Microdrive image in Microdrive 1 to a file, and then eject the image. You will be -prompted for a filename.</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media, -</em></font></span><span class="emphasis"><font - face="Lucida Grande,Helvetica,Arial"><em>Microdrive 1, -Write protect, Enable</em></font></span><font - face="Lucida Grande,Helvetica,Arial"> Enable the write protect tab for -the image in Microdrive 1.<br> -</font></p> -<p> -<font face="Lucida Grande,Helvetica,Arial">Virtual disk images are +prompted for a filename.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media > </em></font></span><span + class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Microdrive +1 +> +Write +protect > +Enable</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Enable the write protect tab for +the image in Microdrive 1.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media > </em></font></span><span + class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Drive<br> + </em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Virtual disk images are only accessible when emulating a disk interface, +3, Pentagon or Scorpion. If any of the disk options are selected while emulating a +3, they refer @@ -314,170 +540,300 @@ other machine is being emulated this menu cannot be selected unless a disk interface like the Opus Discovery, +D or Beta 128 is being emulated. -(See -<span class="emphasis"><em>The .DSK Format</em></span> and <span +(See <span class="emphasis"><em>The .DSK Format</em></span> and <span class="emphasis"><em>Beta Disk Formats</em></span> -sections below for notes on the file formats supported).</font></p> -<p><font face="Lucida Grande,Helvetica,Arial">Note that (since +sections below for notes on the file formats supported).</font> + <p><font face="Lucida Grande,Helvetica,Arial">Note that (since version 0.6.2), Fuse works with true virtual disk images: any changes made to a disk image will not affect the file which was `inserted' into the drive. If you do want to keep any changes, use the appropriate `eject and write' option before exiting Fuse.</font></p> -<p><span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media, -</em></font></span><span class="emphasis"><font - face="Lucida Grande,Helvetica,Arial"><em>Drive A:</em></font></span><span - class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>, New</em></font></span><font - face="Lucida Grande,Helvetica,Arial"> -Insert a new (unformatted) disk cartridge into emulated drive A:/1.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media,</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Drive -A:, Insert...</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Select a disk-image file -to read/write in the emulated drive A:/1.</font></p> -<p> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Media,</em></font></span> -<span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Drive -A:, Eject</em></font></span> -<font face="Lucida Grande,Helvetica,Arial">Deselect the disk image + </td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media > </em></font></span><span + class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Drive +A:</em></font></span><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em> > New</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Helvetica,Arial">Insert a new (unformatted) disk +cartridge into emulated drive A:/1.</font></td> + </tr> + <tr> + <td style="vertical-align: top;"><span class="emphasis"><font + face="Lucida Grande,Helvetica,Arial"><em>Media ></em></font></span> + <span class="emphasis"><font face="Lucida Grande,Helvetica,Arial"><em>Drive +A: +> +Insert...</em></font></span></td> + <td style="vertical-align: top;"><br> + </td> + <td style="vertical-align: top;"><font + face="Lucida Grande,Hel... [truncated message content] |
From: <fr...@us...> - 2009-11-28 05:21:11
|
Revision: 629 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=629&view=rev Author: fredm Date: 2009-11-28 05:21:05 +0000 (Sat, 28 Nov 2009) Log Message: ----------- Update some build details. Modified Paths: -------------- trunk/README Modified: trunk/README =================================================================== --- trunk/README 2009-11-27 12:27:09 UTC (rev 628) +++ trunk/README 2009-11-28 05:21:05 UTC (rev 629) @@ -3,7 +3,7 @@ This is the source distribution of the Mac OS X version of Fuse. Full source is included for fuse and libspectrum. -Your Mac is expected to be running OS X 10.4 with the Xcode development +Your Mac is expected to be running OS X 10.6 with the Xcode development environment. The directory structure is expected to be: @@ -12,7 +12,6 @@ FuseImporter audiofile fuse - libgcrypt libspectrum Full build instructions: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-11-27 12:27:17
|
Revision: 628 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=628&view=rev Author: fredm Date: 2009-11-27 12:27:09 +0000 (Fri, 27 Nov 2009) Log Message: ----------- Restore reshape method to restore handling of zoom events. Modified Paths: -------------- trunk/fuse/fusepb/views/DisplayOpenGLView.m Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m =================================================================== --- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2009-11-26 12:42:56 UTC (rev 627) +++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2009-11-27 12:27:09 UTC (rev 628) @@ -514,6 +514,31 @@ } } +/* scrolled, moved or resized */ +-(void) reshape +{ + [view_lock lock]; + NSRect rect; + + [super reshape]; + + [[self openGLContext] makeCurrentContext]; + [[self openGLContext] update]; + + rect = [self bounds]; + + [self setViewPort:rect]; + + glMatrixMode( GL_PROJECTION ); + glLoadIdentity(); + + glMatrixMode( GL_MODELVIEW ); + glLoadIdentity(); + + statusbar_updated = YES; + [view_lock unlock]; +} + -(void) destroyTexture { GLuint i; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-11-26 12:43:09
|
Revision: 627 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=627&view=rev Author: fredm Date: 2009-11-26 12:42:56 +0000 (Thu, 26 Nov 2009) Log Message: ----------- Pause emulation before loading a file from a double click/drag-n-drop when Fuse is already running. Modified Paths: -------------- trunk/fuse/fusepb/controllers/FuseController.m Modified: trunk/fuse/fusepb/controllers/FuseController.m =================================================================== --- trunk/fuse/fusepb/controllers/FuseController.m 2009-09-07 11:22:22 UTC (rev 626) +++ trunk/fuse/fusepb/controllers/FuseController.m 2009-11-26 12:42:56 UTC (rev 627) @@ -2258,8 +2258,10 @@ [filename getFileSystemRepresentation:fsrep maxLength:PATH_MAX]; if ( display_ui_initialised ) { + [[DisplayOpenGLView instance] pause]; [self addRecentSnapshot:fsrep]; [self openFile:fsrep]; + [[DisplayOpenGLView instance] unpause]; } else { if( utils_read_file( fsrep, &file ) ) fuse_abort(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-09-07 11:22:32
|
Revision: 626 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=626&view=rev Author: fredm Date: 2009-09-07 11:22:22 +0000 (Mon, 07 Sep 2009) Log Message: ----------- Merge revisions 614-623 from trunk. Modified Paths: -------------- branches/fuse_corevideo/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj branches/fuse_corevideo/FuseGenerator/GeneratePreviewForURL.m branches/fuse_corevideo/FuseGenerator/GenerateThumbnailForURL.m branches/fuse_corevideo/FuseGenerator/JWSpectrumScreen/AttributeManager.c branches/fuse_corevideo/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.m branches/fuse_corevideo/FuseGenerator/generate.pl branches/fuse_corevideo/FuseGenerator/libspectrum.h branches/fuse_corevideo/FuseImporter/FuseImporter.xcodeproj/project.pbxproj branches/fuse_corevideo/FuseImporter/generate.pl branches/fuse_corevideo/FuseImporter/libspectrum.h branches/fuse_corevideo/README branches/fuse_corevideo/audiofile/audiofile.xcodeproj/project.pbxproj branches/fuse_corevideo/fuse/fusepb/Fuse.xcodeproj/project.pbxproj branches/fuse_corevideo/fuse/fusepb/FuseMenus.m branches/fuse_corevideo/fuse/fusepb/controllers/FuseController.m branches/fuse_corevideo/fuse/fusepb/controllers/PokeFinderController.m branches/fuse_corevideo/fuse/fusepb/controllers/PreferencesController.m branches/fuse_corevideo/fuse/fusepb/controllers/SaveBinaryController.m branches/fuse_corevideo/fuse/fusepb/nibs/Preferences.nib/designable.nib branches/fuse_corevideo/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib branches/fuse_corevideo/fuse/fusepb/resources/Fuse Help/html/preferences.html branches/fuse_corevideo/fuse/fusepb/transformers/MachineScalerIsEnabled.m branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m branches/fuse_corevideo/fuse/fusepb/views/Texture.m branches/fuse_corevideo/fuse/settings.pl branches/fuse_corevideo/fuse/ui/cocoa/SDL_joystick/SDL_sysjoystick.c branches/fuse_corevideo/fuse/ui/cocoa/cocoadisplay.m branches/fuse_corevideo/fuse/ui/cocoa/cocoascreenshot.m branches/fuse_corevideo/libspectrum/config.h branches/fuse_corevideo/libspectrum/generate.pl branches/fuse_corevideo/libspectrum/libspectrum.h branches/fuse_corevideo/libspectrum/libspectrum.xcodeproj/project.pbxproj Removed Paths: ------------- branches/fuse_corevideo/libgcrypt/ Property Changed: ---------------- branches/fuse_corevideo/ branches/fuse_corevideo/FuseGenerator/FuseGenerator.xcodeproj/ branches/fuse_corevideo/FuseImporter/FuseImporter.xcodeproj/ branches/fuse_corevideo/audiofile/audiofile.xcodeproj/ branches/fuse_corevideo/fuse/ branches/fuse_corevideo/libspectrum/libspectrum/ branches/fuse_corevideo/libspectrum/libspectrum.h Property changes on: branches/fuse_corevideo ___________________________________________________________________ Added: svn:mergeinfo + /trunk:614-623 Property changes on: branches/fuse_corevideo/FuseGenerator/FuseGenerator.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.pbxuser *.mode1v3 + *.pbxuser *.mode1v3 *.perspectivev3 Modified: branches/fuse_corevideo/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj =================================================================== --- branches/fuse_corevideo/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj 2009-09-07 11:22:22 UTC (rev 626) @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 44; + objectVersion = 45; objects = { /* Begin PBXBuildFile section */ @@ -357,7 +357,7 @@ 089C1669FE841209C02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = 2CA326220896AD4900168862 /* Build configuration list for PBXProject "FuseGenerator" */; - compatibilityVersion = "Xcode 3.0"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 089C166AFE841209C02AAC07 /* FuseGenerator */; projectDirPath = ""; @@ -509,30 +509,29 @@ 2CA326230896AD4900168862 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64"; DEAD_CODE_STRIPPING = YES; GCC_C_LANGUAGE_STANDARD = c99; - GCC_VERSION = 4.2; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; PREBINDING = NO; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; + SDKROOT = macosx10.5; }; name = Debug; }; 2CA326240896AD4900168862 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEAD_CODE_STRIPPING = YES; GCC_C_LANGUAGE_STANDARD = c99; - GCC_VERSION = 4.2; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; PREBINDING = NO; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; + SDKROOT = macosx10.5; }; name = Release; }; Modified: branches/fuse_corevideo/FuseGenerator/GeneratePreviewForURL.m =================================================================== --- branches/fuse_corevideo/FuseGenerator/GeneratePreviewForURL.m 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/FuseGenerator/GeneratePreviewForURL.m 2009-09-07 11:22:22 UTC (rev 626) @@ -89,6 +89,8 @@ QLPreviewRequestFlushContext(preview, cgContext); CFRelease(cgContext); } + + [imageRep release]; } break; case TYPE_IMAGEIO: Modified: branches/fuse_corevideo/FuseGenerator/GenerateThumbnailForURL.m =================================================================== --- branches/fuse_corevideo/FuseGenerator/GenerateThumbnailForURL.m 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/FuseGenerator/GenerateThumbnailForURL.m 2009-09-07 11:22:22 UTC (rev 626) @@ -81,6 +81,8 @@ QLThumbnailRequestFlushContext( thumbnail, cgContext ); CFRelease( cgContext ); } + + [imageRep release]; } break; case TYPE_IMAGEIO: Modified: branches/fuse_corevideo/FuseGenerator/JWSpectrumScreen/AttributeManager.c =================================================================== --- branches/fuse_corevideo/FuseGenerator/JWSpectrumScreen/AttributeManager.c 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/FuseGenerator/JWSpectrumScreen/AttributeManager.c 2009-09-07 11:22:22 UTC (rev 626) @@ -9,7 +9,6 @@ #include <assert.h> #include <string.h> -#include <ppc_intrinsics.h> #include "AttributeManager.h" #include "Colourmacros.h" Modified: branches/fuse_corevideo/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.m =================================================================== --- branches/fuse_corevideo/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.m 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.m 2009-09-07 11:22:22 UTC (rev 626) @@ -167,7 +167,7 @@ - (NSBitmapImageRep*)imageRep { - NSBitmapImageRep* imageRep = [[[NSBitmapImageRep alloc] initWithBitmapDataPlanes:0 + NSBitmapImageRep* imageRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:0 pixelsWide:canvasSize.width pixelsHigh:canvasSize.height bitsPerSample:8 @@ -176,7 +176,7 @@ isPlanar:NO colorSpaceName:NSDeviceRGBColorSpace bytesPerRow:canvasSize.width * 3 - bitsPerPixel:24] autorelease]; + bitsPerPixel:24]; if(imageRep) { unsigned char* imageBytes = [imageRep bitmapData]; Modified: branches/fuse_corevideo/FuseGenerator/generate.pl =================================================================== --- branches/fuse_corevideo/FuseGenerator/generate.pl 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/FuseGenerator/generate.pl 2009-09-07 11:22:22 UTC (rev 626) @@ -141,8 +141,15 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); +#include <TargetConditionals.h> + +#ifdef TARGET_RT_64_BIT +#define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) +#define GPOINTER_TO_INT(p) ((gint) (glong)(p)) +#else #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) +#endif CODE } Modified: branches/fuse_corevideo/FuseGenerator/libspectrum.h =================================================================== --- branches/fuse_corevideo/FuseGenerator/libspectrum.h 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/FuseGenerator/libspectrum.h 2009-09-07 11:22:22 UTC (rev 626) @@ -38,6 +38,8 @@ #include <stdlib.h> #include <stdio.h> +#include <TargetConditionals.h> + #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN /* Exclude rarely used stuff from Windows @@ -200,8 +202,13 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); +#ifdef TARGET_RT_64_BIT +#define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) +#define GPOINTER_TO_INT(p) ((gint) (glong)(p)) +#else #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) +#endif /* Library capabilities */ Property changes on: branches/fuse_corevideo/FuseImporter/FuseImporter.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.mode1 *.pbxuser + *.mode1 *.pbxuser *.perspectivev3 Modified: branches/fuse_corevideo/FuseImporter/FuseImporter.xcodeproj/project.pbxproj =================================================================== --- branches/fuse_corevideo/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2009-09-07 11:22:22 UTC (rev 626) @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 45; objects = { /* Begin PBXBuildFile section */ @@ -332,7 +332,7 @@ 089C1669FE841209C02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = B6B0E30008CC65D5001D8411 /* Build configuration list for PBXProject "FuseImporter" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 089C166AFE841209C02AAC07 /* FuseImporter */; projectDirPath = ""; @@ -545,34 +545,31 @@ B6B0E30108CC65D5001D8411 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; - GCC_VERSION = 4.0; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + SDKROOT = macosx10.5; }; name = Development; }; B6B0E30208CC65D5001D8411 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; - GCC_VERSION = 4.0; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + SDKROOT = macosx10.5; }; name = Deployment; }; B6B0E30308CC65D5001D8411 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; - GCC_VERSION = 4.0; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + SDKROOT = macosx10.5; }; name = Default; }; Modified: branches/fuse_corevideo/FuseImporter/generate.pl =================================================================== --- branches/fuse_corevideo/FuseImporter/generate.pl 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/FuseImporter/generate.pl 2009-09-07 11:22:22 UTC (rev 626) @@ -141,8 +141,15 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); +#include <TargetConditionals.h> + +#ifdef TARGET_RT_64_BIT +#define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) +#define GPOINTER_TO_INT(p) ((gint) (glong)(p)) +#else #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) +#endif CODE } Modified: branches/fuse_corevideo/FuseImporter/libspectrum.h =================================================================== --- branches/fuse_corevideo/FuseImporter/libspectrum.h 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/FuseImporter/libspectrum.h 2009-09-07 11:22:22 UTC (rev 626) @@ -38,6 +38,8 @@ #include <stdlib.h> #include <stdio.h> +#include <TargetConditionals.h> + #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN /* Exclude rarely used stuff from Windows @@ -200,8 +202,13 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); +#ifdef TARGET_RT_64_BIT +#define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) +#define GPOINTER_TO_INT(p) ((gint) (glong)(p)) +#else #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) +#endif /* Library capabilities */ Modified: branches/fuse_corevideo/README =================================================================== --- branches/fuse_corevideo/README 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/README 2009-09-07 11:22:22 UTC (rev 626) @@ -21,9 +21,6 @@ cd audiofile xcodebuild -configuration Deployment cd .. -cd libgcrypt -xcodebuild -configuration Deployment -cd .. cd libspectrum xcodebuild -configuration Deployment cd .. Property changes on: branches/fuse_corevideo/audiofile/audiofile.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.mode1 *.pbxuser + *.mode1 *.pbxuser *.perspectivev3 Modified: branches/fuse_corevideo/audiofile/audiofile.xcodeproj/project.pbxproj =================================================================== --- branches/fuse_corevideo/audiofile/audiofile.xcodeproj/project.pbxproj 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/audiofile/audiofile.xcodeproj/project.pbxproj 2009-09-07 11:22:22 UTC (rev 626) @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 45; objects = { /* Begin PBXBuildFile section */ @@ -303,7 +303,7 @@ 000000000000000016601A90 /* Project object */ = { isa = PBXProject; buildConfigurationList = B62395470C1CF4F8003B8E87 /* Build configuration list for PBXProject "audiofile" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 0000000000000000166142F0; projectDirPath = ""; @@ -392,50 +392,45 @@ B62395480C1CF4F8003B8E87 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = NO; FRAMEWORK_VERSION = 0.2.6; - GCC_VERSION = 4.0; - MACOSX_DEPLOYMENT_TARGET = 10.4; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + MACOSX_DEPLOYMENT_TARGET = 10.5; + SDKROOT = macosx10.5; }; name = Development; }; B62395490C1CF4F8003B8E87 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; FRAMEWORK_VERSION = 0.2.6; - GCC_VERSION = 4.0; - MACOSX_DEPLOYMENT_TARGET = 10.4; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + MACOSX_DEPLOYMENT_TARGET = 10.5; + SDKROOT = macosx10.5; }; name = Deployment; }; B623954A0C1CF4F8003B8E87 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = NO; FRAMEWORK_VERSION = 0.2.6; - GCC_VERSION = 4.0; - MACOSX_DEPLOYMENT_TARGET = 10.4; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + MACOSX_DEPLOYMENT_TARGET = 10.5; + SDKROOT = macosx10.5; }; name = Default; }; B62395BD0C1CF586003B8E87 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; COPY_PHASE_STRIP = NO; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1.2; @@ -444,7 +439,6 @@ GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_CONFIG_H, NDEBUG, @@ -477,8 +471,6 @@ B62395BE0C1CF586003B8E87 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; COPY_PHASE_STRIP = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1.2; @@ -486,7 +478,6 @@ GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_CONFIG_H, NDEBUG, @@ -519,14 +510,11 @@ B62395BF0C1CF586003B8E87 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1.2; FRAMEWORK_VERSION = 0.2.6; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_CONFIG_H, NDEBUG, Property changes on: branches/fuse_corevideo/fuse ___________________________________________________________________ Modified: svn:mergeinfo - /vendor/fuse-emulator/0.10.0/fuse:556-557 /vendor/fuse-emulator/0.10.0-pre1/fuse:545-546 /vendor/fuse-emulator/current/fuse:530-609 + /trunk/fuse:614-623 /vendor/fuse-emulator/0.10.0/fuse:556-557 /vendor/fuse-emulator/0.10.0-pre1/fuse:545-546 /vendor/fuse-emulator/current/fuse:530-609 Modified: branches/fuse_corevideo/fuse/fusepb/Fuse.xcodeproj/project.pbxproj =================================================================== --- branches/fuse_corevideo/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2009-09-07 11:22:22 UTC (rev 626) @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 45; objects = { /* Begin PBXBuildFile section */ @@ -29,7 +29,6 @@ B61F459D09121DF100C8096C /* tape_plus2a.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C4060765984000DE7E81 /* tape_plus2a.szx */; }; B61F459F09121DF100C8096C /* tape_scorpion.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C40A0765988200DE7E81 /* tape_scorpion.szx */; }; B61F45A209121DF100C8096C /* spectrum.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = F541C04303963A9F01C2A5B9 /* spectrum.framework */; }; - B61F45A609121DF100C8096C /* gcrypt.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6BA1A8B04E4F3290017354F /* gcrypt.framework */; }; B61F45FF09121DF100C8096C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; B61F460009121DF100C8096C /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = F5F291060396932B01730B00 /* Credits.html */; }; B61F460109121DF100C8096C /* Debugger.nib in Resources */ = {isa = PBXBuildFile; fileRef = B62E1BC303E298B200A80002 /* Debugger.nib */; }; @@ -162,7 +161,6 @@ B61F469B09121DF100C8096C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; B61F469C09121DF100C8096C /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; B61F469D09121DF100C8096C /* spectrum.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F541C04303963A9F01C2A5B9 /* spectrum.framework */; }; - B61F46A109121DF100C8096C /* gcrypt.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6BA1A8B04E4F3290017354F /* gcrypt.framework */; }; B61F46A409121DF100C8096C /* FuseImporter.mdimporter in CopyFiles */ = {isa = PBXBuildFile; fileRef = B64FEA96084F8EC300879389 /* FuseImporter.mdimporter */; }; B6251C3E0C2EB24500BD5543 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6251C3D0C2EB24500BD5543 /* QuartzCore.framework */; }; B62B19E10DD31DF500D42AAF /* scalers16.c in Sources */ = {isa = PBXBuildFile; fileRef = B62B19E00DD31DF500D42AAF /* scalers16.c */; }; @@ -296,7 +294,6 @@ files = ( B6FA75C60C1D76A5007F5A10 /* audiofile.framework in CopyFiles */, B61F45A209121DF100C8096C /* spectrum.framework in CopyFiles */, - B61F45A609121DF100C8096C /* gcrypt.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -488,7 +485,6 @@ B6B076B00B59FE9A00D4F95C /* Emulator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Emulator.h; sourceTree = "<group>"; }; B6B076B10B59FE9A00D4F95C /* Emulator.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Emulator.m; sourceTree = "<group>"; }; B6B99F890B5F798700EE408F /* cocoadisplay.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = cocoadisplay.m; sourceTree = "<group>"; }; - B6BA1A8B04E4F3290017354F /* gcrypt.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = gcrypt.framework; path = ../../libgcrypt/build/Deployment/gcrypt.framework; sourceTree = SOURCE_ROOT; }; B6BA1A9404E4F88F0017354F /* uijoystick.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = uijoystick.h; path = ../ui/uijoystick.h; sourceTree = SOURCE_ROOT; }; B6BA6F0207B1E04200E44C8D /* Preferences.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Preferences.nib; path = nibs/Preferences.nib; sourceTree = "<group>"; }; B6C3479F044B091100E1BBA7 /* ts2068.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ts2068.png; path = resources/ts2068.png; sourceTree = SOURCE_ROOT; }; @@ -662,7 +658,6 @@ B61F469B09121DF100C8096C /* Foundation.framework in Frameworks */, B61F469C09121DF100C8096C /* AppKit.framework in Frameworks */, B61F469D09121DF100C8096C /* spectrum.framework in Frameworks */, - B61F46A109121DF100C8096C /* gcrypt.framework in Frameworks */, B64E2A170A6534A3006863D9 /* Carbon.framework in Frameworks */, B6A6F0EE0B3D5F9E000B88E9 /* CoreAudio.framework in Frameworks */, B6A6F0F30B3D602F000B88E9 /* AudioUnit.framework in Frameworks */, @@ -696,7 +691,6 @@ isa = PBXGroup; children = ( B6FA759C0C1D7507007F5A10 /* audiofile.framework */, - B6BA1A8B04E4F3290017354F /* gcrypt.framework */, F541C04303963A9F01C2A5B9 /* spectrum.framework */, ); name = "Linked Frameworks"; @@ -1322,7 +1316,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; buildConfigurationList = B63319B3086803BA00732AA3 /* Build configuration list for PBXProject "Fuse" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 29B97314FDCFA39411CA2CEA /* Fuse */; projectDirPath = ""; @@ -1697,15 +1691,14 @@ B63319B4086803BA00732AA3 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = YES; - GCC_VERSION = 4.0; + GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; YACCFLAGS = "-d"; YACC_GENERATED_FILE_STEM = InputFileStem; ZERO_LINK = YES; @@ -1715,16 +1708,15 @@ B63319B5086803BA00732AA3 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = YES; - GCC_VERSION = 4.0; + GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; YACCFLAGS = "-d"; YACC_GENERATED_FILE_STEM = InputFileStem; ZERO_LINK = NO; @@ -1734,15 +1726,14 @@ B63319B6086803BA00732AA3 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = YES; - GCC_VERSION = 4.0; + GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; YACCFLAGS = "-d"; YACC_GENERATED_FILE_STEM = InputFileStem; ZERO_LINK = NO; Modified: branches/fuse_corevideo/fuse/fusepb/FuseMenus.m =================================================================== --- branches/fuse_corevideo/fuse/fusepb/FuseMenus.m 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/fuse/fusepb/FuseMenus.m 2009-09-07 11:22:22 UTC (rev 626) @@ -34,6 +34,7 @@ #include "divide.h" #include "if1.h" #include "menu.h" +#include "opus.h" #include "settings.h" #include "simpleide.h" #include "tape.h" @@ -80,6 +81,12 @@ confirm = plusd_disk_eject( PLUSD_DRIVE_2, 0 ); if( confirm ) return 1; + confirm = opus_disk_eject( OPUS_DRIVE_1, 0 ); + if( confirm ) return 1; + + confirm = opus_disk_eject( OPUS_DRIVE_2, 0 ); + if( confirm ) return 1; + for( i = 0; i < 8; i++ ) { confirm = if1_mdr_eject( i, 0 ); if( confirm ) return 1; Modified: branches/fuse_corevideo/fuse/fusepb/controllers/FuseController.m =================================================================== --- branches/fuse_corevideo/fuse/fusepb/controllers/FuseController.m 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/fuse/fusepb/controllers/FuseController.m 2009-09-07 11:22:22 UTC (rev 626) @@ -1975,8 +1975,6 @@ if( ui_mouse_grabbed ) ui_mouse_grabbed = ui_mouse_release( 1 ); - confirm = UI_CONFIRM_SAVE_CANCEL; - result = NSRunAlertPanel(@"Confirm", theMessage, @"Save", @"Don't Save", @"Cancel"); Modified: branches/fuse_corevideo/fuse/fusepb/controllers/PokeFinderController.m =================================================================== --- branches/fuse_corevideo/fuse/fusepb/controllers/PokeFinderController.m 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/fuse/fusepb/controllers/PokeFinderController.m 2009-09-07 11:22:22 UTC (rev 626) @@ -59,7 +59,7 @@ - (void)awakeFromNib { - NumberFormatter *searchForFormatter = [[NumberFormatter alloc] init]; + NumberFormatter *searchForFormatter = [[[NumberFormatter alloc] init] autorelease]; [searchForFormatter setMinimum:[NSDecimalNumber zero]]; [searchForFormatter setMaximum:[NSDecimalNumber decimalNumberWithString:@"255"]]; @@ -72,7 +72,7 @@ - (void)matchListDoubleAction:(id)sender { - int error, row; + int row; id record, value; unsigned long page, offset; @@ -86,10 +86,9 @@ value = [record valueForKey:@"offset_number"]; offset = [value unsignedLongValue]; - error = - debugger_breakpoint_add_address( DEBUGGER_BREAKPOINT_TYPE_WRITE, - page, offset, 0, - DEBUGGER_BREAKPOINT_LIFE_PERMANENT, NULL); + (void)debugger_breakpoint_add_address( DEBUGGER_BREAKPOINT_TYPE_WRITE, + page, offset, 0, + DEBUGGER_BREAKPOINT_LIFE_PERMANENT, NULL); } - (void) dealloc Modified: branches/fuse_corevideo/fuse/fusepb/controllers/PreferencesController.m =================================================================== --- branches/fuse_corevideo/fuse/fusepb/controllers/PreferencesController.m 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/fuse/fusepb/controllers/PreferencesController.m 2009-09-07 11:22:22 UTC (rev 626) @@ -69,16 +69,14 @@ [NSValueTransformer setValueTransformer:sNToITransformer forName:@"ScalerNameToIdTransformer"]; - machineScalerIsEnabled = [[MachineScalerIsEnabled - machineScalerIsEnabledWithInt:1] - autorelease]; + machineScalerIsEnabled = [MachineScalerIsEnabled + machineScalerIsEnabledWithInt:1]; [NSValueTransformer setValueTransformer:machineScalerIsEnabled forName:@"MachineTimexIsEnabled"]; - machineScalerIsEnabled = [[MachineScalerIsEnabled - machineScalerIsEnabledWithInt:0] - autorelease]; + machineScalerIsEnabled = [MachineScalerIsEnabled + machineScalerIsEnabledWithInt:0]; [NSValueTransformer setValueTransformer:machineScalerIsEnabled forName:@"MachineTimexIsDisabled"]; Modified: branches/fuse_corevideo/fuse/fusepb/controllers/SaveBinaryController.m =================================================================== --- branches/fuse_corevideo/fuse/fusepb/controllers/SaveBinaryController.m 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/fuse/fusepb/controllers/SaveBinaryController.m 2009-09-07 11:22:22 UTC (rev 626) @@ -68,7 +68,7 @@ - (IBAction)apply:(id)sender { libspectrum_word s, l; size_t i; - char *buffer; + libspectrum_byte *buffer; int error; Modified: branches/fuse_corevideo/fuse/fusepb/nibs/Preferences.nib/designable.nib =================================================================== --- branches/fuse_corevideo/fuse/fusepb/nibs/Preferences.nib/designable.nib 2009-09-05 14:15:58 UTC (rev 625) +++ branches/fuse_corevideo/fuse/fusepb/nibs/Preferences.nib/designable.nib 2009-09-07 11:22:22 UTC (rev 626) @@ -1,16 +1,20 @@ <?xml version="1.0" encoding="UTF-8"?> -<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03"> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">9J61</string> - <string key="IBDocument.InterfaceBuilderVersion">677</string> - <string key="IBDocument.AppKitVersion">949.46</string> - <string key="IBDocument.HIToolboxVersion">353.00</string> + <string key="IBDocument.SystemVersion">10A432</string> + <string key="IBDocument.InterfaceBuilderVersion">732</string> + <string key="IBDocument.AppKitVersion">1038</string> + <string key="IBDocument.HIToolboxVersion">437.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="NS.object.0">732</string> + </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="1347"/> <integer value="1446"/> <integer value="6"/> - <integer value="1347"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -18,7 +22,7 @@ </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys" id="0"> <bool key="EncodedWithXMLCoder">YES</bool> </object> <object class="NSMutableArray" key="dict.values"> @@ -56,7 +60,7 @@ <int key="NSToolbarSizeMode">1</int> <object class="NSMutableDictionary" key="NSToolbarIBIdentifiedItems"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>1D3C684F-4B0A-4828-ADF3-E4106D08C1CD</string> <string>2C4BF74A-9900-4A0E-A2FC-50ADDA64B166</string> @@ -269,11 +273,9 @@ <reference ref="943816128"/> <reference ref="141636598"/> </object> - <object class="NSMutableArray" key="NSToolbarIBSelectableItems"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <reference key="NSToolbarIBSelectableItems" ref="0"/> </object> - <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMinSize">{213, 107}</string> <object class="NSView" key="NSWindowView" id="41054612"> <reference key="NSNextResponder"/> @@ -283,7 +285,7 @@ </object> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> <string key="NSMinSize">{213, 184}</string> - <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSFrameAutosaveName"/> </object> <object class="NSCustomView" id="869768206"> @@ -303,7 +305,7 @@ <string key="NSContents">Confirm actions</string> <object class="NSFont" key="NSSupport" id="447006373"> <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.300000e+01</double> + <double key="NSSize">13</double> <int key="NSfFlags">1044</int> </object> <reference key="NSControlView" ref="382408068"/> @@ -483,7 +485,7 @@ <object class="NSNumberFormatter" key="NSFormatter" id="815687010"> <object class="NSMutableDictionary" key="NS.attributes"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>allowsFloats</string> <string>decimalSeparator</string> @@ -498,14 +500,14 @@ </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="1" id="9"/> + <integer value="1"/> <string>.</string> <integer value="1000"/> <string>,</string> - <reference ref="9"/> - <reference ref="9"/> + <integer value="1"/> + <integer value="1"/> <string>-#,##0.00</string> - <integer value="3" id="11"/> + <integer value="3"/> <string>#,##0%</string> <boolean value="YES"/> </object> @@ -516,11 +518,9 @@ <nil key="NS.negativeattrs"/> <object class="NSAttributedString" key="NS.zero"> <string key="NSString">0</string> - <object class="NSDictionary" key="NSAttributes" id="625184385"> + <object class="NSDictionary" key="NSAttributes" id="833979005"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <reference key="dict.sortedKeys" ref="0"/> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> </object> @@ -531,9 +531,9 @@ </object> <object class="NSAttributedString" key="NS.nan"> <string key="NSString">NaN</string> - <reference key="NSAttributes" ref="625184385"/> + <reference key="NSAttributes" ref="833979005"/> </object> - <reference key="NS.min" ref="9"/> + <integer value="1" key="NS.min"/> <object class="NSDecimalNumberPlaceholder" key="NS.max" id="648108068"> <int key="NS.exponent">0</int> <int key="NS.length">0</int> @@ -550,12 +550,13 @@ <bool key="NS.allowsfloats">YES</bool> </object> <reference key="NSControlView" ref="418457192"/> - <double key="NSTitleWidth">1.610000e+02</double> + <double key="NSTitleWidth">161</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> <string key="NSContents">Emulation speed:</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="418457192"/> </object> </object> <object class="NSFormCell" id="319020855"> @@ -565,39 +566,39 @@ <object class="NSNumberFormatter" key="NSFormatter" id="657991658"> <object class="NSMutableDictionary" key="NS.attributes"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>allowsFloats</string> <string>formatterBehavior</string> + <string>locale</string> <string>maximum</string> <string>minimum</string> <string>numberStyle</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="9"/> - <integer value="1040" id="736002568"/> - <real value="5.000000e+01" id="754928329"/> - <reference ref="9"/> - <integer value="0" id="8"/> + <integer value="1"/> + <integer value="1040"/> + <object class="NSLocale" id="514081757"> + <string key="NS.identifier"/> + </object> + <real value="50"/> + <integer value="1"/> + <integer value="0"/> </object> </object> <string key="NS.positiveformat">#</string> <string key="NS.negativeformat">#</string> <nil key="NS.positiveattrs"/> <nil key="NS.negativeattrs"/> - <object class="NSAttributedString" key="NS.zero"> - <nil key="NSString"/> - </object> - <object class="NSAttributedString" key="NS.nil"> - <nil key="NSString"/> - </object> + <nil key="NS.zero"/> + <nil key="NS.nil"/> <object class="NSAttributedString" key="NS.nan"> <string key="NSString">NaN</string> - <reference key="NSAttributes" ref="625184385"/> + <reference key="NSAttributes" ref="833979005"/> </object> - <reference key="NS.min" ref="9"/> - <reference key="NS.max" ref="754928329"/> + <integer value="1" key="NS.min"/> + <real value="50" key="NS.max"/> <object class="NSDecimalNumberHandler" key="NS.rounding"> <int key="NS.roundingmode">3</int> <bool key="NS.raise.overflow">YES</bool> @@ -607,17 +608,18 @@ <string key="NS.decimal">.</string> <string key="NS.thousand">,</string> <bool key="NS.hasthousands">NO</bool> - <bool key="NS.localized">YES</bool> + <bool key="NS.localized">NO</bool> <bool key="NS.allowsfloats">YES</bool> </object> + <reference key="NSControlView" ref="418457192"/> <int key="NSTag">1</int> - <reference key="NSControlView" ref="418457192"/> - <double key="NSTitleWidth">1.610000e+02</double> + <double key="NSTitleWidth">161</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> <string key="NSContents">Screen refresh rate (1:n):</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="418457192"/> </object> </object> </object> @@ -630,7 +632,7 @@ <int key="NSCellFlags2">205521920</int> <string key="NSContents"/> <reference key="NSSupport" ref="447006373"/> - <double key="NSTitleWidth">1.610000e+02</double> + <double key="NSTitleWidth">161</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> @@ -646,7 +648,7 @@ <string key="NSColorName">controlColor</string> <object class="NSColor" key="NSColor" id="429360493"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> + <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> </object> </object> <object class="NSColor" key="NSCellBackgroundColor" id="70288484"> @@ -828,14 +830,14 @@ </object> <object class="NSFont" key="NSSupport" id="333640230"> <string key="NSName">Helvetica</string> - <double key="NSSize">1.200000e+01</double> + <double key="NSSize">12</double> <int key="NSfFlags">16</int> </object> <reference key="NSControlView" ref="524220653"/> - <double key="NSMaxValue">1.000000e+02</double> - <double key="NSMinValue">0.000000e+00</double> - <double key="NSValue">1.000000e+02</double> - <double key="NSAltIncValue">0.000000e+00</double> + <double key="NSMaxValue">100</double> + <double key="NSMinValue">0.0</double> + <double key="NSValue">100</double> + <double key="NSAltIncValue">0.0</double> <int key="NSNumberOfTickMarks">10</int> <int key="NSTickMarkPosition">0</int> <bool key="NSAllowsTickMarkValuesOnly">YES</bool> @@ -901,10 +903,10 @@ </object> <reference key="NSSupport" ref="333640230"/> <reference key="NSControlView" ref="1032556491"/> - <double key="NSMaxValue">1.000000e+02</double> - <double key="NSMinValue">0.000000e+00</double> - <double key="NSValue">1.000000e+02</double> - <double key="NSAltIncValue">0.000000e+00</double> + <double key="NSMaxValue">100</double> + <double key="NSMinValue">0.0</double> + <double key="NSValue">100</double> + <double key="NSAltIncValue">0.0</double> <int key="NSNumberOfTickMarks">10</int> <int key="NSTickMarkPosition">0</int> <bool key="NSAllowsTickMarkValuesOnly">YES</bool> @@ -1128,7 +1130,7 @@ <object class="NSMutableArray" key="NSCells"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSButtonCell" id="949804708"> - <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags">-2080244224</int> <int key="NSCellFlags2">0</int> <string key="NSContents">None</string> <reference key="NSSupport" ref="447006373"/> @@ -1148,8 +1150,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">Interface I</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">1</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <reference key="NSAlternateImage" ref="32434582"/> @@ -1165,8 +1167,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">Simple 8-bit IDE</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">2</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> @@ -1176,7 +1178,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1202,7 +1204,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> @@ -1222,8 +1224,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">ZXATASP interface</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">3</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> @@ -1233,7 +1235,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1259,7 +1261,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> @@ -1276,8 +1278,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">ZXCF interface</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">4</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> @@ -1287,7 +1289,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1313,7 +1315,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> @@ -1330,8 +1332,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">DivIDE</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">5</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> @@ -1341,7 +1343,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1367,7 +1369,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw cGwCAAAAbW50clJHQiBYWVogB9UABAAdABcANAAGYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAPbWAAEAAAAA0y1hcHBsFNph5E4SJug5D71eq3yMqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -1436,8 +1438,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">+D</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">6</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <reference key="NSAlternateImage" ref="32434582"/> @@ -1451,8 +1453,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">Beta 128</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">7</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <reference key="NSAlternateImage" ref="32434582"/> @@ -1466,8 +1468,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">Opus Discovery</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">8</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> @@ -1477,7 +1479,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1503,7 +1505,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAA8kAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAPJGFw cGwCAAAAbW50clJHQiBYWVogB9gACwAIABYALwApYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAPbWAAEAAAAA0y1hcHBsijokxhhXhf8T3nB/TjyUvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -1599,7 +1601,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1625,7 +1627,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAA8MAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAPDGFw cGwCAAAAbW50clJHQiBYWVogB9gAAQAKABIAGgAiYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAPbWAAEAAAAA0y1hcHBsUwOvPlG1ySS6QFVbfQWioQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -1702,8 +1704,7 @@ <int key="NSPeriodicDelay">400</int> <int key="NSPeriodicInterval">75</int> </object> - <int key="NSSelectedRow">8</int> - <reference key="NSSelectedCell" ref="766217337"/> + <reference key="NSSelectedCell" ref="949804708"/> <reference key="NSBackgroundColor" ref="519317542"/> <reference key="NSCellBackgroundColor" ref="70288484"/> <reference key="NSFont" ref="447006373"/> @@ -1810,36 +1811,34 @@ <object class="NSNumberFormatter" key="NSFormatter" id="219085684"> <object class="NSMutableDictionary" key="NS.attributes"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>allowsFloats</string> <string>formatterBehavior</string> + <string>locale</string> <string>maximumIntegerDigits</string> <string>minimum</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="9"/> - <reference ref="736002568"/> - <reference ref="11"/> - <reference ref="8"/> + <integer value="1"/> + <integer value="1040"/> + <reference ref="514081757"/> + <integer value="3"/> + <integer value="0"/> </object> </object> <string key="NS.positiveformat">#</string> <string key="NS.negativeformat">#</string> <nil key="NS.positiveattrs"/> <nil key="NS.negativeattrs"/> - <object class="NSAttributedString" key="NS.zero"> - <nil key="NSString"/> - </object> - <object class="NSAttributedString" key="NS.nil"> - <nil key="NSString"/> - </object> + <nil key="NS.zero"/> + <nil key="NS.nil"/> <object class="NSAttributedString" key="NS.nan"> <string key="NSString">NaN</string> - <reference key="NSAttributes" ref="625184385"/> + <reference key="NSAttributes" ref="833979005"/> </object> - <reference key="NS.min" ref="8"/> + <integer value="0" key="NS.min"/> <reference key="NS.max" ref="648108068"/> <object class="NSDecimalNumberHandler" key="NS.rounding"> <int key="NS.roundingmode">3</int> @@ -1850,16 +1849,17 @@ <string key="NS.decimal">.</string> <string key="NS.thousand">,</string> <bool key="NS.hasthousands">NO</bool> - <bool key="NS.localized">YES</bool> + <bool key="NS.localized">NO</bool> <bool key="NS.allowsfloats">YES</bool> </object> <reference key="NSControlView" ref="566156961"/> - <double key="NSTitleWidth">1.220000e+02</double> + <double key="NSTitleWidth">122</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> <string key="NSContents">MDR cartridge len:</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="566156961"/> </object> </object> </object> @@ -1872,7 +1872,7 @@ <int key="NSCellFlags2">205521920</int> <string key="NSContents"/> <reference key="NSSupport" ref="447006373"/> - <double key="NSTitleWidth">1.220000e+02</double> + <double key="NSTitleWidth">122</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> @@ -1900,7 +1900,7 @@ <string key="NSContents">Mass storage</string> <object class="NSFont" key="NSSupport" id="26"> <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.100000e+01</double> + <double key="NSSize">11</double> <int key="NSfFlags">3100</int> </object> <object class="NSColor" key="NSBackgroundColor" id="553561812"> @@ -1942,13 +1942,13 @@ <int key="NSCellFlags2">137887744</int> <string key="NSContents">Choose...</string> <reference key="NSSupport" ref="447006373"/> ... [truncated message content] |
From: <fr...@us...> - 2009-09-05 14:16:06
|
Revision: 625 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=625&view=rev Author: fredm Date: 2009-09-05 14:15:58 +0000 (Sat, 05 Sep 2009) Log Message: ----------- Switch from using nibs to xibs. Modified Paths: -------------- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj Added Paths: ----------- trunk/fuse/fusepb/xibs/ trunk/fuse/fusepb/xibs/Debugger.xib trunk/fuse/fusepb/xibs/JoystickConfiguration.xib trunk/fuse/fusepb/xibs/Keyboard.xib trunk/fuse/fusepb/xibs/LoadBinary.xib trunk/fuse/fusepb/xibs/MainMenu.xib trunk/fuse/fusepb/xibs/MemoryBrowser.xib trunk/fuse/fusepb/xibs/PokeFinder.xib trunk/fuse/fusepb/xibs/Preferences.xib trunk/fuse/fusepb/xibs/Rollback.xib trunk/fuse/fusepb/xibs/SaveBinary.xib trunk/fuse/fusepb/xibs/SavePanelAccessoryView.xib trunk/fuse/fusepb/xibs/TapeBrowser.xib Removed Paths: ------------- trunk/fuse/fusepb/nibs/ Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj =================================================================== --- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2009-09-05 13:37:56 UTC (rev 624) +++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2009-09-05 14:15:58 UTC (rev 625) @@ -31,17 +31,6 @@ B61F45A209121DF100C8096C /* spectrum.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = F541C04303963A9F01C2A5B9 /* spectrum.framework */; }; B61F45FF09121DF100C8096C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; B61F460009121DF100C8096C /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = F5F291060396932B01730B00 /* Credits.html */; }; - B61F460109121DF100C8096C /* Debugger.nib in Resources */ = {isa = PBXBuildFile; fileRef = B62E1BC303E298B200A80002 /* Debugger.nib */; }; - B61F460209121DF100C8096C /* JoystickConfiguration.nib in Resources */ = {isa = PBXBuildFile; fileRef = B611196806A1FBB6006D2711 /* JoystickConfiguration.nib */; }; - B61F460309121DF100C8096C /* Keyboard.nib in Resources */ = {isa = PBXBuildFile; fileRef = F56B6A5C03A621E901CA65B5 /* Keyboard.nib */; }; - B61F460409121DF100C8096C /* LoadBinary.nib in Resources */ = {isa = PBXBuildFile; fileRef = B6F74F9404B855930059D51C /* LoadBinary.nib */; }; - B61F460509121DF100C8096C /* MemoryBrowser.nib in Resources */ = {isa = PBXBuildFile; fileRef = B6D2993105B06AD200C2AA14 /* MemoryBrowser.nib */; }; - B61F460609121DF100C8096C /* PokeFinder.nib in Resources */ = {isa = PBXBuildFile; fileRef = B62F3BB4059F5B5900A7009A /* PokeFinder.nib */; }; - B61F460709121DF100C8096C /* Preferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = B6BA6F0207B1E04200E44C8D /* Preferences.nib */; }; - B61F460809121DF100C8096C /* Rollback.nib in Resources */ = {isa = PBXBuildFile; fileRef = B600ADA3077237920030FD05 /* Rollback.nib */; }; - B61F460909121DF100C8096C /* SaveBinary.nib in Resources */ = {isa = PBXBuildFile; fileRef = B6F74F9A04B85B4F0059D51C /* SaveBinary.nib */; }; - B61F460A09121DF100C8096C /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = F5598546038920E401A804BA /* MainMenu.nib */; }; - B61F460B09121DF100C8096C /* TapeBrowser.nib in Resources */ = {isa = PBXBuildFile; fileRef = F59B5587039F8DB601A804BA /* TapeBrowser.nib */; }; B61F460C09121DF100C8096C /* 48.rom in Resources */ = {isa = PBXBuildFile; fileRef = F559854C0389212301A804BA /* 48.rom */; }; B61F460D09121DF100C8096C /* 128-0.rom in Resources */ = {isa = PBXBuildFile; fileRef = F559854D0389212301A804BA /* 128-0.rom */; }; B61F460E09121DF100C8096C /* 128-1.rom in Resources */ = {isa = PBXBuildFile; fileRef = F559854E0389212301A804BA /* 128-1.rom */; }; @@ -80,7 +69,6 @@ B61F463109121DF100C8096C /* tzx.icns in Resources */ = {isa = PBXBuildFile; fileRef = B643BB980403A13600A864FD /* tzx.icns */; }; B61F463209121DF100C8096C /* z80.icns in Resources */ = {isa = PBXBuildFile; fileRef = B6676DB0040C348F00B2BFEF /* z80.icns */; }; B61F463309121DF100C8096C /* blank.icns in Resources */ = {isa = PBXBuildFile; fileRef = B6AF242A04156EE700F48F48 /* blank.icns */; }; - B61F463709121DF100C8096C /* SavePanelAccessoryView.nib in Resources */ = {isa = PBXBuildFile; fileRef = B619FC2E090D9BC200344F94 /* SavePanelAccessoryView.nib */; }; B61F463909121DF100C8096C /* z80_ops.c in Sources */ = {isa = PBXBuildFile; fileRef = F55985B20389224001A804BA /* z80_ops.c */; }; B61F463A09121DF100C8096C /* z80.c in Sources */ = {isa = PBXBuildFile; fileRef = F55985B30389224001A804BA /* z80.c */; }; B61F463B09121DF100C8096C /* ay.c in Sources */ = {isa = PBXBuildFile; fileRef = F55985CF038922A801A804BA /* ay.c */; }; @@ -195,6 +183,18 @@ B65352F20B8CF6CC0083F942 /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = B65352BE0B89B8AA0083F942 /* SDL_sysjoystick.c */; }; B65353150B8FF3D20083F942 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = B65353140B8FF3D20083F942 /* SDL_joystick.c */; }; B653532B0B902CB20083F942 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B653532A0B902CB20083F942 /* IOKit.framework */; }; + B665EE031052A29F00FCFED8 /* Debugger.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE021052A29F00FCFED8 /* Debugger.xib */; }; + B665EE081052A34700FCFED8 /* JoystickConfiguration.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE071052A34700FCFED8 /* JoystickConfiguration.xib */; }; + B665EE0B1052A39000FCFED8 /* Keyboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE0A1052A39000FCFED8 /* Keyboard.xib */; }; + B665EE101052A3BD00FCFED8 /* LoadBinary.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE0F1052A3BD00FCFED8 /* LoadBinary.xib */; }; + B665EE131052A3DC00FCFED8 /* MemoryBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE121052A3DC00FCFED8 /* MemoryBrowser.xib */; }; + B665EE161052A40000FCFED8 /* PokeFinder.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE151052A40000FCFED8 /* PokeFinder.xib */; }; + B665EE191052A41F00FCFED8 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE181052A41F00FCFED8 /* Preferences.xib */; }; + B665EE1C1052A43900FCFED8 /* Rollback.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE1B1052A43900FCFED8 /* Rollback.xib */; }; + B665EE1F1052A45200FCFED8 /* SaveBinary.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE1E1052A45200FCFED8 /* SaveBinary.xib */; }; + B665EE221052A4F200FCFED8 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE211052A4F200FCFED8 /* MainMenu.xib */; }; + B665EE251052A51B00FCFED8 /* TapeBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE241052A51B00FCFED8 /* TapeBrowser.xib */; }; + B665EE281052A53C00FCFED8 /* SavePanelAccessoryView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B665EE271052A53C00FCFED8 /* SavePanelAccessoryView.xib */; }; B665FD490DD25D8900D21C79 /* upd_fdc.c in Sources */ = {isa = PBXBuildFile; fileRef = B665FD470DD25D8900D21C79 /* upd_fdc.c */; }; B665FD4A0DD25D8900D21C79 /* upd_fdc.h in Headers */ = {isa = PBXBuildFile; fileRef = B665FD480DD25D8900D21C79 /* upd_fdc.h */; }; B66E04720CEDBAF400A647DC /* pentagon512.c in Sources */ = {isa = PBXBuildFile; fileRef = B66E04710CEDBAF400A647DC /* pentagon512.c */; }; @@ -314,7 +314,6 @@ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; - B600ADA3077237920030FD05 /* Rollback.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Rollback.nib; path = nibs/Rollback.nib; sourceTree = SOURCE_ROOT; }; B6018479065A586900B0BE59 /* zxatasp.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = zxatasp.c; sourceTree = "<group>"; }; B601847A065A586900B0BE59 /* zxatasp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = zxatasp.h; sourceTree = "<group>"; }; B601847B065A586900B0BE59 /* zxcf.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = zxcf.c; sourceTree = "<group>"; }; @@ -324,7 +323,6 @@ B60B11F7059BC7E70048B64B /* machine.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = machine.c; path = ../machine.c; sourceTree = SOURCE_ROOT; }; B611190206A1FA12006D2711 /* JoystickConfigurationController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JoystickConfigurationController.h; path = controllers/JoystickConfigurationController.h; sourceTree = SOURCE_ROOT; }; B611190306A1FA12006D2711 /* JoystickConfigurationController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = JoystickConfigurationController.m; path = controllers/JoystickConfigurationController.m; sourceTree = SOURCE_ROOT; }; - B611196806A1FBB6006D2711 /* JoystickConfiguration.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = JoystickConfiguration.nib; path = nibs/JoystickConfiguration.nib; sourceTree = "<group>"; }; B61159BE0EEE99D50029FEA3 /* Graphics_Filter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Graphics_Filter.png; sourceTree = "<group>"; }; B61159C00EEE99E20029FEA3 /* Machine.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Machine.png; sourceTree = "<group>"; }; B61159C20EEE99EE0029FEA3 /* Peripherals.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Peripherals.png; sourceTree = "<group>"; }; @@ -334,7 +332,6 @@ B61159CA0EEE9A1E0029FEA3 /* Sound.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Sound.png; sourceTree = "<group>"; }; B615BFE50B4261E50082D535 /* HIDJoysticks.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = HIDJoysticks.h; path = content_arrays/HIDJoysticks.h; sourceTree = "<group>"; }; B615BFE60B4261E50082D535 /* HIDJoysticks.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = HIDJoysticks.m; path = content_arrays/HIDJoysticks.m; sourceTree = "<group>"; }; - B619FC2E090D9BC200344F94 /* SavePanelAccessoryView.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = SavePanelAccessoryView.nib; path = nibs/SavePanelAccessoryView.nib; sourceTree = "<group>"; }; B61EEB950D1A917D006FEA80 /* FuseGenerator.qlgenerator */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.bundle"; name = FuseGenerator.qlgenerator; path = ../../FuseGenerator/build/Release/FuseGenerator.qlgenerator; sourceTree = SOURCE_ROOT; }; B61F46A909121DF100C8096C /* Info-Fuse.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-Fuse.plist"; sourceTree = "<group>"; }; B61F46AA09121DF200C8096C /* Fuse.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Fuse.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -344,8 +341,6 @@ B62B19E00DD31DF500D42AAF /* scalers16.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = scalers16.c; path = scaler/scalers16.c; sourceTree = SOURCE_ROOT; }; B62B1A270DD6655800D42AAF /* fuse.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = fuse.c; sourceTree = "<group>"; }; B62B1A290DD667EC00D42AAF /* main.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; }; - B62E1BC303E298B200A80002 /* Debugger.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Debugger.nib; path = nibs/Debugger.nib; sourceTree = SOURCE_ROOT; }; - B62F3BB4059F5B5900A7009A /* PokeFinder.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = PokeFinder.nib; path = nibs/PokeFinder.nib; sourceTree = "<group>"; }; B62F3BCE059F5BF300A7009A /* PokeFinderController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PokeFinderController.h; path = controllers/PokeFinderController.h; sourceTree = "<group>"; }; B62F3BCF059F5BF300A7009A /* PokeFinderController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PokeFinderController.m; path = controllers/PokeFinderController.m; sourceTree = "<group>"; }; B631B9FD10257CA400BE1EE1 /* opus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opus.c; sourceTree = "<group>"; }; @@ -418,6 +413,18 @@ B66050F90606AB0B00247454 /* scorpion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = scorpion.h; path = ../machines/scorpion.h; sourceTree = SOURCE_ROOT; }; B66051080606ABDC00247454 /* input.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = input.c; path = ../input.c; sourceTree = SOURCE_ROOT; }; B66051090606ABDC00247454 /* input.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = input.h; path = ../input.h; sourceTree = SOURCE_ROOT; }; + B665EE021052A29F00FCFED8 /* Debugger.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Debugger.xib; sourceTree = "<group>"; }; + B665EE071052A34700FCFED8 /* JoystickConfiguration.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = JoystickConfiguration.xib; sourceTree = "<group>"; }; + B665EE0A1052A39000FCFED8 /* Keyboard.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Keyboard.xib; sourceTree = "<group>"; }; + B665EE0F1052A3BD00FCFED8 /* LoadBinary.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoadBinary.xib; sourceTree = "<group>"; }; + B665EE121052A3DC00FCFED8 /* MemoryBrowser.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MemoryBrowser.xib; sourceTree = "<group>"; }; + B665EE151052A40000FCFED8 /* PokeFinder.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PokeFinder.xib; sourceTree = "<group>"; }; + B665EE181052A41F00FCFED8 /* Preferences.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Preferences.xib; sourceTree = "<group>"; }; + B665EE1B1052A43900FCFED8 /* Rollback.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Rollback.xib; sourceTree = "<group>"; }; + B665EE1E1052A45200FCFED8 /* SaveBinary.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SaveBinary.xib; sourceTree = "<group>"; }; + B665EE211052A4F200FCFED8 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = "<group>"; }; + B665EE241052A51B00FCFED8 /* TapeBrowser.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TapeBrowser.xib; sourceTree = "<group>"; }; + B665EE271052A53C00FCFED8 /* SavePanelAccessoryView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SavePanelAccessoryView.xib; sourceTree = "<group>"; }; B665FD470DD25D8900D21C79 /* upd_fdc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = upd_fdc.c; sourceTree = "<group>"; }; B665FD480DD25D8900D21C79 /* upd_fdc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = upd_fdc.h; sourceTree = "<group>"; }; B6676DB0040C348F00B2BFEF /* z80.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = z80.icns; path = resources/z80.icns; sourceTree = SOURCE_ROOT; }; @@ -486,7 +493,6 @@ B6B076B10B59FE9A00D4F95C /* Emulator.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Emulator.m; sourceTree = "<group>"; }; B6B99F890B5F798700EE408F /* cocoadisplay.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = cocoadisplay.m; sourceTree = "<group>"; }; B6BA1A9404E4F88F0017354F /* uijoystick.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = uijoystick.h; path = ../ui/uijoystick.h; sourceTree = SOURCE_ROOT; }; - B6BA6F0207B1E04200E44C8D /* Preferences.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Preferences.nib; path = nibs/Preferences.nib; sourceTree = "<group>"; }; B6C3479F044B091100E1BBA7 /* ts2068.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ts2068.png; path = resources/ts2068.png; sourceTree = SOURCE_ROOT; }; B6C57E0005ECA05B0056F1D0 /* periph.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = periph.c; path = ../periph.c; sourceTree = SOURCE_ROOT; }; B6C57E0105ECA05B0056F1D0 /* periph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = periph.h; path = ../periph.h; sourceTree = SOURCE_ROOT; }; @@ -535,7 +541,6 @@ B6CE7FCC0B28FBD600EB65B3 /* DisplayOpenGLView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = DisplayOpenGLView.m; sourceTree = "<group>"; }; B6D2989105B061CB00C2AA14 /* MemoryBrowserController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MemoryBrowserController.h; path = controllers/MemoryBrowserController.h; sourceTree = "<group>"; }; B6D2989205B061CB00C2AA14 /* MemoryBrowserController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MemoryBrowserController.m; path = controllers/MemoryBrowserController.m; sourceTree = "<group>"; }; - B6D2993105B06AD200C2AA14 /* MemoryBrowser.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = MemoryBrowser.nib; path = nibs/MemoryBrowser.nib; sourceTree = "<group>"; }; B6DDE5280D64D96E00D6F905 /* pentagon.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = pentagon.h; path = machines/pentagon.h; sourceTree = "<group>"; }; B6DDE53B0D67963600D6F905 /* ui.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ui.c; sourceTree = "<group>"; }; B6E0252B0B38AFE500E23A0F /* keysyms.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = keysyms.m; sourceTree = "<group>"; }; @@ -562,10 +567,8 @@ B6F060AB078FB63A00CD5D95 /* tc2068.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = tc2068.h; path = ../machines/tc2068.h; sourceTree = SOURCE_ROOT; }; B6F06100078FC2C900CD5D95 /* sfifo.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sfifo.c; path = ../sound/sfifo.c; sourceTree = SOURCE_ROOT; }; B6F06101078FC2C900CD5D95 /* sfifo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sfifo.h; path = ../sound/sfifo.h; sourceTree = SOURCE_ROOT; }; - B6F74F9404B855930059D51C /* LoadBinary.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = LoadBinary.nib; path = nibs/LoadBinary.nib; sourceTree = "<group>"; }; B6F74F9604B855D40059D51C /* LoadBinaryController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = LoadBinaryController.h; path = controllers/LoadBinaryController.h; sourceTree = "<group>"; }; B6F74F9704B855D40059D51C /* LoadBinaryController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = LoadBinaryController.m; path = controllers/LoadBinaryController.m; sourceTree = "<group>"; }; - B6F74F9A04B85B4F0059D51C /* SaveBinary.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = SaveBinary.nib; path = nibs/SaveBinary.nib; sourceTree = "<group>"; }; B6F74F9C04B85B660059D51C /* SaveBinaryController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SaveBinaryController.h; path = controllers/SaveBinaryController.h; sourceTree = "<group>"; }; B6F74F9D04B85B660059D51C /* SaveBinaryController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SaveBinaryController.m; path = controllers/SaveBinaryController.m; sourceTree = "<group>"; }; B6F905ED05CDA24300C2F10D /* Fuse Help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "Fuse Help"; path = "resources/Fuse Help"; sourceTree = SOURCE_ROOT; }; @@ -579,7 +582,6 @@ F541C04303963A9F01C2A5B9 /* spectrum.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = spectrum.framework; path = ../../libspectrum/build/Deployment/spectrum.framework; sourceTree = SOURCE_ROOT; }; F541FB5E03B0B33401FF8235 /* scaler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = scaler.h; path = ../ui/scaler/scaler.h; sourceTree = SOURCE_ROOT; }; F54670EB03A3F3E70143EC2C /* settings.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = settings.m; sourceTree = SOURCE_ROOT; }; - F5598546038920E401A804BA /* MainMenu.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = MainMenu.nib; path = nibs/MainMenu.nib; sourceTree = "<group>"; }; F559854C0389212301A804BA /* 48.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = 48.rom; path = ../roms/48.rom; sourceTree = SOURCE_ROOT; }; F559854D0389212301A804BA /* 128-0.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = "128-0.rom"; path = "../roms/128-0.rom"; sourceTree = SOURCE_ROOT; }; F559854E0389212301A804BA /* 128-1.rom */ = {isa = PBXFileReference; lastKnownFileType = file; name = "128-1.rom"; path = "../roms/128-1.rom"; sourceTree = SOURCE_ROOT; }; @@ -635,11 +637,9 @@ F559862C0389235F01A804BA /* tape.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = tape.h; path = ../tape.h; sourceTree = SOURCE_ROOT; }; F559862D0389235F01A804BA /* tc2048.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = tc2048.c; path = ../machines/tc2048.c; sourceTree = SOURCE_ROOT; }; F559863C0389238101A804BA /* uidisplay.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = uidisplay.c; path = ../uidisplay.c; sourceTree = SOURCE_ROOT; }; - F56B6A5C03A621E901CA65B5 /* Keyboard.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Keyboard.nib; path = nibs/Keyboard.nib; sourceTree = "<group>"; }; F56B6A5E03A6273801CA65B5 /* KeyboardController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = KeyboardController.h; path = controllers/KeyboardController.h; sourceTree = SOURCE_ROOT; }; F56B6A5F03A6273801CA65B5 /* KeyboardController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = KeyboardController.m; path = controllers/KeyboardController.m; sourceTree = SOURCE_ROOT; }; F56B6A6203A628A901CA65B5 /* 48k.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = 48k.png; path = resources/48k.png; sourceTree = "<group>"; }; - F59B5587039F8DB601A804BA /* TapeBrowser.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = TapeBrowser.nib; path = nibs/TapeBrowser.nib; sourceTree = "<group>"; }; F59B558F039FD8F901A804BA /* TapeBrowserController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = TapeBrowserController.h; path = controllers/TapeBrowserController.h; sourceTree = SOURCE_ROOT; }; F59B5590039FD8F901A804BA /* TapeBrowserController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = TapeBrowserController.m; path = controllers/TapeBrowserController.m; sourceTree = SOURCE_ROOT; }; F5F291060396932B01730B00 /* Credits.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = Credits.html; sourceTree = "<group>"; }; @@ -756,10 +756,10 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( + B665EE051052A2D100FCFED8 /* xibs */, B61EEB950D1A917D006FEA80 /* FuseGenerator.qlgenerator */, B64FEA96084F8EC300879389 /* FuseImporter.mdimporter */, B6F905ED05CDA24300C2F10D /* Fuse Help */, - B6D81CAF0813561B00558C18 /* NIB Files */, B643BB8C0403A0D300A864FD /* resources */, F559854B0389210301A804BA /* snaps */, F559854A038920FD01A804BA /* roms */, @@ -918,6 +918,25 @@ path = ide; sourceTree = "<group>"; }; + B665EE051052A2D100FCFED8 /* xibs */ = { + isa = PBXGroup; + children = ( + B665EE021052A29F00FCFED8 /* Debugger.xib */, + B665EE071052A34700FCFED8 /* JoystickConfiguration.xib */, + B665EE0A1052A39000FCFED8 /* Keyboard.xib */, + B665EE0F1052A3BD00FCFED8 /* LoadBinary.xib */, + B665EE121052A3DC00FCFED8 /* MemoryBrowser.xib */, + B665EE151052A40000FCFED8 /* PokeFinder.xib */, + B665EE181052A41F00FCFED8 /* Preferences.xib */, + B665EE1B1052A43900FCFED8 /* Rollback.xib */, + B665EE1E1052A45200FCFED8 /* SaveBinary.xib */, + B665EE211052A4F200FCFED8 /* MainMenu.xib */, + B665EE241052A51B00FCFED8 /* TapeBrowser.xib */, + B665EE271052A53C00FCFED8 /* SavePanelAccessoryView.xib */, + ); + path = xibs; + sourceTree = "<group>"; + }; B678E3E20608FAA600678A33 /* sound */ = { isa = PBXGroup; children = ( @@ -1060,25 +1079,6 @@ path = views; sourceTree = "<group>"; }; - B6D81CAF0813561B00558C18 /* NIB Files */ = { - isa = PBXGroup; - children = ( - B62E1BC303E298B200A80002 /* Debugger.nib */, - B611196806A1FBB6006D2711 /* JoystickConfiguration.nib */, - F56B6A5C03A621E901CA65B5 /* Keyboard.nib */, - B6F74F9404B855930059D51C /* LoadBinary.nib */, - B6D2993105B06AD200C2AA14 /* MemoryBrowser.nib */, - B62F3BB4059F5B5900A7009A /* PokeFinder.nib */, - B6BA6F0207B1E04200E44C8D /* Preferences.nib */, - B600ADA3077237920030FD05 /* Rollback.nib */, - B6F74F9A04B85B4F0059D51C /* SaveBinary.nib */, - F5598546038920E401A804BA /* MainMenu.nib */, - F59B5587039F8DB601A804BA /* TapeBrowser.nib */, - B619FC2E090D9BC200344F94 /* SavePanelAccessoryView.nib */, - ); - name = "NIB Files"; - sourceTree = "<group>"; - }; B6DD457908134943008E9F7E /* Content Arrays */ = { isa = PBXGroup; children = ( @@ -1334,18 +1334,6 @@ files = ( B61F45FF09121DF100C8096C /* InfoPlist.strings in Resources */, B61F460009121DF100C8096C /* Credits.html in Resources */, - B61F460109121DF100C8096C /* Debugger.nib in Resources */, - B61F460209121DF100C8096C /* JoystickConfiguration.nib in Resources */, - B61F460309121DF100C8096C /* Keyboard.nib in Resources */, - B61F460409121DF100C8096C /* LoadBinary.nib in Resources */, - B61F460509121DF100C8096C /* MemoryBrowser.nib in Resources */, - B61F460609121DF100C8096C /* PokeFinder.nib in Resources */, - B61F460709121DF100C8096C /* Preferences.nib in Resources */, - B61F460809121DF100C8096C /* Rollback.nib in Resources */, - B61F460909121DF100C8096C /* SaveBinary.nib in Resources */, - B61F463709121DF100C8096C /* SavePanelAccessoryView.nib in Resources */, - B61F460A09121DF100C8096C /* MainMenu.nib in Resources */, - B61F460B09121DF100C8096C /* TapeBrowser.nib in Resources */, B61F460D09121DF100C8096C /* 128-0.rom in Resources */, B61F460E09121DF100C8096C /* 128-1.rom in Resources */, B61F460F09121DF100C8096C /* 128p-0.rom in Resources */, @@ -1413,6 +1401,18 @@ B61159C90EEE9A140029FEA3 /* Select_ROMs.png in Resources */, B61159CB0EEE9A1E0029FEA3 /* Sound.png in Resources */, B631BA0F1025878600BE1EE1 /* opus.rom in Resources */, + B665EE031052A29F00FCFED8 /* Debugger.xib in Resources */, + B665EE081052A34700FCFED8 /* JoystickConfiguration.xib in Resources */, + B665EE0B1052A39000FCFED8 /* Keyboard.xib in Resources */, + B665EE101052A3BD00FCFED8 /* LoadBinary.xib in Resources */, + B665EE131052A3DC00FCFED8 /* MemoryBrowser.xib in Resources */, + B665EE161052A40000FCFED8 /* PokeFinder.xib in Resources */, + B665EE191052A41F00FCFED8 /* Preferences.xib in Resources */, + B665EE1C1052A43900FCFED8 /* Rollback.xib in Resources */, + B665EE1F1052A45200FCFED8 /* SaveBinary.xib in Resources */, + B665EE221052A4F200FCFED8 /* MainMenu.xib in Resources */, + B665EE251052A51B00FCFED8 /* TapeBrowser.xib in Resources */, + B665EE281052A53C00FCFED8 /* SavePanelAccessoryView.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; Added: trunk/fuse/fusepb/xibs/Debugger.xib =================================================================== --- trunk/fuse/fusepb/xibs/Debugger.xib (rev 0) +++ trunk/fuse/fusepb/xibs/Debugger.xib 2009-09-05 14:15:58 UTC (rev 625) @@ -0,0 +1,3688 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00"> + <data> + <int key="IBDocument.SystemTarget">1060</int> + <string key="IBDocument.SystemVersion">10A432</string> + <string key="IBDocument.InterfaceBuilderVersion">732</string> + <string key="IBDocument.AppKitVersion">1038</string> + <string key="IBDocument.HIToolboxVersion">437.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="NS.object.0">732</string> + </object> + <array class="NSMutableArray" key="IBDocument.EditedObjectIDs"> + <integer value="5"/> + </array> + <array key="IBDocument.PluginDependencies"> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </array> + <dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/> + <array class="NSMutableArray" key="IBDocument.RootObjects" id="498926979"> + <object class="NSCustomObject" id="316183168"> + <string key="NSClassName">DebuggerController</string> + </object> + <object class="NSCustomObject" id="839462725"> + <string key="NSClassName">FirstResponder</string> + </object> + <object class="NSCustomObject" id="1035351794"> + <string key="NSClassName">NSApplication</string> + </object> + <object class="NSWindowTemplate" id="930661414"> + <int key="NSWindowStyleMask">3</int> + <int key="NSWindowBacking">2</int> + <string key="NSWindowRect">{{41, 128}, {788, 596}}</string> + <int key="NSWTFlags">-260571136</int> + <string key="NSWindowTitle">Debugger</string> + <string key="NSWindowClass">NSPanel</string> + <object class="NSMutableString" key="NSViewClass"> + <characters key="NS.bytes">View</characters> + </object> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMinSize">{213, 107}</string> + <object class="NSView" key="NSWindowView" id="233491278"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">256</int> + <array class="NSMutableArray" key="NSSubviews"> + <object class="NSScrollView" id="78101936"> + <reference key="NSNextResponder" ref="233491278"/> + <int key="NSvFlags">274</int> + <array class="NSMutableArray" key="NSSubviews"> + <object class="NSClipView" id="781146691"> + <reference key="NSNextResponder" ref="78101936"/> + <int key="NSvFlags">2304</int> + <array class="NSMutableArray" key="NSSubviews"> + <object class="NSTableView" id="613070571"> + <reference key="NSNextResponder" ref="781146691"/> + <int key="NSvFlags">256</int> + <string key="NSFrameSize">{165, 348}</string> + <reference key="NSSuperview" ref="781146691"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTableHeaderView" key="NSHeaderView" id="633630688"> + <reference key="NSNextResponder" ref="716506965"/> + <int key="NSvFlags">256</int> + <string key="NSFrameSize">{165, 17}</string> + <reference key="NSSuperview" ref="716506965"/> + <reference key="NSTableView" ref="613070571"/> + </object> + <object class="_NSCornerView" key="NSCornerView" id="391632127"> + <reference key="NSNextResponder" ref="78101936"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{-26, 0}, {16, 17}}</string> + <reference key="NSSuperview" ref="78101936"/> + </object> + <array class="NSMutableArray" key="NSTableColumns"> + <object class="NSTableColumn" id="747841639"> + <string key="NSIdentifier">address</string> + <double key="NSWidth">51</double> + <double key="NSMinWidth">40</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">Address</string> + <object class="NSFont" key="NSSupport" id="500630716"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">11</double> + <int key="NSfFlags">16</int> + </object> + <object class="NSColor" key="NSBackgroundColor" id="291063777"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes> + </object> + <object class="NSColor" key="NSTextColor" id="27500870"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">headerTextColor</string> + <object class="NSColor" key="NSColor" id="669404927"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> + </object> + </object> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="144077294"> + <int key="NSCellFlags">338820672</int> + <int key="NSCellFlags2">1024</int> + <object class="NSFont" key="NSSupport" id="895397819"> + <string key="NSName">Monaco</string> + <double key="NSSize">12</double> + <int key="NSfFlags">16</int> + </object> + <reference key="NSControlView" ref="613070571"/> + <object class="NSColor" key="NSBackgroundColor" id="282309020"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + </object> + <object class="NSColor" key="NSTextColor" id="773964941"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlTextColor</string> + <reference key="NSColor" ref="669404927"/> + </object> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="613070571"/> + </object> + <object class="NSTableColumn" id="499536533"> + <string key="NSIdentifier">instruction</string> + <double key="NSWidth">107.55599975585938</double> + <double key="NSMinWidth">65.555999755859375</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">Instruction</string> + <reference key="NSSupport" ref="500630716"/> + <reference key="NSBackgroundColor" ref="291063777"/> + <reference key="NSTextColor" ref="27500870"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="81904068"> + <int key="NSCellFlags">338820672</int> + <int key="NSCellFlags2">1024</int> + <reference key="NSSupport" ref="895397819"/> + <reference key="NSControlView" ref="613070571"/> + <reference key="NSBackgroundColor" ref="282309020"/> + <reference key="NSTextColor" ref="773964941"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="613070571"/> + </object> + </array> + <double key="NSIntercellSpacingWidth">3</double> + <double key="NSIntercellSpacingHeight">2</double> + <reference key="NSBackgroundColor" ref="282309020"/> + <object class="NSColor" key="NSGridColor" id="656669572"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">gridColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC41AA</bytes> + </object> + </object> + <double key="NSRowHeight">15</double> + <int key="NSTvFlags">-1027604480</int> + <reference key="NSDelegate"/> + <reference key="NSDataSource"/> + <int key="NSGridStyleMask">1</int> + <int key="NSColumnAutoresizingStyle">4</int> + <int key="NSDraggingSourceMaskForLocal">15</int> + <int key="NSDraggingSourceMaskForNonLocal">0</int> + <bool key="NSAllowsTypeSelect">YES</bool> + <int key="NSTableViewDraggingDestinationStyle">0</int> + </object> + </array> + <string key="NSFrame">{{1, 17}, {165, 348}}</string> + <reference key="NSSuperview" ref="78101936"/> + <reference key="NSNextKeyView" ref="613070571"/> + <reference key="NSDocView" ref="613070571"/> + <object class="NSColor" key="NSBGColor" id="998664178"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlBackgroundColor</string> + <object class="NSColor" key="NSColor" id="360720273"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> + </object> + </object> + <int key="NScvFlags">4</int> + </object> + <object class="NSScroller" id="156151064"> + <reference key="NSNextResponder" ref="78101936"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{-30, 17}, {15, 316}}</string> + <reference key="NSSuperview" ref="78101936"/> + <reference key="NSTarget" ref="78101936"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">0.99473685026168823</double> + </object> + <object class="NSScroller" id="278599292"> + <reference key="NSNextResponder" ref="78101936"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{-100, -100}, {150, 15}}</string> + <reference key="NSSuperview" ref="78101936"/> + <int key="NSsFlags">1</int> + <reference key="NSTarget" ref="78101936"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">0.99230766296386719</double> + </object> + <object class="NSClipView" id="716506965"> + <reference key="NSNextResponder" ref="78101936"/> + <int key="NSvFlags">2304</int> + <array class="NSMutableArray" key="NSSubviews"> + <reference ref="633630688"/> + </array> + <string key="NSFrame">{{1, 0}, {165, 17}}</string> + <reference key="NSSuperview" ref="78101936"/> + <reference key="NSNextKeyView" ref="633630688"/> + <reference key="NSDocView" ref="633630688"/> + <reference key="NSBGColor" ref="998664178"/> + <int key="NScvFlags">4</int> + </object> + <reference ref="391632127"/> + </array> + <string key="NSFrame">{{258, 188}, {167, 366}}</string> + <reference key="NSSuperview" ref="233491278"/> + <reference key="NSNextKeyView" ref="781146691"/> + <int key="NSsFlags">530</int> + <reference key="NSVScroller" ref="156151064"/> + <reference key="NSHScroller" ref="278599292"/> + <reference key="NSContentView" ref="781146691"/> + <reference key="NSHeaderClipView" ref="716506965"/> + <reference key="NSCornerView" ref="391632127"/> + <bytes key="NSScrollAmts">QSAAAEEgAABBiAAAQYgAAA</bytes> + </object> + <object class="NSTextField" id="375303057"> + <reference key="NSNextResponder" ref="233491278"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{185, 188}, {65, 20}}</string> + <reference key="NSSuperview" ref="233491278"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="1063810329"> + <int key="NSCellFlags">-2072904127</int> + <int key="NSCellFlags2">4195328</int> + <string key="NSContents"/> + <object class="NSFont" key="NSSupport" id="234635903"> + <string key="NSName">Monaco</string> + <double key="NSSize">11</double> + <int key="NSfFlags">16</int> + </object> + <reference key="NSControlView" ref="375303057"/> + <bool key="NSDrawsBackground">YES</bool> + <object class="NSColor" key="NSBackgroundColor" id="418975486"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textBackgroundColor</string> + <reference key="NSColor" ref="282309020"/> + </object> + <object class="NSColor" key="NSTextColor" id="1005353692"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textColor</string> + <reference key="NSColor" ref="669404927"/> + </object> + </object> + </object> + <object class="NSTextField" id="633875962"> + <reference key="NSNextResponder" ref="233491278"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{187, 207}, {60, 16}}</string> + <reference key="NSSuperview" ref="233491278"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="213989840"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">4194304</int> + <string type="base64-UTF8" key="NSContents">U1o1SDNQTkMKA</string> + <reference key="NSSupport" ref="234635903"/> + <reference key="NSControlView" ref="633875962"/> + <object class="NSColor" key="NSBackgroundColor" id="359607598"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlColor</string> + <reference key="NSColor" ref="360720273"/> + </object> + <reference key="NSTextColor" ref="773964941"/> + </object> + </object> + <object class="NSTextField" id="543701996"> + <reference key="NSNextResponder" ref="233491278"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{20, 60}, {659, 22}}</string> + <reference key="NSSuperview" ref="233491278"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="215574654"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">1024</int> + <string key="NSContents"/> + <object class="NSFont" key="NSSupport"> + <string key="NSName">Monaco</string> + <double key="NSSize">13</double> + <int key="NSfFlags">16</int> + </object> + <reference key="NSControlView" ref="543701996"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="418975486"/> + <reference key="NSTextColor" ref="1005353692"/> + </object> + </object> + <object class="NSButton" id="169765289"> + <reference key="NSNextResponder" ref="233491278"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{681, 52}, {93, 32}}</string> + <reference key="NSSuperview" ref="233491278"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="733809501"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">137887744</int> + <string key="NSContents">Evaluate</string> + <object class="NSFont" key="NSSupport" id="149379105"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">13</double> + <int key="NSfFlags">1044</int> + </object> + <reference key="NSControlView" ref="169765289"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">1</int> + <object class="NSFont" key="NSAlternateImage" id="223253359"> + <string key="NSName">Helvetica</string> + <double key="NSSize">13</double> + <int key="NSfFlags">16</int> + </object> + <string key="NSAlternateContents"/> + <string type="base64-UTF8" key="NSKeyEquivalent">DQ</string> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSButton" id="885608672"> + <reference key="NSNextResponder" ref="233491278"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{14, 12}, {110, 32}}</string> + <reference key="NSSuperview" ref="233491278"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="705682210"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">137887744</int> + <string key="NSContents">Single Step</string> + <reference key="NSSupport" ref="149379105"/> + <reference key="NSControlView" ref="885608672"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">1</int> + <reference key="NSAlternateImage" ref="223253359"/> + <object class="NSMutableString" key="NSAlternateContents"> + <characters key="NS.bytes"/> + </object> + <object class="NSMutableString" key="NSKeyEquivalent"> + <characters key="NS.bytes"/> + </object> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSButton" id="748179110"> + <reference key="NSNextResponder" ref="233491278"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{124, 12}, {98, 32}}</string> + <reference key="NSSuperview" ref="233491278"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="59264271"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">137887744</int> + <string key="NSContents">Continue</string> + <reference key="NSSupport" ref="149379105"/> + <reference key="NSControlView" ref="748179110"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">1</int> + <reference key="NSAlternateImage" ref="223253359"/> + <object class="NSMutableString" key="NSAlternateContents"> + <characters key="NS.bytes"/> + </object> + <object class="NSMutableString" key="NSKeyEquivalent"> + <characters key="NS.bytes"/> + </object> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSButton" id="558783023"> + <reference key="NSNextResponder" ref="233491278"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{222, 12}, {84, 32}}</string> + <reference key="NSSuperview" ref="233491278"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="763191847"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">137887744</int> + <string key="NSContents">Break</string> + <reference key="NSSupport" ref="149379105"/> + <reference key="NSControlView" ref="558783023"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">1</int> + <reference key="NSAlternateImage" ref="223253359"/> + <object class="NSMutableString" key="NSAlternateContents"> + <characters key="NS.bytes"/> + </object> + <object class="NSMutableString" key="NSKeyEquivalent"> + <characters key="NS.bytes"/> + </object> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSScrollView" id="456741639"> + <reference key="NSNextResponder" ref="233491278"/> + <int key="NSvFlags">256</int> + <array class="NSMutableArray" key="NSSubviews"> + <object class="NSClipView" id="826280046"> + <reference key="NSNextResponder" ref="456741639"/> + <int key="NSvFlags">2304</int> + <array class="NSMutableArray" key="NSSubviews"> + <object class="NSTableView" id="99504781"> + <reference key="NSNextResponder" ref="826280046"/> + <int key="NSvFlags">256</int> + <string key="NSFrameSize">{746, 74}</string> + <reference key="NSSuperview" ref="826280046"/> + <int key="NSTag">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSTableHeaderView" key="NSHeaderView" id="963087691"> + <reference key="NSNextResponder" ref="266185891"/> + <int key="NSvFlags">256</int> + <string key="NSFrameSize">{746, 17}</string> + <reference key="NSSuperview" ref="266185891"/> + <reference key="NSTableView" ref="99504781"/> + </object> + <object class="_NSCornerView" key="NSCornerView" id="421788493"> + <reference key="NSNextResponder" ref="456741639"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{-26, 0}, {16, 17}}</string> + <reference key="NSSuperview" ref="456741639"/> + </object> + <array class="NSMutableArray" key="NSTableColumns"> + <object class="NSTableColumn" id="653002644"> + <string key="NSIdentifier">id</string> + <double key="NSWidth">40</double> + <double key="NSMinWidth">40</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">ID</string> + <reference key="NSSupport" ref="500630716"/> + <object class="NSColor" key="NSBackgroundColor" id="365606795"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes> + </object> + <reference key="NSTextColor" ref="27500870"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="41023422"> + <int key="NSCellFlags">338820672</int> + <int key="NSCellFlags2">1024</int> + <reference key="NSSupport" ref="895397819"/> + <reference key="NSControlView" ref="99504781"/> + <reference key="NSBackgroundColor" ref="282309020"/> + <reference key="NSTextColor" ref="773964941"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="99504781"/> + </object> + <object class="NSTableColumn" id="898263077"> + <string key="NSIdentifier">type</string> + <double key="NSWidth">79</double> + <double key="NSMinWidth">40</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">Type</string> + <reference key="NSSupport" ref="500630716"/> + <reference key="NSBackgroundColor" ref="365606795"/> + <reference key="NSTextColor" ref="27500870"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="43065045"> + <int key="NSCellFlags">338820672</int> + <int key="NSCellFlags2">1024</int> + <reference key="NSSupport" ref="895397819"/> + <reference key="NSControlView" ref="99504781"/> + <reference key="NSBackgroundColor" ref="282309020"/> + <reference key="NSTextColor" ref="773964941"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="99504781"/> + </object> + <object class="NSTableColumn" id="963822215"> + <string key="NSIdentifier">value</string> + <double key="NSWidth">64</double> + <double key="NSMinWidth">10</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">Value</string> + <reference key="NSSupport" ref="500630716"/> + <object class="NSColor" key="NSBackgroundColor" id="935589818"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">headerColor</string> + <reference key="NSColor" ref="282309020"/> + </object> + <reference key="NSTextColor" ref="27500870"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="600129512"> + <int key="NSCellFlags">338820672</int> + <int key="NSCellFlags2">1024</int> + <object class="NSFont" key="NSSupport" id="600134497"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">12</double> + <int key="NSfFlags">16</int> + </object> + <reference key="NSControlView" ref="99504781"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="998664178"/> + <reference key="NSTextColor" ref="773964941"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="99504781"/> + </object> + <object class="NSTableColumn" id="279203501"> + <string key="NSIdentifier">ignore</string> + <double key="NSWidth">67</double> + <double key="NSMinWidth">10</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">Ignore</string> + <reference key="NSSupport" ref="500630716"/> + <reference key="NSBackgroundColor" ref="935589818"/> + <reference key="NSTextColor" ref="27500870"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="37966189"> + <int key="NSCellFlags">338820672</int> + <int key="NSCellFlags2">1024</int> + <reference key="NSSupport" ref="600134497"/> + <reference key="NSControlView" ref="99504781"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="998664178"/> + <reference key="NSTextColor" ref="773964941"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="99504781"/> + </object> + <object class="NSTableColumn" id="259522712"> + <string key="NSIdentifier">life</string> + <double key="NSWidth">114.21697998046875</double> + <double key="NSMinWidth">23.216999053955078</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">Life</string> + <reference key="NSSupport" ref="500630716"/> + <reference key="NSBackgroundColor" ref="935589818"/> + <reference key="NSTextColor" ref="27500870"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="614495871"> + <int key="NSCellFlags">338820672</int> + <int key="NSCellFlags2">1024</int> + <reference key="NSSupport" ref="600134497"/> + <reference key="NSControlView" ref="99504781"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="998664178"/> + <reference key="NSTextColor" ref="773964941"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="99504781"/> + </object> + <object class="NSTableColumn" id="820739807"> + <string key="NSIdentifier">condition</string> + <double key="NSWidth">364.17401123046875</double> + <double key="NSMinWidth">10</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">Condition</string> + <object class="NSFont" key="NSSupport" id="26"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">11</double> + <int key="NSfFlags">3100</int> + </object> + <reference key="NSBackgroundColor" ref="935589818"/> + <reference key="NSTextColor" ref="27500870"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="163835329"> + <int key="NSCellFlags">338820672</int> + <int key="NSCellFlags2">1024</int> + <reference key="NSSupport" ref="895397819"/> + <reference key="NSControlView" ref="99504781"/> + <reference key="NSBackgroundColor" ref="998664178"/> + <reference key="NSTextColor" ref="773964941"/> + </object> + <int key="NSResizingMask">3</int> + <bool key="NSIsResizeable">YES</bool> + <bool key="NSIsEditable">YES</bool> + <reference key="NSTableView" ref="99504781"/> + </object> + </array> + <double key="NSIntercellSpacingWidth">3</double> + <double key="NSIntercellSpacingHeig... [truncated message content] |
From: <fr...@us...> - 2009-09-05 13:38:02
|
Revision: 624 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=624&view=rev Author: fredm Date: 2009-09-05 13:37:56 +0000 (Sat, 05 Sep 2009) Log Message: ----------- Also ignore v3 *.mode1 files. Property Changed: ---------------- trunk/FuseImporter/FuseImporter.xcodeproj/ Property changes on: trunk/FuseImporter/FuseImporter.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.mode1 *.pbxuser *.perspectivev3 + *.mode1* *.pbxuser *.perspectivev3 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-09-05 13:33:28
|
Revision: 623 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=623&view=rev Author: fredm Date: 2009-09-05 13:33:22 +0000 (Sat, 05 Sep 2009) Log Message: ----------- Move to XCode 3.1 as the base version for the project files. Modified Paths: -------------- trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj trunk/audiofile/audiofile.xcodeproj/project.pbxproj trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj Modified: trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj =================================================================== --- trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj 2009-09-05 12:13:59 UTC (rev 622) +++ trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj 2009-09-05 13:33:22 UTC (rev 623) @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 44; + objectVersion = 45; objects = { /* Begin PBXBuildFile section */ @@ -357,7 +357,7 @@ 089C1669FE841209C02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = 2CA326220896AD4900168862 /* Build configuration list for PBXProject "FuseGenerator" */; - compatibilityVersion = "Xcode 3.0"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 089C166AFE841209C02AAC07 /* FuseGenerator */; projectDirPath = ""; @@ -509,30 +509,29 @@ 2CA326230896AD4900168862 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64"; DEAD_CODE_STRIPPING = YES; GCC_C_LANGUAGE_STANDARD = c99; - GCC_VERSION = 4.2; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; PREBINDING = NO; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; + SDKROOT = macosx10.5; }; name = Debug; }; 2CA326240896AD4900168862 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEAD_CODE_STRIPPING = YES; GCC_C_LANGUAGE_STANDARD = c99; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; PREBINDING = NO; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; + SDKROOT = macosx10.5; }; name = Release; }; Modified: trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj =================================================================== --- trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2009-09-05 12:13:59 UTC (rev 622) +++ trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2009-09-05 13:33:22 UTC (rev 623) @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 45; objects = { /* Begin PBXBuildFile section */ @@ -332,7 +332,7 @@ 089C1669FE841209C02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = B6B0E30008CC65D5001D8411 /* Build configuration list for PBXProject "FuseImporter" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 089C166AFE841209C02AAC07 /* FuseImporter */; projectDirPath = ""; @@ -545,34 +545,31 @@ B6B0E30108CC65D5001D8411 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; }; name = Development; }; B6B0E30208CC65D5001D8411 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; }; name = Deployment; }; B6B0E30308CC65D5001D8411 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; }; name = Default; }; Modified: trunk/audiofile/audiofile.xcodeproj/project.pbxproj =================================================================== --- trunk/audiofile/audiofile.xcodeproj/project.pbxproj 2009-09-05 12:13:59 UTC (rev 622) +++ trunk/audiofile/audiofile.xcodeproj/project.pbxproj 2009-09-05 13:33:22 UTC (rev 623) @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 45; objects = { /* Begin PBXBuildFile section */ @@ -303,7 +303,7 @@ 000000000000000016601A90 /* Project object */ = { isa = PBXProject; buildConfigurationList = B62395470C1CF4F8003B8E87 /* Build configuration list for PBXProject "audiofile" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 0000000000000000166142F0; projectDirPath = ""; @@ -392,42 +392,39 @@ B62395480C1CF4F8003B8E87 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = NO; FRAMEWORK_VERSION = 0.2.6; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - MACOSX_DEPLOYMENT_TARGET = 10.4; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + MACOSX_DEPLOYMENT_TARGET = 10.5; + SDKROOT = macosx10.5; }; name = Development; }; B62395490C1CF4F8003B8E87 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; FRAMEWORK_VERSION = 0.2.6; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; MACOSX_DEPLOYMENT_TARGET = 10.5; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; }; name = Deployment; }; B623954A0C1CF4F8003B8E87 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = NO; FRAMEWORK_VERSION = 0.2.6; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - MACOSX_DEPLOYMENT_TARGET = 10.4; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + MACOSX_DEPLOYMENT_TARGET = 10.5; + SDKROOT = macosx10.5; }; name = Default; }; Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj =================================================================== --- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2009-09-05 12:13:59 UTC (rev 622) +++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2009-09-05 13:33:22 UTC (rev 623) @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 45; objects = { /* Begin PBXBuildFile section */ @@ -1316,7 +1316,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; buildConfigurationList = B63319B3086803BA00732AA3 /* Build configuration list for PBXProject "Fuse" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 29B97314FDCFA39411CA2CEA /* Fuse */; projectDirPath = ""; @@ -1691,15 +1691,14 @@ B63319B4086803BA00732AA3 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = YES; GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; YACCFLAGS = "-d"; YACC_GENERATED_FILE_STEM = InputFileStem; ZERO_LINK = YES; @@ -1709,8 +1708,7 @@ B63319B5086803BA00732AA3 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; @@ -1718,7 +1716,7 @@ GCC_DYNAMIC_NO_PIC = YES; GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; YACCFLAGS = "-d"; YACC_GENERATED_FILE_STEM = InputFileStem; ZERO_LINK = NO; @@ -1728,15 +1726,14 @@ B63319B6086803BA00732AA3 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = YES; GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; YACCFLAGS = "-d"; YACC_GENERATED_FILE_STEM = InputFileStem; ZERO_LINK = NO; Modified: trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj =================================================================== --- trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj 2009-09-05 12:13:59 UTC (rev 622) +++ trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj 2009-09-05 13:33:22 UTC (rev 623) @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 45; objects = { /* Begin PBXBuildFile section */ @@ -271,7 +271,7 @@ 000000000000000016410950 /* Project object */ = { isa = PBXProject; buildConfigurationList = B69A010D0A5F3BF500EEA5ED /* Build configuration list for PBXProject "libspectrum" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 0000000000000000164109E0; projectDirPath = ""; @@ -351,34 +351,31 @@ B69A010E0A5F3BF500EEA5ED /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; }; name = Development; }; B69A010F0A5F3BF500EEA5ED /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; }; name = Deployment; }; B69A01100A5F3BF500EEA5ED /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; + SDKROOT = macosx10.5; }; name = Default; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-09-05 13:13:03
|
Revision: 622 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=622&view=rev Author: fredm Date: 2009-09-05 12:13:59 +0000 (Sat, 05 Sep 2009) Log Message: ----------- Remember that libspectrum.h is generated from generate.pl. Now the gcrypt removal sticks. Modified Paths: -------------- trunk/FuseGenerator/generate.pl trunk/FuseImporter/generate.pl trunk/libspectrum/generate.pl trunk/libspectrum/libspectrum.h Modified: trunk/FuseGenerator/generate.pl =================================================================== --- trunk/FuseGenerator/generate.pl 2009-09-05 11:17:43 UTC (rev 621) +++ trunk/FuseGenerator/generate.pl 2009-09-05 12:13:59 UTC (rev 622) @@ -141,8 +141,15 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); +#include <TargetConditionals.h> + +#ifdef TARGET_RT_64_BIT +#define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) +#define GPOINTER_TO_INT(p) ((gint) (glong)(p)) +#else #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) +#endif CODE } Modified: trunk/FuseImporter/generate.pl =================================================================== --- trunk/FuseImporter/generate.pl 2009-09-05 11:17:43 UTC (rev 621) +++ trunk/FuseImporter/generate.pl 2009-09-05 12:13:59 UTC (rev 622) @@ -141,8 +141,15 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); +#include <TargetConditionals.h> + +#ifdef TARGET_RT_64_BIT +#define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) +#define GPOINTER_TO_INT(p) ((gint) (glong)(p)) +#else #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) +#endif CODE } Modified: trunk/libspectrum/generate.pl =================================================================== --- trunk/libspectrum/generate.pl 2009-09-05 11:17:43 UTC (rev 621) +++ trunk/libspectrum/generate.pl 2009-09-05 12:13:59 UTC (rev 622) @@ -141,20 +141,27 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); +#include <TargetConditionals.h> + +#ifdef TARGET_RT_64_BIT +#define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) +#define GPOINTER_TO_INT(p) ((gint) (glong)(p)) +#else #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) +#endif CODE } if( /LIBSPECTRUM_INCLUDE_GCRYPT/ ) { - $_ = "#include <gcrypt.h>\n"; + $_ = ''; } if( /LIBSPECTRUM_SIGNATURE_PARAMETERS/ ) { - $_ = " /* The DSA signature parameters 'r' and 's' */\n gcry_mpi_t r, s;\n"; + $_ = "/* Signature parameters not stored as libgcrypt is not present */\n"; } Modified: trunk/libspectrum/libspectrum.h =================================================================== --- trunk/libspectrum/libspectrum.h 2009-09-05 11:17:43 UTC (rev 621) +++ trunk/libspectrum/libspectrum.h 2009-09-05 12:13:59 UTC (rev 622) @@ -38,8 +38,6 @@ #include <stdlib.h> #include <stdio.h> -#include <TargetConditionals.h> - #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN /* Exclude rarely used stuff from Windows @@ -64,6 +62,7 @@ #define DEPRECATED #endif /* #ifdef __GNUC__ */ + /* Standard typedefs */ #include <stdint.h> @@ -201,6 +200,8 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); +#include <TargetConditionals.h> + #ifdef TARGET_RT_64_BIT #define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) #define GPOINTER_TO_INT(p) ((gint) (glong)(p)) @@ -855,8 +856,7 @@ int WIN32_DLL libspectrum_snap_fuller_box_active( libspectrum_snap *snap ); void WIN32_DLL libspectrum_snap_set_fuller_box_active( libspectrum_snap *snap, int fuller_box_active ); int WIN32_DLL libspectrum_snap_melodik_active( libspectrum_snap *snap ); -void WIN32_DLL libspectrum_snap_set_melodik_active( libspectrum_snap *snap, int - melodik_active ); +void WIN32_DLL libspectrum_snap_set_melodik_active( libspectrum_snap *snap, int melodik_active ); /* * Tape handling routines This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-09-05 11:17:49
|
Revision: 621 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=621&view=rev Author: fredm Date: 2009-09-05 11:17:43 +0000 (Sat, 05 Sep 2009) Log Message: ----------- Use TargetConditionals.h macro rather than possibly gcc only macros. Modified Paths: -------------- trunk/FuseGenerator/libspectrum.h trunk/FuseImporter/libspectrum.h trunk/libspectrum/libspectrum.h Modified: trunk/FuseGenerator/libspectrum.h =================================================================== --- trunk/FuseGenerator/libspectrum.h 2009-09-05 10:44:44 UTC (rev 620) +++ trunk/FuseGenerator/libspectrum.h 2009-09-05 11:17:43 UTC (rev 621) @@ -38,6 +38,8 @@ #include <stdlib.h> #include <stdio.h> +#include <TargetConditionals.h> + #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN /* Exclude rarely used stuff from Windows @@ -200,7 +202,7 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); -#if defined __x86_64__ || defined __ppc64__ +#ifdef TARGET_RT_64_BIT #define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) #define GPOINTER_TO_INT(p) ((gint) (glong)(p)) #else Modified: trunk/FuseImporter/libspectrum.h =================================================================== --- trunk/FuseImporter/libspectrum.h 2009-09-05 10:44:44 UTC (rev 620) +++ trunk/FuseImporter/libspectrum.h 2009-09-05 11:17:43 UTC (rev 621) @@ -38,6 +38,8 @@ #include <stdlib.h> #include <stdio.h> +#include <TargetConditionals.h> + #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN /* Exclude rarely used stuff from Windows @@ -200,7 +202,7 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); -#if defined __x86_64__ || defined __ppc64__ +#ifdef TARGET_RT_64_BIT #define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) #define GPOINTER_TO_INT(p) ((gint) (glong)(p)) #else Modified: trunk/libspectrum/libspectrum.h =================================================================== --- trunk/libspectrum/libspectrum.h 2009-09-05 10:44:44 UTC (rev 620) +++ trunk/libspectrum/libspectrum.h 2009-09-05 11:17:43 UTC (rev 621) @@ -38,6 +38,8 @@ #include <stdlib.h> #include <stdio.h> +#include <TargetConditionals.h> + #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN /* Exclude rarely used stuff from Windows @@ -199,7 +201,7 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); -#if defined __x86_64__ || defined __ppc64__ +#ifdef TARGET_RT_64_BIT #define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) #define GPOINTER_TO_INT(p) ((gint) (glong)(p)) #else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-09-05 10:44:55
|
Revision: 620 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=620&view=rev Author: fredm Date: 2009-09-05 10:44:44 +0000 (Sat, 05 Sep 2009) Log Message: ----------- Add x86_64 target to Universal Binary. This involves: * Drop competition mode RZX and libgcrypt - this is because the feature is rarely used and it is not trivial to make a x86_64 libgcrypt framework along with all the other targets, so I don't think it is worth the effort to retain. Will revisit if someone else makes a suitable framework. * Move to clang as the compiler for all libraries and plugins * Move to llvm-gcc42 as the compiler for Fuse * Switch to NSNumber rather than int where applicable * Move to 10.5 SDK as the target for all binaries * Add a macro to select the appropriate GINT_TO_POINTER/POINTER_TO_GINT implementation per target Modified Paths: -------------- trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj trunk/FuseGenerator/libspectrum.h trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj trunk/FuseImporter/libspectrum.h trunk/README trunk/audiofile/audiofile.xcodeproj/project.pbxproj trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj trunk/fuse/fusepb/nibs/Preferences.nib/designable.nib trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib trunk/fuse/fusepb/resources/Fuse Help/html/preferences.html trunk/fuse/settings.pl trunk/libspectrum/config.h trunk/libspectrum/libspectrum.h trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj Removed Paths: ------------- trunk/libgcrypt/ Property Changed: ---------------- trunk/FuseGenerator/FuseGenerator.xcodeproj/ trunk/FuseImporter/FuseImporter.xcodeproj/ trunk/audiofile/audiofile.xcodeproj/ Property changes on: trunk/FuseGenerator/FuseGenerator.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.pbxuser *.mode1v3 + *.pbxuser *.mode1v3 *.perspectivev3 Modified: trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj =================================================================== --- trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj 2009-09-04 22:58:49 UTC (rev 619) +++ trunk/FuseGenerator/FuseGenerator.xcodeproj/project.pbxproj 2009-09-05 10:44:44 UTC (rev 620) @@ -525,10 +525,10 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; DEAD_CODE_STRIPPING = YES; GCC_C_LANGUAGE_STANDARD = c99; - GCC_VERSION = 4.2; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; PREBINDING = NO; Modified: trunk/FuseGenerator/libspectrum.h =================================================================== --- trunk/FuseGenerator/libspectrum.h 2009-09-04 22:58:49 UTC (rev 619) +++ trunk/FuseGenerator/libspectrum.h 2009-09-05 10:44:44 UTC (rev 620) @@ -200,8 +200,13 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); +#if defined __x86_64__ || defined __ppc64__ +#define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) +#define GPOINTER_TO_INT(p) ((gint) (glong)(p)) +#else #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) +#endif /* Library capabilities */ Property changes on: trunk/FuseImporter/FuseImporter.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.mode1 *.pbxuser + *.mode1 *.pbxuser *.perspectivev3 Modified: trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj =================================================================== --- trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2009-09-04 22:58:49 UTC (rev 619) +++ trunk/FuseImporter/FuseImporter.xcodeproj/project.pbxproj 2009-09-05 10:44:44 UTC (rev 620) @@ -545,34 +545,34 @@ B6B0E30108CC65D5001D8411 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; DEBUG_INFORMATION_FORMAT = dwarf; - GCC_VERSION = 4.0; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; }; name = Development; }; B6B0E30208CC65D5001D8411 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; - GCC_VERSION = 4.0; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; }; name = Deployment; }; B6B0E30308CC65D5001D8411 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; DEBUG_INFORMATION_FORMAT = dwarf; - GCC_VERSION = 4.0; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; }; name = Default; }; Modified: trunk/FuseImporter/libspectrum.h =================================================================== --- trunk/FuseImporter/libspectrum.h 2009-09-04 22:58:49 UTC (rev 619) +++ trunk/FuseImporter/libspectrum.h 2009-09-05 10:44:44 UTC (rev 620) @@ -200,8 +200,13 @@ #define g_array_index(a,t,i) (*(((t*)a->data)+i)) GArray* WIN32_DLL g_array_set_size( GArray *array, guint length ); +#if defined __x86_64__ || defined __ppc64__ +#define GINT_TO_POINTER(i) ((gpointer) (glong)(i)) +#define GPOINTER_TO_INT(p) ((gint) (glong)(p)) +#else #define GINT_TO_POINTER(i) ((gpointer) (i)) #define GPOINTER_TO_INT(p) ((gint) (p)) +#endif /* Library capabilities */ Modified: trunk/README =================================================================== --- trunk/README 2009-09-04 22:58:49 UTC (rev 619) +++ trunk/README 2009-09-05 10:44:44 UTC (rev 620) @@ -21,9 +21,6 @@ cd audiofile xcodebuild -configuration Deployment cd .. -cd libgcrypt -xcodebuild -configuration Deployment -cd .. cd libspectrum xcodebuild -configuration Deployment cd .. Property changes on: trunk/audiofile/audiofile.xcodeproj ___________________________________________________________________ Modified: svn:ignore - *.mode1 *.pbxuser + *.mode1 *.pbxuser *.perspectivev3 Modified: trunk/audiofile/audiofile.xcodeproj/project.pbxproj =================================================================== --- trunk/audiofile/audiofile.xcodeproj/project.pbxproj 2009-09-04 22:58:49 UTC (rev 619) +++ trunk/audiofile/audiofile.xcodeproj/project.pbxproj 2009-09-05 10:44:44 UTC (rev 620) @@ -392,50 +392,48 @@ B62395480C1CF4F8003B8E87 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = NO; FRAMEWORK_VERSION = 0.2.6; - GCC_VERSION = 4.0; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; MACOSX_DEPLOYMENT_TARGET = 10.4; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; }; name = Development; }; B62395490C1CF4F8003B8E87 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; FRAMEWORK_VERSION = 0.2.6; - GCC_VERSION = 4.0; - MACOSX_DEPLOYMENT_TARGET = 10.4; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + MACOSX_DEPLOYMENT_TARGET = 10.5; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; }; name = Deployment; }; B623954A0C1CF4F8003B8E87 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = NO; FRAMEWORK_VERSION = 0.2.6; - GCC_VERSION = 4.0; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; MACOSX_DEPLOYMENT_TARGET = 10.4; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; }; name = Default; }; B62395BD0C1CF586003B8E87 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; COPY_PHASE_STRIP = NO; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1.2; @@ -444,7 +442,6 @@ GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_CONFIG_H, NDEBUG, @@ -477,8 +474,6 @@ B62395BE0C1CF586003B8E87 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; COPY_PHASE_STRIP = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1.2; @@ -486,7 +481,6 @@ GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_CONFIG_H, NDEBUG, @@ -519,14 +513,11 @@ B62395BF0C1CF586003B8E87 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1.2; FRAMEWORK_VERSION = 0.2.6; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_CONFIG_H, NDEBUG, Modified: trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj =================================================================== --- trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2009-09-04 22:58:49 UTC (rev 619) +++ trunk/fuse/fusepb/Fuse.xcodeproj/project.pbxproj 2009-09-05 10:44:44 UTC (rev 620) @@ -29,7 +29,6 @@ B61F459D09121DF100C8096C /* tape_plus2a.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C4060765984000DE7E81 /* tape_plus2a.szx */; }; B61F459F09121DF100C8096C /* tape_scorpion.szx in CopyFiles */ = {isa = PBXBuildFile; fileRef = B650C40A0765988200DE7E81 /* tape_scorpion.szx */; }; B61F45A209121DF100C8096C /* spectrum.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = F541C04303963A9F01C2A5B9 /* spectrum.framework */; }; - B61F45A609121DF100C8096C /* gcrypt.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6BA1A8B04E4F3290017354F /* gcrypt.framework */; }; B61F45FF09121DF100C8096C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; B61F460009121DF100C8096C /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = F5F291060396932B01730B00 /* Credits.html */; }; B61F460109121DF100C8096C /* Debugger.nib in Resources */ = {isa = PBXBuildFile; fileRef = B62E1BC303E298B200A80002 /* Debugger.nib */; }; @@ -162,7 +161,6 @@ B61F469B09121DF100C8096C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; B61F469C09121DF100C8096C /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; B61F469D09121DF100C8096C /* spectrum.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F541C04303963A9F01C2A5B9 /* spectrum.framework */; }; - B61F46A109121DF100C8096C /* gcrypt.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6BA1A8B04E4F3290017354F /* gcrypt.framework */; }; B61F46A409121DF100C8096C /* FuseImporter.mdimporter in CopyFiles */ = {isa = PBXBuildFile; fileRef = B64FEA96084F8EC300879389 /* FuseImporter.mdimporter */; }; B6251C3E0C2EB24500BD5543 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6251C3D0C2EB24500BD5543 /* QuartzCore.framework */; }; B62B19E10DD31DF500D42AAF /* scalers16.c in Sources */ = {isa = PBXBuildFile; fileRef = B62B19E00DD31DF500D42AAF /* scalers16.c */; }; @@ -296,7 +294,6 @@ files = ( B6FA75C60C1D76A5007F5A10 /* audiofile.framework in CopyFiles */, B61F45A209121DF100C8096C /* spectrum.framework in CopyFiles */, - B61F45A609121DF100C8096C /* gcrypt.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -488,7 +485,6 @@ B6B076B00B59FE9A00D4F95C /* Emulator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Emulator.h; sourceTree = "<group>"; }; B6B076B10B59FE9A00D4F95C /* Emulator.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Emulator.m; sourceTree = "<group>"; }; B6B99F890B5F798700EE408F /* cocoadisplay.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = cocoadisplay.m; sourceTree = "<group>"; }; - B6BA1A8B04E4F3290017354F /* gcrypt.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = gcrypt.framework; path = ../../libgcrypt/build/Deployment/gcrypt.framework; sourceTree = SOURCE_ROOT; }; B6BA1A9404E4F88F0017354F /* uijoystick.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = uijoystick.h; path = ../ui/uijoystick.h; sourceTree = SOURCE_ROOT; }; B6BA6F0207B1E04200E44C8D /* Preferences.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Preferences.nib; path = nibs/Preferences.nib; sourceTree = "<group>"; }; B6C3479F044B091100E1BBA7 /* ts2068.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ts2068.png; path = resources/ts2068.png; sourceTree = SOURCE_ROOT; }; @@ -662,7 +658,6 @@ B61F469B09121DF100C8096C /* Foundation.framework in Frameworks */, B61F469C09121DF100C8096C /* AppKit.framework in Frameworks */, B61F469D09121DF100C8096C /* spectrum.framework in Frameworks */, - B61F46A109121DF100C8096C /* gcrypt.framework in Frameworks */, B64E2A170A6534A3006863D9 /* Carbon.framework in Frameworks */, B6A6F0EE0B3D5F9E000B88E9 /* CoreAudio.framework in Frameworks */, B6A6F0F30B3D602F000B88E9 /* AudioUnit.framework in Frameworks */, @@ -696,7 +691,6 @@ isa = PBXGroup; children = ( B6FA759C0C1D7507007F5A10 /* audiofile.framework */, - B6BA1A8B04E4F3290017354F /* gcrypt.framework */, F541C04303963A9F01C2A5B9 /* spectrum.framework */, ); name = "Linked Frameworks"; @@ -1697,13 +1691,13 @@ B63319B4086803BA00732AA3 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = YES; - GCC_VERSION = 4.0; + GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; YACCFLAGS = "-d"; @@ -1715,14 +1709,14 @@ B63319B5086803BA00732AA3 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; DEPLOYMENT_POSTPROCESSING = YES; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = YES; - GCC_VERSION = 4.0; + GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; YACCFLAGS = "-d"; @@ -1734,13 +1728,13 @@ B63319B6086803BA00732AA3 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = YES; - GCC_VERSION = 4.0; + GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; SDKROOT = /Developer/SDKs/MacOSX10.5.sdk; YACCFLAGS = "-d"; Modified: trunk/fuse/fusepb/nibs/Preferences.nib/designable.nib =================================================================== --- trunk/fuse/fusepb/nibs/Preferences.nib/designable.nib 2009-09-04 22:58:49 UTC (rev 619) +++ trunk/fuse/fusepb/nibs/Preferences.nib/designable.nib 2009-09-05 10:44:44 UTC (rev 620) @@ -1,16 +1,20 @@ <?xml version="1.0" encoding="UTF-8"?> -<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03"> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">9J61</string> - <string key="IBDocument.InterfaceBuilderVersion">677</string> - <string key="IBDocument.AppKitVersion">949.46</string> - <string key="IBDocument.HIToolboxVersion">353.00</string> + <string key="IBDocument.SystemVersion">10A432</string> + <string key="IBDocument.InterfaceBuilderVersion">732</string> + <string key="IBDocument.AppKitVersion">1038</string> + <string key="IBDocument.HIToolboxVersion">437.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="NS.object.0">732</string> + </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="1347"/> <integer value="1446"/> <integer value="6"/> - <integer value="1347"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -18,7 +22,7 @@ </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys" id="0"> <bool key="EncodedWithXMLCoder">YES</bool> </object> <object class="NSMutableArray" key="dict.values"> @@ -56,7 +60,7 @@ <int key="NSToolbarSizeMode">1</int> <object class="NSMutableDictionary" key="NSToolbarIBIdentifiedItems"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>1D3C684F-4B0A-4828-ADF3-E4106D08C1CD</string> <string>2C4BF74A-9900-4A0E-A2FC-50ADDA64B166</string> @@ -269,11 +273,9 @@ <reference ref="943816128"/> <reference ref="141636598"/> </object> - <object class="NSMutableArray" key="NSToolbarIBSelectableItems"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <reference key="NSToolbarIBSelectableItems" ref="0"/> </object> - <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMinSize">{213, 107}</string> <object class="NSView" key="NSWindowView" id="41054612"> <reference key="NSNextResponder"/> @@ -283,7 +285,7 @@ </object> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> <string key="NSMinSize">{213, 184}</string> - <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSFrameAutosaveName"/> </object> <object class="NSCustomView" id="869768206"> @@ -303,7 +305,7 @@ <string key="NSContents">Confirm actions</string> <object class="NSFont" key="NSSupport" id="447006373"> <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.300000e+01</double> + <double key="NSSize">13</double> <int key="NSfFlags">1044</int> </object> <reference key="NSControlView" ref="382408068"/> @@ -483,7 +485,7 @@ <object class="NSNumberFormatter" key="NSFormatter" id="815687010"> <object class="NSMutableDictionary" key="NS.attributes"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>allowsFloats</string> <string>decimalSeparator</string> @@ -498,14 +500,14 @@ </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="1" id="9"/> + <integer value="1"/> <string>.</string> <integer value="1000"/> <string>,</string> - <reference ref="9"/> - <reference ref="9"/> + <integer value="1"/> + <integer value="1"/> <string>-#,##0.00</string> - <integer value="3" id="11"/> + <integer value="3"/> <string>#,##0%</string> <boolean value="YES"/> </object> @@ -516,11 +518,9 @@ <nil key="NS.negativeattrs"/> <object class="NSAttributedString" key="NS.zero"> <string key="NSString">0</string> - <object class="NSDictionary" key="NSAttributes" id="625184385"> + <object class="NSDictionary" key="NSAttributes" id="833979005"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <reference key="dict.sortedKeys" ref="0"/> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> </object> @@ -531,9 +531,9 @@ </object> <object class="NSAttributedString" key="NS.nan"> <string key="NSString">NaN</string> - <reference key="NSAttributes" ref="625184385"/> + <reference key="NSAttributes" ref="833979005"/> </object> - <reference key="NS.min" ref="9"/> + <integer value="1" key="NS.min"/> <object class="NSDecimalNumberPlaceholder" key="NS.max" id="648108068"> <int key="NS.exponent">0</int> <int key="NS.length">0</int> @@ -550,12 +550,13 @@ <bool key="NS.allowsfloats">YES</bool> </object> <reference key="NSControlView" ref="418457192"/> - <double key="NSTitleWidth">1.610000e+02</double> + <double key="NSTitleWidth">161</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> <string key="NSContents">Emulation speed:</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="418457192"/> </object> </object> <object class="NSFormCell" id="319020855"> @@ -565,39 +566,39 @@ <object class="NSNumberFormatter" key="NSFormatter" id="657991658"> <object class="NSMutableDictionary" key="NS.attributes"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>allowsFloats</string> <string>formatterBehavior</string> + <string>locale</string> <string>maximum</string> <string>minimum</string> <string>numberStyle</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="9"/> - <integer value="1040" id="736002568"/> - <real value="5.000000e+01" id="754928329"/> - <reference ref="9"/> - <integer value="0" id="8"/> + <integer value="1"/> + <integer value="1040"/> + <object class="NSLocale" id="514081757"> + <string key="NS.identifier"/> + </object> + <real value="50"/> + <integer value="1"/> + <integer value="0"/> </object> </object> <string key="NS.positiveformat">#</string> <string key="NS.negativeformat">#</string> <nil key="NS.positiveattrs"/> <nil key="NS.negativeattrs"/> - <object class="NSAttributedString" key="NS.zero"> - <nil key="NSString"/> - </object> - <object class="NSAttributedString" key="NS.nil"> - <nil key="NSString"/> - </object> + <nil key="NS.zero"/> + <nil key="NS.nil"/> <object class="NSAttributedString" key="NS.nan"> <string key="NSString">NaN</string> - <reference key="NSAttributes" ref="625184385"/> + <reference key="NSAttributes" ref="833979005"/> </object> - <reference key="NS.min" ref="9"/> - <reference key="NS.max" ref="754928329"/> + <integer value="1" key="NS.min"/> + <real value="50" key="NS.max"/> <object class="NSDecimalNumberHandler" key="NS.rounding"> <int key="NS.roundingmode">3</int> <bool key="NS.raise.overflow">YES</bool> @@ -607,17 +608,18 @@ <string key="NS.decimal">.</string> <string key="NS.thousand">,</string> <bool key="NS.hasthousands">NO</bool> - <bool key="NS.localized">YES</bool> + <bool key="NS.localized">NO</bool> <bool key="NS.allowsfloats">YES</bool> </object> + <reference key="NSControlView" ref="418457192"/> <int key="NSTag">1</int> - <reference key="NSControlView" ref="418457192"/> - <double key="NSTitleWidth">1.610000e+02</double> + <double key="NSTitleWidth">161</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> <string key="NSContents">Screen refresh rate (1:n):</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="418457192"/> </object> </object> </object> @@ -630,7 +632,7 @@ <int key="NSCellFlags2">205521920</int> <string key="NSContents"/> <reference key="NSSupport" ref="447006373"/> - <double key="NSTitleWidth">1.610000e+02</double> + <double key="NSTitleWidth">161</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> @@ -646,7 +648,7 @@ <string key="NSColorName">controlColor</string> <object class="NSColor" key="NSColor" id="429360493"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> + <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> </object> </object> <object class="NSColor" key="NSCellBackgroundColor" id="70288484"> @@ -828,14 +830,14 @@ </object> <object class="NSFont" key="NSSupport" id="333640230"> <string key="NSName">Helvetica</string> - <double key="NSSize">1.200000e+01</double> + <double key="NSSize">12</double> <int key="NSfFlags">16</int> </object> <reference key="NSControlView" ref="524220653"/> - <double key="NSMaxValue">1.000000e+02</double> - <double key="NSMinValue">0.000000e+00</double> - <double key="NSValue">1.000000e+02</double> - <double key="NSAltIncValue">0.000000e+00</double> + <double key="NSMaxValue">100</double> + <double key="NSMinValue">0.0</double> + <double key="NSValue">100</double> + <double key="NSAltIncValue">0.0</double> <int key="NSNumberOfTickMarks">10</int> <int key="NSTickMarkPosition">0</int> <bool key="NSAllowsTickMarkValuesOnly">YES</bool> @@ -901,10 +903,10 @@ </object> <reference key="NSSupport" ref="333640230"/> <reference key="NSControlView" ref="1032556491"/> - <double key="NSMaxValue">1.000000e+02</double> - <double key="NSMinValue">0.000000e+00</double> - <double key="NSValue">1.000000e+02</double> - <double key="NSAltIncValue">0.000000e+00</double> + <double key="NSMaxValue">100</double> + <double key="NSMinValue">0.0</double> + <double key="NSValue">100</double> + <double key="NSAltIncValue">0.0</double> <int key="NSNumberOfTickMarks">10</int> <int key="NSTickMarkPosition">0</int> <bool key="NSAllowsTickMarkValuesOnly">YES</bool> @@ -1128,7 +1130,7 @@ <object class="NSMutableArray" key="NSCells"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSButtonCell" id="949804708"> - <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags">-2080244224</int> <int key="NSCellFlags2">0</int> <string key="NSContents">None</string> <reference key="NSSupport" ref="447006373"/> @@ -1148,8 +1150,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">Interface I</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">1</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <reference key="NSAlternateImage" ref="32434582"/> @@ -1165,8 +1167,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">Simple 8-bit IDE</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">2</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> @@ -1176,7 +1178,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1202,7 +1204,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> @@ -1222,8 +1224,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">ZXATASP interface</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">3</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> @@ -1233,7 +1235,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1259,7 +1261,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> @@ -1276,8 +1278,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">ZXCF interface</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">4</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> @@ -1287,7 +1289,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1313,7 +1315,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> @@ -1330,8 +1332,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">DivIDE</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">5</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> @@ -1341,7 +1343,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1367,7 +1369,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw cGwCAAAAbW50clJHQiBYWVogB9UABAAdABcANAAGYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAPbWAAEAAAAA0y1hcHBsFNph5E4SJug5D71eq3yMqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -1436,8 +1438,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">+D</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">6</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <reference key="NSAlternateImage" ref="32434582"/> @@ -1451,8 +1453,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">Beta 128</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">7</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <reference key="NSAlternateImage" ref="32434582"/> @@ -1466,8 +1468,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">Opus Discovery</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="833825163"/> <int key="NSTag">8</int> - <reference key="NSControlView" ref="833825163"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> @@ -1477,7 +1479,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1503,7 +1505,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAA8kAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAPJGFw cGwCAAAAbW50clJHQiBYWVogB9gACwAIABYALwApYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAPbWAAEAAAAA0y1hcHBsijokxhhXhf8T3nB/TjyUvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -1599,7 +1601,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1625,7 +1627,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAA8MAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAPDGFw cGwCAAAAbW50clJHQiBYWVogB9gAAQAKABIAGgAiYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAPbWAAEAAAAA0y1hcHBsUwOvPlG1ySS6QFVbfQWioQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -1702,8 +1704,7 @@ <int key="NSPeriodicDelay">400</int> <int key="NSPeriodicInterval">75</int> </object> - <int key="NSSelectedRow">8</int> - <reference key="NSSelectedCell" ref="766217337"/> + <reference key="NSSelectedCell" ref="949804708"/> <reference key="NSBackgroundColor" ref="519317542"/> <reference key="NSCellBackgroundColor" ref="70288484"/> <reference key="NSFont" ref="447006373"/> @@ -1810,36 +1811,34 @@ <object class="NSNumberFormatter" key="NSFormatter" id="219085684"> <object class="NSMutableDictionary" key="NS.attributes"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>allowsFloats</string> <string>formatterBehavior</string> + <string>locale</string> <string>maximumIntegerDigits</string> <string>minimum</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="9"/> - <reference ref="736002568"/> - <reference ref="11"/> - <reference ref="8"/> + <integer value="1"/> + <integer value="1040"/> + <reference ref="514081757"/> + <integer value="3"/> + <integer value="0"/> </object> </object> <string key="NS.positiveformat">#</string> <string key="NS.negativeformat">#</string> <nil key="NS.positiveattrs"/> <nil key="NS.negativeattrs"/> - <object class="NSAttributedString" key="NS.zero"> - <nil key="NSString"/> - </object> - <object class="NSAttributedString" key="NS.nil"> - <nil key="NSString"/> - </object> + <nil key="NS.zero"/> + <nil key="NS.nil"/> <object class="NSAttributedString" key="NS.nan"> <string key="NSString">NaN</string> - <reference key="NSAttributes" ref="625184385"/> + <reference key="NSAttributes" ref="833979005"/> </object> - <reference key="NS.min" ref="8"/> + <integer value="0" key="NS.min"/> <reference key="NS.max" ref="648108068"/> <object class="NSDecimalNumberHandler" key="NS.rounding"> <int key="NS.roundingmode">3</int> @@ -1850,16 +1849,17 @@ <string key="NS.decimal">.</string> <string key="NS.thousand">,</string> <bool key="NS.hasthousands">NO</bool> - <bool key="NS.localized">YES</bool> + <bool key="NS.localized">NO</bool> <bool key="NS.allowsfloats">YES</bool> </object> <reference key="NSControlView" ref="566156961"/> - <double key="NSTitleWidth">1.220000e+02</double> + <double key="NSTitleWidth">122</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> <string key="NSContents">MDR cartridge len:</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="566156961"/> </object> </object> </object> @@ -1872,7 +1872,7 @@ <int key="NSCellFlags2">205521920</int> <string key="NSContents"/> <reference key="NSSupport" ref="447006373"/> - <double key="NSTitleWidth">1.220000e+02</double> + <double key="NSTitleWidth">122</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> @@ -1900,7 +1900,7 @@ <string key="NSContents">Mass storage</string> <object class="NSFont" key="NSSupport" id="26"> <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.100000e+01</double> + <double key="NSSize">11</double> <int key="NSfFlags">3100</int> </object> <object class="NSColor" key="NSBackgroundColor" id="553561812"> @@ -1942,13 +1942,13 @@ <int key="NSCellFlags2">137887744</int> <string key="NSContents">Choose...</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="816191277"/> <int key="NSTag">1</int> - <reference key="NSControlView" ref="816191277"/> <int key="NSButtonFlags">-2038284033</int> <int key="NSButtonFlags2">1</int> <object class="NSFont" key="NSAlternateImage" id="76913610"> <string key="NSName">Helvetica</string> - <double key="NSSize">1.300000e+01</double> + <double key="NSSize">13</double> <int key="NSfFlags">16</int> </object> <string key="NSAlternateContents"/> @@ -1998,12 +1998,13 @@ <string key="NSContents"/> <reference key="NSSupport" ref="447006373"/> <reference key="NSControlView" ref="158300595"/> - <double key="NSTitleWidth">1.310000e+02</double> + <double key="NSTitleWidth">131</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> <string key="NSContents">Graphic Output File:</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="158300595"/> </object> </object> <object class="NSFormCell" id="700509585"> @@ -2011,14 +2012,15 @@ <int key="NSCellFlags2">205521920</int> <string key="NSContents"/> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="158300595"/> <int key="NSTag">1</int> - <reference key="NSControlView" ref="158300595"/> - <double key="NSTitleWidth">1.310000e+02</double> + <double key="NSTitleWidth">131</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> <string key="NSContents">Text Output File:</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="158300595"/> </object> </object> </object> @@ -2031,7 +2033,7 @@ <int key="NSCellFlags2">205521920</int> <string key="NSContents"/> <reference key="NSSupport" ref="447006373"/> - <double key="NSTitleWidth">1.310000e+02</double> + <double key="NSTitleWidth">131</double> <object class="NSCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">67108864</int> @@ -2130,8 +2132,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">Fuller</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="159048013"/> <int key="NSTag">1</int> - <reference key="NSControlView" ref="159048013"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">128</int> <object class="NSImage" key="NSNormalImage"> @@ -2141,7 +2143,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -2167,10 +2169,10 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAPbWAAEAAAAA0y1hcHBs2U706y3Sst1fqit5+wYbUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA @@ -2236,8 +2238,8 @@ <int key="NSCellFlags2">0</int> <string key="NSContents">Melodik</string> <reference key="NSSupport" ref="447006373"/> + <reference key="NSControlView" ref="159048013"/> <int key="NSTag">2</int> - <reference key="NSControlView" ref="159048013"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">128</int> <object class="NSImage" key="NSNormalImage"> @@ -2247,7 +2249,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -2273,7 +2275,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAA8kAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAPJGFw cGwCAAAAbW50clJHQiBYWVogB9gACwAIABYALwApYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAPbWAAEAAAAA0y1hcHBsijokxhhXhf8T3nB/TjyUvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -2369,7 +2371,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="8"/> + <integer value="0"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -2395,7 +2397,7 @@ AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABBxwAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> @@ -2443,36 +2445,16 @@ <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="76952719"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">268</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSButton" id="676399466"> - <reference key="NSNextResponder" ref="76952719"/> - <int key="NSvFlags">256</int> - <string key="NSFrame">{{183, 70}, {145, 18}}</string> - <reference key="NSSuperview" ref="76952719"/> - <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="807308919"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">0</int> - <string key="NSContents">Competition mode</string> - <reference key="NSSupport" ref="447006373"/> - <reference key="NSControlView" ref="676399466"/> - <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">2</int> - <reference key="NSAlternateImage" ref="529831564"/> - <string key="NSAlternateContents"/> - <string key="NSKeyEquivalent"/> - <int key="NSPeriodicDelay">200</int> - <int key="NSPeriodicInterval">25</int> - </object> - </object> <object class="NSButton" id="785777834"> <reference key="NSNextResponder" ref="76952719"/> <int key="NSvFlags">256</int> <string key="NSFrame">{{183, 90}, {145, 18}}</string> <reference key="NSSuperview" ref="76952719"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="825652056"> <int key="NSCellFlags">67239424</int> @@ -2489,102 +2471,12 @@ <int key="NSPeriodicInterval">25</int> </object> </object> - <object class="NSForm" id="240510804"> - <reference key="NSNextResponder" ref="76952719"/> - <int key="NSvFlags">256</int> - <string key="NSFrame">{{185, 42}, {256, 22}}</string> - <reference key="NSSuperview" ref="76952719"/> - <bool key="NSEnabled">YES</bool> - <int key="NSNumRows">1</int> - <int key="NSNumCols">1</int> - <object class="NSMutableArray" key="NSCells"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSFormCell" id="555787033"> - <int key="NSCellFlags">-1804468671</int> - <int key="NSCellFlags2">205521920</int> - <reference key="NSSupport" ref="447006373"/> - <object class="NSNumberFormatter" key="NSFormatter" id="781258197"> - <object class="NSMutableDictionary" key="NS.attributes"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>allowsFloats</string> - <string>formatterBehavior</string> - <string>minimum</string> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="9"/> - <reference ref="736002568"/> - <reference ref="8"/> - </object> - </object> - <string key="NS.positiveformat">#</string> - <string key="NS.negativeformat">#</string> - <nil key="NS.positiveattrs"/> - <nil key="NS.negativeattrs"/> - <object class="NSAttributedString" key="NS.zero"> - <nil key="NSString"/> - </object> - <object class="NSAttributedString" key="NS.nil"> - <nil key="NSString"/> - </object> - <object class="NSAttributedString" key="NS.nan"> - <string key="NSString">NaN</string> - <reference key="NSAttributes" ref="625184385"/> - </object> - <reference key="NS.min" ref="8"/> - <reference key="NS.max" ref="648108068"/> - <object class="NSDecimalNumberHandler" key="NS.rounding"> - <int key="NS.roundingmode">3</int> - <bool key="NS.raise.overflow">YES</bool> - <bool key="NS.raise.underflow">YES</bool> - <bool key="NS.raise.dividebyzero">YES</bool> - </object> - <string key="NS.decimal">.</string> - <string key="NS.thousand">,</string> - <bool key="NS.hasthousands">NO</bool> - <bool key="NS.localized">YES</bool> - <bool key="NS.allowsfloats">YES</bool> - </object> - <reference key="NSControlView" ref="240510804"/> - <double key="NSTitleWidth">1.210000e+02</double> - <object class="NSCell" key="NSTitleCell"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">67108864</int> - <string key="NSContents">Competition code:</string> - <reference key="NSSupport" ref="447006373"/> - </object> - </object> - </object> - <string key="NSCellSize">{256, 22}</string> - <string key="NSIntercellSpacing">{1, 8}</string> - <int key="NSMatrixFlags">67633152</int> - <string key="NSCellClass">NSActionCell</string> - <object class="NSFormCell" key="NSProtoCell" id="1016506225"> - <int key="NSCellFlags">343014976</int> - <int key="NSCellFlags2">205521920</int> - <string key="NSContents"/> - <reference key="NSSupport" ref="447006373"/> - <double key="NSTitleWidth">1.210000e+02</double> - <object class="NSCell" key="NSTitleCell"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">67108864</int> - <string key="NSContents">Field:</string> - <reference key="NSSupport" ref="447006373"/> - </object> - </object> - <int key="NSSelectedRow">-1</int> - <int key="NSSelectedCol">-1</int> - <reference key="NSBackgroundColor" ref="519317542"/> - <reference key="NSCellBackgroundColor" ref="70288484"/> - <reference key="NSFont" ref="447006373"/> - </object> <object class="NSButton" id="742175854"> <reference key="NSNextResponder" ref="76952719"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{183, 18}, {175, 18}}</string> + <string key="NSFrame">{{183, 70}, {175, 18}}</string> <reference key="NSSuperview" ref="76952719"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="167661398"> <int ... [truncated message content] |
From: <fr...@us...> - 2009-09-04 22:58:56
|
Revision: 619 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=619&view=rev Author: fredm Date: 2009-09-04 22:58:49 +0000 (Fri, 04 Sep 2009) Log Message: ----------- Tidy up issues from the XCode 3.2 static analyser. Modified Paths: -------------- trunk/fuse/fusepb/controllers/FuseController.m trunk/fuse/fusepb/controllers/PokeFinderController.m trunk/fuse/fusepb/controllers/PreferencesController.m trunk/fuse/fusepb/controllers/SaveBinaryController.m trunk/fuse/fusepb/transformers/MachineScalerIsEnabled.m trunk/fuse/fusepb/views/DisplayOpenGLView.m trunk/fuse/fusepb/views/Texture.m trunk/fuse/ui/cocoa/SDL_joystick/SDL_sysjoystick.c trunk/fuse/ui/cocoa/cocoadisplay.m trunk/fuse/ui/cocoa/cocoascreenshot.m Modified: trunk/fuse/fusepb/controllers/FuseController.m =================================================================== --- trunk/fuse/fusepb/controllers/FuseController.m 2009-09-04 22:50:16 UTC (rev 618) +++ trunk/fuse/fusepb/controllers/FuseController.m 2009-09-04 22:58:49 UTC (rev 619) @@ -1975,8 +1975,6 @@ if( ui_mouse_grabbed ) ui_mouse_grabbed = ui_mouse_release( 1 ); - confirm = UI_CONFIRM_SAVE_CANCEL; - result = NSRunAlertPanel(@"Confirm", theMessage, @"Save", @"Don't Save", @"Cancel"); Modified: trunk/fuse/fusepb/controllers/PokeFinderController.m =================================================================== --- trunk/fuse/fusepb/controllers/PokeFinderController.m 2009-09-04 22:50:16 UTC (rev 618) +++ trunk/fuse/fusepb/controllers/PokeFinderController.m 2009-09-04 22:58:49 UTC (rev 619) @@ -59,7 +59,7 @@ - (void)awakeFromNib { - NumberFormatter *searchForFormatter = [[NumberFormatter alloc] init]; + NumberFormatter *searchForFormatter = [[[NumberFormatter alloc] init] autorelease]; [searchForFormatter setMinimum:[NSDecimalNumber zero]]; [searchForFormatter setMaximum:[NSDecimalNumber decimalNumberWithString:@"255"]]; @@ -72,7 +72,7 @@ - (void)matchListDoubleAction:(id)sender { - int error, row; + int row; id record, value; unsigned long page, offset; @@ -86,10 +86,9 @@ value = [record valueForKey:@"offset_number"]; offset = [value unsignedLongValue]; - error = - debugger_breakpoint_add_address( DEBUGGER_BREAKPOINT_TYPE_WRITE, - page, offset, 0, - DEBUGGER_BREAKPOINT_LIFE_PERMANENT, NULL); + (void)debugger_breakpoint_add_address( DEBUGGER_BREAKPOINT_TYPE_WRITE, + page, offset, 0, + DEBUGGER_BREAKPOINT_LIFE_PERMANENT, NULL); } - (void) dealloc Modified: trunk/fuse/fusepb/controllers/PreferencesController.m =================================================================== --- trunk/fuse/fusepb/controllers/PreferencesController.m 2009-09-04 22:50:16 UTC (rev 618) +++ trunk/fuse/fusepb/controllers/PreferencesController.m 2009-09-04 22:58:49 UTC (rev 619) @@ -69,16 +69,14 @@ [NSValueTransformer setValueTransformer:sNToITransformer forName:@"ScalerNameToIdTransformer"]; - machineScalerIsEnabled = [[MachineScalerIsEnabled - machineScalerIsEnabledWithInt:1] - autorelease]; + machineScalerIsEnabled = [MachineScalerIsEnabled + machineScalerIsEnabledWithInt:1]; [NSValueTransformer setValueTransformer:machineScalerIsEnabled forName:@"MachineTimexIsEnabled"]; - machineScalerIsEnabled = [[MachineScalerIsEnabled - machineScalerIsEnabledWithInt:0] - autorelease]; + machineScalerIsEnabled = [MachineScalerIsEnabled + machineScalerIsEnabledWithInt:0]; [NSValueTransformer setValueTransformer:machineScalerIsEnabled forName:@"MachineTimexIsDisabled"]; Modified: trunk/fuse/fusepb/controllers/SaveBinaryController.m =================================================================== --- trunk/fuse/fusepb/controllers/SaveBinaryController.m 2009-09-04 22:50:16 UTC (rev 618) +++ trunk/fuse/fusepb/controllers/SaveBinaryController.m 2009-09-04 22:58:49 UTC (rev 619) @@ -68,7 +68,7 @@ - (IBAction)apply:(id)sender { libspectrum_word s, l; size_t i; - char *buffer; + libspectrum_byte *buffer; int error; Modified: trunk/fuse/fusepb/transformers/MachineScalerIsEnabled.m =================================================================== --- trunk/fuse/fusepb/transformers/MachineScalerIsEnabled.m 2009-09-04 22:50:16 UTC (rev 618) +++ trunk/fuse/fusepb/transformers/MachineScalerIsEnabled.m 2009-09-04 22:58:49 UTC (rev 619) @@ -32,8 +32,8 @@ @implementation MachineScalerIsEnabled + (MachineScalerIsEnabled *)machineScalerIsEnabledWithInt:(int)value -{ - return [[MachineScalerIsEnabled alloc] initWithInt:value]; +{ + return [[[MachineScalerIsEnabled alloc] initWithInt:value] autorelease]; } - (id)initWithInt:(int)value Modified: trunk/fuse/fusepb/views/DisplayOpenGLView.m =================================================================== --- trunk/fuse/fusepb/views/DisplayOpenGLView.m 2009-09-04 22:50:16 UTC (rev 618) +++ trunk/fuse/fusepb/views/DisplayOpenGLView.m 2009-09-04 22:58:49 UTC (rev 619) @@ -333,13 +333,13 @@ filename = [NSString stringWithFormat:@"%@_green", name]; /* Colour first image green */ - greenTexture = [greenTexture initWithImageFile:filename withXOrigin:x + (void)[greenTexture initWithImageFile:filename withXOrigin:x withYOrigin:y]; filename = [NSString stringWithFormat:@"%@_red", name]; /* Colour second image red */ - redTexture = [redTexture initWithImageFile:filename withXOrigin:x + (void)[redTexture initWithImageFile:filename withXOrigin:x withYOrigin:y]; } @@ -514,32 +514,6 @@ } } -/* scrolled, moved or resized */ --(void) reshape -{ - [view_lock lock]; - NSRect rect; - - [super reshape]; - - [[self openGLContext] makeCurrentContext]; - [[self openGLContext] update]; - - rect = [self bounds]; - - [self setViewPort:rect]; - - glMatrixMode( GL_PROJECTION ); - glLoadIdentity(); - - glMatrixMode( GL_MODELVIEW ); - glLoadIdentity(); - - statusbar_updated = YES; - - [view_lock unlock]; -} - -(void) destroyTexture { GLuint i; Modified: trunk/fuse/fusepb/views/Texture.m =================================================================== --- trunk/fuse/fusepb/views/Texture.m 2009-09-04 22:50:16 UTC (rev 618) +++ trunk/fuse/fusepb/views/Texture.m 2009-09-04 22:58:49 UTC (rev 619) @@ -40,6 +40,9 @@ CGImageRef image = CGImageSourceCreateImageAtIndex( image_source, 0, nil ); + + CFRelease( image_source ); + texture.image_width = CGImageGetWidth( image ); texture.image_height = CGImageGetHeight( image ); @@ -60,6 +63,10 @@ CGRectMake(0, 0, texture.image_width, texture.image_height), image ); + CGColorSpaceRelease( color_space ); + + CGImageRelease( image ); + CGContextRelease( context ); texture.image_xoffset = x; Modified: trunk/fuse/ui/cocoa/SDL_joystick/SDL_sysjoystick.c =================================================================== --- trunk/fuse/ui/cocoa/SDL_joystick/SDL_sysjoystick.c 2009-09-04 22:50:16 UTC (rev 618) +++ trunk/fuse/ui/cocoa/SDL_joystick/SDL_sysjoystick.c 2009-09-04 22:58:49 UTC (rev 619) @@ -110,7 +110,7 @@ static void HIDReportErrorNum(char *strError, long numError) { - ui_error( UI_ERROR_ERROR, strError); + ui_error( UI_ERROR_ERROR, "%s", strError); } static void HIDGetCollectionElements(CFMutableDictionaryRef deviceProperties, Modified: trunk/fuse/ui/cocoa/cocoadisplay.m =================================================================== --- trunk/fuse/ui/cocoa/cocoadisplay.m 2009-09-04 22:50:16 UTC (rev 618) +++ trunk/fuse/ui/cocoa/cocoadisplay.m 2009-09-04 22:58:49 UTC (rev 619) @@ -207,7 +207,7 @@ return 0; } -static int +static void cocoadisplay_allocate_colours( int numColours, uint16_t *colour_values, uint16_t *bw_values ) { @@ -224,16 +224,13 @@ bw_values[i] = (grey << 10) | (grey << 5) | grey; } - - return 0; } int uidisplay_init( int width, int height ) { - int error; - error = cocoadisplay_allocate_colours( sizeof(colour_values) / sizeof(uint16_t), - colour_values, bw_values ); + cocoadisplay_allocate_colours( sizeof(colour_values) / sizeof(uint16_t), + colour_values, bw_values ); image_width = width; image_height = height; @@ -292,10 +289,10 @@ (y+unscaled_screen.image_yoffset) * unscaled_screen.pitch ); *(dest++) = palette_colour; - *(dest++) = palette_colour; + *(dest ) = palette_colour; dest = (uint16_t*)( (uint8_t*)dest_base + unscaled_screen.pitch ); *(dest++) = palette_colour; - *(dest++) = palette_colour; + *(dest ) = palette_colour; } else { dest = (uint16_t*)( (uint8_t*)unscaled_screen.pixels + (x+unscaled_screen.image_xoffset) * sizeof(uint16_t) + Modified: trunk/fuse/ui/cocoa/cocoascreenshot.m =================================================================== --- trunk/fuse/ui/cocoa/cocoascreenshot.m 2009-09-04 22:50:16 UTC (rev 618) +++ trunk/fuse/ui/cocoa/cocoascreenshot.m 2009-09-04 22:58:49 UTC (rev 619) @@ -158,10 +158,11 @@ NSData *data = [ bits representationUsingType:type properties:nil ]; [ data writeToFile:[NSString stringWithUTF8String:filename] atomically:NO ]; +freePool: + [ bits release ]; -freePool: - [pool release]; + [ pool release ]; return error; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-09-04 22:50:23
|
Revision: 618 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=618&view=rev Author: fredm Date: 2009-09-04 22:50:16 +0000 (Fri, 04 Sep 2009) Log Message: ----------- Plug some memory gaps. Modified Paths: -------------- trunk/FuseGenerator/GeneratePreviewForURL.m trunk/FuseGenerator/GenerateThumbnailForURL.m trunk/FuseGenerator/JWSpectrumScreen/AttributeManager.c trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.m Modified: trunk/FuseGenerator/GeneratePreviewForURL.m =================================================================== --- trunk/FuseGenerator/GeneratePreviewForURL.m 2009-08-31 13:19:09 UTC (rev 617) +++ trunk/FuseGenerator/GeneratePreviewForURL.m 2009-09-04 22:50:16 UTC (rev 618) @@ -89,6 +89,8 @@ QLPreviewRequestFlushContext(preview, cgContext); CFRelease(cgContext); } + + [imageRep release]; } break; case TYPE_IMAGEIO: Modified: trunk/FuseGenerator/GenerateThumbnailForURL.m =================================================================== --- trunk/FuseGenerator/GenerateThumbnailForURL.m 2009-08-31 13:19:09 UTC (rev 617) +++ trunk/FuseGenerator/GenerateThumbnailForURL.m 2009-09-04 22:50:16 UTC (rev 618) @@ -81,6 +81,8 @@ QLThumbnailRequestFlushContext( thumbnail, cgContext ); CFRelease( cgContext ); } + + [imageRep release]; } break; case TYPE_IMAGEIO: Modified: trunk/FuseGenerator/JWSpectrumScreen/AttributeManager.c =================================================================== --- trunk/FuseGenerator/JWSpectrumScreen/AttributeManager.c 2009-08-31 13:19:09 UTC (rev 617) +++ trunk/FuseGenerator/JWSpectrumScreen/AttributeManager.c 2009-09-04 22:50:16 UTC (rev 618) @@ -9,7 +9,6 @@ #include <assert.h> #include <string.h> -#include <ppc_intrinsics.h> #include "AttributeManager.h" #include "Colourmacros.h" Modified: trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.m =================================================================== --- trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.m 2009-08-31 13:19:09 UTC (rev 617) +++ trunk/FuseGenerator/JWSpectrumScreen/JWSpectrumScreen.m 2009-09-04 22:50:16 UTC (rev 618) @@ -167,7 +167,7 @@ - (NSBitmapImageRep*)imageRep { - NSBitmapImageRep* imageRep = [[[NSBitmapImageRep alloc] initWithBitmapDataPlanes:0 + NSBitmapImageRep* imageRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:0 pixelsWide:canvasSize.width pixelsHigh:canvasSize.height bitsPerSample:8 @@ -176,7 +176,7 @@ isPlanar:NO colorSpaceName:NSDeviceRGBColorSpace bytesPerRow:canvasSize.width * 3 - bitsPerPixel:24] autorelease]; + bitsPerPixel:24]; if(imageRep) { unsigned char* imageBytes = [imageRep bitmapData]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-08-31 13:19:15
|
Revision: 617 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=617&view=rev Author: fredm Date: 2009-08-31 13:19:09 +0000 (Mon, 31 Aug 2009) Log Message: ----------- Add Opus to media change check. Modified Paths: -------------- trunk/fuse/fusepb/FuseMenus.m Modified: trunk/fuse/fusepb/FuseMenus.m =================================================================== --- trunk/fuse/fusepb/FuseMenus.m 2009-08-13 11:54:12 UTC (rev 616) +++ trunk/fuse/fusepb/FuseMenus.m 2009-08-31 13:19:09 UTC (rev 617) @@ -34,6 +34,7 @@ #include "divide.h" #include "if1.h" #include "menu.h" +#include "opus.h" #include "settings.h" #include "simpleide.h" #include "tape.h" @@ -80,6 +81,12 @@ confirm = plusd_disk_eject( PLUSD_DRIVE_2, 0 ); if( confirm ) return 1; + confirm = opus_disk_eject( OPUS_DRIVE_1, 0 ); + if( confirm ) return 1; + + confirm = opus_disk_eject( OPUS_DRIVE_2, 0 ); + if( confirm ) return 1; + for( i = 0; i < 8; i++ ) { confirm = if1_mdr_eject( i, 0 ); if( confirm ) return 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-08-13 11:54:21
|
Revision: 616 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=616&view=rev Author: fredm Date: 2009-08-13 11:54:12 +0000 (Thu, 13 Aug 2009) Log Message: ----------- Switch to 8888 pixel format as its more CoreImage-friendly. Modified Paths: -------------- branches/fuse_corevideo/fuse/fusepb/scaler/scalers16.c branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m branches/fuse_corevideo/fuse/ui/cocoa/cocoadisplay.m branches/fuse_corevideo/fuse/ui/scaler/scaler.c Modified: branches/fuse_corevideo/fuse/fusepb/scaler/scalers16.c =================================================================== --- branches/fuse_corevideo/fuse/fusepb/scaler/scalers16.c 2009-08-08 14:04:58 UTC (rev 615) +++ branches/fuse_corevideo/fuse/fusepb/scaler/scalers16.c 2009-08-13 11:54:12 UTC (rev 616) @@ -23,6 +23,6 @@ * */ -#define SCALER_DATA_SIZE 2 +#define SCALER_DATA_SIZE 4 #include "ui/scaler/scalers.c" Modified: branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h =================================================================== --- branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h 2009-08-08 14:04:58 UTC (rev 615) +++ branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h 2009-08-13 11:54:12 UTC (rev 616) @@ -77,6 +77,8 @@ CVDisplayLinkRef displayLink; CGDirectDisplayID mainViewDisplayID; BOOL displayLinkRunning; + + CIContext * ciContext; } +(DisplayOpenGLView *) instance; @@ -94,6 +96,7 @@ -(id) initWithFrame:(NSRect)frameRect; -(void) awakeFromNib; -(void) initDisplayLink; +-(void) createCIContext; -(void) loadPicture:(NSString *) name greenTex:(Texture*) greenTexture Modified: branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m =================================================================== --- branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m 2009-08-08 14:04:58 UTC (rev 615) +++ branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m 2009-08-13 11:54:12 UTC (rev 616) @@ -205,6 +205,8 @@ [self prepareOpenGL:[self openGLContext]]; + [self createCIContext]; + greenCassette = [Texture alloc]; redCassette = [Texture alloc]; [self loadPicture: @"cassette" greenTex:greenCassette @@ -312,6 +314,24 @@ displayLinkRunning = NO; } +-(void) createCIContext +{ + [[self openGLContext] makeCurrentContext]; + /* Create CGColorSpaceRef */ + CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); + + /* Create CIContext */ + ciContext = [[CIContext contextWithCGLContext: + (CGLContextObj)[[self openGLContext] CGLContextObj] + pixelFormat:(CGLPixelFormatObj) + [[self pixelFormat] CGLPixelFormatObj] + options:[NSDictionary dictionaryWithObjectsAndKeys: + (id)colorSpace,kCIContextOutputColorSpace, + (id)colorSpace,kCIContextWorkingColorSpace,nil]] retain]; + + CGColorSpaceRelease(colorSpace); +} + - (void)windowWillClose:(NSNotification *)notification { [[self window] setDelegate:nil]; @@ -334,6 +354,9 @@ [greenDisk release]; greenDisk = nil; + [ciContext release]; + ciContext = nil; + [self release]; } @@ -598,13 +621,13 @@ screenTex[i].image_xoffset = newScreen->image_xoffset; screenTex[i].image_yoffset = newScreen->image_yoffset; screenTex[i].pixels = calloc( screenTex[i].full_width * screenTex[i].full_height, - sizeof(uint16_t) ); + sizeof(uint32_t) ); if( !screenTex[i].pixels ) { NSLog( @"%s: couldn't create screenTex[%ud].pixels\n", fuse_progname, (unsigned int)i ); return; } - screenTex[i].pitch = screenTex[i].full_width * sizeof(uint16_t); + screenTex[i].pitch = screenTex[i].full_width * sizeof(uint32_t); glDisable( GL_TEXTURE_2D ); glEnable( GL_TEXTURE_RECTANGLE_ARB ); @@ -625,7 +648,7 @@ glPixelStorei( GL_UNPACK_ROW_LENGTH, 0 ); glTexImage2D( GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, screenTex[i].full_width, - screenTex[i].full_height, 0, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV, + screenTex[i].full_height, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, screenTex[i].pixels ); } screenTexInitialised = YES; @@ -1330,7 +1353,7 @@ glTexSubImage2D( GL_TEXTURE_RECTANGLE_ARB, 0, 0, 0, screenTex[currentScreenTex].full_width, screenTex[currentScreenTex].full_height, GL_BGRA, - GL_UNSIGNED_SHORT_1_5_5_5_REV, + GL_UNSIGNED_INT_8_8_8_8_REV, screenTex[currentScreenTex].pixels ); } Modified: branches/fuse_corevideo/fuse/ui/cocoa/cocoadisplay.m =================================================================== --- branches/fuse_corevideo/fuse/ui/cocoa/cocoadisplay.m 2009-08-08 14:04:58 UTC (rev 615) +++ branches/fuse_corevideo/fuse/ui/cocoa/cocoadisplay.m 2009-08-13 11:54:12 UTC (rev 616) @@ -68,27 +68,31 @@ /* and a lock to protect it from concurrent access */ NSLock *buffered_screen_lock = nil; -/* Colours are in 1A 5R 5G 5B format */ -static uint16_t colour_values[] = { - 0x0000, - 0x0017, - 0x5c00, - 0x5c17, - 0x02e0, - 0x02f7, - 0x5ee0, - 0x5ef7, - 0x0000, - 0x001f, - 0x7c00, - 0x7c1f, - 0x03e0, - 0x03ff, - 0x7fe0, - 0x7fff +/* The colour palette */ +static const uint8_t rgb_colours[16][3] = { + + { 0, 0, 0 }, + { 0, 0, 192 }, + { 192, 0, 0 }, + { 192, 0, 192 }, + { 0, 192, 0 }, + { 0, 192, 192 }, + { 192, 192, 0 }, + { 192, 192, 192 }, + { 0, 0, 0 }, + { 0, 0, 255 }, + { 255, 0, 0 }, + { 255, 0, 255 }, + { 0, 255, 0 }, + { 0, 255, 255 }, + { 255, 255, 0 }, + { 255, 255, 255 }, + }; -static uint16_t bw_values[16]; +/* Colours are in 8A 8R 8G 8B format */ +static uint32_t colour_values[16]; +static uint32_t bw_values[16]; static int display_updated = 0; @@ -126,7 +130,7 @@ scaler_select_scaler( SCALER_NORMAL ); } - scaler_select_bitformat( 555 ); + //scaler_select_bitformat( 555 ); } static int @@ -143,7 +147,7 @@ screen->image_yoffset = 1; screen->pixels = calloc( screen->full_width*screen->full_height, - sizeof(uint16_t) ); + sizeof(uint32_t) ); if( !screen->pixels ) { fprintf( stderr, "%s: couldn't allocate screen.pixels\n", fuse_progname ); return 1; @@ -156,7 +160,7 @@ return 1; } - screen->pitch = screen->full_width * sizeof(uint16_t); + screen->pitch = screen->full_width * sizeof(uint32_t); return 0; } @@ -208,21 +212,25 @@ } static int -cocoadisplay_allocate_colours( int numColours, uint16_t *colour_values, - uint16_t *bw_values ) +init_colours( void ) { - int i; - uint8_t red, green, blue, grey; + size_t i; - for( i = 0; i < numColours; i++ ) { - red = (colour_values[i] >> 10) & 0x1f; - green = (colour_values[i] >> 5) & 0x1f; - blue = colour_values[i] & 0x1f; + for( i = 0; i < 16; i++ ) { + + uint8_t red, green, blue, grey; + + red = rgb_colours[i][0]; + green = rgb_colours[i][1]; + blue = rgb_colours[i][2]; + /* Addition of 0.5 is to avoid rounding errors */ grey = ( 0.299 * red + 0.587 * green + 0.114 * blue ) + 0.5; - bw_values[i] = (grey << 10) | (grey << 5) | grey; + colour_values[i] = blue | green << 8 | red << 16; + bw_values[i] = grey | grey << 8 | grey << 16; + } return 0; @@ -232,8 +240,7 @@ uidisplay_init( int width, int height ) { int error; - error = cocoadisplay_allocate_colours( sizeof(colour_values) / sizeof(uint16_t), - colour_values, bw_values ); + error = init_colours(); if( error ) return error; image_width = width; image_height = height; @@ -280,25 +287,25 @@ void uidisplay_putpixel( int x, int y, int colour ) { - uint16_t *dest_base, *dest; - uint16_t *palette_values = settings_current.bw_tv ? bw_values : colour_values; + uint32_t *dest_base, *dest; + uint32_t *palette_values = settings_current.bw_tv ? bw_values : colour_values; - uint16_t palette_colour = palette_values[ colour ]; + uint32_t palette_colour = palette_values[ colour ]; if( machine_current->timex ) { x <<= 1; y <<= 1; - dest_base = dest = (uint16_t*)( (uint8_t*)unscaled_screen.pixels + - (x+unscaled_screen.image_xoffset) * sizeof(uint16_t) + + dest_base = dest = (uint32_t*)( (uint8_t*)unscaled_screen.pixels + + (x+unscaled_screen.image_xoffset) * sizeof(uint32_t) + (y+unscaled_screen.image_yoffset) * unscaled_screen.pitch ); *(dest++) = palette_colour; *(dest++) = palette_colour; - dest = (uint16_t*)( (uint8_t*)dest_base + unscaled_screen.pitch ); + dest = (uint32_t*)( (uint8_t*)dest_base + unscaled_screen.pitch ); *(dest++) = palette_colour; *(dest++) = palette_colour; } else { - dest = (uint16_t*)( (uint8_t*)unscaled_screen.pixels + - (x+unscaled_screen.image_xoffset) * sizeof(uint16_t) + + dest = (uint32_t*)( (uint8_t*)unscaled_screen.pixels + + (x+unscaled_screen.image_xoffset) * sizeof(uint32_t) + (y+unscaled_screen.image_yoffset) * unscaled_screen.pitch ); *dest = palette_colour; @@ -311,20 +318,20 @@ uidisplay_plot8( int x, int y, libspectrum_byte data, libspectrum_byte ink, libspectrum_byte paper ) { - uint16_t *dest; - uint16_t *palette_values = settings_current.bw_tv ? bw_values : colour_values; + uint32_t *dest; + uint32_t *palette_values = settings_current.bw_tv ? bw_values : colour_values; - uint16_t palette_ink = palette_values[ ink ]; - uint16_t palette_paper = palette_values[ paper ]; + uint32_t palette_ink = palette_values[ ink ]; + uint32_t palette_paper = palette_values[ paper ]; if( machine_current->timex ) { int i; - uint16_t *dest_base; + uint32_t *dest_base; x <<= 4; y <<= 1; - dest_base = (uint16_t*)( (uint8_t*)unscaled_screen.pixels + - (x+unscaled_screen.image_xoffset) * sizeof(uint16_t) + + dest_base = (uint32_t*)( (uint8_t*)unscaled_screen.pixels + + (x+unscaled_screen.image_xoffset) * sizeof(uint32_t) + (y+unscaled_screen.image_yoffset) * unscaled_screen.pitch ); for( i=0; i<2; i++ ) { @@ -347,12 +354,12 @@ *(dest++) = ( data & 0x01 ) ? palette_ink : palette_paper; *dest = ( data & 0x01 ) ? palette_ink : palette_paper; - dest_base = (uint16_t*)( (uint8_t*)dest_base + unscaled_screen.pitch ); + dest_base = (uint32_t*)( (uint8_t*)dest_base + unscaled_screen.pitch ); } } else { x <<= 3; - dest = (uint16_t*)( (uint8_t*)unscaled_screen.pixels + - (x+unscaled_screen.image_xoffset) * sizeof(uint16_t) + + dest = (uint32_t*)( (uint8_t*)unscaled_screen.pixels + + (x+unscaled_screen.image_xoffset) * sizeof(uint32_t) + (y+unscaled_screen.image_yoffset) * unscaled_screen.pitch ); *(dest++) = ( data & 0x80 ) ? palette_ink : palette_paper; @@ -372,15 +379,15 @@ uidisplay_plot16( int x, int y, libspectrum_word data, libspectrum_byte ink, libspectrum_byte paper ) { - uint16_t *dest_base, *dest; + uint32_t *dest_base, *dest; int i; - uint16_t *palette_values = settings_current.bw_tv ? bw_values : colour_values; - uint16_t palette_ink = palette_values[ ink ]; - uint16_t palette_paper = palette_values[ paper ]; + uint32_t *palette_values = settings_current.bw_tv ? bw_values : colour_values; + uint32_t palette_ink = palette_values[ ink ]; + uint32_t palette_paper = palette_values[ paper ]; x <<= 4; y <<= 1; - dest_base = (uint16_t*)( (uint8_t*)unscaled_screen.pixels + (x+unscaled_screen.image_xoffset) * - sizeof(uint16_t) + (y+unscaled_screen.image_yoffset) * + dest_base = (uint32_t*)( (uint8_t*)unscaled_screen.pixels + (x+unscaled_screen.image_xoffset) * + sizeof(uint32_t) + (y+unscaled_screen.image_yoffset) * unscaled_screen.pitch ); for( i=0; i<2; i++ ) { @@ -403,7 +410,7 @@ *(dest++) = ( data & 0x0002 ) ? palette_ink : palette_paper; *dest = ( data & 0x0001 ) ? palette_ink : palette_paper; - dest_base = (uint16_t*)( (uint8_t*)dest_base + unscaled_screen.pitch ); + dest_base = (uint32_t*)( (uint8_t*)dest_base + unscaled_screen.pitch ); } } @@ -414,11 +421,11 @@ for( y = r->y; y <= r->y + r->h; y++ ) { int src_offset = (y + src_screen->image_yoffset) * src_screen->pitch + - sizeof(uint16_t) * ( r->x + src_screen->image_xoffset); + sizeof(uint32_t) * ( r->x + src_screen->image_xoffset); int dest_offset = (y + dest_screen->image_yoffset) * dest_screen->pitch + - sizeof(uint16_t) * ( r->x + dest_screen->image_xoffset); + sizeof(uint32_t) * ( r->x + dest_screen->image_xoffset); memcpy( dest_screen->pixels + dest_offset, src_screen->pixels + src_offset, - r->w * sizeof(uint16_t) ); + r->w * sizeof(uint32_t) ); } } @@ -470,12 +477,12 @@ pig_dirty_add( scaled_screen.dirty, &r ); /* Create scaled image */ - scaler_proc16( unscaled_screen.pixels + ( y + unscaled_screen.image_yoffset ) * - unscaled_screen.pitch + sizeof(uint16_t) * + scaler_proc32( unscaled_screen.pixels + ( y + unscaled_screen.image_yoffset ) * + unscaled_screen.pitch + sizeof(uint32_t) * ( x + unscaled_screen.image_xoffset ), unscaled_screen.pitch, scaled_screen.pixels + ( r.y + scaled_screen.image_yoffset ) * - scaled_screen.pitch + sizeof(uint16_t) * + scaled_screen.pitch + sizeof(uint32_t) * ( r.x + scaled_screen.image_xoffset ), scaled_screen.pitch, width, height ); } Modified: branches/fuse_corevideo/fuse/ui/scaler/scaler.c =================================================================== --- branches/fuse_corevideo/fuse/ui/scaler/scaler.c 2009-08-08 14:04:58 UTC (rev 615) +++ branches/fuse_corevideo/fuse/ui/scaler/scaler.c 2009-08-13 11:54:12 UTC (rev 616) @@ -76,45 +76,45 @@ static struct scaler_info available_scalers[] = { { "Timex Half (smoothed)", "half", SCALER_FLAGS_NONE, SCALE_FACTOR_HALF, - scaler_Half_16, NULL, NULL }, + NULL, scaler_Half_32, NULL }, { "Timex Half (skipping)", "halfskip", SCALER_FLAGS_NONE, SCALE_FACTOR_HALF, - scaler_HalfSkip_16, NULL, NULL }, + NULL, scaler_HalfSkip_32, NULL }, { "Normal", "normal", SCALER_FLAGS_NONE, SCALE_FACTOR_ONE, - scaler_Normal1x_16, NULL, NULL }, + NULL, scaler_Normal1x_32, NULL }, { "Double size", "2x", SCALER_FLAGS_NONE, SCALE_FACTOR_TWO, - scaler_Normal2x_16, NULL, NULL }, + NULL, scaler_Normal2x_32, NULL }, { "Triple size", "3x", SCALER_FLAGS_NONE, SCALE_FACTOR_THREE, - scaler_Normal3x_16, NULL, NULL }, + NULL, scaler_Normal3x_32, NULL }, { "2xSaI", "2xsai", SCALER_FLAGS_EXPAND, SCALE_FACTOR_TWO, - scaler_2xSaI_16, NULL, expand_sai }, + NULL, scaler_2xSaI_32, expand_sai }, { "Super 2xSaI", "super2xsai", SCALER_FLAGS_EXPAND, SCALE_FACTOR_TWO, - scaler_Super2xSaI_16, NULL, expand_sai }, + NULL, scaler_Super2xSaI_32, expand_sai }, { "SuperEagle", "supereagle", SCALER_FLAGS_EXPAND, SCALE_FACTOR_TWO, - scaler_SuperEagle_16, NULL, expand_sai }, + NULL, scaler_SuperEagle_32, expand_sai }, { "AdvMAME 2x", "advmame2x", SCALER_FLAGS_EXPAND, SCALE_FACTOR_TWO, - scaler_AdvMame2x_16, NULL, expand_1 }, + NULL, scaler_AdvMame2x_32, expand_1 }, { "AdvMAME 3x", "advmame3x", SCALER_FLAGS_EXPAND, SCALE_FACTOR_THREE, - scaler_AdvMame3x_16, NULL, expand_1 }, + NULL, scaler_AdvMame3x_32, expand_1 }, { "TV 2x", "tv2x", SCALER_FLAGS_NONE, SCALE_FACTOR_TWO, - scaler_TV2x_16, NULL, NULL }, + NULL, scaler_TV2x_32, NULL }, { "TV 3x", "tv3x", SCALER_FLAGS_NONE, SCALE_FACTOR_THREE, - scaler_TV3x_16, NULL, NULL }, + NULL, scaler_TV3x_32, NULL }, { "Timex TV", "timextv", SCALER_FLAGS_NONE, SCALE_FACTOR_ONE, - scaler_TimexTV_16, NULL, NULL }, + NULL, scaler_TimexTV_32, NULL }, { "Dot Matrix", "dotmatrix", SCALER_FLAGS_EXPAND, SCALE_FACTOR_TWO, - scaler_DotMatrix_16, NULL, expand_dotmatrix }, + NULL, scaler_DotMatrix_32, expand_dotmatrix }, { "Timex 1.5x", "timex15x", SCALER_FLAGS_NONE, SCALE_FACTOR_ONE_HALF, - scaler_Timex1_5x_16, NULL, NULL }, + NULL, scaler_Timex1_5x_32, NULL }, { "PAL TV", "paltv", SCALER_FLAGS_EXPAND, SCALE_FACTOR_ONE, - scaler_PalTV_16, NULL, expand_pal1 }, + NULL, scaler_PalTV_32, expand_pal1 }, { "PAL TV 2x", "paltv2x", SCALER_FLAGS_EXPAND, SCALE_FACTOR_TWO, - scaler_PalTV2x_16, NULL, expand_pal }, + NULL, scaler_PalTV2x_32, expand_pal }, { "PAL TV 3x", "paltv3x", SCALER_FLAGS_EXPAND, SCALE_FACTOR_THREE, - scaler_PalTV3x_16, NULL, expand_pal }, + NULL, scaler_PalTV3x_32, expand_pal }, { "HQ 2x", "hq2x", SCALER_FLAGS_EXPAND, SCALE_FACTOR_TWO, - scaler_HQ2x_16, NULL, expand_1 }, + NULL, scaler_HQ2x_32, expand_1 }, { "HQ 3x", "hq3x", SCALER_FLAGS_EXPAND, SCALE_FACTOR_THREE, - scaler_HQ3x_16, NULL, expand_1 }, + NULL, scaler_HQ3x_32, expand_1 }, }; scaler_type current_scaler = SCALER_NUM; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-08-08 14:05:05
|
Revision: 615 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=615&view=rev Author: fredm Date: 2009-08-08 14:04:58 +0000 (Sat, 08 Aug 2009) Log Message: ----------- Extract DisplayLink initialisation to it's own method. Modified Paths: -------------- branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m Modified: branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h =================================================================== --- branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h 2009-08-08 13:41:47 UTC (rev 614) +++ branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h 2009-08-08 14:04:58 UTC (rev 615) @@ -93,6 +93,7 @@ -(void) setServer:(id)anObject; -(id) initWithFrame:(NSRect)frameRect; -(void) awakeFromNib; +-(void) initDisplayLink; -(void) loadPicture:(NSString *) name greenTex:(Texture*) greenTexture Modified: branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m =================================================================== --- branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m 2009-08-08 13:41:47 UTC (rev 614) +++ branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m 2009-08-08 14:04:58 UTC (rev 615) @@ -249,6 +249,8 @@ statusbar_updated = NO; + [self initDisplayLink]; + return self; } @@ -285,7 +287,10 @@ [[self window] setContentAspectRatio:NSMakeSize(4.0,3.0)]; view_lock = [[NSLock alloc] init]; +} +-(void) initDisplayLink +{ CVReturn error = kCVReturnSuccess; CGDirectDisplayID displayID = CGMainDisplayID(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-08-08 13:41:54
|
Revision: 614 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=614&view=rev Author: fredm Date: 2009-08-08 13:41:47 +0000 (Sat, 08 Aug 2009) Log Message: ----------- Extract OpenGL initialisation. Modified Paths: -------------- branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m Modified: branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h =================================================================== --- branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h 2009-08-02 12:11:55 UTC (rev 613) +++ branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.h 2009-08-08 13:41:47 UTC (rev 614) @@ -88,6 +88,7 @@ -(void) createTexture:(Cocoa_Texture*)newScreen; -(void) destroyTexture; -(void) blitIcon:(Texture*)iconTexture; +-(void) prepareOpenGL:(NSOpenGLContext *)context; -(void) setServer:(id)anObject; -(id) initWithFrame:(NSRect)frameRect; Modified: branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m =================================================================== --- branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m 2009-08-02 12:11:55 UTC (rev 613) +++ branches/fuse_corevideo/fuse/fusepb/views/DisplayOpenGLView.m 2009-08-08 13:41:47 UTC (rev 614) @@ -203,11 +203,7 @@ [[self openGLContext] makeCurrentContext]; - /* Setup some basic OpenGL stuff */ - glPixelStorei( GL_UNPACK_ALIGNMENT, 1 ); - glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE ); - glClearColor(0.0f, 0.0f, 0.0f, 0.0f); - glColor4f(0.0f, 0.0f, 0.0f, 0.0f); + [self prepareOpenGL:[self openGLContext]]; greenCassette = [Texture alloc]; redCassette = [Texture alloc]; @@ -269,6 +265,20 @@ [super dealloc]; } +- (void) prepareOpenGL: (NSOpenGLContext *) context; +{ + long swapInt = 1; + + /* set to vbl sync */ + [context setValues:&swapInt forParameter:NSOpenGLCPSwapInterval]; + + /* Setup some basic OpenGL stuff */ + glPixelStorei( GL_UNPACK_ALIGNMENT, 1 ); + glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE ); + glClearColor(0.0f, 0.0f, 0.0f, 0.0f); + glColor4f(0.0f, 0.0f, 0.0f, 0.0f); +} + -(void) awakeFromNib { /* keep the window in the standard aspect ratio if the user resizes */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2009-08-02 12:12:07
|
Revision: 613 http://fuse-for-macosx.svn.sourceforge.net/fuse-for-macosx/?rev=613&view=rev Author: fredm Date: 2009-08-02 12:11:55 +0000 (Sun, 02 Aug 2009) Log Message: ----------- Add brach for experimenting. Added Paths: ----------- branches/fuse_corevideo/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |