NES Tetris में नया कोड मिला
- हैकर्स ने गेम के भीतर ही NES Tetris को फिर से प्रोग्राम करने का तरीका खोज लिया है
- यह तरीका गेम समाप्ति पर होने वाले crash से बचने की कोशिश कर रहे high-score चेज़र्स के लिए मददगार हो सकता है
कोड चलाने का तरीका
- NES Tetris के "kill screen" का इस्तेमाल कर memory को manipulate करने की एक जटिल विधि से बिना संशोधित hardware और cartridge पर चल रहे Tetris वर्ज़न में नया व्यवहार कोड किया जा सकता है
- Super Mario World, Paper Mario, The Legend of Zelda: Ocarina of Time जैसे गेम्स में भी इसी तरह के "arbitrary code execution" glitch पहले पाए जा चुके हैं
- NES Tetris में बाहरी कोड लाने का बुनियादी तरीका कम से कम 2021 से सार्वजनिक रूप से सैद्धांतिक रूप में चर्चा में रहा है
- यह तरीका विस्तार से बताता है कि Tetris की high-score table को machine code instructions की तरह पढ़ना कैसे शुरू कराया जाए
कंट्रोलर पोर्ट के साथ दिलचस्प प्रयोग
- NES Tetris में crash तब होता है जब गेम का score processor frames के बीच नया स्कोर निकालने में बहुत ज़्यादा समय ले लेता है
- जब यह देरी होती है, तो control code का एक हिस्सा नए frame-writing routine द्वारा बीच में रुक जाता है और अनजाने में RAM के किसी और हिस्से पर jump करके अगला instruction ढूंढने लगता है
- जापानी वर्ज़न कंसोल Famicom पर चलने पर Tetris संभावित input को जिस तरह संभालता है, उसकी वजह से खिलाड़ी इस jump को manipulate कर सकते हैं
high-score table में कोडिंग
- Displaced Gamers की jump-control विधि के लिए खिलाड़ियों को तीसरे कंट्रोलर पर "ऊपर" और चौथे कंट्रोलर पर दायां, बायां और नीचे दबाकर रखना होता है
- ऐसा करने पर jump code गेम की high-score list के नाम और स्कोर स्टोर करने वाले RAM क्षेत्र में भेजा जाता है, जिससे खिलाड़ियों को अपने नियंत्रण में एक बड़ा RAM surface मिल जाता है
- high-score table के लक्षित हिस्से में "(G" डालने से गेम को high-score table के किसी दूसरे हिस्से पर jump करने के लिए मजबूर किया जा सकता है
- इसके बाद नाम और स्कोर NES CPU के लिए opcode के रूप में क्रमवार पढ़े जाने लगते हैं
- हालांकि नाम इनपुट क्षेत्र में इस्तेमाल किए जा सकने वाले symbols सिर्फ 43 हैं और high score का हिस्सा बन सकने वाले अंक केवल 10, इसलिए उपलब्ध NES opcode instructions में से केवल कुछ को ही high-score table में "कोड" किया जा सकता है
- battery-backup save system न होने की वजह से हैकर्स को हर बार Tetris शुरू करते समय ये high scores हाथ से हासिल करने और जटिल नाम दर्ज करने पड़ते हैं
GN⁺ की राय
- यह हैरान करने वाली बात है कि Tetris के NES वर्ज़न में ऐसी छिपी हुई क्षमता मौजूद थी। लगता है उस समय यह खोज नहीं हो पाई थी, और अब कई दशक बाद इसका सामने आना और भी दिलचस्प है।
- Famicom के expansion port का इस्तेमाल करके ऐसा hack संभव होना भी रोचक है। भले ही Nintendo ने यह इरादतन नहीं किया होगा, लेकिन इससे NES की तुलना में फीचर-समृद्ध Famicom की खूबियां ज़रूर सामने आती हैं।
- ऐसे bug का इस्तेमाल करके उल्टा crash रोकने वाला code डालने का विचार भी काफ़ी चतुर है। सैद्धांतिक रूप से यह gameplay को जारी रखने देता है, इसलिए high-score चुनौती में यह बहुत मददगार हो सकता है।
- लेकिन इस तरीके को इस्तेमाल करने के लिए हर बार गेम शुरू करते समय जटिल setup करना पड़े, यह असुविधाजनक लगता है। व्यावहारिक इस्तेमाल के लिए इसे और automated बनाने का तरीका चाहिए होगा।
- कुल मिलाकर, यह तरीका सामान्य खिलाड़ियों की तुलना में high-score के शौकीनों या programming में रुचि रखने वालों को ज़्यादा आकर्षित करेगा। इसका व्यापक उपयोग होना मुश्किल लगता है।
1 टिप्पणियां
Hacker News टिप्पणियाँ
सारांश: