- Hyper Neo Geo 64 एक 3D arcade system था, जिसे SNK ने 1997 से 1999 तक सिर्फ 2 साल चलाया। कुल 7 गेम जारी हुए और इसके बाद इसका जीवन छोटा ही रहा। यह 2D से 3D की ओर बदलाव के दौर का एक प्रयोगात्मक प्लेटफ़ॉर्म था
- MAME डेवलपर David Haywood ने 2004 से शुरू किया हुआ 21 साल लंबा emulation कार्य अब लगभग पूरा कर लिया है, और अब graphics, input के साथ-साथ sound emulation भी सही तरह काम कर रहा है
- पिछले एक महीने में R. Belmont सहित MAME contributors ने sound synthesis और filter processing के तरीकों की समस्याएँ हल कीं, जिससे तेज़ी से सुधार हुआ। अक्टूबर में आने वाले MAME 0.282 में पूर्ण audio support मिलेगा
- Emulation development के दौरान I/O microcontroller dump, V53 CPU core improvements जैसे आसपास की तकनीकों में हुई प्रगति ने अहम breakthrough दिया, और synthesizer emulation के काम के साथ हुई अप्रत्याशित synergy ने भी योगदान दिया
- यह मामला emulation development की प्रकृति को अच्छी तरह दिखाता है: सालों तक चलने वाला अदृश्य काम, धैर्य, और कई तकनीकी हिस्सों का एक-एक करके जुड़ना, जिससे यह एक सहयोगी प्रक्रिया के रूप में पूरा होता है
Hyper Neo Geo 64 emulation की लंबी यात्रा
- जब David "MameHaze" Haywood ने 2004 में Hyper Neo Geo 64 emulation पर काम शुरू किया, उस समय MAME में 3D गेम support लगभग नहीं था, MIPS CPU core भी शुरुआती अवस्था में था, और I/O microcontroller dump तक उपलब्ध नहीं था
- उस समय PC memory 2D graphics को load और decode करने के लिए भी पर्याप्त नहीं थी
- YouTube से पहले का दौर होने के कारण reference material जुटाना भी बहुत कठिन था
- आज इस platform emulation में रुचि रखने वाले कई युवा वयस्क तब पैदा भी नहीं हुए थे जब यह काम शुरू हुआ था
- कुछ हफ्ते पहले Haywood ने इस system को MAME में "working" status दे दिया, लेकिन यह कुछ हद तक औपचारिक कदम था
- उचित sound emulation अभी भी नहीं था, और Haywood ने 2023 के बाद core work नहीं किया था
- उनका मानना था कि लोग इतने समय से बिना आवाज़ के गेम खेलते आए हैं, इसलिए "working" label देना उचित है
- यही बात दूसरे MAME contributors के लिए sound सुधार पर काम शुरू करने का कारण बनी
Hyper Neo Geo 64 system का संक्षिप्त परिचय
- यह 1997 से 1999 तक सिर्फ 2 साल arcade में सक्रिय रहा, और कुल 7 गेम जारी हुए
- Road's Edge
- Samurai Shodown 64
- Xtreme Rally
- Beat Busters: Second Nightmare
- Samurai Shodown 64: Warriors Rage
- Fatal Fury: Wild Ambition
- Buriki One
- ये गेम अपने-आप में emulation के लिए बहुत मज़बूत प्रेरणा नहीं देते थे, लेकिन हर arcade system को reverse engineer करके संरक्षित करने की MAME टीम की प्रतिबद्धता ने इस project को जारी रखा
- Capcom के CPS3 board का encryption टूटने के बाद support जल्दी जुड़ गया था, लेकिन Hyper Neo Geo 64 के लिए 21 साल की रुक-रुक कर चलने वाली कठिन मेहनत करनी पड़ी
Emulation development की अदृश्य मेहनत
- Haywood ने कहा, "लोग emulation के बारे में सच में यह नहीं समझते कि ऐसे काम में कितना समय देना पड़ता है जहाँ कोई सकारात्मक परिणाम ही नहीं मिलता"
- उन्होंने Hyper Neo Geo 64 driver पर कई बार काम किया, हफ्तों लगाए, लेकिन कोई प्रगति नहीं हुई, ऐसा अनुभव बार-बार हुआ
- सब कुछ समझने की कोशिश करने के बाद भी अंत में सिर्फ यह निष्कर्ष मिलता था कि "यह ऐसे काम नहीं करता" — जो बेहद निराशाजनक था
- कुछ साल पहले I/O microcontroller dump किया गया, और Haywood ने उसे emulate करने के लिए CPU core लिखा, जिसके बाद वास्तविक प्रगति मिली
- कई गेमों में input काम करने लगे और इससे video सुधार पर आगे काम संभव हुआ
- दूसरे system के लिए विकसित किया गया V53 CPU support बाद में sound DSP चलाने में निर्णायक साबित हुआ
Sound emulation में तेज़ प्रगति
- जब Haywood ने platform को "working" चिह्नित किया, तो इसने R. Belmont सहित MAME contributors का ध्यान खींचा
- Belmont, Happy, O. Galibert आदि ने पिछले एक महीने में गेम की आवाज़ सही करने पर काम किया
- Happy द्वारा लिखी गई sound CPU program की विस्तृत disassembly बहुत उपयोगी साबित हुई
- Belmont और Galibert MAME में synthesizer support पर काम कर रहे थे, और Hyper Neo Geo 64 की sound chip synthesizer में भी इस्तेमाल होती थी, इसलिए विशेषज्ञता का सुविधाजनक overlap बन गया
- मौजूदा MAME release 0.281 में Belmont द्वारा YouTube वीडियो में दर्ज की गई तेज़ी से हुए कई सुधार शामिल हैं
- basic sample start और stop को सही तरीके से काम करने के लिए ठीक किया गया
- volume envelope के लिए प्रारंभिक support जोड़कर audio balance सुधारा गया
- हर voice के लिए low-pass filter जोड़ने से high-frequency noise साफ़ हुई और sound ज़्यादा साफ़ सुनाई देने लगा
MAME 0.282 में मुख्य सुधार
- अक्टूबर में आने वाले MAME 0.282 में Xtreme Rally की audio समस्याएँ हल होंगी और कुल गुणवत्ता बेहतर होगी
- Olivier Galibert ने 12-bit dynamic range को 8-bit में compress करने का तरीका समझा और उसे अधिक उपयुक्त Chamberlin filter से बदलकर काफ़ी अधिक स्पष्ट और high-fidelity sound हासिल किया
- looping sample वास्तव में कैसे काम करते हैं, यह समझा गया; final mixdown में distortion न हो, इसके लिए सुधार किए गए; और filter envelope को ठीक कर Beast Busters Second Nightmare intro में नाटकीय सुधार हासिल हुआ
- Xtreme Rally के खास code issue का समाधान
- इस गेम में sound commands को जितनी जल्दी हो सके sound CPU तक भेजने वाला अनोखा code था, जिससे commands का 2/3 हिस्सा खो जाता था
- समस्या ठीक की गई ताकि सभी commands पहुँचें, और अब Xtreme Rally बहुत अच्छा सुनाई देता है
- MAME 0.282 जारी होने पर Hyper Neo Geo 64 सचमुच "working" label के योग्य स्थिति में होगा
सहयोगी project का बेहतरीन उदाहरण
- Galibert ने Reddit पर कहा कि यह योगदान synthesizer emulation में उनकी रुचि से शुरू हुआ, लेकिन "मज़ेदार बात यह है कि synthesizer खुद (MPC3000) अभी भी बिल्कुल काम नहीं करता"
- Synthesizer के कुछ हिस्से अब भी dump नहीं हुए हैं और उनका documentation नहीं है, लेकिन कभी-कभी आपके पास मौजूद एक टुकड़ा किसी बिल्कुल अलग पहेली में फिट बैठ जाता है
- Haywood ने कहा, "यह बस एक लंबी और धीमी प्रक्रिया थी," और "सालों में थोड़ा-थोड़ा आगे बढ़ते हुए, और MAME का आसपास का code बेहतर और अधिक सक्षम होता गया, तो कदम-दर-कदम ज़्यादा प्रगति संभव हुई"
3 टिप्पणियां
सिर्फ 7 गेम्स को सपोर्ट करने वाले कंसोल के लिए इतनी मेहनत करना, वाकई कमाल है।
इम्यूलेटर को तराशने वाले बुज़ुर्ग... हाहा
Hacker News टिप्पणियाँ
यह सचमुच शानदार मेहनत है, लेकिन इससे Byuu की लिखाइयाँ और हाल की Dolphin devlog की याद आती है। मैं Shonumi का डेवलपमेंट ब्लॉग भी ज़रूर recommend करना चाहूँगा। यह ब्लॉग Gameboy और GBA के दुर्लभ या emulation के लिए मुश्किल peripherals पर बात करता है, जैसे infrared modem से लेकर sonar-आधारित fish finder तक Shonumi devlog
Byuu वाकई कमाल के इंसान थे। मुझे याद है जब उन्होंने आकर emulator compatibility सुधारने में बड़ी भूमिका निभाई थी। Byuu ने दुनिया में जो सकारात्मक बदलाव लाए, वे आज भी लंबे समय तक याद आते हैं
Dolphin में भी इस बारे में बेहद दिलचस्प लेख हैं कि Factor 5 games चलाने के लिए कितनी मेहनत की गई। fixed hardware environment में performance को अधिकतम करने के लिए सचमुच चौंका देने वाले tricks इस्तेमाल किए जाते हैं। इनकी असली अहमियत कई साल बाद तब समझ आती है जब कोई emulator पर इस software को चलाने की कोशिश करता है
मैं सोच रहा हूँ कि क्या किसी को ऐसा PC emulator पता है जो Soundblaster emulation के ज़रिए mic input को सही तरह support करता हो। मुझे archive.org पर 1994 के आसपास public किया गया अपना पहला app मिला, वह एक music visualizer है और उसे audio input चाहिए
Shonumi devlog का Battle Chip Gate पर लेख ने बचपन की यादें ताज़ा कर दीं। मैं बचपन में GBA के Battle Network का fan था, और Mega Man forums में हिस्सा लेने के लिए GameWinners.com से online community activity शुरू की थी। मेरा पहला nickname भी MMBN2 के एक नए feature से लिया गया था। Battle Network जैसे game की वजह से मुझे पुराने games के preservation में दिलचस्पी हुई, और game के AI तथा cyberworld settings अजीब तरह से भविष्यद्रष्टा लगते हैं। internet से सीधे जुड़े PCs, हर व्यक्ति के लिए customized AI, digital दुनिया की जटिलता को navigate कराने वाले AI agents, cybercrime और hackers, और यहाँ तक कि timeless digital vulnerabilities या environmental control systems की hacking—इसने सचमुच भविष्य की हैरतअंगेज़ तस्वीर दिखाई थी। MMBN2 की वजह से मैंने English सीखी और programmer बना। आज भी उसे याद करके खुशी होती है
यह हैरानी की बात है कि MAME project 28 साल से भी ज़्यादा समय बाद भी मूल रूप से लगभग वैसा ही है और अब भी सक्रिय रूप से विकसित हो रहा है। शायद इसकी वजह बेहद समर्पित developer community है
जब C++ codebase में C++ code generate करने वाला code, build process को फिर generate करने वाला build process, और हर साल file names बदल देने पर अड़े रहने वाले व्यक्ति की ज़िद जुड़ जाए, तो सचमुच किसी गुफा में रहने वाले संन्यासी जैसा माहौल बन जाता है
technically यह ठीक-ठीक fork नहीं था, लेकिन एक समय MESS नाम का अलग project मौजूद था, जिसने scope को non-arcade systems तक बढ़ाने की कोशिश की और फिर दोबारा integrate हो गया
Final Burn Alpha/Neo जैसे लोकप्रिय fork भी हैं
जिन बातों का मुझे संयोग से पता चला उनमें एक बेहद दिलचस्प बात यह थी कि यह SGI/IRIX तक emulate करता है
वास्तव में कई forks मौजूद हैं, लेकिन वे सचमुच ‘महत्वपूर्ण’ fork माने जाएँगे या नहीं, यह कहना मुश्किल है। और यह भी देखा है कि समर्पित mame developers बाहरी code का बहुत सख्ती से मूल्यांकन करते हैं
मुझे ऐसे लेख बहुत पसंद हैं। इससे महसूस होता है कि game emulation ने कई लेखकों की गहरी technical क्षमता को निखारा है। मुझे चिंता है कि Xbox One X जैसी प्रणालियों में दिखने वाला बेहद कठिन और hardware की गहराई में धँसा हुआ DRM कहीं भविष्य में सांस्कृतिक विरासत की प्रदर्शनी में एक बहुत बड़ा खालीपन न छोड़ दे। DRM की एक बड़ी सामाजिक कीमत है, जिसे हम शायद अभी पर्याप्त रूप से समझ नहीं पाए हैं
दस से भी कम games के लिए emulation developers का इतना समर्पण सचमुच अद्भुत है
कम games वाले platforms में भी कभी-कभी कोई एक game का बड़ा fan बन जाता है और फिर उसे गहराई से analyze करता है। मैं भी T-Mek का fan हूँ और एक खराब machine को खलिहान में रखा है। यह सिर्फ दो games वाला system है, लेकिन MAME में इसे ठीक से चलाने लायक protection तोड़ने के लिए किसी ऐसे व्यक्ति की ज़रूरत होती है जिसके पास दिलचस्पी, कौशल और equipment तीनों हों
कभी ऐसे लोग थे जिन्होंने precompiled Habbo DCR को standalone desktop app के रूप में चलाने का तरीका खोज लिया था, और इसी वजह से Habbo Origins आज भी मौजूद है। Sulake के एक employee ने भी इसे खुद आज़माया था, और वह employee वास्तव में Habbo Retro/Emulator scene से आया था। reverse engineering scene सचमुच बेहद दिलचस्प community है
कुछ arcade hardware पूरी तरह custom boards पर बने थे जो सिर्फ एक ही game के लिए बनाए गए, या ऐसे chips के साथ जो फिर कभी reuse नहीं हुए। MAME का mission भले स्पष्ट हो, लेकिन SNK, Samurai Shodown और Fatal Fury की वजह से HNG64 हमेशा दिलचस्पी का केंद्र रहा है
अतीत को दर्ज करना और संरक्षित करना बहुत अर्थपूर्ण काम है
ऐसे मौकों पर passionate शब्द सबसे उपयुक्त लगता है
28 साल बाद भी MAME के अलग-अलग हिस्सों में दिलचस्प बदलाव जारी हैं। यह सिर्फ arcade machines तक सीमित नहीं रहा, बल्कि कम-ज्ञात home consoles, vintage computers और तरह-तरह के hardware तक फैल चुका है। हाल में legendary Yamaha MU series जैसे professional music synthesizers की emulation प्रगति दिलचस्प लगी Yamaha MU-series wiki. 80 के दशक के आखिर में PC games ने MIDI soundtracks को support करना शुरू किया, लेकिन ज़्यादातर gamers केवल सीमित PC sound cards पर उसका एक बदला हुआ रूप ही सुन पाते थे। अगर आपके पास पर्याप्त पैसे होते तो Roland Sound Canvas जैसे external MIDI modules पर उसे कहीं अधिक जीवंत सुन सकते थे, लेकिन असली शिखर 64-voice Yamaha MU80 था। जब मैंने पहली बार MU80 की sound सुनी, तब एहसास हुआ कि मैं क्या miss कर रहा था MU80 Demo Song. अब MAME की वजह से इस महंगे professional hardware का अनुभव केवल software emulation से खुलकर लिया जा सकता है
मुझे याद है कि Packard Bell Pentium 166 के साथ आने वाला MIDI music बहुत अजीब और ख़ास अच्छा नहीं लगता था। उस समय मुझे पता ही नहीं था कि ऐसे high-end devices पहले से मौजूद थे। YouTube पर Sound Blaster और MU80 की comparison video देखी तो वाकई हैरानी हुई तुलना वीडियो
पता नहीं वह दिन कब आएगा जब हम AI से 90s nostalgia से भरा fantasy game दोबारा बनाने को कह सकेंगे
मैं सोच रहा हूँ कि क्या यह तरीका CAPCOM के पुराने arcade systems में इस्तेमाल हुई उस अजीब battery DRM पद्धति जैसा है, जिसमें power बंद होने पर CAPCOM से दोबारा reprogram कराना पड़ता था
लगता है यह उससे अलग है। शायद आप CPS, खासकर मशहूर CPS2 boards की बात कर रहे हैं। उनमें battery anti-copying device को चलाती थी, और battery voltage एक सीमा से नीचे जाते ही security key memory से मिट जाती थी। इस तरह ROM encrypted ही रह जाता था। machine को on/off करने से कोई समस्या नहीं होती थी। बल्कि CPS2 battery कभी-कभी महत्वपूर्ण components को damage कर देती थी, इसलिए उसे ‘suicide battery’ भी कहा जाता था। अब कई तरीकों से protection हटाई जा सकती है। decrypted Phoenix ROM इस्तेमाल करना हो या Infinikey PCB solder करके ROM के भीतर की key को board power supply से संभालना—कई रास्ते हैं। दूसरी ओर HNG64 शायद सिर्फ इसलिए कम analyze हुआ क्योंकि उसका hardware ज़्यादा पेचीदा था
यह प्रणाली दो चरणों में काम करती थी। program ROM और CPU के बीच एक proprietary decrypter chip थी, और यह chip एक छोटे SRAM में stored table का इस्तेमाल करती थी, जिसे battery power मिलती थी। power जाते ही—चाहे battery खत्म हो जाए या hacking attempt हो—decryption key भी गायब हो जाती थी। संयोग से पता चला कि FC1 pin decrypter chip से जुड़ी हुई थी, और वास्तव में सिर्फ program ROM encrypted था। जब 68000 CPU instructions माँगता था, तो वह एक खास signal भेजता था जिससे decrypter तय करता था कि decrypt करना है या नहीं। लेकिन PC-relative addressing mode भी वही signal देता था, और इसी से encrypted instructions निकाली जा सकीं। शायद एक और protection की वजह से chip थोड़ी देर बाद काम करना बंद कर देती थी। बाद में CPS boards पर आधारित home consoles और SF Zero जैसे games के console ports में यह पता चला कि chip कुछ अजीब addresses को पढ़े जाने का इंतज़ार करती थी। यदि उन specific addresses तक access n हो तो chip decryption बंद कर देती थी। console ports की वजह से यह रहस्य खुला, और उसके बाद PC-relative और इन accesses को चतुराई से मिलाकर ROM को सही तरह dump किया जा सका 68000 processor reference document
इस तरह की चीज़ें आज भी gambling equipment वगैरह में देखी जा सकती हैं। modern slot machines में बहुत-सी protections, batteries और drill-prevention features होते हैं, लेकिन अब उनका मकसद copyright protection से ज़्यादा tax evasion रोकना होता है
लेख में LaserActive का ज़िक्र है। मैंने बचपन में इसे पहली बार अपने uncle के घर देखा था और तब इसके अस्तित्व के बारे में जानता भी नहीं था LaserActive wiki. याद पड़ता है कि मैंने लगभग सिर्फ Genesis games ही खेले थे
यह देखकर हैरानी हुई कि Vajra और Vajra 2, Data West नाम की company द्वारा बनाए गए LaserActive-exclusive shooting games हैं। नाम Data East से मिलता-जुलता है और दोनों जापानी companies हैं, लेकिन लगता नहीं कि यह Data East का spinoff था। सोचता हूँ क्या नाम जानबूझकर ऐसा रखा गया था ताकि लोग भ्रमित हों Data West company info
लेख की पहली तस्वीर में लगे price tags को मैंने ज़ूम करके ध्यान से देखा। Battle Toad in Battlemaniac की कीमत 53900 yen, Akumajou Dracula XX की 27500 yen, और The King of Dragons की 39800 yen है
Galaga और Galaga Fast Shoot में key input और game response के बीच लगातार 100ms से अधिक latency रहती है, उम्मीद है किसी दिन यह समस्या पूरी तरह हल हो जाएगी