Commit Graph

1431 Commits

Author SHA1 Message Date
Adrien Destugues
371d385c6b Missing include for memset. 2015-04-28 21:35:11 +02:00
Adrien Destugues
09638b2536 BeOS: set some required defines for FPU configuration. 2015-04-28 21:35:11 +02:00
Adrien Destugues
66f68a995a BeOS: WIP update to video mode switching support code. 2015-04-28 21:35:04 +02:00
Adrien Destugues
2adcbc2694 Haiku: Set -fomit-frame-pointer and -fno-PIC
* This frees some registers and make the x86 assembler code work.
* Restore use of fpu_x86 because of this.
2015-04-28 21:11:29 +02:00
Adrien Destugues
2ad0536d13 Add Haiku support.
* Haiku is mostly compatible with BeOS, but there are a few minor
changes.
2015-04-28 21:11:28 +02:00
Ricky Zhang
5192d60805
Fix space/tab indention 2014-09-19 09:59:23 -04:00
Ricky Zhang
39be6a0ac9
Use atomic operation 2014-09-18 16:10:41 -04:00
Ricky Zhang
b5b415da0d
Apply patch for 3.15 kernel 2014-09-18 11:38:06 -04:00
Dave Vasilevsky
4dd7f9236f Change GUI object extension, so GCC doesn't think we're Go 2014-03-05 20:11:55 -05:00
asvitkine
44c7e447a7 Merge pull request #35 from dsumorok/buildfix
Buildfix
2013-06-02 22:32:57 -07: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
Dan Sumorok
1bc3691805 Removed clean rule for etherslavetool. 2013-05-05 14:18:10 -04:00
Dan Sumorok
93effd9192 Darwin/lowmem and Darwin/pagezero do not need to be removed for clean. 2013-05-01 06:55:49 -04:00
Dan Sumorok
a421d35b9d Fix for OS X build under x-windows. Separated out sound option. 2013-04-30 20:41:50 -04:00
Dave Vasilevsky
26d5f6b7f2 SDL: Allow fullscreen toggle in BasiliskII 2013-04-24 04:13:14 -04:00
Dave Vasilevsky
eceafc6200 SDL: Allow toggling fullscreen/windowed mode 2013-04-24 04:13:07 -04:00
Dave Vasilevsky
efae88ea7c SDL: Let video driver know about cursor type change 2013-04-24 04:12:06 -04:00
Dave Vasilevsky
ff423fe7c9 SDL: Let driver_base be reused in a different video mode
Split init() into one-time initialization, and adaptation to a new video mode.
2013-04-24 04:09:47 -04:00
Dave Vasilevsky
e9c913c4ae SDL: Completely collapse fullscreen/window drivers 2013-04-24 03:30:52 -04:00
Dave Vasilevsky
9e807c884c SDL: Move init() method into base 2013-04-24 03:30:52 -04:00
Dave Vasilevsky
19529cacd4 SDL: Remove useless virtual qualifiers 2013-04-24 03:30:52 -04:00
Dave Vasilevsky
14e6e654f0 SDL: Move mouse movement to base 2013-04-24 03:30:52 -04:00
Dave Vasilevsky
d0648a7039 SDL: Make VOSF update functions apply to driver_base
They don't use anything special from fullscreen/windowed derived classes.
Also, get rid of unneeded friend declarations.
2013-04-24 03:30:51 -04:00
Dave Vasilevsky
2a5100e8d2 SDL: Move destruction into base 2013-04-24 03:30:51 -04:00
Dave Vasilevsky
fed95369d1 SDL: Move window title setting to base 2013-04-24 03:30:51 -04:00
Dave Vasilevsky
b2e5125868 SDL: Move cursor initialization to base
Also decide in just one place whether to use hardware or software cursor.
2013-04-24 03:29:53 -04:00
Dave Vasilevsky
6eb54dccbe SDL: Move more initialization to base
Including blitter, gray ramp, frame buffer initialization.
2013-04-24 00:07:50 -04:00
Dave Vasilevsky
053308e4f9 SDL: Move VOSF initialization to base 2013-04-24 00:07:50 -04:00
Dave Vasilevsky
0c2658f4d1 SDL: Prepare to collapse fullscreen/window drivers
We want to have just one base driver that can handle both fullscreen and
windowed mode, so that we can easily switch between modes.

Create a virtual init() method to do construction, so we can move common code
from the derived classes into the base init().
2013-04-24 00:07:49 -04:00
Dave Vasilevsky
82adeb988b SDL: Remove unused method and ivars
mouse_last_x, mouse_last_y and driver_window::mouse_moved() look like remnants
of X11 video, they're never really used.
2013-04-24 00:07:49 -04:00
Dave Vasilevsky
94ebea3509 SDL: Don't uselessly free the_host_buffer
It always points to a member of an SDL_Surface, which is freed by SDL.
2013-04-24 00:07:43 -04:00
Dave Vasilevsky
c0d7aa0004 SDL: Remove old hack, reduce flicker
The old SDL_QuitSubsystem workaround is probably obsolete, and causes
flicker on resolution changes.
2013-04-24 00:04:49 -04:00
Dave Vasilevsky
02d844c6a7 SDL: Make non-Mac fullscreen cursor visible
Issue: https://github.com/cebix/macemu/issues/26

On non-Mac platforms, driver_fullscreen constructor sets up software cursor,
but switch_to_current_mode() ask for a hardware cursor, possibly due to a typo.
Neither one ends up being drawn, so the cursor goes invisible.

This change makes them agree to use a software cursor. We should eventually
move to just one place deciding which cursor to use, so they don't have to be
kept in sync.
2013-04-22 02:06:15 -04:00
Dave Vasilevsky
2fb9487933 Mac: Fix mouse grabbing
If mouse is grabbed on OS X, every time the mouse cursor icon changes the
cursor is recentered. Workaround similar to Windows in video_set_cursor().
2013-04-20 19:02:33 -04:00
Dave Vasilevsky
8204105c41 Prefs: Fix buffer overrun
Prevent intermittent crashing when prefs contains empty lines or lines with
no spaces.
2013-04-20 19:01:54 -04:00
Dave Vasilevsky
8f27d4af9b Standalone GUI doesn't need to pull in all the generic disks 2013-03-28 06:30:08 -04:00
Hans de Goede
2226aa4752 don't strip -g option to GCC for B2 2013-03-12 19:08:11 -04:00
Hans de Goede
90c113c43b check for WANT_SDL_VIDEO rather than WANT_SDL when deciding to use X11 2013-03-12 18:59:58 -04:00
Hans de Goede
cb42ef255b fix linux crash on sscanf failure 2013-03-12 18:55:58 -04:00
asvitkine
3b177f141f Merge pull request #22 from vasi/dmg-sparsebundle
Sparsebundle support
2013-03-11 18:53:54 -07:00
Dave Vasilevsky
912d2e05be disk_generic: Iterate using index instead of pointers 2013-03-11 17:10:38 -04:00
Dave Vasilevsky
c79a52f3b8 disk_generic: Distinguish between unknown disks, and unmountable disks 2013-03-11 17:08:27 -04:00
Dave Vasilevsky
cdb0338883 sparsebundle: Handle locking properly 2013-03-11 16:50:12 -04:00
Dave Vasilevsky
9953374b25 sparsebundle: Don't write zeros in unallocated space
Also close files when we're done with them.
2013-03-11 16:18:43 -04:00
Dave Vasilevsky
127441afb7 sparsebundle: Use pointers to member functions 2013-03-10 12:12:24 -04:00
Dave Vasilevsky
753a5c40fe sparsebundle: Remove old TODOs 2013-03-10 12:05:43 -04:00
Dave Vasilevsky
0c8292aea3 sparsebundle: Minor fixes
- Allocate memory in disk_sparsebundle() constructor
- Constify constructor parameter
- Be careful with invalid fds
2013-03-10 12:03:34 -04:00
Doug Brown
0980a87e3f Ensure ROM is above RAM in Windows.
Fixes black screen on newer versions of Windows.
2013-03-02 12:29:39 -08:00
Doug Brown
ed358ca618 Fix case sensitivity of MinGW basetsd.h header when compiling inside Linux. 2013-03-01 03:08:29 -08:00
asvitkine
ef5a6ef3a7 Merge pull request #19 from landonf/landonf-pty-fix
Set tty raw mode when using a pty.
2013-02-28 20:56:14 -08:00
Landon Fuller
2c8507ea97 Set tty raw mode when using a pty. 2013-02-25 20:24:56 -05:00
Dave Vasilevsky
17aabc4c40 Generify vhd, too 2013-02-24 15:57:18 -05:00
Dave Vasilevsky
5c7af60f16 generically search for disk types 2013-02-24 15:43:54 -05:00
Dave Vasilevsky
3af3834b8e Basilisk deserves sparse bundles too! 2013-02-24 14:40:41 -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
Charles Lehner
76911be266 Fix compilation error on OS X. 2012-10-30 09:34:10 -04:00
Charles Lehner
349fad4d2f Add port redirection option for networking with slirp.
Port forwarding allows the emulator to host servers that can be
accessed from outside the virtual network.

The code for parsing the preference option "redir" is adapted from
qemu code. The rest was already implemented.
2012-10-30 01:32:38 -04:00
Christian Bauer
b4940ae29d more cleanups (unused/uninitialized variables, forgotten free()s, etc.) 2012-09-08 12:33:39 +02:00
Christian Bauer
6ca9738e6c clean up and add documentation 2012-08-27 20:17:12 +02:00
Amadeusz Sławiński
80c2e5349f Add missing dummy ZeroScrap() on linux 2012-08-21 15:18:43 +02:00
Alexei Svitkine
243307f05c Fix typo. 2012-08-19 10:17:10 -04:00
Alexei Svitkine
3b6fdddfa1 Use a diff var name in configure.ac to avoid erroneous caching. 2012-08-12 13:01:55 -04:00
Alexei Svitkine
3c8856bcca Include unistd.h in config signal checks. 2012-08-12 12:41:03 -04:00
Alexei Svitkine
fa7da794c3 Trying to fix linux/arm build. 2012-08-12 12:25:19 -04:00
Charles
23ee14227f Yet another clipboard patch for Basilisk / SheepShaver
This patch introduces a few changes:

1. Data of arbitrary Mac OS types which aren't handled (i.e. non text/picture types) will now be passed through to the host pasteboard, just like in the 32-bit code.

2. Reorganization of a few things.

3. Fixed a memory leak (whoops).

I'm basically submitting this patch now because I have a few other changes I'm going to try, but since I'm not sure that they're going to work, I thought it better to flush out the changes I've already made at this point first.

Thanks,
Charles
2012-07-15 15:17:16 -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
e1d132083b Fix a logic error. 2012-07-05 22:52:39 -04:00
Alexei Svitkine
77bedb6ae2 Add a license header to autorelease.h. 2012-07-05 22:30:15 -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
01cc80df4e Fix leak. 2012-07-05 02:02:22 -04:00
Alexei Svitkine
dd30a26a7c Change linebreaks on clip_macosx64.mm to Unix style. 2012-07-04 23:49:06 -04:00
Alexei Svitkine
a7b82a0820 Fix warnings. 2012-07-04 22:46:57 -04:00
Alexei Svitkine
94fe1df163 Fix Mac OS X GUI configure option. 2012-07-04 22:44:24 -04:00
Alexei Svitkine
8376a21804 Fix build with SnowLeopard SDK. 2012-07-04 22:22:00 -04:00
Alexei Svitkine
005c573148 Fix some warnings. 2012-07-04 22:09:43 -04:00
Alexei Svitkine
4f63169cc9 Delete obsolete build files under src/MacOSX, which are no longer
needed since the same build can be produced from src/Unix via
./configure --enable-macosx-gui.
2012-07-03 23:02:29 -04:00
Alexei Svitkine
145f6c3d02 Copy help files into BasiliskII bundle. 2012-07-03 22:49:28 -04:00
Alexei Svitkine
be178eb152 Delete old and broken project files. 2012-07-03 22:25:54 -04:00
Alexei Svitkine
7e23caf00a Use CGIMAGEREF drawing strategy on i386 too; the NSBITMAP one appears
to be broken.
2012-07-03 22:14:32 -04:00
Alexei Svitkine
702db1dfec Allow building MacOSX GUI version from src/Unix by building with:
./configure --enable-macosx-gui

The goal is to get rid of the build files under src/MacOSX by
allowing the ones under src/Unix to produce the same outputs.

Note: This currently has video problems, but this is consistent
with what you get when building out of src/MacOSX.
2012-07-03 21:54:35 -04:00
Alexei Svitkine
6fd8f91ae4 Merge branch 'master' of https://github.com/cebix/macemu 2012-07-03 20:47:53 -04:00
Alexei Svitkine
253904f6a5 Fixing MacOSX UI build on 10.4 PPC. 2012-07-03 20:47:28 -04:00
Alexei Svitkine
42ae7000b5 Use clip_macosx64.mm for BasiliskII 64-bit builds too. 2012-07-02 00:45:59 -04:00
Alexei Svitkine
a70f9b44f1 Fix configure warning in BasiliskII's configure.ac too. 2012-07-02 00:40:08 -04:00
Alexei Svitkine
fd78a64ade Fix 32-bit Mac OS X build. 2012-07-01 00:35:06 -04:00
Alexei Svitkine
66ff591aa3 more style fixes 2012-06-30 22:23:27 -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
889c88d6c8 Fix inverted nocdrom check that was causing CDs not to mount. 2012-06-30 21:27:09 -04:00
Alexei Svitkine
58f4fa8425 Lock opened disk image files with O_EXLOCK (same as flock()) on
Mac OS X to prevent concurrent access from the Finder.
2012-06-25 12:56:58 -04:00
Alexei Svitkine
ac0b8e0240 Include ApplicationServices.h instead of Carbon.h in clip_macosx64.cpp. 2012-06-22 17:29:10 -04:00
Amadeusz Sławiński
9b896b12bb dangling elses
../extfs.cpp:1700:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
                } else
                  ^
../extfs.cpp:1735:3: warning: add explicit braces to avoid dangling else [-Wdangling-else]
                else
                ^
../extfs.cpp:1773:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
                } else
                  ^
../extfs.cpp:1799:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
                } else
                  ^
../extfs.cpp:1845:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
                } else
                  ^
../extfs.cpp:1898:5: warning: add explicit braces to avoid dangling else [-Wdangling-else]
                } else
                  ^
6 warnings generated.
2012-06-21 21:44:25 -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
be28a8e5d4 [Amadeusz Sławiński]
Fix crashes with SDL on Linux due to delayed cursor setting.
2012-06-18 19:31:50 -04:00
Alexei Svitkine
5a5b7176da Fix an unused function warning. 2012-06-18 19:00:25 -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