Emulator

sistem yang mengemulasi sistem nyata sedemikian rupa sehingga perilakunya sangat mirip dengan perilaku sistem nyata

Emulator atau lebih tepatnya piranti lunak emulator memungkinkan suatu program atau piranti lunak yang dibuat pada awalnya oleh suatu sistem komputer (arsitektur dan sistem operasi) dan untuk dijalankan dalam sistem itu (atau dijalankan dalam suatu sistem yang didedikasikan), dapat dijalankan dalam sistem komputer yang sama sekali berbeda. Sebagai contoh suatu program Windows dapat dijalankan di sistem operasi Linux dengan menggunakan piranti lunak emulator Wine. Ada pula program yang mengemulasikan suatu komputer dalam komputer, misalnya VMware. Contoh lain adalah program-program emulator untuk menjalankan permainan komputer yang awalnya hanya bisa dijalankan pada konsolnya masing-masing, misalnya Nintendo, Atari, PlayStation, XBox dan lain-lain.

Alasan dibuatnya emulator

Terdapat beberapa alasan dibuatnya emulator, beberapa di antaranya adalah [1]:

  • Para gamer ingin bernostalgia dalam menjalankan program-program lama, umumnya permainan komputer (game) yang konsol atau sistem operasinya tidak diproduksi lagi saat ini,
  • Menjalankan piranti lunak yang dibuat hanya untuk platform-platform tertentu,

dan dewasa ini;

Emulator dalam Permainan Komputer

Emulator memungkinkan komputer untuk bekerja sesuai dengan hardware sistem yang diemulasikan. Tetapi emulator tidaklah ada gunanya tanpa didukung oleh permainan komputer (game). Game-game ini disebut sebagai ROM atau Disk Image yang merupakan hasil copy dari game-game dalam format cartridge atau disket sistem yang bersangkutan. Misalnya, game Sega hanya akan bekerja apabila dijalankan pada emulator Sega saja.

Melalui penggunaan emulation kita dapat memainkan game-game klasik kesukaan kita seperti Super Mario Bros dan Sonic the Hedgehog di komputer kita. Tentu saja kita tidak dapat begitu saja memasukkan cartridge game ke dalam disk drive komputer. Konsep emulation memang agak sulit untuk dijelaskan tetapi pada dasarnya emulation adalah suatu proses untuk meniru desain internal dari suatu sistem. Untuk menjalankan program pada sistem yang berbeda membutuhkan program pendukung yang disebut emulator. Mendesain emulator itu sendiri tidaklah mudah dan kualitas hasil emulationnya tidak selalu sempurna. Tetapi sekarang ini sudah banyak sekali emulator yang beredar di Internet dan kualitas emulator-emulator tersebut berkisar dari buruk hingga hampir sempurna.

Kinerja Emulator

Kebanyakan emulator tidak mampu untuk secara sempurna meng-emulate sistem yang hendak ditirunya. Contoh dari ketidaksempurnaan tersebut adalah problem pada timing (framerate yang lambat), gambar atau efek video yang tidak benar, suara yang kacau atau bahkan tidak bersuara sama sekali, problem di joystick, dan lain sebagainya.

Membuat Emulator

Memprogram emulator adalah hal yang amat sulit dan dimulai dari mengumpulkan informasi tentang sistem yang hendak di-emulate dan mengakali komputer agar mampu meniru hardware dan instruksi-instruksi yang dijalankan oleh sistem tersebut. Salah satu contohnya adalah menulis program untuk mengemulasi cara kerja processor kuno seperti Apple II atau Intel 8086.

Jenis-jenis emulator

Emulator terdiri dari 2 jenis: single-system/dedicated emulator dan multi-system emulator. Single-system/dedicated emulator hanya dapat meng-emulate 1 jenis sistem, sedangkan multi-system emulator dapat meng-emulate beberapa jenis sistem sekaligus. Pada dasarnya kualitas single-system/dedicated emulator lebih baik daripada multi-system emulator karena hanya didesain khusus untuk 1 jenis sistem sehingga kemungkinan untuk terjadi compatibility problem dapat diminimalisasi. Selain itu kebutuhan resources untuk single-system/dedicated emulator biasanya lebih kecil dibandingkan multi-system emulator.

Mungkin Anda bertanya, apakah semua sistem sudah diemulate? Jawabannya, tergantung. Ada 3 faktor utama yang menentukan kemungkinan suatu sistem diemulate atau tidak:

  • Kepopuleran: Semakin populer suatu sistem, maka semakin banyak orang yang berusaha untuk meng-emulate sistem tersebut.
  • Tersedianya informasi: Semakin banyak informasi yang tersedia tentang suatu sistem (baik hardware maupun software) akan amat membantu proses penulisan emulator.
  • Kesulitan teknis: Banyak sekali game yang diproteksi dengan menggunakan enkripsi. Hal ini akan membuat sulit mengemulasi sistem tersebut. Selain itu, sistem baru seperti halnya Playstation 2 juga sulit untuk diemulasikan karena kebanyakan komputer belum memiliki processing power yang kuat untuk mengemulasikan sistem yang baru.

Fungsi ROM

Emulator tanpa ROM atau Disk Image adalah tidak ada gunanya, karena ROM atau Disk Image inilah yang merupakan game sebenarnya. Perhatikan analogi berikut ini: emulator adalah console game dan ROM atau Disk Image adalah cartridge gamenya. Jadi, console Nintendo tanpa game tidaklah ada gunanya.

Kata ROM dan Disk Image sering dipakai dan dianggap sama. Sebenarnya ROM adalah copy dari cartridge game, sedangkan Disk Image adalah copy dari disket atau CD. Jadi, copy dari game Nintendo adalah ROM dan copy dari game Apple adalah Disk Image.

Ukuran (size) suatu ROM berbeda-beda tergantung sistem yang di-emulasikan, biasanya berkisar antara 1kB hingga 50MB. Kadang-kadang ROM terdiri dari beberapa file yang merupakan suatu kesatuan dalam format ZIP. ROM ini harus di-load melalui emulator untuk dapat dimainkan, jadi ROM tidak dapat dijalankan seperti halnya program .EXE.

Legalitas Penggunaan Emulator

Sekarang, apakah emulation itu legal dan tidak melanggar hukum? Sejauh mata memandang sebenarnya emulator itu sendiri tidak melanggar hukum sejauh emulator tersebut tidak mengandung materi yang di-copyright seperti misalnya BIOS image sistem tertentu. Lain halnya dengan ROM. Pada umumnya semua ROM di-copyright tetapi untuk game klasik kadang-kadang produsen game tersebut bahkan sudah tidak aktif lagi alias sudah tutup. Dengan demikian, ROM tersbut dianggap legal. ROM juga bisa dikatakan legal apabila kita memang memiliki game aslinya.

Catatan

  1. ^ Peter Seebach, developerWorks: Write Emulator-Friendly Linux Code, Linux Today, (2004).

Pranala luar