ProjectPSX adalah emulator berkode C# dari Sony Playstation asli (Playstation 1/PS1/PSX)
Ini adalah proyek pribadi dengan ruang lingkup untuk mempelajari tentang perangkat keras dan pengembangan emulator.
ProjectPSX tidak menggunakan ketergantungan eksternal apa pun dan menggunakan kode C# yang agak sederhana.
Saat ini hal-hal berikut sedang dilaksanakan:
Apa yang tidak diterapkan (tetapi harus...):
Catatan: PlayStation Bios yang valid diperlukan untuk menjalankan emulator. SCPH1001.BIN adalah bios default pada pengembangan tetapi beberapa bios lain seperti SCPH5501 atau SCPH7001 telah dilaporkan berfungsi.
Tidak ada daftar kompatibilitas. Banyak game yang boot dan masuk ke dalam game meskipun beberapa mungkin memiliki masalah acak. Beberapa game yang saya uji yang terbangun adalah: Ridge Racer, Castlevania Symphony of the Night, Final Fantasy 7, Crash Bandicoot 1, 2 dan 3, Spyro the dragon, Tekken 1, 2 dan 3, Toshinden, Time Crisis, Tobal 1 dan 2, Vagrant Story, Street Fighter Zero 3, Rockman/Megaman 8/X4, Parasite Eve, Metal Gear Solid, Crash Team Racing... Beberapa lainnya menyukai Final Fantasy IX, Gran Turismo, Resident Evil 3 atau Marvel vs Capcom boot tetapi memiliki masalah acak yang harus diperbaiki.
Catatan: File Kartu Memori dikodekan ke "memcard.mcr" di direktori root. Jika tidak ada yang baru akan dibuat saat disimpan.
Inti ProjectPSX sendiri adalah perpustakaan tanpa kepala tanpa ketergantungan. Solusinya hadir dengan 2 proyek tambahan ProjectPSX.Winforms dan ProjectPSX.OpenTK. Proyek Winforms menggunakan NAudio untuk mengeluarkan suara.
Saat menggunakan proyek Winform, dialog file akan meminta eksekusi. Pilih file Bin (gunakan track1) atau file Isyarat untuk menghasilkan track CD untuk dimasukkan ke dalam CDROM.
Saat menggunakan proyek OpenTK cukup drag dan drop file bin/cue ke jendela.
File bios dan ekspansi di-hardcode pada kelas BUS.
Setelah dihidupkan, Input dipetakan sebagai:
Ya, Anda bisa, tetapi sebaiknya jangan. Masih banyak emulator lain yang lebih mumpuni di luar sana. Ini adalah proyek pribadi yang sedang dalam proses dengan tujuan untuk mempelajari tentang emulator dan implementasi perangkat keras. Itu bisa dan akan rusak selama emulasi karena ada banyak fitur perangkat keras yang tidak diterapkan.
Ini adalah penampil VRAM. Ini mencakup semua tekstur, tabel pengunci warna dan buffer tampilan yang digunakan oleh perangkat lunak playstation. Ini digunakan untuk tujuan debugging. Anda dapat mengaktifkannya dengan menekan TAB pada keyboard Anda.
Mungkin karena perangkat keras yang tidak diimplementasikan atau implementasi yang salah, terutama pengaturan waktu cdrom/dma/mdec.
Batalkan komentar pada fungsi bios.verbose() atau TTY() pada loop utama CPU. Anda juga dapat dissasemble() instruksi CPU MIPS dan printRegs() pada opcode saat ini.
Saya tertarik meniru perangkat keras selama beberapa waktu. Saya mulai menggunakan Java Chip8 dan CPU C# Intel 8080 (digunakan pada arcade klasik Space Invaders). Beberapa saat kemudian saya membuat Nintendo Gameboy. Saya ingin terus melakukan beberapa 3D jadi saya mengakhiri dengan PSX karena memiliki perpustakaan permainan yang bagus...
Saya terutama menggunakan dokumentasi Martin Korth PSX-SPX tentang perangkat keras Playstation di https://problemkaputt.de/psx-spx.htm Juga orang-orang di saluran #playstation di perselisihan emudev di https://discord.gg/dkmJAes adalah sangat membantu.
Winforms adalah cara termudah untuk mendapatkan keluaran bagi saya karena prototipenya cepat. Saat ini UI terlepas dari inti sehingga sistem windowing apa pun dapat ditambahkan selama antarmuka IHostWindow diterapkan. Ada juga proyek OpenTK pada solusi yang berjalan di Linux.
Pada awal proyek ini saya adalah seorang pria dengan pekerjaan membosankan yang tidak berhubungan dengan coding. Saya tidak ingin melakukannya seumur hidup, jadi saya mulai belajar untuk mencoba mengubah karier. Akhirnya belajar (sedikit) dan mulai membuat kode apa pun yang membuat saya bahagia. Akhirnya mendapat pekerjaan sebagai Pengembang Android...