Форум 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 »
  • Разное »
  • Программирование »
  • Kruptar
« предыдущая тема следующая тема »
  • Печать
Страницы: 1 ... 7 8 [9] 10 11   Вниз

Автор Тема: Kruptar  (Прочитано 192905 раз)

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

Оффлайн Dr. MefistO

  • Новичок
  • Сообщений: 16
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #200 : 09 Января 2013, 23:50:41 »
Я с ним и работаю. Но строки пожаты.

Оффлайн Oraculum

  • Magic Team
  • Сообщений: 534
  • Репутация: +11/-4
  • oraculum[гав-гав]ro.ru
    • Просмотр профиля
Kruptar
« Ответ #201 : 10 Января 2013, 00:04:17 »
Цитата: Dr. MefistO от 09 Января 2013, 23:50:41
Я с ним и работаю. Но строки пожаты.
Не в один же блок сжаты. Добавляешь поинтеры по отдельности, удобнее всего загружать список поинтеров из файла (правой кнопкой на List).

Оффлайн Dr. MefistO

  • Новичок
  • Сообщений: 16
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #202 : 10 Января 2013, 00:05:06 »
Ууу... А я про что?) Вопрос мой прочитай: как добавить отдельно строку (поинтер)? Если можно - в картинках.

Оффлайн Oraculum

  • Magic Team
  • Сообщений: 534
  • Репутация: +11/-4
  • oraculum[гав-гав]ro.ru
    • Просмотр профиля
Kruptar
« Ответ #203 : 10 Января 2013, 00:10:14 »
Цитата: Dr. MefistO от 10 Января 2013, 00:05:06
Ууу... А я про что?) Вопрос мой прочитай: как добавить отдельно строку (поинтер)? Если можно - в картинках.
Написал непонятно - сам виноват. :P
Спойлер для   :

Оффлайн Dr. MefistO

  • Новичок
  • Сообщений: 16
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #204 : 10 Января 2013, 00:12:29 »
Oraculum,  >:D  Какие поинтеры? Какие адреса указывать? Какие параметры на группу и т.д.? Конкретики, плиз.

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

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #205 : 10 Января 2013, 03:48:15 »
Цитата: Dr. MefistO от 10 Января 2013, 00:12:29
Oraculum,  >:D  Какие поинтеры? Какие адреса указывать? Какие параметры на группу и т.д.? Конкретики, плиз.
Пойнтеры найди сначала все в роме, сформируй их список в текстовом файле, потом используй в круптаре.
Параметры:
ptPointerSize = 4 вероятнее всего
ptBIG_ENDIAN = true

Оффлайн Dr. MefistO

  • Новичок
  • Сообщений: 16
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #206 : 10 Января 2013, 12:39:32 »
А указатель, получается, будет на то место, где он передается в регистр?


Я пытаюсь добавить диапазон поинтеров тех, которые есть в одной таблице. Жму
1) Добавить поинтеры в созданной группе. Вылезает окошко начального и конечного адреса. Пытаюсь вводить в хексе - пишет, что неправильное десятичное значение. Пытаюсь в дек - вылетает.

Оффлайн Oraculum

  • Magic Team
  • Сообщений: 534
  • Репутация: +11/-4
  • oraculum[гав-гав]ro.ru
    • Просмотр профиля
Kruptar
« Ответ #207 : 10 Января 2013, 13:06:27 »
Цитата: Dr. MefistO от 10 Января 2013, 12:39:32
А указатель, получается, будет на то место, где он передается в регистр?
Указатель будет на строку (=адресу строки), в хекс-редакторе код глянешь и увидишь свои указатели. Запишешь адреса всех указателей в файл и загрузишь в Круптар.
Цитата: Джинни от 10 Января 2013, 03:48:15
ptPointerSize = 4 вероятнее всего
ptBIG_ENDIAN = true
Добавлю:
ptPointerSize = 2
ptBIG_ENDIAN = true
ptAutoReference = true

Оффлайн Dr. MefistO

  • Новичок
  • Сообщений: 16
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #208 : 10 Января 2013, 13:14:50 »

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


А если есть указатели, которые сгруппированы в таблицу, какие параметры надо?

Оффлайн Dr. MefistO

  • Новичок
  • Сообщений: 16
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #209 : 10 Января 2013, 13:25:38 »
Вопросов больше нет.( Я вроде написал, что работаю считай первый раз в круптаре, а вы мне пишете, как уже умеющему работать. Отсутствие справки и старая статья знаний не прибавляют.

Оффлайн Oraculum

  • Magic Team
  • Сообщений: 534
  • Репутация: +11/-4
  • oraculum[гав-гав]ro.ru
    • Просмотр профиля
Kruptar
« Ответ #210 : 10 Января 2013, 13:45:28 »
Цитата: Dr. MefistO от 10 Января 2013, 13:25:38
Вопросов больше нет.( Я вроде написал, что работаю считай первый раз в круптаре, а вы мне пишете, как уже умеющему работать. Отсутствие справки и старая статья знаний не прибавляют.
Да писать надо понятно, что тебе конкретно надо, блин.
Цитата: Dr. MefistO от 10 Января 2013, 13:14:50
Почему двухбайтные ты мне говоришь?
Бывают 4-байтные, бывают 2-байтые.
Смотрю, ты к сообщению ещё добавил.
Цитата: Dr. MefistO от 10 Января 2013, 12:39:32
Я пытаюсь добавить диапазон поинтеров тех, которые есть в одной таблице. Жму
1) Добавить поинтеры в созданной группе. Вылезает окошко начального и конечного адреса. Пытаюсь вводить в хексе - пишет, что неправильное десятичное значение. Пытаюсь в дек - вылетает.
Если пишешь в хексе, то вроде надо h на конце (позже попр.). Вводить адреса первого и последнего поинтеров.

Оффлайн Dr. MefistO

  • Новичок
  • Сообщений: 16
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #211 : 10 Января 2013, 13:51:08 »
Пробовал - то же самое пишет.
Ты мы мог бы по удаленному доступу показать - я все поясню. Войди в аську, там поговорим. Ок?

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

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #212 : 10 Января 2013, 14:17:10 »
h вначале надо писать

Оффлайн Dr. MefistO

  • Новичок
  • Сообщений: 16
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #213 : 10 Января 2013, 14: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] показывает находящийся там байт, но присвоение не происходит - идет вылет.

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

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #214 : 10 Января 2013, 15:32:45 »
Вылетает, потому что параметры пойнтеров неправильные указаны и сами пойнтеры.

Оффлайн Dr. MefistO

  • Новичок
  • Сообщений: 16
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #215 : 10 Января 2013, 15:33:50 »
Исправил предыдущий пост, почитай.

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

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #216 : 10 Января 2013, 15:37:26 »
Потому что пытается читать за пределами рома, так как параметры пойнтеров указаны неверно. А это место не выделено в памяти.

Оффлайн Dr. MefistO

  • Новичок
  • Сообщений: 16
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #217 : 10 Января 2013, 15:38:02 »



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


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



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

[Дата добавления: 10 Января 2013, 19:11:10]
Дело было в размере массива ROM. Там макс ширина стояла WORD. Я растянул до 1MB.

Оффлайн Mefistotel

  • Пользователь
  • Сообщений: 123
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #218 : 11 Января 2013, 12:12:21 »
В аське меня найди 475891500.
Объясню всякие мелочи, типа менюшечек и общих принципов работы в Круптаре.
Спрашивать на форуме всё подряд не стоит. ;)

Оффлайн gegmopo3

  • Андроид
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • http://gegmopo3-mopoz.blogspot.com/
Kruptar
« Ответ #219 : 31 Января 2013, 20:10:46 »
Кстати, тут вспомнил кое-что)
Если обрывание строки у нас $D3.
Есть Мте( или прочее) E5D3 = 'blablabla'
То он строку обрывает после этого мте, и не показывает дальше текст после E5D3

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

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #220 : 02 Февраля 2013, 05:27:06 »
Это да. В таких случаях свой плагин нужен.

Оффлайн vitecd

  • Новичок
  • Сообщений: 4
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #221 : 21 Июня 2013, 13:36:19 »
у меня такая проблема..... поинтеры ссылаются на поинтеры, а уже они на текст. и такая же беда с графикой, какой программой можно так же красиво, как круптаром, графику "каталогизировать" ))) ?


00000000  01 02 03 40 ...
...
01020340  22 33 44 50 10 .... тут 10 это длинна в символах
...
22334450  A B C E X Y T % F D 00


можно ли круптаром "достать" текст из таких "двухуровневых" поинтеров?

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

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #222 : 21 Июня 2013, 14:19:44 »
Если пойнтеры такого же формата, как те, которые на них ссылаются, то в круптаре есть свойство ptPtr2ptr.

Оффлайн vitecd

  • Новичок
  • Сообщений: 4
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #223 : 21 Июня 2013, 17:06:55 »
и первый и второй поинтеры Long, т.е. 4 байта. но рядом со вторыми, которые непосредственно на текст указывают, есть длинна строки. пошел пробовать

Оффлайн vitecd

  • Новичок
  • Сообщений: 4
  • Репутация: +0/-0
    • Просмотр профиля
Kruptar
« Ответ #224 : 07 Июля 2013, 18:25:40 »
а что можно сделать во избежание

Код: [Выделить]
Test des fonctions
sous contr?le/00
{END}

/00/00
{END}

/00/00
{END}


/00/00
{END}

/00Checking control
functions/00
{END}

/00/00
{END}

/00Selbsttest
laufend/00
{END}


больше всего, мне не нравится

Код: [Выделить]
/00Checking control
functions/00

т.е. Kruptar очень сильно любит нечетные адреса начала строки. и "рубит" строку по первому же 00 00, очень хотелось бы... чтобы сам текст был до первого 00 00, а длинна строки соответствовала последнему, т.е. до начала следующей


[Дата добавления: 07 Июля 2013, 18:30:30]
собственно, сам дамп


Код: [Выделить]
54 00 65 00 73 00 74 00 20 00 64 00 65 00 73 00
20 00 66 00 6F 00 6E 00 63 00 74 00 69 00 6F 00
6E 00 73 00 0D 00 73 00 6F 00 75 00 73 00 20 00
63 00 6F 00 6E 00 74 00 72 00 F4 00 6C 00 65 00
00 00 00 00 00 00 00 00 43 00 68 00 65 00 63 00
6B 00 69 00 6E 00 67 00 20 00 63 00 6F 00 6E 00
74 00 72 00 6F 00 6C 00 0D 00 66 00 75 00 6E 00
63 00 74 00 69 00 6F 00 6E 00 73 00 00 00 00 00
53 00 65 00 6C 00 62 00 73 00 74 00 74 00 65 00
73 00 74 00 0D 00 6C 00 61 00 75 00 66 00 65 00
6E 00 64 00 00 00 00 00


[Дата добавления: 08 Июля 2013, 00:55:05]
можно узнать, что значат эти параметры, начиная с 3его

  • Печать
Страницы: 1 ... 7 8 [9] 10 11   Вверх
« предыдущая тема следующая тема »
  • Форум Magic Team »
  • Разное »
  • Программирование »
  • Kruptar
 

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

  • GreenUP by Neekiinh0.

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