Для этого нужно отладчиком найти где программа ставит для себя эксклюзивный доступ к видеобуферу и отключить эту «фичу». Это всегда происходит гарантированно до перехода игры в полноэкранный режим. Поскольку Age of Empires работает на DirectDraw, я нашел вызов:
После чего игра хоть и с противными графическими артефактами (вся цветовая палитра нарушилась) потеряла эксклюзивный доступ к видеобуферу, и появилась возможность открывать программы поверх этого приложения (отладчик). Думаю, в случае с Direct3D будет очень похоже.
В случае же с Age of Empires я постарался как можно быстрее «прикрутить» оконный режим. Так что теперь можно отлаживать игру вообще без проблем с графикой и т.д.
Поскольку Starcraft очень похож на Age of Empires в техническом плане, сомневаюсь что есть возможность добавить поддержку новых разрешений экрана без перерисовки графики. Хотя добавить оконный режим вполне реально, при этом можно использовать библиотеку wndmode.dll — что-то мне подсказывает, что она справится.
Осталось только сделать LoadLibrary(«wndmode.dll»); в WinMain вашей игры :)
У вас все надписи квадратиками или только на кнопках? И какая локаль стоит в винде? Age of Empires II — это ANSI приложение, для его нужно чтобы в системе стоял русский язык для программ по умолчанию.
К сожалению, это так.
На американском сайте heavengames.com когда я опубликовал эту модификацию фанаты сперва обрадовались обновлениям. Потом кто-то восторженно спросил, как же я это сделал, на что я (сглупил) честно ответил, что дизассемблировал, а затем внес правки в сам исполняемый файл. На что мне ответили, что это незаконно, забанили навсегда, и попросили больше этим не заниматься. Такое впечатление что сразу было не ясно, каким образом можно сделать такую модификацию :) Если бы сам не сказал — уверен, до сих пор мог бы свободно выкладывать обновления. Довели дело до абсурда…
Надеюсь, здесь никто не будет беспокоиться о том, что мы занимаемся дизассемблированием игрушки восьмилетней давности :)
Раньше было все намного сложнее. Современные инструменты (я их перечислил в статье) значительно все упрощают. Так что при знании ассемблера достаточно запастись терпением — и много что можно будет сделать.
Несколько энтузиастов уже пыталось разработать OpenGenie, однако, пока что ничего не вышло. Мне же одному проще (и интереснее) модифицировать готовый исполняемый файл для достижения необходимого эффекта.
Простите, я не указал конкретно о какой версии идет речь. Здесь я говорю о последней версии Age of Empires II: The Conquerors 1.0C. Она требует обязательного наличия в реестре ключа CDPath, который создается при установке игры.
Мастер создания Win32 приложений практически не отличается в VS2005 и VS2008. Если ставить этот мод на VS2005 — по идее все должно работать.
По крайней мере в самом мастере они изменили пару опций по умолчанию, основные изменения касались шаблона создаваемого проекта.
Включить по умолчанию кириллицу было делом пары минут :)
На самом деле существует очень много готового C++ кода, который хотелось бы использовать, но который не рассчитан под Unicode. Приходится выбирать — переписывать то что есть или писать для ANSI…
Если проследить развитие событий за последние несколько лет — то нет.
Правда, скорость спада будет постоянно уменьшаться, это ясно. Но если падение процента будет продолжаться теми же темпами, то смерть должна быть через год :) Конечно же, этого не будет. Но что-то близкое — я на это надеюсь…
Повторюсь, пускай каждый решит для себя, потому что у каждого есть свои уши, и это значительно более весомый показатель, чем предубеждения.
К слову, при q0 битрейт получается в районе 64-80kbps.
Пожалуй, стоит сделать 2 варианта: где галочка Unicode в мастере по умолчанию включена, и где выключена :) Впрочем, этого можно добиться, добавив одну строчку в файл \VC\VCWizards\AppWiz\Generic\Application\html\1033\AppSettings.htm
Ищем функцию function InitDocument(document) и перед вызовом InitControls(); добавляем: USE_UNICODE.checked = true;
Это все :) Теперь все проекты по умолчанию будут Unicode.
Там картинка во внешнем файле. Достаточно заменить ее на любую подходящую :)
Например мой друг оформил эту обоину так: kcim.slutsk.net/ (там она index.html), может быть вам понравится его вариант :)
Нечитабелен? Достаточно его правильно отформатировать, и его читабельность ничем не будет уступать XML. Для разных целей служат разные инструменты. Для передачи объектов — JSON.
И заменил его на:
После чего игра хоть и с противными графическими артефактами (вся цветовая палитра нарушилась) потеряла эксклюзивный доступ к видеобуферу, и появилась возможность открывать программы поверх этого приложения (отладчик). Думаю, в случае с Direct3D будет очень похоже.
В случае же с Age of Empires я постарался как можно быстрее «прикрутить» оконный режим. Так что теперь можно отлаживать игру вообще без проблем с графикой и т.д.
Осталось только сделать LoadLibrary(«wndmode.dll»); в WinMain вашей игры :)
На американском сайте heavengames.com когда я опубликовал эту модификацию фанаты сперва обрадовались обновлениям. Потом кто-то восторженно спросил, как же я это сделал, на что я (сглупил) честно ответил, что дизассемблировал, а затем внес правки в сам исполняемый файл. На что мне ответили, что это незаконно, забанили навсегда, и попросили больше этим не заниматься. Такое впечатление что сразу было не ясно, каким образом можно сделать такую модификацию :) Если бы сам не сказал — уверен, до сих пор мог бы свободно выкладывать обновления. Довели дело до абсурда…
Надеюсь, здесь никто не будет беспокоиться о том, что мы занимаемся дизассемблированием игрушки восьмилетней давности :)
По крайней мере в самом мастере они изменили пару опций по умолчанию, основные изменения касались шаблона создаваемого проекта.
На самом деле существует очень много готового C++ кода, который хотелось бы использовать, но который не рассчитан под Unicode. Приходится выбирать — переписывать то что есть или писать для ANSI…
Однако, набор этих правил понравится поклонникам сайта nowww.ru :)
Правда, скорость спада будет постоянно уменьшаться, это ясно. Но если падение процента будет продолжаться теми же темпами, то смерть должна быть через год :) Конечно же, этого не будет. Но что-то близкое — я на это надеюсь…
К слову, при q0 битрейт получается в районе 64-80kbps.
Ищем функцию function InitDocument(document) и перед вызовом InitControls(); добавляем:
USE_UNICODE.checked = true;
Это все :) Теперь все проекты по умолчанию будут Unicode.
Например мой друг оформил эту обоину так: kcim.slutsk.net/ (там она index.html), может быть вам понравится его вариант :)