Commit Graph

1095 Commits

Author SHA1 Message Date
Andrew Tonner
bab9a35ff2 python build script: fix for top Makefile changes 2017-01-22 15:25:02 -08:00
Andrew Tonner
4326182b02 python build script: fix for fresh install 2017-01-22 15:08:33 -08:00
Andrew Tonner
cc0c168685 when making links, if the link already exists as a directory, remove the directory first 2017-01-22 15:07:47 -08:00
Andrew Tonner
4715db8f28 top level script should make sure directories it wants to put symlinks in exist 2017-01-22 00:58:09 -08:00
Andrew Tonner
fa9b425541 python build script: remove old config.status before rebuilding 2017-01-20 13:27:25 -08:00
Andrew Tonner
bdd2ee1190 python build script: do make clean if we reconfigured 2017-01-19 21:38:37 -08:00
Andrew Tonner
69a3c31fff Add configure option to disable VOSF; add it to python build script 2017-01-19 21:38:21 -08:00
Andrew Tonner
1229eb0ea9 if the originals for any symlinked dirs (which are just copies under msys/mingw) have been updated, delete the copies and make links again 2017-01-19 21:14:46 -08:00
Andrew Tonner
d8f5d43a9c python build script: when getting modified time for a directory, also check contents' times 2017-01-19 05:13:01 -08:00
Andrew Tonner
21a6d39d4b python build script: jit option 2017-01-19 05:12:03 -08:00
Andrew Tonner
dae89116e7 python build script: option to copy the supplied precompiled dyngen output files instead of running dyngen 2017-01-18 21:11:21 -08:00
Andrew Tonner
1af0c4685a python build script: give a better error message when there is a syntax error in the JSON cache file 2017-01-18 19:57:34 -08:00
Andrew Tonner
9efd46d396 build script pep-8 2017-01-18 19:31:27 -08:00
Andrew Tonner
bd3fecc780 build script cleanup & renames & updating TODOs; cleanup gitignore 2017-01-18 19:29:13 -08:00
Andrew Tonner
e303e314f5 use explicit __thiscall calling convention for member function casts on mingw32 2017-01-18 19:11:19 -08:00
Andrew Tonner
ffd6294943 build script comments & todos & cleanup 2017-01-18 19:01:49 -08:00
Andrew Tonner
7ef9f10712 don't undef __STRICT_ANSI__ since it's not necessary with gnu++11 2017-01-18 19:00:42 -08:00
Andrew Tonner
83ea8b0779 Merge remote-tracking branch 'cebix/master' into windows_build_script_test_merge 2017-01-18 16:49:19 -08:00
Andrew Tonner
b90b67971c fpclassify return type may vary 2017-01-18 16:01:52 -08:00
Andrew Tonner
aabd23408d option to run a shell command 2017-01-18 15:02:20 -08:00
Andrew Tonner
17b977b6ad fix silly name of inline bswap 16 2017-01-18 14:48:02 -08:00
Andrew Tonner
e0783e5c20 add option to copy sheepshaver exe after build 2017-01-18 14:47:21 -08:00
Andrew Tonner
fa8c87acff add LDFLAGS for static libgcc and stdc++ so we don't need dlls for those 2017-01-18 14:46:55 -08:00
Andrew Tonner
0ffa196f29 remove PASCAL undef 2017-01-18 14:44:33 -08:00
Andrew Tonner
daac4f58ec reverse serial_windows.cpp symlink removal 2017-01-18 04:52:19 -08:00
Andrew Tonner
b74ae092c9 builds on mingw32 without jit, still untested 2017-01-18 04:41:40 -08:00
Brian Recchia
43df07e706 Update XcodeBuildHowTo.txt
removed dungeons from project
2017-01-16 16:00:36 -05:00
Alexei Svitkine
181634ab31 Fix more Xcode8 warnings and tweak project settings. 2016-12-17 23:31:03 -05:00
Alexei Svitkine
4fffae7ff8 Fold clip into sheepshaver target in Xcode8. 2016-12-17 22:59:22 -05:00
Alexei Svitkine
3985c6afdc Make some Xcode8 project settings consistent. 2016-12-17 22:52:59 -05:00
Alexei Svitkine
d19e757e1c Fix some more Xcode8 warnings & analyze warnings. 2016-12-17 22:24:00 -05:00
Alexei Svitkine
1f211fb37b fix some warnings in Xcode8 build 2016-12-17 22:04:57 -05:00
Alexei Svitkine
5538376dc8 Add an Xcode 8 project for SheepShaver that builds an x86 32-bit
application (since 64-bit doesn't work with current OS X) and uses
pre-built (by GCC) compiler JIT source files.
2016-12-17 21:38:25 -05:00
Adam Sampson
b44a674d7e Add MacTimeToTime to SheepShaver's macos_util.
Commit e1693eb92b made extfs_unix.cpp
require this function in both BasiliskII and SheepShaver, but only added
the function itself to BasiliskII.
2016-08-20 03:14:21 +01:00
Dave Vasilevsky
f64b888f78 Make dyngen_barrier() stronger on x86
GCC 5 will optimize out an empty 'asm volatile' in op_sraw_T0_T1, and then give us multiple return points. Add a nop so it doesn't do this, at the cost of lower code density.
2015-12-28 23:28:17 -05:00
Dave Vasilevsky
c91ef547bd Allow building with GCC 5
* Disable -freorder-blocks-and-partition, since it can override -fno-reorder-blocks
* Disable look-header copying, since it tends to cause early returns
* Disable argument pushing, we don't want to change esp
2015-12-28 23:26:19 -05:00
Dave Vasilevsky
4b5f3bd87b Enable real addressing by disabling PIE 2015-12-27 21:15:26 -05:00
Dave Vasilevsky
a89bb77bde Fix DiskType missing symbol 2015-12-27 20:49:56 -05:00
Alexei Svitkine
db375713bb Fix CrossPlatform files for SheepShaver build and a warning. 2015-12-26 02:17:08 -05:00
Alexei Svitkine
934fbca480 More updates for CrossPlatform dir move. 2015-12-26 02:11:18 -05:00
Alexei Svitkine
daafe565a1 Fix file includes following move to CrossPlatform. 2015-08-09 18:53:51 -04:00
Alexei Svitkine
a99d496fd4 Fix Xcode project following move of files and fix a warning. 2015-08-09 18:50:06 -04:00
Alexei Svitkine
1dd04867dd Update 'make links' symlinks to Basilisk following move to
CrossPlatform.
2015-08-09 18:46:03 -04:00
asvitkine
7e111f6fc5 Merge pull request #73 from Masaq-/macipx
Patch to make MacIPX work in SheepShaver
2015-08-09 18:14:18 -04:00
Alexei Svitkine
a18ecb8549 Fix SheepShaver Launcher build. 2015-06-29 12:54:51 -04:00
Alexei Svitkine
d3cb3ca95f Fix some warnings when building Xcode project. 2015-06-29 11:50:50 -04:00
Masaq-
9fb6b134ec build ethernet ndrv with CodeWarrior Pro 6.3 2015-06-12 01:28:02 +00:00
Masaq-
5321720764 enable raw mode for Ethernet ndrv driver 2015-06-12 01:27:50 +00:00
Masaq-
c465aaec9c enable raw mode for Ethernet stub driver 2015-06-12 01:27:32 +00:00
Alexei Svitkine
4f700dd489 Remove unnecessary resource forks and finder info and update
the finder info for the CW project to carry the .mcp extension.
2015-06-06 12:32:29 -04:00
Alexei Svitkine
1cef34125c Add Etherner drive source code and CodeWarrior project file, from:
https://web.archive.org/web/20131124123749/http://gwenole.beauchesne.free.fr/sheepshaver/files/SheepShaver-Ethernet.tar.bz2

The project can be used in CodeWarrior to build a binary blob that
can then be converted into EthernetDriverFull.i by hexconv.cpp.
2015-06-06 12:15:29 -04:00
asvitkine
6e06a22dd5 Merge pull request #59 from atmaxinger/master
Allow the user to specify wether a Volume shall be treated as CDROM
2015-04-27 00:09:44 -04:00
Maximilian Irlinger
85c81e3848 Remove all tab line indents from VMSettingsController.mm 2014-09-19 07:28:21 +02:00
Maximilian Irlinger
72c79d1a6d Simplify some code, style changes 2014-09-19 07:19:42 +02:00
Maximilian Irlinger
4ee413bc35 Identation fixes 2014-09-19 07:19:11 +02:00
Maximilian Irlinger
aea2b09d47 Identation & bracket position changes 2014-09-15 07:37:49 +02:00
Maximilian Irlinger
50787359a5 Fix some more identation 2014-09-15 07:35:53 +02:00
Maximilian Irlinger
6cdb38e234 Fix some identation 2014-09-15 07:33:03 +02:00
Maximilian Irlinger
2721c8b694 Change position of if bracket 2014-09-15 07:31:53 +02:00
Maximilian Irlinger
71932affc8 One more style change 2014-09-15 07:27:40 +02:00
Maximilian Irlinger
b29e53229d Fix tabs in VMSettingsController.h 2014-09-15 07:11:45 +02:00
atmaxinger
df35760137 Some coding style changes 2014-09-15 07:09:09 +02:00
Dave Vasilevsky
4dd7f9236f Change GUI object extension, so GCC doesn't think we're Go 2014-03-05 20:11:55 -05:00
Maximilian Irlinger
fd62819e49 User can now specify wether the selected disk image is a CDROM (required for some games e.g. Diablo 2) 2014-03-02 14:32:57 +01:00
Alexei Svitkine
a3abfdc041 Fix building Obj-C code with SDK >= 10.6. 2014-01-05 10:16:51 -05:00
Alexei Svitkine
86c50b78fe update sheepthreads.c to work with newer PPC Linux distros
Patch by "Kernigh" posted on emaculation.com forums.
2013-11-05 22:39:34 -05:00
Alexei Svitkine
43779be775 Merge branch 'master' of https://github.com/cebix/macemu 2013-08-12 18:48:57 -04:00
Alexei Svitkine
56db3ed482 add xcode build instructions doc, based on my original email to
the basilisk list
2013-08-12 18:48:34 -04:00
Dave Vasilevsky
3914fd4a20 Mac: Allow selecting bundles in the disk prefs
Users should be able to select sparsebundles in the disk prefs, but should
still be able to navigate inside .sheepvm bundles.

See https://github.com/cebix/macemu/pull/25#issuecomment-15900806
2013-08-10 22:11:22 -04:00
Iván Fernández
e27c724b52 Added the new SheepShaver icon by Weedy Weed Smoker 2013-06-19 18:07:16 +02:00
Dave Vasilevsky
e3710843b1 FreeBSD amd64 fixups
* Look for CPU named "amd64" as well as "x86_64"
* Don't use /dev/ptmx on FreeBSD
* On amd64 FreeBSD uses SIGSEGV, not SIGBUS
* Use MAP_FIXED to force allocations within 32-bits, it's the only way
* Need <sys/param.h> for SHMLBA
* The old offsetof() fix is no longer needed
* Preliminary work on instruction skipping
2013-05-30 21:34:30 -04:00
Dave Vasilevsky
47ec992f6d Make the standalone GUI build on Linux again 2013-04-05 17:30:23 -04:00
Dave Vasilevsky
d23a421a49 Work even if TRUE is undefined 2013-03-27 03:38:59 -04:00
Hans de Goede
d6416e2d07 don't strip SS when installing 2013-03-12 19:05:07 -04:00
Hans de Goede
469dce168d fix whitespace issue in configure.ac 2013-03-12 19:02:33 -04:00
Alexei Svitkine
9f5d67497d update xcode project for sparsebundle support 2013-03-12 18:50:44 -04:00
Dave Vasilevsky
b05e0ba074 sparsebundle: Fix spacing in Makefile 2013-03-11 17:16:32 -04:00
Dave Vasilevsky
9f77458b75 Fix spacing 2013-03-03 17:05:02 -05:00
Dave Vasilevsky
17aabc4c40 Generify vhd, too 2013-02-24 15:57:18 -05:00
Dave Vasilevsky
917984e6ec Add to make links 2013-02-24 14:15:21 -05:00
Dave Vasilevsky
2a15911938 Full sparsebundle implementation 2013-02-24 14:11:29 -05:00
Dave Vasilevsky
091db05aac Partial implementation of sparsebundles; still needs Info.plist parsing 2013-02-24 13:02:16 -05:00
Alexei Svitkine
407edc8bfd Cleanup shm cleanup code. 2012-09-02 11:29:16 -04:00
Alexei Svitkine
77862b2103 Update version in version.h too. 2012-07-07 21:25:44 -04:00
Alexei Svitkine
3ddc4ff65d Make version number show up in Finder's get info and update Xcode project. 2012-07-07 14:08:38 -04:00
Alexei Svitkine
6d5a8230e6 Bump SheepShaver version to 2.4. 2012-07-07 11:51:31 -04:00
Alexei Svitkine
f32285ca47 Update SheepShaver xcode project for pict.c/pict.h addition 2012-07-07 11:39:56 -04:00
Alexei Svitkine
ea862c2bea Include pict.c and pict.h in 'make links'. 2012-07-07 11:33:57 -04:00
Charles
6f2635ee31 More clipboard-related fixes for Basilisk / SheepShaver
This patch fixes one lingering problem with the 64-bit clipboard code; the way it was designed, the Mac clipboard was being cleared every time a single item was being requested by GetScrap, causing clipboards with multiple items to be unceremoniously whittled down to one. On the other hand, a similar issue was causing some items to get duplicated on the host pasteboard. This patch fixes the issue by making conversion between the host pasteboard and the Mac clipboard a singular operation; when the pasteboard data changes on the host side, it is all converted and sent to the Mac pasteboard at once, and similarly, all Mac clipboard data is sent to the host pasteboard in one operation. Also, data from the host side is copied to the Mac clipboard only if it has changed since the last check, which should improve performance as conversions will not be done over and over every time the Mac side checks whether the scrap has changed.

In addition, I've added a rudimentary PICT converter. It's rudimentary at the moment, only going in one direction, converting to PICT and not from PICT, and currently it always rasterizes the source image and creates a PICT containing bitmap data. However, it's a start, and it should solve Ronald's issue with copying images from OS X to Mac OS. In the future, more could possibly be added. I've put the new PICT code in the main source directory instead of in the MacOSX subdirectory, so that it can be used by other platforms if needed.

I would like to leave the license on the new PICT code as "Public Domain" if that is okay.

Thanks,
Charles
2012-07-07 11:30:21 -04:00
Alexei Svitkine
68e71eb93e Update SheepShaver.xcoeproj to require 10.6 SDK for 64-bit code. 2012-07-05 22:30:40 -04:00
CharlesJS
2b51d635a7 International text clipboard patch for Basilisk II and SheepShaver
This patch adds support for international text to Basilisk II / SheepShaver's clipboard support. Text copied on the host side is converted from Unicode to the format that the classic Mac OS Script Manager expects, with localized font variants used if they are available on the emulated system (unfortunately, if a localized font is not available, the text will render incorrectly due to the nature of the Script Manager). When text is copied on the emulated system, the script of the current font is used to determine the encoding of the text, and it is converted to Unicode to be pasted on the host side.

This patch supports copying and pasting text containing multiple scripts; for example, "EnglishČeský日本語", where ranges (0, 7) and (8, 3) are Roman, (7, 1) and (11, 1) are Central European, and (12, 3) is Japanese, can be freely copied and pasted back and forth between the host and emulated platforms, provided that the emulated platform has localized Central European and Japanese fonts installed.

In order to get this to work, I rewrote pretty much all of clip_macosx64.mm. The code now completely uses the Cocoa framework rather than CoreFoundation and Pasteboard Manager. Because this API now uses the Mac OS X 10.6+ version of the pasteboard API, the minimum version of OS X supported by clip_macosx64.mm is now 10.6. I think this shouldn't be a problem, since the 32-bit version still exists, but if this version needs to support older releases, let me know and I can add version-check code to do so. One of the benefits of using the modern API, however, is that our rich-text format is no longer hard-coded to the RTF format, which means we have automatic support for any other format used by the OS X pasteboard system, which as of Lion seems to include RTF, UTF-16 text, UTF-8 text, 'ut16'/'ustl', and others, and which may be supplemented by other formats in future releases of OS X.

I hope you find this patch useful.

Charles
2012-07-05 22:27:09 -04:00
Alexei Svitkine
4d5ed80740 dyngen: Fix more leaks. 2012-07-01 13:52:45 -04:00
Alexei Svitkine
a3a45f54e9 dyngen: Don't leak func_name on realloc and fix indentation. 2012-07-01 13:48:09 -04:00
Alexander von Gluck IV
668b8f14ba dyngen: Don't leak func_name if realloc fails 2012-07-01 13:46:12 -04:00
Alexander von Gluck IV
612761981f dyngen: Don't leak already malloc'ed demangled_name 2012-07-01 13:27:56 -04:00
CharlesJS
ed28705ee3 Patch for copying and pasting styled text in Basilisk II / SheepShaver
Added code to parse the Classic Mac OS 'styl' resources, allowing formatted text to be copied and pasted out of SheepShaver, not just plain text. In order to do this, I made some changes to the emul_op mechanism, patching ZeroScrap() in addition to the scrap methods that were already being patched. The reason for this is that since we need to read data from multiple items that are on the clipboard at once, we cannot simply assume a zero at the beginning of each PutScrap() operation.

This patch uses RTF to store styled text on the host side; unfortunately, since the APIs to convert to and from RTF data are in Cocoa but not in CoreFoundation, I had to write the new portions in Objective-C rather than C, and changed the extension from .cpp to .mm accordingly. In the future, if we are confident that this file will only be used on Mac OS X 10.6 and up, we can rewrite the Pasteboard Manager code to use NSPasteboardReading/Writing instead. This would allow us to read and write NSAttributedString objects directly to and from the pasteboard, which would make sure we were always using the OS's preferred rich text format internally instead of hard-coding it specifically to RTF as in the current implementation.

I believe that this patch should also fix the problem Ronald reported with copying accented characters.

Since I am new to 68k assembly and the emul_op mechanism, I would appreciate if someone could double-check all my changes to make sure that I have done everything correctly.

Thanks,
Charles
2012-06-30 22:20:55 -04:00
Alexei Svitkine
3fc0e4dd98 Rename clip_macosx64.cpp to clip_macosx64.mm in preparation for a patch from Charles Srstka. 2012-06-30 21:40:16 -04:00
Alexei Svitkine
b1d756ce96 Ignore Info.plist. 2012-06-21 21:55:53 -04:00
Amadeusz Sławiński
8d5dc328e1 struct to class
In file included from ../kpx_cpu/sheepshaver_glue.cpp:32:
In file included from ../kpx_cpu/src/cpu/ppc/ppc-cpu.hpp:24:
../kpx_cpu/include/basic-cpu.hpp:50:1: warning: struct 'task_struct' was previously declared as a class [-Wmismatched-tags]
struct task_struct;
^
../kpx_cpu/include/task-plugin.hpp:27:7: note: previous use is here
class task_struct;
      ^
In file included from ../kpx_cpu/sheepshaver_glue.cpp:32:
In file included from ../kpx_cpu/src/cpu/ppc/ppc-cpu.hpp:24:
../kpx_cpu/include/basic-cpu.hpp:52:1: warning: 'basic_cpu' defined as a struct here but previously declared as a class [-Wmismatched-tags]
struct basic_cpu
^
../kpx_cpu/include/task-plugin.hpp:29:1: note: did you mean struct here?
class basic_cpu;
^~~~~
struct
../kpx_cpu/sheepshaver_glue.cpp:725:13: warning: unused function 'dump_log' [-Wunused-function]
static void dump_log(void)
            ^
3 warnings generated.
2012-06-21 21:51:52 -04:00
Alexei Svitkine
70f9c4dab9 Remove unused labels. 2012-06-21 21:48:32 -04:00
Alexei Svitkine
a40257b33a Use clip_macosx64.cpp on MacOSX autoconf-based builds.
Note: Checks for __LP64__ explicitly because build/host/target
all get reported as i686-apple-darwin10.8.0 (not x86_64).

Also fixes a compile warning in clip_macosx64.cpp.
2012-06-21 21:28:55 -04:00
Alexei Svitkine
99e8914019 Add Passteboard Manager implementation of Mac OS X clipboard code.
Enabled by default for 64-bit Xcode build.

(configure changes forthcoming)

Based on patch by Jean-Pierre Stierlin <chombier@free.fr>.
2012-06-21 20:08:07 -04:00
Alexei Svitkine
8c9f1475d5 Ignore Darwin utils. 2012-06-19 00:41:01 -04:00
Alexei Svitkine
1bded034ad Support more reloc types in dyngen.c. 2012-06-19 00:17:30 -04:00
Amadeusz Sławiński
512c2f5288 Fix warning when doing ./autogen.sh
+ Running autoheader: configure.ac:1393: warning: AC_CACHE_VAL(ac_cv_gcc_no_strict_aliasing, ...): suspicious presence of an AC_SUBST in the second argument, where no actions should be taken
2012-06-18 20:35:57 -04:00
Alexander von Gluck IV
5dc5f50d46 UNIX main: don't set int to NULL 2012-06-18 20:33:30 -04:00
Alexei Svitkine
ece0a03798 Ignore Xcode build files. 2012-06-18 19:14:19 -04:00
Alexei Svitkine
681a9aa5c1 Ignore dyngen files generated by Xcode build. 2012-06-18 19:11:43 -04:00
Christian Bauer
3c66c348c2 ignore generated files 2012-06-18 20:14:22 +02:00
Christian Bauer
ca96911c07 add SheepShaver -> BasiliskII symlinks 2012-06-18 20:02:42 +02:00
asvitkine
d3787c146f force inlining to fix building with newer versions of gcc 2012-06-18 05:09:46 +00:00
asvitkine
d3267154c8 check for sys/stropts.h and stropts.h headers 2012-06-17 23:14:11 +00:00
asvitkine
8db4abc28d [Alexander von Gluck IV] BeOS: Fix missing ;
4fb0f92aaf065276712a36cb169081ebc41eeeb4
From: Alexander von Gluck IV <kallisti5@unixzen.com>
Date: Sun, 17 Jun 2012 03:47:26 +0000
Subject: [PATCH] Haiku: Fix missing ;
2012-06-17 16:52:58 +00:00
asvitkine
6566ae16fa Dump PPC disassembly on crash 2012-06-16 02:16:40 +00:00
asvitkine
0b76eda93c [Steven Noonan] configure.ac: fix TUN/TAP detection on Linux
28ff27fc3ae3878fe9ca589f3c55c4261814266a
From: Steven Noonan <steven@uplinklabs.net>
Date: Wed, 1 Jun 2011 01:34:07 -0700
Subject: [PATCH] configure.ac: fix TUN/TAP detection on Linux

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
2012-06-15 23:00:24 +00:00
asvitkine
a5cf327a44 [Steven Noonan] configure.ac: enable JIT on 64-bit Intel Mac
d4dc0c70b24dc5981e752403e8fe047637d712a1
From: Steven Noonan <steven@uplinklabs.net>
Date: Wed, 1 Jun 2011 17:48:33 -0700
Subject: [PATCH] configure.ac: enable JIT on 64-bit Intel Mac

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
2012-06-15 22:58:29 +00:00
asvitkine
9325e35636 fix gamma code so that fades in Ferazel's Wand actually work 2012-03-28 03:30:49 +00:00
asvitkine
2676e1bd13 fix gamma fade code to make Ferazel's Wand launch 2012-03-27 03:43:28 +00:00
asvitkine
c13fd620a1 fix some unused vars warnings 2012-03-01 04:25:10 +00:00
asvitkine
e9b8dd6877 always use the version of the code that scans backward on x86 2012-03-01 04:15:59 +00:00
asvitkine
6badecc0da commit PPC testsuite docs from a web.archive.org cache of Gwenole's site 2012-02-12 16:56:48 +00:00
asvitkine
14355b28cd fix test-powerpc build 2012-02-12 16:41:28 +00:00
asvitkine
f964fdd22c Force tcp_input.c to be compiled with -O1 to workaround a compiler bug. 2012-02-11 02:03:36 +00:00
asvitkine
9c2b182d9a explicitly add /Library/Frameworks to framework search path 2012-01-18 23:58:31 +00:00
asvitkine
f84ed6a008 add LSMinimumSystemVersionByArchitecture to info plist 2012-01-15 23:28:29 +00:00
asvitkine
8ebf82224f tweaking compiler settings for 64-bit build 2012-01-15 23:26:52 +00:00
asvitkine
3024435dd0 change compiler options for better performance 2012-01-15 23:13:39 +00:00
asvitkine
3eb4344a98 prefer 32-bit over 64-bit on intel 2012-01-13 02:49:45 +00:00
asvitkine
172b7e6982 change sdk / macosx versions a bit 2012-01-06 23:43:10 +00:00
asvitkine
626306f902 add a script to change SDL framework's load path 2012-01-06 23:38:33 +00:00
asvitkine
447a06d9c3 include system frameworks in a standard way 2012-01-06 23:23:54 +00:00
asvitkine
e76ac8df89 fix Info.plist in xcode project 2012-01-05 23:28:00 +00:00
asvitkine
f989745171 copy SDL framework step 2012-01-04 23:12:54 +00:00
asvitkine
3c693c0b8d add ppc build to xcode project 2012-01-02 00:03:37 +00:00
asvitkine
da96cfd110 separate kpx_cpu into separate xcode target 2012-01-01 23:46:28 +00:00
asvitkine
f68b4c1152 remove some code that was accidentally committed 2012-01-01 23:18:36 +00:00
asvitkine
60779756ab better cleanup of shared memory on failure 2012-01-01 19:11:31 +00:00
asvitkine
84a6ec3a05 wrap init_sdl() in USE_SDL ifdef 2012-01-01 18:51:40 +00:00
asvitkine
df4342b6db fix compile error introduced by my recent refactoring 2012-01-01 18:50:01 +00:00
asvitkine
78ea64bbd9 fix ppc build breakage 2011-12-30 17:38:39 +00:00
asvitkine
4161b3d153 successfull built of x86 32/64 UB via xcode proj 2011-12-30 01:33:26 +00:00
asvitkine
dc0993ca6a trying to get xcode project to build a fat 32/64 bit binary - not yet there 2011-12-30 00:58:32 +00:00
asvitkine
d3ec12fc1c add utils_macosx.mm/h 2011-12-29 07:43:25 +00:00
asvitkine
dcf65b4d27 move NSAutoReleasePool_wrap() into its own file 2011-12-29 07:39:56 +00:00
asvitkine
c78c3046db refactor init_sdl() into a function 2011-12-28 23:33:04 +00:00
asvitkine
d58da945c6 refactor install_signal_handlers() into its own function 2011-12-28 23:30:25 +00:00
asvitkine
7930deea4d refactor load_mac_rom() into a function 2011-12-28 23:24:30 +00:00
asvitkine
cea73a29ed refactor get_system_info() into a function 2011-12-28 23:17:29 +00:00
asvitkine
57416ef7b4 add pre-generated config files for Xcode project
so far, only the x86-64 config
2011-12-28 22:38:03 +00:00
asvitkine
97c7aa5756 delete unused vars 2011-12-28 20:21:40 +00:00
asvitkine
fb4a2a6dc6 fix warning casting pointer to int 2011-12-28 20:15:08 +00:00
asvitkine
f11ad3129b fix release build 2011-12-28 18:17:10 +00:00
asvitkine
eebe0b0c13 don't deref desc after deleting it! 2011-12-28 18:14:58 +00:00
asvitkine
c2c88efcc3 first stab at xcode project for sheepshaver - this is still a work in progress 2011-12-28 18:01:17 +00:00
asvitkine
0f472ed95e use non-deprecated methods 2011-12-28 17:51:56 +00:00
asvitkine
a97df3c953 fix a warning 2011-12-27 07:22:18 +00:00
asvitkine
faadf4cbb1 correct whitespace 2011-12-26 22:44:22 +00:00
asvitkine
18729e6f07 [Douglas Mencken]
Add recognition for 970MP processors.

I took these values from this kernel patch from year 2005:
http://lists.ozlabs.org/pipermail/linuxppc64-dev/2005-July/004688.html
2011-12-26 22:41:53 +00:00
asvitkine
39a3b75024 abort editing virtual machine name if any action is chosen 2010-12-28 02:57:46 +00:00
asvitkine
f1a2620576 - Add a prefix header which is used in place of SheepShaver's config.h to
allow correct compilation of the Universal Binary.
- Update project to work with Xcode on Snow Leopard.
- Add missing #include <unistd.h>
2010-12-28 02:50:55 +00:00
asvitkine
453f0e8a28 Add macro guards for config.h. 2010-12-28 02:36:09 +00:00
asvitkine
63cf1fadc3 [Geoffrey Brown]
VHD support
2010-10-19 22:20:01 +00:00
asvitkine
415e7d3f68 [Dave Dixon]
Patch file to fix JIT compiler on 64-bit Mac OS X 10.6 when using gcc 4.2.
This patch removes register rbx usage when compiling on 64-bit OS X.
2010-10-18 22:02:29 +00:00
asvitkine
59f51815f7 [Geoffrey Brown]
bin/cue support
2010-10-06 00:34:15 +00:00
asvitkine
b2d58d423e Fix compile problem with --enable-jit=no 2010-09-24 00:36:34 +00:00
asvitkine
bb627f28fe add braces around @interface declaration to compile with clang 2010-08-22 19:33:25 +00:00
asvitkine
14339fb01f add NULL return value to macho timer function 2010-08-22 19:31:36 +00:00
asvitkine
8a062fefdc fix printf safety warning 2010-08-22 18:57:11 +00:00
asvitkine
15b346b031 use setenv in preference of putenv 2010-08-22 18:56:11 +00:00
asvitkine
e03ad25362 Fixed for Snow Leopard build. 2010-07-27 03:14:34 +00:00
asvitkine
0973ee0e16 Fix compile on Snow Leopard. 2010-07-27 02:57:10 +00:00
asvitkine
da828ffc73 Fix prefs_macosx.mm compile issue with Snow Leopard. 2010-07-27 02:55:09 +00:00
asvitkine
efad3ba70a use linked list for timers to avoid running out of descriptors 2010-05-05 00:29:46 +00:00
asvitkine
614b33bcd8 [Joel Mauras]
Let makefile build relatives links between SheepShaver and BasiliksII so
they can be moved anywhere into the file system as long as they stay side
by side without having to rebuid the links.
2010-04-08 03:50:26 +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
asvitkine
b3c5b07f54 fix more platform compile failures caused by refactoring, based
on patch by Amadeusz Sławiński
2010-03-02 00:37:17 +00:00
cebix
4f28f70207 fixed warnings 2010-02-21 09:59:52 +00:00
cebix
c6a52b6eb2 fixed const-ness 2010-02-21 09:59:14 +00:00
cebix
23b0bda1a5 fixed const-ness and compiler warnings 2010-02-21 09:58:47 +00:00
asvitkine
2b03c79d48 fix dyngen.c breakage on non-MACHO platforms 2010-01-15 01:47:17 +00:00
asvitkine
5ca84603bc [ Tim Douglas <timdoug@gmail.com> ]
use an auto release pool around "Preferences..." menu item creation on Mac OS X
2010-01-02 22:08:51 +00:00
asvitkine
6677e5824c [ Tim Douglas <timdoug@gmail.com> ]
use an auto release pool around modal prefs dialog on Mac OS X
2010-01-02 19:24:24 +00:00
asvitkine
8e1a2f7f48 use correct variable name 2009-11-19 02:07:44 +00:00
asvitkine
ded367a176 [ Patch from Jean-Pierre <chombier@free.fr> ]
More changes to support mach-o x86_64.
2009-11-13 01:46:35 +00:00
asvitkine
f4705aa5e1 code whitespace cleanup and patch_relocations() function 2009-11-08 19:11:02 +00:00
asvitkine
df4aef1fba [ Patch from Jean-Pierre <chombier@free.fr> ]
Dyngen patch for Snow Leopard x86_64 compatibility.
This work is mostly based on the unofficial and incomplete x86_64 mach-o patch of qemu.
2009-11-08 18:16:31 +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
c294074fa7 Launcher: Check if file exists. 2009-08-31 05:08:21 +00:00
asvitkine
63b4f8d704 better default prefs 2009-08-30 17:56:30 +00:00
asvitkine
f06f035428 Launcher: Renaming VMs in list. 2009-08-26 07:09:06 +00:00
asvitkine
868bb283d2 [Michael Schmitt]
Attached is a patch to SheepShaver, to fix a problem where the ROM file can only be found on the first boot.

When a user creates a new SheepShaver machine, there is no preference file, so there is not ROM path preference. SheepShaver has logic so that in this case, it will look for a ROM file named "ROM" or "Mac OS ROM" in the current directory.

The user starts SheepShaver in order to get to the built-in Preferences Editor, and changes various settings (such as creation of a hard disk). Then the user reboots.

If the user forgot to set the ROM path at this time, then SheepShaver can no longer boot. The only recourse is for the user to find and delete the preferences file, or use an external preferences editor to set the ROM path.

The fix is to change SheepShaver to use the default ROM names when either the rom path is null (no preference) OR an empty string (preference exists with no rom path).
2009-08-26 00:11:56 +00:00
asvitkine
0075c1faab [Michael Schmitt]
Attached is a patch to SheepShaver, to fix a SIGSEGV crash that occurs when booting a new machine with OS 7.5.

One of the bytes in the xPRAM portion of the NVRAM controls which version of the system memory manager is used by OS 7.5: the legacy 680x0 memory manager or the PPC memory manager (aka the "Modern Memory Manager"). OS 7.5 is supposed to be able to use either one, but for some reason SheepShaver crashes on boot if the 680x0 version is used.

Later Mac OS versions don't have this problem. They don't support the 680x0 version, so they force the PPC version to be used.

The fix is to have SheepShaver initialize the NVRAM to use the PPC memory manager. Note: This is supposed to be the default in OS 7.5.

This affects when a new NVRAM file is used, or when it is initialized after doing zapping the PRAM.
2009-08-26 00:06:29 +00:00
asvitkine
53e416c4b7 Fix position of "browse" button for keycodes file when resizing prefs window 2009-08-18 18:30:19 +00:00
asvitkine
b3b5db5456 [Michael Schmitt]
Attached is a patch to SheepShaver to fix memory allocation problems when OS X 10.5 is the host. It also relaxes the 512 MB RAM limit on OS X hosts.


Problem
-------
Some users have been unable to run SheepShaver on OS X 10.5 (Leopard) hosts. The symptom is error "ERROR: Cannot map RAM: File already exists".

SheepShaver allocates RAM at fixed addresses. If it is running in "Real" addressing mode, and can't allocate at address 0, then it was hard-coded to allocate the RAM area at 0x20000000. The ROM area as allocated at 0x40800000.

The normal configuration is for SheepShaver to run under SDL, which is a Cocoa wrapper. By the time SheepShaver does its memory allocations, the Cocoa application has already started. The result is the SheepShaver memory address space already contains libraries, fonts, Input Managers, and IOKit areas.

On Leopard hosts these areas can land on the same addresses SheepShaver needs, so SheepShaver's memory allocation fails.


Solution
--------
The approach is to change SheepShaver (on Unix & OS X hosts) to allocate the RAM area anywhere it can find the space, rather than at a fixed address.

This could result in the RAM allocated higher than the ROM area, which causes a crash. To prevent this from occurring, the RAM and ROM areas are allocated contiguously.

Previously the ROM starting address was a constant ROM_BASE, which was used throughout the source files. The ROM start address is now a variable ROMBase. ROMBase is allocated and set by main_*.cpp just like RAMBase.

A side-effect of this change is that it lifts the 512 MB RAM limit for OS X hosts. The limit was because the fixed RAM and ROM addresses were such that the RAM could only be 512 MB before it overlapped the ROM area.


Impact
------
The change to make ROMBase a variable is throughout all hosts & addressing modes.

The RAM and ROM areas will only shift when run on Unix & OS X hosts, otherwise the same fixed allocation address is used as before.

This change is limited to "Real" addressing mode. Unlike Basilisk II, SheepShaver *pre-calculates* the offset for "Direct" addressing mode; the offset is compiled into the program. If the RAM address were allowed to shift, it could result in the RAM area wrapping around address 0.


Changes to main_unix.cpp
------------------------
1. Real addressing mode no longer defines a RAM_BASE constant.

2. The base address of the Mac ROM (ROMBase) is defined and exported by this program.

3. Memory management helper vm_mac_acquire is renamed to vm_mac_acquire_fixed. Added a new memory management helper vm_mac_acquire, which allocates memory at any address.

4. Changed and rearranged the allocation of RAM and ROM areas.

Before it worked like this:

  - Allocate ROM area
  - If can, attempt to allocate RAM at address zero
  - If RAM not allocated at 0, allocate at fixed address

We still want to try allocating the RAM at zero, and if using DIRECT addressing we're still going to use the fixed addresses. So we don't know where the ROM should be until after we do the RAM. The new logic is:

  - If can, attempt to allocate RAM at address zero
  - If RAM not allocated at 0
      if REAL addressing
         allocate RAM and ROM together. The ROM address is aligned to a 1 MB boundary
      else (direct addressing)
         allocate RAM at fixed address
  - If ROM hasn't been allocated yet, allocate at fixed address

5. Calculate ROMBase and ROMBaseHost based on where the ROM was loaded.

6. There is a crash if the RAM is allocated too high. To try and catch this, check if it was allocated higher than the kernel data address.

7. Change subsequent code from using constant ROM_BASE to variable ROMBase.


Changes to Other Programs
-------------------------
emul_op.cpp, main.cpp, name_registery.cpp, rom_patches.cpp, rsrc_patches.cpp, emul_ppc.cpp, sheepshaver_glue.cpp, ppc-translate-cpp:
Change from constant ROM_BASE to variable ROMBase.

ppc_asm.S: It was setting register to a hard-coded literal address: 0x40b0d000. Changed to set it to ROMBase + 0x30d000.

ppc_asm.tmpl: It defined a macro ASM_LO16 but it assumed that the macro would always be used with operands that included a register specification. This is not true. Moved the register specification from the macro to the macro invocations.

main_beos.cpp, main_windows.cpp: Since the subprograms are all expecting a variable ROMBase, all the main_*.cpp pgrams have to define and export it. The ROM_BASE constant is moved here for consistency. The mains for beos and windows just allocate the ROM at the same fixed address as before, set ROMBaseHost and ROMBase to that address, and then use ROMBase for the subsequent code.

cpu_emulation.h: removed ROM_BASE constant. This value is moved to the main_*.cpp modules, to be consistent with RAM_BASE.

user_strings_unix.cpp, user_strings_unix.h: Added new error messages related to errors that occur when the RAM and ROM are allocated anywhere.
2009-08-18 18:26:11 +00:00
asvitkine
3867b28037 load the VMSettingsWindow nib for prefs window in SheepShaver 2009-08-18 18:22:01 +00:00
asvitkine
c465e7239e Launcher: Use default settings from NIB for new VM. 2009-08-18 03:42:11 +00:00
asvitkine
bc7b9a6c4a MacOSX: Use the prefs editor from the Launcher project. 2009-08-18 03:27:50 +00:00
asvitkine
3e7168c78d allow settings controller to work in non-standalone mode 2009-08-18 03:26:17 +00:00
asvitkine
a98f16a1bd support both foo.sheepvm and foo.sheepvm/ command-line parameters 2009-08-18 02:36:59 +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