Coder Social home page Coder Social logo

ducky007 / applewin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sh95014/applewin

0.0 0.0 0.0 18.24 MB

Port of AppleWin Emulator with Native macOS UI

License: GNU General Public License v2.0

Shell 0.01% JavaScript 0.15% C++ 43.06% C 45.33% Objective-C 0.82% CSS 0.44% Objective-C++ 3.47% Hack 0.39% HTML 6.02% QMake 0.02% CMake 0.22% Batchfile 0.03% Metal 0.05%

applewin's Introduction

Mariani

Introduction

Mariani is a native macOS UI for AppleWin, by way of Andrea's Raspberry Pi port.

Mariani Screenshot

But if what you want is a macOS command-line app, you can build that too with the instructions below.

Features

  • Native, universal macOS UI
  • Screen recording
  • Copy screenshot to pasteboard
  • Disk image browser, including syntax-highlighted listings for Applesoft and Integer BASIC, as well as hex viewer for other file types
  • Floppy and hard disk image creation
  • Full-screen support
  • Debugger and memory viewer (including a live viewer for the current BASIC program!) in separate windows
  • AppleScript support
  • Numeric keypad joystick emulation

Known Issues

Mariani should now be broadly useful, so please report any issues you run into. The following AppleWin feature is not yet supported:

Roadmap

Experimental support for printers is available in a branch. It needs considerable upstream support and is unmaintained.

Build Mariani

Dependencies

The easiest way to build Mariani is to satisfy the dependencies using Homebrew. After you install Homebrew, pick up the required packages below:

brew install Boost libslirp

Checkout

Now grab the source code:

git clone https://github.com/sh95014/AppleWin.git --recursive

Load up the Xcode project, and build the "Mariani" target for "My Mac".

"Mariani Universal" is the target used to build a universal (x86 and ARM) app, and will not build out of the box. Homebrew does not support universal libraries, so you'll have to follow these instructions on an Apple Silicon Mac to install the x86 versions of the relevant libraries. Here's a handy script to combine them into universal shared libraries:

#!/bin/sh

lipo -create -arch arm64 /opt/homebrew/lib/$1 -arch x86_64 /usr/local/homebrew/lib/$1 -output $1

You'll need to run that script for everything that the "StaticWrapper Universal" target needs to link against, which are currently libintl.a, libglib-2.0.a, libslirp.a, and libboost_program_options.a. The Xcode project expects them to be placed in ../universal/ relative to itself but you can change that to your liking.

Build sa2

sa2 is the binary produced by Andrea's port. It's not the focus of this repository but it's a more "faithful" AppleWin and very useful to compare behaviors and bugs.

Dependencies

sa2 needs more external libraries than Mariani, which you can grab for macOS using Homebrew. After you install Homebrew, pick up the required packages below:

brew install cmake pkgconfig libyaml minizip libslirp libpcap Boost sdl2 sdl2_image

Checkout

Next, you'll probably want to generate an Xcode project to take advantage of source code indexing and finding the lines of code with warnings or errors. The parameters assume you just want the imgui frontend:

git clone https://github.com/sh95014/AppleWin.git --recursive
cd AppleWin
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_SA2=ON -G Xcode ..
open applewin.xcodeproj

The project should now launch in Xcode. Select the ALL_BUILD target and build. You can look under Products in the left pane to see where it is, because unfortunately Xcode does not seem to be able to run and debug the binary directly.

Or, you can follow basically the same instructions as in Linux, but in this case also simplified to build only the sa2 frontend:

git clone https://github.com/sh95014/AppleWin.git --recursive
cd AppleWin
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_SA2=ON ..
make

Note that some of the settings (most of the ones stored in ~/.applewin/applewin.conf) will affect both Mariani and sa2.

applewin's People

Contributors

audetto avatar beevik avatar fabricecaruso avatar fenarinarsa avatar gemba avatar hasseily avatar ivanizag avatar kevinmarty avatar kiyolee avatar mahallon avatar medasaro avatar michaelangel007 avatar oliverschmidt avatar pedgarcia avatar ralph-irving avatar rmacri avatar rzumer avatar seanshpark avatar sh95014 avatar sicklittlemonkey avatar taeber avatar thorstenbr avatar tomcw avatar warthurton 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.