trudnai / steve2 Goto Github PK
View Code? Open in Web Editor NEWApple ][ Emulator for Mac
License: GNU General Public License v3.0
Apple ][ Emulator for Mac
License: GNU General Public License v3.0
Add Mock Stereo (Fake Stereo)
Delay Left and Right channel based on Frequency Ranges. It is easy to implement it in spkr_toggle()
...
Make this is an optional setting.
Make a bit more intuitive and attractive UI for the initial release
Give options for the Joystick emulation
File Extension (2IMG/*.2MG) - This image is usually 800K in size, and is a proprietary format used by the XGS multi-platform IIgs emulator as well as Bernie ][ The Rescue on the Macintosh. It usually has the *.2MG extension. The size of the image is due to fact it contains a copy of an 800K 3.5" disk (usually ProDOS) rather than a single density 5.25" disk (although these may also be imported into 2IMG format by the utilities below). The format is primarily created by converting a ProDOS 800K disk into a DiskCopy image on a Macintosh, and then using the XGS "Image" utilities by Matthew Conte [email protected], or "Revival" by Thomas Fok [email protected]. "Revival" can also convert DOS 3.3 Ordered, ProDOS Ordered, and ApplePC HDV images into 2IMG format. The 2IMG format is explained at:
http://www.glink.net.hk/~thomas/2img.txt
was playing a bit of Oregon Trail with no issues, but when it asked for side 2, i switched DSK images in drive 1 and hit space, but the game doesn't recognize it. :( DSK files attached.
using prebuilt 0.85 (1) installed from PKG.
Adjusting fadeLevel
increments in spkr_toggle()
makes it possible to change softness of sound. Softer sound might give you better audio for speech synthesis, also some people might prefer that.
Harder sound might give you more accurate sound on average games.
fadeLevel *= 0.16;
or belowfadeLevel *= 0.64;
fadeLevel *= 0.75;
or aboveFile Extension (DO/*.DSK) - This image is 143360 bytes in size (143488 with MacBinary header). It usually has the *.DSK extension, but may also be found with the *.DO extension as well. As suggested by the title, data is stored track by track and sector by sector (Track 0, Sector 0 -> Track 22, Sector 15) for a standard 1:1 copy of a 35 track, 16 sector DOS 3.3 disk (256 bytes per sector). This is the most widely-used disk-image format for 8-bit emulators, and is easily translated into other formats. This format is incapable of storing copy-protected software unless it has been "cracked" first. A basic guide to determining what type is software may be stored in a DO image is whether it can be first duplicated on an Apple with standard copy utilities such as "copya".
On the MACINTOSH - Unlike the PC, which determines file-types by the extension, the Macintosh adds a "resource header" to all files containing file type and creator information (creating a "forked" file). Files stored on Internet FTP sites, or transferred from a Unix or PC platform, will generally not contain this resource header. As such, the disk-image will not appear as a file usuable by any of the Macintosh emulators. It is a (relatively) simple case to change the File Type and File Creator information to "register" the disk-images to belong to a certain emulator. The relevant disk-image File Type and Creator information is displayed in the reviews of each Macintosh emulator in Section 2. For example, to use this format with Stop The Madness, ensure that the file is downloaded or transferred in binary - not Macbinary - mode (and is 143360 bytes). STM will NOT recognize the disk-image unless it has the correct file type/creator, even if it is of the correct size and is a binary file. Set the file type to 'DSK5' and the creator to 'A2EM' using ResEdit, UUlite, etc. Alternatively "Drop?Disk" is a drag-and-drop application which automatically converts the file type and creator of disk-images for use with STM. For the other Macintosh emulators, a useful utility to bulk- change resource information is the "Snitch" extension by Mitch Jones [email protected], which adds resource functionality to the Finder's "Get Info" window. Simply select a number of disk-image files, do a simultaneous "Get Info" command and change the active window's resource information. Then select "Change All" from Snitch's menu.
There are a number of utilities for the Macintosh which modify to and from ProDOS Order disk-images: "Easy.STM Convert.1.0" by Jim Surine [email protected], "Aconv v1.0" by Dan Bornstein and "Converter" will reorder PO disk-image sectors into the DO type used by STM. To re-order the sectors into ProDOS order, use "DOS Order Converter" by Rene Gaudet [email protected] or "ProDOS-Order Converter" (the "mapper" algorithm automatically reorders between the two formats).
PROGRAM LOCATIONS:
ftp://ftp.wustl.edu/systems/mac/info-mac/cfg/snitch-251.hqx
ftp://cassandra.ucr.edu/pub/apple2/converter.hqx
ftp://cassandra.ucr.edu/pub/apple2/easy.convert.1.0.sea.hqx
ftp://ftp.apple.asimov.net/pub/apple_II/utility/do2po_v0.1.sit.hqx
ftp://ftp.apple.asimov.net/pub/apple_II/utility/Po_to_Do.gz
ftp://ftp.apple.asimov.net/pub/apple_II/utility/ProDOSOrderConv.sit.bin
On the PC - The PC simply determines file-type by extension (although the emulators themselves may do some checking with regard to correct file size). To use this format with all of the PC emulators, ensure that the file is downloaded or transferred in binary mode (and is 143360 bytes) and that it has an eight character filename and *.DSK extension. The current version of Apl2Em requires that the D1 and D2 disk-images have default names (usually SYSTEM.DSK and BLANK.DSK respectively), so you will have to rename your disk-image files to use them. Applewin can actually read *.DSK files of 143488 bytes (MacBinary files with the *BIN extension) but for compatibility with other emulators it is better to translate the files correctly prior to use - see Section 4. No other form of conversion is necessary.
Let me know how I can help troubleshoot!
iMac Pro 3.2 GHz 8-Core Intel Xeon W, 32Gb RAM
Radeon Pro Vega 56 8 GB
Catalina 10.15.5
XCode 11.6 (11E708)
2020-08-09 21:36:03.413436-0400 Steve ][[40735:81182034] This application is modifying the autolayout engine from a background thread after the engine was accessed from the main thread. This can lead to engine corruption and weird crashes.
Stack:(
0 Foundation 0x00007fff37354ce9 _AssertAutolayoutOnAllowedThreadsOnly + 195
1 Foundation 0x00007fff37364e61 -[NSISEngine tryToChangeConstraintSuchThatMarker:isReplacedByMarkerPlusDelta:undoHandler:] + 38
2 Foundation 0x00007fff3735cfd5 -[NSLayoutConstraint _tryToChangeContainerGeometryWithUndoHandler:] + 389
3 Foundation 0x00007fff3734fae4 -[NSLayoutConstraint _setSymbolicConstant:constant:] + 553
4 Foundation 0x00007fff37352b80 -[NSLayoutConstraint setConstant:] + 66
5 AppKit 0x00007fff31fe7197 -[NSView(NSConstraintBasedLayout) _updateSimpleAutoresizingConstraintsInPlace:forAutoresizingMask:] + 895
6 AppKit 0x00007fff31f5e53d NSViewUpdateConstraintsForFrameChange + 434
7 AppKit 0x00007fff31f5692a -[NSView setFrameSize:] + 1894
8 AppKit 0x00007fff320e2d31 -[NSTextView(NSPrivate) _setFrameSize:forceScroll:] + 962
9 AppKit 0x00007fff320e2865 -[NSTextView setFrameSize:] + 145
10 AppKit 0x00007fff32053ebb -[NSTextView setConstrainedFrameSize:] + 591
11 UIFoundation 0x00007fff65cc7338 -[NSLayoutManager(NSPrivate) _resizeTextViewForTextContainer:] + 1103
12 UIFoundation 0x00007fff65d0c405 _resizeTextViewsIfNeeded + 284
13 UIFoundation 0x00007fff65cd5870 _NSFastFillAllLayoutHolesForGlyphRange + 1863
14 UIFoundation 0x00007fff65cf765a -[NSLayoutManager(NSPrivate) _firstPassGlyphRangeForBoundingRect:inTextContainer:okToFillHoles:] + 1441
15 UIFoundation 0x00007fff65cf611b -[NSLayoutManager(NSPrivate) _glyphRangeForBoundingRect:inTextContainer:fast:okToFillHoles:] + 857
16 AppKit 0x00007fff320eefaa -[NSTextView drawRect:] + 1076
17 AppKit 0x00007fff320a8d8f _NSViewDrawRect + 139
18 AppKit 0x00007fff320a809e -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:] + 2170
19 AppKit 0x00007fff320a749a -[NSView(NSLayerKitGlue) _drawViewBackingLayer:inContext:drawingHandler:] + 1271
20 QuartzCore 0x00007fff40790c5d CABackingStoreUpdate_ + 595
21 QuartzCore 0x00007fff407f07d9 ___ZN2CA5Layer8display_Ev_block_invoke + 53
22 QuartzCore 0x00007fff40790162 -[CALayer _display] + 2103
23 AppKit 0x00007fff320a6e8a -[_NSBackingLayer display] + 537
24 AppKit 0x00007fff32008977 -[_NSViewBackingLayer display] + 800
25 QuartzCore 0x00007fff407b83fd _ZL16display_callbackPvS_ + 71
26 QuartzCore 0x00007fff407b835f _ZN2CA13DispatchGroup8dispatchEb + 65
27 libdispatch.dylib 0x00007fff6ec4a658 _dispatch_client_callout + 8
28 libdispatch.dylib 0x00007fff6ec4fc44 _dispatch_lane_serial_drain + 597
29 libdispatch.dylib 0x00007fff6ec505d6 _dispatch_lane_invoke + 363
30 libdispatch.dylib 0x00007fff6ec59c09 _dispatch_workloop_worker_thread + 596
31 libsystem_pthread.dylib 0x00007fff6eea4a3d _pthread_wqthread + 290
32 libsystem_pthread.dylib 0x00007fff6eea3b77 start_wqthread + 15
)
2020-08-09 21:36:03.425916-0400 Steve ][[40735:81182034] [General] An uncaught exception was raised
2020-08-09 21:36:03.425977-0400 Steve ][[40735:81182034] [General] Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread.
2020-08-09 21:36:03.426048-0400 Steve ][[40735:81182034] [General] (
0 CoreFoundation 0x00007fff34d24be7 __exceptionPreprocess + 250
1 libobjc.A.dylib 0x00007fff6dafc5bf objc_exception_throw + 48
2 Foundation 0x00007fff37354dd7 _AssertAutolayoutOnAllowedThreadsOnly + 433
3 Foundation 0x00007fff37364e61 -[NSISEngine tryToChangeConstraintSuchThatMarker:isReplacedByMarkerPlusDelta:undoHandler:] + 38
4 Foundation 0x00007fff3735cfd5 -[NSLayoutConstraint _tryToChangeContainerGeometryWithUndoHandler:] + 389
5 Foundation 0x00007fff3734fae4 -[NSLayoutConstraint _setSymbolicConstant:constant:] + 553
6 Foundation 0x00007fff37352b80 -[NSLayoutConstraint setConstant:] + 66
7 AppKit 0x00007fff31fe7197 -[NSView(NSConstraintBasedLayout) _updateSimpleAutoresizingConstraintsInPlace:forAutoresizingMask:] + 895
8 AppKit 0x00007fff31f5e53d NSViewUpdateConstraintsForFrameChange + 434
9 AppKit 0x00007fff31f5692a -[NSView setFrameSize:] + 1894
10 AppKit 0x00007fff320e2d31 -[NSTextView(NSPrivate) _setFrameSize:forceScroll:] + 962
11 AppKit 0x00007fff320e2865 -[NSTextView setFrameSize:] + 145
12 AppKit 0x00007fff32053ebb -[NSTextView setConstrainedFrameSize:] + 591
13 UIFoundation 0x00007fff65cc7338 -[NSLayoutManager(NSPrivate) _resizeTextViewForTextContainer:] + 1103
14 UIFoundation 0x00007fff65d0c405 _resizeTextViewsIfNeeded + 284
15 UIFoundation 0x00007fff65cd5870 _NSFastFillAllLayoutHolesForGlyphRange + 1863
16 UIFoundation 0x00007fff65cf765a -[NSLayoutManager(NSPrivate) _firstPassGlyphRangeForBoundingRect:inTextContainer:okToFillHoles:] + 1441
17 UIFoundation 0x00007fff65cf611b -[NSLayoutManager(NSPrivate) _glyphRangeForBoundingRect:inTextContainer:fast:okToFillHoles:] + 857
18 AppKit 0x00007fff320eefaa -[NSTextView drawRect:] + 1076
19 AppKit 0x00007fff320a8d8f _NSViewDrawRect + 139
20 AppKit 0x00007fff320a809e -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:] + 2170
21 AppKit 0x00007fff320a749a -[NSView(NSLayerKitGlue) _drawViewBackingLayer:inContext:drawingHandler:] + 1271
22 QuartzCore 0x00007fff40790c5d CABackingStoreUpdate_ + 595
23 QuartzCore 0x00007fff407f07d9 ___ZN2CA5Layer8display_Ev_block_invoke + 53
24 QuartzCore 0x00007fff40790162 -[CALayer _display] + 2103
25 AppKit 0x00007fff320a6e8a -[_NSBackingLayer display] + 537
26 AppKit 0x00007fff32008977 -[_NSViewBackingLayer display] + 800
27 QuartzCore 0x00007fff407b83fd _ZL16display_callbackPvS_ + 71
28 QuartzCore 0x00007fff407b835f _ZN2CA13DispatchGroup8dispatchEb + 65
29 libdispatch.dylib 0x00007fff6ec4a658 _dispatch_client_callout + 8
30 libdispatch.dylib 0x00007fff6ec4fc44 _dispatch_lane_serial_drain + 597
31 libdispatch.dylib 0x00007fff6ec505d6 _dispatch_lane_invoke + 363
32 libdispatch.dylib 0x00007fff6ec59c09 _dispatch_workloop_worker_thread + 596
33 libsystem_pthread.dylib 0x00007fff6eea4a3d _pthread_wqthread + 290
34 libsystem_pthread.dylib 0x00007fff6eea3b77 start_wqthread + 15
)
2020-08-09 21:36:03.426485-0400 Steve ][[40735:81182034] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread.'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff34d24be7 __exceptionPreprocess + 250
1 libobjc.A.dylib 0x00007fff6dafc5bf objc_exception_throw + 48
2 Foundation 0x00007fff37354dd7 _AssertAutolayoutOnAllowedThreadsOnly + 433
3 Foundation 0x00007fff37364e61 -[NSISEngine tryToChangeConstraintSuchThatMarker:isReplacedByMarkerPlusDelta:undoHandler:] + 38
4 Foundation 0x00007fff3735cfd5 -[NSLayoutConstraint _tryToChangeContainerGeometryWithUndoHandler:] + 389
5 Foundation 0x00007fff3734fae4 -[NSLayoutConstraint _setSymbolicConstant:constant:] + 553
6 Foundation 0x00007fff37352b80 -[NSLayoutConstraint setConstant:] + 66
7 AppKit 0x00007fff31fe7197 -[NSView(NSConstraintBasedLayout) _updateSimpleAutoresizingConstraintsInPlace:forAutoresizingMask:] + 895
8 AppKit 0x00007fff31f5e53d NSViewUpdateConstraintsForFrameChange + 434
9 AppKit 0x00007fff31f5692a -[NSView setFrameSize:] + 1894
10 AppKit 0x00007fff320e2d31 -[NSTextView(NSPrivate) _setFrameSize:forceScroll:] + 962
11 AppKit 0x00007fff320e2865 -[NSTextView setFrameSize:] + 145
12 AppKit 0x00007fff32053ebb -[NSTextView setConstrainedFrameSize:] + 591
13 UIFoundation 0x00007fff65cc7338 -[NSLayoutManager(NSPrivate) _resizeTextViewForTextContainer:] + 1103
14 UIFoundation 0x00007fff65d0c405 _resizeTextViewsIfNeeded + 284
15 UIFoundation 0x00007fff65cd5870 _NSFastFillAllLayoutHolesForGlyphRange + 1863
16 UIFoundation 0x00007fff65cf765a -[NSLayoutManager(NSPrivate) _firstPassGlyphRangeForBoundingRect:inTextContainer:okToFillHoles:] + 1441
17 UIFoundation 0x00007fff65cf611b -[NSLayoutManager(NSPrivate) _glyphRangeForBoundingRect:inTextContainer:fast:okToFillHoles:] + 857
18 AppKit 0x00007fff320eefaa -[NSTextView drawRect:] + 1076
19 AppKit 0x00007fff320a8d8f _NSViewDrawRect + 139
20 AppKit 0x00007fff320a809e -[NSView(NSInternal) _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:] + 2170
21 AppKit 0x00007fff320a749a -[NSView(NSLayerKitGlue) _drawViewBackingLayer:inContext:drawingHandler:] + 1271
22 QuartzCore 0x00007fff40790c5d CABackingStoreUpdate_ + 595
23 QuartzCore 0x00007fff407f07d9 ___ZN2CA5Layer8display_Ev_block_invoke + 53
24 QuartzCore 0x00007fff40790162 -[CALayer _display] + 2103
25 AppKit 0x00007fff320a6e8a -[_NSBackingLayer display] + 537
26 AppKit 0x00007fff32008977 -[_NSViewBackingLayer display] + 800
27 QuartzCore 0x00007fff407b83fd _ZL16display_callbackPvS_ + 71
28 QuartzCore 0x00007fff407b835f _ZN2CA13DispatchGroup8dispatchEb + 65
29 libdispatch.dylib 0x00007fff6ec4a658 _dispatch_client_callout + 8
30 libdispatch.dylib 0x00007fff6ec4fc44 _dispatch_lane_serial_drain + 597
31 libdispatch.dylib 0x00007fff6ec505d6 _dispatch_lane_invoke + 363
32 libdispatch.dylib 0x00007fff6ec59c09 _dispatch_workloop_worker_thread + 596
33 libsystem_pthread.dylib 0x00007fff6eea4a3d _pthread_wqthread + 290
34 libsystem_pthread.dylib 0x00007fff6eea3b77 start_wqthread + 15
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
File Extension (PO/*.DSK) - This image is 143360 bytes in size (143488 with MacBinary header). It usually has the *.DSK extension, but may also be found with the *.PO extension as well. This disk-image stores data in block rather than track/sector format (block 0, block 1 -> block 279) - the difference in the structure is due to ProDOS interleaving data in blocks (which equal two DOS sectors). Although newer emulators are capable of distinguishing between DO and PO (and thus using both) older emulators strictly require the DO type despite the identical size. ProDOS Order images are still useful since they are capable of being converted back into SDK images by "Nulib" (which are compatible with ShrinkIt on the Apple). DO images are not capable of this. PO is an older disk-image format (used more widely with Unix emulators, since ShrinkIt archives extracted by "Nulib" produce PO images). Like DO, this format is incapable of storing copy- protected software unless it has been "cracked" first. A basic guide to determining what type is software may be stored in a PO image is whether it can be first duplicated on an Apple with standard copy utilities such as "copya".
On the MACINTOSH - The file must be downloaded in binary mode. None of the Macintosh emulators really use the PO format, except for "][ In a Mac", which uses images of non-standard size. To use this format with "][ In a Mac", drop a DO or Copy II+ 7.1 image file onto "Image Converter" by Lazarus I. Long and select the required format; output images will have the correct resource information. The application "Easy Convert" will re-order the sectors of a PO disk-image into DOS3.3 Order, and will automatically set the file type/creator attributes upon output to 'DSK5'/'A2EM' for use with STM. Alternatively, use "ProDOS-Order Converter".
PROGRAM LOCATIONS:
ftp://ftp.apple.asimov.net/pub/apple_II/utility/ic.sit
ftp://cassandra.ucr.edu/pub/apple2/easy.convert.1.0.sea.hqx
ftp://ftp.apple.asimov.net/pub/apple_II/utility/Po_to_Do.gz
ftp://ftp.apple.asimov.net/pub/apple_II/utility/ProDOSOrderConv.sit.bin
On the PC - No emulators on the PC require PO images (although newer emulators such as AppleWin support them). Use "Mapper" by Rene Gaudet [email protected] to convert DO to PO and vice versa.
PROGRAM LOCATIONS:
ftp://ftp.apple.asimov.net/pub/apple_II/utility/mapper.zip
Add volume control for the speaker.
This can be done by adjusting SPKR_LEVEL_MIN and MAX
File Extension (NDO/*.NIB) - This image is 232960 bytes in size, and it usually has the *.NIB extension. According to the original "Apple2 Emulation Frequently Asked Questions" guide, "every three bytes of data have been 'bit twiddled' into four bytes, and each sector has an 'address field' that has the track and sector numbers." The format was originally used solely in the "ApplEmu" emulator before becoming widely used to store copy-protected software. The conversion utilities listed below are solely for use with "ApplEmu" images containing standard software! NDO images rely on the extra space to store non-standard track information which would otherwise be lost in a DO or PO image. With newer emulators such as AppleWin and ApplePC, NDO can be used to store copy-protected or non- standard Apple disk-images (created by SST - see "Super Saltines Transcopy" in Section 5.3).
On the MACINTOSH - There is currently no way to convert either from or to NDO on the Macintosh. NDO images are used by the "Catakig" emulator (File Creator: 'Ctkg', File Type: 'A2D5')
On the PC - To convert PO disk-images to NDO (for use with ApplEmu), use "Em2Emu" by Tom Baker [email protected]. To convert NDO back to DO use "Emu2Em" by Dan Scholnik [email protected] to re-order this format back into the "standard" 143360 size. AppleEmu can run NDO images containing copy-protected software without conversion. Newer emulators support multiple disk-images types but will support all NDO types containing standard software.
PROGRAM LOCATIONS:
ftp://ftp.apple.asimov.net/pub/apple_II/utility/em2emu.zip
ftp://ftp.apple.asimov.net/pub/apple_II/utility/emu2em.zip
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.