Commit Graph

1312 Commits

Author SHA1 Message Date
asvitkine
5f8683b346 [Amadeusz Sławiński]
Patch fixing build on 2.6.35 and 2.6.36 kernels.
2010-11-27 00:14:09 +00:00
asvitkine
7a093cb1fb Fix issue from my last change where it ended up not defining
SIGSEGV_FAULT_ADDRESS_FAST at all on PPC builds.
2010-10-23 21:13:21 +00:00
asvitkine
1170b925ee fix sentinel warning 2010-10-19 03:30:20 +00:00
asvitkine
7665252790 [Geoffrey Brown]
For my work on digital preservation it's important to have "golden"
disk images that are not corrupted by user action.  In order to enable
this, I've added support for VHD virtual disks (especially snapshots !)
to the Linux and OS X versions of BasiliskII and SheepShaver.

The support uses the open source libvhd library which is part of xen,
available here:
  http://www.xen.org/products/xen_source.html

The piece that's needed is libvhd which is in tools/blktap2 and it can
be separately compiled.
The vhd-util enables creation of vhd disks and snapshots.

Compiling libvhd for OS X is non-trivial and required  1) a new config
and 2) a number of small changes to the include files and c files.
Compiling for linux is a snap.

I use this as follows.

1) create my "golden image"  gold.dsk in the usual way
2) create a snapshot:  vhd-util snapshot -n gold.vhd -p gold.dsk -m
3) use the snapshot in my prefs file

In my work the golden images are in an AFS system which means the golden
images can reside at "universal" addresses.   The snapshots are initially
tiny, so a complete virtual machine configuration -- prefs + snapshot is
quick to download for the end user.

The snapshots are copy on write which has the pleasant side effect of
letting the end user keep any changes.
2010-10-19 03:21:52 +00:00
asvitkine
cbedea23d2 [C.W. Betts]
This attached patch allows you to compile the Carbon Pasteboard services on
Snow Leopard if you are building for 32-bit, but not if you are building for 64.

To maintain backwards compatibility, the Carbon UI APIs aren't going to be
stripped from the 32-bit any time soon.  However, there is no worry about
that in 64, so they didn't include it.
2010-10-16 04:11:18 +00:00
asvitkine
90bdd12839 [Geoffrey Brown]
Add bin/cue support. The following should work:

1) Basilisk and SheepShaver with sdl-audio and bincue on linux and os x
2) SheepShaver with bincue and core audio on os x
2010-10-06 00:30:23 +00:00
asvitkine
7a9a6d18f2 . 2010-09-24 00:49:45 +00:00
asvitkine
7bb230abed apparently this makes newest SDL happy 2010-09-24 00:48:58 +00:00
asvitkine
64d95f756c [Edward Mendelson] Fix default keycode for ` key. 2010-08-23 23:51:34 +00:00
asvitkine
b51267b090 Fix warning with undeclared free() with clang 2010-08-22 19:43:29 +00:00
asvitkine
2be97f868a Fix compile on Snow Leopard. 2010-07-28 21:59:02 +00:00
asvitkine
556a42001b Some messy changes got into last commit that weren't supposed to be there. 2010-07-28 01:10:24 +00:00
asvitkine
930374bbc6 Do the right thing if host-triplet is a i386-i686, but gcc compiles by
default as x86_64. Fixes configure on Snow Leopard.
2010-07-28 01:07:45 +00:00
asvitkine
853db27159 Fixing sigsegv on Mach x86_64 - possibly a hack; I'm not sure why the
address returned doesn't have that bit set already.
2010-07-27 22:52:33 +00:00
asvitkine
812db6ed4f [Howard Spoelstra and Joel Mauras]
Patches to update Linux NetDriver to work with newer kernel versions.
2010-04-08 03:58:26 +00:00
asvitkine
8a0002de43 [Joel Mauras]
GCC has become too smart - we need to slice the binary created to be sure the
address of the trap is within the test addresses. This is why each trap occurs
between two case labels and a new section of assembly code is set in between.
2010-04-08 03:53:27 +00:00
asvitkine
ebfe00ba48 [Amadeusz Sławiński]
fix check on gcc 4.4.3
2010-03-10 01:05:49 +00:00
asvitkine
78027e7a46 [Amadeusz Slawinski]
These patches fix the issues with using newer versions of autoconf,
which led to generating broken configure script.
2010-03-07 00:45:10 +00:00
cebix
dca3b18d9d fixed warnings 2010-02-21 12:00:42 +00:00
cebix
d25bc19c6a fixed const-correctness 2010-02-21 12:00:01 +00:00
cebix
1fbacc9c73 fixed missing INT_MAX 2010-02-21 09:58:00 +00:00
cebix
71852dae82 fixed compiler warnings 2010-02-21 09:55:52 +00:00
asvitkine
6e5d8e4e85 Revert previous patch, as it was causing issues (as per basilisk-devel discussions). 2010-01-15 01:58:28 +00:00
asvitkine
989f5036fc Fix PrefsInit() calls to take correct number of parameter 2010-01-15 01:53:31 +00:00
asvitkine
6f230efee8 [ Patch from Jean-Pierre <chombier@free.fr> ]
Make lowmem be able to deal with x86_64 binaries.
2009-11-13 01:57:48 +00:00
nigel
5a266542af Make a few sections more like Unix/Makefile.in to simplify future resynchs -
includes fixes so that it will actually build again. Some whitespace fixes.
2009-11-07 08:05:42 +00:00
nigel
87b4500111 A few more fixes to thoroughly clean 2009-11-07 07:41:04 +00:00
nigel
f40d92d55b After universal binary build changes, repair the clean rules 2009-11-07 07:19:25 +00:00
nigel
4ab9ed8863 Allow linking after prefs API changes from 3 months ago. 2009-11-06 21:33:03 +00:00
asvitkine
02313b55c2 [Joel Mauras]
Patch for network suppor on 2.6 Linux Kernel.
2009-10-20 01:55:03 +00:00
asvitkine
bc6d6caec6 fix PrefsInit on amiga 2009-10-18 16:21:19 +00:00
asvitkine
14a68c2468 trying to get slightly better clip behaviour - swap the data back after
giving it to the host OS, and don't clear clipboard every time as some
apps will put many varieties of the same data in succession...
however, a better fix would be to patch the ROM ZeroScrap function in a
similar way as we patch GetScrap/PutScrap
2009-10-18 01:22:33 +00:00
nigel
5d4fa37892 Another build fix for changed Prefs methods 2009-10-08 09:20:51 +00:00
nigel
29951ad1a5 Re-synch with latest main_unix.cpp to work around method changes in LoadPrefs()
and PrefsInit(). Fixes build error reported by Jean-Jacques Cortes.
2009-10-08 08:56:23 +00:00
asvitkine
3856561935 Fix builds on platforms that may have gotten broken due to my vmdir changes. 2009-09-21 03:34:14 +00:00
asvitkine
cb55b15d39 Change #include <mach/mach_host.h> to #include <mach/mach.h> 2009-08-21 17:39:58 +00:00
asvitkine
5a8dfa1b36 [Charles Srstka]
Attached is a set of patches to port the precise timer that is currently used in the Linux and BeOS builds of SheepShaver to Mac OS X (and any other Mach-based operating systems).

Currently, the Linux build uses the clock_gettime() function to get nanosecond-precision time, and falls back on gettimeofday() if it is not present. Unfortunately, Mac OS X does not currently support clock_gettime(), and gettimeofday() has only microsecond granularity. The Mach kernel, however, has a clock_get_time() function that does very nearly the same thing as clock_gettime(). The patches to BasiliskII cause the timing functions such as timer_current_time() to use clock_get_time() instead of gettimeofday() on Mach-based systems that do not support clock_gettime().

The changes to SheepShaver involve the precise timer. The existing code for Linux uses pthreads and real-time signals to handle the timing. Mac OS X unfortunately does not seem to support real-time signals, so Mach calls are again used to suspend and resume the timer thread in order to attempt to duplicate the Linux and BeOS versions of the timer. The code is somewhat ugly right now, as I decided to leave alone the pre-existing style of the source file, which unfortunately involves #ifdefs scattered throughout the file and some duplication of code. A future patch may want to clean this up to separate out the OS-specific code and put it all together at the top of the file. However, for the time being, this seems to work.

This has not been extensively tested, because I have not been able to get my hands on a good test-case app for the classic Mac OS that would run inside the emulator and try out the timer. However, performance does seem to be better than with the pre-existing code, and nothing seems to have blown up as far as I can tell. I did find a game via a Google search -  Cap'n Magneto - that is known to have problems with Basilisk/SheepShaver's legacy 60 Hz timer, and the opening fade-to-color for this game appears to run much more smoothly with the precise timer code in place.
2009-08-17 20:44:30 +00:00
asvitkine
c6d88f213c [Michael Schmitt]
SheepShaver includes the C errno string in many error messages. One case is when it calls the memory allocation routines in the Basilisk II vm_alloc.cpp program.

This works when the memory allocation routine uses functions that set errno (such as mmap or malloc). For example, running SheepShaver on a Linux hosts produces meaningful error messages.

The problem is that when run on an OS X host, the memory allocation uses Mach routines such as vm_allocate, which do not set errno.

So when SheepShaver reported the error, it used a stale value of errno, which happened to be 17. The result was an extremely misleading error message: "Cannot map RAM: File already exists".

The fix is to change vm_alloc so that it translates Mac return codes into POSIX errno values.

It also initializes errno to 0 at the start of the memory allocation routine, so that no matter what path it takes, it won't return a stale value.
2009-08-11 07:43:46 +00:00
asvitkine
d0c46de7c3 BasiliskII side of changes to support .sheepvm bundles for SheepShaver 2009-07-23 19:19:14 +00:00
asvitkine
6db0c7453b [Patch by Kelvin Delbarre]
Fixes copy/paste errors in the Windows version of SheepShaver, wherein pasted
text would have a trailing null character or extra garbage after the end.
2009-04-14 15:17:03 +00:00
asvitkine
8ad0bbcc80 windows fix try#2 2009-04-13 23:13:20 +00:00
asvitkine
abb9d2eb24 make sigsegv work better with cygwin 2009-04-13 19:57:08 +00:00
asvitkine
b6f9f38f98 [patch by Dave Vasilevsky]
Fix for bug: SheepShaver compiled with VOSF off will not display
fullscreen on OS X. The VM boots, but the display is entirely black.
This was expected, I suppose, since video_refresh_dga() didn't
actually attempt to draw anything!

The patch fixes this. Notes:
* video_refresh_window() now takes an argument of type driver_base,
since nothing specific to driver_window was used
* video_refresh_dga() can now call video_refresh_window_static()
* update_display_static_bbox() now respects the destination having a
different bytes-per-row from the source
* fullscreen modes are now created for all depths
2009-03-03 08:14:53 +00:00
asvitkine
da540a74f6 [patch by Mike Sliczniak]
Here is a patch to allow compiling of SS and B2 with an SDL Framework. You can
get this by downloading from:

http://www.libsdl.org/release/SDL-1.2.13.dmg

Here is how I tested on an intel 32-bit mac with Mac OS X 10.5.6:

SS ./autogen.sh --disable-standalone-gui --enable-vosf --enable-sdl-framework --enable-sdl-framework-prefix=/Users/mzs/Library/Frameworks --enable-sdl-video --disable-sdl-audio --enable-addressing=real
--without-esd --without-gtk --without-mon --without-x

SS /autogen.sh --disable-standalone-gui --enable-vosf --disable-sdl-framework --disable-sdl-video --disable-sdl-audio --enable-addressing=real --without-esd --without-gtk --without-mon --with-x

B2 ./autogen.sh --disable-standalone-gui --enable-vosf --enable-sdl-framework --enable-sdl-framework-prefix=/Users/mzs/Library/Frameworks --enable-sdl-video --enable-sdl-audio --enable-addressing=real --without-esd --without-gtk --without-mon --without-x --enable-jit-compiler

B2 ./autogen.sh --disable-standalone-gui --enable-vosf --disable-sdl-framework --disable-sdl-video --disable-sdl-audio --enable-addressing=real --with-esd --without-gtk --without-mon --with-x --enable-jit-compiler

(esound does not really work on mac, it needs some better coreaudio patches.)

configure.ac for SS has two little additional fixes so that the Cocoa prefs gui
does not get built if you are building for X11 and so that you can use esd, sdl,
or coreaudio for sound.
2009-03-03 08:07:22 +00:00
asvitkine
31551389f6 change #else #if into #elif in case both are defined 2009-03-03 08:01:48 +00:00
asvitkine
3e12a80a3b [Patch by Mike Sliczniak]
I was testing some other SS patches and I noticed that when I ran an X11
build of SS there were not all the video modes I expected in the the
control strip. Mac OS X 10.5 changed the form of the DISPLAY environment
variable. The reason for this is that the DISPLAY variable looks like
this in Leopard:

/tmp/launch-XXXXXX/:0

The Xs are like in mktemp.
2009-02-19 07:09:35 +00:00
asvitkine
65eac29142 [patch from Mike Sliczniak]
Here is a patch that has a shell script cpr.sh to recursively copy directories but
discarding things that cause problems at least on 10.4 when making the .app bundles.
2009-02-19 06:52:03 +00:00
asvitkine
1b9d155673 [patch by Mike Sliczniak]
This patch helps to keep the audio from breaking-up on slow machines when using
SDL audio. On those slow machines you do still get the break-up every so often
but the sound tends not to break-up nearly as often. It is much better on the
ears. Notably often the system beeps do not have a pause in them.
Slow machine is <= 1 GHz G4.
2009-02-19 06:42:01 +00:00
asvitkine
8375c57047 move sigsegv_info_t declaration to header 2009-02-11 20:44:10 +00:00
asvitkine
ca2b9b5832 [Patch from Mike Sliczniak]
This first patch gets B2 and SS to build under Leopard and Tiger.

I tested this on a 32-bit intel 10.5.6 mac like so:

B2
./autogen.sh --disable-standalone-gui --enable-vosf --enable-sdl-video --enable-sdl-audio --enable-addressing=real --without-esd --without-gtk --without-mon --without-x

SS
./autogen.sh --disable-standalone-gui --enable-vosf -enable-sdl-video --disable-sdl-audio --enable-addressing=real --without-esd --without-gtk --without-mon --without-x --enable-jit

There is also a little tweak so that you can use sdl audio in SheepShaver when building for Mac OS X.
2009-02-11 19:23:53 +00:00