個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Rust rewrite/port of Widget Workshop
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A decompilation and native port of Widget Workshop: A Mad Scientist's Laboratory (Maxis, 1995) to Rust, for Linux, Windows, macOS and WebAssembly.
Play it in your browser: https://doridian.github.io/WidgetWorkshop/ (the page asks for the CD image, docs/web.md), or download it for Linux, Windows or macOS from the releases (Packages).
The port opens straight into the editor (the original's intro and main
menu are left out): the parts tray, wiring, the worksheets, undo and the
parts' own settings dialogs; the logic, number, science, sound and time,
input and display parts; puzzle mode; widgets loaded and saved in the
original's .WGT format; recording and WAV import; and the help viewer
for WIDGET.HLP. It's a non-matching decompilation of the Win95 build's
WIDGET.EXE: the code behaves like the original, but doesn't compile to
the same bytes. The stack is winit, wgpu and cpal, with a resizable
window, fullscreen and UI scaling.
This repository contains no game data files or original code. You need your own copy of the game's CD.
The port reads the Mac/PC CD (volume WIDGETS), as an .iso or as
a folder with its files. The Internet
Archive has the .iso:
widget-workshop.
It also reads the much smaller OS/2 Warp CD (WW1_01A.ISO, game folder
WIDGET/): its modules are OS/2 executables whose dialogs, menu, strings
and pointers the port turns into the Win95 build's
(docs/os2.md).
The OS/2 CD has no Windows fonts, so the port bundles free stand-ins
(crates/engine/fonts): Wine's MS Sans Serif and Small Fonts, and Widget
Sans, rendered from Liberation Sans, for the gadgets' Arial. When the
Mac/PC CD's own fonts (WIN31/SVGA) are there, they win.
Every push builds the port as one file per platform
(.github/workflows/build.yml); a v* tag publishes them on its release:
widget-workshop-linux-x86_64.AppImage, widget-workshop-linux-arm64.AppImagewidget-workshop-windows-x86_64.exe (the C runtime linked in)widget-workshop-macos.dmg: Widget Workshop.app, for Apple silicon and
Intel (signed ad hoc only: the first start needs a right click, Open)widget-workshop-web.zip: the browser build, as on the Pages siteNone of them carries game data. Started without a CD (from its icon) and
with no .iso or orig in the working directory, the port asks for the
CD image with the system's file dialog and keeps its path in its data
directory (cd-path.txt in ~/.local/share/widget-workshop,
%APPDATA%\Widget Workshop, ~/Library/Application Support/Widget Workshop);
it doesn't ask again while the file is there. On Linux the dialog is the
desktop's (xdg-desktop-portal, else zenity). The icon is the port's own
(tools/make-icon.py).
cargo run --release -p widget # the .iso here, else orig/
cargo run --release -p widget -- CD.iso MY.WGT # a CD and a widget to open
cargo run --release -p widget -- CD.iso 'https://…/widget.html#w=…' # a widget link
cargo run --release -p widget -- --help
Options: --no-audio, --window-size=WxH, --fullscreen, --windowed,
--ui-scale=N|auto (remembered in the settings file), --overrides=DIR
(resources that replace or add to the CD's) and --export=DIR (writes
every resource there in that layout and quits). On Linux the sound needs
ALSA's headers to build (libasound2-dev).
Options ▸ Settings, the port's own, changes the UI scale on the spot
(Automatic, or 1× to 4× in quarters) and switches the port's
enhancements of the original on or off, all of them at once
(original=true in the settings file turns them off). The
enhancements: the parts tray shows a whole folder at once, its pages one
under the other, without the page arrows; and the toolbars, dialogs and
message boxes are dragged whole, not as an outline.
Its Change CD... button, after "Save changes?", picks another CD
image and starts the game again on it (in the browser, the page's start
form comes back).
Widgets travel as links too (docs/web.md): File ▸ Copy Link to Widget puts one on the clipboard, which opens the widget in the browser build for anyone with the CD, and File ▸ Open Widget Link (Ctrl+V) opens the one on the clipboard, natively too.
The browser build: tools/build-web.sh, docs/web.md.
tools/gh, tools/ghidra/: headless Ghidra setup and CLI for the decompilation.tools/build-web.sh: builds the browser version into web/.tools/make-icon.py: draws the port's icon.WIDGET.HLP and the Help menuThe port's code is under the AGPL-3.0-or-later (LICENSE). Widget Workshop is © Maxis; this is an unofficial port, and no game data is included.