Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

CTPAX-X _ Ресурсы _ My Big Sister (PS Vita) [Adventure Game Studio (AGS)]

Автор: Yoti May 12 2019, 15:56

clibtool - общая утилита для обоих файлов (с исходниками).
https://github.com/Yoti/psv_mybigsis/releases/tag/v3.0

---

Распаковщик для игрового контейнера "AGSProject.ags" - agsunpak
Распаковщик для звукового контейнера "audio.vox" - voxunpak
Использование: положить рядом с указанным файлом, запустить, подождать.
Ссылка на загрузку: https://github.com/Yoti/psv_mybigsis/releases/tag/v1.0

Упаковщик для содержимого звукового контейнера "audio_vox" - voxrepak
Использование: положить рядом с указанной папкой, запустить, подождать.
Ссылка на загрузку: https://github.com/Yoti/psv_mybigsis/releases/tag/v1.5
P.S. Файл собирается до байта совпадающий с оригинальным.

Упаковщик для содержимого игрового контейнера "AGSProject_ags" - agsrepak
Использование: положить рядом с указанной папкой, запустить, подождать.
Ссылка на загрузку: https://github.com/Yoti/psv_mybigsis/releases/tag/v2.0
P.S. Написал себе утилиту получше, потому делюсь этим пакером.

Автор: -=CHE@TER=- May 12 2019, 17:02

Во! Отлично!
Пара моментов (если никто не против небольшой критики):
1) Если что, то я проверить не смогу - у меня нет игры и форматы мне неизвестны.
2) А чего без исходных кодов? Нет, это, конечно, личное дело каждого и, если что, то я не против. Просто обсуждение исходных кодов, например, может помочь самому совершенствоваться в написании программ и алгоритмов. Зря я, наверное, это говорю - это же мне придётся исходные коды читать и комментировать... Ладно, я этого не писал, вы этого не видели. (*улыбается*)
3) Я давно понял весь бесперспективняк упаковщиков исполняемых файлов, если это не demoscene. UPX мы, кстати, обсуждали на форуме когда-то http://www.forum.ctpax-x.org/index.php?showtopic=92. Товарищ angeld29 там, в общем-то, всё правильно написал в конце. Ну, конечно, упаковщики ещё можно как простое средство для защиты кода использовать, но тут важно помнить о том что оно простое.
4) А! Так это Delphi, вот почему толстое всё. Переходи на Тёмную Сторону^W^W язык Си. (*улыбается*) Не, так-то никто не против Delphi, но есть с ним определённые заморочки (типа адовой ненависти к нему антивирусов). А если захочешь Delphi на диету посадить, то http://www.forum.ctpax-x.org/index.php?showtopic=137 тема интересная есть, где товарищ Grom PE выкладывал свои наработки по уменьшению жира (пишет, что тестировал на Delphi 4, 5, 6, 7, 2006, 2007 - про другие неизвестно).
5) Хм, в выложенных программах минимальная версия системы 5.0 - это мне для запуска распаковщика минимум Windows 2000 нужен (NT 5.0)? А! Это, наверное, Delphi такую версию автоматом ставит - видимо, этот Delphi старше 7-го.

Автор: Yoti May 12 2019, 18:34

Упаковано в UPX для того, чтобы меньше весило. Быстрее скачивалось из Интернет и меньше занимало места на HDD. Собрано на Delphi 2010. Консольное приложение там стало 300 кб, вместо 90 как у Delphi 7. На Си переписывать не хочу, нет пользы. Проверять там нечего, всё работает. Вся структура: заголовок, количество файлов, таблица и дальше тела файлов без выравнивания. Исходники позже, есть желание игру перевести. После завершения перевода или по факту отказа от идеи выложу вместе с упаковщиком.

Автор: -=CHE@TER=- May 12 2019, 19:13

QUOTE(Yoti @ May 12 2019, 18:34) *
Упаковано в UPX для того, чтобы меньше весило. Быстрее скачивалось из Интернет и меньше занимало места на HDD.
Это-то понятно и логично, с этим никто не спорит.

QUOTE(Yoti @ May 12 2019, 18:34) *
Собрано на Delphi 2010. Консольное приложение там стало 300 кб, вместо 90 как у Delphi 7.
Там не 90, а 15 должно быть. Сейчас без всяких хаков взял программу "test.dpr":
CODE
{$APPTYPE CONSOLE}
begin
  writeln('Hello world!');
end.
Собираю её:
dcc32 test.dpr
Получился test.exe размером 15360 (можно до 14336 уменьшить, если http://www.forum.ctpax-x.org/index.php?showtopic=94 применить).

QUOTE(Yoti @ May 12 2019, 18:34) *
На Си переписывать не хочу, нет пользы.
Так я ж и писал, что можно не переписывая попробовать жир снять. А что до Си как языка, то понимание что на нём многие технические вещи пишутся проще и быстрее, чем на том же Delphi, приходит с опытом и большим количеством написанного кода. Торопиться не нужно. (*улыбается*)

QUOTE(Yoti @ May 12 2019, 18:34) *
Проверять там нечего, всё работает. Вся структура: заголовок, количество файлов, таблица и дальше тела файлов без выравнивания.
Дело было не в проверять - написать программу можно как угодно - если она работает так как задумано, то остальное уже детали. Но мне, например, интересны технические детали - они позволяют писать более аккуратный, надёжный, быстрый и даже короткий код. Подсмотрев где-то интересные приёмы, я адаптирую их для своих нужд. Ладно, я, наверное, не смогу ясно объяснить что я здесь хотел сказать, ибо уставший совсем.
Ну, например, нужно тебе найти все изображения с точным соотношеним сторон 4 к 3.
Можно так сделать:
if ((width div 4) = (height div 3)) then ...
Но у тебя получается два деления и непонятно что с остатком, так что лучше делать так:
if ((width*3) = (height*4)) then ...
Здесь тоже не всё гладко, т.к. может быть переполнение, но уже лучше (нет проблемы с остатком, для переполнения должны быть очень большие числа, особенно если тип переменных как минимум uint32) и быстрее (умножение быстрее деления, к тому же копилятор оптимизирует оба умножения через сдвиг, что ещё быстрее: width*3 => (width shl 1)+width; height*4 => height shl 2).
Собственно это и есть обсуждение кода и каких-то вещей там.
Но, если не интересно, то приставать не буду.

QUOTE(Yoti @ May 12 2019, 18:34) *
Исходники позже, есть желание игру перевести. После завершения перевода или по факту отказа от идеи выложу вместе с упаковщиком.
А! Вот оно что, тогда понятно. Удачи с проектом!

Автор: Yoti May 12 2019, 20:52

QUOTE(-=CHE@TER=- @ May 12 2019, 19:13) *

Там не 90, а 15 должно быть. Сейчас без всяких хаков взял программу "test.dpr":

В моём случае вот это весу добавляет:
CODE
uses
  Classes,
  SysUtils,
  Windows;

Классы нужны для работы потоками, в Винда для оформления заголовка окошка.

Автор: Yoti May 25 2019, 20:08

Перенёс всё в шапку, выложил окончательную утилиту вместе с исходниками.

Автор: -=CHE@TER=- May 25 2019, 20:22

Поздравляю с релизом!
Поглядел бегло исходные коды - код достаточно аккуратный и чистый.
Молодец!

Автор: Yoti May 30 2019, 11:34

Так я не один десяток паковщиков написал уже. =)

Автор: necros2k7 Aug 29 2022, 10:24

Предлагаю тему переименовать в AGS или Adventure game studio ибо утилиты подходят для всех игр этого движка. П.С. нужна помощь, не соображу что делаю не так, есть утилиты для оптимизации и перепаковки https://github.com/rofl0r/agsutils/releases/download/v0.9.8/agsutils-0.9.8-win32.zip
под Win11 запускаю из под MSYS2

root@ROOT MSYS ~
# agsex game.exe FILES OBJ
:::AGStract 0.9.8 by rofl0r:::
error opening game.exe

что не так в синтаксисе?
задача оптимизировать и снова запаковать

п.с. В принципе утилиты Yoti должны справляться тоже хорошо но тут фишка - оптимизация самого кода после компилятора AGS

Автор: -=CHE@TER=- Aug 29 2022, 14:45

Не понял зачем под Win11 запускать из под MSYS2, если в программе и так виндовый экзешник?
Скорее всего, она не может найти "game.exe" потому что ищет его в /bin/ или ей нужно указывать полный путь до файла. А проще напрямую, без MSYS2 запускать, наверное, будет и проще и понятней.

Автор: necros2k7 Aug 30 2022, 01:31

нет, в том и дело что agsex - это баш скрипт, нет его в виде exe
game.exe лежит там же где и agsex - c:\msys64\usr\bin

Автор: -=CHE@TER=- Aug 30 2022, 09:27

А! Вот оно что. Проверил отдельно "agstract.exe" - он нормально работает. Значит, действительно, проблема в MSYS2 и том, что он файл найти не может. Нужно посмотреть какой каталог текущий, возможно, что, наоборот, не /bin/, а какой-то другой. Набери в MSYS2 команду "ls" (без ковычек, это что-то типа "dir" в Windows) и посмотри какие файлы будут выведены на экран - в каком каталоге ты сейчас находишься туда и перемести свой "game.exe". Или через команду "cd" (работает также, как и в Windows) перейди в нужный и оттуда уже вызывай. Конкретно MSYS2 у меня не стоит, но описанная схема в общем и целом для подобных иксовых программ должна работать.