Giter Site home page Giter Site logo

felixrieseberg / macintosh.js Goto Github PK

View Code? Open in Web Editor NEW
8.3K 8.3K 332.0 2.21 MB

🖥 A virtual Apple Macintosh with System 8, running in Electron. I'm sorry.

JavaScript 99.73% CSS 0.12% HTML 0.13% Shell 0.02% PowerShell 0.01%
electron emulator javascript macintosh

macintosh.js's People

Contributors

albuvee avatar arecsu avatar dependabot[bot] avatar egasimus avatar erichelgeson avatar felixrieseberg avatar feuermurmel avatar hmsjy2017 avatar jonathanpotts avatar kipdec avatar meeh0w avatar metaphox avatar prcr avatar staltz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

macintosh.js's Issues

Mac app (Helper)process @ ~115% CPU utilization

When loading up macintosh.js, i noticed macintosh.js (Helper) process is at 115%

Running:
MacBook Pro (16-inch, 2019)
Catalina (10.15.6)
2.3 GHz 8-Core Intel Core i9
16 GB 2667 MHz DDR4

CleanShot 2020-07-29 at 13 19 14
%

Mouse Random Jitter

I test drawing a spiral on Photoshop app, but weird jitter happens, making my spiral drawing out of whack...

Screen Shot 2020-07-31 at 11 12 15 am

Also, isn't there a Mac default Paint app?

I am testing this on MacOS Big Sur Beta 3

macintosh.js stuck on "Loading emulator dependencies" on macOS 10.14.6

macOS 10.14.6 on MacBookPro10,1/16 GB RAM/512 GB SSD. macintosh.js downloaded, unzipped, moved to /Applications. When I double-click the app the "Loading emulator dependencies..." dialog comes up and nothing else. I can quit from the menu and can access Help and Credits but the app never loads or runs. I see what loos like a similar issue was fixed on Linux but I couldn't find any mention of this bug on macOS.

Uncaught loading data file "disk" failed

Running Arch and installed via git & npm. Seeing this error in Dev Tools and getting stuck on "Loading emulator dependencies". Have attempted changing permissions on the Macintosh.js directory as noted in other comments, but has not made a difference.

Screen Shot 2020-07-29 at 11 14 11 AM

Linux deb fails

Running macintosh.js on Ubuntu 20.04 it crashes while starting with the following output:

(node:201806) UnhandledPromiseRejectionWarning: Error: Cannot find module 'github-url-to-object'
Require stack:

  • /usr/lib/macintosh.js/resources/app/node_modules/update-electron-app/index.js
  • /usr/lib/macintosh.js/resources/app/src/main/update.js
  • /usr/lib/macintosh.js/resources/app/src/main/index.js
  • at Module._resolveFilename (internal/modules/cjs/loader.js:961:15)
    at Function.o._resolveFilename (electron/js2c/browser_init.js:257:919)
    at Module._load (internal/modules/cjs/loader.js:844:27)
    at Function.Module._load (electron/js2c/asar.js:769:28)
    at Module.require (internal/modules/cjs/loader.js:1023:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object. (/usr/lib/macintosh.js/resources/app/node_modules/update-electron-app/index.js:5:12)
    at Module._compile (internal/modules/cjs/loader.js:1145:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1166:10)
    at Module.load (internal/modules/cjs/loader.js:981:32)
    (node:201806) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
    (node:201806) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Unable to change display to B/W

Some old software ask me to set the screen to Two colors, but when doing it n the monitors and sound panel, it crash the emulator.

Garbage around the screen and 2 mouse pointers showing on the screen

First of all, thanks for this awesome project, that makes so easy to play around with an old OS without having to set up emulators and applications!
But unfortunately I have some bugs, one that doesn't affect the interaction with the OS, so it is fine, but I've got some corruption around the window and reinstalling didn't fix it. [screenshot below] Captura de tela de 2020-07-30 18-34-55
The other bug affects the interaction a little, it is showing 2 mouse pointers, the regular one and other that shows up blinking while I move the pointer, it shows up and disappears while I move the pointer and when it shows it steals the focus from the other pointer (but the other pointer doesn't blink), so, for example, if I click just after moving the mouse, sometimes the other pointer that clicks, and when dragging the mouse to select multiple files, it changes the selection square between the 2 pointers.
I can record the screen if you want to show the problem.

My system: Linux (Fedora 32 Gnome - X11) running on an Intel Core i5-9400f with a Vega 56 GPU (using the regular open source drivers from Fedora repos).

A/UX 3.1.1 (Apple UNIX)

Hi

It is a great project!

Do you plan to make something similar with A/UX?

I know that A/UX uses System 7.0.1, which is the older OS than Mac OS 8.

However, It could be the far more interesting alternative for the Linux/Unix/Mac users that want to run classic Mac applications
on Unix.

not loading

I deleted version 1.04 and download 1.05 but it only loads with a flashing folder. Can you pleas upload 1.0.4 macOs standalone in the release section since I do not know how to build one. Thank you

Installing apps (Hypercard)

Kudos on this really fun project!

Screen Shot 2020-07-28 at 14 19 51

Exhibit: could not find HyperCard 😢

Having HyperCard (or at least HyperCard Player and a bunch of stacks) would uncork a world of possibilities... Does it seem like it would be worth the lift?

Write up description of how this was done

I've perused the code and noticed emscripten references. Was this accomplished by compiling C++ into JS?

Could this be done with Web Assembly to improve performance?

Can I run Mac.js on my Mac?

Hi!

2008 black MacBook Pro, 4 gig RAM, Core2 Duo
Debian Buster Stable 10.4

Loving the concept of running MacOS on my Mac,but while itinstalls well, and boots about as fast as I remember it from the Olden Days, alas it crashes as soon as I click on any of the folders or menus. No error messages appear, sadly.

What a pity because I do want to run Hypercard novels on it.

Is there a fix? Tips or trix?

Thanks for a great project.

No networking support

Netscape Navigator is pre-installed, but cannot resolve DNS or access web pages. What might be involved in adding networking support to this?

Not downloading in Linux

The application is not downloading on ubuntu due to permissions error. Please change the permissions and give us the right to download.

Netscpae does not work

2020-07-30 17_37_01-macintosh js
The application program "Netscape Navigator 3.01" could not be opened, because it might be damaged or not work on this type of computer.

Apps do not show up in the Macintosh.js folder

I was trying to move an application folder over from an old drive. The folder itself was not seen so I then moved the contents of the folder over. The files were seen but the apps were not. How can I install apps to the emulator?

Thank you for the effort, so much fun to see the old desktop 👍

prefs file not created on Linux(RPM)

I installed via https://github.com/felixrieseberg/macintosh.js/releases/download/v1.0.2/macintosh.js-1.0.2-1.x86_64.rpm
At bootup it gets stuck at 66.6% and exceptions is logged:

BasiliskII-worker-boot.js:209 getPrefs: Failed to set prefs Error: EACCES: permission denied, open '/usr/lib/macintosh.js/resources/app/src/basilisk/prefs'
    at Object.openSync (fs.js:462:3)
    at Object.func [as openSync] (electron/js2c/asar.js:140:31)
    at Object.writeFileSync (fs.js:1283:35)
    at getPrefs (file:///usr/lib/macintosh.js/resources/app/src/basilisk/BasiliskII-worker-boot.js:207:8)
    at startEmulator (file:///usr/lib/macintosh.js/resources/app/src/basilisk/BasiliskII-worker-boot.js:493:29)
    at self.onmessage (file:///usr/lib/macintosh.js/resources/app/src/basilisk/BasiliskII-worker-boot.js:357:5)
...
/usr/lib/macintosh.js/resources/app/src/basilisk/BasiliskII.js:5649 Uncaught Loading data file "prefs" failed.

/usr/lib/macintosh.js/resources/app/src/basilisk/prefs did not exist but /usr/lib/macintosh.js/resources/app/src/basilisk/prefs_template did. Copying the template to prefs resolved issue.

Not sure if this is bug or documentation oversight?

Disable accelerators / command key shortcuts or pass them to the emulated system

Running the standalone app on a Mac, I keep hitting command-W and similar shortcuts that, instead of being directed to the emulated target system, are received by the Mac app, causing it to close the window (and thereby killing it).

So, could you please see that all the shortcuts are removed from the app's menus? Would make using the emulation much less frustrating.

Besides that: Impressive work!

Controls in Duke3d on OSX

Hi,

first this I have to say this is an awesome project. I love it! :)

second the controls in duke3d seem buggy. the main character keeps moving left although no button is pressed.

cheers and keep up the good work :)

Neat Project. Maybe up the resolution a bit?

This is a neat project and works perfectly for what it´s made for, but is there a possible way to maybe change the resolution from 800x600 to 1024x800 or higher?

Changing installdir\resources\app\src\main\window.js and installdir\resources\app\src\renderer\screen.js width and height values will corrupt the emulator screen.

Thank you

massive thank you.

i’ve been tryna load LoadRunner the game for years!!!

this finally achieves that goal.

this is a thank you so much issue.

y’all done did great work!

Launching macintosh.js doesn't finish and hogs resources in a very old 64-bit W7 HPE SP1 machine.

SquirrelSetup.log shows:
2020-07-29 22:51:34> Program: Starting Squirrel Updater: --install .
2020-07-29 22:51:43> Program: Starting install, writing to C:\Users\tester\AppData\Local\SquirrelTemp
2020-07-29 22:51:50> Program: About to install to: C:\Users\tester\AppData\Local\macintosh
2020-07-29 22:51:58> CheckForUpdateImpl: Couldn't write out staging user ID, this user probably shouldn't get beta anything: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\tester\AppData\Local\macintosh\packages.betaId'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
at System.IO.File.InternalWriteAllText(String path, String contents, Encoding encoding, Boolean checkHost)
at System.IO.File.WriteAllText(String path, String contents, Encoding encoding)
at Squirrel.UpdateManager.CheckForUpdateImpl.getOrCreateStagedUserId()
2020-07-29 22:51:58> CheckForUpdateImpl: Failed to load local releases, starting from scratch: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\tester\AppData\Local\macintosh\packages\RELEASES'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at Squirrel.Utility.LoadLocalReleases(String localReleaseFile)
at Squirrel.UpdateManager.CheckForUpdateImpl.d__2.MoveNext()
2020-07-29 22:51:58> CheckForUpdateImpl: Reading RELEASES file from C:\Users\tester\AppData\Local\SquirrelTemp
2020-07-29 22:52:00> CheckForUpdateImpl: First run or local directory is corrupt, starting from scratch
2020-07-29 22:52:11> ApplyReleasesImpl: Writing files to app directory: C:\Users\tester\AppData\Local\macintosh\app-1.0.3
2020-07-29 22:52:54> LogHost: Rigging execution stub for macintosh.js_ExecutionStub.exe to C:\Users\tester\AppData\Local\macintosh\macintosh.js.exe
2020-07-29 22:54:45> ApplyReleasesImpl: Squirrel Enabled Apps: [C:\Users\tester\AppData\Local\macintosh\app-1.0.3\macintosh.js.exe]
2020-07-29 22:55:06> ApplyReleasesImpl: Couldn't run Squirrel hook, continuing: C:\Users\tester\AppData\Local\macintosh\app-1.0.3\macintosh.js.exe: System.OperationCanceledException: The operation was canceled.
at System.Threading.CancellationToken.ThrowOperationCanceledException()
at Squirrel.Utility.<>c__DisplayClass11_0.b__0()
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Squirrel.Utility.d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass10_0.<b__0>d.MoveNext()
2020-07-29 22:55:06> ApplyReleasesImpl: Starting fixPinnedExecutables
2020-07-29 22:55:07> ApplyReleasesImpl: Examining Pin: Internet Explorer.lnk
2020-07-29 22:55:10> ApplyReleasesImpl: Examining Pin: Windows Explorer.lnk
2020-07-29 22:55:11> ApplyReleasesImpl: Examining Pin: Windows Media Player.lnk
2020-07-29 22:55:11> ApplyReleasesImpl: Fixing up tray icons
2020-07-29 22:55:11> ApplyReleasesImpl: cleanDeadVersions: for version 1.0.3
2020-07-29 22:55:11> ApplyReleasesImpl: cleanDeadVersions: exclude folder app-1.0.3
2020-07-29 22:55:37> InstallHelperImpl: Couldn't write uninstall icon, don't care: System.Net.WebException: The remote name could not be resolved: 'raw.githubusercontent.com'
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at Squirrel.UpdateManager.InstallHelperImpl.d__5.MoveNext()

I get a windowed black screen from the program too. Your two EXEs' hog the very old updated 64-bit W7 HPE SP1 PC's single core CPU to the max, and RAM (2 GB) keeps going up to almost 100% used. I downloaded and installed macintoshjs-1.0.3-setup-x64.exe. :(

Thank you for reading and hopefully answering soon. :)

why?

dear God save us all

How to transfer files?

I looked at the description of this and it told me to use the Help button at the bottom, I couldn't find one, can someone give me a more detailed guide on how to do this?

Disk fails to load with /home and / on different partitions

When I try to load macintosh.js, it fails every time with the error

Uncaught (in promise) Error: EXDEV: cross-device link not permitted, rename '/home/michael/.config/macintosh.js/disk' -> '/usr/lib/macintosh.js/resources/app/src/basilisk/disk'

As far as I can tell, here's what's happening:
macintosh.js moves/renames/links (or something) the disk file from my ~/.config folder to its spot in /usr. On my system, ~ and / are in different partitions. This means that it needs to move the file between partitions. Apparently that's not allowed, hence the EXDEV error.

This may be a bit of an edge case, but AFAIK it's somewhat common practice on Linux. I understand if it's not possible/worthwhile to fix this, but it would be nice to be able to run on my system.

System Crashed

It is an amazing piece of work keep up the good work I was using it the mouse, first of all, flickered then when I launched civilization 2 it crashed

Printer support

Hello.

It may well be that this is a bit too far fetched, but I do believe it would be really cool to have a printer installed inside the VM. If used, the VM would create a PDF file on the host computer.

Cheears!

No Oregon Trail

P1 bug. Everything worked fine, but Oregon Trail was nowhere to be found.

Jk. Love you for doing this.

License missing

Awesome project, I would love to play with it, do you think you could add a license? GPL would be nice :)

Edit: a license to reuse your code, not the VM!

Can it run Xcode?

I have not installed and tried it but was wondering if anyone here have it installed and is able to use Xcode?

Isn't this piracy?

I am not a lawyer, but I understand that you are distributing copies of licensed software.

A very cool project though!

Arch linux

Can macintosh.js publish to arch linux ?

How to install .dsk image?

Thanks for creating this!

Back in the day, I was one of the authors of Spectre (https://macintoshgarden.org/games/spectre). It's been a long time since I've had any way of accessing the game. It's hosted at the link above, but the download contains a .dsk file. I followed the instructions to load the .dsk file into the emulator, but when I double-click on the file from within the emulator I get "The document ... could not be opened, because the application program that created it could not be found". I've looked for instructions but haven't figured out how to load a .dsk image into macintosh.js. Is it necessary to convert the file to ISO or IMG?

can't add mp3 files into unix folder

I'm having problems adding .mp3 files into the macintosh folder. It seems to me like the loader think it's some iso container and try to mount it. Renaming the extension to anything else will fix the issue for me.

A JavaScript error occurred in the main process

Uncaught Exception:
Error: Cannot create BrowserWindow before app is ready
at createWindow (/private/var/folders/30/n5zbf61j6qq4sgjg3vl5tpk00000gn/T/AppTranslocation/62F495A6-76E3-405F-8AD9-9B37685A7687/d/macintosh.js.app/Contents/Resources/app/src/main/windows.js:60:16)
at App.onActivate (/private/var/folders/30/n5zbf61j6qq4sgjg3vl5tpk00000gn/T/AppTranslocation/62F495A6-76E3-405F-8AD9-9B37685A7687/d/macintosh.js.app/Contents/Resources/app/src/main/index.js:35:5)
at App.emit (events.js:310:20)

Unable to install in Linux (Centos)

Getting following error while installing in Linux (CentOS)

$ sudo yum localinstall ./macintosh.js-1.0.4-1.x86_64.rpm
Loaded plugins: fastestmirror, langpacks
Examining ./macintosh.js-1.0.4-1.x86_64.rpm: macintosh.js-1.0.4-1.x86_64
Marking ./macintosh.js-1.0.4-1.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package macintosh.js.x86_64 0:1.0.4-1 will be installed
Error: Invalid version flag: or

Also, getting the same issue with 1.0.5 version too.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.