Форум 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 ... 4 5 [6]   Вниз

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

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

Оффлайн greengh0st

  • Magic Team
  • Сообщений: 696
  • Репутация: +7/-1
  • Мы лучшие среди худших и худшие среди лучших
    • Просмотр профиля
Помощь с круптаром
« Ответ #125 : 11 Октября 2013, 21:19:20 »
Ну по идее он же все равно будет считать перенос энтером, как лишний байт или нет?

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #126 : 12 Октября 2013, 08:20:44 »
Судя по тому, что в хексе видно - лишнего байта нет. Его ж в принципе нет. Текст идет сплошняком.
Зато теперь все очень удобно, в круптаре я делаю "строки" по 16 символов, и гораздо приятнее работать. Пробелами тока вручную добивать надо до 16.

Оффлайн greengh0st

  • Magic Team
  • Сообщений: 696
  • Репутация: +7/-1
  • Мы лучшие среди худших и худшие среди лучших
    • Просмотр профиля
Помощь с круптаром
« Ответ #127 : 12 Октября 2013, 11:22:22 »
Наверное фишка в том, что если у тебя есть байт переноса, то он его подставляет при переносе строки энтером. а если нет то нет. Не знал о таком))) ну зато теперь буду знать)))

Оффлайн Rus

  • Новичок
  • Сообщений: 1
  • Репутация: +0/-0
  • Chime
    • Просмотр профиля
Помощь с круптаром
« Ответ #128 : 12 Марта 2015, 17:59:59 »
Здравствуйте.
Есть такая кодировка UTF-8, а в играх её использующих кроме указателей присутствует ещё и контроль размера сообщения. Т.е. 4 байта указатель на текст, 4 байта на размер текста, потом идентификатор или сразу след указатель и опять 4 байта на размер и т.д.
Вопрос такой.
Как должен выглядеть плагин, чтобы при работе размер пересчитывался в соответствии с изменениями указателей, или же это делается стандартными методами?(Делается, но довольно криво, нет нужных арифметический действий типа чётности размера или размера без байтов окончания и если размер указан перед указателями, то тоже косячит на первом указателе) решается плагинами... глюки в этом месте всё же есть!
Тексты вроде научился от лишних "стопбайтов" внутри кодов избавлять при помощи короткой функции считывания, а вот таких примеров не видел... Или плохо искал? (Плохо смотрел, надо было меню переменные или околопойнтерные переменные поглядеть)
Спойлер для   :
Ну и ладна, внешний фиксер справляется, но про решение в плагине всё равно было бы интересно узнать.

Так же данный плагин был бы полезен для понимания ошибки в ptrt2ptr (Slam объяснил что это работает только для указателя ссылающегося на один указатель, а я пытался применить его для указателя ссылающегося на блок указателей) , т.е. чтобы можно было не только вытаскивать текст через двойные указатели, но и складывать его обратно с изменением обоих и выравнивания для внешних указателей (кратность) 8, 16, 32.
I'm not a window cleaner (Ц)

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #129 : 12 Марта 2015, 21:13:37 »
Присоединяюсь к вопросу. Перевод Ocarina 3D из-за этого стоит уже поднялся, внешней прогой.
Про решение вопроса Круптаром все равно интересно.

Оффлайн Anton

  • Пользователь
  • Сообщений: 325
  • Репутация: +7/-0
    • Просмотр профиля
    • Zelda64rus
Помощь с круптаром
« Ответ #130 : 19 Апреля 2015, 18:52:26 »
Я так понял, никто не знает, как пересчитать размер диалога именно в Круптаре? Или это невозможно?
4 байта пойнтер на диалог, после него в четырёх байтах указан размер этого диалога, потом еще 12 байт интервал, потом следующий пойнтер, размер диалога... и т.д.

Оффлайн Guyver

  • Пользователь
  • Сообщений: 180
  • Репутация: +7/-0
  • Я НЕ ВОЛШЕБНИК - Я ТОЛЬКО УЧУСЬ...
    • Просмотр профиля
    • GUYVERperevod
Помощь с круптаром
« Ответ #131 : 06 Сентября 2018, 06:13:41 »
Нужна помощь с компиляцей любой последней версии круптара c работающей (!) функцией pnFixed. Если вдруг кто-то сможет мне помочь, то мне нужно изменить в коде:

Function TPointers.Add: PPointer;
begin
New(Result);
If Root = NIL then Root := Result Else Cur^.Next := Result;
Cur := Result;
Inc(Count);
Result^.pnPos := 0;
Result^.pnPtr := 0;
Result^.pnPtrOrig := 0;
Result^.pnParamData := '';
Result^.pnStrings := NIL;
Result^.pnFixed := False;
Result^.Next := NIL;
end;

Всего 1 строчку на это:

Result^.pnFixed := True;


И скомпилировать проект... Help!



Если такой функции в исходниках нет, то поменять


if pnFixed then
begin
TextStrings := StringsToTextStrings(pnTable2, pnStrings,
ptDestCharSize, Project);

на

if not pnFixed then
begin
TextStrings := StringsToTextStrings(pnTable2, pnStrings,
ptDestCharSize, Project);

А нижеследующие 2 строчки с not pnFixed поменять на pnFixed... Я не совсем уверен, но должно сработать. Т.е. выбирать фиксированный поинтер или нет не надо будет, и всё будет работать как мне нужно...

Оффлайн Вячеслав

  • Новичок
  • Сообщений: 7
  • Репутация: +0/-0
    • Просмотр профиля
Помощь с круптаром
« Ответ #132 : 07 Ноября 2020, 20:18:43 »
Здравствуйте.
Помогите разобраться с Круптаром )
Как правильно добавлять в проект пойнтеры, когда старший и младший байт разнесены, предполагаю что используется ptSplittedPtrs, однако мои пробы не увенчались успехом, а в мануале об этом к сожалению мало сказано.


Пример:


00012A38 | A2D2A004
000123B3 | 

[Дата добавления: 07 Ноября 2020, 20:36:15]
Здравствуйте.
Помогите разобраться с Круптаром )
Как правильно добавлять в проект пойнтеры, когда старший и младший байт разнесены ? Предполагаю что необходимо использовать ptSplittedPtrs, однако мои пробы не увенчались успехом, а в мануале об этом к сожалению очень мало сказано.


Пример #1


Адрес начало
000123A8|         A2|D2|A0|04
000123B3|         A2|B1|A0|04
000123BC|         A2|F7|A0|04


Пойнтеры D204, B104, F704 (смещение 24010) что за байты А2 и А0 перед старшим и младшим байтом пойнтера, для меня загадка, однако они не изменяются во всем роме, поэтому не сильно заботят.


Пример #2



Адрес начало
00013CC7|        03|3B|50|6B|8A|32|32|32|32|32


Пойнтеры 0332, 3В32, 5032, 6В32, 8A32 (смещение 24010) между старшим и младшим 4 байта

Оффлайн Griever

  • Magic Team
  • Сообщений: 69
  • Репутация: +14/-5
    • Просмотр профиля
Помощь с круптаром
« Ответ #133 : 08 Ноября 2020, 17:01:08 »
Ну во втором примере точно должен сработать ptSplittedPtrs. В ptInterval выставляешь 4 (количество байт между старшим и младшим байтами поинтера) и ptSplittedPtrs в True.ptPointerSize должен быть 2. Не забудь про ptBIG_ENDIAN в False.

Оффлайн Вячеслав

  • Новичок
  • Сообщений: 7
  • Репутация: +0/-0
    • Просмотр профиля
Помощь с круптаром
« Ответ #134 : 08 Ноября 2020, 21:22:43 »
Спасибо за подсказку.
Разобрался, в первом примере функция тоже работает, только при указании адреса пойнтера необходимо указывать лишь начальный адрес старшего байта и ставить интервал 2  :)

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

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

  • GreenUP by Neekiinh0.

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