|
shedevr.org.ru Группа перевода приставочных игр "ШЕДЕВР"
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Fish
Зарегистрирован: 15.11.2003 Сообщения: 425 Откуда: издалека...
|
Добавлено: Пт Мар 05, 2004 11:59 pm Заголовок сообщения: |
|
|
АнС писал(а): | Цитата: | Заметил недавно новеньких из "Мигеры". У них пока самый лучший перевод Chrono Cross'a. Советую. | Хм, это случайно не та "Мегера", которая прописалась на http://shedevr.ru ? | Как ты там говорил, АнС, "умерь свою буйную фантазию" и "совпадения случайны"? _________________ Однажды знакомый спросил - <Ну ты как?> <Да я... всё нормально. Нормально, чувак...> |
|
Вернуться к началу |
|
|
SergeyK
Зарегистрирован: 02.12.2003 Сообщения: 1278
|
Добавлено: Сб Мар 06, 2004 2:30 am Заголовок сообщения: |
|
|
АнС писал(а): | Цитата: | Заметил недавно новеньких из "Мигеры".
У них пока самый лучший перевод Chrono Cross'a. Советую. |
Хм, это случайно не та "Мегера", которая прописалась на http://shedevr.ru ? |
Ха.... Прикол... |
|
Вернуться к началу |
|
|
MaXXik
Зарегистрирован: 17.11.2003 Сообщения: 124 Откуда: р.Беларусь, г.Солигорск
|
Добавлено: Сб Мар 06, 2004 4:33 am Заголовок сообщения: |
|
|
Даааа... |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Сб Мар 06, 2004 4:48 pm Заголовок сообщения: |
|
|
Fish писал(а): | АнС писал(а): | Цитата: | Заметил недавно новеньких из "Мигеры". У них пока самый лучший перевод Chrono Cross'a. Советую. | Хм, это случайно не та "Мегера", которая прописалась на http://shedevr.ru ? | Как ты там говорил, АнС, "умерь свою буйную фантазию" и "совпадения случайны"? |
А фантазию, действительно, умерь |
|
Вернуться к началу |
|
|
Virtual_Killer
Зарегистрирован: 25.03.2004 Сообщения: 610 Откуда: Чекагинск
|
Добавлено: Вт Мар 30, 2004 10:48 pm Заголовок сообщения: |
|
|
Люди помоготе:
Как найти таблицу ширины сомволов?
Где её вообще можно искать? _________________ Не поймите меня правильно |
|
Вернуться к началу |
|
|
Fish
Зарегистрирован: 15.11.2003 Сообщения: 425 Откуда: издалека...
|
Добавлено: Ср Мар 31, 2004 1:22 am Заголовок сообщения: |
|
|
Virtual_Killer писал(а): | Люди помоготе: Как найти таблицу ширины сомволов? Где её вообще можно искать? | Да где угодно... Спроси у АнС'а, он крутой спец по этому вопросу!
И сам я с удовольствием послушаю лекцию гуру на эту тему!...
А то, и вправду, развели тут шут знает что... оффтопик сплошной...
(лично я бы искал так: попытался бы померять, разглядывая фразы в игре, ширины букв, стоящих рядом в алфавите, ну например, ijklm; штучек так 5 букв; предположим, у меня бы получились цифры 2 3 4 2 8; я бы поискал эту последовательность байт в РОМе; если бы не нашел, попробовал бы искать +1, т.е., 3 4 5 3 9, потом -1, потом +2; если и до этого места ничего бы не нашлось, присмотрелся бы к ширинам букв в надписях еще раз; потом бы попробовал другой кусочек алфавита; если бы и тут ничего не получилось... попытался бы искать через байт, т.е. (*=любой байт) 2 * 3 * 4 * 2 * 8; скорее всего, это тоже ничуть бы не помогло, и я бы пошел к шедевровцам на поклон!... А потом бы я гордо назвал себя ром-хакером и почил бы на лаврах... ) _________________ Однажды знакомый спросил - <Ну ты как?> <Да я... всё нормально. Нормально, чувак...> |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Ср Мар 31, 2004 1:25 pm Заголовок сообщения: |
|
|
Всё верно, только вот прикол - на GBA эти байты выравнены на 4, то есть искать надо 2 *** 3 *** 4 *** 2 *** 8. Помнится, я никак не мог до этого допереть - пришлось дебажить игру, пока не не разобрался, как она определяет ширину.
А в принципе, можно даже на символы не в игре смотреть, а в тайловом редакторе, только не всегда ширина соответствует реальной - в игре всё же точнее видно. |
|
Вернуться к началу |
|
|
Fish
Зарегистрирован: 15.11.2003 Сообщения: 425 Откуда: издалека...
|
Добавлено: Ср Мар 31, 2004 1:38 pm Заголовок сообщения: |
|
|
АнС писал(а): | Всё верно, только вот прикол - на GBA эти байты выравнены на 4, то есть искать надо 2 *** 3 *** 4 *** 2 *** 8. |
Вопросы!
• А чем были заполнены эти "***", интересно?
• Чем искал? У меня нет в арсенале тулзы, позволяющей делать подобный поиск... (Писал сам по другому поводу на Бейсике, но... короче я от своего продукта не в восторге. Как говорил Ходжа Насреддин: "Я придумал новое блюдо: есть хлеб, посыпанный снегом. Правда, мне и самому не понравилось...") _________________ Однажды знакомый спросил - <Ну ты как?> <Да я... всё нормально. Нормально, чувак...> |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Ср Мар 31, 2004 1:53 pm Заголовок сообщения: |
|
|
1. Нулями, конечно. Я не экспериментировал, но по-моему, это просто 32-битное число, то есть значение ширины может достигать 4 миллиардов.
Это особенности адресации армянского процессора.
2. Можно искать релатив-серчем, но тогда надо брать много букв. А вообще, раз там нули, то можно и обычным поиском. |
|
Вернуться к началу |
|
|
Axel Советник
Зарегистрирован: 14.11.2003 Сообщения: 680
|
Добавлено: Ср Мар 31, 2004 5:59 pm Заголовок сообщения: |
|
|
Fish писал(а): | ...предположим, у меня бы получились цифры 2 3 4 2 8; |
...ну это ты загнул может назовешь такие буквы, чтобы такие размеры получились...
чаще бывает, что только у пробела и таких букв как "I","i",".",","
размеры другие, а у большинства они одинаковые, скажем 6 или 7
у букв типа "W", "M" ширина может быть 8...
поэтому я бы посоветоавл поискать последовательность типа 0606060606060606(hex) или 07070707070707070707(hex)
таких мест в роме (из тех, что я рассматривал) довольно мало
и с большой вероятностью это именно ширина...
EDIT:
...или вот еще идейка - я бы, например, упаковал ширину в полубайты
раз уж она все равно шире чем 0xF быть не может...
тогда искать нужно 6666666666666666h или 777777777777777777h _________________ Всех их вместе переведём! |
|
Вернуться к началу |
|
|
Fish
Зарегистрирован: 15.11.2003 Сообщения: 425 Откуда: издалека...
|
Добавлено: Ср Мар 31, 2004 7:10 pm Заголовок сообщения: |
|
|
Axel писал(а): | я бы, например, упаковал ширину в полубайты
раз уж она все равно шире чем 0xF быть не может...
тогда искать нужно 6666666666666666h или 777777777777777777h | Бессмысленно, на этом почти ничего не сэкономишь, а процедура "распаковки" будет гиморной, тормозной, и сожрёт всё место, которое ты сэкономишь... ;)
[и тут Остапа понесло]
Да ваще, кто так жмёт?! Вот я бы сделал так: все буквы рассортировал по 4-м категориям ширины, получилось бы что-то вроде справочника "ширин":
1) узкие (i,l,j) (2...3 пикселя)
2) стандартные маленькие (а,б,в,г) (5 пикселей)
3) стандартные большие и широкие маленькие (А,Б,В,ш,ф) (7 пикселей)
4) широкие большие (Ш,W,М) (9...10 пикселей)
Следующий шаг очевиден: в одном байте кодируем ширину сразу 4-х букв, по два бита на букву. Экономия - на лицо! Во как надо! _________________ Однажды знакомый спросил - <Ну ты как?> <Да я... всё нормально. Нормально, чувак...>
Последний раз редактировалось: Fish (Чт Апр 01, 2004 1:13 am), всего редактировалось 2 раз(а) |
|
Вернуться к началу |
|
|
gottax
Зарегистрирован: 16.11.2003 Сообщения: 588 Откуда: Курск
|
Добавлено: Ср Мар 31, 2004 8:54 pm Заголовок сообщения: |
|
|
Axel писал(а): |
поэтому я бы посоветоавл поискать последовательность типа 0606060606060606(hex) или 07070707070707070707(hex)
таких мест в роме (из тех, что я рассматривал) довольно мало
и с большой вероятностью это именно ширина...
|
Опаньки, я где-то такое уже видел... в CBFD.... |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Ср Мар 31, 2004 9:56 pm Заголовок сообщения: |
|
|
Хе, вот тоже - я однажды (на СНЕС) нашёл сжатый текст по поинтерам (то есть, случайно нашёл поинтеры, и по ним узнал, где лежит текст, а так его вообще никак не найти было, я не псих, чтобы дебажить столько кода). А вот интересно, как ты по таблице ширины найдёшь сжатый шрифт? |
|
Вернуться к началу |
|
|
Fish
Зарегистрирован: 15.11.2003 Сообщения: 425 Откуда: издалека...
|
Добавлено: Чт Апр 01, 2004 12:56 am Заголовок сообщения: |
|
|
АнС писал(а): | А вот интересно, как ты по таблице ширины найдёшь сжатый шрифт? | Ну, если в дебагере... то возможно, по обращениям к этой таблице, да?
(Хотя, лично я, сколько не [beeep] с FFTA из-под отладчика, так ничего и не нашел). _________________ Однажды знакомый спросил - <Ну ты как?> <Да я... всё нормально. Нормально, чувак...> |
|
Вернуться к началу |
|
|
gottax
Зарегистрирован: 16.11.2003 Сообщения: 588 Откуда: Курск
|
Добавлено: Чт Апр 01, 2004 10:08 am Заголовок сообщения: |
|
|
АнС писал(а): | А вот интересно, как ты по таблице ширины найдёшь сжатый шрифт? |
А может шрифт располагаться сразу за таблицей ширины? Там действительно довольно интересный набор пикселей идёт, в других местах рома я ничего подобного не видел... |
|
Вернуться к началу |
|
|
Axel Советник
Зарегистрирован: 14.11.2003 Сообщения: 680
|
Добавлено: Чт Апр 01, 2004 10:13 am Заголовок сообщения: |
|
|
Fish писал(а): | Бессмысленно, на этом почти ничего не сэкономишь, а процедура "распаковки" будет гиморной, тормозной, и сожрёт всё место, которое ты сэкономишь... |
как это не сэкономишь В ДВА РАЗА меньше места нужно...
ты не забывай, что ты думаешь только об английских буковках,
а нужно думать о ВСЁМ шрифте, который содержит нааамного больше
(например только японских катакан и хираганами наберется еще на +340 штук) а если посмотреть скажем на весь Shift-Jis charset,
так там у тебя будет не менее 9000! символов...
вот и считай хранить 10кило в памяти или 5... что лучше?
а сделать пару операций типа
РАЗ - ширина = ширина AND 000F0000
ДВА - ширина = ширина sr 16
...проще некуда
Fish писал(а): | Да ваще, кто так жмёт?! Вот я бы сделал так [skipped] Во как надо! | _________________ Всех их вместе переведём! |
|
Вернуться к началу |
|
|
Axel Советник
Зарегистрирован: 14.11.2003 Сообщения: 680
|
Добавлено: Чт Апр 01, 2004 10:17 am Заголовок сообщения: |
|
|
gottax писал(а): | А может шрифт располагаться сразу за таблицей ширины? Там действительно довольно интересный набор пикселей идёт, в других местах рома я ничего подобного не видел... |
возможно всё :)
в сапфировых покемонах, например, ширины (одинаковые) лежат в двух разных местах...(если память мне не изменяет) _________________ Всех их вместе переведём! |
|
Вернуться к началу |
|
|
Fish
Зарегистрирован: 15.11.2003 Сообщения: 425 Откуда: издалека...
|
Добавлено: Чт Апр 01, 2004 12:45 pm Заголовок сообщения: |
|
|
Axel писал(а): | хранить 10кило в памяти или 5... что лучше? | Эту цифру (5 кил) нужно умножить на количество картриджей, ещё умножить на цену микросхем ROM и делить на ёмкость этих же микросхем. Вот тогда можно реально узнать, что лучше, и по чём это самое "лучше"! ;)
Впрочем, едва ли есть хоть одна игрушка, которая использует всю память картриджа, вплоть до последнего килобайта... Да такую, наверное, просто и спроектировать невозможно: ведь неизвестно заранее, сколько будут "весить" все данные игры... |
|
Вернуться к началу |
|
|
Axel Советник
Зарегистрирован: 14.11.2003 Сообщения: 680
|
Добавлено: Чт Апр 01, 2004 1:04 pm Заголовок сообщения: |
|
|
Fish писал(а): | ...ведь неизвестно заранее, сколько будут "весить" все данные игры... |
...в 90% случаев ЗАРАНЕЕ известно сколько будет занимать игра...
в том смысле, что издатель ЗАРАНЕЕ говорит на какой картридж
игра будет записана...
(спроси знающих людей на том-же GBX)
а уж если буйная фантазия разработчиков выносит их из
заранее условленных размеров, вот тогда они начинаются всякие извращения, типа сжатия всего, что попадется под руку...
и не забывай, что есть еще и ограничения ОПЕРАТИВНОЙ памяти,
и тебе там не как виндах - сколько захотел, столько и дадут...
и если в игре часто выводится текст, то тебе нужно держать
эти ширинки в оперативке...и "лишние" 5 кило в таком случае - огого сколько... _________________ Всех их вместе переведём! |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Чт Апр 01, 2004 3:50 pm Заголовок сообщения: |
|
|
Нет, таблица не хранится в оперативке, она читается прямо из РОМа на лету, как те же строки текста. Я тоже думал о таком сжатии, но это действительно не нужно - обычно сжимают, если речь идёт о многокилобайтных массивах. А этот способ точнее будет назвать не сжатие, а оптимизация. |
|
Вернуться к началу |
|
|
Fish
Зарегистрирован: 15.11.2003 Сообщения: 425 Откуда: издалека...
|
Добавлено: Чт Апр 01, 2004 7:23 pm Заголовок сообщения: "ширше не правильно, правильно ширее" |
|
|
Ну, знаете ли. А нафиг они вообще нужны, эти таблицы ширин? Раз мы такие экономные, можно прямо на ходу проанализировать букву на тему её "полноты", причём... причём практически без потери быстродействия! (нас интересует ширина не выводимой сейчас буквы, а предыдущей, так? ну так вот, выводим байт за байтом, и OR-им их с чем-нибудь. Затем, трёх-операторный циклик со сдвигом этого на-OR-енного значения в Carry-flag (INC,RRC, JRC), и - вуаля - ширина у нас в кармане!) _________________ Однажды знакомый спросил - <Ну ты как?> <Да я... всё нормально. Нормально, чувак...> |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Чт Апр 01, 2004 9:26 pm Заголовок сообщения: |
|
|
Ширина некоторых символов больше, чем их реальная ширина в пикселях. Например, ширина пробела - как ты определишь её величину? В общем, не зря придумали такую вещь, как таблица. |
|
Вернуться к началу |
|
|
Fish
Зарегистрирован: 15.11.2003 Сообщения: 425 Откуда: издалека...
|
Добавлено: Чт Апр 01, 2004 9:51 pm Заголовок сообщения: |
|
|
- всё:
АнС писал(а): | Ширина некоторых символов больше, чем их реальная ширина в пикселях. | Ой ли? Скорее наоборот, меньше. Слыхали, батенька, про кернинг?
(Шутка для тех, кто в курсе... зашел как-то по делу в типографию, приличную. А у них на двери весит объявление, мол, приём со стольки до скольки, а заголовок в нём здоровенный, и без кернинга. Когда я тамошнему манагеру за это сказал, он (верите ли?) — покраснел!)
АнС писал(а): | Например, ширина пробела — как ты определишь её величину? | Я за это уже подумал. Это единственное исключение в пропорциональном шрифте. Остальные символы, которые тоже лежат рядом со шрифтом, но не являются им (тайлики), отсеиваются еще двумя операторами ассеблера (если код символа больше чего-то там, «забить» на вычисления и считать его ширину равной размеру тайлика (и пробел, кстати, туда же можно)). Или другой вариант насчет пробела. Если через N сдвигов (в моей «программе», выше (там еще одного JNZ не хватает, и это, DEC всесто INC)) ничего не найдено — считать ширину равной, например, 7.
АнС писал(а): | не зря придумали такую вещь, как таблица. | Ну,разумеется, да! «Места занимает децл, а пользы от неё, между прочим, — целый вагон» (по Булгакову )
Просьба считать весь этот флейм чем-то вроде первоапрельской шутки. _________________ Однажды знакомый спросил - <Ну ты как?> <Да я... всё нормально. Нормально, чувак...> |
|
Вернуться к началу |
|
|
SergeyK
Зарегистрирован: 02.12.2003 Сообщения: 1278
|
Добавлено: Чт Апр 01, 2004 11:16 pm Заголовок сообщения: |
|
|
Fish писал(а): | - всё:
АнС писал(а): | Ширина некоторых символов больше, чем их реальная ширина в пикселях. | Ой ли? Скорее наоборот, меньше. Слыхали, батенька, про кернинг? |
АнС прав.
По-разному бывает.
Из своей практики.
1. Простая таблица. В тайлредакторе смотрим буквы А, В и С. Если ширину можно определить точно, то чем больше букв, тем лучше. Если вычислить точно нельзя - лучше взять пару букв. Результатов будет много, но методом экспериментов ненужные отсеиваются. Считаем количество пикселей в ширину у каждого символа (для неосведомленных - считаем в 16-ричной системе, т.е. 1 - $00). Получаем, к примеру, 06, 06 и 07. В хексэдиторе ищем либо их подряд, либо через энное количество байт.
2. Запарная таблица. Все то же самое, что и в п.1, но полученные ширины делим на 2.
3. Оригинальный случай. Не знаю, как там таблицы, но в тайлэдиторе после тайлов со шрифтом шел набор тайлов, который собирался в одну длинную линию высотой в один пиксель. Линия двухцветная. Сначала шел кусочек одного цвета, потом подрялд второго, потом опять первого и т.д. Так вот первый кусочек - это ширина первой буквы, второй - второй и т.д.
4. Бывает, что таблицы нет вообще. Т.е. программа ищет, допустим, два пробела между знаками и после них видит следующий символ.
Здесь ширину можно менять произвольно.
Может, еще что-нибудь вспомню....
PS: Первые два пункта - для тех, кто не знает ассемблер. |
|
Вернуться к началу |
|
|
Fish
Зарегистрирован: 15.11.2003 Сообщения: 425 Откуда: издалека...
|
Добавлено: Чт Апр 01, 2004 11:47 pm Заголовок сообщения: |
|
|
На варианты (2) и (3) могу сказать только одно - "тю!"... Зачем это могло понадобиться? Особенно (3)...
(4) - это как раз то, о чём я писал, автовычисление ширины, да? Это теоретический вариант, или такое действительно где-то попадалось? _________________ Однажды знакомый спросил - <Ну ты как?> <Да я... всё нормально. Нормально, чувак...> |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|