Code Monkey home page Code Monkey logo

infinite-mac's Introduction

Infinite Mac

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

Development

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).
  • import-basilisk-ii: Copy generated WebAssembly from the https://github.com/mihaip/macemu submodule.
  • import-basilisk-ii-data: Variant of the above for the data files. Also imports other disk images and extracted files from Library/ into the main disk image and chunks it 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-preview: Preview built assets in a Cloudflare Worker (requires a separate build invocation)
  • 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
pip3 install -r requirements.txt
npm run build-xadmaster

Building Basilisk II

Ensure that you have a Docker image built with the Emscripten toolchain and supporting library:

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 this cheat sheet to build (based on the original instructions):

cd /macemu/BasiliskII/src/Unix
# Bootstrap Basilisk II, to generate the CPU emulator code
macemujs_conf_cpu=1 macemujs_conf_native=1 ./_embuild.sh && make clean && make -j4
# Switch into building for WASM
macemujs_conf_cpu=1 macemujs_conf_wasm=1 ./_embuild.sh && make mostlyclean
# 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/BasiliskII.

infinite-mac's People

Contributors

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.