Coder Social home page Coder Social logo

remino / infinite-mac Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mihaip/infinite-mac

0.0 1.0 0.0 539.91 MB

A Mac with everything you'd want in 1995, all in your web browser.

Home Page: https://system7.app

License: Apache License 2.0

Shell 0.79% JavaScript 0.47% Python 14.74% TypeScript 78.02% CSS 5.51% HTML 0.37% Dockerfile 0.10%

infinite-mac's Introduction

Infinite Mac

A Mac with everything you'd want in 1995. Available in System 7, Mac OS 8 and KanjiTalk (Japanese) flavors. For a high-level overview and the backstory, see this blog post.

Development

This project uses Git LFS, ensure that the LFS tooling is installed before cloning the repo.

This project uses submodules, use git clone --recursive https://github.com/mihaip/infinite-mac.git to clone it (or run git submodule update --init --recursive if you have an existing checkout).

Common development tasks, all done via npm run:

  • start: Run local dev server (will be running at http://localhost:3127). Depends on having disk images built (import-disks needs to be run at least once).
  • import-basilisk-ii and import-sheepshaver: Copy generated WebAssembly from the https://github.com/mihaip/macemu submodule (only necessary if modifying the emulator cores, see below for how to rebuild it).
  • import-sheepshaver: Copy generated WebAssembly from the https://github.com/mihaip/macemu submodule (only necessary if modifying the emulators, see below for how to rebuild them).
  • import-disks: Build disk images for serving. Copies base OS images from the above, and imports other software (found in Library/) into an "Infinite HD" disk image. Chunks disk images and generates a manifest for serving.

Common deployment tasks (also done via npm run)

  • build: Rebuild for either local use (in the build/ directory) or for Cloudflare Worker use
  • worker-dev: Preview built assets in a local Cloudflare Worker (requires a separate build invocation, result will be running at http://localhost:3128)
  • worker-deploy: Deploy built assets to the live version of the Cloudflare Worker (requires a separate build invocation)

Dependencies

Dependencies can be installed with:

npm install -g wrangler
npm install
pip3 install -r requirements.txt
npm run build-xadmaster

Building the emulators

Basilisk II and SheepShaver the original 68K and PowerPC emulators that enable this project.They are hosted in a separate repo and are included via a Git submodule. Rebuilding them is only required when making changes to the emulator core, the generated files are in src/emulator and included in the Git repository.

To begin, ensure that you have a Docker image built with the Emscripten toolchain and supporting libraries:

docker build -t macemu_emsdk .

Open a shell into the Docker container:

docker run --rm -it -v `realpath macemu`:/macemu --entrypoint bash macemu_emsdk

Once in that container, you can use a couple of helper scripts to build them:

Basilisk II

cd /macemu/BasiliskII/src/Unix
# Bootstrap Basilisk II, to generate the CPU emulator code
./_embootstrap.sh
# Switch into building for WASM
./_emconfigure.sh
# Actually compile Basilisk II targetting WASM
make -j6

Once you have it build, use npm run import-basilisk-ii from the host to update the files in src/emulator.

SheepShaver

cd /macemu/SheepShaver/src/Unix
# Conigure for building for WASM
./_emconfigure.sh
# Actually compile SheepShaver targetting WASM
make -j6

Once you have it build, use npm run import-sheepshaver from the host to update the files in src/emulator.

infinite-mac's People

Contributors

alansill avatar mihaip avatar

Watchers

 avatar

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.