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

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

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

Патч игры «Аладдин» для Windows 95

Тема в разделе "Мастерская", создана пользователем Val07og, 19 апр 2014.

  1. AxXxB неадекват

    AxXxB

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

    Регистрация:
    13 ноя 2006
    Сообщения:
    1.663
    Реализовал. Код на ассемблере. Теперь, как и положено, при 1 мс (нужно изменить байты по смещениям в файле 4B0E и 4B22 c 0E на 01) игра идет в 15 раз быстрее. На этом эпопею с таймером предлагаю считать оконченной)

    Также перенес "msctls_statusbar32" на место сообщения о 24-битном цвете (смещение в файле 1C5CC), которое с исправлением iunnamed теперь никогда не вызывается.
     

    Вложения:

    • ALADDINW.zip
      Размер файла:
      114,3 КБ
      Просмотров:
      110
    iunnamed и Val07og нравится это.
  2. Val07og

    Val07og

    Регистрация:
    1 апр 2008
    Сообщения:
    897
    AxXxB, а не может так быть, что у тебя видеокарта пытается выводить картинку на 2 монитора?
    Вот смотри, что получается, если экран на самом деле 512x200:

    [​IMG]
    (До зелёного - часть, которая должна быть на 1-м мониторе).

    Покрупнее,в сравнении с фоткой.
     
    Последнее редактирование модератором: 19 июл 2015
    AxXxB нравится это.
  3. AxXxB неадекват

    AxXxB

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

    Регистрация:
    13 ноя 2006
    Сообщения:
    1.663
    Val07og, очень похоже, но:
    1. Второй монитор у меня не подключен
    2. Почему именно 512?
    3. Размер черноэкранного скриншота 320х200

    Что-то чрезвычайно неправильное происходит)
     
    Val07og нравится это.
  4. Val07og

    Val07og

    Регистрация:
    1 апр 2008
    Сообщения:
    897
    AxXxB, 512, потому что рисунок совпадает 1:1, если не ошибаюсь. Подобрал.
    А вот как так получается - это вопрос очень интересный. ))

    ---------- Сообщение добавлено в 00:35 ---------- Предыдущее сообщение размещено в 00:28 ----------

    HyperSnap, возможно, берёт картинку только с 1-го монитора.
     
  5. Val07og

    Val07og

    Регистрация:
    1 апр 2008
    Сообщения:
    897
    Есть мысля: проверять, действительно ли выставился размер 320x200, и если нет - автоматом возвращаться в оконный режим.
     
  6. Val07og

    Val07og

    Регистрация:
    1 апр 2008
    Сообщения:
    897
    Сделал на основе последней версии "измеритель": нужно дождаться, пока появится счёт, и перейти по Alt+Enter в полный экран и обратно.
    Картинка должна быть примерно такой:

    [​IMG]

    08 - это глубина цвета, 0320 - размер по горизонтали, 0200 внизу - размер по вертикали.
    Код, результат: Посмотреть вложение Al95_m.7z .
    AxXxB, можешь посмотреть, сколько у тебя будет вместо 320x200x8 при этом "странном" режиме экрана?
     
    Последнее редактирование модератором: 19 июл 2015
    AxXxB нравится это.
  7. AxXxB неадекват

    AxXxB

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

    Регистрация:
    13 ноя 2006
    Сообщения:
    1.663
    Увы:
    [​IMG]

    ---------- Сообщение добавлено в 13:10 ---------- Предыдущее сообщение размещено в 13:08 ----------

    Думаю, если это глюк видеокарты, то это программным способом никак не выяснить.
     
    Последнее редактирование модератором: 19 июл 2015
    Val07og нравится это.
  8. Val07og

    Val07og

    Регистрация:
    1 апр 2008
    Сообщения:
    897
    AxXxB, а можешь в тест-экзешнике увеличить на 4 байт 0x1C29B (с BA на BE)?
    Тогда он будет выводить не ширину экрана, а DDSURFACEDESC2.lPitch - длину строки в байтах. Вот, например, 1280x1024x32.

    Может, там будет 512? Тогда получится определять "настоящую" длину буфера экрана. :)

    ---------- Сообщение добавлено в 23:59 ---------- Предыдущее сообщение размещено в 23:39 ----------

    beha_r, получается, сами звуки есть, но нет музыки, я правильно понимаю? Игра выводит музыку на MIDI устройство по умолчанию. А можно проверить, оно нормально работает - например, плееры, не использующие собственный движок для воспроизведения, могут играть MIDI?
     
  9. AxXxB неадекват

    AxXxB

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

    Регистрация:
    13 ноя 2006
    Сообщения:
    1.663
    Поменял - к сожалению, то же самое, там 320.
     
    Val07og нравится это.
  10. Val07og

    Val07og

    Регистрация:
    1 апр 2008
    Сообщения:
    897
    AxXxB, ещё вариант: может быть, SetDisplayMode выдаёт хоть какую-нибудь ошибку (хоть и меняет режим экрана)?
    Тут в счётчике выводится результат: код, Посмотреть вложение Al_SDMr.7z .
    Возможные значения.
    Можешь проверить? :blush:
     
    AxXxB нравится это.
  11. Val07og

    Val07og

    Регистрация:
    1 апр 2008
    Сообщения:
    897
    Последнее редактирование модератором: 19 июл 2015
    AxXxB нравится это.
  12. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Val07og, а чего собственно мучаться, когда у большинства мониторов есть в меню информационная опция типа Disp.Freq. которая чудно покажет и текущее разрешение и частоты ?

    Ну и полезно воткнуть после смены разрешений и вывода загаженного куска видео GetSystemMetrics (проверив и количество мониторов и разрешение и всё остальное).
     
    Val07og нравится это.
  13. Val07og

    Val07og

    Регистрация:
    1 апр 2008
    Сообщения:
    897
    Bato-San, тут вопрос, как определить из программы, какой видеорежим установился, потому что она, похоже, считает, что всё нормально - у неё 320x200x8. А на самом деле что-то странное отображается.

    И, кстати, да, надо будет ещё через GetSystemMetrics попробовать размер экрана определить.
     
  14. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Val07og, ну два простых я уже сказал. Остались сложные. Однако, что то мне подсказывает, что тут следует начать с установки размера рабочего стола в 640х480х8 и 60hz и запуска игры в таком режиме. Экспериментально, так сказать...
     
    Val07og нравится это.
  15. Val07og

    Val07og

    Регистрация:
    1 апр 2008
    Сообщения:
    897
    Bato-San, такой режим наверняка установится, но игра в нём работать не сможет - она рассчитана исключительно на 320x200.
    На самом деле, это досовская игрушка, адаптированная под винду. Её более ранние коллеги - "The Lion King" и "The Jungle Book" - вообще функии DOS используют вперемешку с Windows. :) 16-битные и 32-х.
    Придётся переписывать полностью вывод на экран, и при этом масштабировать некратно, с 200 до 480 - с палитровой картинкой некрасиво будет.

    ---------- Сообщение добавлено в 10:46 ---------- Предыдущее сообщение размещено в 10:40 ----------

    GetSystemMetrics попробовал - SM_CXSCREEN и SM_CXFULLSCREEN возвращают минимальный размер рабочего стола, т. е. 640 по горизонтали - не подходит.
     
    Последнее редактирование: 15 май 2014
    Bato-San нравится это.
  16. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Val07og, тогда следует провести проверку в виртуальной машине. Если в ней глюки отсутствуют, значит виновата не игра всё же, а драйверы и видеокарты.
     
    Val07og нравится это.
  17. AxXxB неадекват

    AxXxB

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

    Регистрация:
    13 ноя 2006
    Сообщения:
    1.663
    Восемь нуликов :(

    Предлагаю забить или полностью переделать функцию перехода в фуллскрин)
     
    Val07og нравится это.
  18. Val07og

    Val07og

    Регистрация:
    1 апр 2008
    Сообщения:
    897
    AxXxB, т. е. перечислить все режимы, и переходить в полный экран, только если есть 320x200x8?
    Всё-таки странно, что видеорежим устанавливается без ошибки, и размер экрана, с точки зрения винды, в норме.

    Bato-San, с ВМ тоже непонятно - у меня работает и вживую, и в ВМ, а у AxXxB - наоборот, ни там, ни там. :)
     
    Последнее редактирование: 15 май 2014
    Bato-San нравится это.
  19. AxXxB неадекват

    AxXxB

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

    Регистрация:
    13 ноя 2006
    Сообщения:
    1.663
    Ну, раз возвращается DD_OK, то режим поддерживается - то есть, EnumDisplayModes его вернет как поддерживаемый. Надо вообще что-то другое) Типа того, что я описывал тут: http://www.old-games.ru/forum/showthread.php?p=1096843#post1096843

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

    Наверное, это косяк видеокарты. Можно попробовать другую вставить - надо порыться у себя в хламе.
     
    Bato-San и Val07og нравится это.
  20. Val07og

    Val07og

    Регистрация:
    1 апр 2008
    Сообщения:
    897
    Это же имитация, то же самое, что развернуть окно - на старых машинах тормозить будет. Мне кажется, смысла нет.
    ...
    А если "гибрид"?
    Перейти в 640x480 и развернуть окно? :)

    > Наверное, это косяк видеокарты. Можно попробовать другую вставить - надо порыться у себя в хламе.
    Скорее, драйвера. Вряд ли видюха не поддерживает стандартный VGA режим. Не мучай комп. :)
     
    AxXxB и Bato-San нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление