Новости:

01.01.2017: Релиз испанской версии Naruto - Ninja Council (GBA)
02.12.2016: Добавлена документация по Kruptar 7
09.10.2015: Обновление перевода игры Battletoads (NES) [версия 1.3]
22.01.2015: Kruptar Open Source
18.10.2014: Релиз обновлённой русской версии Castlevania - Dawn of Sorrow (GBA) от Owls Group
01.05.2014: Релиз русской версии Taiyou no Yuusha Firebird (NES)
24.06.2012: Добавлена доработанная документация и инструкция
26.05.2012: Обновление ORITON [версия 2.050]
11.05.2012: Обновление ORITON [версия 2.048]
11.03.2012: Обновление Kruptar 7 [версия 7.1.1.17]
29.01.2012: Обновление LZ77Restructor 2 [версия 1.02]
01.01.2012: Релиз русской версии Drill Dozer (GBA)

Подробнее на страничке новостей.
Ознакомьтесь с правилами нашего форума.

Главное меню

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.

Просмотр сообщений

Сообщения - Dr. MefistO

#1
В общем, из того, что я выяснил:
Не стоит абсолютно все из этих игр приписывать одному упаковщику. Например в Бэтмане некоторые архивы нельзя нормально распаковать тем же распаковщиком. А вот в Контре да, там все окей. Даже сдампил все.


Согласен, что команды при распаковке используются почти одни и те же, но начала архивов у игр в большинстве своем разные.


Я сделаю упаковщик для Контры, и дам сорс. А остальное - уже ваши трудности)
#2
Декомпрессор наваял. Анпачит, кажись, как надо. Адреса данных в таблицах, правда, стоит переискать, а то иногда надо прибавить заголовок, а иногда нужно отнять. И, вопрос: на каких архивах у тебя имеются баги распаковки?


Распакованные архивы из Contra - The Alien Wars: https://www.dropbox.com/s/zb2pa13fev5ae2m/ctaw_dumps.rar
#3
Благодарю за ответ. Но не имея, опять же, сорса, чем поможешь-то тебе? Кинь в личку, разберемся вместе.
#4
Я лишь предложил помощь, а вы начали нести бред.


Говорю же, есть рабочий, нормальный компрессор/декомпрессор для сеги, тоже для Конами. Глянув на код распаковщика, я мог бы сказать, похож ли он на мой. Если да, немного подправивши, можно было бы заделать и ваш. Но дело ваше. Конечно, "лучше" выкладывать недоделки, которые, как сказано в шапке, еще и с проблемами.
#5
Смысл от только декомпрессора? Сжимать то нельзя!
Скинь код в личку, гляну. Может он схож с кодом, который у меня уже есть для сеги.
#6
Программирование / Kruptar
10 января 2013, 16:38:02



На скрине в X - как раз смещение начала текста - оно считано по поинтеру. Размер тоже правильный - однобайтный. Так что я не знаю, что не так.


В роме именно этот байт по этому смещению и лежит:



За пределами рома оно не может читать, т.к. есть проверка в плагине. Писано не мной ведь)
If (X >= RomSize) or (X < 0) then Exit;

[Дата добавления: 10 января 2013, 20:11:10]

Дело было в размере массива ROM. Там макс ширина стояла WORD. Я растянул до 1MB.
#7
Программирование / Kruptar
10 января 2013, 16:33:50
Исправил предыдущий пост, почитай.
#8
Программирование / Kruptar
10 января 2013, 15:23:02
Разобрался как отлаживать. Но от ошибки избавиться не могу. Почему-то вылетает даже на шаблонном куске кода из плагина NULL. Вот здесь:

With Result^.Add^ do
begin
  P := Addr(ROM^[X]);



В общем, выяснил, что летит при получении байта из потока в функции Function GetStrings(X, Sz: Integer): PTextStrings; stdcall;:
B := ROM^[X]; //B - Byte





Отладчик, в данном месте при наведении на ROM^[X] показывает находящийся там байт, но присвоение не происходит - идет вылет.
#9
Программирование / Kruptar
10 января 2013, 14:51:08
Пробовал - то же самое пишет.
Ты мы мог бы по удаленному доступу показать - я все поясню. Войди в аську, там поговорим. Ок?
#10
Программирование / Kruptar
10 января 2013, 14:25:38
Вопросов больше нет.( Я вроде написал, что работаю считай первый раз в круптаре, а вы мне пишете, как уже умеющему работать. Отсутствие справки и старая статья знаний не прибавляют.
#11
Программирование / Kruptar
10 января 2013, 14:14:50

Это для тех, что не табличные ты мне говоришь, но они все равно четырехбайтные на сеге. Почему двухбайтные ты мне говоришь?


А если есть указатели, которые сгруппированы в таблицу, какие параметры надо?
#12
Программирование / Kruptar
10 января 2013, 13:39:32
А указатель, получается, будет на то место, где он передается в регистр?


Я пытаюсь добавить диапазон поинтеров тех, которые есть в одной таблице. Жму
1) Добавить поинтеры в созданной группе. Вылезает окошко начального и конечного адреса. Пытаюсь вводить в хексе - пишет, что неправильное десятичное значение. Пытаюсь в дек - вылетает.
#13
Программирование / Kruptar
10 января 2013, 01:12:29
Oraculum,  >:D  Какие поинтеры? Какие адреса указывать? Какие параметры на группу и т.д.? Конкретики, плиз.
#14
Программирование / Kruptar
10 января 2013, 01:05:06
Ууу... А я про что?) Вопрос мой прочитай: как добавить отдельно строку (поинтер)? Если можно - в картинках.
#15
Программирование / Kruptar
10 января 2013, 00:50:41
Я с ним и работаю. Но строки пожаты.
#16
Программирование / Kruptar
10 января 2013, 00:27:18
Почти первый раз работаю с круптаром.
1) Написал плагин для расжатия текстовых строк и перекодировки, подключил.
2) Строки разбросаны по всему рому (SMD). Поэтому о таблице указателей говорить не приходится. Адрес строки передается в регистр напрямую. Поэтому пока поставил все по нулям;
3) Как теперь добавить данную строку в проект?