1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Sega Saturn: что было

Тема в разделе "Приставочный уголок", создана пользователем Кишмиш, 9 фев 2014.

  1. paul_met

    paul_met

    Регистрация:
    9 ноя 2008
    Сообщения:
    126
    Да никаких тайн тут нет. Как было сказано выше, всё стандартное:
    • Kruptar - для редактирования текста;
    • TileMolester или CrystalTile2 для графики;
    • CDMage для вставки файлов обратно в образ (если не требуется пересборка образа);
    • SSIG для генерации кода инструкций процессора SH2;
     
    Кишмиш и Gerhalt нравится это.
  2. Gerhalt Saturn Addict

    Gerhalt

    Регистрация:
    23 ноя 2016
    Сообщения:
    3.927
    А в каком случае может возникнуть такая необходимость? Разве CDMage с этим не справится?
    Кстати, а не является ли таковым тот кастомный образ Кастлы от китайского умельца?
     
  3. paul_met

    paul_met

    Регистрация:
    9 ноя 2008
    Сообщения:
    126
    Если нужно расширить файл, CDMage тут не поможет. Любые серьёзные модификации с добавлением новых файлов или с увеличением размера старых файлов предполагают пересборку образа.
     
  4. Gerhalt Saturn Addict

    Gerhalt

    Регистрация:
    23 ноя 2016
    Сообщения:
    3.927
    .......которую на сей раз (вместо CDMage) выполняет.....? CDRWin авторства GondenHawk?
     
  5. paul_met

    paul_met

    Регистрация:
    9 ноя 2008
    Сообщения:
    126
    Да можно собрать образ любой прогой, которая умеет создавать стандартный ISO9660. Главное данные IP оригинального диска в заголовок образа поместить.
     
  6. Scorp Никто и звать меня никак

    Scorp

    Регистрация:
    21 апр 2005
    Сообщения:
    2.955
    Нет ничего специфичного в ромхакинге (в плане принципы у любого хакинга одинаковые - что ты на NES хачишь, что на PS2). Короче стыдно показывать, это единственное объяснение (ладно бы ты там реально байты правил без SSIG). Вот поэтому так мало людей этим занимается - сидят как сычи, а новички не знают, как это делается и с чего начать и как лучше сделать. Были бы нормальный подход - как например у этого товарища - dreambottle/R11-psp-english - то я уверен, было бы куда больше интереса к этому. А то новички не могут, а деды не хотят, а потом и уходят/дохнут физически. Всем от этого плохо. Задумайтесь над этим.
     
    Последнее редактирование: 11 ноя 2020
  7. paul_met

    paul_met

    Регистрация:
    9 ноя 2008
    Сообщения:
    126
    Это похоже на какие-то провокации обиженного на всех человека. Что стыдно показывать то? Качество хакинга показано переводе. Чтобы его оценить, достаточно поиграть (и если угодно, сравнить с оригиналом). Писать доки для пары-тройки дилетантов я смысла не вижу (да и времени на это нет). Кто действительно интересуется, тот спросит о конкретной вещи. Новички должны освоить какую-то базу самостоятельно (почитать доки, потренероваться), а не ныть, что им никто ничего не разжёвывает и не выкладывает готовый код.
     
    Grongy и Gerhalt нравится это.
  8. Scorp Никто и звать меня никак

    Scorp

    Регистрация:
    21 апр 2005
    Сообщения:
    2.955
    Я так и не вижу в этих словах причины, почему ты не выкладываешь исходный код тех же VFW, фиксов и сборщики. Что, сопрут что ли? Или застремают? Чего бояться-то? Мне интересно смотреть чужие сурс-коды и что-то новое для себя узнавать, например. Уверен, что я не один такой, гитхаб, гитлаб и битбакет на этом стоят.
     
    Gamerun нравится это.
  9. paul_met

    paul_met

    Регистрация:
    9 ноя 2008
    Сообщения:
    126
    Что за человек? Я же русским языком говорил выше - никакого исходного кода в том виде ,в котором его можно выложить на гитхабе нет, только модификация уже существующего кода, а не что-то написанное с нуля. Ассемблер - это тебе не язык высокого уровня, его не нужно компилировать. Зачем мне что-то выкладывать, если и так весь код под носом и виден в отладчике, и оттуда его может любой понимающий в асме вытащить (скомуниздить, если угодно) без проблем.
     
    Последнее редактирование: 11 ноя 2020
  10. Scorp Никто и звать меня никак

    Scorp

    Регистрация:
    21 апр 2005
    Сообщения:
    2.955
    Ассемблерный текст конечно же нужно компилировать, он не в виде текста типа LDC R1,SR в памяти лежит, перевод текста в байты и есть компиляция. Твой SSIG и есть упрощенный компилятор одной инструкции. Тебе оставался последний шаг - загружать текст инструкций из файла последовательно, выдавая байты на выходе и получился бы примитивный ассемблер для SH2.

    Вон например асм-патчи из репозитория выше dreambottle/R11-psp-english
    Как видишь, тут как раз как ты говоришь - модификации буквально пары байт в разных местах. Прекрасно выкладывает на гитхаб.

    Да и у тебя небось тоже не в виде байт лежит, а текстом, как минимум себе для понимания того же VFW (хотя там просто таблица с размерами и патч ширины, наверное). Но позиция понятна, да, идите лесом, кому надо - берите сравнивайте байты с оригиналом и понимайте, если что-то поймете.

    Кстати судя по вот этому SaturnSDK/Saturn-SDK-GCC-SH2 ты можешь тупо собрать себе GCC с поддержкой Сатурна и там писать хоть на асме, хоть на си. Но я, конечно, не проверял.
     
    Последнее редактирование: 12 ноя 2020
  11. paul_met

    paul_met

    Регистрация:
    9 ноя 2008
    Сообщения:
    126
    Наконец-то ты уловил суть в общих чертах. Для человека, который понимает принцип VWF и разбирается в асме, никакой код в отдельном виде не нужен. Тут всё зависит только от игры. Нужно понять, как выводится текст и где точка входа в процедуру с шагом вывода символов на экран. Если не смог с этим разобрать, никакой код VWF тебе не поможет.
     
  12. Gerhalt Saturn Addict

    Gerhalt

    Регистрация:
    23 ноя 2016
    Сообщения:
    3.927
    @Scorpion ZS 256, @paul_met, мужики, объясните плиз чайнику на пальцах в чём же фишка этого пафосного VFW? :baby:
    Вот мне кажется, что алгоритм отображения текста прям очень прост: код игры тупо черпает буквы из графического файла-таблицы с алфавитными символами, либо из ещё какого-то стандартного файла шрифта, что легко опознаётся кодом игры. Вывод простого текста на экран - это же базовый уровень работы чуть ли не любого девайса. Оттогг и непонятно чем отображение этого вашего VFW будет отличаться от показа какогонить дефолтного/нативного? :hmmm:
     
  13. R4kk00n Benched arcade playa

    R4kk00n

    Модератор

    Регистрация:
    28 мар 2005
    Сообщения:
    9.195
    @Gerhalt, [секрет в том, что vfw — это video for windows]
     
  14. Gerhalt Saturn Addict

    Gerhalt

    Регистрация:
    23 ноя 2016
    Сообщения:
    3.927
    @R4kk00n, ахах видео фор шиндоус фор Сатурн! :D
     
    Starik_2005 нравится это.
  15. paul_met

    paul_met

    Регистрация:
    9 ноя 2008
    Сообщения:
    126
    VWF - Variable Width Font (шрифт переменной ширины). Это когда каждый символ имеет свою ширину и плотно прилегает к друг другу (с постоянным промежутком в пару пикселей). Японские глифы, как правило, постоянной ширины (обычно 16 пикселей в старых играх) и они выводятся с одинаковым шагом (моноширинный шрифт). В латинице или кириллице моноширинность смотрится некрасиво, так как между символа получаются промежутки разного размера. К тому же строка в таком случае занимает много ценного места на экране. Локализаторы 90-х обычно забивали на это дело и просто делали все символы уже (обычно 8 пикселей для латиницы). Но чтобы сделать по красоте и убрать эффект моноширинности, признаком хорошего тона считается поддержка VWF.
     
    Gerhalt нравится это.
  16. Gerhalt Saturn Addict

    Gerhalt

    Регистрация:
    23 ноя 2016
    Сообщения:
    3.927
    @paul_met, Паш, но ведь с таким шрифтом сложнее делать разметку. В смысле, координаты каждого отдельного символа будут отличаться. Стандартная сетка ведь проще, где все символы размещены на идентичной дистанции друг от друга. Плюс остаётся запас для символов верхнего регистра (заглавные буквы), хотя пожалуй проще без них.
    И вот касательно шрифтонесущего ресурса: это картинка или что-то другое?
     
  17. Scorp Никто и звать меня никак

    Scorp

    Регистрация:
    21 апр 2005
    Сообщения:
    2.955
    В смысле, какую разметку-то? Текст идёт текстом, начало начинается там же, где и раньше, так что проблемы с выводом никаких. Обычно подгоняются только менюшки/интерфейс, когда перевод не влезает. В случае с Сатурном шрифт это скорее всего текстура с буквами 16x16 (вряд ли иероглиф можно запихать в меньшее число пикселей), ну и маппинг где-нибудь лежит в коде, который код буквы в координаты на текстуре трансформирует. Далее игра оттуда копирует текст на экран, потом передвигает указатель куда копировать следующий символ вперед на ширину символа (в оригинале фиксированная, в переводе вариативная, посчитанная по коду символа), продолжать пока текст не кончится.

    @paul_met вот, то ты говоришь, кому это надо, а то рассказываешь кому не надо про реализации :) Я давно уловил, что тебе не хочется ничего рассказывать про код по тебе только известным причинам, а вариант уровня "положи сурсы, я сам разберусь" тебе не нравится (да, я помню, что у тебя их нет, но я в этом не верю, выше писал почему). Ну порадуй любопытных, нарисуй картинки из дебаггера с пояснениями "вот тут я обнаружил ширину" "вот тут я пофиксил вылезающие за рамку опции" "пришлось добавить второй вид шрифта поуже, один не влазил в менюшки" "тут я добавил автоперенос строки по достижении конца экрана" (делал кстати такое? или переводы строк вручную расставляешь). Раз уж ты всё равно столько времени на эту болтовню потратил уже :)

    Кстати, и раз про это разговор зашел. Вот предположим я новичок (так и есть), который хочет че-нить там изучить (а вот это не факт, но прочитать было бы занятно). Мне соответственно надо инструменты с хорошим дебаггером (ну чтобы мог хотя бы точки остановки на чтение/запись памяти ставить) и с графическим дебаггером. Ну и какая-то понятная человеческая объяснялка, как там что работает, как вывод графики фигачит (небось какой-то акселератор есть, не напрямую же в видеопамять копируют), как это всё программируется. Поделись ссылочками на данную информацию.
     
    Последнее редактирование: 13 ноя 2020
  18. Gerhalt Saturn Addict

    Gerhalt

    Регистрация:
    23 ноя 2016
    Сообщения:
    3.927
    @Scorpion ZS 256, разметка строго обязательна: это же банальные координаты размещения символов на экране. Без этого может быть элементарное наслоение одного на другое и как следствие - нечитабельность. Вот мне и любопытно как это устроено. То есть если в игре априори рассчёт на моноширинный шрифт (кандзи), то в случае деджапа и переключения на vwf не будет ли доп.проблем, связанных как раз с пресловутым наслоением? Или возможно код игры сам производит автофикс с поправкой на координаты буквы в ресурсе (как ты выразился "текстуре")? :hmmm:
    Впрочем, допускаю, что это сильно частный случай, зависящий от очень конкретной игры, и выясняется он искл.посредством дебага с последующей правкой.
    Быть может Пашка поведает как это работает конкретно в Линкл Ливер? :blush:
     
  19. Scorp Никто и звать меня никак

    Scorp

    Регистрация:
    21 апр 2005
    Сообщения:
    2.955
    Ну и какая тут разметка? Предположим игра печатала текст например так: printXY('Hello', 10, 15) => устанавливает координаты пойнтера экрана 10x 15y и копирует туда 16x16 (это мета-вариант, естественно в игре так не будет) квадрат из текстуры (текстура с альфа-каналом обычно, то есть прозрачный фон), потом добавляет 16 к X координате, копирует вторую букву и так пока буквы не кончатся. Супа-хака внедряется в "добавляет 16 к X" и меняет 16 на ширину обычного символа с отступом. И всё, больше ничего не меняется в общем случае и всё нормально выводится. Пример естественно мета, в реальности может быть любой вариант, и куча мелких текстур букв, и одна гигантская текстура текста (например Steins;Gate для PS3 или Cartagra для PS2), несколько текстур для букв (например в Персона 2 штук 20 этих текстур, причем в каком-то рандомном порядке, а не в shift-jis), буквы в биосе (PSP и еще у кого-то часто использовалось, забыл, у Дримкаста может), просто внешний нормальный файл шрифта типа TTF и дериватов (это у всего от PS2 и выше, где нормальная файловая система есть и нет проблемы с памятью как на PS1), просто буквы воткнуты где место осталось разными кусками (для NES/SNES/MD частый вариант), буквы еще в каком-нибудь месте, но всё это интересно только для перерисовывания/замены алфавита, а для VFW ничего не меняется, т.к. всё пляшет от ширины буквы.
     
    Последнее редактирование: 13 ноя 2020
  20. Gerhalt Saturn Addict

    Gerhalt

    Регистрация:
    23 ноя 2016
    Сообщения:
    3.927
    @Scorpion ZS 256, а где содержатся данные о ширине символа? Ну или как код игры знает про отступ?
    В случае с чем-то постоянным это всё ясно, НО я ведь конкретно про символы с разной шириной. Вот простой пример: допустим я печатаю не норм текст, а спамлю априори узким символом типа llllllllll или там iiiiiiiiiiiii или многоточиями. Должен же быть расчёт на такой выпендрёж, не?
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление