Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
Sayfa: [1]   Aşağı git
Yazdır
Gönderen Konu: JSSpeccy! Java SCRIPT spectrum emülatorü  (Okunma Sayısı 9358 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« : Ekim 20, 2008, 11:05:17 ÖÖ »

Gasman (http://matt.west.co.tt/), yani spectrum sahnesinin ingiltere dahisi, durduk yere dellenerek yeni bir zx spectrum emülatörü yazmış hem de javascript ile

Java script diyorum, java applet değil.

Eğer browserınız yeni nesil teknolojileri destekliyorsa (örnek: putImageData arayüzü) iyi bir makinede kabuledilebilir bir hızda çalışıyor. Ama hala internet explorer kullanıyorsanız biraz sorun var. Çünkü ie bu teknolojiyi de henüz desteklemiyor bu yüzden matt Google explorer canvas'ı eklemiş projeye, fakat bende yine de çalışmadı. Çalışsa bile yavaş çalışacaktı zaten, çünkü normalde internal halledilmesi gereken komutları JS ile simüle edeceklerdi.

ie kullanıcıları, yol yakınken düzgün bir browser'a geçmek için bir başka sebep çıktı size. Opera, chrome ya da firefox önerilir.

Şu durumda Firefox'da %50 hızda, chrome üzerinde %30 hızda çalışıyor.

http://jsspeccy.zxdemo.org/

Kaynak kodu:

http://jsspeccy.zxdemo.org/jsspeccy-20081019.zip
Logged

Skate
Uzman
*****
Mesaj Sayısı: 1.477


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #1 : Ekim 20, 2008, 12:01:09 ÖS »

süpermiş. acayip hoşuma gitti proje. Fakat bende Chrome üzerinde Firefox'un 2 kat hızında çalıştı diyebilirim ki Chrome sanki %100'e yakındı.
Logged
MeG
Deneyimli
*****
Mesaj Sayısı: 635


Super Kahraman


Üyelik Bilgileri WWW
« Yanıtla #2 : Ekim 20, 2008, 13:12:28 ÖS »

Çüş artıkkkk....!!!

Kahkaha
Logged
LW3D
Yönetici
*****
Mesaj Sayısı: 11.334


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #3 : Ekim 20, 2008, 14:34:29 ÖS »

javascript olarak, bir sitede fps görmüştüm.. Ondan sonra beni bişey şaşırtmaz
Logged

Skate
Uzman
*****
Mesaj Sayısı: 1.477


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #4 : Ekim 20, 2008, 14:55:55 ÖS »

@LW3D: JavaScript'den raycasting enginelerle FPS yapmak başka şey, emulator yapmak başka şey.

özellikle binary dosyalarla nasıl çalıştığını merak etmiştim adamların JavaScript ile. hem rom hem de snapshotları düz bir stringin içine escape karakterlerle yerleştirmiş oradan okuyorlar. yani sıradan bir spectrum rom dosyasını ya da spanshop binarysini doğrudan kullanamıyor, convert edilip source code'un içine yerleştirmesine ihtiyaç duyuyor. yine de ufak bir converter tool ve source code'da minik bir modifikasyon ile çok rahat genelleştirilebilir bu kod. hatta server side bir dil (mesela PHP) kullanılarak binary snapshot dosyası upload edilip doğrudan JS'e uygun hale convert edilip çalıştırılabilir. potansiyel sağlam kısacası. tabii şu anlık emülasyon çok sınırlı gözüküyor. herhangi bir hardware trick'i emüle edemeyeceği gibi cycle exact bir kod çalıştırması da imkanlı değil.
Logged
Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #5 : Ekim 20, 2008, 15:54:05 ÖS »

herhangi bir hardware trick'i emüle edemeyeceği gibi cycle exact bir kod çalıştırması da imkanlı değil.
hehe gasman'dan herşey beklenir. aslında kodu ünlü zx emulatörü Fuse'dan aldığı için teorik olarak cycle exact çalışıyor olmalı. Ama sonucu öyle göremiyoruz elbette
Logged

LW3D
Yönetici
*****
Mesaj Sayısı: 11.334


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #6 : Ekim 20, 2008, 16:10:26 ÖS »

Alıntı
@LW3D: JavaScript'den raycasting enginelerle FPS yapmak başka şey, emulator yapmak başka şey.


konunun uzmanı sizsiniz, ama javascriptin aşağıdaki gibi birşey üretiyor olması benim için oldukça fazlaydı...

http://www.abrahamjoffe.com.au/ben/canvascape/textures.htm
Logged

Skate
Uzman
*****
Mesaj Sayısı: 1.477


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #7 : Ekim 20, 2008, 16:40:03 ÖS »

@LW3D: Görünüşte süper olduğunu kabul ediyorum. Ancak teknik olarak ray casting oldukça basit ve biraz da fake bir 3d tekniğidir. Bu örnekte gördüğün Wolfenstein'da kullanılanın birebir aynısı diyebiliriz.

Şöyle düşünebilirsin olayı. Ray tracing'de çözünürlük çarpımı kadar ray atılır. Yani 320x200 gibi bir çözünürlükte 64000 ray atarsın. Onlar ideal hesaplamada birkaç iterasyon sekerler, gözge yaratırlar, transparan yüzeylerden geçerler v.s. v.s. (sen benden iyi bilirsin işin bu kısmını). Ray casting'de ise yatay çözünürlük kadar (320x200 için 320 örneğin) ray atılır. Bu ray'in duvarla buluştuğu mesafe'ye oranla dikey bir çizgi çizilir ve çok basit bir interpolasyonla dikey bir bloğa texture kaplanır. Yöntem ve formül o kadar basit ki sonuç harika gözükse bile aslında olayda 3d hiçbir hesaplama yoktur diyebiliriz. Tüm hesaplama 2d'dir. Bunu ben voxel landscapelere benzetmişimdir hep bu yönüyle. Tüm inputlar 2d, output 3d. Yani 80286 ailesinde, hatta hatta Commodore 64'de bile başarılı uygulamaları olan ray casting'in JavaScript'den yapılması beni çok etkilemiyor.

Emulator olayına gelince... Beni asıl düşündüren binary dosyalar üzerinde JavaScript'den uğraşmak konusuydu ki zaten düşündüğüm gibi bunu bir convertion gerektirecek şekilde çözebilmişler. Aslında V8 gibi JavaScript'in hızını arttıran yeni engineler çıktıkça teoride C'den kodlanabilen herhangi birşey browserdan da kodlanabilir (canvas v.b. modern browser tagleri sağolsun).
Logged
Sayfa: [1]   Yukarı git
Yazdır
Gitmek istediğiniz yer: