Omega Red + PS1 Emulator = Kojima Genius

Halo semua pembaca!

Saya melanjutkan tema emulator perangkat lunak untuk PlayStation 2 dan PlayStation Portable - Omega Red. Lebih detail:


Saya menulis publikasi ini sehubungan dengan penambahan emulator perangkat lunak untuk PlayStation 1.
Selamat datang di Kat.


Sesuai dengan judulnya, artikel ini menyajikan hasil penelitian saya ke dalam integrasi emulator PCSX-Reloaded PlayStation 1. Gagasan untuk menambahkan dukungan untuk meniru garis PlayStation pertama dari konsol game adalah logis, tetapi ketika saya mencoba mengimplementasikannya, ada masalah - versi OpenSource sekitar 15 tahun, yang tidak lagi didukung oleh komunitas dan integrasi ke dalam proyek dengan teknologi DirectX11 dan WPF menghadirkan masalah nyata. Versi renderer video disajikan dalam bentuk implementasi perangkat lunak, dan setelah membuat gambar akhir dalam memori sistem, hasil ini disalin ke memori video DirectX11. Pada pandangan pertama, solusi seperti itu tampaknya tidak efektif, tetapi memungkinkan Anda untuk menggunakan kode penyaji peranti lunak yang sudah didebug, dan untuk versi pertama lebih dari solusi yang sesuai.

Selain itu, saya menambahkan sejumlah fungsi untuk kompatibilitas dengan PCSX-Reloaded:

  1. Getaran visual - pengontrol gim "Dualshock" untuk jajaran PlayStation dari konsol gim memiliki fungsi "kembalikan umpan balik" untuk perendaman proses permainan yang lebih dalam. Emulator Omega Red mendukung fungsi serupa untuk pengendali permainan eksternal, tetapi "umpan balik balik" untuk layar sentuh masih di luar jangkauan fiksi. Namun, ketika meneliti kode PCSX-Reloaded, saya menemukan sebuah pointer ke fungsi callback dari emulator pengontrol game ke renderer grafis. Gagasan menampilkan "umpan balik mundur" melalui transformasi visual dari gambar itu menghibur, dan saya memutuskan untuk menerapkannya dalam proyek saya.



  2. Kartu memori bersama - proyek Omega Red yang asli menciptakan kartu memori untuk game berdasarkan nomor seri unik disk game, yang membantu mencegah menimpa penyimpanan satu game dari sesi game di game lain. Teknik ini berfungsi untuk game PlayStation 2 yang menempati satu DVD, tetapi dalam kasus game PlayStation 1, ada masalah mentransfer save dari sesi game pada satu disc ke sesi game pada disc game lain - game di PlayStation 1 dapat menempati dua atau lebih disc. Untuk mengatasi masalah ini, saya menambahkan kartu memori bersama.


Selain persyaratan kompatibilitas, saya menambahkan beberapa peningkatan umum, di antaranya:

  1. Pilihan bitrate video untuk merekam video gameplay:


    Memilih ukuran file rekaman video target:


  2. Pemisahan disk BIOS dan game menjadi beberapa grup untuk PlayStation 1, PlayStation 2 dan PlayStation Portable.


  3. Tampilkan nama BIOS dan disk game saat ini atas nama bagian yang sesuai.



Peragaan game untuk ketiga platform dapat dilihat di demo:


Saat ini, program ini tersedia di: Omega Red dan disajikan di GitHub: OmegaRed .

Source: https://habr.com/ru/post/id476958/


All Articles