1 पॉइंट द्वारा GN⁺ 4 시간 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 1989 के गेम F-15 Strike Eagle II के मूल बाइनरी को reverse engineer करके C source code को फिर से बनाने वाला प्रोजेक्ट अब वास्तविक play test चरण में पहुँच गया है
  • egame, end सहित सभी executable फ़ाइलों के code और data को C में स्थानांतरित कर दिया गया है, और अधिकांश assembly-only code के लिए C replacement implementation तैयार है
  • नवीनतम रिलीज़ v0.9.1 में मूल गेम के 451.03 वर्ज़न और Desert Storm expansion pack के साथ मूल executable फ़ाइलों को बदलकर टेस्ट किया जा सकता है
  • नया executable settings screen से नहीं गुजरता और MCGA/VGA, बिना sound, बिना joystick की स्थिति मानकर चलता है, लेकिन mission briefing, flight और debriefing काम करने चाहिए
  • चूँकि लक्ष्य मूल के bugs तक को सुरक्षित रखने वाला bug-for-bug reconstruction है, इसलिए मूल गेम में भी मौजूद व्यवहार अभी bug report का विषय नहीं है

C पुनर्निर्माण प्रोजेक्ट की प्रगति

  • F-15 Strike Eagle II reconstruction एक hobby project है, जिसमें मूल बाइनरी को reverse engineer करके 1989 के इस गेम का C source code फिर से बनाया जा रहा है
  • एक महीने से थोड़ा पहले तक ऐसा लग रहा था कि दूसरे executable egame को C में लाने में अभी कई साल लगेंगे, और तीसरा executable end भी बाकी था
  • अब प्रोजेक्ट यहाँ तक पहुँच चुका है
    • सभी executable फ़ाइलों का C code reconstruction पूरा
    • सभी data को assembly से C में स्थानांतरित किया गया
    • अधिकांश assembly-only code के लिए functionally equivalent C replacement implementation लिखी गई
    • अधिकांश routines और data structures को अर्थपूर्ण नाम दिए गए
    • निकट भविष्य में porting project के लिए repository branch पर विचार किया जाएगा
  • reconstructed opcode मूल के प्रति वफ़ादार हैं या नहीं, यह tools से जाँचा जाता है, लेकिन data layout से जुड़े bugs पूरी तरह नहीं पकड़े जा सकते
  • अब सिर्फ opcode match की जाँच से आगे बढ़कर वास्तव में चलने वाला गेम बनाए रखना है, इसलिए external testing की ज़रूरत है

टेस्ट करने का तरीका और किन समस्याओं की रिपोर्ट करें

  • टेस्ट का लक्ष्य नवीनतम रिलीज़ v0.9.1 है
  • मूल गेम के 451.03 वर्ज़न और Desert Storm expansion pack वाले game folder में नए executable रखकर मूल executable फ़ाइलों को बदलना होगा
    • बदलने से पहले backup ज़रूर लें
    • नए f15.exe की बजाय मूल f15.com चलने से रोकने के लिए मूल f15.com हटाना पड़ सकता है
  • नया executable configuration screen में नहीं जाता
    • यह MCGA/VGA display मानकर चलता है
    • sound नहीं
    • joystick नहीं
  • टेस्ट के दौरान समस्या मिले तो उसे GitHub issue में रिपोर्ट किया जा सकता है
    • crash
    • graphic glitches
    • key input का काम न करना
    • ज़रूरत हो तो dosbox में Ctrl+F5 से लिया गया screenshot संलग्न करें
    • समस्या आने से पहले आपने क्या किया, यह लिखने से reproduction और fix में मदद मिलेगी
  • इस प्रोजेक्ट का लक्ष्य bug-for-bug reconstruction है, इसलिए मूल गेम में मौजूद व्यवहार को बनाए रखना है
    • मूल गेम में 3D objects के गायब हो जाने की समस्या, और उलटी स्थिति में fuel खत्म होने पर विमान का आसमान की ओर गिरने जैसी समस्याएँ हैं
    • रिपोर्ट करने से पहले जाँच लेना बेहतर है कि क्या वही समस्या मूल गेम में भी होती है

1 टिप्पणियां

 
GN⁺ 4 시간 전
Hacker News की राय
  • DOS version खेलने योग्य है
    पहला चरण पूरे गेम को assembler में reverse engineer करना था, और दूसरा चरण assembler को compiled C code में बदलना है ताकि binary एकदम वैसी ही रहे। यह काम DOS पर तब तक जारी रहेगा जब तक assembler code पूरी तरह हट नहीं जाता, उसके बाद Linux और Windows porting शुरू करने का इरादा है
    reverse engineering में नए bug आ जाना आसान है, और इतने पुराने reverse-engineered code में सारे bug ढूँढना भी आसान नहीं, लेकिन अभी तक सब कुछ काम करता हुआ लग रहा है
    अगर आपके पास F-15 version 451.03 है और Dosbox या असली DOS उपलब्ध है, तो खुले bug ढूँढकर बताइए
    नवीनतम DOS release यहाँ मिल सकता है: https://github.com/neuviemeporte/f15se2-re/releases
    f15_se2-*.zip फ़ाइलों में DOS गेम के लिए replacement executable शामिल है
    Air Force needs YOU!

    • मैं USAF veteran हूँ। F-15 Strike Eagle II खेलते हुए बड़ा हुआ, और अफसोस कि मेरी कॉपी बहुत पहले खराब हो गई थी। इस project को देखकर सच में बहुत खुशी हुई
      बस एक बहुत छोटी और निजी सी आपत्ति है, जिससे दूसरी branches फिर यह छेड़ेंगी कि मुझे chair कितनी पसंद है
      Air Force दो शब्द हैं
    • बढ़िया काम
      मुझे नहीं लगता कि Linux port को लेकर ज़्यादा दबाव लेने की ज़रूरत है। emulator support इतना अच्छा और व्यापक है कि अगर यह वहाँ चल रहा है, तो उसे भी बड़ी सफलता माना जा सकता है
      मैं सुविधा के लिए Lutris(https://lutris.net/) इस्तेमाल करता हूँ
      लेकिन आप low-level चीज़ें पसंद करने वाले लगते हैं, तो हो सकता है कि यह अपने-आप में ही एक quest हो, न कि सिर्फ एक शानदार retro game चलाना
    • मैं भी इस समय कुछ games की reverse engineering कर रहा हूँ। आजकल AI की वजह से यह काफी आसान हो गया है
      लेकिन मुझे चिंता है कि यह कानूनी रूप से कुल मिलाकर ठीक है या नहीं। इस पर आपकी राय जानना चाहूँगा
  • यह एक शुरुआती सवाल है। उम्मीद है नकारात्मक नहीं लगेगा
    पुराने game को चलने लायक बनाने में समय लगाना वाकई अच्छी बात है, लेकिन मैं सोच रहा हूँ कि जिसे DOSbox जैसी चीज़ से emulate किया जा सकता है, उस game को decompile क्यों किया जाए। क्या इतने पुराने game बहुत कम-specced hardware पर भी ठीक से नहीं चलेंगे?

    • असली बात game चलाना नहीं, बल्कि उसे modification के लिए खोलना है। binary रूप में मौजूद game को patch करना बेहिसाब मुश्किल होता है, और साधारण bug fix से आगे का काम तो लगभग नामुमकिन के करीब होता है
      source code हो तो आप पूरे feature जोड़ सकते हैं, Windows 10 पर port कर सकते हैं, 4K HDR, texture, नए model, नई mission तक लागू कर सकते हैं। सीमाएँ लगभग खत्म हो जाती हैं
      और hardcoded data offset वाले assembly instructions देखकर game का analysis करना सच में बहुत कठिन है। C code हो तो आप सीधे behavior पढ़ सकते हैं, या instrumentation/debugging code डालकर समझ सकते हैं
    • कुछ साल पहले जब मैंने DOS युग के एक game की reverse engineering की कोशिश की थी, तब उसके कई कारण थे
      मैं file format document करना चाहता था, data खंगालकर unused media ढूँढना चाहता था, गंभीर bug पहचानकर ठीक करना चाहता था, modding tools बनाना चाहता था, और बचपन की किसी यादगार चीज़ को किन techniques से बनाया गया था यह समझना चाहता था
      मैं modern systems पर उसे चलाने की friction कम करना चाहता था, और higher resolution या texture replacement जैसी optional improvements भी संभव बनाना चाहता था
      आखिरकार उसे पूरा करने लायक धैर्य नहीं जुटा पाया, लेकिन अब लगता है कि शायद आज कर पाता
    • floppy-based कई games में उस दौर के disk drive के undocumented behavior का इस्तेमाल करने वाले disk copy protection pattern होते हैं। इसलिए Greaseweazle जैसे tools archived floppy का पूरा magnetic flux map बनाने के लिए ज़रूरी हो जाते हैं
      और ऐसे games अक्सर कई तरह के graphics और sound hardware पर चलने के लिए बनाए जाते थे, इसलिए drivers लगभग game के अंदर ही compiled होते थे
      [0] https://github.com/keirf/greaseweazle
  • यह वह game है जिसे मैंने बचपन में बहुत खेला। F-19 Stealth Fighter, F-117A Nighthawk Stealth Fighter भी खेले थे, और आज पहली बार पता चला कि वे दोनों इस game के आसपास के समय में आए थे। F-14 Tomcat भी थोड़ा खेला था
    अगर मैंने सही पढ़ा है, तो इसे चलाने के लिए original game files चाहिए होंगी। इसलिए लगता है कि मैं इस विमान को फिर उड़ाने से ज़्यादा development log पढ़ूँगा

    • F-19 शानदार game है, और मेरे पसंदीदा Sid Meier titles में से एक है
      मुझे याद है कि मैंने इसे 1980s के आखिर में Electronics Boutique से खरीदा था और घर के Packard Bell 286 पर खेला था। copy protection manual में विमान ढूँढकर पहचानने वाली थी, और नतीजा यह हुआ कि game में मौजूद सारे विमान मुझे याद हो गए
      game खेलने के लिए मैंने Gravis Analog joystick भी खरीदी थी, और keyboard overlay अब भी मेरे पास है
      मैं सच में इस game का modern reboot देखना चाहूँगा
    • क्या यही वह game था जिसमें दोस्त के साथ co-op play में front seat/back seat की भूमिका निभा सकते थे, या वह III था?
      मैं दोस्त को landline पर बार-बार फ़ोन करके modem settings मिलाता था, फिर उसे दोबारा कॉल करने को कहता, फिर game शुरू होता, फिर disconnect हो जाता, फिर क्या हुआ यह देखने के लिए दोबारा फ़ोन करना पड़ता
      जब आखिरकार यह चल पड़ा, तो हम इतने लगातार खेलते रहे कि दोस्त की माँ ने कई-कई घंटों तक एकमात्र phone line घिरे रहने के कारण modem play पर रोक लगा दी
      मैं दूसरे flight simulator या space simulator में भी ऐसा multiplayer ढूँढना चाहूँगा, और इस game को भी फिर चलाकर दोस्त को nostalgia के नाम पर फँसाना चाहूँगा
    • development blog retro reverse engineering journals में सबसे अच्छे में से एक है। इसे पढ़ने में मज़ा आएगा
    • क्या ऐसे नाम trademarked नहीं होते? लगता है Lockheed side income के तौर पर इनके rights बेच सकता है
  • आजकल game porting अविश्वसनीय रूप से आसान हो गई है
    https://robin.tooclever.org को API time के हिसाब से एक दिन से भी कम लगा

    • शानदार। क्या ऐसे ported games या open source ports का कोई index है?
  • मैं सोच रहा हूँ कि symbol names के बिना decompiled project की structure समझने के लिए AI कितना उपयुक्त है
    यह मेरा क्षेत्र नहीं है, लेकिन source map के बिना JavaScript structure की intent AI जितनी अच्छी तरह समझ लेता है, उसे देखकर मैं हैरान रहा हूँ

    • AI assembly पढ़ने और समझने में मानो अतिमानवी है। decompiled हो या symbols हों, उसे ज़्यादा फर्क नहीं पड़ता, बस symbols न हों तो थोड़ा धीमा हो जाता है
      कुछ मामलों में यह tools के बिना भी बहुत भारी obfuscated control flow को सीधे समझ सकता है
    • हाँ, यह बहुत मददगार है
  • अब इस पर YouTube video भी आ गई है: https://youtu.be/aIPKkOpIiF8

    • video बढ़िया है, लेकिन AI narration परेशान करती है
  • मेरा एक दोस्त F15 उड़ाता था, इसलिए मैंने यह उसे भेज दिया

  • ऐसे पुराने game communities अपनी पसंदीदा titles के लिए चार स्वतंत्रताएँ सुरक्षित करने में कमाल का काम करती हैं, और यह सच में प्रेरक है

  • मैंने यह नहीं खेला, लेकिन Jane's F/A-18 खेला है, और वह शानदार game था

    • और Jane's USAF भी था!
  • मैंने उड़ान के दौरान Doppler map बनाकर उसे SLAM launch में इस्तेमाल करने में बहुत समय लगाया
    यह Digital Integrations के Tornado के साथ एक शानदार simulator था, और Tornado को सच में reboot की ज़रूरत है