From 1988 to 1993, Steve Jobs's NeXT, Inc. manufactured workstation computers targeted at the education and corporate markets. These machines were based around the Motorola 68030 and 68040 processors, which were popular with both workstation vendors and home computer vendors at the time. NeXT machines pioneered many advancements in software that we take for granted today, and most of the following decade can be summarized as the consequences of advancements that began on NeXT machines. Thanks to NeXT, we have distributed computing, object-oriented interface design, and a whole host of killer applications like the World Wide Web, Doom, Quake, and Mathematica. NeXT computers built the modern world. |
![]() |
The Previous emulator, which allows modern computers to simulate a NeXT computer authentically, is the best way to experience all of these developments in their original format.
If you'd like to try out Previous without downloading anything, the Infinite Mac site hosts a WebAssembly port that works in modern web browsers, including Chrome, Safari, Edge, and Firefox. Mobile browsers are not recommended. |
Previous is a NeXT Computer emulator based on the Atari emulator Hatari. It uses the latest m68k emulation core from WinUAE and the i860 emulator from Jason Eckhardt. Previous works on all systems which are supported by the SDL3 library.
Supported guest hardware:
- Emulation of NeXT computer (1988), NeXTcube, NeXTcube Turbo, NeXTstation, NeXTstation Turbo, NeXTstation Color, and NeXTstation Color Turbo machines
- Motorola 68030 and 68040 CPUs
- CPU clock speeds from 16 MHz–40 MHz with variable (turbo) mode allowing the emulated machine to run as fast as possible
- Per-slot RAM configuration from 2 MB to 128 MB total
- Custom memory speeds from 60–100 ns
- Motorola 56001 DSP (24 KB or 96 KB memory)
- NCR53C90 and NCR63C90A SCSI chips
- MC68HC68T1 or MCCS1850 real-time clock (RTC) chips
- NeXTbus Interface Chip (NBIC)
- ADB or non-ADB peripherals
- Up to three NeXTdimension graphics boards (Intel i860 CPU)
- 10 Mbit Ethernet using SLiRP (NAT mode) or PCAP (bridged mode)
- Floppy, magneto-optical, and CD-ROM drive emulation
- Speaker, microphone, and printer support (prints to PNG file)
Additional features:
- Share up to 4 directories on the host machine with the Previous guest OS using NFS (SLiRP only)
- Boot to ROM monitor
- Netboot
- Automatic clock synchronization with host using NetInfo (SLiRP only)
- Port forwards for FTP and Telnet (SLiRP only)
- Screen capture and recording
- Multiple configuration files
- Command-line ditool utility for inspecting and extracting files from NeXT disk images
Supported guest operating systems:
- All m68k versions of NEXTSTEP:
- NeXTstep 0.8 to 1.0a
- NeXTSTEP 2.0 to 3.0
- NEXTSTEP 3.0 to 3.3
- OPENSTEP 4.0 to 4.2 for Mach
- Japanese releases (3.3J, 4.2J)
- Nearly all available pre-release versions (some may have specific hardware requirements or bugs)
- NetBSD 5.2.3, 11+ (not compatible with turbo slabs or turbo color slabs)
- Plan 9 release 2
- Certain emulation environments (quality variable):
- Executor (Mac System 6.x)
- Daydream (Mac System 7.x, Mac OS 8.1)
- SoftPC (MS-DOS, Windows 3.x)
- UAE (m68k Amiga)
Unsupported:
- Nitro accelerator emulation (insufficient documentation)
- Serial devices (partial support)
- DSP serial modem connectivity and telephony
- Third-party expansion boards
- NeXTdimension video capture

Previous is written by Andreas Grabher, Simon Schubiger and Gilles Fétis.
Many thanks go to the members of the NeXT International Forums for their help. Special thanks go to Gavin Thomas Nicol, Piotr Twarecki, Toni Wilen, Michael Bosshard, Thomas Huth, Olivier Galibert, Jason Eckhardt, Jason Stevens, Daniel L'Hommedieu, Tomaz Slivnik, Vaughan Kaufman, Peter Leonard, Brent Spillner, Frank Wegmann, Grzegorz Szwoch, Michael Engel, Izumi Tsutsui, William Barnett-Lewis, Samantha Halliday and Jeffrey Bergier!
This emulator would not exist without their help.
Current Builds
Legacy Builds
To download the source code for Previous, visit this SourceForge page (for the latest SDL3 branch) and choose 'Download Snapshot', or use this command:
svn checkout https://svn.code.sf.net/p/previous/code/branches/branch_filesharing
To build Previous, you need the following libraries installed:
Required:
- The SDL3 library v3.2.0 or later (libsdl.org)
Optional:
- The zlib compression library (zlib.net)
This is required for using libpng. - The libpng PNG reference library (libpng.org)
This is required for printing to files and taking screen grabs. - The PCAP library (tcpdump.org, or npcap.com for Windows)
This is required for bridged networking. Note that NFS and NetInfo are not available when using PCAP.
Don't forget to also install the header files of these libraries for compiling Previous (some Linux distributions use separate development packages for these header files)!
Aside from these dependencies, you will need C and C++ compilers and a working CMake (v3.12 or later) installation (see cmake.org for details).
CMake can generate makefiles for various flavours of make (such as GNU make) and various IDEs like Xcode on macOS. To run CMake, you have to pass the path to the source of Previous as parameter. For example, the following command to configure the build of Previous in a separate build directory, ./build (assuming that the current working directory is the top of the source tree):
cmake -S . build
Have a look at the manual of CMake for other options. Alternatively, you can use the cmake-gui program to configure the sources with a graphical application or ccmake to configure them with an ncurses-based interface.
Once CMake has successfully configured the build settings, you can compile Previous with:
cmake --build ./build
If it all works out, you should get the executable "Previous" in the build/src directory.
Some systems do not support rendering from secondary threads. In case you get a black window try compiling with rendering threads disabled. To do so, create the build directory manually and run ../configure --disable-rendering-thread from within it before compiling, instead of the cmake -S . build command:
mkdir build
cd build
../configure --disable-rendering-thread
cmake --build ./build
For more detailed building instructions read the file building.previous.txt, included with the source code.
If you'd like to submit a patch, report a bug, or make a feature request, please visit the NeXTcommunity.net Virtualization forum to participate in the discussion.
NeXTcommunity.net forum thread: The main 'mailing list' where Previous development happens. You can also drop by the the NeXT Posterity Discord channel for a quick chat.
InfiniteMac.org: WebAssembly ports of Previous, Mini vMac, Sheepshaver, and PearPC. Ideal for peeking around and seeing what changed between versions. Note that the provided NEXTSTEP images are very minimal and do not offer much in the way of access to software.
Old builds at unixdude.net (macOS): Covers Previous 1.6 to 3.9 for Mac.
Ancient builds at alternative-system.com (Windows, Linux, Mac): Covers Previous 0.2 to 0.5.
Rhetorica's NeXT page: Contributor for current Windows builds.
WMlive Debian packages for Previous: Contributor for current Linux builds.
WMlive GNUstep + Debian distro (includes Linux builds): Interested in a complete modern Linux distribution with a NeXT look and feel? WMlive is just that: a WindowMaker-based GNUstep environment running on Debian Linux. WMlive includes pre-built packages of current Previous releases.
Pre-installed NEXTSTEP and OPENSTEP disks at WinWorldPC: Although WinWorldPC is mainly a DOS and Windows site (as the name suggests), they carry a few pristine, minimal HD images meant to be used with Previous, which were originally created by community member mcCoy. These images come with bundled copies of Previous 0.5 for Windows, which are very old, so you will want to replace them with a newer build from here unless your host environment is Windows XP. (How's performance, pTeK?)
![Looks fine to me in OmniWeb 3 [Looks fine to me in OmniWeb 3]](button-ow3-looks-fine-to-me.gif)
![It's alive, it's alive, IT'S ALIVE! [It's alive!]](button-its-alive.gif)
![Sent from my NeXTcube [Personal Mainframe]](button-personal-mainframe.gif)
![The NeXT INDeX: Mission-Critical Retrocomputing [The NeXT INDeX: Mission-Critical Retrocomputing]](button-index.gif)
![Powered by OPENSTEP [Powered by OPENSTEP]](button-powered-by-openstep.gif)
![Powered by NEXTSTEP [Powered by NEXTSTEP]](button-powered-by-nextstep.gif)
![Powered by NEXTSTEP [Powered by NEXTSTEP]](button-nextstep.gif)
![Powered by OPENSTEP [Powered by OPENSTEP]](button-openstep.gif)