Малик Эмулятор — свободный эмулятор java-игр и приложений
Тип | Системное ПО, эмуляция |
Написан на | Lazarus IDE, Java, ассемблер x86 |
Операционные системы | Windows XP/7/8/10, WINE |
Языки оболочки | Русский |
Первый выпуск | 23 мая 2017 |
Последняя версия | 1.0.323 |
Дата последней версии | 17 июня 2023 |
Читаемые форматы данных | архив .jar |
Наличие установленной JRE | не требуется |
Лицензия | GNU GPL 3, GNU LGPL 3 |
Малик Эмулятор — свободное системное программное обеспечение, позволяющее запускать java-приложения и играть в java-игры, созданные для платформы J2ME (Java Platform, Micro Edition). Отличительной особенностью этого эмулятора от других является полноэкранный режим: теперь вы можете насладиться любимыми java-играми, не отвлекаясь на содержимое рабочего стола.
Вы можете переключаться между окном и полным экраном сочетанием клавиш Правый Alt+Enter.
Платформа J2ME считается устаревшей, однако под неё написано большое количество игр и приложений. Многие пользователи до сих пор ими пользуются, поскольку не могут найти подходящие аналоги под современные мобильные операционные системы. Малик Эмулятор позволяет запускать java-программы на операционных системах Windows XP/7/8/10 и даже в системном программном обеспечении WINE, чтобы пользователи GNU/Linux и MacOS не остались в стороне.
Пользователям GNU/Linux так же рекомендуется установить программу fluidsynth и какой-нибудь звуковой шрифт (файл с расширением .sf2
) для проигрывания MIDI-музыки в java-играх. Перед запуском Малик Эмулятора следует запустить fluidsynth с параметрами командной строки:
fluidsynth -a alsa <путь к файлу звукового шрифта>
Заметим, что в стандартный комплект поставки fluidsynth уже входит один файл звукового шрифта.
Загрузки
Загрузить Малик Эмулятор версии 1.0.323 с реализацией J2ME версии 1.1.181 (загрузок: 1 848)
Что нового в последнем выпуске
Все изменения помещены в текстовый файл CHANGELOG
. Здесь перечислены только значимые изменения.
Эмулятор:
- Исправлено зацикливание при обработке повреждённого архива. Теперь будет выдано сообщение об ошибке в данном случае.
- Имена файлов в архиве теперь считаются в кодировке ISO 8859-1. В предыдущих версиях ошибочно использовалась кодировка UTF-8.
- Убрана чувствительность к регистру расширения архива (
JAR = jar
).
Библиотеки Java:
- Добавлена поддержка формата BMP в тестовом режиме. RLE-кодирование пока не реализовано.
- Добавлена поддержка формата GIF в тестовом режиме. Декодирование статичных изображений поддерживается полностью, а у анимированных — декодируется только первый кадр (отсутствие поддержки анимации в спецификации MIDP 2.1).
- Класс
malik.emulator.i18n.encoding.system.UTF_8_Codec
: исправлена ошибка декодирования текста в кодировке UTF-8. - Класс
javax.microedition.lcdui.Canvas
: исправлено отображение канвы в том случае, когда приложение используетsetFullScreenMode(true)
в сочетании сsetCommandListener(x)
, гдеx != null
. - Метод
javax.microedition.lcdui.Display.update
теперь использует надёжный метод для проверки видимости виртуального экрана. В предыдущих версиях использовалось полеvisibility
, из-за чего в редких случаях консоль не появлялась в момент вызова.
Технические детали
Малик Эмулятор использует собственную виртуальную машину для выполнения программ. Когда вы устанавливаете java-программу, запускается программа — статический рекомпилятор, который переводит исходный байт-код Java на язык виртуальной машины Малик Эмулятора. Теоретически возможна статическая рекомпиляция программ для других виртуальных машин, если написать для них статические рекомпиляторы.
Благодаря встроенному в эмулятор статическому рекомпилятору, нет необходимости устанавливать на компьютер виртуальную машину Java.
Поскольку эмулятор использует виртуальную машину, у него невысокое быстродействие. Как повысить скорость выполнения программ, будет сказано далее. В связи с этим, исходный код библиотек Java оптимизирован для более быстрого выполнения.
Все программы на Малик Эмуляторе выполняются «в песочнице». Это означает, что каждая программа имеет доступ только к файлам в своей папке. Доступ в Интернет эмулятором не поддерживается и не планируется к реализации.
Установка и первый запуск
Распакуйте загруженный с сайта архив в удобную папку. Появится папка emulator-1.0.323
. Это папка с эмулятором. Откройте её. Запустите на исполнение файл emulator.exe
. Появится главное окно Малик Эмулятора, в котором можно увидеть предустановленную программу «Редактор шрифтов UFN». Теперь можно приступить к установке других игр и приложений.
Установка и запуск java-программ
Перед установкой java-программ желательно проверить файл
<папка с эмулятором>\java\programme\midlet.properties
В этом файле хранятся параметры функционирования всех java-программ, которые вы установите на Малик Эмулятор в будущем. (Этот файл не затрагивает уже установленные java-программы, поскольку каждая установленная java-программа имеет свой файл настроек.) Откройте его в любом текстовом редакторе. Вы увидите большой блок строк, начинающихся с
key.
Это «горячие» клавиши, эквивалентные «телефонным» кнопкам. После знака равенства «=» можно вписать название удобной для вас «горячей» клавиши. Сохраните файл и настройки, записанные в нём, будут применяться ко всем java-программам, которые вы будете устанавливать.
Подробности о настройке клавиш можно узнать в кратком руководстве.
Для установки новых программ служит пункт главного меню
Программа → Установить…
Выберите JAR-архив и нажмите кнопку «Установить». После выполнения процедуры распаковки архива и статической рекомпиляции java-программа готова к запуску.
Перед первым запуском желательно выбрать программу в списке и выбрать пункт главного меню
Программа → Свойства…
В появившемся окне можно написать краткое описание установленной программы и задать разрешение экрана, для которого эта программа была разработана. Разрешение, установленное по умолчанию, — 240×320.
Совместимость
Для некоторых java-программ вопрос совместимости стоит довольно остро: такие java-программы могут нормально функционировать только в одной или нескольких средах исполнения. Причиной «отказа» той или иной java-программы могут стать и аппаратные несовместимости. Поэтому нет уверенности в том, что абсолютно любая java-программа сможет нормально функционировать в среде Малик Эмулятора.
Открытый исходный код Малик Эмулятора и его java-библиотек позволяют разработчикам разрабатывать новые java-библиотеки, которые смогли бы частично разрешить проблемы совместимости.
Оптимизация работы java-программ
Как ускорить выполнение java-программ:
- Отключите трассировку стака в исключениях и вызов метода
Canvas.keyRepeated
в настройках системы, как показано на этом экранном снимке: - Отключите дублирование вывода на консоль (по умолчанию вызывается клавишей F3), набрав на консоли команду:
дубляж откл
После этого эмулятор не будет выполнять лишних действий, благодаря чему повысится скорость выполнения программы. Начиная с версии 1.1.101 java-библиотек вывод текста на консоль был оптимизирован и теперь не заметен, поэтому дублирование вывода на консоль можно не отключать.
ЧаВО
Датчик FPS в строке состояния показывает значение, превышающее то, которое задано в настройках системы. Что делать?
Понизьте максимальную частоту кадров в настройках системы до оптимального значения (см. экранный снимок выше).
Датчик FPS в строке состояния показывает очень низкое значение, хотя оно могло бы быть выше. В чём дело?
Возможно, что java-игра недостаточно оптимизирована. Кроме того, некоторые java-игры не в достаточной мере следуют спецификации MIDP 2.1 и пытаются выполнить операцию, которая может потребовать некоторое время для завершения, в критичных для этого фрагментах кода.
Почему имена файлов .rms
содержат коды символов вместо самих символов (например, $002F$0047ame.rms
вместо /Game.rms
)?
Это из-за ограничений, наложенных ОС Windows на имена файлов. В частности:
- Имена файлов нечувствительны к регистру (в то время как имена RMS-записей уникальны и чувствительны к регистру);
- Некоторые символы запрещено использовать в имени файла (в то время как имена RMS-записей могут их содержать).
В теории, и имена ресурсов, извлечённых эмулятором из архива .jar
во время установки последнего на эмулятор, должны записываться подобным образом, однако эмулятор этого не делает.
Хочу реализовать в эмуляторе новую возможность или внести правки в существующий код, однако последняя версия Lazarus IDE не может скомпилировать исходный код эмулятора. Что делать?
Эмулятор разрабатывался в среде версии 1.2.2 с FPC версии 2.6.4 от 20 апреля 2014 года. Используйте только эту версию Lazarus IDE. Системные библиотеки Java можно компилировать в среде Eclipse IDE последней версии.