Форум Magic Team


 

Новости:

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)

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


  • Форум
  • Поиск
  • Вход
  • Регистрация

  • Форум Magic Team »
  • Переводы, переводы, переводы... »
  • Ромхакинг и перевод »
  • Помощь с круптаром
« предыдущая тема следующая тема »
  • Печать
Страницы: 1 2 [3] 4 5 6   Вниз

Автор Тема: Помощь с круптаром  (Прочитано 155720 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #50 : 26 Марта 2012, 17:29:44 »
Ну фиг с ними с ноликами.
Почему кусок текста выкидывает?

Коды вроде все с 000Е начинаются.

PS. такой небольшой вопрос: при вводе адреса последнего пойнтера в проекте, писать его ПЕРВЫЙ или ПОСЛЕДНИЙ байт?

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь с круптаром
« Ответ #51 : 26 Марта 2012, 17:33:50 »
Кусок текста не выкидывается. Считывание останавливается при встрече 00 00
Контрольные коды занимают 10 байт каждый.

000E0002000200040000={Tag 426}

После этого контрольного кода идёт ещё один 0000, поэтому происходит останов.

Если дальше после этого 0000 идёт ещё 000A, то это не значит, что оно является частью этой строки.
Но может быть, конечно, что некоторые коды занимают больше 10 байт. В этом тебе надо самому разобраться и добавить дополнительные условия в код плагина.

[Дата добавления: 26 Марта 2012, 17:36:42]

Цитировать (выделенное)
PS. такой небольшой вопрос: при вводе адреса последнего пойнтера в проекте, писать его ПЕРВЫЙ или ПОСЛЕДНИЙ байт?

Какой угодно.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #52 : 26 Марта 2012, 17:40:10 »
Цитата: Джинни от 26 Марта 2012, 17:33:50
В этом тебе надо самому разобраться и добавить дополнительные условия в код плагина.

 Есть, по-идее, 12 байтные. (и 8-байтные).
Вот, например, явно 12 байт. Это в другом текстовом файле игры:
Код: [Выделить]
000E00020002000400000000
000E000100040002001E002D
000E000100050004002D0000
000E000100050004003C0000
000E00010009000400000001
000E00010009000400000002
000E00010009000400000003
000E00010009000400000004
000E00010009000400000005
000E00010009000400000006
000E00010009000400000007
000E00010009000400000008
000E00010009000400000012
000E00010009000400000057
000E00010009000400000400
000E00010009000400000404
000E00010009000400000609
000E00010009000400000700
000E00010009000400000B05
000E00010009000400000C00
000E00010009000400000C01
000E00010009000400000C02
000E00010009000400000C03
000E00010009000400000C04
000E00010009000400000C05
000E00010009000400000C06
000E00010009000400000C16
000E00010009000400000D00
000E00010009000400000E12
000E00010009000400001100
000E00010009000400001200
000E000100090004000C0C00
000E000100090004000F1300
000E00010012000400000003
000E0001001200040000000D

вот 8:

Код: [Выделить]
000E000300010000
000E000200000000

Как добавлять условия, я не знаю.
Но кнопку "скомпилить" нажимать научился )

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь с круптаром
« Ответ #53 : 26 Марта 2012, 17:50:35 »
Ну вот надо проанализировать каждый код и понять по какому принципу они различаются. Например, я вижу, что во всех 12-байтных кодах после 000E идёт 0001, кроме одного, в котором 0002. Но это, возможно, ошибка ваша.
Или контрольные коды делятся на большее количество частей.
Там есть такие, в которых после 000E идут простые буквы.
Значит 000E - самостоятельный код.
А после него могут идти другие, которые начинаются с 0001, 0002 и т.д.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #54 : 26 Марта 2012, 20:03:04 »
Цитата: Джинни от 26 Марта 2012, 17:50:35
Например, я вижу, что во всех 12-байтных кодах после 000E идёт 0001, кроме одного, в котором 0002. Но это, возможно, ошибка ваша.

Цитата: Джинни от 26 Марта 2012, 17:33:50
000E0002000200040000={Tag 426} После этого контрольного кода идёт ещё один 0000, поэтому происходит останов.

Вот этот один с 0002  - это {Tag 426}, но с добавленными мной 2 байтами: 00 00.
Может, я неправ, может это и стоп-байт, эти нули. Но потом идет 000A, и сразу новый код: 000E000100000002FFFF (отображение кнопки (на которой пишется save), вроде) - {Tag 15}.

Цитата: Джинни от 26 Марта 2012, 17:50:35
Значит 000E - самостоятельный код.

 Почему-то мне кажется, что нет.
 

Тяжело это все... Эх. :)





Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Помощь с круптаром
« Ответ #55 : 26 Марта 2012, 22:00:01 »
Цитата: Anton от 26 Марта 2012, 20:03:04
Почему-то мне кажется, что нет.
Надо разбираться, а не гадать.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #56 : 26 Марта 2012, 23:17:20 »
Цитата: TrickZter от 26 Марта 2012, 22:00:01
Надо разбираться, а не гадать.

Нет там отдельного кода 000E. Не может быть...
После него всегда нули, букв нет, не знаю, где Джин увидел буквы).
Есть 8 байтные коды, 10, и 12.
Есть стоп (0000), есть перенос (000A).


Ой, и правда.  :-|
Что-то такое есть... В табличке, в районе Tag 471 и дальше.
 
 
Попробовал добавить еще две строки в плагин:
Код: [Выделить]
Str := Str + PC.A + PC.B;
Inc(PW);   
Str := Str + PC.A + PC.B;
Inc(PW);

Стало показывать надписи Save/Save and quit/ и другие.
Но кастрировало (в том файле, что в аттаче) надпись Cancel везде. (перед ней код 000E0001000200020000 {Tag 19}, его считало как 000E000100020002 и поставило стоп байт и не считало Cancel.
 
В других файлах показало пропущенные ранее куски диалогов. И там явно видно, что осталось просто поискать остальные коды и добавить в таблицу...
 
Бля...  :'(
Хотя интересно...

Где ж этот dnd1 исчез, вечно на полгода как пропадет...
К Spirit Tracks вон плагин/проект/таблицы сделал, (таблица в аттаче, если интересно посмотреть - в конце файла коды прикольные).

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь с круптаром
« Ответ #57 : 27 Марта 2012, 06:30:50 »
Цитата: Anton от 26 Марта 2012, 23:17:20
Попробовал добавить еще две строки в плагин:
Не нужно пробовать просто так что-то добавлять. Разбери просто каждый отдельный код на части и посмотри от чего зависит количество байт.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #58 : 27 Марта 2012, 08:37:38 »
Цитата: Джинни от 27 Марта 2012, 06:30:50
Разбери просто каждый отдельный код на части и посмотри от чего зависит количество байт.

Сдается мне, что не осилю я такие разборы... (

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь с круптаром
« Ответ #59 : 27 Марта 2012, 09:15:55 »
Если не попытаешься, то не осилишь конечно.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #60 : 27 Марта 2012, 09:34:25 »
Как пытаться-то )
Ну смотрю я на код, вижу циферьки.
А дальше что с этим делать...

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь с круптаром
« Ответ #61 : 27 Марта 2012, 11:15:49 »
Сравнивать.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #62 : 27 Марта 2012, 16:56:47 »
Ничего не получается...
Смотрел другой файл, вроде все нормально (с новым нашим плагином), но опять спотыкается круптар (или я) на вот такой фигне: есть код 000E000200000000 - это имя игрока = {Link}.
В основном он встречается отдельно, но иногда перед ним идет код 000E000300010000 (назовем его, скажем, {Tag 01}.
И все. Начинаются спотыкания.
Выводится: {Tag 01}/00/0E/00/02- и все. (Нули выкинуло 4 штуки нафиг, следующий за ними текст проигнорировало).
(Дальше должен идти еще кусок диалога, но его не показывает, а идет следующий блок текста).

Ну и с файлами, примеры которых есть выше (Save/Save and quit/...) ничего не изменилось. Не показывает.
И что-то слишком много кодов... Разве может быть их такое количество?

Вот только немного нашел, "на основе" кода {Tag 87} (он был в изначальной таблице, от dnd1):
И то это явно не все комбинации...

000E00010009000400
00={Tag 87}
000E00010009000400000001={Tag 8701}
000E00010009000400000002={Tag 8702}
000E00010009000400000003={Tag 8703}
000E00010009000400000004={Tag 8704}
000E00010009000400000005={Tag 8705}
000E00010009000400000006={Tag 8706}
000E00010009000400000007={Tag 8707}
000E00010009000400000008={Tag 8708}
000E00010009000400000012={Tag 8709}
000E00010009000400000057={Tag 8710}
000E00010009000400000400={Tag 8711}
000E00010009000400000404={Tag 8712}
000E00010009000400000609={Tag 8713}
000E00010009000400000700={Tag 8714}
000E00010009000400001100={Tag 8715}
000E00010009000400001200={Tag 8716}
000E00010009000400000B05={Tag 8717}
000E00010009000400000C00={Tag 8718}
000E00010009000400000C01={Tag 8719}
000E00010009000400000C05={Tag 8720}
000E00010009000400000C06={Tag 8721}
000E00010009000400000C16={Tag 8722}
000E00010009000400000D00={Tag 8723}
000E00010009000400000E12={Tag 8724}

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь с круптаром
« Ответ #63 : 27 Марта 2012, 18:25:18 »
Ц. Ну естественно он спотыкается. Плагин не завершён. Чтобы его завершить, нужно понять, что отвечает за размер кода.
Цитата: Anton от 27 Марта 2012, 16:56:47
000E0001000900040000={Tag 87}
000E00010009000400000001={Tag 8701}
000E00010009000400000002={Tag 8702}
000E00010009000400000003={Tag 8703}
000E00010009000400000004={Tag 8704}
000E00010009000400000005={Tag 8705}
000E00010009000400000006={Tag 8706}
000E00010009000400000007={Tag 8707}
000E00010009000400000008={Tag 8708}
000E00010009000400000012={Tag 8709}
000E00010009000400000057={Tag 8710}
000E00010009000400000400={Tag 8711}
000E00010009000400000404={Tag 8712}
000E00010009000400000609={Tag 8713}
000E00010009000400000700={Tag 8714}
000E00010009000400001100={Tag 8715}
000E00010009000400001200={Tag 8716}
000E00010009000400000B05={Tag 8717}
000E00010009000400000C00={Tag 8718}
000E00010009000400000C01={Tag 8719}
000E00010009000400000C05={Tag 8720}
000E00010009000400000C06={Tag 8721}
000E00010009000400000C16={Tag 8722}
000E00010009000400000D00={Tag 8723}
000E00010009000400000E12={Tag 8724}
Это уже что-то.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #64 : 27 Марта 2012, 19:58:41 »
Цитата: Джинни от 27 Марта 2012, 18:25:18
Чтобы его завершить, нужно понять, что отвечает за размер кода

Вот это я точно не осилю.
Я могу понять, за что овечает код (ну, там, пауза в диалоге это, или цвет, или код иконки кнопки и т.п...)

Цитата: Джинни от 27 Марта 2012, 18:25:18
Это уже что-то.

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



Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь с круптаром
« Ответ #65 : 28 Марта 2012, 05:51:24 »
Цитата: Anton от 27 Марта 2012, 19:58:41
Я могу понять, за что овечает код (ну, там, пауза в диалоге это, или цвет, или код иконки кнопки и т.п...)
Вот пойми и напиши различия здесь. Их не будет несколько тысяч, если понять принцип.

Оффлайн Alex

  • Пользователь
  • Сообщений: 20
  • Репутация: +0/-0
    • Просмотр профиля
Помощь с круптаром
« Ответ #66 : 28 Марта 2012, 07:41:25 »
Мы с dnd1, я так понимаю, пользовались плагином, который написал Гривер. Только его нужно еще модифицировать под большее число элементов в массиве, и я не знаю, как он с двухбайтовой кодировкой работает. Может, Джинни что-то подскажет.

Код: [Выделить]
library New_Plug;

uses
  ShareMem,SysUtils,
  Needs in 'K:\Translations\zeldaTP\Kruptar_PlugSrc\Needs.pas';

{$E .kpl}

resourcestring
 SKPLDescription = 'The Legend of Zelda: Twilight Princess';

Var
 ROM: PBytes = NIL;
 RomSize: Integer = 0;
 EndsRoot: PTableItem = NIL;
 MaxCodes: Integer = 0;
 Align: Integer = 1;

Function Description: String; stdcall;
begin
 Result := SKPLDescription;
end;

Function NeedEnd: Boolean; stdcall;
begin
 Result := True;
end;

Function GetMethod: TMethod; stdcall;
begin
 Result := tmNone;
end;

Procedure SetVariables(X: PBytes; Sz: Integer; ER: PTableItem; MC, AL: Integer); stdcall;
begin
 ROM := X;
 RomSize := Sz;
 EndsRoot := ER;
 MaxCodes := MC;
 Align := AL;
end;

Function GetData(TextStrings: PTextStrings): String; stdcall;
Var R: PTextString;
begin
 Result := '';
 If TextStrings = NIL then Exit;
 With TextStrings^ do
 begin
  R := Root;
  While R <> NIL do
  begin
   Result := Result + R^.Str;
   R := R^.Next;
  end;
 end;
end;

Function GetStrings(X, Sz: Integer): PTextStrings; stdcall;
Const
ArrayNumber = 172;// Количество массивов
MatchingArray: array[0..ArrayNumber-1, 0..9] of byte = ((6,$1A, $06, $FF, $00, $00, $00,0,0,0),
(6, $1A, $06, $FF, $00, $00, $01,0,0,0),
(6, $1A, $06, $FF, $00, $00, $02,0,0,0),
(6, $1A, $06, $FF, $00, $00, $03,0,0,0),
(6, $1A, $06, $FF, $00, $00, $04,0,0,0),
(6, $1A, $06, $FF, $00, $00, $05,0,0,0),
(6, $1A, $06, $FF, $00, $00, $06,0,0,0),
(6, $1A, $06, $FF, $00, $00, $07,0,0,0),
(6, $1A, $06, $FF, $00, $00, $08,0,0,0),

(5, $1A, $05, $00, $00, $00,0,0,0,0),
(5, $1A, $05, $00, $00, $01,0,0,0,0),
(5, $1A, $05, $00, $00, $02,0,0,0,0),
(5, $1A, $05, $00, $00, $0A,0,0,0,0),
(5, $1A, $05, $00, $00, $0B,0,0,0,0),
(5, $1A, $05, $00, $00, $0C,0,0,0,0),
(5, $1A, $05, $00, $00, $0D,0,0,0,0),
(5, $1A, $05, $00, $00, $0E,0,0,0,0),
(5, $1A, $05, $00, $00, $0F,0,0,0,0),
(5, $1A, $05, $00, $00, $10,0,0,0,0),
(5, $1A, $05, $00, $00, $11,0,0,0,0),
(5, $1A, $05, $00, $00, $12,0,0,0,0),
(5, $1A, $05, $00, $00, $13,0,0,0,0),
(5, $1A, $05, $00, $00, $14,0,0,0,0),
(5, $1A, $05, $00, $00, $15,0,0,0,0),
(5, $1A, $05, $00, $00, $16,0,0,0,0),
(5, $1A, $05, $00, $00, $17,0,0,0,0),
(5, $1A, $05, $00, $00, $18,0,0,0,0),
(5, $1A, $05, $00, $00, $1A,0,0,0,0),
(5, $1A, $05, $00, $00, $1B,0,0,0,0),
(5, $1A, $05, $00, $00, $1C,0,0,0,0),
(5, $1A, $05, $00, $00, $1D,0,0,0,0),
(5, $1A, $05, $00, $00, $20,0,0,0,0),
(5, $1A, $05, $00, $00, $21,0,0,0,0),
(5, $1A, $05, $00, $00, $23,0,0,0,0),
(5, $1A, $05, $00, $00, $29,0,0,0,0),
(5, $1A, $05, $00, $00, $2B,0,0,0,0),
(5, $1A, $05, $00, $00, $2C,0,0,0,0),
(5, $1A, $05, $00, $00, $2D,0,0,0,0),
(5, $1A, $05, $00, $00, $2E,0,0,0,0),
(5, $1A, $05, $00, $00, $31,0,0,0,0),
(5, $1A, $05, $00, $00, $32,0,0,0,0),
(5, $1A, $05, $00, $00, $35,0,0,0,0),
(5, $1A, $05, $00, $00, $38,0,0,0,0),
(5, $1A, $05, $00, $00, $39,0,0,0,0),
(5, $1A, $05, $00, $00, $3B,0,0,0,0),
(5, $1A, $05, $00, $00, $19,0,0,0,0),

(5, $1A, $05, $01, $00, $00,0,0,0,0),
(5, $1A, $05, $01, $00, $0A,0,0,0,0),
(5, $1A, $05, $01, $00, $14,0,0,0,0),

(5, $1A, $05, $03, $00, $01,0,0,0,0),
(5, $1A, $05, $03, $00, $02,0,0,0,0),
(5, $1A, $05, $03, $00, $04,0,0,0,0),
(5, $1A, $05, $03, $00, $05,0,0,0,0),
(5, $1A, $05, $03, $00, $06,0,0,0,0),
(5, $1A, $05, $03, $00, $07,0,0,0,0),
(5, $1A, $05, $03, $00, $08,0,0,0,0),
(5, $1A, $05, $03, $00, $09,0,0,0,0),
(5, $1A, $05, $03, $00, $0A,0,0,0,0),
(5, $1A, $05, $03, $00, $0B,0,0,0,0),
(5, $1A, $05, $03, $00, $0C,0,0,0,0),
(5, $1A, $05, $03, $00, $0E,0,0,0,0),
(5, $1A, $05, $03, $00, $0F,0,0,0,0),
(5, $1A, $05, $03, $00, $10,0,0,0,0),
(5, $1A, $05, $03, $00, $11,0,0,0,0),
(5, $1A, $05, $03, $00, $13,0,0,0,0),
(5, $1A, $05, $03, $00, $14,0,0,0,0),

(5, $1A, $05, $00, $00, $22,0,0,0,0),
(5, $1A, $05, $00, $00, $24,0,0,0,0),
(5, $1A, $05, $00, $00, $3C,0,0,0,0),
(5, $1A, $05, $00, $00, $3E,0,0,0,0),
(5, $1A, $05, $00, $00, $3F,0,0,0,0),

(5, $1A, $05, $05, $00, $07,0,0,0,0),
(5, $1A, $05, $05, $00, $08,0,0,0,0),
(5, $1A, $05, $05, $00, $0A,0,0,0,0),
(5, $1A, $05, $05, $00, $0B,0,0,0,0),
(5, $1A, $05, $05, $00, $0D,0,0,0,0),
(5, $1A, $05, $05, $00, $0E,0,0,0,0),
(5, $1A, $05, $06, $00, $02,0,0,0,0),
(5, $1A, $05, $06, $00, $03,0,0,0,0),
(5, $1A, $05, $06, $00, $04,0,0,0,0),
(5, $1A, $05, $06, $00, $05,0,0,0,0),
(5, $1A, $05, $06, $00, $06,0,0,0,0),
(5, $1A, $05, $06, $00, $0A,0,0,0,0),
(5, $1A, $05, $06, $00, $0B,0,0,0,0),

(6, $1A, $06, $00, $00, $08, $00,0,0,0),
(6, $1A, $06, $00, $00, $08, $01,0,0,0),
(6, $1A, $06, $00, $00, $08, $02,0,0,0),
(6, $1A, $06, $00, $00, $08, $03,0,0,0),
(6, $1A, $06, $00, $00, $08, $04,0,0,0),
(5, $1A, $06, $00, $00, $09,0,0,0,0),

(6, $1A, $06, $00, $00, $1E, $01,0,0,0),
(6, $1A, $06, $00, $00, $1F, $00,0,0,0),
(6, $1A, $06, $00, $00, $30, $00,0,0,0),
(6, $1A, $06, $00, $00, $30, $01,0,0,0),
(6, $1A, $06, $00, $00, $30, $02,0,0,0),
(6, $1A, $06, $00, $00, $30, $03,0,0,0),
(6, $1A, $06, $00, $00, $33, $01,0,0,0),
(6, $1A, $06, $00, $00, $33, $02,0,0,0),
(6, $1A, $06, $00, $00, $34, $00,0,0,0),
(6, $1A, $06, $00, $00, $37, $00,0,0,0),
(6, $1A, $06, $00, $00, $37, $01,0,0,0),
(6, $1A, $06, $00, $00, $37, $02,0,0,0),

(6, $1A, $06, $05, $00, $00, $00,0,0,0),
(6, $1A, $06, $05, $00, $00, $01,0,0,0),
(6, $1A, $06, $05, $00, $03, $00,0,0,0),
(6, $1A, $06, $05, $00, $03, $01,0,0,0),
(6, $1A, $06, $05, $00, $0C, $00,0,0,0),
(6, $1A, $06, $05, $00, $0C, $01,0,0,0),
(7, $1A, $07, $00, $00, $36, $00, $14,0,0),
(7, $1A, $07, $00, $00, $36, $00, $8A,0,0),
(7, $1A, $07, $00, $00, $36, $00, $1E,0,0),
(7, $1A, $07, $00, $00, $36, $00, $2D,0,0),
(7, $1A, $07, $00, $00, $36, $00, $3C,0,0),
(7, $1A, $07, $00, $00, $04, $00, $1E,0,0),
(7, $1A, $07, $00, $00, $04, $00, $4B,0,0),
(7, $1A, $07, $00, $00, $04, $06, $EA,0,0),
(7, $1A, $07, $00, $00, $04, $00, $2B,0,0),
(7, $1A, $07, $00, $00, $04, $00, $6D,0,0),
(7, $1A, $07, $00, $00, $04, $00, $41,0,0),
(7, $1A, $07, $00, $00, $04, $00, $21,0,0),
(7, $1A, $07, $00, $00, $04, $00, $25,0,0),

(7,$1A, $07, $00, $00, $07, $00, $00,0,0),
(7,$1A, $07, $00, $00, $07, $00, $01,0,0),
(7,$1A, $07, $00, $00, $07, $00, $02,0,0),
(7,$1A, $07, $00, $00, $07, $00, $03,0,0),
(7,$1A, $07, $00, $00, $07, $00, $04,0,0),
(7,$1A, $07, $00, $00, $07, $00, $05,0,0),
(7,$1A, $07, $00, $00, $07, $00, $06,0,0),
(7,$1A, $07, $00, $00, $07, $00, $07,0,0),
(7,$1A, $07, $00, $00, $07, $00, $08,0,0),
(7,$1A, $07, $00, $00, $07, $00, $09,0,0),
(7,$1A, $07, $00, $00, $07, $00, $0A,0,0),
(7,$1A, $07, $00, $00, $07, $00, $0B,0,0),
(7,$1A, $07, $00, $00, $07, $00, $0C,0,0),
(7,$1A, $07, $00, $00, $07, $00, $0D,0,0),
(7,$1A, $07, $00, $00, $07, $00, $0E,0,0),
(7,$1A, $07, $00, $00, $07, $00, $0F,0,0),
(7,$1A, $07, $00, $00, $07, $00, $10,0,0),
(7,$1A, $07, $00, $00, $07, $00, $11,0,0),
(7,$1A, $07, $00, $00, $07, $00, $12,0,0),
(7,$1A, $07, $00, $00, $07, $00, $13,0,0),
(7,$1A, $07, $00, $00, $07, $00, $14,0,0),
(7,$1A, $07, $00, $00, $07, $00, $15,0,0),
(7,$1A, $07, $00, $00, $07, $00, $16,0,0),
(7,$1A, $07, $00, $00, $07, $00, $17,0,0),
(7,$1A, $07, $00, $00, $07, $00, $18,0,0),
(7,$1A, $07, $00, $00, $07, $00, $19,0,0),
(7,$1A, $07, $00, $00, $07, $00, $1A,0,0),
(7,$1A, $07, $00, $00, $07, $00, $1B,0,0),
(7,$1A, $07, $00, $00, $07, $00, $1C,0,0),
(7,$1A, $07, $00, $00, $07, $00, $1D,0,0),
(7,$1A, $07, $00, $00, $07, $00, $1E,0,0),
(7,$1A, $07, $00, $00, $07, $00, $1F,0,0),
(7,$1A, $07, $00, $00, $07, $00, $2D,0,0),

(7,$1A, $07, $00, $00, $04, $00, $00,0,0),
(7,$1A, $07, $00, $00, $04, $00, $05,0,0),
(7,$1A, $07, $00, $00, $04, $00, $2D,0,0),
(7,$1A, $07, $00, $00, $04, $00, $32,0,0),
(7,$1A, $07, $00, $00, $04, $00, $3C,0,0),
(7,$1A, $07, $00, $00, $04, $00, $0F,0,0),
(7,$1A, $07, $00, $00, $04, $00, $19,0,0),
(7,$1A, $07, $00, $00, $04, $00, $14,0,0),
(7,$1A, $07, $00, $00, $04, $00, $0A,0,0),

(6,$1A, $07, $00, $00, $05, $00,0,0,0),
(6,$1A, $07, $FF, $00, $01, $00,0,0,0),
(7,$1A, $09, $03, $00, $00, $00, $00,0,0),
(9,$1A, $09, $05, $00, $09, $00, $00, $00, $C8),
(9,$1A, $09, $05, $00, $09, $00, $00, $03, $E8),
(9,$1A, $09, $05, $00, $09, $00, $00, $07, $D0),
(9,$1A, $09, $00, $00, $25, $00, $00, $00, $00),
(9,$1A, $09, $00, $00, $25, $00, $00, $00, $01),
(9,$1A, $09, $00, $00, $28, $00, $00, $01, $0E));
//Нулевой элемент последовательности содержит ее длину.  Десять знаков в каждой последовательности взяты просто с запасом


Var
B, i, j: byte;
Identity: boolean;
ControlArray: array[0..9] of byte;// C запасом
begin
 Result := NIL;
 If (X >= RomSize) or (X < 0) then Exit;
 New(Result, Init);
 With Result^.Add^ do
  begin
  Str:='';
Repeat
 B := ROM^[X];
 For j := 0 to ArrayNumber-1 do
 Begin
  Identity:= true;
  For i := 0 to MatchingArray[j, 0]-1{-1, потому что длина задана от единицы} do
  Begin
   ControlArray[i] := ROM^[X + i];
   If ControlArray[i] <> MatchingArray[j, i+1]{+1 потому что нулевой - длина} then Identity := false;
  End;
  If Identity = true then break; // Если хоть одна последовательность совпала, дальше не ищем
 End;
 If B = 0 then
 Begin
  Str := Str + Char(B);// Сохраняем ноль в скрипт и выходим
  Break;
 End;
 If Identity = true then
 begin
  For i := 0 to MatchingArray[j, 0]-1 do  Str := Str + Char(ControlArray[i]); //В j сохранился номер совпавшей последовательности
  X := X + MatchingArray[j, 0]-1;
 end
 Else Str := Str + Char(B);
 Inc(X);
Until False;
 end;
end;

exports
 GetMethod,
 SetVariables,
 GetData,
 GetStrings,
 DisposeStrings,
 NeedEnd,
 Description;

end.


Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь с круптаром
« Ответ #67 : 28 Марта 2012, 08:07:39 »
Мне уже нечего подсказывать. Нет смысла загружать по огромному списку кодов, если можно сделать проще, проанализировав эти коды, и написать короткую функцию считывания.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #68 : 28 Марта 2012, 10:48:17 »
Цитата: Джинни от 28 Марта 2012, 05:51:24
Их не будет несколько тысяч, если понять принцип.

Ну какой там принцип... По возрастающей идут, после 000E...

Просмотрел, вот инфа, если это вообще будет полезно...

Спойлер для   :
000F 0001 000F - неизвестно, иногда встречается перед именем игрока.

000E 0002 0000 0000 - имя игрока/файла сохранения

000E 0000 0003 0002 000x - (х= от 0 до С) - начало выделения цветом,
000E 0000 0003 0002 FFFF - конец выделения цветом

Отображение плашек ("кнопок") с выбором ответов  (save, cancel, yes, no и т.д.):

000E 0002 0002 0004 0000 0000 - неизвестно, иногда встречается перед выбором ответов
(перед "пропадающими" надписями save/save and quit/......)

000E 0001 0000 0002 FFFF <- похоже, что всегда идет первым перед всеми вариантами ответа.
000E 0001 0001 0002 0000
000E 0001 0001 0002 FF00
000E 0001 0001 0002 FFFF
000E 0001 0002 0002 0000 <- вроде бы плашка еще и с иконкой кнопки "B"
000E 0001 0002 0002 FFFF

000E 0001 0003 0002 0000 - неизвестно
000E 0001 0003 0002 FFFF - неизвестно

000E 0001 0004 0002 xxxx - похоже на паузу в диалогах. xxxx = цифры 0001 до 0054, всего 16 позиций.
естьи 12 байтные - 000E 0001 0004 0002 xxxx хххх

000E 0001 000A 0004 FFFF 00CD - встречается перед диалогами

000E 0001 0005 0004 xxxx - всегда в конце некоторых диалогов, перед стоп-байтом.
(xxxx = цифры от 0000 до 00DC, всего 28 позиций.)

000E 0001 0006 0002 xxCD - похоже на паузу в диалогах. xx = 00, 01, 03, 04, 05, FB, FC, FD, FE, FF

000E 0001 0007 0004 0000 - неизвестно.
000E 0001 0007 0004 000E - неизвестно.
000E 0001 0007 0004 2800 - неизвестно.
000E 0001 0007 0004 FF00 - неизвестно.


000E 0001 0008 0002 00CD - перед надписями на табличках (перед домами NPC, например),
также в одном из диалогов встретился...

000E 0001 0008 0002 01CD - неизвестно.
000E 0001 0008 0002 02CD - неизвестно.
000E 0001 0008 0002 FECD - неизвестно.
000E 0001 0008 0002 FFCD - неизвестно.


000E 0001 0009 0004 xxxx - перед некоторыми диалогами. xxxx = от 0000 до 332A, кодов около 200 или больше (не все

нашел).
000E 0001 0009 0004 xxxx xxxx (11 и 12 байты от 0000 до 1300 (а может и больше).

000E 0001 000A 0004 xxxx |
000E 0001 000B 0004 xxxx | -> в диалогах, xxxx = от 0002 до FFFF, 18 штук.
000E 0001 000C 0004 xxxx |

000E 0001 000D 0002 19xx - всего два кода, xx= 00 и 06
000E 0001 000F 0000 0000

000E 0001 0011 0002 xxCD  - неизвестно, xx= от 01 до 09

000E 0001 0012 0004 0000 - неизвестно.
000E 0001 0012 0004 0000 0001 - неизвестно.


000E 0002 0001 0002 xxxx - коды названия предметов.  xxxx = от 0001 до 00C7.

Пример диалога выглядит так (как склонять - х.з...):

You got the {Color 6}{Tag 357}{END_COLOR}! The hefty
capacity of this wallet allows you to store
up to {Color 1}500 Rupees {END_COLOR}in it!

Непосредствено названия предметов идут списком ниже в этом же файле.
Они же используются и как заголовок с названием предмета в инвентаре.
С заглавной буквы, естественно.

14 байт! - 000E 0002 0003 0006 0000 0000 00CD - После You caught/You got - ловля насекомых.
Название насекомого: 000E 0003 0004 0002 xxCD, где xx = от 01 до 0F.


000E 0002 0004 0002 xxCD - иконки кнопок джойстиков, курсора... xx = от 01 до 1A

Всего пару раз встречаются, только в одной локации (лес, вроде бы):
000E 000E 0001 0008 0002 01CD
000E 000E 0001 0008 0002 FECD


Вот еще таблица на всякий (коды там еще не все, а некоторые может вообще неправильные...)

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь с круптаром
« Ответ #69 : 28 Марта 2012, 11:27:27 »
Цитата: Anton от 28 Марта 2012, 10:48:17
000E 0000 0003 0002 000x - (х= от 0 до С) - начало выделения цветом,
000E 0000 0003 0002 FFFF - конец выделения цветом
После 000E бывает 0000?

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #70 : 28 Марта 2012, 11:29:42 »
Цитата: Джинни от 28 Марта 2012, 11:27:27
После 000E бывает 0000?

Да, в кодах, отвечающих за выделение цветом.

[Дата добавления: 28 Марта 2012, 19:38:24]
Так что, Джин, поможешь доделать плагин?

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь с круптаром
« Ответ #71 : 29 Марта 2012, 07:08:34 »
Цитата: Anton от 28 Марта 2012, 11:29:42
Так что, Джин, поможешь доделать плагин?
Угу, только слово "джинн" пишется с двумя "н". А мой ник написан над аватаркой.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #72 : 29 Марта 2012, 08:41:51 »
Цитата: Джинни от 29 Марта 2012, 07:08:34
Угу, только слово "джинн" пишется с двумя "н". А мой ник написан над аватаркой.

Извини, Джинни. )
Очень жду помощи.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #73 : 30 Марта 2012, 09:22:17 »
Просмотрел еще тексты насчет кода 000E0002000200040000 (после которого шла остановка и не выводились надписи save/save and quit/cancel)

Нашел еще три комбинации. Коды-таки 12 байтные
000E00020002000400000000 - это "наш" код, после него идет 000A и следующий.

и вот еще три:
000E00020002000400000001
000E00020002000400000002
000E00020002000400000003

После них идет или сразу следующий 000E, или 000A (перенос).
В основном они перед выбором ответов. Но также код 000E00020002000400000000 встречается посреди предложения в диалогах, типа так:
"Master, your current selection of pouch items is 000E00020002000400000000".

Мне уже снятся эти 000E...



[Дата добавления: 30 Марта 2012, 15:11:21]
Хэлп...

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Помощь с круптаром
« Ответ #74 : 31 Марта 2012, 07:27:02 »
Цитата: Anton от 30 Марта 2012, 09:22:17
Хэлп...
Надо говорить "хэрупу" :D

  • Печать
Страницы: 1 2 [3] 4 5 6   Вверх
« предыдущая тема следующая тема »
  • Форум Magic Team »
  • Переводы, переводы, переводы... »
  • Ромхакинг и перевод »
  • Помощь с круптаром
 

  • SMF 2.0.12 | SMF © 2011, Simple Machines
  • XHTML
  • RSS
  • Мобильная версия

  • GreenUP by Neekiinh0.

Размер занимаемой памяти: 2 мегабайта.
Страница сгенерирована за 0.115 секунд. Запросов: 73.