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

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

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

Wing Commander IV: Цена свободы

Тема в разделе "Переводы своими руками", создана пользователем Рыжий Тигра, 8 янв 2007.

  1. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Процесс перевода игры "Wing Commander IV: Цена свободы"- в разгаре. Желающие опробовать то, что получилось, могут добраться сразу до описания перевода и ссылок на его скачивание, щёлкнув по этой ссылке.

    Желающим посоучаствовать в переводе - рекомендую: полезные для переводчика ссылки - словари, книги, статьи и прочие материалы. Пополнение копилки приветствуется!

    См. также:
    Самая свежая тестовая сборка и инструкции по её установке
    Бета-тестеры, wэлкам!
    31 дек 2016

    Upd 1:
    В связи с участившимися постами здесь "чисто для поржать" - вынужден объясниться.
    6 янв 2014

    Upd 2:
    Приглашаю желающих поучаствовать в переводе. Отозвавшиеся будут увековечены в финальных титрах. (Никаких более материальных благ, к сожалению, обещать не могу. :( )
    27 мая 2014

    Upd 3:
    Наконец удалось пробить барьер несовместимости моего перевода с версией игры от GOG!!! Желающим опробовать - wэлкам!
    2 окт 2014
     
    Последнее редактирование: 21 апр 2017
    kirik-82 нравится это.
  2.  
  3. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Всё тот же вопрос: каким боком direct3d притачать к directdraw? (Не забываем про 2d-optimized видеокарты, в которых аппаратный direct3d беден до крайности и процу придётся не вылезать из эмуляции!)

    ---------- Сообщение добавлено в 12:33 ---------- Предыдущее сообщение размещено в 12:07 ----------

    Ага, что-то примерно подходящее нарыл: mk:@MSITStore:E:\ISOS\MSDN2001\MSDN\dx8_c.chm::/directx_cpp/extras/directdraw7/ddtut_5k53.htm
    Т.е. по крайней мере понятно, из какой части dwrap'а и как можно сообщить проге, что коннект с полноэкранкой порвался. Осталась фигня - догадаться, как узнать об обрыве под opengl'ом.
     
  4. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Рыжий Тигра, данную статью я дал тебе что бы ты на русском прочёл и осознал, что именно происходит при alt-tab и что за всё отвечает сама программа и обработчики событий. Ну и механизм правильных действий по обходу проблемы.

    Директ враппер используется с одной единственной целью - обеспечить правильную цветовую гамму для windows 7.
    Для всех остальных он просто лишний.

    Про старые видеокарты вообще не понял - с ними игра и так прекрасно умела или не умела работать в оригинале. Смысла то под них оптимизировать то, что нужно для новых систем ?
     
  5. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Ну дык в mk:@MSITStore:E:\ISOS\MSDN2001\MSDN\dx8_c.chm::/directx_cpp/extras/directdraw7/ddtut_5k53.htm изложено короче (полдюжины строк исходника) и доходчивее.
    Программа отлита из бронзы и троганию руками не подлежит. :-(
    Говорыыылы-балакалы: http://www.old-games.ru/forum/showthread.php?p=1138859#post1138859 "широкий экран", "16*9"... Ты вообще хоть иногда читаешь тему дальше чем первые полторы строки последнего поста?
    Последний раз разжёвываю: dwrap.dll ценен не играми с палитрой (гораздо проще этого добиться галочкой "256 цветов" на закладке "совместимость" или вообще запуском под dosbox'ом), а возможностью правильно поставить рамку на широкоформатном дисплее.
    Чтобы работало и на них тоже. Или ты опять продвигаешь свою старую идею держать одновременно 32 раздачи по 8 гиг для всех возможных комбинаций перевода игры - языка субтитров - типа графики - формата кино - языка ввода? :-)))))))))
     
  6. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    мне плевать, для меня это не самая ценная его возможность. В отличии от гаммы и конкретно под вин7.


    да кто же те такую глупость сказал ? Эт тя, котёночек, обманули ! :D
    Ну, хотя, ты можешь попробовать путём переделки враппера заставлять программу рисовать в ноль. Победа, правда, будет пиррова. До определённой степени.

    я честно не помню - оно на них то работало или нет ? Если работало то нафиг тебе 32 раздачи, когда добавляешь конфигуратор, который будет отключать ненужные части навески, возвращая функционал дефолтному рендереру.

    С другой стороны... я как то не берусь представить себе CGA/EGA/VGA или даже Cirrus5446 работающую, как основная видеокарта в современном компе да ещё с 16:9...

    ЗЫ. Хотя твоя идея переделать DX под CGA мне нравится. :D
     
  7. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Ум-ни-ца!!!

    87d262800377e23e2f31cfb1d25bc2f8.png

    Я же ж говорю - читай из темы не только последний пост. С месяц назад я эту картинку уже давал и текстом пояснял.
    Переключатель полноэкранка-окно тебе тоже не нужен? Тогда вопрос исчерпан. Допереведу вылеты серии B, выложу как обычно всё вместе с исходниками, сможешь в них доработать палитру по вкусу. А я пока сделаю 16*9 и нативное разрешение экрана под ddraw.
     
  8. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Рыжий Тигра, если у тебя всё сделано и всё тебе понятно и вектор есть и лес уж виден с приметным дубом на цепи - чего ты тогда от мя то хочешь ?

    Чего людям надо ты делать не хочешь, а чего хочешь - людям не надо. :D

    А зачем он вообще в окне то ? Космосимы ж не ммо какое то, что бы между вордом и чаем в них играть. Хотя, если сразу в нескольких летать с поддержкой нескольких устройств ввода и многодисплейной конфигурацией...
     
  9. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    И сколько можно просить тебя читать посты, на которые отвечаешь?
    Я не делаю то, что мне, гм, не видно как проблема, а ты не делаешь то, что сам видишь как проблему:-( У тебя семёрка? Предыдущие посты читай, да? Вот где-то в таком аксепте. :-(
    На данный момент - хотя бы список winapi'шных функций, сотрудничающих с directdraw'ными методами. А в идеале - исследовать проблему и поделиться местами где что на что подправить.
     
  10. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Прикол происходит:
    Код:
    // "расписание полётов", полноэкранный режим:
    // .............
    17:17:40.218 (+ 15765) 00000748           HOOKDDD from 00477BB4: FlipToGDISurface() RET=0 (00000000); 
    17:17:40.234 (+ 15478) 00000748           HOOKDDD from 00477BB4: FlipToGDISurface() RET=0 (00000000); 
    // жмём alt-tab, отпускаем...
    17:17:40.750 (+530614) 00000748           HOOKDDS from 0047645B: Lock( [NULL], , 00525a30, ) RET=-2005532222 (887601C2); 
    // ё-пс, Lock() выдал DDERR_SURFACELOST
    17:17:40.781 (+ 16556) 00000748           HOOKDDS from 0047646D: Restore() RET=-2005532085 (8876024B); 
    // Restore() вернул DDERR_WRONGMODE
    17:17:40.781 (+   165) 00000748           HOOKDDS from 0047647B: Lock( [NULL], , 00525a30, ) RET=-2005532222 (887601C2); 
    // Lock() опять DDERR_SURFACELOST
    // игра сворачивается в трей и останавливается
    // alt-tab обратно (или выбор с трея мышом) - идёт восстановление:
    17:17:48.000 (+++++++) 00000748           HOOKDDS from 0047645B: Lock( [NULL], , 00525a30, ) RET=-2005532222 (887601C2); 
    17:17:48.015 (+ 14934) 00000748           HOOKDDS from 0047646D: Restore() RET=0 (00000000); 
    17:17:48.046 (+ 35936) 00000748           HOOKDDS from 0047647B: Lock( [NULL], , 00525a30, ) RET=0 (00000000); 
    17:17:48.062 (+ 14543) 00000748           HOOKDDS from 0047654C: Unlock( 00000000 ) RET=0 (00000000); 
    17:17:48.062 (+   200) 00000748           HOOKDDS from 0047655B: Flip( , 00000000 ) RET=0 (00000000); 
    17:17:48.062 (+   216) 00000748           HOOKDDS from 0047645B: Lock( [NULL], , 00525a30, ) RET=0 (00000000); 
    17:17:48.078 (+ 15184) 00000748           HOOKDDS from 0047654C: Unlock( 00000000 ) RET=0 (00000000); 
    17:17:48.078 (+   485) 00000748           HOOKDDS from 0047655B: Flip( , 00000000 ) RET=0 (00000000); 
    // обратно пошла нормальная работа:
    17:17:48.078 (+   456) 00000748           HOOKDDD from 00477BB4: FlipToGDISurface() RET=0 (00000000); 
    17:17:48.093 (+ 11096) 00000748           HOOKDDD from 00477BB4: FlipToGDISurface() RET=0 (00000000); 
    // .............
    Осталась фигня - из dwrap'а сбутафорить тот же набор кодов возврата. А для этого неплохо бы под opengl'ом как-то догадаться, что игру пытаются сбить с полного экрана. Делись способом!!
     
    Последнее редактирование: 24 окт 2014
  11. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Рыжий Тигра, ну у OGL с этим всё ещё проще.
    Воть. Эт первое что под руку попало. Если чего не поймёшь - спрашивай.
     
  12. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Какое слово фразы "догадаться, что игру пытаются сбить с полного экрана" читается "как сбить игру с полного экрана"?
    На пальцах: под directdraw, если пользователь пытается переключиться с задачи, IDirectDrawSource::Lock() возвращает DDERR_SURFACELOST; под opengl в том же случае функция какая? возвращает что?
     
  13. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    и кто из нас двоих невнимательный и недогадливый после этого ?
    Трудности с английским или с пониманием куска кода ?
    Суть в следующем: ОГЛ работает не так, как DX.
    Поэтому что бы узнать в каком состоянии окно надо всего то воспользоваться функциями работы с окном. То есть обработчиками его состояния.

    Что такое event сам посмотришь ?
     
  14. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    А-аа. Тогда вообще но пробле́мо: ща сгоняю в 1995-й, попрошу у ориджина на минутку глянуть сырцы игры и ткну пальцем, куда им добавить мой event и чтобы убрали свою команду сворачивания окна. :-

    И вообще, ты не чешир, ты филин. Из анекдота про мышей и трудности технической реализации. :-(
     
  15. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    какой ты нафиг тигра, если не можешь сделать элементарной для любого программиста вещи - перехватить обработку сообщений окна программы. Да ещё и признаёшься в этом. :facepalm:

    Что вообще перехватывает твой "перехватчик", если не может перехватить это ? О_О ТЬфу...

    Эт про тебя: "Видит горы и леса, облака и небеса, но не видит ничего, что под носом у него !":blum:
     
    Последнее редактирование: 25 окт 2014
  16. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    Bato-San, Рыжий Тигра, хватит выяснять отношения на форуме! Оба ведь получите предупреждения.
     
  17. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Dimouse, не разрушай рабочую атмосферу, конечно у Рыжий Тигра случаются перекосы в сторону дразнилок, но в данном случае он намекал на следующее:

    Что и верно. Хотя он мог бы и анекдот сам рассказать. И учесть, что Чешир для Алисы тем же самым занимался. И написать что то вроде:"Ты как филин из того анекдота..." :)

    А мой пост намекает в той же манере, что Тигра вполне способен сам справиться с данным вопросом, если чутка перестанет лениться и придираться не по делу (чем изрядно грешит), а проявит любознательность и почитает MSDN по означенным мной темам. А потом чутка подумает головой, хотя бы над следующим вопросом, если уж самоочевидное решение сразу не найдёт. :)
     
  18. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    Bato-San, еще раз - хватит флудить. Если есть необходимость что-то сказать в свое оправдание, то можно мне в личку писать, форум загрязнять не нужно.
     
    Genesis нравится это.
  19. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    О! Это уже что-то. Делись названием функции, которую нужно перехватить. Если это внешняя функция. Если не, если её реализация впаяна в .exe'шник, - делись методикой поиска её точки входа и/или места вызова. В крайнем случае делись выходом на "любого программиста", который это делал и для которого это "элементарная вещь", - может он сможет объяснить так, чтобы до меня наконец дошло. :-(
    Мой перехватчик перехватывает... гм... всё. Но, к сожалению, слишком послушен мне и без моего явного приказа ничего не может. :-(
    Из близкого на данный момент перехватывается GetMessage(), через него WM_ACTIVATE не проходит. Вешал код из http://www.gamedev.net/topic/588559-opengl--alt-tab/ на клавиши 1 и 2 соответственно: по верхней ветке - никакого эффекта, по нижней - потеря фокуса ввода (прога работает как ни в чём не бывало, экран занимает, на клавиатуру/мышь не реагирует, убивается только отладчиком).
    Или предложенный код работает только под win7?
    Вообще, если тебя не затруднит, предлагай примеры с пометкой "пробовал и работает" или "работает только в таких-то условиях", ОК? А если пример не из личного опыта, а свеженагугленный, то лучше давай строку, по которой гуглил, - вполне возможно, что где-то рядом найдётся что-то более для меня понятное.
    Возможно. Но это вообще распространённая багофишка: "мы не имеем понятия о некоторых вещах не потому, что наши понятия слабы, а потому что эти вещи не входят в круг наших понятий" (L); а с чем никогда не сталкивался, про то найти что-то внятное "в этих ваших DN'ах" (L) бывает что и никак. :-(
    Во всяком случае, лично моя полная тупость насчёт окон и сообщений давно уже проверена экспериментально и сомнений не вызывает. :-) Обнадёживает только то, что в конечном итоге все эти объекты и события реализуются на уровне процессора через структуры/смещения, подпрограммы и прерывания.
    А про вещи из MSDN'а понятные я обычно и не спрашиваю. :-
     
    Последнее редактирование: 26 окт 2014
  20. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Кстати, проверь - а нужен ли на win7 dwrap, нельзя ли обойтись фишкой попроще - настройками самой игры:

    edfdc674d3bde66378d01d043a3ec9ed.png

    Если сработает, то я просто добавлю команду хак-движку - ставить 16-битный вывод по умолчанию.
     
  21. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Ё-пс, фигушки - независимо от положения переключателя directdraw'ный вывод только восьмибитный. :-( (вздыхает) Будем ломать...
    Кстати, вопрос 2 All: IDirectDrawSurface::Blt() может переваливать картинку с 8-битного палитрового формата в 16- или более- битный или надо, как в старом похабном анекдоте про грузинскую механизацию, "всё вручную"?

    ---------- Сообщение добавлено в 19:56 ---------- Предыдущее сообщение размещено в 18:04 ----------

    Поправка: вывод "в статике" - на авианосце (интерьеры, подбор звена, оснащение машины и т.д.) переключается; в полёте - фиг, только восьмибитный. Так уж игра устроена. :-(
    Будем ломать! :-)
     
  22. Ogr 2 лол

    Ogr 2

    Хелпер Переводчик

    Регистрация:
    25 мар 2008
    Сообщения:
    6.372
    Рыжий Тигра нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление