MSXgl a game library written in C

da | Nov 20, 2023 | C language | 0 comments

MSXgl is a game library written in C and intended for MSX computers. The goal of this library is to give C programmers the full feature set to create a high-performance game. Although a C program can never be as efficient as a program written entirely in Assembler, the goal is to try to get as close as possible. To achieve this, the library is dynamically compiled to allow the user to configure the features according to their needs. Additionally, the most resource-intensive features are written in Assembler. The other goal was to create a library that was totally independent of the BIOS. This makes it much easier to use the 16K of page 0. The library also provides interrupt handling code to create ROMs that always stay on page 0. There are many example programs available to demonstrate the different features.

Thanks to an advanced compilation tool it is possible to easily create the final program for a large number of formats:

  • Plain ROM 8K to 64K (Interrupt Handler can be installed on page 0)
  • ROM mapped from 64K to 4096K (ASCII-8, ASCII-16, Konami and Konami SCC mappers)
  • MSX-DOS 1 or 2 binary program
  • BASIC binary program.

The library supports the following devices:

  • VDP (TMS9918, V9938 and V9958) and V9990
  • PSG (AY-3-8910), MSX-Music, MSX-Audio, Konami SCC
  • Keyboard, Joystick, Mouse and Ninja Tap (adapter for 4 joysticks)
  • ROM mapper, slot manager and Real Time Clock (RP-5C01).

Here are also the supported audio formats:

  • Arkos Tracker 2 (AKG, AKY and AKM)
  • Trilo Tracker SCC
  • Vortex Tracker II (PT3)
  • WYZ Tracker (WYZ)
  • ayFX
  • VGM (for all supported audio chips)
  • lVGM (a lightweight VGM format for PSG)
  • PCM
  • Encoder (aka. clean and crystal clear 8bit PCM samples on the poor PSG)

To conclude this brief description, it is important to point out that the library is constantly updated, both in the core and in the documentation. It is also possible to get support through the very active community on the discord channel that you will find at this address: https://discord.com/channels/920822639059148851/

You can find the documentation from the following links:

 

For those interested theMSX Italy Association created a R&D working group on C programming for MSX. For more info:associazioneMSXitalia@gmail.com

0 Comments

Submit a Comment

Your email address will not be published. I campi obbligatori sono contrassegnati *

Linguaggio C per MSX – lezione 6

C language for MSX – lesson 6

C language for MSX Column by Nicola Brogelli (Part 6) Arrays and Pointers Multidimensional Arrays Until now we have considered one-dimensional arrays, which required only one index to identify an element. C allows you to...

Linguaggio C per MSX – lezione 6

C language for MSX – lesson 5

C language for MSX Column by Nicola Brogelli (Part 5) Arrays and Array Pointers Arrays are sequences of variables of the same type that are stored consecutively in memory and which can be accessed using the same name...

Linguaggio C per MSX – lezione 3

C language for MSX – lesson 3

C language for MSX Column by Nicola Brogelli (Part 3) Enumerations Enums or enumerations are particular types of data that contain a list of constants, each of which is associated with an integer value. Specifically, the constant values contained...

Linguaggio C per MSX – lezione 3

C language for MSX – lesson 2

C language for MSX Column by Nicola Brogelli (Part 2) Type Conversions As we saw in the previous handout, in C every piece of data has a well-defined Type. When variables of different types appear in an expression, the compiler is often able...