1 पॉइंट द्वारा GN⁺ 2024-04-23 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Super Nintendo कार्ट्रिज सिर्फ़ storage media नहीं थे, बल्कि CIC copy protection, SRAM और सहायक processors को साथ रखकर console की क्षमताओं को बढ़ाने वाला hardware थे
  • ROM capacity उस समय bits में प्रचारित की जाती थी; जांचे गए 3,378 titles में Star Ocean और Tales of Phantasia 48Mb के थे, जबकि Super Mario World 4Mb का था
  • save function battery से बनाए रखे जाने वाले SRAM पर निर्भर था, और Zelda III PCB जैसे मामलों में ROM/RAM access को coordinate करने वाला MAD-1 address decoder भी साथ होता था
  • कुल 13 प्रकार के सहायक chips 72 games में इस्तेमाल हुए, जिनसे CPU acceleration, sprite processing, decompression, math operations और polygon rasterization जैसे काम cartridge side पर संभाले गए
  • इन chips ने उस दौर में games की अभिव्यक्ति क्षमता को बहुत बढ़ाया, लेकिन S-DD1 की internal structure न पता होने के कारण graphic packs की ज़रूरत पड़ने जैसे मामलों ने emulator implementation पर लंबे समय तक reverse engineering का बोझ छोड़ा

कार्ट्रिज की बुनियादी बनावट: CIC, ROM, SRAM

  • Super Nintendo cartridge में ROM chip के instructions और assets के अलावा CIC copy-protection chip, SRAM और सहायक processor भी रखे जा सकते थे
  • CIC इस तरह काम करता है कि console side chip और cartridge side chip lockstep में communication करते हैं
    • अगर console CIC असामान्य स्थिति detect करता है, तो वह सभी processors को reset कर देता है
    • सभी SNES cartridges में CIC नहीं होता; unofficial game Super 3D Noah's Ark में CIC नहीं है
    • Super 3D Noah's Ark में पहले game को console में लगाना पड़ता है और फिर उसके ऊपर official cartridge लगानी होती है; Noah's side official game के CIC तक bus lines pass-through करता है
  • ROM capacity उस समय bytes नहीं, bits में लिखी जाती थी
    • Zelda III को 1,048,576 bytes नहीं, बल्कि 8Mb ROM के रूप में promote किया गया
    • survey list में USA/Japan/Europe के आधार पर 3,378 titles शामिल हैं
    • Star Ocean और Tales of Phantasia 48Mb, यानी 6,291,456 bytes के साथ सबसे बड़े titles में थे
    • Super Mario World ने 4Mb, यानी 524,288-byte ROM इस्तेमाल किया
  • save function वाले कुछ titles battery से powered SRAM इस्तेमाल करते थे
    • console बंद होने पर SRAM power consumption घटाने के लिए low-power mode में चला जाता है
    • Zelda III PCB में U4 पर CIC (D413A), U1 पर 0x80000 ROM (524,288 bytes), U2 पर LH5268AF-10TLL 64Kbit SRAM (8KiB), और U3 पर MAD-1 memory address decoder है

सहायक chips का दायरा और SA-1

  • सबसे प्रसिद्ध सहायक processor 1993 में Star Fox में इस्तेमाल हुआ Super FX है, लेकिन उससे पहले भी EC chips इस्तेमाल हो चुके थे
  • कुल मिलाकर 13 प्रकार के EC 72 games में इस्तेमाल हुए
  • SA-1, यानी Super Accelerator 1, 34 cartridges में शामिल प्रमुख सहायक chip है
    • यह SNES main CPU जैसा ही 65C816 CPU है, लेकिन 4 गुना तेज़ 10.74MHz पर चलता है
    • इसमें 2KiB SRAM और integrated CIC शामिल हैं
    • Super Mario RPG PCB में अलग CIC नहीं है; U3 पर SA-1 है, U1 पर ROM है, और U2 पर integrated decoder वाला SRAM है
    • SA-1 अलग oscillator के बिना cartridge port से System Master clock लेता है और internal तौर पर उसे आधा करके 21.4772700MHz / 2 = 10.74MHz पर चलता है
  • startup के समय SA-1 stop state में होता है, और SNES CPU Reset Vector बनाकर SA-1 को resume करता है
    • SA-1 का initial Instruction Pointer dedicated Reset Vector से लिया जाता है
    • operating modes तीन हैं: Accelerator, Parallel Processing, Mixed Processing
    • सबसे शक्तिशाली configuration में SA-1 CPU और Super NES CPU साथ-साथ चलते हैं, जिससे Super Accelerator System का performance मौजूदा Super NES की तुलना में 5 गुना हो जाता है
  • बेहतर processing power का इस्तेमाल PPU द्वारा उपलब्ध कराए गए सभी 128 sprites की animation और collision detection, sprites के real-time rotation और scaling transformation के बाद PPU VRAM में writing के लिए हुआ
    • Nintendo SA-1 demo cartridge इन improvements को दिखाती है
    • retro game community ने Eliminating slowdown in Super Mario World, Gradius III slowdown removal, Contra III slowdown removal जैसे projects से मौजूदा games का slowdown घटाया
    • किसी title को SA-1 में convert करने के लिए RAM/ROM access remapping खास तौर पर ज़रूरी होती है, इसलिए यह काफी complex लगता है; साथ ही SA-1 documentation में लिखा है कि “SNES और SA-1 एक ही memory mapping इस्तेमाल करते हैं”, जिससे सवाल बाकी रहता है
    • 2019 में SA-1 Collection Project के ज़रिए और अधिक SNES games को automatically remap करके SA-1-enabled बनाने का काम चल रहा था

graphics, compression और math सहायक chips

  • CX4 Capcom chip है, जो Mega Man X2 और Mega Man X3 चलाता है
    • यह 3D wireframe rendering, कई math operations, sprite scaling/rotation के बाद VRAM writing handle कर सकता है
    • MMX2 के intro और boss fight में examples देखे जा सकते हैं
    • CX4 सिर्फ़ wireframe ही नहीं, बल्कि sprite functions, propulsion, vector, triangle, trigonometric functions, result tables और coordinate transform functions भी देता है; MMX2 और MMX3 में यह सभी sprites process करता है
    • Mega Man X2 PCB में U4 पर CIC, U1 पर 8M ROM, U2 पर additional ROM, U3 पर CX4, और X1 पर 20MHz oscillator है
  • S-DD1 sprite decompression chip है, जो सीधे PPU VRAM को data supply कर सकता है
    • इसका इस्तेमाल Star Ocean और Street Fighter Alpha 2, इन दो games में हुआ
    • अफवाह थी कि Street Fighter Alpha 2 में round शुरू होने से पहले का blank S-DD1 की वजह से है, लेकिन Modern Vintage Gamer के explanation के अनुसार असली समस्या sound samples को DSP RAM में transfer करने की थी
    • Street Fighter Alpha 2 PCB में U1 पर 4MiB ROM और assets को on-the-fly decompress करने वाला S-DD1 है; CIC S-DD1 में integrated है, इसलिए separate chip नहीं है
  • DSP-1 DSP series के 19 supported titles में से 16 में मौजूद है, और Super Mario Kart व Pilotwings में इस्तेमाल हुआ
    • नाम में DSP का मतलब Digital Signal Processor है, लेकिन यह typical DSP की तरह continuous signals process नहीं करता, इसलिए माना जाता है कि नाम गलत रखा गया
    • developer manual के अनुसार DSP-1 blocking mode में चलता है, यानी DSP जब data process करता है तब Super NES CPU wait करता है
    • यह fast 16-bit multiplication, reciprocal, sin/cos projection, vector size, rotation जैसे commands देता है, जो HDMA programming और Mode 7 की 3D view update के लिए महत्वपूर्ण थे
    • Super Mario Kart PCB में external CIC, ROM, save के लिए SRAM, MAD-1 address decoder, battery और 8MHz operation के लिए oscillator है
    • DSP-1, DSP-1a, DSP-1b तीनों versions ने bug fixes और process improvements introduce किए, लेकिन behavior थोड़ा बदल गया, जिससे Pilotwings demo में plane जमीन से टकरा जाता था
  • बाकी छोटे chips भी कुछ specific games तक सीमित रूप से इस्तेमाल हुए
    • DSP-2 का इस्तेमाल सिर्फ़ Dungeon Master में Atari ST routine conversion के लिए हुआ, और यह मुख्यतः sprite scaling में मदद के लिए लगता है
    • DSP-3 का इस्तेमाल SD Gundam GX में हुआ
    • DSP-4 का इस्तेमाल Top Gear 3000 और The Planet's Champ TG 3000, इन दो games में हुआ
    • OBC-1 का इस्तेमाल Metal Combat: Falcon's Revenge में हुआ; rumor था कि यह sprite manipulation के लिए है, लेकिन nesdev.org पर इस पर debate है
    • S-RTC Daikaijuu Monogatari II में real-time clock track करने वाला chip है, और Hudson Soft developers को real-time tracking की ज़रूरत क्यों थी यह unclear है
    • Epson का SPC7110 Tengai Makyou Zero, Momotaro Dentetsu Happy और Super Power League 4 में इस्तेमाल हुआ data decompression chip है; Super Power League 4 में real-time clock function भी है
    • SETA Corporation की ST series को game AI सुधारने के मकसद से बनाया गया बताया जाता है; ST-010 सिर्फ़ Exhaust Heat 2 में, ST-011 सिर्फ़ Hayazashi Nidan: Morita Shougi में, और ST-018 सिर्फ़ Hayazashi Nidan Morita Shougi 2 में इस्तेमाल हुआ
    • ST-018 internal ROM में instructions रखने वाला ARM CPU लगता है

Super FX series और community mods

  • GSU-1 Star Fox, Stunt Race FX, Vortex, Dirt Racer, Dirt Trax FX — इन पांच games में इस्तेमाल हुआ
    • सहायक chips में यह सबसे अच्छी तरह documented chips में से है; wiki, tutorials और Super Nintendo Developer Manual Book II material उपलब्ध हैं
    • यह 10.74MHz पर चलता है और 21.47MHz master clock को internal तौर पर आधा करता है
    • internal 512-byte instruction cache की वजह से यह SNES CPU को starve किए बिना चल सकता है
    • काम खत्म होने पर यह console CPU, यानी C-CPU, को interrupt भेज सकता है
  • जहां SNES के PPU1/PPU2 tilemap और sprite-oriented हैं, वहीं Super FX pixel rendering और polygon rasterization में मजबूत है
    • आम तौर पर cartridge पर मौजूद framebuffer में render करता है
    • framebuffer content VSYNC के दौरान VRAM में transfer होता है
    • Star Fox PCB में U3 पर GSU-1, U5 पर CIC, U4 पर 74LS139, U1 पर ROM है; U2 पर battery-less 32KiB SRAM है
    • यह SRAM savegame के लिए नहीं, बल्कि आंशिक रूप से Super FX framebuffer storage के लिए इस्तेमाल होता है
  • SNES community SA-1 की तरह GSU-1 में भी समय लगा रही है, और Project Super FX जैसे projects से पुराने titles को अधिकतम सुधारने की कोशिश कर रही है
  • GSU-2 21.47MHz full speed पर चलने वाला GSU-1 है, और Super Mario World 2: Yoshi's Island, DOOM, Winter Gold, इन तीन games में इस्तेमाल हुआ
    • एक community experiment में Star Fox cartridge के GSU-1 को GSU-2 से बदलकर performance increase दिखाया गया
    • SNES version DOOM के Randy Linden ने GSU chip documentation और DOOM source code — दोनों के बिना सब कुछ reverse engineer किया
    • SNES version DOOM अकेला console port था जो PC levels इस्तेमाल कर सकता था; बाकी consoles को geometry simplify करनी पड़ी थी
    • Yoshi's Island GSU-2 को मुख्यतः sprite scaling और stretching के लिए इस्तेमाल करता है, और modified sprites को वापस PPU VRAM में लिखता है
    • Yoshi's Island PCB में battery है, इसलिए SRAM framebuffer और save state दोनों के लिए इस्तेमाल होता है
    • DOOM को 32MHz पर overclock किया गया, जिससे frame rate 10–11fps से बढ़कर 14–15fps हो गया
  • MSU-1 वास्तविक released cartridges में लगा chip नहीं है
    • Near ने इसे SNES पर CD-quality audio streaming, FMV playback और 4GB तक RAM access संभव करने के लिए design किया
    • target game modding community है, और results Enhanced Zelda III: A link to the past और Enhanced Another World में देखे जा सकते हैं

emulator implementation पर छोड़ा गया बोझ

  • सहायक chips ने player experience को काफी बेहतर किया और publishers की लागत घटाई, लेकिन बाद में emulator developers के लिए कठिन चुनौती बन गए
  • कुछ games जो unusual EC पर निर्भर थे, 2012 में ही जाकर सही तरह से emulate हो पाए
  • शुरुआती दौर में S-DD1 की internal structure न पता होने के कारण Street Fighter Alpha 2 जैसे games को पहले से decompressed sprite graphic pack मांगने वाले तरीके से “emulate” किया जाता था
  • chip implementation के लिए काफी reverse engineering चाहिए थी
    • कुछ chips में hardcoded functions थे, इसलिए de-capping की ज़रूरत पड़ी
    • ARM-based chips जैसे जिन chips में internal ROM पर instructions stored थे, उनके लिए emulator को BIOS file उपलब्ध करानी पड़ती है
  • 2020 तक भी सबसे rare chips में से कुछ की emulation अभी पूरी नहीं हुई थी

1 टिप्पणियां

 
GN⁺ 2024-04-23
Hacker News की राय
  • मुझे यह बात सच में पसंद है कि पुराने consoles के cartridges लगभग PC के PCI expansion cards जैसे थे
    वे सीधे bus से जुड़े होते थे, इसलिए व्यावहारिक रूप से कुछ भी कर सकते थे। अफसोस, यह चलन GameBoy Advance के बाद खत्म हो गया, और Nintendo DS से वे लगभग शुद्ध data storage device बन गए
    इसलिए आजकल ray tracing chiphttps://www.youtube.com/watch?v=2jee4tlakqo जैसे अजीब आधुनिक expansions भी संभव हैं, और MSU1 expansion chip भी, जो वास्तविक physical chip के रूप में मौजूद नहीं लगती और शायद केवल software emulators में है
    सिद्धांततः इसे manufacture किया जा सकता है, इसलिए Road Blaster का वास्तविक SNES cartridgehttps://www.youtube.com/watch?v=BvIXUOr4yxU भी बनाया जा सकता होगा
    लेख में सूची में “Street Fighter Zero 2” को USA ROM बताया गया है, लेकिन Street Fighter Zero जापान में Street Fighter Alpha का नाम था, इसलिए Zero 2 Alpha 2 का जापानी version होना चाहिए

    • पूरी तरह पागलपन वाली NES reverse emulation भी है
      इसमें जब cartridge को आधुनिक computer से बदल दिया जाता है, तो अजीब चीजें होने लगती हैं। उदाहरण के लिए NES के जरिए humor पर व्यावहारिक रूप से PowerPoint presentation देना
      https://www.youtube.com/watch?v=ar9WRwCiSr0
    • यह पूरी तरह सही नहीं है। कुछ DS cartridges में कम से कम infrared receiver था। उदाहरण के लिए Pokemon HeartGold, और जहां तक मुझे पता है Learn with Pokémon: Typing Adventure ने card के जरिए Bluetooth तक जोड़ दिया था
      इसलिए functionality जोड़ने की सीमित क्षमता थी, और भले ही यह extra CPU जितनी रोचक न हो, GBA पर भी ऐसे बहुत बड़े कामों के ज्यादा उदाहरण नहीं थे
    • Pokemon SoulSilver जैसे games, जिनके cartridge में infrared transmitter था, वे कैसे संभव हुए, यह सोचने वाली बात है
      जानना चाहूंगा कि यह किसी खास use case के लिए planned था, या limited cartridge expansion components के लिए कोई अलग channel था
    • मेरी जानकारी में नए SNES flash cartridges MSU1 को support कर सकते हैं। MiSTer FPGA भी MSU1 support करता है
    • Street Fighter localization बहुत खराब है। समझ नहीं आता कि एक ही नाम अलग-अलग characters पर क्यों बदलकर लगा दिए गए
  • यहां छूटा हुआ एक और detail यह है कि जिन cartridges में expansion chip नहीं था, उनमें भी performance grade अलग-अलग होते थे
    SNES CPU nominally 3.58MHz पर चलता था, लेकिन सच में उस speed पर चलाने के लिए “FastROM” cartridge लगा होना जरूरी था। Nintendo publishers को सस्ता “SlowROM” format भी देता था, जिसमें CPU 2.68MHz तक घट जाता था
    modder community ऐसे patches भी बनाती है जो SlowROM games को FastROM games में बदलकर lag कम करते हैं। मैंने कहीं पढ़ा था कि कुछ SlowROM games मूल रूप से FastROM के लिए develop किए गए थे, लेकिन publisher की cost-cutting मांग के कारण आखिरी समय में SlowROM में बदल दिए गए

    • Out Of This World SlowROM/FastROM का ऐसा मामला है जहां developer को FastROM इस्तेमाल करने की अनुमति नहीं मिली
      अगर मुझे सही याद है, तो उस मामले में दावा किया गया था कि SlowROM इस्तेमाल करने से प्रति cartridge पूरे 50 cents बचते थे
    • SNES में हैरान करने वाली बात यह है कि internal RAM तक को nominal 3.58MHz clock पर access नहीं किया जा सकता, और तब भी system slow हो जाता है
      प्रतिस्पर्धी TurboGrafx-16 आम तौर पर 7MHz पर चलता था और उसी तरह की memory timing मांगने वाला 6502 family CPU इस्तेमाल करता था, इसलिए मैं हमेशा उलझन में रहा कि SNES speed को लेकर इतना कंजूस क्यों था
      फिर भी TurboGrafx पश्चिमी market में fail हुआ और SNES दुनिया भर में सफल रहा, तो जाहिर है उन्होंने कुछ तो सही किया था
    • मैं हमेशा सोचता था कि यह Nintendo द्वारा मनमाने ढंग से बनाई गई licensing distinction थी, या cartridges की data read speed में सच में फर्क था
      आखिरकार सभी SNES cartridges में mask ROM लगे होते थे
    • सोचता हूं कि इसके पीछे कोई hardware reason था, या Nintendo customers से ज्यादा पैसे वसूलकर gamers की जिंदगी खराब कर रहा था
    • लेख में LoROM और HiROM का जिक्र है, तो शायद वही बात कही जा रही है
  • अच्छा होगा अगर developers ऐसे details को YouTube vlog बनाने के बजाय लिखित रूप में blog पर डालते रहें
    कुछ KB में बहुत सारे details समा सकते हैं
    “Super Mario World” अब भी all-time great game है। शानदार characters, sprites और stages को सिर्फ 360KB में समेट दिया गया था

    • site पर दिया file size गलत है। Super Mario World 512KB है, और अंत की padding हटा दें तो 508KB है
      ZIP format में compress करने पर ही यह करीब 360KB होता है
    • Super Mario World भी बेहतरीन है, लेकिन मेरी राय में SNES का सबसे अच्छा game Donkey Kong Country 2 है
      शानदार music, precise controls, आकर्षक graphics—platform game के हर पहलू को सही तरीके से किया गया
      Terranigma भी लगभग उसी level का है, और मेरे हिसाब से Super Mario World शायद तीसरे नंबर पर है
    • मुझे लगता है कि developers के लिखने के बजाय YouTube चुनने की बड़ी वजह कई मामलों में यह है कि video content चोरी करना ज्यादा मुश्किल होता है
      text को scrape करके, बस कुछ words बदलकर SEO ad sites पर reuse किया जा सकता है
    • Atari VCS के “Pitfall!” ने 4KB cartridge में पूरी तरह अलग game screens की 255 screens रखी थीं :)
  • सोचता हूं कि cartridge में “expansion chip” डालने की क्षमता को आधुनिक technology से इस्तेमाल करें तो क्या किया जा सकता है
    लिखा है कि SuperFX का अपना framebuffer होता है और वह पूरा का पूरा VRAM में copy करता है
    तो क्या technically यह संभव है कि cartridge में बेहद powerful SoC डालकर, उससे SNES resolution की modern graphics render कराई जाए और फिर result frame को SNES VRAM में copy किया जाए?
    जानना चाहूंगा कि limits कहां हैं

  • “SNES के लिए DOOM के लेखक Randy Linden के पास न GSU chip की documentation थी, न DOOM source code तक access था। उन्होंने सब कुछ reverse engineering से किया” वाला हिस्सा तकनीकी रूप से प्रभावशाली है, लेकिन जिज्ञासा है कि उन्हें ऐसा क्यों करना पड़ा

    • Doom Wiki में विवरण हैं: https://doomwiki.org/wiki/Super_NES
      पोर्ट के अकेले programmer Randy Linden इस गेम से इतने प्रभावित थे कि शुरुआत में उन्होंने खुद ही Super NES के लिए Doom port करना शुरू किया
      उस समय Doom source code अभी public नहीं हुआ था, इसलिए Linden ने गेम के lump structure को विस्तार से समझने के लिए Unofficial Doom Specs का सहारा लिया। Resources IWAD से निकाले गए, लेकिन technical limitations की वजह से उनमें से कुछ इस्तेमाल नहीं हुए
      interviews के अनुसार, Super FX के लिए development system की कमी के कारण Linden ने full-scale port development से पहले अपने Amiga पर ACCESS नाम का assembler, linker, debugger toolset खुद बनाया
      hardware kit के तौर पर उन्होंने एक hacked Star Fox cartridge और दो modified Super NES controllers को console में लगाकर Amiga के parallel port से जोड़ा, और दो और devices जोड़ने के लिए serial protocol इस्तेमाल किया
      पूरा prototype बनाने के बाद उन्होंने इसे अपने employer Sculptured Software को दिखाया, और company ने development पूरा करने में मदद की। Linden ने कहा कि अगर छूटे हुए levels डाल पाते तो अच्छा होता, लेकिन game पहले ही Super FX 2 game के maximum size 16 megabit, यानी लगभग 2MB तक पहुंच चुका था और खाली जगह करीब 16 bytes ही बची थी
      उन्होंने Super Scope light gun, Super NES mouse, और multiplayer के लिए XBAND modem support भी जोड़ा। सहकर्मी programmer John Coffey ने Doom series के fan के रूप में levels modify किए, लेकिन उनमें से कुछ को id Software ने reject कर दिया
    • Wolfenstein 3D port में भी कुछ ऐसा ही हुआ था। John Carmack ने Rebecca Heineman की तारीफ की थी कि उन्होंने technical documents पाने के लिए patents पढ़ने के लिए Japanese सीखी
      ऐसी चीज़ों के आसपास हमेशा शानदार history होती है, और इससे जुड़ी थोड़ी और जानकारी यहां भी लिखी है: https://eludevisibility.org/super-noahs-ark-3d-source-code
    • इस case के बारे में नहीं जानता, लेकिन development kits और SDK/docs अक्सर अलग SKU होते हैं, और बाद वाला अक्सर ज्यादा महंगा होता है
      अगर याद सही है, तो Crash Bandicoot team के पास भी SDK नहीं था, इसलिए वे अपना code चला रहे थे और memory card save से जुड़ा hardware bug खोज निकाला
  • कई games के byte counts कहां से आए, यह जानने की उत्सुकता है
    games ROM chips में होते थे, और ROM chips की तरह उनका size powers of 2 होता था। उदाहरण के लिए Super Mario World 512kb ROM के रूप में release हुआ था, तो 346,330 bytes वाला नंबर कहां से आया? क्या यह compressed size है?

    • संख्या ZIP size पर आधारित estimate है। लेकिन यह अच्छा तरीका नहीं है
      हर ZIP को extract करके file के अंत में 0-byte padding गिनने वाला program लिखना होगा
      आज बहुत देर हो गई है, कल लिखकर article update करूंगा
    • compressed size जैसा दिखता है। SMW.SMC को gzip से compress करने पर 347KB file बनती है। यह काफी misleading है
      दूसरी problem भी है। article ऐसे लिखता है जैसे SFA2 के freeze का कारण audio data loading होना MVG ने discover किया हो, लेकिन यह उस video से काफी पहले से known था: https://forums.nesdev.org/viewtopic.php?p=70474#p70474
      RTC को लेकर भी काफी confusion दिखता है। console बंद हो और cartridge निकला हो तब भी clock चलती रहे, यह GBC/GBA Pokemon games की तरह स्पष्ट बात है, लेकिन article कहता है कि यह NTSC clock drift की वजह से भी हो सकता है। समझ नहीं आता आखिर मतलब क्या है
    • यह data padding है
  • “Super Mario World को भी ऐसा treatment मिला था। slowdown याद नहीं, लेकिन तब मैं सिर्फ बारह साल का था” वाले हिस्से के संदर्भ में, Yoshi’s Island 4 में कुछ conditions में slowdown होता है
    Yoshi पर बैठे हुए Starman लेकर P-Switch दबाने पर ऐसा होता है, और कुछ दूसरे levels भी हैं जिन्हें ठीक से याद नहीं कर पा रहा। वह जगह जहां कई Monty Moles एक साथ बाहर निकलते हैं, शायद Chocolate Island थी
    तीसरा case भी शायद था, जहां screen पर दो Sumo Bros. और Amazing Flying Hammer Bro. साथ दिखते हैं

    • Outrageous में बहुत ज्यादा lag होने की याद है
  • emulator के लिए ROM को cartridge से कैसे dump किया जाता है, यह मैं हमेशा समझ नहीं पाया
    instructions और assets को dump करके emulator द्वारा interpret किए जा सकने वाले data file में bundle करना समझ आता है। लेकिन emulator cartridge के अंदर के सभी expansion chip hardware को कैसे model करता है? original cartridge से वह कैसे dump होता है?

    • expansion chip ROM नहीं होता, इसलिए उसे अलग से emulate करना पड़ता है
      व्यक्तिगत रूप से मुझे लगता है कि SNES के predecessor NES में स्थिति थोड़ी ज्यादा खराब थी
      NES में mapper कहे जाने वाले expansion chips काफी थे। उनका आम function additional processor या capabilities जोड़ने के बजाय NES की memory space बढ़ाना था, और इनके बिना NES PRG ROM 32KB और CHR graphics ROM 4KB या 8KB तक limited था, इसलिए वे ज्यादातर games में शामिल थे
      NES release के बाद के ज्यादातर games ने ऐसे chips इस्तेमाल किए
      इन्हें भी console के साथ-साथ पूरी तरह reverse engineer करना पड़ा। सौभाग्य से यह additional CPU या accelerator को reverse engineer करने से काफी सरल था
      MMC1, MMC3 जैसे common chips हैं जो कई games में इस्तेमाल हुए, और MMC2 जैसा chip भी है जो लगभग Punch-Out के लिए ही था
    • इसे dump नहीं किया जाता। emulator implementation expansion chip functionality को software में reproduce करता है
      expansion chip types बहुत ज्यादा नहीं हैं, इसलिए यह असंभव स्तर का काम नहीं है
  • SNES की copy protection उपभोक्ता के नज़रिए से आसानी से bypass हो जाती थी। हालांकि game developers या publishers के लिए शायद ऐसा नहीं रहा होगा
    उस समय लगभग सभी के पास SNES के लिए “backup device” होता था। यह SNES में लगने वाला, floppy drive वाला device था, और बहुत सस्ती 3.5-inch floppy पर games को “backup” करता था
    system को चलाने के लिए बस एक original cartridge चाहिए होता था, और उसे copier में लगाने पर device उस cartridge के CIC chip को reuse कर लेता था
    https://en.wikipedia.org/wiki/Game_backup_device

  • “DSP-1 के तीन versions थे: DSP-1, DSP-1a, DSP-1b। bug fixes और process improvements के साथ chip के behavior में थोड़ा बदलाव आया, और नतीजतन Pilot Wings demo का airplane ज़मीन पर crash हो गया” वाला हिस्सा देखकर लगा कि अगर कोई पूछे कि मैं इतना खराब क्यों खेलता हूं, तो यही बहाना इस्तेमाल करना चाहिए