Skip to content

mvac7/SDCC_MSX_fR3eL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MSX fR3eL SDCC Libraries Project

title logo


Project info

ArchitectureMSX
FormatC Object (SDCC .rel)
Programming languageC and Z80 assembler
CompilerSDCC v4.4 or newer

Authors:

This project has been developed mainly by mvac7, but includes code and ideas contributed by numerous developers who share their knowledge with the MSX community. I add here a list of people who have participated directly or indirectly, in recognition of their work.

  • mvac7 (Code Writer)
  • Avelino Herrera (Knowledge)
  • Konamiman (CRTs and Knowledge)
  • Fubukimaru (Linux Makefiles and documentation fixes)
  • Ramones (Mouse Library)
  • AndreaR (Mouse Library SDCC adaptation and Knowledge)
  • S.V.Bulba (PT3 Player)
  • Dioniso (PT3 Player MSX adaptation),
  • MSXKun (PT3 Player improvements and Knowledge)
  • SapphiRe (ayFX Player and PT3 Player improvements)
  • WYZ (WYZ Player)


WORK IN PROCESS!

This project is not finished and I cannot guarantee its completion.

There are no libraries for disk access (MSX-DOS).

There are no libraries for hardware like the superior VDPs (V9938 or V9958), or PSGs like the SCC, FM, ...

The project is alive, so it may undergo changes.


About MSX fR3eL Project

This repository compiles all the fR3eL libraries for the development in C language of MSX applications with the SDCC cross compiler.

It also provides startups (CRTs) and Makefiles for different types of application formats (ROM or MSX-DOS), in a directory structure prepared to start a project.

Most of the libraries use the BIOS of the MSX System, with what is achieved lightness and compatibility but not speed.

It will not be a problem, for most of the cases where the use is controlled, but if you need to perform tasks that work with large volumes of data (such as dynamic graphics), you may need to program more optimal functions and adapted to the requirements of your project.

Unlike other libraries that are more homogeneous, here you can find in some cases several libraries addressing the same task in different ways (as in the case of SPRITES). That is so you can choose the solution that best suits your needs.

You can improve them, cut what you need or transform them to other compilers, for your personal projects or you can share them with the community.

The main reason that has led me to create this project is learning and to use them in my MSX application development.

You can use it freely, but keep in mind that there are better and more complete libraries, such as Fusion-C by Eric Boez or MSXgl by Aoineko (See section C Libraries or Engines for MSX).

The choice is yours.

mvac7



Requirements



Acknowledgments

I want to give a special thanks everyone who selflessly shares information and code, as they contribute to continued development and extend the life of retro platforms.

  • MSX Assembly Page > WEB
  • MSX Resource Center > WEB
  • Portar MSX Tech Doc > WEB



List of Libraries

They are divided into three groups, since in some cases they have been developed to work in specific execution environments: ROMs or MSX-DOS.

To develop MSX ROM or MSX BASIC binary (use MSX BIOS):

  • MSX 8/16K 8000h ROM startup file (CRT) Project
  • MSX 8/16K 4000h ROM startup file (CRT) Project
  • MSX 32K 4000h ROM startup file (CRT) Project
  • Keyboard MSX ROM Library - Functions for reading the keyboard of MSX computers. Project - DOC
  • Joystick MSX ROM Library - Basic functions for reading Joystick controllers or Cursor Keys. Project
  • Textmode MSX ROM Library - Functions for starting and printing in text modes. Project - DOC
  • VDP TMS9918A MSX ROM Library - Basic functions to work with the TMS9918A video processor using the MSX BIOS. Project
  • VDP SPRITES MSX ROM Library - Functions to facilitate the use of Sprites of the TMS9918A. Project
  • VDP SPRITES mode 1/2 MSX ROM Library - Basic functions for managing Sprites with facilities to work with G3 mode (Screen 4). Project
  • VDP SPRITES Small MSX ROM Library - ClearSprites and PUTSPRITE functions. Project
  • VDP SPRITES mode 2 MSX ROM Library - Library with functions to display mode 2 sprites in V9938 graphics mode 3 Project

To develop MSX-DOS applications (.COM):

  • MSX-DOS startup file (CRT) Project
  • Keyboard MSX-DOS Library - Functions for reading the keyboard of MSX computers. Project - DOC
  • Joystick MSX-DOS Library - Basic functions for reading Joystick controllers or Cursor Keys. Project - DOC
  • Textmode MSX-DOS Library - Functions for starting and printing in text modes. Project

To develop anything:

  • memoryZ80 Library Provides you with functions to read or write to the memory. Project - DOC
  • memoryMSXSlots Library Allows you to configure the pages of the slots and subslots. Project - DOC
  • Z80 Interrupt M1 MSX Libraries - libraries to work with Z80 Mode 1 interrupts Project
    • ISR Functions to control the Interrupt Service Routine (ISR) Project - DOC
    • Hooks Functions to control the MSX system interrupt hooks Project - DOC
  • Z80 Interrupt M1 ISR MSX Library - Interrupt Service Routine (ISR) controller for Z80 Mode 1 interrupts in MSX system. Project - DOC
  • VDP TMS9918A Library - Functions to work with the TMS9918A without using the MSX BIOS. Project
  • VDP SPRITES Library - Functions to facilitate the use of Sprites of the TMS9918A. Project
  • VDP PRINT Library v1.3 Functions Library for display text strings in the graphic modes of the TMS9918A (G1 and G2). Project - DOC
  • String BASICs Library - Basic functions for the treatment of Character Arrays in SDCC, similar to those of MSX BASIC. Project
  • PSG AY-3-8910 RT Library - Basic functions to work with PSG AY-3-8910 or compatible. Project - DOC
  • PSG AY-3-8910 playFX Library - Functions for playing sound effects with the AY-3-8910. Project
  • PSG AY-3-8910 BF Library - Library to access the internal or external PSG AY-3-8910 through a Buffer. Project - DOC
  • PSG ayFX Player Library - Play ayFX effects for the PSG AY-3-8910 (requires AY38910BF library) Project - DOC
  • PT3 Player Library for MSX - SDCC PT3 Player (Vortex Tracker) Library for MSX (requires AY38910BF library) Project - DOC
  • WYZ Player Library for MSX - SDCC WYZ Tracker Player Library for MSX. Project
  • Mouse MSX Library - Basic functions for reading mouse controller of MSX computers. Project
  • WRLE decompress (aka RLEWB) - C Library for decompress WRLE data encoding. Project


AY Sound System

The AY38910BF, PT3player and ayFXplayer libraries are designed to work together, so you will have a system to provide music and effects in game development.

AY Sound System



Development resources

Libraries or Engines for MSX Cross-Platform Development in C

  • Libraries for SDCC SDCC by Avelino Herrera WEB
  • Libraries for SDCC SDCC by Konamiman WEB
  • Fusion-C SDCC by Eric Boez gitHub
  • MSXgl SDCC by Aoineko gitHub The MSX Game Library in C language
  • RetroDeluxe Game Engine SDCC by Retro DeLuxe gitHub
  • libmsx SDCC by Daishi Mori (mori0091) gitHub
  • MSXLib SDCC by Marq WEB --> Get it with svn co svn://www.kameli.net/marq/msxlib
  • sdcc-msx SDCC by Manuel Martinez Torres gitHub
  • ubox MSX lib SDCC by Juan J. Martinez gitLab · WEB
  • GFX lib Hitech-C by Janonne gitHub

Development Tools

  • nMSXtiles - Tiles and Sprites Editor for MSX in SC2 and SC4 graphic mode - By Pentacour and PipaGerardo
  • 99x8Edit - Graphic editor for systems based on TI TMS9918 and Yamaha V9938 - By Yusuke Miyauchi
  • png2msx - Tools for graphics and data in MSX. - By PipaGerardo
  • PCXTOOLS - MSX cross-development command line tools PNG2MSX, PNG2SPR[+] and TMX2BIN
  • IMG2SPR Sprite generator utility By AndreaR
  • MSX Pixel Tools - Convert PNG images into sprites and tilesets to be used by the MSX in screen 2 mode - By Juan J. Martínez (reidrac)
  • CMSXbin - Convert binary to text file - By Guillaume "Aoineko" Blanchard
  • CMSXimg - Command line tool to create images table to add to MSX programs (C/ASM/Bin) - By Guillaume "Aoineko" Blanchard
  • CMSXmath - Command line tool to create pre-calculated mathematics tables - By Guillaume "Aoineko" Blanchard
  • WYZtoSDCCobj Converter Tool - WYZ to C Object Converter Tool for WYZ Player MSX SDCC Library
  • PT3toCdata Converter Tool - Vortex PT3 to C data Converter Tool

MSX Emulators


Documentation

MSX


Tutorials

  • MoltSXalats - Blog about programming with FUSION-C - English - Català - Español
  • Tutorial práctico de desarrollo de videojuegos para ordenadores MSX (por Frederic García Nieto) > PDF

MSX Hardware

VDP TMS9918A

  • Texas Instruments TMS9918A application manual PDF
  • Texas Instruments VDP Programmer�s Guide PDF
  • Texas Instruments TMS9918A VDP by Sean Young TXT

VDP V9938

  • V9938 Technical Data Book PDF TXT
  • V9938 Programmers Guide PDF

VDP V9958

  • V9958 Technical Data Book PDF

PSG AY-3-8910


Programming languages


About

La Fril, mola mil! (WORK IN PROCESS)

Resources

Stars

Watchers

Forks

Releases

No releases published