Выпущена версия EKA2L1 0.0.4!
EKA2L1 обновлен до версии 0.0.4.
Коррректировка способов установки устройства
Нами было получено множество отзывов о проблемах при использовании эмулятора. Например, если смотреть на экран установки, какое устройство следует установить, каким методом его установить. Многие пользователи останавливаются на этих шагах.
По результатам мы скорректировали процесс установки устройства. Учтите, что его вообще нельзя удалить.
-
Мы знаем, что многие люди - любители консолей, а не Symbian, поэтому для них наличие двух файлов или чего-то вроде сырого дампа может быть небольшой проблемой. Таким образом, для устройств S60v1, таких как N-Gage, вам для установки теперь требуется только предоставить системные ROMы. Мы надеемся, что это упростит процесс установки.
- Для устройств S60v2 используется процесс обработки, который также включает в себя ROFS в ваших системах, поэтому для него по-прежнему необходимо использовать RPKG.
- Для устройств S60v3, S60v5 и S^3 мы предоставили вам возможность установки с помощью прошивок, что гораздо проще для большинства пользователей. Вам нужно всего лишь указать путь к файлу VPL для установки. Обратите внимание, что этот способ не работает с некоторыми поздними прошивками S60v2 из-за различий в позиционировании данных ROM.
Какие устройства устанавливать - мы добавили расширяемый раздел, на который вы можете щелкнуть, в нем будут указаны устройства для установки и какие методы для них используются.
Изображения нового экрана установки:


Если обнаруживается, что ROM не является S60v1, будет запрошено поле RPKG. Спасибо пользователям Play Store и Discord за их отзывы.
Добавлена фундаментальная поддержка S60v2
Об этом просило много людей. Эмулятор реализовал некоторые части систем S60v2, но, к сожалению, не все, и многие приложения и игры по-прежнему работают с ошибками или вообще не запускаются. Однако совместимость улучшилась.
S60v2 имеет три пакета функций, в которых представлены этапы перехода от EPOC. Они включают в себя попытку удаления структуры системных папок, удаление Windows-подобных поисков DLL, удаление приложений, изменения ROM, такие как жестко запрограммированное разрешение экрана внутри заголовков ROM. Таким образом, реализация S60v2 оказалась очень увлекательной.
Сжатие файлов DLL и EXE PETRAN также присутствует во многих приложениях. Некоторые функции все еще не работают должным образом, включая игры, которые правильно используют прямой доступ к экрану (DSA).
Вот несколько скриншотов игр, которые сейчас работают на эмуляторе, используя дамп устройства N70.






Добавлена поддержка S60v5 для 32-битной версии
S60v5 и S^3 требуют тяжелых операций VFP, поэтому раньше они не были реализованы в 32-битном JIT эмулятора. Недавно мы вернулись к этой теме, поскольку хост вообще не использует регистры VFP, мы уничтожаем весь банк регистров, но все равно отслеживаем, какие регистры загружаются/записываются.
Производительность 32-битного JIT фактически такая же, как и на реальном телефоне. Я не думаю, что у таких энтузиастов, как мы, были большие ожидания… Но мы надеемся, что вы сможете насладиться старыми добрыми приложениями на новом телефоне Android. Больше об этом и сказать нечего.
Другие мелкие исправления
Раньше не существовало дампов устройств с юникодом, но недавно нам дали китайские ROMы N70, и он работает не очень хорошо из-за того, что не отображает ничего для чтения. Копаясь в нем, мы пытались загрузить символы Unicode, но вообще не нашли информацию об их координатах в атласе текстур шрифта. Так что этот фикс позволил парню сыграть в Pocket Kingdom на китайском языке, лол.


Другие запрошенные вещи включают игры, которые вообще не могут читать IMEI эмулятора. Этот IMEI генерируется случайным образом, лол. Но в этом не должно быть ничего плохого.
Чтобы получить IMEI, игры должны открыть информацию о телефоне с помощью API, который требует, чтобы вы указали имя получателя информации о телефоне (экземпляр создается из библиотеки DLL). Но эти старые игры иногда просто жестко программировали это имя получателя либо на «Calypso» для S60v1 (это кодовое имя Nokia 7650), либо на «DefaultPhone» на S60v2. Мы не загружаем эти модули по очевидной причине, что они получают информацию от драйвера. Таким образом, мы должны подделывать эти имена в зависимости от версии ОС…


И последнее, о чем следует упомянуть, это то, что в некоторых играх наблюдается состояние гонки - они никогда не запускаются из-за того, как ОС планирует потоки. После того, как поток будет создан и возобновлен, ядро немедленно изменит расписание, что может привести к запуску дочернего потока. Это приводит к ситуациям, когда родительский поток обращается к данным дочернего потока, который создается только тогда, когда дочерний поток запускается первым. Эмулятор исправлен, чтобы следовать этому поведению, что устраняет сбои в некоторых играх.


Есть также несколько небольших исправлений, которые улучшают совместимость с приложениями S60v3 и S60v5, но мы не будем их здесь упоминать.
Цели для 0.0.5
Мы надеемся в ближайшее время реализовать поддержку сервисов N-Gage (люди обычно называли это N-Gage 2.0). Раньше в ветке ng2 были наработки, но они очень костыльные и работают только с одной игрой, и это только речь об ее установке.
Мы также хотим исправить проблемы с файловыми операциями, которые в настоящее время становятся вечными на Android 11 или почти не работают. Исправление будет выпущено, когда мы найдем время.
Заключительные примечания
Версия для ПК будет иметь те же улучшения, что и Android, в настоящее время это реализуется. Но для Android вы можете найти стабильную версию эмулятора в Play Store. Надеюсь, вы хорошо проведете время с эмулятором.