منصوبے کے بارے میں
PocketHLE ایک تجرباتی ہائی لیول ایمولیٹر (HLE) ہے جو Pocket PC 2002/2003 اور Windows Mobile 5/6 گیمز کے لیے بنایا گیا ہے، اور اس کا ہدف .CAB آرکائیوز میں پیک شدہ نیٹو ARM Windows CE ایگزیکیوٹیبلز ہیں۔ یہ مکمل Windows CE ڈیوائس کی ایمولیشن کے بجائے اصل گیم ایگزیکیوٹیبل لوڈ کرتا ہے، اس کے ARM کوڈ کو CPU بیک اینڈ کے ذریعے چلاتا ہے، اور گیم کی متوقع Windows CE APIs کی کلین روم ہوسٹ سائیڈ implementations فراہم کرتا ہے۔ یہ touchHLE اور EKA2L1 سے متاثر ہے، اور اس کا لانچر/لائبریری ورک فلو j2me-loader سے متاثر ہے۔
README میں بیان کردہ صلاحیتوں میں شامل ہیں: .CAB آرکائیوز درآمد اور ان پیک کرنا؛ _setup.xml یا بائنری MSCE انسٹال ہیڈر سے طویل فائل نام اور انسٹال پاتھ بحال کرنا؛ مطلوبہ گیم ایگزیکیوٹیبل منتخب کرنا؛ نیٹو ARM اور MIPS PE امیجز لوڈ کرنا اور imports کا معائنہ کرنا؛ Unicorn Engine بیک اینڈ کے ساتھ ARM کوڈ چلانا؛ HLE thunks کے ذریعے درآمد شدہ Windows CE DLL کالز کو intercept کرنا؛ coredll.dll اور aygshell.dll کے لیے ordinal-to-name resolution؛ بنیادی windowing، GDI، GAPI، registry، filesystem، timing، input اور audio paths کی ایمولیشن؛ ڈیسک ٹاپ فرنٹ اینڈ اور Android SurfaceView/OpenGL فرنٹ اینڈ میں سافٹ ویئر framebuffers رینڈر کرنا؛ ڈیسک ٹاپ اور Android پر فی گیم سیٹنگز کے ساتھ مشترکہ گیم لائبریری؛ اور GitHub Actions کے ذریعے Linux/Windows/Android بلڈز۔
پروجیکٹ بتاتا ہے کہ اس کا موجودہ قابلِ تولید ثبوت WVGA پر Asphalt 4 کے کیپچر شدہ PCM آڈیو کے ساتھ، اور Call of Duty 2 کے OpenGL ES لیئر کے ذریعے ٹائٹل اسکرین بوٹ کا احاطہ کرتا ہے؛ دیگر عنوانات (Zuma Deluxe، Bejeweled، Asphalt 2 3D، Crazy Taxi، Diamond Twister، Splinter Cell Conviction) کے لیے proof/ کے تحت compatibility کام یا probes موجود ہیں، لیکن README انہیں مکمل طور پر تصدیق شدہ قرار دینے سے خبردار کرتا ہے۔ یہ واضح طور پر نوٹ کرتا ہے کہ PocketHLE مکمل Windows CE ایمولیٹر نہیں ہے: کچھ گیمز CRT initialization، dynamic imports، worker-thread setup یا غیر نافذ شدہ APIs کے دوران رک جاتی ہیں، اور کامیاب بوٹ یا پہلا فریم اس بات کا مطلب نہیں کہ گیم شروع سے آخر تک کھیلنے کے قابل ہے۔
آرکیٹیکچر کے اجزاء: pocket-cli (CLI/captures)، pocket-desktop (egui لانچر)، pocket-android (Kotlin + JNI)، pocket-core (emulator/VFS)، pocket-cab (CAB انسٹالر)، pocket-pe (ARM/MIPS PE)، pocket-library (گیم ڈیٹا بیس)، pocket-kernel (process/GDI/HLE dispatch)، pocket-cpu (stub/Unicorn)، pocket-winceapi (coredll/gx/hss)۔ اسٹارٹ اپ فلو: CAB extraction اور registry reconstruction، PE parsing، HLE thunks تک IAT patching کے ساتھ image mapping، guest code execution، Rust handlers تک API dispatch، اور host input forwarding کے ساتھ framebuffer display۔
استعمال: ریلیز آرکائیو ڈاؤن لوڈ کریں، قانونی طور پر حاصل کردہ .CAB درآمد کریں، اور ڈیسک ٹاپ یا Android لانچر میں گیم منتخب کریں۔ CLI مثالیں شامل ہیں inspect-cab، --cpu unicorn کے ساتھ run، --dump-frames-to اور --max-frames، نیز pe-info؛ .exe اور .zip inputs supported ہیں، اور --cpu stub صرف trace-only/loader ٹیسٹ کے لیے ہے۔ بلڈ ہدایات Linux (Rust 1.85+، نیٹو GTK/X11/Wayland dependencies، cargo build/test، unicorn feature builds)، Windows (MSVC toolchain + CMake)، اور Android (Android Studio Iguana+، NDK r26+، cargo-ndk، Gradle) کا احاطہ کرتی ہیں۔ لائبریری لے آؤٹ library.json، config.json اور فی گیم ڈائریکٹریز استعمال کرتا ہے جن میں game.json، source.cab اور extracted files ہوتے ہیں؛ ڈیفالٹ مقام ~/.local/share/PocketHLE/library یا پلیٹ فارم کے مساوی ہے۔
روڈ میپ آئٹمز میں CRT اور legacy ARM startup paths مکمل کرنا، dynamic import اور thread/runtime compatibility بڑھانا، resource/GDI/dialog کوریج بہتر بنانا، وسیع gamepad/keyboard/touch mapping، audio mixing، مزید قابلِ تولید compatibility captures، اور ڈیسک ٹاپ/Android UX اور diagnostics شامل ہیں۔ README میں قانونی نوٹس شامل ہے کہ کوئی کاپی رائٹ شدہ Microsoft سسٹم DLLs، فرم ویئر یا گیم اثاثے تقسیم نہیں کیے جاتے، اور API لیئر کلین روم reimplementation ہے؛ صارفین اپنی گیم کاپیوں کے ذمہ دار ہیں۔ لائسنس dual Apache-2.0 OR MIT ہے۔ شراکتیں، compatibility رپورٹس اور traces پروجیکٹ کے Discord کے ذریعے خوش آئند ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.