Here is a list of sample programs included with MSXgl to illustrate how to use the library’s various features and functions.
To test a sample program, follow these steps:
- Open a command-line interface in the MSXgl/projects/samples/ directory.
- Run one of the following commands, depending on your operating system:
- build.bat s_game (Windows)
- ./build.sh s_game (Linux & macOS)
Replace s_game with the name of the sample you wish to test (there’s no need to include the .c file extension).
Note: Sample programs use a configuration system that overwrites the default project settings (project_config.js) with a sample-specific configuration file (e.g., s_game.js). This approach allows multiple projects to coexist in the same directory without conflicts.
For standalone projects, this step is unnecessary. To learn how to set up your own project from scratch, see this guide.
Core
Hello World
Program showing the minimal code needed to display a "Hello World!" text.
32K
BIOS
Program showing the use of default BIOS functions.
- Showcased modules:
- File: s_bios.c
- State: ✔️ Functional
32K
Clock
Program showing the use of the MSX2's Real Time Clock (Ricoh RP-5C01) to get current time and save/load data from CMOS memory.
- Showcased modules:
- File: s_clock.c
- State: ✔️ Functional
32K
PSG
Program showing the use of direct control over PSG sound chip.
- Showcased modules:
- File: s_psg.c
- State: ✔️ Functional
32K
System
Program showing the retrieval of system information.
32K
Render
Draw
Program showing the use of Draw module with the MSX2 bitmap screen modes.
- Showcased modules:
- File: s_draw.c
- State: ✔️ Functional
32K
Graph Mode 3
Program showing the use of Screen 4 (aka Graph mode 3) with various configuration (including unofficial MSX configurations like "Screen 1.5").
- Showcased modules:
- File: s_gm3.c
- State: ✔️ Functional
32K
Print
Program showing the use of graphical print features (bitmap, sprite, effects, etc.).
- Showcased modules:
- File: s_print.c
- State: ✔️ Functional
32K
Sprite Mode 1
Program showing the use of sprite mode 1 and a Sprite Attribute Table flip method to reduce sprite disappearance.
- Showcased modules:
- File: s_sm1.c
- State: ✔️ Functional
32K
Sprite Mode 2
Program demonstrating the use of sprite mode 2 (including multi-colors) and split screen using the horizontal interrupt to modify VDP parameters during screen rendering.
- Showcased modules:
- File: s_sprite.c
- State: ✔️ Functional
32K
Sprite FX
Program showing the use of Sprite Tool module to modify sprite data (support Cropping, Flipping, Asking and Rotating).
- Showcased modules:
- File: s_sprtfx.c
- State: ✔️ Functional
32K
Software Sprite
Program showing the use of software sprite for all bitmap modes using VDP commands.
- Showcased modules:
- File: s_swsprt.c
- State: ✔️ Functional
32K
Software Tile
Program showing the use of software tile mode for MSX2 bitmap modes (only Screen 5 & 8 has been tested).
- Showcased modules:
- File: s_swtile.c
- State: ✔️ Functional
32K
Text
Program showing the use of print module with text modes (all MSX1 and MSX2 text/tiled mode).
- Showcased modules:
- File: s_text.c
- State: ✔️ Functional
VDP Command
Program showing the use of VDP command to draw several effect in all bitmap modes.
- Showcased modules:
- File: s_vdpcmd.c
- State: ✔️ Functional
32K
Scrolling
Program showing the use of multi-directionnal tile-based scrolling and screen adjust register for smooth scrolling.
- Showcased modules:
- File: s_scroll.c
- State: ✔️ Functional
32K
Target format
Boot Disk
Program showing the use boot disk target format. The program will be start from disk without going through MSX-DOS but allow to use BDOS function.
- Showcased modules:
- File: s_dos0.c
- State: ❓ Partially functional
BOOT
MSX-DOS
Program showing the use of MSX-DOS 1 routines to load and display image from file.
- Showcased modules:
- File: s_dos.c
- State: ✔️ Functional
MSX-DOS 2
Program showing the use of various MSX-DOS 2 routines to load and display image, get disk information or handle mapped memory.
- Showcased modules:
- File: s_dos2.c
- State: ✔️ Functional
MSX-DOS 2
Mapped ROM
Program showing usage of mapped ROM and segments switching.
ASCII8 128K
NEO mapper
Program showing usage of NEO-8 mapped ROM and segments switching.
NEO8 8M
Utilities
Driver
Program showing the creation of the driver, a code designed to be placed in memory and executed from a main program. Used in #MSX-DOS 2 sample.
BASIC USR
Program showing the creation of binary to be load and used from BASIC.
- Showcased modules:
- File: s_usr.c
- State: ✔️ Functional
Compressor
Program showing the use of several compression algorithms (RLEp, Bitbuster 1 & 2, ZX0 and Pletter).
- Showcased modules:
- File: s_zip.c
- State: ✔️ Functional
MSX-DOS
Game
Program showing the use of Game and Game pawn modules. The Game module offers state management while Game pawn allows to manage characters (display, animation, movement, collision, etc.)
- Showcased modules:
- File: s_game.c
- State: ✔️ Functional
32K
Localize
Demonstration of the localization management module with support for multiple languages and management of different character sets.
- Showcased modules:
- File: s_loc.c
- State: ✔️ Functional
32K
Math
Program showing the use of mathematics pre-computed tables, pseudo-random generator and quick-computation functions.
- Showcased modules:
- File: s_math.c
- State: ✔️ Functional
32K
Encryption
Program showing the use of an encoding system to encrypt data. Useful for creating backup codes, for example.
- Showcased modules:
- File: s_crypt.c
- State: ✔️ Functional
32K
Devices
Joystick
Program showing the use of joystick and input manager.
- Showcased modules:
- File: s_joystk.c
- State: ✔️ Functional
32K
Keyboard
Program showing the use of keyboard and input manager.
- Showcased modules:
- File: s_keybrd.c
- State: ✔️ Functional
32K
Mouse
Program showing the use of mouse device and universal port (joystick port) device detection.
- Showcased modules:
- File: s_mouse.c
- State: ✔️ Functional
32K
Ninja Tap
Program showing the use of NinjaTap device to connect up to 8 joysticks on one MSX machine.
- Showcased modules:
- File: s_ntap.c
- State: ✔️ Functional
ObsoNET
Program showing the use of ObsoNET cartridge using network stack.
- Showcased modules:
- File: s_onet.c
- State: ❓ Partially functional
16K
PAC
Program showing the use of PAC or FM-PAC to load/save data into SRAM.
- Showcased modules:
- File: s_pac.c
- State: ✔️ Functional
V9990
Program showing the use of Yamaha V9990 based video cartridge.
- Showcased modules:
- File: s_v9990.c
- State: ✔️ Functional
Audio Format
Arkos
Program to demonstrate the use of the different Arkos Tracker (AT2 and AT3) music replayers.
- Showcased modules:
- File: s_arkos.c
- State: ✔️ Functional
ASCII8 128K
ayFX
Program showing the use of ayFX sound effect replayer (both using a bank or a single sound file).
- Showcased modules:
- File: s_ayfx.c
- State: ✔️ Functional
32K
lVGM
Program showing the use of light-VGM's replayer (PSG).
- Showcased modules:
- File: s_lvgm.c
- State: ✔️ Functional
32K
PCM-Encoder
Program showing the use of the PCM Encoder's replayer (aka. Crystal clean PCM 8bit samples on the poor PSG
).
- Showcased modules:
- File: s_pcmenc.c
- State: ✔️ Functional
32K
PCM Play
Program showing the use of the PCM Play's replayer.
- Showcased modules:
- File: s_pcmplay.c
- State: ✔️ Functional
32K
PT3
Program showing the use of Vortex Tracker II's replayer.
- Showcased modules:
- File: s_pt3.c
- State: ✔️ Functional
32K
Trilo Tracker SCC
Program showing the use of Trilo Tracker SCC's replayer.
- Showcased modules:
- File: s_trilo.c
- State: ✔️ Functional
VGM
Program showing the use of VGM's replayer (PSG, SCC, MSX-Music, MSX-Audio).
- Showcased modules:
- File: s_vgm.c
- State: ✔️ Functional
WYZ
Program showing the use of WYZ Tracker's replayer (version 0.3).
- Showcased modules:
- File: s_wyz.c
- State: ✔️ Functional
32K
WYZ2
Program showing the use of WYZ Tracker's replayer (version 0.3 47d).
- Showcased modules:
- File: s_wyz2.c
- State: ✔️ Functional
32K