Выкладываю
на суд общественности результат своей работы - первых героев меча и
магии, которые запускаются на КПК как "родное" приложение.
Это не
эмуляция, не портирование и не переписывание героев с нуля. Это -
результат работы статического рекомпилятора из x86 в данном случае на
ARM. Другими словами, это результат работы моей утилиты,
преобразовавшей каждую команду х86 процессора в соответствующий набор
инструкций процессора КПК. Плюс некоторые вспомогательные библиотеки. А
значит, поведение "героев" - идентично десктопной версии, файлы данных,
сейвы, читы и глюки - идентичны.
Если кто-то не знает, что из себя представляют "герои" - Вам сюда:
http://ru.wikipedia.org/wiki/Heroes_of_Might_and_Magic_IУстановка и запуск:- распаковать архив:
http://rapidshare.com/files/284227894/Heroes.rar в любой каталог на КПК. Запускать файл HeroesW.exe. Архив содержит все необходимые файлы для игры.
По
поводу легальности: чтобы с чистой совестью играть в данную версию
героев на КПК - Вы должны иметь купленную версию первых героев для
Windows 95, так как все необходимые файлы взяты оттуда.
Данный
билд поддерживает устройства с Windows Mobile 5 и выше (как-нибудь
пересоберу и под 2003, пока руки не доходят). Игра использует
масштабирование картинки под режим экрана КПК, соответственно должна
запуститься на QVGA/VGA/WVGA/квадратных экранах. Я тестировал на VGA,
поэтому прошу отписать владельцев не-VGA устройств по поводу
работоспособности. Требования по памяти - точно не считал, думаю
свободных 20 мб памяти должно хватать. У меня на 128 мб оперативки
герои запускаются и работают на ура, поэтому о результатах запуска на
других девайсах так же прошу отписать.
Клавиатура в игре не
эмулируется, поэтому если кому понадобится, например для ввода имени
сейв файла - необходимо назначить вызов наэкранной клавиатуры на кнопку
КПК, или пользоваться аппаратной клавиатурой (у кого есть). В принципе,
для игры клавиатура и не нужна.
Известные глюки:- Так
как оригинальная версия героев поддерживает сетевую игру только через
Netbios, которого на КПК нет - то выбор сетевой игры приведет к вылету
по ошибке. Желающие, могут попробовать установить блютус соединение с
другими КПК через COM порт (игра поддерживает COM1-COM4), но сдается
мне что данный вариант работать не будет. Хотя если у кого получится
мультиплеер через блютусовский СОМ-порт - пишите
-
Звуки в игре работают корректно. Музыка - отсутствует (так как оригинал
ипользует CD аудио). При переключении громкости CD-музыки произойдет
вылет с ошибкой (такое же поведение и у оригинальной версии героев).
По-умолчанию громкость звука выставлена в 0.
- Правая кнопка мыши
эмулируется долгим нажатием на экран. Однако, использовать надо ее
аккуратно, тк нажатие левой кнопки мыши никуда не девается, можно
случайно напасть на врага вместо того чтобы посмотреть его инфу
- Запуск игры идет довольно долго, секунд 30. При этом на экране просто крутится курсор.
- На QVGA устройствах масштабирование производится путем выкидывания лишних пикселов, из-за чего страдает качество картинки.
-
В стартовой заставке проскакивают черные пикселы вместо ярко-белых. Это
глюк с палитрой. Если кому мешает заставка при старте - удалите каталог
Heroes\Anim.
- Несколько неудобно вести бои, так как отсутсвует
курсор мыши, а так же не подсвечивается область хода юнитов. Но через
некоторое время привыкаешь
Поддержка:Если данная программа понравилась - можете поддержать ее и другие мои разработки перечислив любую сумму на кошельки:
RUR: R339434335513, USD: Z588578204369, EUR: E230290760889
Траблшутинг:При
старте игра создает в корне устройства файл libemu.txt. В случае, если
игра не запускается - можно посмотреть в данный файл. Строки вида:
Cannot load DLL 'WINMM.em.dll', Err 7e
Cannot load DLL 'KERNEL32.em.dll', Err 7e
Cannot load DLL 'USER32.em.dll', Err 7e
Cannot load DLL 'GDI32.em.dll', Err 7e
Cannot load DLL 'ADVAPI32.em.dll', Err 7e
являются
нормой, данные пять DLLок "прошиты" в коде. А вот если идет ошибка о
других DLLках, особенно если код не '7e', а, например 'e' - это значит
не хватает памяти.
Так же в лог пишется информация об исключениях и ошибках.
О рекомпилятореРекомпилятор
- закрытый проект. Состоит из нескольких утилит, основная из них - по
оригинальному win32 EXE файлу производится генерация С++ кода,
реализующего соответствующий функционал. Данный код затем
компилируется, линкуется с обслуживающими библиотеками, и на выходе
получаем модуль для заданной платформы. Не обязательно Windows Mobile,
это может быть и iPhone и любая другая 32-битная платформа с
компилятором С++. На данный момент работа оттестирована на двух
платформах - настольной Windows и Windows Mobile.
Интересующиеся проектом могут написать РМ или email.
Ну и спасибо Cotulla и Getorix за моральную помощь при разработке рекомпилятора
Дальнейшие планыПеревести Heroes of Might and Magic 2 на WinMobile. Так как вторые герои поддерживают TCP - возможно, заработает сетевая игра.
Совместно с Cotulla довести до ума Command and Conquer'95. А потом, возможно, и фоллауты.