Snapshot of working bincue build, although no audio plays yet; saving all files in case xcode messes something up and needs reverting

This commit is contained in:
Seth 2019-04-04 03:41:09 -05:00
parent 1824cd8dc4
commit a25325fc7d
13 changed files with 552 additions and 121 deletions

View File

@ -51,23 +51,23 @@ void AudioDevice::Init(AudioDeviceID devid, bool isInput)
UInt32 propsize;
propsize = sizeof(UInt32);
verify_noerr(AudioDeviceGetProperty(mID, 0, mIsInput, kAudioDevicePropertySafetyOffset, &propsize, &mSafetyOffset));
__Verify_noErr(AudioDeviceGetProperty(mID, 0, mIsInput, kAudioDevicePropertySafetyOffset, &propsize, &mSafetyOffset));
propsize = sizeof(UInt32);
verify_noerr(AudioDeviceGetProperty(mID, 0, mIsInput, kAudioDevicePropertyBufferFrameSize, &propsize, &mBufferSizeFrames));
__Verify_noErr(AudioDeviceGetProperty(mID, 0, mIsInput, kAudioDevicePropertyBufferFrameSize, &propsize, &mBufferSizeFrames));
propsize = sizeof(AudioStreamBasicDescription);
verify_noerr(AudioDeviceGetProperty(mID, 0, mIsInput, kAudioDevicePropertyStreamFormat, &propsize, &mFormat));
__Verify_noErr(AudioDeviceGetProperty(mID, 0, mIsInput, kAudioDevicePropertyStreamFormat, &propsize, &mFormat));
}
void AudioDevice::SetBufferSize(UInt32 size)
{
UInt32 propsize = sizeof(UInt32);
verify_noerr(AudioDeviceSetProperty(mID, NULL, 0, mIsInput, kAudioDevicePropertyBufferFrameSize, propsize, &size));
__Verify_noErr(AudioDeviceSetProperty(mID, NULL, 0, mIsInput, kAudioDevicePropertyBufferFrameSize, propsize, &size));
propsize = sizeof(UInt32);
verify_noerr(AudioDeviceGetProperty(mID, 0, mIsInput, kAudioDevicePropertyBufferFrameSize, &propsize, &mBufferSizeFrames));
__Verify_noErr(AudioDeviceGetProperty(mID, 0, mIsInput, kAudioDevicePropertyBufferFrameSize, &propsize, &mBufferSizeFrames));
}
int AudioDevice::CountChannels()
@ -92,6 +92,6 @@ int AudioDevice::CountChannels()
char * AudioDevice::GetName(char *buf, UInt32 maxlen)
{
verify_noerr(AudioDeviceGetProperty(mID, 0, mIsInput, kAudioDevicePropertyDeviceName, &maxlen, buf));
__Verify_noErr(AudioDeviceGetProperty(mID, 0, mIsInput, kAudioDevicePropertyDeviceName, &maxlen, buf));
return buf;
}

View File

@ -7,6 +7,13 @@
objects = {
/* Begin PBXBuildFile section */
5DDE95192255D076004D0E79 /* AudioDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE95132255D076004D0E79 /* AudioDevice.cpp */; };
5DDE951A2255D076004D0E79 /* audio_macosx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE95152255D076004D0E79 /* audio_macosx.cpp */; };
5DDE951B2255D076004D0E79 /* MacOSX_sound_if.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE95162255D076004D0E79 /* MacOSX_sound_if.cpp */; };
5DDE951C2255D076004D0E79 /* AudioBackEnd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE95172255D076004D0E79 /* AudioBackEnd.cpp */; };
5DDE951E2255D0A9004D0E79 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DDE951D2255D0A9004D0E79 /* CoreAudio.framework */; };
5DDE95202255D0B6004D0E79 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DDE951F2255D0B6004D0E79 /* AudioToolbox.framework */; };
5DDE95222255D0C2004D0E79 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DDE95212255D0C2004D0E79 /* AudioUnit.framework */; };
752F26F91F240E51001032B4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 752F26F81F240E51001032B4 /* Foundation.framework */; };
752F26FB1F240E69001032B4 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 752F26FA1F240E69001032B4 /* IOKit.framework */; };
752F27011F242BAF001032B4 /* prefs_sdl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 752F27001F242BAF001032B4 /* prefs_sdl.cpp */; };
@ -192,6 +199,16 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
5DDE95122255D075004D0E79 /* AudioBackEnd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioBackEnd.h; sourceTree = "<group>"; };
5DDE95132255D076004D0E79 /* AudioDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioDevice.cpp; sourceTree = "<group>"; };
5DDE95142255D076004D0E79 /* AudioDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioDevice.h; sourceTree = "<group>"; };
5DDE95152255D076004D0E79 /* audio_macosx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audio_macosx.cpp; sourceTree = "<group>"; };
5DDE95162255D076004D0E79 /* MacOSX_sound_if.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MacOSX_sound_if.cpp; sourceTree = "<group>"; };
5DDE95172255D076004D0E79 /* AudioBackEnd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioBackEnd.cpp; sourceTree = "<group>"; };
5DDE95182255D076004D0E79 /* MacOSX_sound_if.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacOSX_sound_if.h; sourceTree = "<group>"; };
5DDE951D2255D0A9004D0E79 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
5DDE951F2255D0B6004D0E79 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
5DDE95212255D0C2004D0E79 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; };
752F26F81F240E51001032B4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
752F26FA1F240E69001032B4 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
752F27001F242BAF001032B4 /* prefs_sdl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = prefs_sdl.cpp; sourceTree = "<group>"; };
@ -426,6 +443,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
5DDE95222255D0C2004D0E79 /* AudioUnit.framework in Frameworks */,
5DDE95202255D0B6004D0E79 /* AudioToolbox.framework in Frameworks */,
5DDE951E2255D0A9004D0E79 /* CoreAudio.framework in Frameworks */,
E413D93620D260DA00E437D8 /* SDL2.framework in Frameworks */,
756C1B391F25306A00620917 /* AppKit.framework in Frameworks */,
752F26FB1F240E69001032B4 /* IOKit.framework in Frameworks */,
@ -488,6 +508,9 @@
752F26F71F240E51001032B4 /* Frameworks */ = {
isa = PBXGroup;
children = (
5DDE95212255D0C2004D0E79 /* AudioUnit.framework */,
5DDE951F2255D0B6004D0E79 /* AudioToolbox.framework */,
5DDE951D2255D0A9004D0E79 /* CoreAudio.framework */,
E413D93520D260DA00E437D8 /* SDL2.framework */,
756C1B381F25306A00620917 /* AppKit.framework */,
752F26FA1F240E69001032B4 /* IOKit.framework */,
@ -619,6 +642,13 @@
756C1B321F252FC100620917 /* utils_macosx.h */,
756C1B331F252FC100620917 /* utils_macosx.mm */,
7539E02E1F23B25A006B2DF2 /* Versions.html */,
5DDE95152255D076004D0E79 /* audio_macosx.cpp */,
5DDE95172255D076004D0E79 /* AudioBackEnd.cpp */,
5DDE95122255D075004D0E79 /* AudioBackEnd.h */,
5DDE95132255D076004D0E79 /* AudioDevice.cpp */,
5DDE95142255D076004D0E79 /* AudioDevice.h */,
5DDE95162255D076004D0E79 /* MacOSX_sound_if.cpp */,
5DDE95182255D076004D0E79 /* MacOSX_sound_if.h */,
);
name = MacOSX;
sourceTree = "<group>";
@ -1058,6 +1088,7 @@
756C1B341F252FC100620917 /* utils_macosx.mm in Sources */,
E413D92620D260BC00E437D8 /* misc.c in Sources */,
753253321F5368370024025B /* cpuemu.cpp in Sources */,
5DDE951C2255D076004D0E79 /* AudioBackEnd.cpp in Sources */,
7539E2701F23B32A006B2DF2 /* tinyxml2.cpp in Sources */,
7539E1721F23B25A006B2DF2 /* rsrc_patches.cpp in Sources */,
7539E2931F23C56F006B2DF2 /* serial_dummy.cpp in Sources */,
@ -1087,6 +1118,8 @@
7539E26C1F23B32A006B2DF2 /* sshpty.c in Sources */,
7539E1781F23B25A006B2DF2 /* serial.cpp in Sources */,
757A2BF01F5AF9D6003EDB01 /* user_strings_unix.cpp in Sources */,
5DDE951B2255D076004D0E79 /* MacOSX_sound_if.cpp in Sources */,
5DDE951A2255D076004D0E79 /* audio_macosx.cpp in Sources */,
E413D92D20D260BC00E437D8 /* tcp_timer.c in Sources */,
E413D92820D260BC00E437D8 /* tcp_subr.c in Sources */,
7539E1991F23B25A006B2DF2 /* flags.cpp in Sources */,
@ -1096,7 +1129,7 @@
7539E18E1F23B25A006B2DF2 /* sony.cpp in Sources */,
7539E26F1F23B32A006B2DF2 /* timer_unix.cpp in Sources */,
7539E12E1F23B25A006B2DF2 /* extfs.cpp in Sources */,
7539E23F1F23B32A006B2DF2 /* bincue_unix.cpp in Sources */,
5DDE95192255D076004D0E79 /* AudioDevice.cpp in Sources */,
7539E12C1F23B25A006B2DF2 /* emul_op.cpp in Sources */,
E413D92720D260BC00E437D8 /* debug.c in Sources */,
E413D92220D260BC00E437D8 /* mbuf.c in Sources */,
@ -1119,6 +1152,7 @@
7539E2681F23B32A006B2DF2 /* rpc_unix.cpp in Sources */,
E413D92F20D260BC00E437D8 /* bootp.c in Sources */,
7539E2911F23C56F006B2DF2 /* prefs_editor_dummy.cpp in Sources */,
7539E23F1F23B32A006B2DF2 /* bincue_unix.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1358,6 +1392,15 @@
GCC_C_LANGUAGE_STANDARD = "compiler-default";
GCC_ENABLE_PASCAL_STRINGS = NO;
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
HAVE_CONFIG_H,
"USE_XCODE=1",
"DEBUG=1",
"USE_SDL_AUDIO=1",
"BINCUE=1",
"OSX_CORE_AUDIO=1",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_USE_STANDARD_INCLUDE_SEARCHING = YES;
GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
@ -1410,6 +1453,14 @@
GCC_ENABLE_PASCAL_STRINGS = NO;
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
GCC_OPTIMIZATION_LEVEL = 3;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
HAVE_CONFIG_H,
"USE_XCODE=1",
"USE_SDL_AUDIO=1",
"OSX_CORE_AUDIO=1",
"BINCUE=1",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_USE_STANDARD_INCLUDE_SEARCHING = YES;
GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7539DFB11F23B17E006B2DF2"
BuildableName = "BasiliskII.app"
BlueprintName = "BasiliskII"
ReferencedContainer = "container:BasiliskII.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7539DFB11F23B17E006B2DF2"
BuildableName = "BasiliskII.app"
BlueprintName = "BasiliskII"
ReferencedContainer = "container:BasiliskII.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
debugAsWhichUser = "root"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7539DFB11F23B17E006B2DF2"
BuildableName = "BasiliskII.app"
BlueprintName = "BasiliskII"
ReferencedContainer = "container:BasiliskII.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7539DFB11F23B17E006B2DF2"
BuildableName = "BasiliskII.app"
BlueprintName = "BasiliskII"
ReferencedContainer = "container:BasiliskII.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -18,6 +18,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef MACOSX_SOUND_IF
#define MACOSX_SOUND_IF
typedef int (*audioCallback)(void);
@ -39,3 +41,5 @@ class OSXsoundOutput {
unsigned int bufferSizeFrames();
int sendAudioBuffer(void *buffer, int numFrames);
};
#endif

View File

@ -19,6 +19,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef USE_SDL_AUDIO
#include "sysdeps.h"
#include <sys/ioctl.h>
@ -269,3 +271,5 @@ static int audioInt(void)
TriggerInterrupt();
return 0;
}
#endif

View File

@ -91,6 +91,7 @@ typedef struct {
unsigned int length; // Track length in frames
loff_t fileoffset; // Track frame start within file
unsigned int pregap; // Silence in frames to generate
unsigned int postgap; // Silence in frames to generate at end
unsigned char tcf; // Track control field
} Track;
@ -342,8 +343,18 @@ static bool ParseCueSheet(FILE *fh, CueSheet *cs, const char *cuefile)
}
curr->pregap = MSFToFrames(msf);
} else if (!strcmp("POSTGAP", keyword)) {
MSF msf;
char *field = strtok(NULL, " \t\n\r");
if (3 != sscanf(field, "%d:%d:%d",
&msf.m, &msf.s, &msf.f)) {
D(bug("Expected postgap frame\n"));
goto fail;
}
curr->postgap = MSFToFrames(msf);
// Ignored directives
} else if (!strcmp("TITLE", keyword)) {
} else if (!strcmp("PERFORMER", keyword)) {
} else if (!strcmp("REM", keyword)) {

View File

@ -58,7 +58,7 @@ const uint8 CDROMIcon[258] = {
0x8a, 0xaa, 0xaa, 0xe4, 0x8d, 0x55, 0x55, 0xc4, 0x86, 0xaa, 0xab, 0xc4, 0x83, 0x55, 0x57, 0x84,
0x81, 0xaa, 0xaf, 0x04, 0x80, 0xf5, 0x7e, 0x04, 0x80, 0x3f, 0xf8, 0x04, 0x80, 0x0f, 0xe0, 0x04,
0xff, 0xff, 0xff, 0xfc, 0x80, 0x00, 0x00, 0x04, 0x80, 0x1f, 0xf0, 0x04, 0x7f, 0xff, 0xff, 0xf8,
0x3f, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
@ -67,7 +67,7 @@ const uint8 CDROMIcon[258] = {
0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc,
0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xf8,
0, 0
};
@ -103,7 +103,7 @@ static const uint8 bin2bcd[256] = {
};
static const uint8 bcd2bin[256] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
@ -126,9 +126,9 @@ static const uint8 bcd2bin[256] = {
struct cdrom_drive_info {
cdrom_drive_info() : num(0), fh(NULL), start_byte(0), status(0) {}
cdrom_drive_info(void *fh_) : num(0), fh(fh_), start_byte(0), status(0) {}
void close_fh(void) { SysAllowRemoval(fh); Sys_close(fh); }
int num; // Drive number
void *fh; // File handle
int block_size; // CD-ROM block size
@ -136,12 +136,14 @@ struct cdrom_drive_info {
loff_t start_byte; // Start of HFS partition on disk
bool to_be_mounted; // Flag: drive must be mounted in accRun
bool mount_non_hfs; // Flag: Issue disk-inserted events for non-HFS disks
uint8 toc[804]; // TOC of currently inserted disk
uint8 lead_out[3]; // MSF address of lead-out track
uint8 stop_at[3]; // MSF address of audio play stopping point
uint8 play_mode; // Audio play mode
uint8 play_order; // Play mode order (normal, shuffle, program)
bool repeat; // Repeat flag
uint8 power_mode; // Power mode
uint32 status; // Mac address of drive status record
};
@ -181,18 +183,18 @@ static void find_hfs_partition(cdrom_drive_info &info)
info.start_byte = 0;
uint8 *map = new uint8[512];
D(bug("Looking for HFS partitions on CD-ROM...\n"));
// Search first 64 blocks for HFS partition
for (int i=0; i<64; i++) {
if (Sys_read(info.fh, map, i * 512, 512) != 512)
break;
D(bug(" block %d, signature '%c%c' (%02x%02x)\n", i, map[0], map[1], map[0], map[1]));
// Not a partition map block? Then look at next block
uint16 sig = (map[0] << 8) | map[1];
if (sig != 0x504d)
continue;
// Partition map block found, Apple HFS partition?
if (strcmp((char *)(map + 48), "Apple_HFS") == 0) {
info.start_byte = (loff_t)((map[8] << 24) | (map[9] << 16) | (map[10] << 8) | map[11]) << 9;
@ -214,7 +216,7 @@ static void read_toc(cdrom_drive_info &info)
// Read TOC
memset(info.toc, 0, sizeof(info.toc));
SysCDReadTOC(info.fh, info.toc);
#if DEBUG
// Dump TOC for debugging
D(bug(" TOC:\n %02x%02x%02x%02x : %d bytes, first track = %d, last track = %d\n", info.toc[0], info.toc[1], info.toc[2], info.toc[3], (info.toc[0] << 8) | info.toc[1], info.toc[2], info.toc[3]));
@ -226,7 +228,7 @@ static void read_toc(cdrom_drive_info &info)
break;
}
#endif
// Find lead-out track
info.lead_out[0] = 0;
info.lead_out[1] = 0;
@ -290,7 +292,7 @@ void CDROMInit(void)
// No drives specified in prefs? Then add defaults
if (PrefsFindString("cdrom", 0) == NULL)
SysAddCDROMPrefs();
// Add drives specified in preferences
int index = 0;
const char *str;
@ -348,15 +350,15 @@ static void mount_mountable_volumes(void)
{
drive_vec::iterator info, end = drives.end();
for (info = drives.begin(); info != end; ++info) {
// Disk in drive?
if (ReadMacInt8(info->status + dsDiskInPlace) == 0) {
// No, check if disk was inserted
if (SysIsDiskInserted(info->fh))
CDROMMountVolume(info->fh);
}
// Mount disk if flagged
if (info->to_be_mounted) {
D(bug(" mounting drive %d\n", info->num));
@ -377,25 +379,25 @@ static void mount_mountable_volumes(void)
int16 CDROMOpen(uint32 pb, uint32 dce)
{
D(bug("CDROMOpen\n"));
// Set up DCE
WriteMacInt32(dce + dCtlPosition, 0);
acc_run_called = false;
// Install drives
drive_vec::iterator info, end = drives.end();
for (info = drives.begin(); info != end; ++info) {
info->num = FindFreeDriveNumber(1);
info->to_be_mounted = false;
if (info->fh) {
info->mount_non_hfs = true;
info->block_size = 512;
info->twok_offset = -1;
info->play_mode = 0x09;
info->power_mode = 0;
// Allocate drive status record
M68kRegisters r;
r.d[0] = SIZEOF_DrvSts;
@ -404,12 +406,12 @@ int16 CDROMOpen(uint32 pb, uint32 dce)
continue;
info->status = r.a[0];
D(bug(" DrvSts at %08lx\n", info->status));
// Set up drive status
WriteMacInt8(info->status + dsWriteProt, 0x80);
WriteMacInt8(info->status + dsInstalled, 1);
WriteMacInt8(info->status + dsSides, 1);
// Disk in drive?
if (SysIsDiskInserted(info->fh)) {
SysPreventRemoval(info->fh);
@ -418,7 +420,7 @@ int16 CDROMOpen(uint32 pb, uint32 dce)
find_hfs_partition(*info);
info->to_be_mounted = true;
}
// Add drive to drive queue
D(bug(" adding drive %d\n", info->num));
r.d[0] = (info->num << 16) | (CDROMRefNum & 0xffff);
@ -437,14 +439,14 @@ int16 CDROMOpen(uint32 pb, uint32 dce)
int16 CDROMPrime(uint32 pb, uint32 dce)
{
WriteMacInt32(pb + ioActCount, 0);
// Drive valid and disk inserted?
drive_vec::iterator info = get_drive_info(ReadMacInt16(pb + ioVRefNum));
if (info == drives.end())
return nsDrvErr;
if (ReadMacInt8(info->status + dsDiskInPlace) == 0)
return offLinErr;
// Get parameters
void *buffer = Mac2HostAddr(ReadMacInt32(pb + ioBuffer));
size_t length = ReadMacInt32(pb + ioReqCount);
@ -452,17 +454,17 @@ int16 CDROMPrime(uint32 pb, uint32 dce)
if ((length & (info->block_size - 1)) || (position & (info->block_size - 1)))
return paramErr;
info->twok_offset = (position + info->start_byte) & 0x7ff;
size_t actual = 0;
if ((ReadMacInt16(pb + ioTrap) & 0xff) == aRdCmd) {
// Read
actual = Sys_read(info->fh, buffer, position + info->start_byte, length);
if (actual != length) {
// Read error, tried to read HFS root block?
if (length == 0x200 && position == 0x400) {
// Yes, fake (otherwise audio CDs won't get mounted)
memset(buffer, 0, 0x200);
actual = 0x200;
@ -473,7 +475,7 @@ int16 CDROMPrime(uint32 pb, uint32 dce)
} else {
return wPrErr;
}
// Update ParamBlock and DCE
WriteMacInt32(pb + ioActCount, actual);
WriteMacInt32(dce + dCtlPosition, ReadMacInt32(dce + dCtlPosition) + actual);
@ -489,24 +491,24 @@ int16 CDROMControl(uint32 pb, uint32 dce)
{
uint16 code = ReadMacInt16(pb + csCode);
D(bug("CDROMControl %d\n", code));
// General codes
switch (code) {
case 1: // KillIO
return noErr;
case 65: { // Periodic action (accRun, "insert" disks on startup)
mount_mountable_volumes();
WriteMacInt16(dce + dCtlFlags, ReadMacInt16(dce + dCtlFlags) & ~0x2000); // Disable periodic action
acc_run_called = true;
return noErr;
}
case 81: // Set poll freq
WriteMacInt16(dce + dCtlDelay, ReadMacInt16(pb + csParam));
return noErr;
}
// Drive valid?
drive_vec::iterator info = get_drive_info(ReadMacInt16(pb + ioVRefNum));
if (info == drives.end()) {
@ -516,7 +518,7 @@ int16 CDROMControl(uint32 pb, uint32 dce)
info = drives.begin(); // This is needed for Apple's Audio CD program
}
}
// Drive-specific codes
switch (code) {
case 5: // VerifyTheDisc
@ -524,10 +526,10 @@ int16 CDROMControl(uint32 pb, uint32 dce)
return noErr;
else
return offLinErr;
case 6: // FormatTheDisc
return writErr;
case 7: // EjectTheDisc
if (ReadMacInt8(info->status + dsDiskInPlace) > 0) {
SysAllowRemoval(info->fh);
@ -536,16 +538,16 @@ int16 CDROMControl(uint32 pb, uint32 dce)
info->twok_offset = -1;
}
return noErr;
case 21: // GetDriveIcon
case 22: // GetMediaIcon
WriteMacInt32(pb + csParam, CDROMIconAddr);
return noErr;
case 23: // GetDriveInfo
WriteMacInt32(pb + csParam, 0x00000b01); // Unspecified external removable SCSI disk
return noErr;
case 70: { // SetPowerMode
uint8 mode = ReadMacInt8(pb + csParam);
if (mode > 3) {
@ -555,11 +557,11 @@ int16 CDROMControl(uint32 pb, uint32 dce)
return noErr;
}
}
case 76: // ModifyPostEvent
info->mount_non_hfs = ReadMacInt16(pb + csParam) != 0;
return noErr;
case 79: { // Change block size
uint16 size = ReadMacInt16(pb + csParam);
D(bug(" change block size to %d bytes\n", size));
@ -570,7 +572,7 @@ int16 CDROMControl(uint32 pb, uint32 dce)
return noErr;
}
}
case 80: // SetUserEject
if (ReadMacInt8(info->status + dsDiskInPlace) > 0) {
if (ReadMacInt16(pb + csParam) == 1)
@ -581,11 +583,11 @@ int16 CDROMControl(uint32 pb, uint32 dce)
} else {
return offLinErr;
}
case 100: { // ReadTOC
if (ReadMacInt8(info->status + dsDiskInPlace) == 0)
return offLinErr;
int action = ReadMacInt16(pb + csParam);
D(bug(" read TOC %d\n", action));
switch (action) {
@ -594,26 +596,26 @@ int16 CDROMControl(uint32 pb, uint32 dce)
WriteMacInt8(pb + csParam + 1, bin2bcd[info->toc[3]]);
WriteMacInt16(pb + csParam + 2, 0);
break;
case 2: // Get lead out MSF starting address
WriteMacInt8(pb + csParam, bin2bcd[info->lead_out[0]]);
WriteMacInt8(pb + csParam + 1, bin2bcd[info->lead_out[1]]);
WriteMacInt8(pb + csParam + 2, bin2bcd[info->lead_out[2]]);
WriteMacInt8(pb + csParam + 3, 0);
break;
case 3: { // Get track starting address
uint32 buf = ReadMacInt32(pb + csParam + 2);
uint16 buf_size = ReadMacInt16(pb + csParam + 6);
int track = bcd2bin[ReadMacInt8(pb + csParam + 8)];
// Search start track in TOC
int i;
for (i=4; i<804; i+=8) {
if (info->toc[i+2] == track)
break;
}
// Fill buffer
if (i != 804) {
while (buf_size > 0) {
@ -621,18 +623,91 @@ int16 CDROMControl(uint32 pb, uint32 dce)
WriteMacInt8(buf, bin2bcd[info->toc[i+5]]); buf++; // M
WriteMacInt8(buf, bin2bcd[info->toc[i+6]]); buf++; // S
WriteMacInt8(buf, bin2bcd[info->toc[i+7]]); buf++; // F
// Lead-Out? Then stop
if (info->toc[i+2] == 0xaa)
break;
buf_size -= 4;
i += 8;
}
}
break;
}
case 4: { // Type 4 TOC for non-AppleCD SC
uint32 buf = ReadMacInt32(pb + csParam + 2);
uint16 buf_size = 512; // buffer must be 512 bytes for this TOC type
// start filling buffer
WriteMacInt8(buf, 0); buf++; // first byte reserved for 0
buf_size--;
int i = 4;
// in TOC, first 4 are session and/or track number; so tracks start at i = 4
// (info->toc[2] is first track num and info->toc[3] is last num)
// each track entry is 8 bytes:
// 0: unused, 1: control, 2: tracknum, 3: unused
// 4: unused, 5: MIN, 6: SEC, 7: FRAME
// entry for point A0 (first track num)
WriteMacInt8(buf, info->toc[i+1] & 0x0f); buf++; // control field
WriteMacInt8(buf, bin2bcd[info->toc[2]]); buf++; // track number
WriteMacInt8(buf, bin2bcd[info->toc[i+5]]); buf++; // PMIN
WriteMacInt8(buf, bin2bcd[info->toc[i+6]]); buf++; // PSEC
WriteMacInt8(buf, bin2bcd[info->toc[i+7]]); buf++; // PFRAME
buf_size -= 5; // every 8 bits written decreases byte buffer size by 1
// entry for point A1 (last track)
int buf_a1 = buf; // save for filling last track num
buf += 5; buf_size -= 5;
// entry for point A2 (address of start of lead out)
int buf_a2 = buf; // save for filling at end
buf += 5; buf_size -= 5;
// Fill buffer
while (i <= 804 && buf_size > 1) { // index 511 never used
// Lead out? then fill a2 and stop
if (info->toc[i+2] == 0xaa) {
// entry for point a2
WriteMacInt8(buf_a2, info->toc[i+1] & 0x0f); // Control
WriteMacInt8(buf_a2 + 1, bin2bcd[info->toc[i+2]]); // tracknum
WriteMacInt8(buf_a2 + 2, bin2bcd[info->lead_out[0]]); // M, same as toc[i+5]
WriteMacInt8(buf_a2 + 3, bin2bcd[info->lead_out[1]]); // S
WriteMacInt8(buf_a2 + 4, bin2bcd[info->lead_out[2]]); // F
break;
}
WriteMacInt8(buf, info->toc[i+1] & 0x0f); buf++; // Control
WriteMacInt8(buf, bin2bcd[info->toc[i+2]]); buf++; // tracknum
WriteMacInt8(buf, bin2bcd[info->toc[i+5]]); buf++; // M
WriteMacInt8(buf, bin2bcd[info->toc[i+6]]); buf++; // S
WriteMacInt8(buf, bin2bcd[info->toc[i+7]]); buf++; // F
// Last track? fill a1 as well
if (info->toc[i+2] == info->toc[3]) {
// entry for point a1
WriteMacInt8(buf_a1, info->toc[i+1] & 0x0f); // Control
WriteMacInt8(buf_a1 + 1, bin2bcd[info->toc[3]]); // tracknum
WriteMacInt8(buf_a1 + 2, bin2bcd[info->toc[i+5]]); // M
WriteMacInt8(buf_a1 + 3, bin2bcd[info->toc[i+6]]); // S
WriteMacInt8(buf_a1 + 4, bin2bcd[info->toc[i+7]]); // F
}
buf_size -= 5;
i += 8;
}
// fill rest of buffer with zeroes
while (buf_size > 0) {
WriteMacInt8(buf, 0); buf++;
buf_size--;
}
break;
}
case 5: // Get session information
WriteMacInt16(pb + csParam, 1); // First session number
WriteMacInt16(pb + csParam + 2, 1); // Last session number
@ -642,20 +717,20 @@ int16 CDROMControl(uint32 pb, uint32 dce)
WriteMacInt8(pb + csParam + 8, bin2bcd[info->toc[10]]); // S
WriteMacInt8(pb + csParam + 9, bin2bcd[info->toc[11]]); // F
break;
default:
printf("FATAL: .AppleCD/Control(100): unimplemented TOC type\n");
return paramErr;
}
return noErr;
}
case 101: { // ReadTheQSubcode
if (ReadMacInt8(info->status + dsDiskInPlace) == 0) {
Mac_memset(pb + csParam, 0, 10);
return offLinErr;
}
uint8 pos[16];
if (SysCDGetPosition(info->fh, pos)) {
uint32 p = pb + csParam;
@ -674,16 +749,16 @@ int16 CDROMControl(uint32 pb, uint32 dce)
return ioErr;
}
}
case 102: // ReadHeader
printf("FATAL: .AppleCD/Control(102): unimplemented call\n");
return controlErr;
case 103: { // AudioTrackSearch
D(bug(" AudioTrackSearch postype %d, pos %08x, hold %d\n", ReadMacInt16(pb + csParam), ReadMacInt32(pb + csParam + 2), ReadMacInt16(pb + csParam + 6)));
if (ReadMacInt8(info->status + dsDiskInPlace) == 0)
return offLinErr;
uint8 start_m, start_s, start_f;
if (!position2msf(*info, ReadMacInt16(pb + csParam), ReadMacInt32(pb + csParam + 2), false, start_m, start_s, start_f))
return paramErr;
@ -694,12 +769,12 @@ int16 CDROMControl(uint32 pb, uint32 dce)
SysCDPause(info->fh);
return noErr;
}
case 104: // AudioPlay
D(bug(" AudioPlay postype %d, pos %08lx, hold %d\n", ReadMacInt16(pb + csParam), ReadMacInt32(pb + csParam + 2), ReadMacInt16(pb + csParam + 6)));
if (ReadMacInt8(info->status + dsDiskInPlace) == 0)
return offLinErr;
if (ReadMacInt16(pb + csParam + 6)) {
// Given stopping address
if (!position2msf(*info, ReadMacInt16(pb + csParam), ReadMacInt32(pb + csParam + 2), true, info->stop_at[0], info->stop_at[1], info->stop_at[2]))
@ -714,11 +789,11 @@ int16 CDROMControl(uint32 pb, uint32 dce)
return paramErr;
}
return noErr;
case 105: // AudioPause
if (ReadMacInt8(info->status + dsDiskInPlace) == 0)
return offLinErr;
switch (ReadMacInt32(pb + csParam)) {
case 0:
if (!SysCDResume(info->fh))
@ -732,12 +807,12 @@ int16 CDROMControl(uint32 pb, uint32 dce)
return paramErr;
}
return noErr;
case 106: // AudioStop
D(bug(" AudioStop postype %d, pos %08lx\n", ReadMacInt16(pb + csParam), ReadMacInt32(pb + csParam + 2)));
if (ReadMacInt8(info->status + dsDiskInPlace) == 0)
return offLinErr;
if (ReadMacInt16(pb + csParam) == 0 && ReadMacInt32(pb + csParam + 2) == 0) {
// Stop immediately
if (!SysCDStop(info->fh, info->lead_out[0], info->lead_out[1], info->lead_out[2]))
@ -748,15 +823,15 @@ int16 CDROMControl(uint32 pb, uint32 dce)
return paramErr;
}
return noErr;
case 107: { // AudioStatus
if (ReadMacInt8(info->status + dsDiskInPlace) == 0)
return offLinErr;
uint8 pos[16];
if (!SysCDGetPosition(info->fh, pos))
return paramErr;
uint32 p = pb + csParam;
switch (pos[1]) {
case 0x11:
@ -783,34 +858,34 @@ int16 CDROMControl(uint32 pb, uint32 dce)
WriteMacInt8(p, bin2bcd[pos[11]]); p++; // F (abs)
return noErr;
}
case 108: { // AudioScan
if (ReadMacInt8(info->status + dsDiskInPlace) == 0)
return offLinErr;
uint8 start_m, start_s, start_f;
if (!position2msf(*info, ReadMacInt16(pb + csParam), ReadMacInt32(pb + csParam + 2), false, start_m, start_s, start_f))
return paramErr;
if (!SysCDScan(info->fh, start_m, start_s, start_f, ReadMacInt16(pb + csParam + 6) != 0)) {
return paramErr;
} else {
return noErr;
}
}
case 109: // AudioControl
SysCDSetVolume(info->fh, ReadMacInt8(pb + csParam), ReadMacInt8(pb + csParam + 1));
return noErr;
case 110: // ReadMCN
printf("FATAL: .AppleCD/Control(110): unimplemented call\n");
return controlErr;
case 111: // ReadISRC
printf("FATAL: .AppleCD/Control(111): unimplemented call\n");
return controlErr;
case 112: { // ReadAudioVolume
uint8 left = 0, right = 0;
SysCDGetVolume(info->fh, left, right);
@ -818,43 +893,50 @@ int16 CDROMControl(uint32 pb, uint32 dce)
WriteMacInt8(pb + csParam + 1, right);
return noErr;
}
case 113: // GetSpindleSpeed
WriteMacInt16(pb + csParam, 0xff);
return noErr;
case 114: // SetSpindleSpeed
return noErr;
case 115: // ReadAudio
printf("FATAL: .AppleCD/Control(115): unimplemented call\n");
return controlErr;
case 116: // ReadAllSubcodes
printf("FATAL: .AppleCD/Control(116): unimplemented call\n");
return controlErr;
case 122: // SetTrackList
printf("FATAL: .AppleCD/Control(122): unimplemented call\n");
return controlErr;
case 123: // GetTrackList
printf("FATAL: .AppleCD/Control(123): unimplemented call\n");
return controlErr;
case 124: // GetTrackIndex
printf("FATAL: .AppleCD/Control(124): unimplemented call\n");
return controlErr;
case 125: // SetPlayMode
D(bug(" SetPlayMode %04x\n", ReadMacInt16(pb + csParam)));
printf("FATAL: .AppleCD/Control(125): unimplemented call\n");
return controlErr;
case 126: // GetPlayMode (Apple's Audio CD program needs this)
WriteMacInt16(pb + csParam, 0);
// repeat flag (0 is off, 1 is on)
info->repeat = ReadMacInt8(pb + csParam);
// playmode (0 is normal, 1 is shuffle, 2 is program mode)
info->play_order = ReadMacInt8(pb + csParam + 1);
// D(bug(" SetPlayMode %04x\n", ReadMacInt16(pb + csParam)));
// printf("FATAL: .AppleCD/Control(125): unimplemented call\n");
return noErr;
case 126: // GetPlayMode (Apple's Audio CD program needs this)
// repeat flag
WriteMacInt8(pb + csParam, bcd2bin[info->repeat]);
// playmode
WriteMacInt8(pb + csParam + 1, bcd2bin[info->play_order]);
return noErr;
default:
printf("WARNING: Unknown CDROMControl(%d)\n", code);
return controlErr;
@ -871,7 +953,7 @@ int16 CDROMStatus(uint32 pb, uint32 dce)
drive_vec::iterator info = get_drive_info(ReadMacInt16(pb + ioVRefNum));
uint16 code = ReadMacInt16(pb + csCode);
D(bug("CDROMStatus %d\n", code));
// General codes (we can get these even if the drive was invalid)
switch (code) {
case 43: { // DriverGestalt
@ -917,7 +999,7 @@ int16 CDROMStatus(uint32 pb, uint32 dce)
}
return noErr;
}
case 97: { // WhoIsThere
uint8 drives_present = 0;
drive_vec::iterator info, end = drives.end();
@ -929,7 +1011,7 @@ int16 CDROMStatus(uint32 pb, uint32 dce)
return noErr;
}
}
// Drive valid?
if (info == drives.end()) {
if (drives.empty())
@ -937,7 +1019,7 @@ int16 CDROMStatus(uint32 pb, uint32 dce)
else
info = drives.begin(); // This is needed for Apple's Audio CD program
}
// Drive-specific codes
switch (code) {
case 6: // Return format list
@ -950,15 +1032,15 @@ int16 CDROMStatus(uint32 pb, uint32 dce)
} else {
return paramErr;
}
case 8: // DriveStatus
Mac2Mac_memcpy(pb + csParam, info->status, 22);
return noErr;
case 70: // GetPowerMode
WriteMacInt16(pb + csParam, info->power_mode << 8);
return noErr;
case 95: // Get2KOffset
if (info->twok_offset > 0) {
WriteMacInt16(pb + csParam, info->twok_offset);
@ -966,24 +1048,24 @@ int16 CDROMStatus(uint32 pb, uint32 dce)
} else {
return statusErr;
}
case 96: // Get drive type
WriteMacInt16(pb + csParam, 3); // Apple CD 300 or newer
return noErr;
case 98: // Get block size
WriteMacInt16(pb + csParam, info->block_size);
return noErr;
case 120: // Return device ident
WriteMacInt32(pb + csParam, 0);
return noErr;
case 121: // Get CD features
WriteMacInt16(pb + csParam, 0x0200); // 300 KB/s
WriteMacInt16(pb + csParam + 2, 0x0c00); // SCSI-2, stereo
return noErr;
default:
printf("WARNING: Unknown CDROMStatus(%d)\n", code);
return statusErr;
@ -999,6 +1081,6 @@ void CDROMInterrupt(void)
{
if (!acc_run_called)
return;
mount_mountable_volumes();
}

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -30,7 +30,6 @@
0846E51314B128ED00574779 /* sheepshaver_glue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CDBB14A99EEF000B1711 /* sheepshaver_glue.cpp */; };
0856CFC114A99EF0000B1711 /* adb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CD4B14A99EEF000B1711 /* adb.cpp */; };
0856CFC214A99EF0000B1711 /* audio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CD4C14A99EEF000B1711 /* audio.cpp */; };
0856CFE214A99EF0000B1711 /* cdrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CD7814A99EEF000B1711 /* cdrom.cpp */; };
0856CFE614A99EF0000B1711 /* disk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CD7D14A99EEF000B1711 /* disk.cpp */; };
0856CFEC14A99EF0000B1711 /* scsi_dummy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CD8414A99EEF000B1711 /* scsi_dummy.cpp */; };
0856CFEE14A99EF0000B1711 /* emul_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CD8614A99EEF000B1711 /* emul_op.cpp */; };
@ -55,7 +54,6 @@
0856D07C14A99EF1000B1711 /* thunks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CEC114A99EF0000B1711 /* thunks.cpp */; };
0856D07D14A99EF1000B1711 /* timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CEC214A99EF0000B1711 /* timer.cpp */; };
0856D07E14A99EF1000B1711 /* about_window_unix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CEC414A99EF0000B1711 /* about_window_unix.cpp */; };
0856D08714A99EF1000B1711 /* bincue_unix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CECF14A99EF0000B1711 /* bincue_unix.cpp */; };
0856D09814A99EF1000B1711 /* ether_unix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CEE314A99EF0000B1711 /* ether_unix.cpp */; };
0856D0AA14A99EF1000B1711 /* main_unix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CEFB14A99EF0000B1711 /* main_unix.cpp */; };
0856D10614A99EF1000B1711 /* prefs_unix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0856CF5A14A99EF0000B1711 /* prefs_unix.cpp */; };
@ -80,6 +78,24 @@
08CD42DC14B7B85B009CA2A2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08CD42DB14B7B85B009CA2A2 /* Cocoa.framework */; };
08CD42E814B7B8AA009CA2A2 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08CD42E714B7B8AA009CA2A2 /* Carbon.framework */; };
3D2C25B5221092BA00B635DE /* SheepVM.icns in Resources */ = {isa = PBXBuildFile; fileRef = 3D2C25B4221092BA00B635DE /* SheepVM.icns */; };
5D55CB40225584D000FF8E81 /* cdrom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D55CB3F225584D000FF8E81 /* cdrom.cpp */; };
5D55CB432255B4FE00FF8E81 /* bincue_unix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D55CB422255B4FD00FF8E81 /* bincue_unix.cpp */; };
5D55CB452255B50E00FF8E81 /* bincue_unix.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D55CB442255B50E00FF8E81 /* bincue_unix.h */; };
5DDE94F92255C70C004D0E79 /* MacOSX_sound_if.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DDE94F82255C70C004D0E79 /* MacOSX_sound_if.h */; };
5DDE94FB2255C712004D0E79 /* MacOSX_sound_if.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE94FA2255C712004D0E79 /* MacOSX_sound_if.cpp */; };
5DDE94FC2255C712004D0E79 /* MacOSX_sound_if.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE94FA2255C712004D0E79 /* MacOSX_sound_if.cpp */; };
5DDE94FE2255C740004D0E79 /* AudioBackEnd.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DDE94FD2255C740004D0E79 /* AudioBackEnd.h */; };
5DDE95002255C74C004D0E79 /* AudioBackEnd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE94FF2255C74C004D0E79 /* AudioBackEnd.cpp */; };
5DDE95012255C74C004D0E79 /* AudioBackEnd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE94FF2255C74C004D0E79 /* AudioBackEnd.cpp */; };
5DDE95032255C7FE004D0E79 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DDE95022255C7FE004D0E79 /* AudioToolbox.framework */; };
5DDE95052255C822004D0E79 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DDE95042255C822004D0E79 /* CoreAudio.framework */; };
5DDE95072255C844004D0E79 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DDE95062255C844004D0E79 /* AudioUnit.framework */; };
5DDE95092255C88E004D0E79 /* AudioDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE95082255C88E004D0E79 /* AudioDevice.cpp */; };
5DDE950A2255C88E004D0E79 /* AudioDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE95082255C88E004D0E79 /* AudioDevice.cpp */; };
5DDE950C2255C896004D0E79 /* AudioBackEnd.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DDE950B2255C895004D0E79 /* AudioBackEnd.h */; };
5DDE950F2255C8B4004D0E79 /* audio_defs_macosx.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DDE950D2255C8B3004D0E79 /* audio_defs_macosx.h */; };
5DDE95102255C8B4004D0E79 /* audio_macosx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE950E2255C8B3004D0E79 /* audio_macosx.cpp */; };
5DDE95112255C8B4004D0E79 /* audio_macosx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE950E2255C8B3004D0E79 /* audio_macosx.cpp */; };
A7B1921418C35D4700791D8D /* DiskType.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B1921318C35D4700791D8D /* DiskType.m */; };
E413A40320CF7E6D00FBE967 /* video_sdl2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E413A40220CF7E6D00FBE967 /* video_sdl2.cpp */; };
E4150D1220D557820077C51A /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E4150D1120D557820077C51A /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
@ -155,7 +171,6 @@
0856CCC114A99E1C000B1711 /* SheepShaver.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SheepShaver.app; sourceTree = BUILT_PRODUCTS_DIR; };
0856CD4B14A99EEF000B1711 /* adb.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = adb.cpp; path = ../adb.cpp; sourceTree = SOURCE_ROOT; };
0856CD4C14A99EEF000B1711 /* audio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = audio.cpp; path = ../audio.cpp; sourceTree = SOURCE_ROOT; };
0856CD7814A99EEF000B1711 /* cdrom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cdrom.cpp; path = ../cdrom.cpp; sourceTree = SOURCE_ROOT; };
0856CD7D14A99EEF000B1711 /* disk.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = disk.cpp; path = ../disk.cpp; sourceTree = SOURCE_ROOT; };
0856CD8414A99EEF000B1711 /* scsi_dummy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scsi_dummy.cpp; sourceTree = "<group>"; };
0856CD8614A99EEF000B1711 /* emul_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = emul_op.cpp; path = ../emul_op.cpp; sourceTree = SOURCE_ROOT; };
@ -273,8 +288,6 @@
0856CEC114A99EF0000B1711 /* thunks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = thunks.cpp; path = ../thunks.cpp; sourceTree = SOURCE_ROOT; };
0856CEC214A99EF0000B1711 /* timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = timer.cpp; path = ../timer.cpp; sourceTree = SOURCE_ROOT; };
0856CEC414A99EF0000B1711 /* about_window_unix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = about_window_unix.cpp; sourceTree = "<group>"; };
0856CECF14A99EF0000B1711 /* bincue_unix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bincue_unix.cpp; sourceTree = "<group>"; };
0856CED014A99EF0000B1711 /* bincue_unix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bincue_unix.h; sourceTree = "<group>"; };
0856CEE314A99EF0000B1711 /* ether_unix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ether_unix.cpp; sourceTree = "<group>"; };
0856CEFB14A99EF0000B1711 /* main_unix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main_unix.cpp; sourceTree = "<group>"; };
0856CF5A14A99EF0000B1711 /* prefs_unix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = prefs_unix.cpp; sourceTree = "<group>"; };
@ -323,6 +336,20 @@
08CD42DB14B7B85B009CA2A2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
08CD42E714B7B8AA009CA2A2 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
3D2C25B4221092BA00B635DE /* SheepVM.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = SheepVM.icns; sourceTree = "<group>"; };
5D55CB3F225584D000FF8E81 /* cdrom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cdrom.cpp; path = ../../../BasiliskII/src/cdrom.cpp; sourceTree = "<group>"; };
5D55CB422255B4FD00FF8E81 /* bincue_unix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bincue_unix.cpp; path = ../../../BasiliskII/src/Unix/bincue_unix.cpp; sourceTree = "<group>"; };
5D55CB442255B50E00FF8E81 /* bincue_unix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bincue_unix.h; path = ../../../BasiliskII/src/Unix/bincue_unix.h; sourceTree = "<group>"; };
5DDE94F82255C70C004D0E79 /* MacOSX_sound_if.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MacOSX_sound_if.h; path = ../../../BasiliskII/src/MacOSX/MacOSX_sound_if.h; sourceTree = "<group>"; };
5DDE94FA2255C712004D0E79 /* MacOSX_sound_if.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MacOSX_sound_if.cpp; path = ../../../BasiliskII/src/MacOSX/MacOSX_sound_if.cpp; sourceTree = "<group>"; };
5DDE94FD2255C740004D0E79 /* AudioBackEnd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioBackEnd.h; path = ../../../BasiliskII/src/MacOSX/AudioBackEnd.h; sourceTree = "<group>"; };
5DDE94FF2255C74C004D0E79 /* AudioBackEnd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AudioBackEnd.cpp; path = ../../../BasiliskII/src/MacOSX/AudioBackEnd.cpp; sourceTree = "<group>"; };
5DDE95022255C7FE004D0E79 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
5DDE95042255C822004D0E79 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
5DDE95062255C844004D0E79 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; };
5DDE95082255C88E004D0E79 /* AudioDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AudioDevice.cpp; path = ../../../BasiliskII/src/MacOSX/AudioDevice.cpp; sourceTree = "<group>"; };
5DDE950B2255C895004D0E79 /* AudioBackEnd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioBackEnd.h; path = ../../../BasiliskII/src/MacOSX/AudioBackEnd.h; sourceTree = "<group>"; };
5DDE950D2255C8B3004D0E79 /* audio_defs_macosx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = audio_defs_macosx.h; path = ../../../BasiliskII/src/MacOSX/audio_defs_macosx.h; sourceTree = "<group>"; };
5DDE950E2255C8B3004D0E79 /* audio_macosx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = audio_macosx.cpp; path = ../../../BasiliskII/src/MacOSX/audio_macosx.cpp; sourceTree = "<group>"; };
A7B1921218C35D4700791D8D /* DiskType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiskType.h; sourceTree = "<group>"; };
A7B1921318C35D4700791D8D /* DiskType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DiskType.m; sourceTree = "<group>"; };
E413A40220CF7E6D00FBE967 /* video_sdl2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = video_sdl2.cpp; path = ../../../BasiliskII/src/SDL/video_sdl2.cpp; sourceTree = "<group>"; };
@ -391,6 +418,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
5DDE95072255C844004D0E79 /* AudioUnit.framework in Frameworks */,
5DDE95052255C822004D0E79 /* CoreAudio.framework in Frameworks */,
5DDE95032255C7FE004D0E79 /* AudioToolbox.framework in Frameworks */,
E420910120D0C4FA0094654F /* SDL2.framework in Frameworks */,
0856D21514A9A6C6000B1711 /* IOKit.framework in Frameworks */,
08CD42DC14B7B85B009CA2A2 /* Cocoa.framework in Frameworks */,
@ -448,7 +478,7 @@
087B91B11B780EC900825F7F /* CrossPlatform */,
0856CD4B14A99EEF000B1711 /* adb.cpp */,
0856CD4C14A99EEF000B1711 /* audio.cpp */,
0856CD7814A99EEF000B1711 /* cdrom.cpp */,
5D55CB3F225584D000FF8E81 /* cdrom.cpp */,
0856CD7D14A99EEF000B1711 /* disk.cpp */,
0856CD7E14A99EEF000B1711 /* dummy */,
0856CD8614A99EEF000B1711 /* emul_op.cpp */,
@ -708,6 +738,12 @@
children = (
0873A76514ABD151004F12B7 /* config */,
0856D2D614A9A704000B1711 /* Launcher */,
5DDE950D2255C8B3004D0E79 /* audio_defs_macosx.h */,
5DDE950E2255C8B3004D0E79 /* audio_macosx.cpp */,
5DDE94FD2255C740004D0E79 /* AudioBackEnd.h */,
5DDE94FF2255C74C004D0E79 /* AudioBackEnd.cpp */,
5DDE95082255C88E004D0E79 /* AudioDevice.cpp */,
5DDE950B2255C895004D0E79 /* AudioBackEnd.h */,
E456E2AC20C82B60006C8DC2 /* clip_macosx64.mm */,
0856CE2D14A99EF0000B1711 /* extfs_macosx.cpp */,
0879BDAF15A8B1AA00DC277D /* Info.plist.in */,
@ -718,6 +754,8 @@
0856CE8714A99EF0000B1711 /* sys_darwin.cpp */,
0873A80014AC515D004F12B7 /* utils_macosx.h */,
0873A80114AC515D004F12B7 /* utils_macosx.mm */,
5DDE94F82255C70C004D0E79 /* MacOSX_sound_if.h */,
5DDE94FA2255C712004D0E79 /* MacOSX_sound_if.cpp */,
);
name = MacOSX;
sourceTree = "<group>";
@ -791,8 +829,8 @@
08003F841E0624BD00A3ADAB /* dyngen_precompiled */,
082AC25614AA59DA00071F5E /* Darwin */,
0856CEC414A99EF0000B1711 /* about_window_unix.cpp */,
0856CECF14A99EF0000B1711 /* bincue_unix.cpp */,
0856CED014A99EF0000B1711 /* bincue_unix.h */,
5D55CB422255B4FD00FF8E81 /* bincue_unix.cpp */,
5D55CB442255B50E00FF8E81 /* bincue_unix.h */,
083E370A16EFE85000CCCA59 /* disk_sparsebundle.cpp */,
083E370B16EFE85000CCCA59 /* disk_unix.h */,
0856CEE314A99EF0000B1711 /* ether_unix.cpp */,
@ -862,6 +900,9 @@
08CD42DF14B7B865009CA2A2 /* Frameworks */ = {
isa = PBXGroup;
children = (
5DDE95062255C844004D0E79 /* AudioUnit.framework */,
5DDE95042255C822004D0E79 /* CoreAudio.framework */,
5DDE95022255C7FE004D0E79 /* AudioToolbox.framework */,
E420910020D0C4FA0094654F /* SDL2.framework */,
08CD42E714B7B8AA009CA2A2 /* Carbon.framework */,
08CD42DB14B7B85B009CA2A2 /* Cocoa.framework */,
@ -878,9 +919,14 @@
buildActionMask = 2147483647;
files = (
08003F8F1E0624D100A3ADAB /* ppc-dyngen-ops-x86_32.hpp in Headers */,
5DDE94F92255C70C004D0E79 /* MacOSX_sound_if.h in Headers */,
08003F8E1E0624D100A3ADAB /* basic-dyngen-ops.hpp in Headers */,
E4C9A03E1FD55CDC00CABBF9 /* basic-dyngen-ops-x86_64_macos.hpp in Headers */,
E4C9A0401FD55CE700CABBF9 /* ppc-dyngen-ops-x86_64_macos.hpp in Headers */,
5DDE950C2255C896004D0E79 /* AudioBackEnd.h in Headers */,
5DDE950F2255C8B4004D0E79 /* audio_defs_macosx.h in Headers */,
5D55CB452255B50E00FF8E81 /* bincue_unix.h in Headers */,
5DDE94FE2255C740004D0E79 /* AudioBackEnd.h in Headers */,
08163339158C121000C449F9 /* dis-asm.h in Headers */,
08003F8C1E0624D100A3ADAB /* basic-dyngen-ops-x86_32.hpp in Headers */,
08003F911E0624D100A3ADAB /* ppc-dyngen-ops.hpp in Headers */,
@ -995,13 +1041,17 @@
files = (
0846E4B114B1264700574779 /* ieeefp.cpp in Sources */,
0846E4B314B1264F00574779 /* mathlib.cpp in Sources */,
5DDE950A2255C88E004D0E79 /* AudioDevice.cpp in Sources */,
0846E4B514B1265500574779 /* utils-cpuinfo.cpp in Sources */,
0846E4B614B1265A00574779 /* ppc-translate.cpp in Sources */,
0846E4B814B1266000574779 /* ppc-jit.cpp in Sources */,
0846E4B914B1266600574779 /* ppc-execute.cpp in Sources */,
0846E4BC14B1267200574779 /* ppc-dyngen.cpp in Sources */,
5DDE94FC2255C712004D0E79 /* MacOSX_sound_if.cpp in Sources */,
5DDE95112255C8B4004D0E79 /* audio_macosx.cpp in Sources */,
0846E4BE14B1267A00574779 /* ppc-decode.cpp in Sources */,
0846E4C014B1267F00574779 /* ppc-cpu.cpp in Sources */,
5DDE95012255C74C004D0E79 /* AudioBackEnd.cpp in Sources */,
0846E4C114B1268B00574779 /* jit-cache.cpp in Sources */,
0846E4C214B1269600574779 /* basic-dyngen.cpp in Sources */,
0846E51314B128ED00574779 /* sheepshaver_glue.cpp in Sources */,
@ -1014,11 +1064,11 @@
buildActionMask = 2147483647;
files = (
E44C460B20D262B0000583AE /* debug.c in Sources */,
5DDE94FB2255C712004D0E79 /* MacOSX_sound_if.cpp in Sources */,
E44C460C20D262B0000583AE /* tcp_subr.c in Sources */,
0856CFC114A99EF0000B1711 /* adb.cpp in Sources */,
E44C461520D262B0000583AE /* ip_output.c in Sources */,
0856CFC214A99EF0000B1711 /* audio.cpp in Sources */,
0856CFE214A99EF0000B1711 /* cdrom.cpp in Sources */,
E44C461820D262B0000583AE /* tcp_output.c in Sources */,
0856CFE614A99EF0000B1711 /* disk.cpp in Sources */,
0856CFEC14A99EF0000B1711 /* scsi_dummy.cpp in Sources */,
@ -1043,6 +1093,7 @@
E44C461420D262B0000583AE /* ip_input.c in Sources */,
E44C461320D262B0000583AE /* bootp.c in Sources */,
0856D05E14A99EF1000B1711 /* prefs.cpp in Sources */,
5D55CB40225584D000FF8E81 /* cdrom.cpp in Sources */,
0856D05F14A99EF1000B1711 /* rom_patches.cpp in Sources */,
0856D06014A99EF1000B1711 /* rsrc_patches.cpp in Sources */,
0856D06114A99EF1000B1711 /* scsi.cpp in Sources */,
@ -1052,10 +1103,11 @@
0856D07B14A99EF1000B1711 /* sony.cpp in Sources */,
0856D07C14A99EF1000B1711 /* thunks.cpp in Sources */,
0856D07D14A99EF1000B1711 /* timer.cpp in Sources */,
5DDE95002255C74C004D0E79 /* AudioBackEnd.cpp in Sources */,
0856D07E14A99EF1000B1711 /* about_window_unix.cpp in Sources */,
E44C460720D262B0000583AE /* ip_icmp.c in Sources */,
0856D08714A99EF1000B1711 /* bincue_unix.cpp in Sources */,
E4CBF46120CFC451009F40CC /* video_sdl.cpp in Sources */,
5DDE95102255C8B4004D0E79 /* audio_macosx.cpp in Sources */,
0856D09814A99EF1000B1711 /* ether_unix.cpp in Sources */,
0856D0AA14A99EF1000B1711 /* main_unix.cpp in Sources */,
E413A40320CF7E6D00FBE967 /* video_sdl2.cpp in Sources */,
@ -1070,9 +1122,11 @@
0856D11114A99EF1000B1711 /* user_strings_unix.cpp in Sources */,
E44C461020D262B0000583AE /* slirp.c in Sources */,
0856D11614A99EF1000B1711 /* xpram_unix.cpp in Sources */,
5DDE95092255C88E004D0E79 /* AudioDevice.cpp in Sources */,
0856D11714A99EF1000B1711 /* user_strings.cpp in Sources */,
E44C460920D262B0000583AE /* tcp_input.c in Sources */,
0856D11814A99EF1000B1711 /* video.cpp in Sources */,
5D55CB432255B4FE00FF8E81 /* bincue_unix.cpp in Sources */,
E41936C420CFE64D003A7654 /* SDLMain.m in Sources */,
E44C461220D262B0000583AE /* socket.c in Sources */,
0856D13F14A99EF1000B1711 /* xpram.cpp in Sources */,
@ -1128,6 +1182,8 @@
"_GNU_SOURCE=1",
_THREAD_SAFE,
_REENTRANT,
"USE_SDL_AUDIO=1",
"BINCUE=1",
);
HEADER_SEARCH_PATHS = (
/Library/Frameworks/SDL2.framework/Headers/,
@ -1165,6 +1221,8 @@
"_GNU_SOURCE=1",
_THREAD_SAFE,
_REENTRANT,
"USE_SDL_AUDIO=1",
"BINCUE=1",
);
HEADER_SEARCH_PATHS = (
/Library/Frameworks/SDL2.framework/Headers/,
@ -1232,6 +1290,9 @@
"_GNU_SOURCE=1",
_THREAD_SAFE,
_REENTRANT,
"BINCUE=1",
"OSX_CORE_AUDIO=1",
"USE_SDL_AUDIO=1",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_UNUSED_FUNCTION = YES;
@ -1292,6 +1353,9 @@
"_GNU_SOURCE=1",
_THREAD_SAFE,
_REENTRANT,
"BINCUE=1",
"OSX_CORE_AUDIO=1",
"USE_SDL_AUDIO=1",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_UNUSED_FUNCTION = YES;

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "0856CCC014A99E1C000B1711"
BuildableName = "SheepShaver.app"
BlueprintName = "SheepShaver"
ReferencedContainer = "container:SheepShaver_Xcode8.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "0856CCC014A99E1C000B1711"
BuildableName = "SheepShaver.app"
BlueprintName = "SheepShaver"
ReferencedContainer = "container:SheepShaver_Xcode8.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
debugAsWhichUser = "root"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "0856CCC014A99E1C000B1711"
BuildableName = "SheepShaver.app"
BlueprintName = "SheepShaver"
ReferencedContainer = "container:SheepShaver_Xcode8.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "0856CCC014A99E1C000B1711"
BuildableName = "SheepShaver.app"
BlueprintName = "SheepShaver"
ReferencedContainer = "container:SheepShaver_Xcode8.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>