Samples
From MSX Game Library
Here is a list of sample programs supplied with MSXgl to demonstrate the use of the library's various functions.
To try out the different samples, simply open a command line in the MSXgl/projects/samples/ directory and execute:
- build.bat s_game (Windows)
- ./build.sh s_game (Linux & macOS)
Replace "s_game" with the name of the sample you want to try out (sample's .c file extension is not needed).
Note: Samples use a system to overwrites the project configuration (project_config.js) with a sample-specific configuration file (e.g. s_game.js). This makes it possible to have several projects in the same directory. This is not necessary for a stand-alone project. See how to create your own new program.
Core
Hello World
BIOS
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_bios.jpg)
Program showing the use of default BIOS functions.
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Clock
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_clock.jpg)
Program showing the use of the MSX 2's Real Time Clock (Ricoh RP-5C01) to get current time and save/load data from CMOS memory.
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
PSG
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_psg.jpg)
Program showing the use of direct control over PSG sound chip.
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
System
Render
Draw
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_draw.jpg)
Program showing the use of Draw module with the MSX 2 bitmap screen modes.
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Graph Mode 3
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_gm3.png)
Program showing the use of Screen 4 (aka Graph mode 3) with various configuration (including unofficial MSX configurations like "Screen 1.5").
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_print.jpg)
Program showing the use of graphical print features (bitmap, sprite, effects, etc.).
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Sprite Mode 1
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_sm1.jpg)
Program showing the use of sprite mode 1 and a Sprite Attribute Table flip method to reduce sprite disappearance.
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Sprite Mode 2
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_sprite.jpg)
Program showing the use of sprite mode 2 and split screen to change VDP setting during screen rendering.
- Showcased modules:
- File: s_sprite.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Software Sprite
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_swsprt.png)
Program showing the use of software sprite for all bitmap modes using VDP commands.
- Showcased modules:
- File: s_swsprt.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Software Tile
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_swtile.png)
Program showing the use of software tile mode for MSX 2 bitmap modes (only Screen 5 & 8 has been tested).
- Showcased modules:
- File: s_swtile.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Text
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_text.jpg)
Program showing the use of print module with text modes (all MSX 1 and MSX 2 text/tiled mode).
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
VDP Command
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_vdpcmd.jpg)
Program showing the use of VDP command to draw several effect in all bitmap modes.
- Showcased modules:
- File: s_vdpcmd.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Target format
Boot Disk
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
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.
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/2dd-logo.png)
MSX-DOS
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
Program showing the use of MSX-DOS 1 routines to load and display image from file.
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/MSX2+-Logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/2dd-logo.png)
MSX-DOS 2
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
Program showing the use of various MSX-DOS 2 routines to load and display image, get disk information or handle mapped memory.
- Showcased modules:
- dos (code)
- dos_mapper (code)
- File: s_dos2.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/2dd-logo.png)
Mapped ROM
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
Program showing usage of mapped ROM and segments switching.
- File: s_mapper.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Mapped-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/megarom-logo.png)
Utilities
BASIC USR
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
Program showing the creation of binary to be load and used from BASIC.
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/2dd-logo.png)
![Ninja Tap](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/ninjatap-logo.png)
Compressor
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
Program showing the use of several compression algorithms (RLEp, Bitbuster 1 & 2, ZX0 and Pletter).
- Showcased modules:
- File: s_zip.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/2dd-logo.png)
Game
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_game.png)
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.)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Math
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_math.jpg)
Program showing the use of mathematics pre-computed tables, pseudo-random generator and quick-computation functions.
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Scrolling
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_scroll.png)
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
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Devices
Joystick
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_joystick.jpg)
Program showing the use of joystick and input manager.
- Showcased modules:
- input (code)
- input_manager (code)
- File: s_joystk.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Keyboard
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_keyboard.jpg)
Program showing the use of keyboard and input manager.
- Showcased modules:
- input (code)
- input_manager (code)
- File: s_keybrd.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Mouse
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
Program showing the use of mouse device and universal port (joystick port) device detection.
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Ninja Tap
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_ntap.png)
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
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
![Ninja Tap](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/ninjatap-logo.png)
ObsoNET
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
Program showing the use of ObsoNET cartridge using network stack.
- Showcased modules:
- File: s_onet.c
- State: ❓ Partially functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
PAC
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_pac.png)
Program showing the use of PAC or FM-PAC to load/save data into SRAM.
- Showcased modules:
- File: s_pac.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
![PAC SRAM storage](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/pac-logo.png)
V9990
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_v9990.png)
Program showing the use of Yamaha V9990 based video cartridge.
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
![V9990](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/v9990-logo.png)
Audio Format
Arkos
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_arkos.png)
Program showing the use of Arkos Tracker II's replayers.
- Showcased modules:
- File: s_arkos.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Mapped-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/megarom-logo.png)
ayFX
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_ayfx.jpg)
Program showing the use of ayFX's replayer.
- Showcased modules:
- File: s_ayfx.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
lVGM
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
Program showing the use of light-VGM's replayer (PSG).
- Showcased modules:
- File: s_lvgm.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
PCM-Encoder
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_pcm.jpg)
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
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
PCM Play
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
Program showing the use of the PCM Play's replayer.
- Showcased modules:
- File: s_pcmplay.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
PT3
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_pt3.jpg)
Program showing the use of Vortex Tracker II's replayer.
- Showcased modules:
- File: s_pt3.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx2-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
Trilo Tracker SCC
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
Program showing the use of Trilo Tracker SCC's replayer.
- Showcased modules:
- File: s_trilo.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Mapped-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/megarom-logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/scc_logo.png)
VGM
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_vgm.jpg)
Program showing the use of VGM's replayer (PSG, SCC, MSX-Music, MSX-Audio).
- Showcased modules:
- File: s_vgm.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Mapped-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/megarom-logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/scc_logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-music-logo.png)
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-audio-logo.png)
WYZ
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_wyz.png)
Program showing the use of WYZ Tracker's replayer (version 0.3).
- Showcased modules:
- File: s_wyz.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)
WYZ2
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/noimage.png)
Program showing the use of WYZ Tracker's replayer (version 0.3 47d).
- Showcased modules:
- File: s_wyz2.c
- State: ✔️ Functional
![](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/msx-logo.png)
![Plain-ROM cartridge](https://raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/logo/rom-logo.png)