I was just wondering if there are any NeXT cube or station emulators out there. If there aren't I don't see why not. I don't have but more importantly can't find a cube but would like to get a feel for NeXTstep 1 and 2.
Quote from: "krfkeith"I was just wondering if there are any NeXT cube or station emulators out there.
AFAIK there are none avail.
Quote
If there aren't I don't see why not.
The reason is simple: because none has written one. With todays 680x0 emulation cores as in UAE or Basilisk it should be no technical problem at all. Otherwise, why not installing the Intel version if you don't like to drive the real superior black hardware <bg>.
Quote
I don't have but more importantly can't find a cube but would like to get a feel for NeXTstep 1 and 2.
I assume also that these OS there complicated to transfer to an emulation machine, as long as you can connect a prebuild hd on the emulator. Even on real black hardware the most cubes have a broken OD and can't recover these old versions.
I'm serching for years for the NeXTstep 2.2 CD set, but none seems to have it.
I have also a few disk sets of 2.1 but most floppies seems to be broken.
I thought one reason there isn't an emulator might be because of those custom VLSI or whatever chips...
No No No
You see I *really* want some black hardware but I simply can't find any. I've scowered eBay. If anybody has some I might be interested in it for a reasonable price. I thought an emulator would be the NeXT (sorry for the bad pun!) best thing!
Quote from: "helf"I thought one reason there isn't an emulator might be because of those custom VLSI or whatever chips...
...says the AMIGA-guy and explained that there will never be an Emulator possible :-).
ah, thats true enough :P I wish someone with the know-how would tackle it.
You'd need a dump of a ROM. I haven't had any luck trying to get one from a running cube. But with a copy of the firmware, I'm sure you could bang something together. NetBSD boot's so there is some hope.
Quote from: "neozeed"You'd need a dump of a ROM. I haven't had any luck trying to get one from a running cube. But with a copy of the firmware, I'm sure you could bang something together. NetBSD boot's so there is some hope.
A dump of the ROM can be found somewhere on the net (I'd have to search for the URL, though) - IIRC, a V.74 ROM from a Color Turbo.
A concept for a NeXT emulator actually is in the back of my mind for quite some time... one good base would be Aranym, an Open Source Atari Falcon emulator (68040 with MMU and FPU+rudimentary DSP emulation support). However, writing emulation code for all of the (partially undocumented) NeXT hardware would take quite some time. Since the selection of OS's to run on top of a NeXT emulator is quite small (NeXTstep/Openstep, NetBSD, Plan 9... any others?), one could modify the kernel of the OS to be emulated and replace the I/O routines (SCSI, Ethernet etc.) of the device drivers with functions that directly interact with the host system's hardware. IIRC, this is what SheepShaver does when running MacOS Classic. It will work quite well with NeXTstep/Openstep applications since most of these are programmed to work with the system-provided libraries instead of bypassing them (which is what many Amiga and Atari ST programs did).
If one used an emulator like to one described above, the ROM functionality could also be easily emulated. I started adding a Mach-O loader to Aranym some weeks ago but this still crashes when starting the kernel, I think some of the memory mappings I used are incorrect.
Another approach I started was to work on an OS X user mode NeXT/Openstep emulator which would rewrite the shared library function calls of NeXTstep apps to equivalent Cocoa functions or reimplement missing functionality. This code actually works in a rudimentary form and is able to execute some (68k) command line binaries.
However, at the moment, these are only spare-time activities of mine. I would really love to complete both emulator projects... but I'm afraid there's not much commercial interest remaining that would permit me to work full-time on the projects...
Fantastic work cuby! It sounds like it's not only possible, but you are getting it done!
Quote from: "cuby"Quote from: "neozeed"You'd need a dump of a ROM. I haven't had any luck trying to get one from a running cube. But with a copy of the firmware, I'm sure you could bang something together. NetBSD boot's so there is some hope.
A dump of the ROM can be found somewhere on the net (I'd have to search for the URL, though) - IIRC, a V.74 ROM from a Color Turbo.
A concept for a NeXT emulator actually is in the back of my mind for quite some time... one good base would be Aranym, an Open Source Atari Falcon emulator (68040 with MMU and FPU+rudimentary DSP emulation support). However, writing emulation code for all of the (partially undocumented) NeXT hardware would take quite some time. Since the selection of OS's to run on top of a NeXT emulator is quite small (NeXTstep/Openstep, NetBSD, Plan 9... any others?), one could modify the kernel of the OS to be emulated and replace the I/O routines (SCSI, Ethernet etc.) of the device drivers with functions that directly interact with the host system's hardware. IIRC, this is what SheepShaver does when running MacOS Classic. It will work quite well with NeXTstep/Openstep applications since most of these are programmed to work with the system-provided libraries instead of bypassing them (which is what many Amiga and Atari ST programs did).
If one used an emulator like to one described above, the ROM functionality could also be easily emulated. I started adding a Mach-O loader to Aranym some weeks ago but this still crashes when starting the kernel, I think some of the memory mappings I used are incorrect.
Another approach I started was to work on an OS X user mode NeXT/Openstep emulator which would rewrite the shared library function calls of NeXTstep apps to equivalent Cocoa functions or reimplement missing functionality. This code actually works in a rudimentary form and is able to execute some (68k) command line binaries.
However, at the moment, these are only spare-time activities of mine. I would really love to complete both emulator projects... but I'm afraid there's not much commercial interest remaining that would permit me to work full-time on the projects...
Cuby,
Have you made any further progess with this or has the project stagnated?
Would you consider posting what you have done so that others might find some time to work on it?
Quote from: "domiel"Cuby,
Have you made any further progess with this or has the project stagnated?
Would you consider posting what you have done so that others might find some time to work on it?
I would love to see an update as well. Regarding my retro computing hobby, the thing I want above all else is a way to run m68k NeXT apps. Whether that happens on OS X, in NeXTSTEP/OPENSTEP x86, or in a full NeXT emulator, I don't really care, but I really want to be able to do it.
See, I was running out of hard disk space some years ago, on my NeXT, so I pulled out all the x86 code, so most of my apps don't run on my VMware emulated NeXTSTEP 3.3 and OPENSTEP 4.2. :( That, and Improv was never released for Intel...
If a NeXT emulator happens, it would be most likely to happen in MESS. Hell, there might already be a skeleton (i.e. hilariously unfinished) driver for it.
http://wiki.qemu.org/Google_Summer_of_Code_2010#NeXT_machines_system_emulationI remember stumbling across this somewhere/somehow - dunno if it was linked from here or not.
A NeXT emulator is/was among the QEMU GSOC ideas:
QuoteNeXT machines system emulation
NeXT machines are designed in a similar idea to 68k Macintosh ones. Documentation is almost not available. Original firmware MUST be used. MESS emulator project started a NeXT emulation but it is still work-in-progress so not much ideas can be taken from it.
* Skill level: high
* Languages: C, 68k assembler
* Mentor: Natalia Portillo
* Suggested by: Natalia Portillo
Mentor:
http://wiki.qemu.org/User:NataliaPortillo
Hmm, that reminds me, another thing I'd love to have is an emulator capable of running the PPC version of Rhapsody (AKA Mac OS X 1.x).
Quote from: "papa_november"If a NeXT emulator happens, it would be most likely to happen in MESS. Hell, there might already be a skeleton (i.e. hilariously unfinished) driver for it.
/***************************************************************************
NeXT
05/11/2009 Skeleton driver.
****************************************************************************/
#include "driver.h"
#include "cpu/m68000/m68000.h"
static ADDRESS_MAP_START(next_mem, ADDRESS_SPACE_PROGRAM, 32)
AM_RANGE(0x00000000, 0x0001ffff) AM_ROM AM_REGION("user1", 0)
AM_RANGE(0x02000000, 0x0200ffff) AM_RAM
AM_RANGE(0x0b000000, 0x0b03ffff) AM_RAM
ADDRESS_MAP_END
/* Input ports */
static INPUT_PORTS_START( next )
INPUT_PORTS_END
--- 8< --- 8< --- 8< --- SNIPPED FOR BREVITY --- 8< --- 8< --- 8< ---
/* ROM definition */
ROM_START( next )
ROM_REGION32_BE( 0x20000, "user1", ROMREGION_ERASEFF )
ROM_SYSTEM_BIOS( 0, "v12", "v1.2" )
ROMX_LOAD( "rev_1.2.bin", 0x0000, 0x10000, CRC(7070bd78) SHA1(e34418423da61545157e36b084e2068ad41c9e24), ROM_BIOS(1))
ROM_SYSTEM_BIOS( 1, "v10", "v1.0 v41" )
ROMX_LOAD( "rev_1.0_v41.bin", 0x0000, 0x10000, CRC(54df32b9) SHA1(06e3ecf09ab67a571186efd870e6b44028612371), ROM_BIOS(2))
ROM_END
ROM_START( nextnt )
ROM_REGION32_BE( 0x20000, "user1", ROMREGION_ERASEFF )
ROM_SYSTEM_BIOS( 0, "v25", "v2.5 v66" )
ROMX_LOAD( "rev_2.5_v66.bin", 0x0000, 0x20000, CRC(f47e0bfe) SHA1(b3534796abae238a0111299fc406a9349f7fee24), ROM_BIOS(1))
ROM_SYSTEM_BIOS( 1, "v24", "v2.4 v65" )
ROMX_LOAD( "rev_2.4_v65.bin", 0x0000, 0x20000, CRC(74e9e541) SHA1(67d195351288e90818336c3a84d55e6a070960d2), ROM_BIOS(2))
ROM_SYSTEM_BIOS( 2, "v21", "v2.1 v59" )
ROMX_LOAD( "rev_2.1_v59.bin", 0x0000, 0x20000, CRC(f20ef956) SHA1(09586c6de1ca73995f8c9b99870ee3cc9990933a), ROM_BIOS(3))
ROM_END
ROM_START( nexttrb )
ROM_REGION32_BE( 0x20000, "user1", ROMREGION_ERASEFF )
ROM_SYSTEM_BIOS( 0, "v33", "v3.3 v74" )
ROMX_LOAD( "rev_3.3_v74.bin", 0x0000, 0x20000, CRC(fbc3a2cd) SHA1(a9bef655f26f97562de366e4a33bb462e764c929), ROM_BIOS(1))
ROM_SYSTEM_BIOS( 1, "v32", "v3.2 v72" )
ROMX_LOAD( "rev_3.2_v72.bin", 0x0000, 0x20000, CRC(e750184f) SHA1(ccebf03ed090a79c36f761265ead6cd66fb04329), ROM_BIOS(2))
ROM_SYSTEM_BIOS( 2, "v30", "v3.0 v70" )
ROMX_LOAD( "rev_3.0_v70.bin", 0x0000, 0x20000, CRC(37250453) SHA1(a7e42bd6a25c61903c8ca113d0b9a624325ee6cf), ROM_BIOS(3))
ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( 1987, next, 0, 0, next, next, 0, "Next Software, Inc", "NeXT", GAME_NOT_WORKING)
COMP( 1990, nextnt, next, 0, next040, next, 0, "Next Software, Inc", "NeXT (Non Turbo)", GAME_NOT_WORKING)
COMP( 1992, nexttrb,next, 0, next040, next, 0, "Next Software, Inc", "NeXT (Turbo)", GAME_NOT_WORKING)
How right you are!
For better or worse, I'm trying a build..