منصوبے کے بارے میں
JSNES ایک مکمل خصوصیات والا Nintendo Entertainment System (NES) ایمولیٹر ہے جو JavaScript میں لکھا گیا ہے۔ یہ براؤزر اور Node.js دونوں ماحول میں کام کرتا ہے، جس سے یہ ویب پر مبنی ریٹرو گیمنگ پروجیکٹس، ایمبیڈڈ ایمولیٹرز، یا سرور سائیڈ ٹولنگ کے لیے موزوں ہے۔
لائبریری دو اہم انٹری پوائنٹس فراہم کرتی ہے:
- `jsnes.Browser` — ایک اعلیٰ سطحی ریپر جو کینوس رینڈرنگ، Web Audio API پلے بیک، کی بورڈ اور گیم پیڈ ان پٹ، اور فریم ٹائمنگ کو خودکار طریقے سے سنبھالتا ہے۔ یہ URLs یا خام ڈیٹا سے ROMs لوڈ کر سکتا ہے اور اسکرین شاٹس، توقف/دوبارہ شروع، اور صفائی کے طریقے فراہم کرتا ہے۔
- `jsnes.NES` — حسب ضرورت انضمام کے لیے ایک نچلی سطح کا کور۔ یہ کال بیکس کے ذریعے خام فریم بفرز (256×240 ARGB Int32Array) اور آڈیو نمونے خارج کرتا ہے، جس سے ٹائمنگ، رینڈرنگ، اور ان پٹ ہینڈلنگ ڈویلپر پر چھوڑ دی جاتی ہے۔
اہم خصوصیات میں شامل ہیں:
- معیاری NES کنٹرولرز (دو کھلاڑی) کے لیے سپورٹ، جس میں قابل ترتیب کلید بائنڈنگز localStorage میں محفوظ ہوتی ہیں۔
- جدید کنٹرولرز کے لیے Gamepad API سپورٹ۔
- Zapper لائٹ گن ایمولیشن۔
- بیٹری سے چلنے والی SRAM پرسسٹنس بذریعہ کال بیکس برائے محفوظ حالتیں۔
- حالت محفوظ/لوڈ سیریلائزیشن (`toJSON`/`fromJSON`)۔
- قابل ایڈجسٹ فریم ریٹ اور FPS مانیٹرنگ۔
- React کمپوننٹ مثال شامل ہے؛ ایک مکمل React فرنٹ اینڈ `web/` ڈائریکٹری میں موجود ہے۔
انسٹالیشن npm (`npm install jsnes`) یا براہ راست unpkg CDN اسکرپٹ ٹیگ کے ذریعے کی جاتی ہے۔ بلڈ میں Prettier فارمیٹنگ استعمال ہوتی ہے اور ایک ٹیسٹ سوٹ شامل ہے۔
JSNES کی ابتدا James Sanders کے vNES سے ہوئی اور یہ Matt Wescott کے JSSpeccy سے متاثر تھا۔ یہ فعال طور پر برقرار رکھا جاتا ہے اور NEStation جیسے پروجیکٹس میں استعمال ہوتا ہے جو انٹرنیٹ پر ملٹی پلیئر NES کے لیے ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.