Skip to content

Latest commit

 

History

History
76 lines (58 loc) · 2.63 KB

File metadata and controls

76 lines (58 loc) · 2.63 KB

Setting up Flashback on another Mac

The project itself is small — about 12 MB of source. Everything else in the working folder is either regenerated by a script or is game files that are deliberately kept out of version control, so moving machines means moving the repository and then re-fetching the rest.

What is actually in the working folder

Part Size How it moves
Source, scripts, docs, compatibility records ~12 MB git
vendor/ — Ruffle, DirPlayer, the JDK, dependency sources ~2.4 GB Flashback/fetch-* scripts re-download it from recorded URLs and hashes
vendor/toolchain/ — Node, Rust, wasm-pack ~1 GB Flashback/bootstrap-toolchain.sh
Flashback.app, release ZIP, source tarball ~2 GB rebuilt by build.sh and package-release.py

On the new Mac

1. Xcode. Install a current Xcode release and point the command-line tools at it. The standalone Command Line Tools package does not include the SwiftUI macro plugin required by the app. Either select Xcode globally or export it for the build shell:

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

Install Python 3.12 or newer and confirm python3 --version selects it. The source fetchers use tomllib and tar extraction filters; an older Python bundled with developer tools may not provide these APIs.

2. Clone the repository.

git clone https://github.com/macprotips/flashback.git
cd flashback

3. Fetch the runtimes and the toolchain. These download a few GB.

sh Flashback/bootstrap-toolchain.sh
. Flashback/toolchain-env.sh
sh Flashback/fetch-runtime.sh
sh Flashback/fetch-java.sh
python3 Flashback/fetch-archive-dependencies.py
sh Flashback/fetch-dos.sh
sh Flashback/fetch-scummvm.sh
python3 Flashback/fetch-native-sources.py
python3 Flashback/fetch-sources.py
python3 Flashback/fetch-js-sources.py
sh Flashback/fetch-shockwave.sh

4. Build.

sh Flashback/build.sh

That produces Flashback.app in the repository root, runs the unit suite, and runs the website and archive checks on the way through.

Running the checks

python3 Flashback/check-shockwave-corpus.py /tmp/flashback-corpus     # recorded gameplay cases
./Flashback/check-shockwave.sh /tmp/flashback-core                    # the four core games plus host behaviour
python3 Flashback/check-dirplayer-patch.py                            # the runtime's corresponding source

A note on disk

A full working folder — repository, vendor, toolchain, and a built release — needs roughly 23 GB, and the Shockwave checks write screenshots as they go. Keep some headroom before a long run.