Skip to content

mvac7/SDCC_MSX_fR3eL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MSX fR3eL SDCC Libraries Project

title logo


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)
  • 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)
  • SapphiRe (ayFX Player and PT3 Player improvements)
  • WYZ (WYZ Player)

Architecture: MSX

Format: C Object (SDCC .rel)

Programming language: C and Z80 assembler



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.



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 ROMs:

  • 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
  • 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 SDCC Library - Library with functions to display mode 2 sprites in V9938 graphics mode 3 Project

To develop MSX-DOS applications (.COM):

  • 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:

  • Z80 Memory MSX Library - Basic functions for Z80's memory and page slots/sublots access. Project - DOC
  • Z80 Interrupt M1 Hooks MSX Library - Control over the hooks (TIMI and KEYI) of the ISR of the MSX System for the M1 interrupt of the Z80 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
  • Z80 RLEWB decompress - C functions and Z80 Assembler source for decompress RLEWB 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
  • 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 gitHub
  • MSXgl SDCC by Aoineko gitHub The MSX Game Library in C language
  • 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

  • OpenMSX emulator >> WEB
  • BlueMSX emulator >> WEB
  • WebMSX emulator by Paulo A. Peccin >> gitHub
  • MSXPen MSX Developer Playground & Code Editor in the Browser by Rafael Jannone
  • fMSX by Marat Fayzullin WEB
  • Meisei emulator by Hap >> ?

Documentation


About

La Fril, mola mil! (WORK IN PROCESS)

Resources

Stars

Watchers

Forks

Releases

No releases published