Что такое формат файла RXDATA?
Файлы с расширением .rxdata хранят игровые данные, созданные в RPG Maker XP - приложении для Windows, разработанном компанией Enterbrain (ныне Kadokawa), которое позволяет создавать ролевые игры без глубоких знаний языков программирования. RPG Maker XP - это японский продукт, впервые выпущенный в 2004 году, англоязычная версия которого появилась в 2005 году.
Внутри файлы .rxdata представляют собой бинарные объекты, сериализованные в формате Ruby Marshal (версия 4.8). Это формат сериализации, используемый средой выполнения Ruby 1.8, встроенной в скриптовый движок RGSS в RPG Maker XP. Полный проект обычно содержит около 15 стандартных файлов .rxdata - Actors.rxdata, Items.rxdata, Scripts.rxdata и по одному файлу MapXXX.rxdata на каждую карту, среди прочих.
Игры, разработанные в RPG Maker XP, поддерживают такие возможности, как:
- игровая графика с разрешением до 640×480 пикселей;
- графические файлы с поддержкой RGBA;
- система скриптов RGSS на базе языка Ruby;
- возможность кодирования файлов в защищенные игровые архивы.
Игровые данные сохраняются в файлах .rxdata и несовместимы с последующими версиями RPG Maker. Более поздние версии сохраняют данные в форматах .rvdata (RPG Maker VX) или .rvdata2 (RPG Maker VX Ace).
Игры, созданные в RPG Maker XP, также сохраняют состояние игрового процесса в файлах .rxdata. Существуют специализированные редакторы, позволяющие изменять данные сохранений, хотя они не являются официальными инструментами разработчика. Текущие версии RPG Maker не обеспечивают обратную совместимость с файлами, созданными в RPG Maker XP.
Безопасность и защита
РИСК: LOWФайлы RXDATA представляют собой чистую сериализацию данных - они не содержат исполняемого кода напрямую. Scripts.rxdata содержит текст скриптов Ruby (в сжатом виде), но этот код выполняется только внутри среды RGSS при запуске игры. Простое открытие или конвертация файла RXDATA не несет риска.
Детали формата
в двух словахПрограммы, открывающие файлы RXDATA
rxdata-converter input.rxdata output.json. Технические подробности
глубокая спецификация| Формат сериализации | Ruby Marshal версии 4.8 (привязан к Ruby 1.8.x, используемому в среде RGSS) |
| Магические байты | 0x04 0x08 по смещению 0 (заголовок версии Ruby Marshal) |
| Кодировка | Бинарная |
| Порядок байтов | Big-endian |
| Контейнер | Дерево сериализованных объектов Ruby Marshal - массивы, хэши, символы, строки, целые числа, экземпляры пользовательских классов |
| Сжатие | Отсутствует на уровне файла; Scripts.rxdata хранит тело каждого скрипта как отдельную строку, сжатую алгоритмом zlib DEFLATE |
| Среда выполнения скриптов | RGSS (Ruby Game Scripting System) на базе Ruby 1.8.6 |
| Стандартные файлы проекта | ~15 файлов данных с фиксированными именами на проект (Actors, Items, Skills, Weapons, Maps, Scripts, System и т. д.) |
| Типичный размер | От 1 КБ до 5 МБ на файл; Scripts.rxdata может достигать десятков МБ |
| Связанная ОС | Windows |
| Совместимость | Несовместим с RPG Maker VX (RVDATA), VX Ace (RVDATA2), MV и MZ |
| Заменен на | .rvdata (RPG Maker VX, 2007), затем .rvdata2 (RPG Maker VX Ace, 2011) |
| Выпущен | 2004 (RPG Maker XP, first Japanese release; Western release 2005) |
| Последняя версия | Ruby Marshal version 4.8 (Ruby 1.8.x era); format has not changed |
| Спецификация | ruby-doc.org |
Конвертации RXDATA
Вопросы и ответы сообщества
спрошено пользователямиЧасто задаваемые вопросы
Как открыть файл RXDATA?
Marshal.load(File.binread('file.rxdata')).Можно ли редактировать файлы RXDATA без RPG Maker XP?
Script.rxdata требует предварительной распаковки тела каждого скрипта с помощью Zlib::Inflate.Какая версия RPG Maker использует RXDATA?
Как извлечь скрипты из Scripts.rxdata?
Marshal.load (Ruby), переберите массив и вызовите Zlib::Inflate.inflate(script[2]) для каждой записи. Инструмент rxdata-converter делает это автоматически.Файл RXDATA поврежден - как его восстановить?
*.rxdata_). Если заголовок файла (04 08) не поврежден, парсер Ruby Marshal может восстановить часть данных.