CompoKit is an all-inclusive environment with (almost) all tools required for hosting PC demoscene competitions.
A CompoKit installation mainly consists of third-party tools:
- File Manager: Total Commander, 7-Zip and CKLaunch, a custom launcher tailored for running compos
- Video Player: MPC-HC
- Audio Player: XMPlay with OpenMPT Plugin and additional plugins for SID and YM, TrackMeister
- Image Viewer: XnView, CompoView, PixelView, GLISS
- 3D Model Viewer: Foxotron
- ANSI Viewer: PixelView, ACiDView, Sahli, AnsiLove
- Emulators:
- Text Editor: Notepad++
- PDF Viewer: SumatraPDF
- Audio/Video Tools: FFmpeg, youtube-dl/yt-dlp, Capturinha
- Music:
- a selection of nice, not too bombastic demoscene music for use as background music during graphics compos ...
- ... and a few proper bangers for grabbing the audience's attention before a compo
- downloaded from scene.org archives and (where necessary) SoundCloud
- see music/download.txt - suggestions or pull requests to extend or improve the list are highly welcome!
- Full-screen typer: typr
- Scripting Language: Python (only installed on demand)
- Manual: a comprehensive document that describes everything a compo organizer has to do
The following applications are not included for bloat or licensing reasons, but may be required for full functionality:
- Google Chrome or Microsoft Edge (for WebGL demos and Sahli)
- must be installed system-wide (in
C:\Program Files\Google\Chrome,C:\Program Files (x86)\Google\Chrome,C:\Program Files\Microsoft\EdgeorC:\Program Files (x86)\Microsoft\Edge)
- must be installed system-wide (in
- Pico-8 (to show
.p8cartridges)- just unpack
pico8.exeand the data files into a directory calledpico-8next to (not inside of!) thebindirectory
- just unpack
- Most programs and their configuration files are contained in a single directory,
bin. - As far as possible, the programs are set up in a "portable" mode that eliminates or minimizes interference with possible pre-existing system-wide installations of the same programs.
- Where applicable, the tools are preconfigured for use in compos. For example, images and videos open in fullscreen mode, and media files don't start playback until a key has been pressed (so that the video source for the bigscreen can be switched in the meantime).
- All tools are automatically downloaded and unpacked using a PowerShell script. No special software needs to be pre-installed.
- This script,
setup.ps1(and its batch wrapper,setup.cmd) works like a small package manager, including "-reconfigure" and "-reinstall" options.
- This script,
- The script
setpath.cmdcan be used to add CompoKit'sbindirectory to thePATHin command-line sessions. - The script
shell.cmdstarts a command-line session with CompoKit'sbindirectory in thePATH. - Contains a script (
play_shuffled.cmd) to generate shuffled playlists of whole directories and play them back, using the Balanced Shuffle algorithm. - Contains a tool to play jingles: jingleplayer
- Contains a tool to control Lightware and Extron DVI/HDMI crossbar switches ("matrices") with macro support, running on e.g. a Raspberry Pi with a numeric keypad: dvi_matrix_control
- Contains tools (for both Windows and Linux/X11) to quickly switch between 1080p50 and 1080p60 video modes on the "beamslide" PC: vidmode
- Contains tools to export data from the PartyMeister party management system into various formats:
- vote results into a text file that's a blueprint for
results.txt - slides to PNG in a useful directory structure
- timetable to the XML format used for the CCC (C3VOC) streaming service
- vote results into a text file that's a blueprint for
Just run setup.cmd. This will download and unpack all essential programs (except FFmpeg and youtube-dl) into the bin directory.
You may also have a look at bin/setup.ps1 before and update the version-dependent download URLs to the newest releases of the various programs.
To get all the music files (i.e. populate the music directory with all the stuff listed in music/download.txt), run bin/download_music.cmd.
Some of the tools are pre-configured in non-standard ways:
- CKLaunch
- medium-contrast "dark" color scheme with Segoe UI font
- file associations pre-configured to use all the tools CompoKit provides
- Total Commander
- medium-contrast "dark" color scheme with Segoe UI font
- search files in the current directory by simply typing letters (no Ctrl or Alt required)
- F2 key renames files
- Passive FTP by default
- single-instance mode
- MPC-HC
- starts in fullscreen mode
- starts paused (press Space to start playback)
- doesn't leave fullscreen mode when playback is complete
- Q key quits (instead of Alt+X)
- uses the Sync Renderer to minimize framedrops and judder
- no Direct3D exclusive fullscreen mode (questionable if it would have any benefits on Windows 10; may become extremely problematic when codec errors occur)
- XMPlay
- starts paused (press P to start playback)
- OpenMPT plugin is used by default for MOD, S3M, XM and IT formats
- MOD files use 20% stereo separation and Amiga low-pass filter instead of interpolation
- S3M, XM, IT use 100% stereo separation and 8-tap interpolation
- OpenMPT pattern visualization is configured with maximum font size
- SID is configured for Mono output with 8580 digi boost enabled
- single-instance mode
- no title information bubbles in fullscreen mode
- TrackMeister
- starts in fullscreen mode
- starts paused (press Space to start playback)
- MOD files are played back without volume ramping and very low stereo separation
- XnView
- medium-contrast "dark" color scheme
- shows only image files in browser, nothing else
- all toolbars except menu and status bar disabled
- no image info overlays on thumbnails or in fullscreen mode
- starts in fullscreen mode, exit with Esc
- toggle fullscreen with Enter key
- Cursor Up/Down keys change frames/pages in multi-page documents (pages in TIFF, layers in PSD, ...)
- Sahli
- a little script
_run.cmdis put into the Sahli directory that launches Sahli in Chrome/Edge - a manual is provided
- a little script
- typr
- a
_run.cmdscript is put into the typr directory that launches typr in Chrome/Edge
- a
- SumatraPDF
- English language (regardless of system locale)
- page layout set to "single page, don't save for every document"
- DOSBox / DOSBox Staging
- provided config files
dosbox.confanddosbox-staging.confset fullscreen with correct aspect ratio, maximum speed (core=dynamic,cycles=max), 48000 Hz sample rate from all audio sources (including GUS and Covox), and UART mode for the MPU-401 MIDI interface - CKLaunch is configured to interpret
.dosboxand.dosbox-stagingfiles as DOSBox(/-Staging) configuration files and runs them with thedosbox(-staging) -confoption- This can be used to provide an entry-specific DOSBox configuration: Rename the
.conffile to.dosboxor.dosbox-stagingand make sure the entry is auto-started:[autoexec] mount C: . C: whatever.com
- This can be used to provide an entry-specific DOSBox configuration: Rename the
- provided config files
- WinVICE (C64, VIC-20, Plus/4 only)
- version 3.1 is used, because it's the last non-bloated pure Win32 version
- scanlines disabled, brightness adjusted to compensate
- fullscreen mode set to 1080p50 (make sure that mode exists before using Alt+D!)
- no confirmation on exit
- WinUAE
- installed in "portable mode"
- comes with
kickstart13.rom - configuration file
a500.uaeis provided with- all settings for maximum Amiga 500 compatibility (with 512k slow RAM expansion)
- 20% stereo separation
- launch in fullscreen mode with aspect ratio correction, no GUI
- exit with Ctrl+F11 enabled
- wrapper script
runa500.cmdprovided to run a single Amiga executable ("onefiler") by preparing adh0:directory with a suitablestartup-sequenceand running it- CKLaunch is configured to run
.a500and.amigafiles through that, so simply renaming Amiga 500 4k/64k intros from.exe(or whatever) to.a500makes them runnable
- CKLaunch is configured to run
- TIC-80
.ticfiles started via CKLaunch run fullscreen and without the startup animation
- Python
- standard "portable" installation in the subdirectory
bin/python - wrapper script
python.cmdinbinruns Python from there
- standard "portable" installation in the subdirectory
- Chrome/Edge: special settings when run through
bin/Chrome.cmdandSahli/_run.cmdscripts and CKLaunch's default configuration- fullscreen mode
--allow-file-acces-from-files- uses private profile directory (
%TEMP%\cklaunch_chrome_profile)- clean "freshly installed" profile, no user misconfiguration possible
- forces new instance if Chrome/Edge is already running with the default profile
- Firefox: special settings when run through
bin/Firefox.cmdscript- uses private profile directory (
%TEMP%\cklaunch_firefox_profile)- clean "freshly installed" profile, no user misconfiguration possible
- forces new instance if Firefox is already running with the default profile
- if no filename is specified, opens the
about:configpage with the setting that needs to be disabled to allow file-based demos to run
- uses private profile directory (