NullPlayer runs Windows Media Player skins on a Mac, scripts included
The open-source player documents a bounded JScript runtime while leaving legacy skin files for the user to supply.

Windows Media Player’s old skins have found a new host on a Mac. NullPlayer loads their views and scripting while routing the controls into its own playback engine. The curvy little transport controls can be more than an image of a player. The skip button gets to skip town.
The project’s README says it supports .wmz skins from Windows Media Player versions 7 through 12, including JScript, equalizer and visualizer controls. That is the developer’s compatibility account, not a claim that every archived skin has been independently tested here. With this much old interface material, “supports the format” still leaves plenty of room for an individual file to be unusual.
The scripts run inside a deliberately limited environment. NullPlayer describes an isolated JavaScriptCore context without access to ActiveX, registry operations, shells, DLLs, plug-ins or HTML. The old interface can tell the player what to do through a controlled runtime. It does not get a general-purpose invitation to behave like a Windows program inside the Mac.
The README calls the implementation a “clean-room effort” and says no source from Winamp, WACUP or Windows Media Player was copied or viewed. That describes the project’s development approach as reported by its author. It also helps explain why this is a separate engine with its own compatibility work, rather than the original Windows application wearing a fake mustache.
The skin files mostly remain the user’s responsibility. NullPlayer says it does not distribute the Windows Media Player skins, and it provides import and selection controls for user-supplied files. That distinction is useful before the download: the software that can render a skin and a bundle containing your favorite old skin are different things. Nostalgia has brought its own luggage policy.
The engine also supports Winamp formats, Audion faces and Sonique skins, according to the README. Local files and several media-server backends supply the music. A familiar interface can therefore sit above a contemporary library instead of requiring an entire obsolete desktop environment. The interesting preservation move is separating how the controls look and behave from where playback actually happens.
That separation could be useful beyond the novelty. A person who likes an older layout may want it without giving up their current media collection. It also creates a very practical evaluation: load one specific skin, then test the buttons, alternate views, playback changes and visualizer behavior you care about. A screenshot can certify the colors; it cannot certify the pause button.
The project requires macOS 14 or later. Anyone on an older Mac needs to check that requirement before celebrating a rescue of old software, a mildly cruel irony for a retro player. Modern compatibility still has a minimum system version.
A successful trial would demonstrate that a particular skin’s interactive behavior survives in this runtime. Whether another skin relies on a feature the engine intentionally excludes remains a separate question. The shiny interface has escaped Windows; its scripts still have to live within the new house rules.
The skin has changed platforms.