A Swift library for reading Microsoft Agent Character (.acs) files + CLI and GUI tool utilizing the lib.
MSAgentReader/
├── Sources/
│ ├── MSAgentReader/ # Core library
│ │ ├── DataTypes.swift # Binary reading utilities & Win32 structures
│ │ ├── Decompression.swift # MSAgent compression algorithm
│ │ ├── ACSStructures.swift # Character info & metadata structures
│ │ ├── ACSAnimationStructures.swift # Animation, frame, image structures
│ │ └── ACSCharacter.swift # Main ACSFile class
│ ├── MSAgentViewerCLI/ # Command-line viewer tool
│ └── MSAgentViewer/ # GUI viewer tool
├── Package.swift # Swift package manifest
└── MSAgentDataSpecification_v1_6.htm # Format specification
- Click for the Reader README
- See the MSAgentViewerGUI README
Trivia:
Looking at Microsoft docs for Run-time requirements of the MAgent, it lists:
- A Pentium 100 MHz PC (or faster)
- At least 16 megabytes (MB) RAM
- At least 1 MB free disk space for the core components
- An additional 2 to 4 MB for each character you install
...and now I'm running Clippy on 4500 MHZ, 48000 megabytes (MB) RAM and 1000000 MB disk. 100Mhz Pentium P54C had ~3.3 million transistors at 600nm process node, M4 pro has >50B (±20-30B) at 3 "nm". Whoa!
why build this
14th year Anniversary of last time I programmed in BASIC, coinciding with me rembering microsoft agent (Merlin anyone?) and realizing I never thought to check its API (they were programable), contemplating I've done desktop apps for Win$ and Linux but never macOS, and finally, Swift preview has been released for FreeBSD a day ago, motivating me to finally try it, so here it is! Weekend well spent.
hows Swift?
Hard to say after 2.5 days, but it does seem much nicer than Java, Dart or C#. I can see quite a lot of things inspired by rust as well (Ownership/Borrowing (SE-0377), Noncopyable structs and enums (SE-0390), Sendable...). SwiftUI is actually fun to use (at least on such small scale) compared to QT jank, or god forbid -- react native (but I haven't tried react native on mac tbf). I used to envy M$ users for C# desktop app support, but now that switched to Apple iOS/macOS development. Why do we not have this on linux yet??
License?
CC0 on my our stuff, Microsoft & Remy Lebeau/Lebeau software otherwise?
Ok, bye now.
