2 पॉइंट द्वारा GN⁺ 2023-12-28 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Game Boy श्रृंखला कम पावर बजट के भीतर DMG-CPU SoC, PPU, APU, बूट ROM और Game Pak को जोड़कर portable console के CPU, graphics, audio, compatibility और copy protection को एक ही सिस्टम में समेटती है
  • CPU, Sharp के SM83 core पर आधारित है और लगभग 4.19 MHz पर चलता है, जबकि Game Boy Color का CPU CGB उसी परिवार को बनाए रखते हुए dual-speed mode में लगभग 8.38 MHz तक जाता है
  • graphics में 160×144 LCD और VRAM-आधारित PPU tile, background, sprite, window को मिलाकर रेंडर करते हैं, और Color model 16 KB VRAM, 32,768-रंग palette और अतिरिक्त DMA के साथ इसकी अभिव्यक्ति क्षमता बढ़ाता है
  • audio का काम 4-channel APU संभालता है, और 32 KB के मूल address space से आगे जाने के लिए Game Pak Memory Bank Controller का उपयोग करता है, जबकि Link cable और Color का infrared external communication को सपोर्ट करते हैं
  • बूट ROM, Nintendo logo और ROM header checksum की जाँच करने के बाद गेम चलाता है, और यह logo requirement copyright और trademark के सहारे distribution control के तंत्र की तरह काम करती है

Game Boy श्रृंखला का दायरा और डिज़ाइन दिशा

  • Game Boy series को NES का portable version माना जा सकता है, लेकिन यह सिर्फ छोटा किया गया रूप नहीं था, बल्कि अपनी अलग क्षमताओं और विस्तार दिशा वाली संरचना थी
  • Game Boy brand दो पीढ़ियों तक जारी रहा
    • 4th generation में monochrome Game Boy और Game Boy Pocket, Light जैसे revised models शामिल थे
    • अगली पीढ़ी में Virtual Boy के बाद जारी Game Boy Color शामिल था
  • विश्लेषण का फोकस monochrome Game Boy की मूल संरचना और इस संरचना के Color model में हुए विस्तार पर है

CPU और मेमोरी संरचना

  • Nintendo ने motherboard पर कई general-purpose chips लगाने के बजाय CPU और मुख्य घटकों को समेटने वाला single-chip design चुना
    • इस SoC को DMG-CPU या Sharp LR35902 कहा जाता है
    • इसे Sharp Corporation ने बनाया था, और यह Nintendo की आवश्यकताओं के अनुसार power efficiency, copy protection और अतिरिक्त I/O लागू करने के लिए उपयुक्त था
    • यह retail catalog में उपलब्ध chip नहीं था, इसलिए competitors के लिए इसे ज्यों का त्यों copy करना मुश्किल था
  • SM83 CPU core

    • DMG-CPU के भीतर मुख्य processor Sharp SM83 है
    • यह Zilog Z80 और Intel 8080 का मिश्रित रूप है, और लगभग 4.19 MHz पर चलता है
    • SM83, Z80 और 8080 की केवल कुछ क्षमताएँ ही बनाए रखता है
      • इसमें Z80 के IX, IY registers और 8080 के IN, OUT instructions नहीं हैं
      • I/O ports उपयोग नहीं किए जा सकते, इसलिए components को memory-mapped होना पड़ता है
      • इसमें केवल Intel 8080 का register set है, इसलिए general-purpose registers की संख्या 7 है
      • Z80 extended instructions में से केवल कुछ bit-manipulation instructions ही लागू किए गए हैं
    • Sharp ने Z80 या 8080 में न मिलने वाले नए instructions भी जोड़े
      • LDH को $FF00 से शुरू होने वाले memory map के अंतिम 256 bytes तक पहुँचने के लिए डिज़ाइन किया गया था
      • instruction size 1 byte कम होने से यह थोड़ा तेज चल सकता है
  • Game Boy Color में CPU बदलाव

    • Game Boy Color में नया SoC CPU CGB आता है, लेकिन SM83 CPU core अधिकांशतः बरकरार रहता है
    • सबसे बड़ा अपवाद clock speed है, जो लगभग 8.38 MHz तक दोगुनी हो जाती है
    • वही CPU core बनाए रखने से developers अपना पुराना programming knowledge दोबारा उपयोग कर सकते थे, और नई architecture redesign की लागत तथा backward compatibility लागू करने का बोझ भी घटता था
    • CPU CGB दो operating modes देता है
      • Normal mode: SM83 लगभग 4.19 MHz पर चलता है
      • Dual-speed mode: SM83 लगभग 8.38 MHz पर चलता है
    • इस चयन की कीमत यह रही कि 1990 के दशक के आखिर तक पुरानी तकनीक का उपयोग जारी रहा
  • address space और RAM

    • SM83, 8-bit data bus और 16-bit address bus बनाए रखता है, इसलिए अधिकतम 64 KB memory address कर सकता है
    • memory map में Game Pak space, WRAM, HRAM, VRAM, joypad, audio, graphics, LCD आदि के I/O और interrupt control क्षेत्र शामिल हैं
    • मूल Game Boy motherboard पर 8 KB WRAM लगाया गया था, जो NES से 4 गुना अधिक था
    • SoC के भीतर 127 B HRAM भी होता है
      • यह छोटा space है, जिसे LDH instruction से अधिक तेज़ी से access किया जा सकता है
      • HRAM bus स्वयं तकनीकी रूप से WRAM से तेज़ नहीं है, लेकिन CPU को इसमें priority मिलती है
      • DMA के दौरान जब CPU external memory तक नहीं पहुँच सकता, तब यह महत्वपूर्ण हो जाता है
    • Game Boy Color, WRAM को 32 KB तक बढ़ाता है
      • CPU की addressing क्षमता वही रहती है, इसलिए पूरी memory को एक साथ connect नहीं किया जा सकता
      • अतिरिक्त 24 KB WRAM access के लिए bank switching का उपयोग किया जाता है
      • मौजूदा 8 KB space के अंतिम 4 KB को 7 banks के बीच बदला जाता है
      • SVBK register WRAM bank चुनने के लिए उपयोग होता है

graphics: PPU, LCD, layer संरचना

  • Game Boy graphics में CPU computation करता है, और DMG-CPU SoC के भीतर अलग PPU screen render करता है
  • built-in LCD 160×144 pixel resolution देता है
    • monochrome Game Boy LCD केवल सफेद, हल्का gray, गहरा gray और काला, इन 4 gray levels को reflect करता है
    • green-tinted LCD की वजह से screen थोड़ी हरी दिखती है
  • सभी Game Boy, region-specific power frequency पर निर्भर home consoles से अलग, 4 AA batteries पर चलते हैं
    • CPU clock और refresh rate region के अनुसार नहीं बदलते
    • refresh rate 59.7 Hz है
  • VRAM और tile-based rendering

    • PPU, 8 KB VRAM से exclusively जुड़ा होता है और rendering के लिए ज़रूरी अधिकांश data यहीं से पढ़ता है
    • कुछ data जिसे तेज access चाहिए, वह PPU के भीतर ही रखा जाता है
    • CPU का VRAM access, PPU द्वारा arbitrate किया जाता है, इसलिए game को VRAM क्षेत्र में सही data भरना होता है
    • मूल rendering unit tile है
      • tile एक 8×8 pixel bitmap है
      • हर tile 16 bytes लेता है
      • यह VRAM के Tile set या Tile pattern table क्षेत्र में store होता है
    • रंग palette के माध्यम से 4 gray levels में से चुने जाते हैं
    • monochrome Game Boy अधिकतम 3 palettes define कर सकता है, लेकिन rendered layer के प्रकार के अनुसार इनके उपयोग पर सीमा है
  • background, sprite, window

    • अंतिम frame तीन overlapping layers से बना होता है
    • background layer 256×256 pixels, यानी 32×32 tile map होती है
      • वास्तविक screen पर केवल 160×144 pixels ही दिखते हैं
      • game यह चुनता है कि background का कौन सा हिस्सा दिखाना है और उसे move करके scroll effect बनाता है
      • background layer के लिए केवल 1 palette उपयोग होती है
    • sprite ऐसे tiles हैं जो स्वतंत्र रूप से move कर सकते हैं
      • वे एक-दूसरे पर overlap कर सकते हैं या background के पीछे रखे जा सकते हैं
      • display priority, priority property से तय होती है
      • transparent color जोड़े जाने के कारण वास्तव में दिखने वाले gray levels 3 ही रहते हैं
      • वे 2 dedicated palettes में से एक चुन सकते हैं
    • sprite definition, PPU के भीतर OAM(Object Attribute Memory) में store होती है
      • game आमतौर पर OAM DMA call करके RAM या ROM से OAM में data copy करता है
      • DMA active रहने के दौरान CPU external memory access नहीं कर सकता
      • हर OAM entry में tile index, X-Y position, palette, priority, vertical-horizontal flip flags शामिल होते हैं
    • PPU की sprite rendering में सीमाएँ हैं
      • प्रति scanline अधिकतम 10
      • प्रति frame अधिकतम 40
      • सीमा पार होने पर कुछ sprites draw नहीं होते
    • window layer 160×144 pixel map है जो पूरी screen को cover कर सकती है
      • यह background और sprites के ऊपर render होती है
      • यह scroll नहीं होती
      • बचा हुआ केवल एक tile map ही window layer को assign किया जा सकता है
      • यह background के साथ वही palette साझा करती है
      • यह transparent नहीं है, इसलिए नीचे की layers को पूरी तरह ढक देती है, लेकिन timing-based raster effects के साथ इसे आंशिक रूप से उपयोग किया जा सकता है
      • game आमतौर पर life counter, score और persistent display information के लिए window layer का उपयोग करते हैं
  • frame update और raster effects

    • CPU, PPU के VRAM पढ़ते समय tables modify नहीं कर सकता
    • system ऐसे interrupts देता है जो PPU के idle होने पर आते हैं
      • Horizontal Blank एक scanline खत्म होने के बाद शुरू होता है और frame के अभी तक न बने हिस्से को adjust किया जा सकता है
      • Vertical Blank सभी scanlines खत्म होने के बाद शुरू होता है और अगले frame के graphics update किए जा सकते हैं
      • OAM search scanline की शुरुआत में होता है, और जब PPU उस line के sprites तय कर रहा होता है तब OAM को छोड़कर बाकी क्षेत्रों को update किया जा सकता है
    • window layer और अतिरिक्त interrupts की वजह से screen पूरी draw होने से पहले frame के हिस्से बदले जा सकते हैं
    • हर scanline पर अलग scroll values लगाने से ऐसा wobble effect बन सकता है जिसमें हर row अलग speed से move करती है

Game Boy Color के graphics विस्तार

  • Game Boy Color का PPU मूल PPU के superset की तरह काम करता है और compatibility के लिए दो operating modes देता है
    • CGB mode: Game Boy Color titles के लिए visual improvements देता है
    • DMG mode: यह पारंपरिक mode है जिसमें extended features disable रहते हैं
  • Game Boy Color motherboard में 16 KB VRAM होता है
    • यह पहले से दोगुनी capacity है
    • CPU address limitation के कारण यह 8 KB के 2 banks में बना है
    • VBK register VRAM bank switching के लिए उपयोग होता है
  • PPU दोनों VRAM banks को एक साथ access कर सकता है
    • developer VBK से VRAM bank भरते हैं
    • tile map में tile किस bank में है यह specify कर दिया जाए, तो PPU उसे संभाल लेता है
  • अतिरिक्त VRAM का उपयोग दोगुने tiles store करने, अधिक palettes रखने, tile metadata बढ़ाने, और अतिरिक्त palette व effects references के लिए होता है
  • color और अतिरिक्त DMA

    • Game Boy Color का नया PPU 32,768 colors में से palettes define कर सकता है
    • developer Palette Memory में अधिकतम 16 color palettes store करते हैं
      • 8 background-window के लिए, 8 sprites के लिए
      • हर palette 4 colors encode करती है
      • हर entry 16-bit value है, लेकिन वास्तव में केवल 15 bits उपयोग होते हैं
      • Palette Memory को CPU सीधे address नहीं कर सकता, और नए registers write buffer की तरह काम करते हैं
    • background और window tiles 8 palettes में से किसी एक को refer कर सकते हैं
    • sprite tiles भी 8 palettes को refer कर सकते हैं, लेकिन एक entry अभी भी transparent color के लिए reserved रहती है, इसलिए 3-color palette की सीमा बनी रहती है
    • tile set दोगुना बड़ा हो जाता है, जिससे VRAM में दोगुने tiles रखे जा सकते हैं
    • background-window tile maps भी expand होते हैं ताकि अधिक metadata रखा जा सके
    • background और window tiles vertical-horizontal flip हो सकते हैं, जिससे duplicate graphics को VRAM में दोबारा store करने की ज़रूरत घटती है
    • CPU CGB में VRAM में data copy करने के लिए अतिरिक्त DMA unit है
      • यह Game Pak या WRAM से VRAM में copy कर सकता है
      • General-purpose DMA कभी भी transfer कर सकता है, लेकिन transfer के दौरान memory access priority ले लेने से screen tearing हो सकती है
      • H-Blank DMA केवल H-Blank के दौरान transfer करता है, जिससे screen artifacts से बचा जा सकता है, लेकिन यह 16-byte units तक सीमित है और LCD scan के दौरान रुक जाता है

audio: 4-channel APU

  • audio का काम APU(Audio Processing Unit) संभालता है, और Programmable Sound Generator शैली में कुल 4 channels देता है
  • APU, Game Boy revisions में लगभग अपरिवर्तित रहने वाले components में से एक है
    • इसे CPU की तरह accelerate नहीं किया जा सकता
    • oscillator speed बदलने से sound quality बेहतर नहीं होती, बल्कि pitch बदलती है
    • features बढ़ाने के लिए circuit जोड़ना पड़ता है, जिससे cost भी बढ़ती है
  • channel संरचना

    • pulse wave channels 2 हैं, जो मुख्यतः melody और sound effects के लिए उपयोग होते हैं
      • pulse width बदलकर ये 4 tones देते हैं
      • पहले channel में dedicated sweep control होता है
      • channels सीमित होने के कारण game के दौरान sound effect बजते समय melody कट सकती है
    • तीसरा channel custom waveform को support करता है
      • 32 4-bit samples से बनी waveform, wavetable में store की जाती है
      • volume और frequency control किए जा सकते हैं
    • noise channel 1 है
      • यह random waveforms का समूह है, जो white noise जैसा सुनाई देता है
      • games में इसका उपयोग मुख्यतः percussion या ambient effects के लिए होता है
      • यह clean static और robotic static, दो tones देता है और frequency adjustment भी संभव है
  • mixer और extended audio pins

    • mixer stereo output देता है, इसलिए channels को left-right में रखा जा सकता है
    • built-in speaker mono है, इसलिए panning केवल headphone output में सुनाई देता है
    • mixer hardware cartridge के dedicated pins से भी जुड़ा होता है
      • अगर cartridge अतिरिक्त hardware से analog sound output करे, तो additional channels stream किए जा सकते हैं
      • बाज़ार में आए games ने इस feature का उपयोग नहीं किया
      • यह feature Game Boy Advance युग में हटा दिया गया

बूट ROM और संचालन तरीका

  • Game Boy, NES/Famicom की तरह सीधे game में boot नहीं करता, बल्कि पहले internal 256-byte ROM से boot करता है
  • मूल boot procedure इस प्रकार है
    • power on होने पर CPU address 0x0000 से read शुरू करता है
    • RAM और APU initialize होते हैं
    • cartridge ROM के Nintendo logo graphic को Display RAM में copy करके screen के ऊपरी हिस्से में draw किया जाता है
    • अगर cartridge न हो या सही तरह insert न किया गया हो, तो logo टूटे हुए tiles की तरह दिख सकता है
    • logo नीचे scroll होता है और iconic sound बजती है
    • game के Nintendo logo की तुलना console ROM के logo से की जाती है
    • cartridge ROM header पर एक तेज़ checksum किया जाता है
    • जाँच fail होने पर console रुक जाता है
    • console ROM को memory map से हटा दिया जाता है
    • CPU game execution शुरू करता है
  • screen पर दिखाया गया Nintendo logo VRAM से erase नहीं होता, इसलिए game उस logo पर animation या transition effects लागू कर सकता है
  • Game Boy Color में boot बदलाव

    • Game Boy Color का ROM size 2 KB तक बढ़ता है
    • boot sequence यह जाँचता है कि डाला गया game केवल Game Boy का है या Game Boy Color game है
    • यह cartridge ROM के specific metadata की जाँच करता है और उसके आधार पर DMG या CGB mode activate करने वाला register set करता है
    • अगर DMG game डाला गया हो, तो boot program Palette RAM को calculated palette से भरता है
      • यह game metadata पर निर्भर एक सरल algorithm उपयोग करता है
      • यही कारण है कि monochrome games, Game Boy Color पर रंगीन दिखते हैं
      • user boot के दौरान button combination से चुनी गई palette बदल सकता है
    • Nintendo logo को HRAM में भी copy किया जाता है
    • checksum चरण में HRAM में मौजूद logo के केवल आगे वाले आधे हिस्से की जाँच की जाती है

Game Pak, game development, external communication

  • उस समय performance-critical games मुख्यतः assembly language में लिखे जाते थे, क्योंकि high-level language compilers अभी पर्याप्त mature नहीं थे
  • commercial games, Nintendo के Game Boy cartridge Game Pak के रूप में distribute होते थे
  • मूल storage capacity address-space limitations के कारण अधिकतम 32 KB थी
    • Memory Bank Controller, यानी mapper, उपयोग करने से बड़े games संभव हुए
    • बाज़ार में आए सबसे बड़े Game Pak में मूल Game Boy पर 1 MB ROM और Game Boy Color पर 8 MB ROM था
  • कुछ Game Pak में real-time clock, अतिरिक्त SRAM, और save retention के लिए external battery शामिल होती थी
  • Color युग के cartridge प्रकार

    • Game Boy Color के operating modes जुड़ने के बाद games तीन प्रकारों में बँट गए
      • Game Boy: सभी Game Boy models के साथ पूरी तरह compatible, और हमेशा DMG mode में चलता है
      • Game Boy Color enhanced: monochrome models के साथ compatible रहते हुए Game Boy Color में CGB mode के साथ visually enhanced होता है
      • Game Boy Color exclusive: केवल Game Boy Color के साथ compatible और उसी hardware का उपयोग करने के लिए optimized
    • इन तीनों प्रकारों के लिए पहचान आसान बनाने वाली official colors थीं
    • Pokémon और Donkey Kong जैसे कुछ games ने अलग design का उपयोग किया
  • Link cable और infrared

    • Game Boy games पहली बार Game Boy Link cable के माध्यम से external hardware से communicate कर सकते थे, जिससे multiplayer और accessories का उपयोग संभव हुआ
    • Link cable console के 6-pin sub-connector से जुड़ती है, और interface SPI(Serial Peripheral Interface) protocol का उपयोग करता है
      • एक Game Boy master की तरह clock signal चलाता है और दूसरा slave बनता है
      • हर transfer में master और slave 1 packet, यानी 8 bits, का आदान-प्रदान करते हैं
      • मूल Game Boy की transfer speed 8 Kbit/s, यानी 1 KB/s है
      • Game Boy Color high speed mode में अधिकतम 512 Kbit/s, यानी 64 KB/s तक पहुँच सकता है
    • Nintendo ने अधिकतम 4 Game Boy को एक साथ data exchange कराने के लिए 4-Player Adapter भी जारी किया
      • मूल SPI बना रहता है
      • adapter master की तरह काम करता है और game द्वारा पालन किए जाने वाली अतिरिक्त communication layer लागू करता है
    • Game Boy Color में infrared transceiver शामिल है
      • यह LED और phototransistor से बना है
      • Pokémon Gold जैसे titles में wireless data exchange के लिए उपयोग होता है
      • system स्वयं communication protocol लागू नहीं करता
      • RP register, IR sensor operation, transmitted bit और last received bit को encode करता है
      • Nintendo ने official Game Boy Developer Manual में reference implementation दी थी

copy protection संरचना

  • console सीधे game नहीं चलाता, बल्कि पहले कई जाँचें करता है, ताकि unauthorized cartridges को चलने से रोका जा सके और यह भी सुनिश्चित हो कि cartridge सही तरह insert हुई है
  • game को ROM header में tile form में Nintendo logo की copy शामिल करनी पड़ती थी, तभी वह जाँच pass कर सकता था
    • Nintendo इससे copyright और trademark law का उपयोग distribution control के लिए कर सकता था
  • बाद में Sega v. Accolade मामले में यह माना गया कि ऐसी requirement पूरी करने के लिए copyrighted logo का उपयोग fair use है, जिससे कंपनियों को अधिकार मिला
  • game के भीतर भी अतिरिक्त copy protection measures लागू किए जा सकते थे
    • bootlegs में आम तौर पर बड़े SRAM size की जाँच की जाती थी
    • gameplay के दौरान random समय पर ROM checksum करके code modification detect किया जाता था

1 टिप्पणियां

 
GN⁺ 2023-12-28
Hacker News टिप्पणियां
  • मूल Game Boy डेवलपमेंट में सचमुच कमाल की बात यह थी कि उस समय Gunpei Yokoi की टीम पर बहुत अविश्वास किया जा रहा था
    “बस या बाथरूम में गेम क्यों खेलोगे, असुविधाजनक होगा। घर पर परिवार/दोस्तों के साथ TV के सामने सोफे पर बैठकर खेलो, या latest experience आर्केड में ले लो। बैटरी बदलते रहना और सिर्फ ग्रे के कुछ शेड्स देखना कौन चाहेगा” — कुछ ऐसा ही माहौल था
    उनका vision था withered technology को लेकर उसे इस्तेमाल में आसान device और सरल, छोटे games में पैक करना, और मुझे लगता है कि उसी टीम ने असल में mobile gaming की शुरुआत की

    • यह बात revisionist history जैसी ज्यादा लगती है
      1970s के बच्चे पहले से ही Mattel के handheld LED games बसों और बाथरूम में खेल रहे थे, और मेरे पास भी कम से कम 6, शायद 8 के आसपास थे। सबसे शुरुआती उदाहरण 1976 का https://en.m.wikipedia.org/wiki/Mattel_Auto_Race है
      ज्यादा popular sports games थे, जैसे American football, baseball, basketball, और उनके rules Auto Race से कहीं ज्यादा complex थे: https://www.ebay.com/p/2255363696
      1980s की शुरुआत में Dungeons and Dragons जैसे handheld LCD games भी काफी आए: https://en.m.wikipedia.org/wiki/Dungeons_%26_Dragons_Compute... (1981)
      “Mattel stated that the game immediately sold out.” इनमें cartridges नहीं थे, लेकिन खासकर LCD games सस्ते और छोटे थे, इसलिए कई रखना बोझ नहीं था
      आजकल Game Boy पीढ़ी के portable devices से अलग दिखाने के लिए इन्हें “handhelds” कहा जाता है, लेकिन मेरी याद में उस समय इन्हें ऐसे नहीं कहा जाता था। मुद्दा यह है कि 1970s और शुरुआती 1980s में पहले से एक सफल market मौजूद था, और Nintendo ने उसे बनाया नहीं, बल्कि पहले से सफल cartridge-based console और portable game market को जोड़कर आगे बढ़ाया
    • Game & Watch पहले आया था, और वह भी Gunpei Yokoi का ही था। कम से कम मेरी याद में, उसे mobile gaming की शुरुआत माना जा सकता है
    • Game Boy आने से करीब 6 साल पहले ही मेरे पास car racing game वाली एक watch थी
  • मैंने देखा कि Game Boy Color जोड़ा गया है, लेकिन cartridge size सिर्फ 1MB होने वाली बात शायद ठीक नहीं की गई। कुछ GBC games 4MB तक जाते थे
    इसके अलावा, short videos और high-color images वाला एक train game 8MB का भी है

    • सही, वह 電車でGO!2 高速編 aka Densha de Go! 2 Kōsoku-hen है
      https://www.youtube.com/watch?v=S62dSVmLPU0
    • निष्पक्ष रूप से कहें तो, DMG games को 4MB तक पहुंचने से रोकने वाली कोई खास चीज नहीं थी
      cart की window size दोनों तरफ मूल रूप से 32KB ही रहती है, और bank switching 4MB हो या 1MB, cartridge side पर handle होती है
  • Game Boy अब तक निकले consoles में मेरा सबसे पसंदीदा device है। मैं अभी assembly language में Game Boy game बना रहा हूं, और वह pinball dungeon crawler है
    Hardware समझना आसान है, और constraints आपको creative बनने पर मजबूर करते हैं

  • Florent Gorges ने सिर्फ Game Boy पर एक किताब निकाली है, मगर अफसोस लगता है कि उसका English translation नहीं है। मैंने Spanish edition खरीदा, और उसमें creators के exclusive interviews हैं
    https://www.amazon.es/Historia-Nintendo-Vol-4-1989-1999-INCR...

  • आज के democratized hardware के स्तर पर, क्या सही components और wired PCB खरीदकर Game Boy फिर से बनाया जा सकता है?

    • लोगों ने कोशिश की है, लेकिन कम से कम original CPU तो transplant करना पड़ता है। ये chips किसी और use के लिए बनाए ही नहीं गए थे: https://www.reddit.com/r/Gameboy/s/FEAH2VhBRT
      FunnyPlaying ने हाल ही में reasonable price वाला FPGA-based version निकाला है: https://funnyplaying.com/products/fpgbc-kit?variant=40858870...
      Game Boy Advance के लिए components लगी हुई नई mainboard भी है, जिसमें CPU और RAM transplant करने पड़ते हैं
    • अगर आपको launch के समय के supercomputer जितना तेज GameBoy भी चले, तो ARM single-board computer पर Linux में GameBoy emulator चलाकर OLED screen पर output देने वाला setup 150 डॉलर से कम में और थोड़ी मानसिक ऊर्जा के साथ बनाया जा सकता है
      अगर hardware fidelity चाहिए, तो हाथ में पकड़ने लायक single device बनाने की लागत शायद “democratized” price range में नहीं आएगी
    • आज का approach FPGA इस्तेमाल करना है। Analogue Pocket देखिए, और दूसरे kits भी हैं
    • ज्यादा से ज्यादा शायद पुराने Game Boy से निकाले गए parts खरीदकर उन्हें फिर से assemble करना ही होगा। मुझे लगता है कहीं FPGA Game Boy implementation देखा था, शायद वही सबसे करीब तरीका हो सकता है
  • Game Boy architecture सीखकर क्या करोगे, पृथ्वी hack करोगे?

    • क्योंकि यह operating system के बिना सीधे hardware से interact करने वाली सरल architecture है, इसलिए embedded programming में प्रवेश के लिए अच्छा gateway है, और मजेदार भी है