个人 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.