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\Edge
orC:\Program Files (x86)\Microsoft\Edge
)
- must be installed system-wide (in
- Pico-8 (to show
.p8
cartridges)- just unpack
pico8.exe
and the data files into a directory calledpico-8
next to (not inside of!) thebin
directory
- 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.cmd
can be used to add CompoKit'sbin
directory to thePATH
in command-line sessions. - The script
shell.cmd
starts a command-line session with CompoKit'sbin
directory 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.cmd
is put into the Sahli directory that launches Sahli in Chrome/Edge - a manual is provided
- a little script
- typr
- a
_run.cmd
script 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.conf
anddosbox-staging.conf
set 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
.dosbox
and.dosbox-staging
files as DOSBox(/-Staging) configuration files and runs them with thedosbox(-staging) -conf
option- This can be used to provide an entry-specific DOSBox configuration: Rename the
.conf
file to.dosbox
or.dosbox-staging
and 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.uae
is 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.cmd
provided to run a single Amiga executable ("onefiler") by preparing adh0:
directory with a suitablestartup-sequence
and running it- CKLaunch is configured to run
.a500
and.amiga
files through that, so simply renaming Amiga 500 4k/64k intros from.exe
(or whatever) to.a500
makes them runnable
- CKLaunch is configured to run
- TIC-80
.tic
files started via CKLaunch run fullscreen and without the startup animation
- Python
- standard "portable" installation in the subdirectory
bin/python
- wrapper script
python.cmd
inbin
runs Python from there
- standard "portable" installation in the subdirectory
- Chrome/Edge: special settings when run through
bin/Chrome.cmd
andSahli/_run.cmd
scripts 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.cmd
script- 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:config
page with the setting that needs to be disabled to allow file-based demos to run
- uses private profile directory (