Инструменты пользователя

Инструменты сайта


retrolang

Это старая версия документа!


Retrolang

Retrolang - свободный комплект разработки (SDK) под PlayStation и одноименный язык программирования, разработанные с полного нуля без зависимости от стороннего ПО. Включает компилятор, ассемблер, дизассемблер, систему автоматизации сборки, собственную стандартную библиотеку, утилиты для конвертации текстур и звуков.

https://github.com/gecko0307/retrolang

Особенностью проекта является стопроцентная юридическая чистота (clean-room дизайн). SDK разработан полностью независимо, без использования дизассемблированного кода, и не включает материалы, защищенные авторским правом. Retrolang нацелен на замену всех устаревших утилит, особенно проприетарных, современными свободными аналогами.

Весь инструментарий Retrolang написан на языке D.

Язык

Retrolang - простой C-подобный процедурный язык, специально разработанный для выполнения программ в условиях крайне ограниченного объема памяти. Поддерживает базовые целочисленные типы int, short, char, uint, ushort, uchar, void, а также указатели на них. Поддерживается приведение типов. Поддерживаются статические массивы, строки, структуры. Реализованы все основные арифметические, логические и побитовые операторы. Операторы потока управления: if/else, while, do-while, for, break, continue, return.

Пример программы:

void main()
{
    bios_a(0x3F, "Hello, World!\n");
}

В отличие от C, Retrolang реализует некоторые низкоуровневые возможности PlayStation в виде интринсиков - встроенных инструкций компилятора, которые разворачиваются не в обычные вызовы, а специальные блоки машинного кода. Это позволяет использовать функции BIOS и команды GTE без необходимости написания частей программы на языке ассемблера. Например, следующий код загружает в контрольные регистры GTE вектор смещения:

ctc2(GTE_TRX, tx);
ctc2(GTE_TRY, ty);
ctc2(GTE_TRZ, tz);

Язык, тем не менее, включает также и полнофункциональный встроенный ассемблер MIPS-I.

Библиотека Retrolib

Retrolang предоставляет системную библиотеку, которая облегчает работу с аппаратным обеспечением:

  • Работа с GPU, рендеринг 2D и 3D-графики - напрямую или через командные буферы и DMA;
  • Чтение файлов TIM и загрузка в видеопамять;
  • Работа с геймпадом;
  • Работа с BIOS;
  • Работа с CD-ROM;
  • Работа с картами памяти;
  • Воспроизведение музыки CD Audio и XA;
  • Воспроизведение видео STR.

Хост-платформы

Все инструменты кроссплатформенны и могут быть собраны под любой хост-системой, для которой существует реализация компилятора D. В бинарном виде релизы Retrolang предоставляются пока только для Windows.

retrolang.1792864110.txt.gz · Последнее изменение: — gecko

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki