TesterTesterov / AI6WINScriptTool

Tool for disassembling and assembling scripts .mes from the visual novel's engine AI6WIN.**//** Средство для разборки и сборки скриптов .mes движка визуальных новелл AI6WIN.
GNU General Public License v2.0
13 stars 4 forks source link
ai6win assembler disassembler engine hacking hacking-tool mes novel python script scripts visual visual-novel

AI6WINScriptTool

English

Dual languaged (rus+eng) tool for disassembling and assembling scripts .mes from the visual novel's engine AI6WIN. Very incomplete list of games on this engine you can find on vndb. With it thou can fully edit all the code, not just strings. Thou can add message breaks and change scenarios without restrictions! Mes script files can be used not just in AI6WIN, but also in AI5WIN and Silky Engine. For assembling and disassembling mes script files of AI5WIN use AI5WINScriptTool and for mes of Silky Engine use mesScriptAsseAndDisassembler.

Also you may want to pack and unpack archives of AI6WIN. For it use AI6WINArcTool.

Definations: "#0-" are "free bytes", "#1-" are commands (and "[...]" are arguments below), "#2-" are labels.

Русский

Двуязычное (рус+англ) средство для дизассемблирования и ассемблирования скриптов .mes движка визуальных новелл AI6WIN. С неполным списком игр на нём вы можете ознакомиться на vndb. С ним вы можете полностью редактирвоать код, а не только строки; по вашему повелению добавлять разрывы между сообщений и даже менять сценарии по своему замыслу! Скрипты с расширением "mes" используются не только в AI6WIN, но также и в AI5WIN с Silky Engine. Чтобы дизассемблировать и ассемблировать скрипты движов AI5WIN и Silky Engine используйте иные следства -- AI5WINScriptTool и mesScriptAsseAndDisassembler соответственно.

Также вам может понадобиться распаковывать и паковать архивы движка AI6WIN. Для сего используйте средство AI6WINArcTool.

Определения: "#0-" есть "вольные байты", "#1-" есть команды (и под ними "[...]" аргументы), "#2-" есть метки.

Usage / Использование

English

image

  1. Choose the mode, file or directory. In first mode you will work with one .mes - .txt pair, in second -- with all files in a pair of directories.
  2. Enter a name of the .mes file in the top entry (do see, with extension) or the directory name. Thou can also enter relative or absolute path. You can also click on "..." to choose.
  3. Enter a name of the .txt file (do see, with extension) or the directory name. Thou can also enter relative or absolute path. You can also click on "..." to choose.
  4. Choose the version of script file (1 in most games or 0 in earliest like Aishimai 4).
  5. For dissassemble push the button "Disassemble".
  6. For assemble push the button "Assemble".
  7. Status will be displayed on the text area below.

Русский

image

  1. Выберите режим: файл или директорию. В первом вы будете работать с парой .mes - .txt, во втором -- со всеми файлами в паре директорий.
  2. Введите название файла .mes в верхней форме (заметьте, с расширением) или имя директории. Также можно вводить относительный или абсолютный до него путь. Также вы можете нажать на кнопку "...", чтобы выбрать.
  3. Введите название файла .txt в нижней форме (заметьте, с расширением) или имя директории. Также можно вводить относительный или абсолютный до него путь. Также вы можете нажать на кнопку "...", чтобы выбрать.
  4. Выберите версию скрипта (1, что используется в большинстве игр, или 0, что в самых ранних вроде Милых сестёр IV).
  5. Для дизассемблирования нажмите на кнопку "Дизассемблировать".
  6. Для ассемблирования нажмите на кнопку "Ассемблировать".
  7. Статус сих операций будет отображаться на текстовом поле ниже.

Line and message breaks help / Помощь по организации переносов по строкам и сообщениям

English

Sometimes there could be a very big problem: text may not fully get in textbox. But with this tool thou don't need to cut some part of text, no. Thou can use line and message breaks. Methods are below.

For line breaks insert this below the current message ("SomeString" -> text on the new line).

#1-ESCAPE
[0]
#1-STR_PRIMARY
["SomeString"]

For message breaks insert this below the current message ("SomeString" -> text on the new message).

#1-32
[0, 3]
#1-32
[0, 23]
#1-18
[]
#1-32
[0, 4]
#1-32
[0, 0]
#1-32
[0, 31]
#1-18
[]
#1-MESSAGE
["*MESSAGE_NUMBER*"]
#1-STR_PRIMARY
["SomeString"]

Русский

Иногда можно столкнуться с одной большой-пребольшой проблемой: текст может не полностью влезать в текстовое окно. Однако, с сим средством вам не нужно обрезать его, отнюдь. Вы можеет организовывать переносы по строкам и сообщениям. Методы указаны ниже.

Для переносов по строкам добавьте под текущее сообщение следующий код ("Какая_то_строка" -> текст на новой строке).

#1-ESCAPE
[0]
#1-STR_PRIMARY
["Какая_то_строка"]

Для переносов по сообщениям добавьте под текущее сообщение следующий код ("Какая_то_строка" -> текст на новой строке).

#1-32
[0, 3]
#1-32
[0, 23]
#1-18
[]
#1-32
[0, 4]
#1-32
[0, 0]
#1-32
[0, 31]
#1-18
[]
#1-MESSAGE
["*MESSAGE_NUMBER*"]
#1-STR_PRIMARY
["Какая_то_строка"]

Tested on / Протестировано на

English

Русский