Sweet16 2.1.1 makes Macs happy

I’ve just released Sweet16 2.1.1, a nice little update that fixes a few bugs, and includes a couple of changes that reduce CPU overhead on the host Macintosh substantially. Here’s an overview of what’s changed:

  • The main event loop now does sleeps instead of busy-loops, dramatically reducing wasted CPU cycles; Sweet16 plays much more nicely with other running processes now.
  • Rewrote the video timing code to be more precise.
  • Removed some unnecessary mutual exclusion code in the networking support, speeding up networking substantially.
  • The Create Disk Image panel now lets you choose a disk image format on Mac OS X 10.4; previously this popup window didn’t do anything prior to Mac OS X 10.5.
  • The SpiderMonkey JavaScript runtime is now weak-linked, so that Sweet16 really does now run on PowerPC G3 systems (albeit without debugger support).
  • Creating disk images of even 1 MB sizes (5 MB, 10 MB, 32 MB, 100 MB, for example) now goes much, much faster, since instead of writing out 512 bytes at a time, these are written 1 MB at a time. A future update will provide a similar performance improvement for floppy size image creation.
  • Clicks in the video window are no longer ignored when the System Information window is open.
  • Enabled some new optimizations that noticeably improves performance on PowerPC systems.
  • Removed some unnecessary debug output.
  • The Create Disk Image panel now lets you create DiskCopy 4.2 images at 1.4 MB.
  • The Create Disk Image panel’s size popup no longer wanders out of view when you resize the panel.
  • Memory no longer gets leaked when controls in the Create Disk Image and Create Emupack file panels are clicked on.
  • Reworded the alert that appears when trying to mount a CD-ROM when no CD-ROM is found, since the same alert is used both when there is no CD-ROM media available as well as when there is no CD-ROM drive available.
I sure hope you like this new version!

Visit the download page!

Sweet16 2.1 released

There was an unfortunate glitch in Sweet16 2.0, which I released earlier today. So I’ve posted Sweet16 2.1, which fixes a memory trashing bug in the “Get Clipboard from Mac” NDA, and also adds a new “View” menu, which offers “Half-size”, “Normal size”, and “Double size” options for quickly resizing the GS video window.

Sweet16 2.0 now available!

Sweet16 2.0, the latest version of the Apple IIgs emulator for Mac OS X, is now available!

The major improvements in Sweet16 2.0 are:

  • Networking support using the Marinetti TCP/IP stack.
  • 16-bit color graphics, rendered using OpenGL.
  • Added Emupack support; Emupacks are self-contained packages containing disk images, ROM, and preferences that you can double-click in the Mac OS X Finder to start up an Apple IIgs configured in a specific way.
  • Resizable video window.
  • A handy, scriptable Debugger to make developing Apple IIgs software easier than ever.
  • Full-screen support.
  • Joystick and gamepad support.
  • You can now copy text between the Mac and Apple IIgs clipboards using NDAs provided with Sweet16.
  • CD-ROM media can now be mounted in the emulated Apple IIgs.
  • An Apple IIgs desk accessory for switching between full-screen and windowed mode.
  • The video window’s title changes to show you the name of the Apple IIgs application you’re currently using.
  • A new preference lets you mount 800K disk images on the SmartPort instead of as IWM devices.
  • Added a preference to automatically slow to 1 MHz when booting from 5.25” disk images.
  • Improved showing and hiding of the Mac mouse cursor.
  • Unpartitioned ISO images can now be mounted in the emulated IIgs.
  • Disk image format detection is much better.
  • The EMUBYTE I/O location now correctly identifies Sweet16 and version 2.0 again.
  • The mouse scroll wheel now sends up and down arrow keys to the emulated Apple IIgs.
  • If you’re currently at the “It is now safe to shut off your Apple IIgs” screen, quitting Sweet16 no longer asks for permission; it just quits.
  • Apple IIgs code can read and write the 640x400 pixel, 16-bit graphics buffer in banks $E2 through $E9.
  • Fixed a number of bugs.

Sweet16 2.0 Public Beta 2 (2.0b18) released

I’ve released a minor update to Sweet16 2.0 Public Beta 2 today, which makes it work on PowerPC G4 systems. G3 users are still unfortunately out of luck until I figure out why the code refuses to compile for G3s.

If you happen to have configured Sweet16 to automatically download prerelease updates, you will get offered this update automatically the next time you start up Sweet16. Otherwise, you can download it manually by visiting the downloads page.

Sweet16 2.0 Public Beta 2 released

I’ve posted Sweet16 2.0 Public Beta 2, otherwise known as Sweet16 2.0b17. This new version adds a ton of features, including Ethernet networking support for Marinetti, joystick support, improved graphics, a very handy debugger for Apple II programmers, and CD-ROM support.

A more thorough set of changes:

  • If no joystick is connected, the joystick routines now report that they’re dead center.
  • If the memory for the screen shot buffer can’t be allocated, screen shots are disabled, instead of letting it try and crash.
  • You can now paste text from the Mac clipboard into the Apple IIgs. Only ASCII characters are supported at present.
  • Added a System Information window to show the CPU speed.
  • Programmers can access the OpenGL buffer used to draw the Apple IIgs screen in banks $E2 through $E9 of Apple IIgs memory. This is a 640x400 pixel buffer in 16-bit color.
  • The Sparkle framework is now used to provide automatic updates. In addition, there’s a preference that lets you enable and disable automatic updates, as well as one that lets you subscribe to receive the extra-risky test updates.
  • Added mutex to fix problems with crashes adding and removing disks to the online disks windows.
  • Added a new Toggle Full Screen NDA so you can toggle full screen within the IIgs environment.
  • Fixed a crash that occurred when changing the window title from the CPU thread; it is now done in the UI thread.
  • Fixed a problem with color palettes that affected colors in DreamGrafix, Wolfenstein 3D, and other applications.
  • You can now mount disk images by dragging them to the application’s icon.
  • Added joystick support; USB joysticks are now supported (but not gamepads).
  • Fixed a crash that occurred when ejecting disks by moving the resize of the online disks window into the UI thread.
  • If GS/OS is shut down and you’re at the “It’s now safe to shut off your Apple IIgs” screen, quitting Sweet16 no longer asks for confirmation, since it’s safe to quit.
  • Added a new preference that lets Sweet16 automatically switch to 1 MHz when booting 5.25” disk images.
  • If the first character of a disk image name you’re creating isn’t a letter, it’s replaced with an “x” when naming the ProDOS volume written onto it.
  • Implemented TCP/IP networking support over Ethernet.
  • Strings are now in the localizable.strings file so they can be localized.
  • Replaced the application icon with something less dorky looking.
  • Added a sweet new debugger.
  • Fixed the title of the About window to get rid of some junk characters.
  • You can now mount ISO format disk images; these may require the High Sierra (ISO) FST to be installed, depending on the format of the contents.
  • You can now mount CD-ROM disks into Sweet16. Sweet16 will attempt to mount all partitions on the disc. Ejecting the disk from the emulator physically ejects it from the computer.
  • Added the “Open CDA Menu” option to the Setup menu; this lets you open the CDA menu if you don’t remember the keys to do it, or if they conflict with some other software running on your Mac.

Visit the Sweet16 page for details, or go directly to the Mac downloads page.