Difference between revisions of "Samples"
From MSX Game Library
(→PCM-Encoder) |
(→Target format) |
||
(66 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | 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 <tt>MSXgl/projects/samples/</tt> directory and execute: | |
+ | * <tt>build.bat s_game</tt> (Windows) | ||
+ | * <tt>./build.sh s_game</tt> (Linux & macOS) | ||
− | + | Replace "<tt>s_game</tt>" with the name of the sample you want to try out (sample's <tt>.c</tt> file extension is not needed). | |
− | ==== Hello World | + | <u>Note:</u> Samples use a system to overwrites the project configuration (<tt>project_config.js</tt>) with a sample-specific configuration file (e.g. <tt>s_game.js</tt>). 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 my first program|create your own new program]]. |
+ | |||
+ | == Core == | ||
+ | |||
+ | === Hello World === | ||
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Hello | |name=Hello | ||
− | |desc=Program showing the minimal | + | |desc=Program showing the minimal code needed to display a text. |
+ | |module1= | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_hello.c | |file=s_hello.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_hello.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_hello.jpg | ||
}} | }} | ||
− | + | === BIOS === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=BIOS | |name=BIOS | ||
− | |desc=Program showing the use of | + | |desc=Program showing the use of default BIOS functions. |
+ | |module1=bios | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_bios.c | |file=s_bios.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_bios.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_bios.jpg | ||
}} | }} | ||
− | + | === Clock === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Clock | |name=Clock | ||
− | |desc=Program showing the use of the Real Time Clock (Ricoh RP-5C01). | + | |desc=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. |
+ | |module1=clock | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_clock.c | |file=s_clock.c | ||
|machine=MSX2 | |machine=MSX2 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_clock.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_clock.jpg | ||
}} | }} | ||
− | + | === PSG === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=PSG | |name=PSG | ||
− | |desc=Program showing the use of direct control over PSG chip. | + | |desc=Program showing the use of direct control over PSG sound chip. |
+ | |module1=psg | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_psg.c | |file=s_psg.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_psg.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_psg.jpg | ||
}} | }} | ||
− | + | === System === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=System | |name=System | ||
− | |desc= | + | |desc=Program showing the retrieval of system information. |
+ | |module1= | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_sys.c | |file=s_sys.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_sys.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_sys.jpg | ||
}} | }} | ||
− | + | == Render == | |
− | + | === Draw === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Draw | |name=Draw | ||
− | |desc=Program showing the use of Draw module | + | |desc=Program showing the use of Draw module with the MSX2 bitmap screen modes. |
+ | |module1=vdp | ||
+ | |module2=draw | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_draw.c | |file=s_draw.c | ||
|machine=MSX2 | |machine=MSX2 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_draw.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_draw.jpg | ||
}} | }} | ||
− | + | === Graph Mode 3 === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Graph Mode 3 | |name=Graph Mode 3 | ||
− | |desc=. | + | |desc=Program showing the use of Screen 4 (aka Graph mode 3) with various configuration (including unofficial MSX configurations like "Screen 1.5"). |
+ | |module1=vdp | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_gm3.c | |file=s_gm3.c | ||
|machine=MSX2 | |machine=MSX2 | ||
− | |state= | + | |target=ROM_32K |
− | |img= | + | |ext= |
+ | |state=Functional | ||
+ | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_gm3_2.png | ||
+ | }} | ||
+ | |||
+ | === Print === | ||
+ | {{SAMPLE_BOX | ||
+ | |name=Print | ||
+ | |desc=Program showing the use of graphical print features (bitmap, sprite, effects, etc.). | ||
+ | |module1=print | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
+ | |file=s_print.c | ||
+ | |machine=MSX2 | ||
+ | |target=ROM_32K | ||
+ | |ext= | ||
+ | |state=Functional | ||
+ | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_print.jpg | ||
}} | }} | ||
− | + | === Sprite Mode 1 === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Sprite | |name=Sprite | ||
− | |desc=Program showing the use of sprite mode 1 and | + | |desc=Program showing the use of sprite mode 1 and a Sprite Attribute Table flip method to reduce sprite disappearance. |
+ | |module1=vdp | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_sm1.c | |file=s_sm1.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_sm1.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_sm1.jpg | ||
}} | }} | ||
− | + | === Sprite Mode 2 === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Sprite | |name=Sprite | ||
− | |desc=Program showing the use of sprite mode 2 and split screen. | + | |desc=Program showing the use of sprite mode 2 and split screen to change VDP setting during screen rendering. |
+ | |module1=vdp | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_sprite.c | |file=s_sprite.c | ||
|machine=MSX2 | |machine=MSX2 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_sprite.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_sprite.jpg | ||
}} | }} | ||
− | ==== Software Sprite | + | === Sprite FX === |
+ | {{SAMPLE_BOX | ||
+ | |name=Sprite FX | ||
+ | |desc=Program showing the use of Sprite Tool module to modify sprite data (support Cropping, Flipping, Asking and Rotating). | ||
+ | |module1=sprite_fx | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
+ | |file=s_sprtfx.c | ||
+ | |machine=MSX2 | ||
+ | |target=ROM_32K | ||
+ | |ext= | ||
+ | |state=Functional | ||
+ | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_sprttool.gif | ||
+ | }} | ||
+ | |||
+ | === Software Sprite === | ||
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
− | |name=Software | + | |name=Software Sprite |
− | |desc=Program showing the use of software sprite using VDP commands. | + | |desc=Program showing the use of software sprite for all bitmap modes using VDP commands. |
+ | |module1=vdp | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_swsprt.c | |file=s_swsprt.c | ||
|machine=MSX2 | |machine=MSX2 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_swsprt.png | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_swsprt.png | ||
}} | }} | ||
− | ==== Text | + | === Software Tile === |
+ | {{SAMPLE_BOX | ||
+ | |name=Software Tile | ||
+ | |desc=Program showing the use of software tile mode for MSX2 bitmap modes (only Screen 5 & 8 has been tested). | ||
+ | |module1=vdp | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
+ | |file=s_swtile.c | ||
+ | |machine=MSX2 | ||
+ | |target=ROM_32K | ||
+ | |ext= | ||
+ | |state=Functional | ||
+ | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_swtile.png | ||
+ | }} | ||
+ | |||
+ | === Text === | ||
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Text | |name=Text | ||
− | |desc= | + | |desc=Program showing the use of print module with text modes (all MSX1 and MSX2 text/tiled mode). |
+ | |module1=print | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_text.c | |file=s_text.c | ||
− | |machine= | + | |machine=MSX12 |
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_text.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_text.jpg | ||
}} | }} | ||
− | + | === VDP Command === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=VDP | |name=VDP | ||
− | |desc= | + | |desc=Program showing the use of VDP command to draw several effect in all bitmap modes. |
+ | |module1=vdp | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_vdpcmd.c | |file=s_vdpcmd.c | ||
|machine=MSX2 | |machine=MSX2 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_vdpcmd.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_vdpcmd.jpg | ||
}} | }} | ||
− | === | + | == Target format == |
+ | |||
+ | === Boot Disk === | ||
+ | {{SAMPLE_BOX | ||
+ | |name=Boot Disk | ||
+ | |desc=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. | ||
+ | |module1=dos | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
+ | |file=s_dos0.c | ||
+ | |machine=MSX2 | ||
+ | |target=DOS0 | ||
+ | |ext= | ||
+ | |state=Partial | ||
+ | |img= | ||
+ | }} | ||
− | + | === MSX-DOS === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=MSX-DOS | |name=MSX-DOS | ||
− | |desc=. | + | |desc=Program showing the use of MSX-DOS 1 routines to load and display image from file. |
+ | |module1=dos | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_dos.c | |file=s_dos.c | ||
− | |machine= | + | |machine=MSX22+ |
− | |state= | + | |target=DOS1 |
+ | |ext= | ||
+ | |state=Functional | ||
|img= | |img= | ||
}} | }} | ||
− | + | === MSX-DOS 2 === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=MSX-DOS 2 | |name=MSX-DOS 2 | ||
− | |desc=. | + | |desc=Program showing the use of various MSX-DOS 2 routines to load and display image, get disk information or handle mapped memory. |
+ | |module1=dos | ||
+ | |module2=dos_mapper | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_dos2.c | |file=s_dos2.c | ||
− | |machine= | + | |machine=MSX2 |
− | |state= | + | |target=DOS2 |
+ | |ext= | ||
+ | |state=Functional | ||
+ | |img= | ||
+ | }} | ||
+ | |||
+ | === Mapped ROM === | ||
+ | {{SAMPLE_BOX | ||
+ | |name=Mapped ROM | ||
+ | |desc=Program showing usage of mapped ROM and segments switching. | ||
+ | |module1= | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
+ | |file=s_mapper.c | ||
+ | |machine=MSX1 | ||
+ | |target=ROM_ASCII8_128K | ||
+ | |ext= | ||
+ | |state=Functional | ||
|img= | |img= | ||
}} | }} | ||
− | === | + | === NEO mapper === |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
− | |name= | + | |name=NEO mapper |
− | |desc=. | + | |desc=Program showing usage of NEO-8 mapped ROM and segments switching. |
− | |file= | + | |module1= |
− | |machine= | + | |module2= |
− | |state= | + | |module3= |
+ | |module4= | ||
+ | |module5= | ||
+ | |file=s_neo0.c | ||
+ | |machine=MSX1 | ||
+ | |target=ROM_NEO8_8M | ||
+ | |ext= | ||
+ | |state=WIP | ||
|img= | |img= | ||
}} | }} | ||
− | ==== | + | == Utilities == |
+ | |||
+ | === BASIC USR === | ||
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
− | |name= | + | |name=BASIC USR |
− | |desc=Program showing | + | |desc=Program showing the creation of binary to be load and used from BASIC. |
− | |file= | + | |module1=basic_usr |
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
+ | |file=s_usr.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=BIN_USR |
+ | |ext={{NINJATAP}} | ||
+ | |state=Functional | ||
|img= | |img= | ||
}} | }} | ||
− | === | + | === Compressor === |
+ | {{SAMPLE_BOX | ||
+ | |name=Compressor | ||
+ | |desc=Program showing the use of several compression algorithms (RLEp, Bitbuster 1 & 2, ZX0 and Pletter). | ||
+ | |module1=compress | ||
+ | |module2=compress/bitbuster | ||
+ | |module3=compress/bitbuster2 | ||
+ | |module4=compress/zx0 | ||
+ | |module5=compress/pletter | ||
+ | |file=s_zip.c | ||
+ | |machine=MSX2 | ||
+ | |target=DOS1 | ||
+ | |ext= | ||
+ | |state=Functional | ||
+ | |img= | ||
+ | }} | ||
− | + | === Game === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Game | |name=Game | ||
− | |desc=Program showing the use of | + | |desc=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.) |
+ | |module1=game | ||
+ | |module2=game_pawn | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_game.c | |file=s_game.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_game.png | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_game.png | ||
}} | }} | ||
− | ==== Math | + | === Localize === |
+ | {{SAMPLE_BOX | ||
+ | |name=Localize | ||
+ | |desc=Show case of the localization handling module. | ||
+ | |module1=localize | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
+ | |file=s_loc.c | ||
+ | |machine=MSX1 | ||
+ | |target=ROM_32K | ||
+ | |ext= | ||
+ | |state=Functional | ||
+ | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_loc.png | ||
+ | }} | ||
+ | |||
+ | === Math === | ||
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Math | |name=Math | ||
− | |desc=Program showing the use of mathematics pre- | + | |desc=Program showing the use of mathematics pre-computed tables, pseudo-random generator and quick-computation functions. |
+ | |module1=math | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_math.c | |file=s_math.c | ||
|machine=MSX2 | |machine=MSX2 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_math.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_math.jpg | ||
}} | }} | ||
− | + | === Scrolling === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Scrolling | |name=Scrolling | ||
|desc=Program showing the use of multi-directionnal tile-based scrolling and screen adjust register for smooth scrolling. | |desc=Program showing the use of multi-directionnal tile-based scrolling and screen adjust register for smooth scrolling. | ||
+ | |module1=vdp | ||
+ | |module2=scroll | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_scroll.c | |file=s_scroll.c | ||
|machine=MSX2 | |machine=MSX2 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_scroll.png | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_scroll.png | ||
}} | }} | ||
− | + | == Devices == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === Joystick === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Joystick | |name=Joystick | ||
|desc=Program showing the use of joystick and input manager. | |desc=Program showing the use of joystick and input manager. | ||
+ | |module1=input | ||
+ | |module2=input_manager | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_joystk.c | |file=s_joystk.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_joystick.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_joystick.jpg | ||
}} | }} | ||
− | + | === Keyboard === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Keyboard | |name=Keyboard | ||
|desc=Program showing the use of keyboard and input manager. | |desc=Program showing the use of keyboard and input manager. | ||
+ | |module1=input | ||
+ | |module2=input_manager | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_keybrd.c | |file=s_keybrd.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_keyboard.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_keyboard.jpg | ||
}} | }} | ||
− | + | === Mouse === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Mouse | |name=Mouse | ||
− | |desc=. | + | |desc=Program showing the use of mouse device and universal port (joystick port) device detection. |
+ | |module1=input | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_mouse.c | |file=s_mouse.c | ||
− | |machine= | + | |machine=MSX1 |
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img= | |img= | ||
}} | }} | ||
− | + | === Ninja Tap === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Ninja Tap | |name=Ninja Tap | ||
− | |desc=. | + | |desc=Program showing the use of NinjaTap device to connect up to 8 joysticks on one MSX machine. |
+ | |module1=device/ninjatap | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_ntap.c | |file=s_ntap.c | ||
− | |machine= | + | |machine=MSX1 |
− | |state= | + | |target=ROM_32K |
− | |img= | + | |ext={{NINJATAP}} |
+ | |state=Functional | ||
+ | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_ntap.png | ||
}} | }} | ||
− | + | === ObsoNET === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=ObsoNET | |name=ObsoNET | ||
− | |desc=. | + | |desc=Program showing the use of ObsoNET cartridge using network stack. |
+ | |module1=network/obsonet | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_onet.c | |file=s_onet.c | ||
− | |machine= | + | |machine=MSX1 |
− | |state= | + | |target=ROM_16K |
+ | |ext= | ||
+ | |state=Partial | ||
|img= | |img= | ||
}} | }} | ||
− | + | === PAC === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=PAC | |name=PAC | ||
− | |desc=. | + | |desc=Program showing the use of PAC or FM-PAC to load/save data into SRAM. |
+ | |module1=device/pac | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_pac.c | |file=s_pac.c | ||
− | |machine= | + | |machine=MSX1 |
− | |state= | + | |target=ROM_32K |
− | |img= | + | |ext={{PAC}} |
+ | |state=Functional | ||
+ | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_pac.png | ||
+ | }} | ||
+ | |||
+ | === V9990 === | ||
+ | {{SAMPLE_BOX | ||
+ | |name=V9990 | ||
+ | |desc=Program showing the use of Yamaha V9990 based video cartridge. | ||
+ | |module1=v9990 | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
+ | |file=s_v9990.c | ||
+ | |machine=MSX1 | ||
+ | |target=ROM_32K | ||
+ | |ext={{V9990}} | ||
+ | |state=Functional | ||
+ | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_v9990.png | ||
}} | }} | ||
− | + | == Audio Format == | |
− | + | === Arkos === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Arkos | |name=Arkos | ||
− | |desc= | + | |desc=Program showing the use of Arkos Tracker II's replayers. |
+ | |module1=arkos/akg_player | ||
+ | |module2=arkos/akm_player | ||
+ | |module3=arkos/aky_player | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_arkos.c | |file=s_arkos.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_ASCII8_128K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_arkos.png | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_arkos.png | ||
}} | }} | ||
− | + | === ayFX === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=ayFX | |name=ayFX | ||
− | |desc= | + | |desc=Program showing the use of ayFX's replayer. |
+ | |module1=ayfx/ayfx_player | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_ayfx.c | |file=s_ayfx.c | ||
|machine=MSX2 | |machine=MSX2 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_ayfx.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_ayfx.jpg | ||
}} | }} | ||
− | + | === lVGM === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=Light VGM | |name=Light VGM | ||
− | |desc=. | + | |desc=Program showing the use of light-VGM's replayer (PSG). |
+ | |module1=lvgm/lvgm_player | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_lvgm.c | |file=s_lvgm.c | ||
− | |machine= | + | |machine=MSX1 |
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img= | |img= | ||
}} | }} | ||
− | + | === PCM-Encoder === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=PCM Encoder | |name=PCM Encoder | ||
− | |desc=. | + | |desc=Program showing the use of the PCM Encoder's replayer (aka. ''Crystal clean PCM 8bit samples on the poor PSG''). |
+ | |module1=pcm/pcmenc | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_pcmenc.c | |file=s_pcmenc.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_pcm.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_pcm.jpg | ||
}} | }} | ||
− | + | === PCM Play === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=PCM Play | |name=PCM Play | ||
− | |desc=. | + | |desc=Program showing the use of the PCM Play's replayer. |
+ | |module1=pcm/pcmplay | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_pcmplay.c | |file=s_pcmplay.c | ||
− | |machine= | + | |machine=MSX1 |
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img= | |img= | ||
}} | }} | ||
− | + | === PT3 === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=PT3 | |name=PT3 | ||
− | |desc= | + | |desc=Program showing the use of Vortex Tracker II's replayer. |
+ | |module1=pt3/pt3_player | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_pt3.c | |file=s_pt3.c | ||
|machine=MSX2 | |machine=MSX2 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_pt3.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_pt3.jpg | ||
}} | }} | ||
− | ==== VGM | + | === Trilo Tracker SCC === |
+ | {{SAMPLE_BOX | ||
+ | |name=Trilo Tracker SCC | ||
+ | |desc=Program showing the use of Trilo Tracker SCC's replayer. | ||
+ | |module1=trilo/trilo_scc_player | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
+ | |file=s_trilo.c | ||
+ | |machine=MSX1 | ||
+ | |target=ROM_KONAMI_SCC_128K | ||
+ | |ext= | ||
+ | |state=Functional | ||
+ | |img= | ||
+ | }} | ||
+ | |||
+ | === VGM === | ||
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=VGM | |name=VGM | ||
− | |desc= | + | |desc=Program showing the use of VGM's replayer (PSG, SCC, MSX-Music, MSX-Audio). |
+ | |module1=vgm/vgm_player | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_vgm.c | |file=s_vgm.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_ASCII16_256K |
+ | |ext={{SCC}} {{MSXMUSIC}} {{MSXAUDIO}} | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_vgm.jpg | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_vgm.jpg | ||
}} | }} | ||
− | + | === WYZ === | |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
|name=WYZ | |name=WYZ | ||
− | |desc= | + | |desc=Program showing the use of WYZ Tracker's replayer (version 0.3). |
+ | |module1=wyz/wyz_player | ||
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
|file=s_wyz.c | |file=s_wyz.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | |state= | + | |target=ROM_32K |
+ | |ext= | ||
+ | |state=Functional | ||
|img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_wyz.png | |img=raw.githubusercontent.com/aoineko-fr/MSXgl/main/engine/doc/img/sample_wyz.png | ||
}} | }} | ||
− | == | + | === WYZ2 === |
{{SAMPLE_BOX | {{SAMPLE_BOX | ||
− | |name= | + | |name=WYZ2 |
− | |desc= | + | |desc=Program showing the use of WYZ Tracker's replayer (version 0.3 47d). |
− | |file= | + | |module1=wyz/wyz_player2 |
+ | |module2= | ||
+ | |module3= | ||
+ | |module4= | ||
+ | |module5= | ||
+ | |file=s_wyz2.c | ||
|machine=MSX1 | |machine=MSX1 | ||
− | | | + | |target=ROM_32K |
− | + | |ext= | |
− | + | |state=Functional | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
− | |state= | ||
|img= | |img= | ||
}} | }} |
Latest revision as of 21:20, 13 January 2024
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
Program showing the minimal code needed to display a text.
- File: s_hello.c
- State: ✔️ Functional
32K
BIOS
Program showing the use of default BIOS functions.
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.
32K
PSG
Program showing the use of direct control over PSG sound chip.
32K
System
Program showing the retrieval of system information.
- File: s_sys.c
- State: ✔️ Functional
32K
Render
Draw
Program showing the use of Draw module with the MSX2 bitmap screen modes.
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").
32K
Program showing the use of graphical print features (bitmap, sprite, effects, etc.).
32K
Sprite Mode 1
Program showing the use of sprite mode 1 and a Sprite Attribute Table flip method to reduce sprite disappearance.
32K
Sprite Mode 2
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
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).
32K
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
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.
BOOT
MSX-DOS
Program showing the use of MSX-DOS 1 routines to load and display image from file.
MSX-DOS
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:
- dos (code)
- dos_mapper (code)
- File: s_dos2.c
- State: ✔️ Functional
MSX-DOS 2
Mapped ROM
Program showing usage of mapped ROM and segments switching.
- File: s_mapper.c
- State: ✔️ Functional
ASCII8 128K
NEO mapper
Program showing usage of NEO-8 mapped ROM and segments switching.
- File: s_neo0.c
- State: WIP
NEO8 8M
Utilities
BASIC USR
Program showing the creation of binary to be load and used from BASIC.
BIN (USR)
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.)
32K
Localize
Show case of the localization handling module.
32K
Math
Program showing the use of mathematics pre-computed tables, pseudo-random generator and quick-computation functions.
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
Devices
Joystick
Program showing the use of joystick and input manager.
- Showcased modules:
- input (code)
- input_manager (code)
- File: s_joystk.c
- State: ✔️ Functional
32K
Keyboard
Program showing the use of keyboard and input manager.
- Showcased modules:
- input (code)
- input_manager (code)
- File: s_keybrd.c
- State: ✔️ Functional
32K
Mouse
Program showing the use of mouse device and universal port (joystick port) device detection.
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
32K
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
32K
V9990
Program showing the use of Yamaha V9990 based video cartridge.
32K
Audio Format
Arkos
Program showing the use of Arkos Tracker II's replayers.
- Showcased modules:
- File: s_arkos.c
- State: ✔️ Functional
ASCII8 128K
ayFX
Program showing the use of ayFX's replayer.
- 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
KONAMI 128K
VGM
Program showing the use of VGM's replayer (PSG, SCC, MSX-Music, MSX-Audio).
- Showcased modules:
- File: s_vgm.c
- State: ✔️ Functional
ASCII16 256K
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