BerandaComputers and TechnologyTampilkan HN: Game Modern untuk Mesin PC dan CD SuperGrafx

Tampilkan HN: Game Modern untuk Mesin PC dan CD SuperGrafx

Jadi, petualangan dimulai pada Juli telah berakhir. Bagaimana proyek ini berjalan? Di mana saya bisa mendapatkan game tersebut? Apakah saya memerlukan SuperGrafx CD dengan dua Kartu Arcade untuk memainkannya? Apakah ini akan memberi saya pemahaman yang benar-benar akurat tentang teori medan kuantum? Semua pertanyaan Anda dan lebih banyak lagi akan dijawab! Plus, nantikan tindak lanjut pengkodean untuk Mesin PC!

Itu disini!

The title screen of Space Ava 201, a female figure looming ominously over a flat earth

Seperti semua game saya yang saya rasa cukup percaya diri untuk dirilis di sana, Space Ava 201 sekarang tersedia di halaman itch.io , di sini untuk tepat. Anda dapat mengunduhnya secara bebas dalam format CUE / ISO / WAV, atau memberikan sejumlah uang kepada pembuatnya jika Anda benar-benar menginginkannya. (Dia bahkan memiliki Patreon ! Oke, cukup promosi diri)

An in-game screenshot of Space Ava 201, showing Ava on a space station

Semua emulator TurboGrafx-16 atau PC Engine yang dapat memainkan Super CD-ROM 2 game yang bisa dimainkan Space Ava 201 . Anda tidak perlu mengonfigurasi berbagai hal untuk Kartu Arkade atau SuperGrafx; Anda bisa mendapatkan pengalaman gameplay lengkap dengan semua level, dialog, dan musik tetap tersedia tanpa salah satu dari itu. Ini berlaku untuk bermain di perangkat keras juga.

The cover of Space Ava 201, featuring a PC-SG logo

FAQ (dan lebih banyak tangkapan layar!)

Apakah ini akan berjalan di konsol nyata?

A screenshot of Space Ava 201, wherein Cindy Palisade insists that because she's the captain, she gets to be first author

Saya pribadi telah menguji ini pada PC Engine Duo R dan SuperGrafx-CD saya sendiri menggunakan CD-R yang dibakar, dan ternyata berhasil, jika konsol Anda mendukung CD-R secara umum. (Turbo Duo saya tidak) Saya juga telah menguji menggunakan TerraOnion Super SD System 3 (emulator drive CD-ROM berbasis FPGA) tanpa masalah.

Saya tidak memiliki sistem lain untuk diuji, tetapi saya tidak melihat alasan sistem tersebut juga tidak berfungsi dengan baik. Tentu saja, sistem ini berpotensi berusia lebih dari tiga puluh tahun, saya tidak bisa menjanjikan apa pun. Semuanya menjadi risiko Anda sendiri, teman-teman…

Bagaimana cara menangani komposit / S-Video ?

A screenshot of Space Ava 201, over composite video

Baru-baru ini, komunitas retro telah diguncang oleh wahyu bahwa palet keluaran video PC Engine / TurboGrafx dalam beberapa kasus sangat berbeda antara RGB keluaran dan video komposit. Karena sebagian besar sistem hanya menawarkan keluaran gabungan, hal ini telah menimbulkan banyak pertanyaan tentang apa cara yang “benar” untuk bermain game.

Untuk mengatur rekor langsung untuk game ini: Saya merancang semua grafik dan mengujinya terutama menggunakan warna RGB yang lebih hidup. Tapi jika Anda lebih suka komposit yang lebih tidak bersuara atau palet warna S-Video, itu juga akan terlihat bagus di sana, saya telah menjalankan game seperti itu untuk memastikannya. Mainkan sesuka Anda! Bahkan gunakan salah satu filter penghalus itu jika Anda mau.

Apakah saya perlu bermain Ruang Ava ?

A screenshot of Space Ava 201, wherein Ava stands facing a villainous quantum goon

Semoga tidak. Game ini didominasi oleh gameplay, dan karena itu ceritanya terutama bersifat komedi dan dimaksudkan untuk memberikan jeda antar segmen. Meskipun banyak karakter dari game pertama muncul kembali, mereka tidak terlalu berkarakteristik dan harus dimungkinkan untuk menikmati game sepenuhnya tanpa memainkan yang pertama.

Meskipun begitu, Anda bisa mainkan saja yang pertama . Ini akan berjalan di browser web Anda! Dan memiliki isometrik .

Apa kontrolnya ?

A screenshot of Space Ava 201, wherein Ava is confronted by Antonia, a woman in a blue beret

Ruang Ava 201 sebagian besar dimainkan dengan tombol arah. Anda tidak akan mendapatkan manfaat dari Turbo Pad, Avenue Pad 6, Turbo Tap, atau pengontrol khusus lainnya, tetapi Anda dapat menggunakannya jika mau.

Di gameplay standar :
D-PAD: Pindahkan Ava
JALANKAN: Jeda
PILIH: Bunuh Ava (tingkat restart)

Di layar dialog :
Tombol I: Kemajuan lebih lanjut dalam dialog
JALANKAN: Lewati dialog

Di teka-teki cermin :
D-PAD: Pindahkan kursor
Tombol I: Ambil dan jatuhkan barang bergerak
JALANKAN: Mencoba memecahkan teka-teki

Di segmen pengguliran samping :
D-PAD: Pindahkan Ava
Tombol I: Jump (bisa juga menggunakan D-pad UP)
JALANKAN: Jeda

Berapa lama waktu permainan?

A screenshot of Space Ava 201, wherein Ava in an office building

Memainkannya sendiri, butuh waktu kurang dari satu jam untuk menyelesaikannya. Tentu saja, saya sudah mengetahui solusi untuk teka-teki, jadi saya akan merekomendasikan menyisakan sedikit lebih banyak waktu dari itu, tetapi secara keseluruhan ini bukan permainan yang sangat panjang.

Apa yang dilakukan SuperGrafx dan Arcade Card?

A screenshot of Space Ava 201 running with enhanced SuperGrafx features used to write SUPER behind the title

SuperGrafx terutama digunakan untuk menyediakan lapisan grafis tambahan dalam beberapa mode permainan. Ini digunakan untuk membuat latar belakang yang lebih menarik. Namun demikian, itu tidak diperlukan untuk tindakan apa pun. Anda dapat melihat detail lebih lanjut tentang ini di artikel saya sebelumnya tentang SuperGrafx-CD.

A screenshot of Space Ava 201 running with the Arcade Card says 'Arcade' under the title

Kartu Arcade, jika tersedia, digunakan untuk memuat semua grafik di awal permainan untuk memuat lebih cepat. Namun, ini hanya lebih cepat jika Anda melakukan sesi permainan panjang yang benar-benar akan menggunakan grafik tersebut; jika Anda memutuskan tidak ingin duduk selama pramuat, Anda selalu dapat menekan dan menahan RUN. Akhirnya, gambar Kartu Arkade di layar akan berubah menjadi Kartu Sistem Super, menunjukkan bahwa Anda telah melewatkan pemuatan awal. Sejak saat itu, permainan akan berjalan secara identik seolah-olah Anda tidak pernah menggunakan Kartu Arkade sama sekali.

A screenshot of Space Ava 201 showing Lily sad that you aren't using the arcade card

Semua mode game, bahkan mode standar, akan mengakses RAM Cadangan, jika tersedia, untuk menyimpan kemajuan game. Hanya satu simpanan game yang tersedia.

Apa saja lisensinya?

A screenshot of Space Ava 201 showing a side-scrolling mode on a blue planet

Ruang Ava 201 dirilis secara penuh di bawah Lisensi Creative Commons CC-BY-SA 4.0 . Ini berarti bahwa Anda bebas membuat salinan dan mendistribusikannya, dan memodifikasinya juga, selama Anda merilis perubahan dengan cara yang sama , dan memberikan atribusi.

Karena itu, jika Anda mengambil sesuatu, beri tahu saya! Email saya tercantum di bawah, atau Anda bisa langsung ping saya di @nicole_express di Twitter.

Apakah ada kode curang?

A screenshot of Space Ava 201 showing more options on the title screen, because the cheat codes below were used

Tentu saja ada! Tekan ini di layar judul:

  • Atas-Bawah-Kiri-Kanan: Akses mode cerita (memungkinkan kemajuan melalui dialog tanpa mengganggu gameplay)
  • Kanan-Bawah-Atas-Kanan-Kanan-Bawah-Kanan-Atas-Atas-Bawah-Bawah-Kiri-Kanan-Kiri-Kanan: Akses pemilihan level

Kode terakhir itu adalah A screenshot of Space Ava 201 showing mirror puzzle mode, which is aesthetically similar to Windows 95 for some reason referensi ke sesuatu… mungkin membantu Anda mengingat kodenya, jika Anda tetap berbicara bahasa Jepang.

Apakah Anda akan menyediakan rilis fisik?

A screenshot of Space Ava 201 showing mirror puzzle mode, which is aesthetically similar to Windows 95 for some reason

Saya pasti akan mendapatkan beberapa CD di beberapa titik. (Jika tidak ada alasan lain, maka untuk menjalankannya di Turbo Duo saya!) Namun, saya memiliki sedikit minat untuk menjual salinan sendiri karena logistik yang terlibat; jika ada permintaan, saya mungkin mempertimbangkan kembali ini, karena CD umumnya perlu dicetak secara massal.

A screenshot of Space Ava 201 showing a sidescrolling mode, enhanced to have a scrolling background using the SuperGrafx

Pengkodean untuk Mesin PC, Bagian 2

Jadi pada bulan Juli saya menulis posting blog tentang pengkodean untuk Mesin PC; sengaja, saya melakukan ini sebelum saya menulis banyak kode sama sekali. Jadi, mari kita lihat bagaimana hasilnya!

Ralat

  • Saya mengklaim bahwa Mesin PC menggunakan register geser untuk pengontrol dan dibaca secara serial (satu byte-at -a-time) seperti pengontrol NES. Ini tidak akurat; Mesin PC sebenarnya dapat membaca empat dari delapan tombol sekaligus.
  • Saya menyatakan bahwa Tabel Atribut Sprite tidak hidup di VRAM; ini dan tidak benar: sebenarnya ada sebagian dari VRAM yang dikaitkan dengan sprite, yaitu DMA ke dalam SATB internal. Jadi jika Anda menginjak-injak semua VRAM, Anda akan menimpa sprite Anda. Ini wilayah yang cukup kecil.

Tidak satu pun dari ini adalah kesalahan besar, tetapi perlu ditunjukkan.

Menggunakan HuC

Saya sangat terkesan dengan compiler HuC. Saya akhirnya bisa menulis hampir semua hal dengan cara yang bagus tanpa terlalu banyak masalah; pada akhirnya, satu-satunya hal yang perlu saya capai di luar HuC adalah menggunakan instruksi transfer blok (dan lebih banyak lagi nanti)

Tentu saja, fakta bahwa Space Ava sama sekali tidak berarti bahwa game aksi mungkin membantu.

Ada beberapa keanehan yang patut diperhatikan. Untuk satu hal, saya tidak bisa mendapatkan yang disertakan malloc A screenshot of Space Ava 201 showing data being loaded into the arcade card implementasi untuk bekerja, tetapi pada akhirnya menurut saya itu tidak perlu. Saya merasa tidak masalah untuk mendeklarasikan semua blok memori yang Anda butuhkan untuk overlay di depan; bagaimanapun, metode pengumpulan sampah terbaik adalah membiarkan semuanya tergeletak begitu saja.

Selain itu, dalam pemrograman standar, variabel global umumnya harus dihindari, tetapi di HuC variabel tersebut sangat berguna untuk digunakan – variabel lokal disimpan dalam tumpukan dalam RAM. Sisi negatifnya adalah ini bukan tumpukan prosesor (karena prosesor berbasis 6502, HuC6280 mewarisi tumpukan 8-bitnya yang sangat terbatas), jadi ada banyak overhead yang terlibat. Variabel global secara langsung dipetakan ke alamat RAM dan sangat cepat.

Seperti yang juga saya catat di artikel asli saya, saya hampir sepenuhnya mengabaikan metode pemrosesan gambar HuC / Magic Kit dan menulis metode saya sendiri. Mereka sangat terikat dengan Terraformer editor grafis homebrew yang sejauh yang saya tahu tidak ada orang lain yang menggunakannya, tetapi rutinitas saya termasuk dalam kode sumber jika Anda ingin melihatnya, ditulis dengan Python 3.

Karena rutinitas pemrosesan ini menempatkan semua gambar dalam satu “overlay” (Anda dapat menganggap overlay sebagai file di disk), itu mudah untuk tambahkan dukungan Arcade Card dengan mengunggah seluruh overlay ke dalam kartu, dan lakukan pemeriksaan cepat setiap kali VRAM akan dimuat untuk melewati drive CD-ROM jika Arcade Card sudah terisi.

A screenshot of Space Ava 201 showing data being loaded into the arcade card

Mari kita bahas lebih lanjut tentang “hamparan” tersebut. Sebuah overlay pada dasarnya adalah placeholder kasar untuk sistem file; ada overlay “data” yang pada dasarnya hanyalah penunjuk ke suatu tempat di CD, dan overlay “yang dapat dieksekusi” yang merupakan program yang dirancang untuk dimuat ke dalam Super System Card. Ini semua adalah sistem HuC, dan tidak ada alasan untuk menganggap semua game CD PC Engine bekerja dengan cara ini. Secara umum, saya menemukan ini membuatnya cukup mudah untuk memecah beberapa mode permainan menjadi program mereka sendiri dengan cara yang jauh lebih bersih daripada, katakanlah, Bintang Aspek “N” , bahkan layar judul hanyalah mode lain dari permainan.

Petunjuk transfer blok

Dalam posting blog awal saya, saya mengabaikannya sepenuhnya. Dalam saya SuperGrafx-CD posting blog, saya memblokir transfer menggunakan C! Jadi apa instruksi ini?

Kedengarannya seperti sup alfabet yang berantakan, bukan? Saya memang berpikir begitu, itulah sebabnya saya mengabaikan mereka. Tapi ini sebenarnya bagus untuk menyalin data bolak-balik. Dan apa semua ini tentang Bergantian? Misalnya, ambil contoh kode ini dari artikel SuperGrafx-CD:

 sgx_load_vram (int vaddr, int data, int nb) {     int i;      aduk (0x10, 0x00); // Inisialisasi alamat VRAM     pokew (0x12, vaddr);     aduk (0x10, 0x02); // Masuk ke mode tulis      untuk (i=0; i > 1); i ++)     {         pokew (0x12, data [i]);     }      kembali; } 

Kami dapat menulis ulang ini sebagai:

 sgx_load_vram (int vaddr, int data, int nb) {     int i;     char flip;      aduk (0x10, 0x00); // Inisialisasi alamat VRAM     pokew (0x12, vaddr);     aduk (0x10, 0x02); // Masuk ke mode tulis      balik=0;     // Perhatikan bahwa sekarang saya mencakup semua byte 8-bit dalam data     untuk (i=0; i 

Menulis ke VRAM berarti Anda perlu menulis nilai 16-bit. Karena CPU adalah 8-bit, ia menulis 8 bit pertama ke satu alamat (0x12), dan kemudian 8 bit berikutnya ke alamat lain (0x13). Dari perspektif CPU, ini bolak-balik antara dua register ini. Dan ini adalah pola umum pada Mesin PC; Anda juga dapat melakukannya untuk menulis nilai 16-bit ke Kartu Arkade, misalnya. ("Kenaikan" cukup mudah untuk dilihat; itu adalah

i ++ A screenshot of Space Ava 201 showing data being loaded into the arcade card di loop untuk)

Dan menggunakan instruksi transfer blok, kita dapat menggantinya dengan tia (data) 0x0012 (nb) .

Hanya ada sedikit masalah: tia A screenshot of Space Ava 201 showing data being loaded into the arcade card instruksi tidak memungkinkan untuk tipuan apa pun. (Indirection, dalam hal ini, berarti bahwa alih-alih meneruskan nilai, Anda meneruskan sesuatu ke prosesor untuk memberi tahu di mana menemukan nilai, seperti alamat RAM) Anda perlu mengetahui alamat sumber dan jumlah byte secara langsung, Anda tidak dapat melewatkan variabel.

Ingat ini sgx_load_vram A screenshot of Space Ava 201 showing data being loaded into the arcade card fungsi dipanggil di mana pun kita ingin memuat data ke VRAM ekstra SuperGrafx. Jadi, kami sebenarnya tidak tahu berapa panjangnya atau di mana datanya. Tapi ternyata itu tidak masalah. Kami hanya dapat mengeksekusi kode dari RAM.

 char tia_instruction [8]; sgx_load_vram (int vaddr, int data, int nb) {     int i;      // Fungsi ini mungkin tidak berfungsi jika Anda mencoba mentransfer     // lebih dari $ ffff byte data. Tapi saya tidak pernah melakukannya      // data tia, $ 0012, $ 0.800     // rts     tia_instruction [0]=0xe3; // opcode prosesor untuk TIA     tia_instruction [1]=data & 0x00FF;     tia_instruction [2]=(data & 0xFF00)>> 8;     tia_instruction [3]=0x12; // Kita dapat melakukan hardcode nilai 0x0012     tia_instruction [4]=0x00; // register VDC yang ingin kita tulis     tia_instruction [5]=nb & 0x00FF;     tia_instruction [6]=(nb & 0xFF00)>> 8;     tia_instruction [7]=0x60; // RTS (kembali ke kode)      aduk (0x10, 0x00);     pokew (0x12, vaddr);      #asme         pha          sei; nonaktifkan interupsi         lda # $ 02; Kedua baris ini adalah         staf $ 0010; sama seperti poke (0x10, 0x02)         jsr _tia_instruction         cli; mengatur interupsi          pla     #endasm     kembali; } 

Anda dapat melihat bahwa tidak ada tia A screenshot of Space Ava 201 showing data being loaded into the arcade card instruksi di bagian perakitan. Alih-alih, ini dibuat dalam RAM, dalam larik karakter "tia_instruction". Ini diikuti dengan pernyataan pengembalian, jadi kita bisa langsung ke sana.

Tentu, rasanya aneh jika Anda terbiasa dengan praktik pengkodean modern. Saat ini, untuk alasan keamanan, Anda biasanya tidak ingin menulis dan mengeksekusi dari RAM yang sama. Tetapi pada sistem 8-bit, hal semacam ini setara untuk kursus, dan perilaku yang diinginkan. Ingat, ini adalah sistem tertanam; tidak ada OS yang sebenarnya dan tentu saja tidak ada proses lain, kecuali Anda menghitung CD BIOS. Hal terburuk yang dapat dilakukan "peretas" adalah menghapus semua game yang disimpan.

Saya akhirnya menggunakan pola ini baik untuk transfer SuperGrafx, dan untuk transfer Kartu Arcade. Itu membuat segalanya jauh lebih tertahankan, dan melakukan segala sesuatu di C akan menghapus semua manfaat kecepatan memiliki data di Kartu Arcade vs. menyimpannya di RAM.

Apakah saya akan melakukannya lagi?

Saya sangat menikmati mengerjakan CD Mesin PC. Saya tidak yakin apakah game saya berikutnya akan ada di konsol ini. Saya sangat menikmati bekerja dengan beberapa lapisan latar belakang yang disediakan SuperGrafx, jadi saya dapat melihat Genesis (CPU 16-bit aktual! Tapi sangat sedikit palet) atau Super Nintendo (6502 serupa lainnya! Tapi tidak ada CD add-on …). Atau bahkan mungkin Neo Geo?

Saya juga berjanji bahwa saya tidak lupa tentang Bintang Aspek 4 ; ini mungkin permainan JavaScript terakhir saya, jadi saya ingin memastikan itu bagus.

Itu Space Ava 201 ! Ini benar-benar semacam permainan yang saya buat untuk satu penonton, tapi itu seharusnya tidak menghentikan Anda untuk menikmatinya juga 🙂 Semoga Anda menikmatinya setidaknya sepersepuluh dari saya menikmati membuatnya!

Read More

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments