Space Quest II मास्टर डिस्क की गलती
(lanceewing.github.io)Space Quest II मास्टर डिस्क की गलती
- 22 मई 2024
- इस डिस्क की बाहरी शक्ल में कुछ भी खास नहीं है, लेकिन इसमें संग्रहीत डेटा में कुछ ऐसा खास है जिसके बारे में Sierra On-Line को शायद बिल्कुल पता नहीं था, और जिसे वह इसमें शामिल नहीं करना चाहती।
- अगर आपके Sierra adventure game collection में 720KB floppy disk है, तो आप अकेले नहीं हैं।
- Space Quest II के version 2.0D और 2.0F दुर्लभ नहीं थे।
एक साधारण directory listing
- डिस्क की file listing देखने पर कुछ भी असामान्य नहीं दिखता।
- version 2.0D की listing देखें तो यह किसी दूसरी Sierra game disk से अलग नहीं लगती।
- timestamp दिखाते हैं कि game की मुख्य data files (PICDIR, LOGDIR, VIEWDIR, SNDDIR, VOL.0, VOL.1) 14 मार्च 1988 को बनाई गई थीं।
- .OVL files 15 मार्च 1988 को, और AGI interpreter code 18 मार्च 1988 को बनाया गया था।
- directory listing में अजीब बात यह है कि डिस्क की "unused" space, used space से ज्यादा है। 302,918 bytes उपयोग में थे और 402,432 bytes unused दिखाए गए थे।
hex editor का उपयोग
- डिस्क में क्या है, इसे और विस्तार से देखने के लिए hex editor नाम का एक tool चाहिए।
- 1980s में Norton Utilities अक्सर इस्तेमाल होता था, और आज Maël Hörz द्वारा लिखा गया HxD Hex Editor एक बेहतरीन विकल्प है।
- नए format किए गए DOS floppy disk में unused sectors, 0xF6 byte value से भरे होने चाहिए।
- Space Quest II version 2.0D की disk 2 में यही स्थिति है, लेकिन disk 1 में 0xF6 bytes से भरे sector बिल्कुल नहीं हैं।
- disk 1 के unused sectors किसी C source code जैसे डेटा से भरे हुए हैं।
- इससे यह मजबूत संकेत मिलता है कि master disk पहले किसी और काम के लिए इस्तेमाल हुई थी, और files delete होने के बाद उसे ठीक से format नहीं किया गया।
AGI interpreter source code
- hex editor में डेटा देखने पर वह text जैसा दिखता है।
- ASCII text को text editor में copy करके देखने पर वह C source code जैसा लगता है।
- दो functions defined हैं, एक DisplayStatusLine और दूसरा StatusLineOn।
- DisplayStatusLine function वर्तमान score और sound status दिखाने वाली text line प्रदर्शित करता हुआ लगता है।
- यह source code, AGI interpreter का हिस्सा है।
- hex editor में और unused sectors scroll करने पर बड़ी मात्रा में source code मिलता है।
- यह source code लगातार sectors में stored है, इसलिए इसे extract करना आसान है।
- कुल 93 files में बंटा हुआ है, जिनमें 75 C source files, 16 assembly language source files, और 2 DOS BAT files शामिल हैं।
- कुल 15,000 से अधिक lines of code हैं और ज्यादातर files पूर्ण हैं।
- इस Space Quest 2 game disk में Sierra On-Line के AGI interpreter source code का लगभग 70% शामिल है।
source files का revision history
- कुछ source files में header comments के भीतर revision history शामिल है।
- उदाहरण के लिए, ANIMATE.C source file के header comment में file name, function description, compiler name (MWC), और revision history शामिल है।
- programmers अपने initials से अपनी पहचान बताते थे।
- JAS, AGI interpreter code पर काम करने वाले मुख्य programmer Jeff Stephenson को दर्शाता है, और DCI, Chris Iden को।
- Robert Heitman का भी उल्लेख है, लेकिन उनका मुख्य फोकस graphics tools पर था।
AGI.EXE memory map
- SQ2 2.0D 720KB disk 1 में AGI.EXE executable file का memory map भी शामिल है।
- memory map, AGI interpreter बनाने वाले modules और source files की सूची देता है।
- कुल 98 source files का उल्लेख किया गया, जिनमें से 71 पूरी तरह SQ2 disk में शामिल हैं।
- इसका मतलब है कि AGI interpreter source code का लगभग 70% SQ2 disk में शामिल था।
Sierra की intellectual property
- 1984 में Sierra On-Line अपना business चलाए रखने के लिए संघर्ष कर रही थी।
- King’s Quest की सफलता ने उनकी किस्मत बदलने में बड़ी भूमिका निभाई।
- AGI adventure game system और उससे बने games, Sierra On-Line की मुख्य revenue source थे।
- AGI interpreter source code, Sierra की मुख्य intellectual property थी।
- source code का 70% बड़ी संख्या में copy होकर customers को भेजा जाना एक बहुत बड़ी गलती थी।
यह कैसे हुआ?
- जब किसी game का नया version तैयार होता था, तब "production copy" master disk बनाई जाती थी ताकि FormMaster disk duplication machine में उसका उपयोग किया जा सके।
- यह machine डिस्क के हर byte की copy करती थी।
- Space Quest II version 2.0D और 2.0F की disk 1 को बिना format किए इस्तेमाल किया गया था।
- इसकी वजह से लाखों नहीं तो कम-से-कम बहुत बड़ी संख्या में SQ2 disks में AGI interpreter source code का 70% शामिल हो गया।
टल गया संकट
- लगभग निश्चित रूप से यह एक अनजानी गलती थी।
- Sierra, उसके competitors, और customers में से किसी ने भी इस तथ्य पर ध्यान नहीं दिया।
- अक्टूबर 2016 में इसे पहली बार online user NewRisingSun ने खोजा।
- क्योंकि यह AGI युग के अंत में हुआ था, इसलिए यह कोई बड़ा संकट नहीं बना।
- यह digital archaeology की एक दिलचस्प कहानी है, और इससे देखने को मिलता है कि Sierra On-Line ने AGI interpreter कैसे लिखा था।
रुचि रखने वालों के लिए, निकाला गया AGI interpreter source code GitHub repository पर upload किया गया है: https://github.com/lanceewing/agi
AGILE, web-based AGI interpreter को भी देखें। यह implementation मूल AGI source code से निर्देशित थी।
GN⁺ की राय
- digital archaeology का महत्व: यह लेख digital archaeology के महत्व को दिखाता है। पुराना software और data ऐतिहासिक और तकनीकी मूल्य रखते हैं।
- security mistake से सीख: यह घटना data security और management के महत्व पर जोर देती है। sensitive data संभालते समय हमेशा thorough verification और formatting जरूरी है।
- तकनीकी प्रगति का प्रमाण: AGI interpreter source code 1980s के game development की तकनीकी प्रगति को दिखाता है। यह आज के developers को प्रेरणा दे सकता है।
- open source की ताकत: मूल source code के सार्वजनिक होने से आज के developers को इसका अध्ययन करने और नए projects में इसका उपयोग करने का अवसर मिलता है।
- competitors का जोखिम: अगर यह source code उस समय competitors को मिल गया होता, तो Sierra On-Line की competitive edge को बड़ा नुकसान हो सकता था। यह companies की intellectual property की रक्षा के महत्व की याद दिलाता है।
1 टिप्पणियां
Hacker News राय
Hacker News टिप्पणियों का संक्षिप्त सार
Double Dragon II: The Revenge for DOS (1989)
DIRcommand से यह दिखाई नहीं देता था, लेकिन इसे आसानी से recover किया जा सकता था.Synthesizer ROM reverse engineering
बचपन की गेम यादें
AGI engine के रहस्य
Memory map और source code
HxD Hex Editor
Air Fortress का ROM
हाथ से जारी किए गए release artifacts
Source code की खोज
Change history comments