pcsx4all != psx4all

В недавнюю новость об обновлении эмулятора Sony PlayStation вкралась небольшая, но весьма досадная неточность, о которой нам любезно сообщил сам автор. Внезапно, эмуляторов PSX в приороде великое множество и в продолжении поста вы найдёте все необходимые объяснения.

Вообще-то тут ошибка: не psx4all, а pcsx4all, о чём на dingoonity написано. Всё равно многие путают. Предок общий — pcsxr, но местами код сильно отличается. Вот и EXL про него писал: http://exlmoto.ru/pcsx4all-motomagx/

 

За основу взят этот эмулятор: http://chui.dcemu.co.uk/pcsx4all.html

к нему приделан практически полностью переписанный рекомпилятор от psx4all: https://github.com/uli/psx4all-dingoo/

Потом последовали многочисленные переносы кода из более совершенных pcsx_rearmed, pcsxr и даже mednafen.

И очень сильно подправлен gpu_unai: скорость, точность, а самое главное — убрана мерзкая «расчёска», возникающая из-за неточности алгоритма деления (на ARM  нет инструкции деления, а на MIPS таки есть).

 

Вот так и получилось это счастье. 🙂 Если что — я пилил только рекомпилятор, всё остальное — вклад других (на скрине Credits всё написано).

Вот такая вот неувязка. Приносим свои извинения!

Вышеописанная «расчёска» видна на картинке к посту. И, стоит упомянуть, что эмулятор начал поддерживать такие игры, как Tomb Raider 2,4,5, Mortal Kombat 3 и Mortal Kombat Trilogy, причём последние весьма прилично играются на Dingoo A320! Это стало возможным из-за более точной эмуляции процессора R3000a, другими словами — реализации «фирменных глюков».