2004幎ã«ãªãªãŒã¹ãããGame Boy Advanceã®æ³šç®ãã¹ãã²ãŒã ã·ãªãŒãºãèŠããŠãã人ããããããããŸããã ã·ã³ãã«ãªã©ãã«ãä»ããã©ã€ãã°ã¬ãŒã®ã«ãŒããªããžã¯ããã«ãã«ã©ãŒã®ã©ãã«ãä»ããéåžžã®ããŒã¯ã°ã¬ãŒã®ã«ãŒããªããžãšã¯å€§ããç°ãªããŸããã 圌ãã¯ãå ã®ãã³ãã³ããŒãšã³ã¿ãŒãã€ã¡ã³ãã·ã¹ãã ãã移æ€ãããã²ãŒã ã販売ããŸããã ç±³åœã§ã¯Classic NES SeriesãšããŠç¥ãããŠãããããã®ã²ãŒã ã¯ãããã€ãã®çç±ã§èå³æ·±ããã®ã§ãã
GBAããšãã¥ã¬ãŒããããšããç¹ã§ç¹ã«èå³æ·±ããã®ã§ãã éåžžãGame Boy Advanceã®ã²ãŒã ã¯éåžžã«åé¡ãå€ãããã©ãããã©ãŒã èªäœã«ã¯ã¯ã©ãã·ã¥ããä¿è·ããããã®å€ãã®æ段ãå«ãŸããŠããŸãã ãããã£ãŠãã²ãŒã ãå®è¡ããã«ã¯ããšãã¥ã¬ãŒã¿ãŒãå ã®æ©åšã®ãšã©ãŒãšäºææ§ãããå¿ èŠããããŸãã ãã ããã¯ã©ã·ãã¯NESã·ãªãŒãºã§ã¯ãéçºè ã¯ããã«é²ãã§ããšãã¥ã¬ãŒã¿ãŒã§ã®å®è¡ããã²ãŒã ãä¿è·ããããšããŸããã
å€ããšãã¥ã¬ãŒã¿ã®ããããã§ãã¬ã€ããããšããå Žåãããããã²ãŒã ããã¯ãšã©ãŒç»é¢ã衚瀺ãããŸããã çµå±ã®ãšããããããã®ã²ãŒã ã¯ããšãã¥ã¬ãŒã·ã§ã³ãè€éã«ããããªãã¯ãšäžå®ã®åäœã䜿çšããŠããŸãã ããã¯ããã®ãããªã²ãŒã ã®ã³ããŒãä¿è·ããããã®æå³çãªè©Šã¿ã§ãã£ãããã§ãã æ£ç¢ºãªãšãã¥ã¬ãŒã·ã§ã³ã®ããã«ããããã®ã²ãŒã ã§å®è¡ããããã¹ãŠã®ç°åžžãªã¢ã¯ã·ã§ã³ã綿å¯ã«èª¿æ»ãå®è£ ãèšé²ããŸããã
ç§1ïŒ1ïŒã¡ã¢ãªã®ãã©ãŒãªã³ã°
ã²ãŒã ã§äœ¿çšãããæåã®ããªãã¯ã«ã¯ãGame Boy Advanceã®ã¡ã¢ãªæ§é ãå«ãŸããŸãã GBAã«ã¯ããã©ãããªãïŒã»ã°ã¡ã³ãåãããŠããªãïŒã¡ã¢ãªã¢ãã¬ã¹ç©ºéããããŸãã ãã ããããã€ã¹ãçŸåšã¡ã¢ãªã«ã¢ã¯ã»ã¹ããå¿ èŠããããã¹ãžã®ã¢ãã¬ã¹ä¿¡å·ã®äžäœ8ãããã 00ã¯BIOSã02ã¯ã¡ã€ã³RAMã03ã¯ãããäžã®RAMãªã©ã§ãã ãã ããäžäœ8ãããã®ã¿ãããã€ã¹ã«ä¿¡å·ãéã ãã»ãšãã©ã®ããã€ã¹ã¯éåžžã«éãããïŒ16 ã¡ããã€ãæªæºïŒã¢ãã¬ã¹ç©ºéãæã£ãŠãããããäžäœ8ããããšããã€ã¹å ã®ã¢ãã¬ã¹ãéç¥ããäžäœãããã®éã®ãããã«ã¯ç¹å®ã®ç®çã¯ãããŸããã
ããšãã°ãã¡ã€ã³RAMã¯256 KBã§ãã ããã¯18ãããã®ã¢ãã¬ã¹ç©ºéã«çžåœããŸãã ãããã£ãŠããã®ã¡ã¢ãªé åã®ã¢ãã¬ã¹ã¯02000000ã0203FFFFã®ç¯å²ã§ããã02040000ã02FFFFFFã®ãã¹ãŠã¯ã¢ãã¬ã¹æå®ãããªããŸãŸã§ãã éåžžã®ARMããã€ã¹ã§ã¯ãç¡å¹ãªã¢ãã¬ã¹ã«ã¢ã¯ã»ã¹ãããšããŒã¿ã¢ããŒããšã©ãŒãçºçããŸãã ãã ããGBAã¯ããŒã¿ãã³ãããµããŒãããŠããªãããããã®æç¹ã§äœãèµ·ãã£ãŠãããã¯ç¹ã«èå³æ·±ããã®ã§ãã äžäœ8ããããããã€ã¹ã®éžæã«äœ¿çšãããäžäœ18ããããããã€ã¹ã®ã¢ãã¬ã¹æå®ã«äœ¿çšããããããäžå€®ã«6åã®æªäœ¿çšãããããããŸãã ãããã®æªäœ¿çšãããã¯å®éã«ã¯ç¡èŠãããŸãã ã€ãŸããã¡ã€ã³RAMã®å®éã®ã¡ã¢ãªé åã®äžã®ããŒã¿ã«ã¢ã¯ã»ã¹ããããšãããšãäžäœããããå®éã«ãã¹ã¯ãããæå¹ãªã¢ãã¬ã¹ãæã€é åã®ã¿ãæ®ããŸãã äžéšã®ãšãã¥ã¬ãŒã¿ã§ã¯ããã®ããããã£ã¯ããã©ãŒåãã¡ã¢ãªãšåŒã°ããŸãã
ã¯ã©ã·ãã¯NESã·ãªãŒãºã¯ããã©ãŒã¡ã¢ãªã§ã¯ç¹å¥ãªããšã¯è¡ããŸãããã³ãŒããã¡ã€ã³RAMã«ã³ããŒããŠããããããã®ãã©ãŒã¢ãã¬ã¹ã®1ã€ã«ç§»åããŸãã ãã®ã¢ã¯ã·ã§ã³ã¯äžéšã®ãšãã¥ã¬ãŒã¿ãŒãæ··ä¹±ãããŸãããã¡ã¢ãªãŒé åã®å®è£ ã®ç¹æ§ã«ãããmGBAã§åé¡ãåŒãèµ·ããããšã¯ãããŸããã ãã ããããã¯äŸç¶ãšããŠClassic NESã§äœ¿çšãããæãç°¡åãªããªãã¯ã§ãã
ããªãã¯2ïŒVRAMã®ã³ãŒã
ã²ãŒã ã®ãããªãäœæ¥ã¯éåžžã«èå³æ·±ãã§ãïŒãããªã¡ã¢ãªïŒVRAMïŒã«ããŒã¿ã®ã³ããŒãéå§ããŸãããããã¯ããèªäœã¯å®å šã«æ£åžžã§ãããåœä»€ã®å®è¡ã¯ãããªã¡ã¢ãªã«ã³ããŒããããã®ããŒã¿ã«è»¢éãããŸãïŒã³ãŒããéåžžã°ã©ãã£ãã¯ã¹çšã«äºçŽãããŠããRAMé åã«ã³ããŒããåŸãããã§å®è¡ãããŸãã ãã®ã²ãŒã ã®åäœãåããŠèŠããšãã倧ããªééããç¯ãããšæããŸããã ç¡å¹ãªã¢ãã¬ã¹ã«ã¢ã¯ã»ã¹ããããšã¯ããšãã¥ã¬ãŒã¿ã®èª€åäœã®å žåçãªçç¶ã§ãã ããã¯éåžžãå®è¡å¯èœã¢ãã¬ã¹ãŸãã¯ã¡ã¢ãªã«ã³ããŒãããšãã«çºçããŸãã ãããã詳现ãªèª¿æ»ã®çµæãã²ãŒã ã«ãããªã¡ã¢ãªå ã®ã³ãŒããå®è¡ããããšãã¯ã©ãã·ã¥ã¯çºçãããäœæ¥ã¯æ¯èŒçå®å®ããŠããããšãããããŸããã ãã®ä»ã®åé¡ã¯æ®ã£ãŠããŸããããããããšãã¥ã¬ãŒã·ã§ã³ããä¿è·ããããã®æŠè¡ã§ããããšã¯æããã§ããã æå³ããŠããªãæäœã§ãããªã¡ã¢ãªã䜿çšããããšã¯æåã¯æ··ä¹±ããŸããããã²ãŒã ã«ãã®çš®ã®äœæ¥ãèš±å¯ãããšãä»ã®åé¡ãçºçããŸããã
ç§3ïŒ3ïŒDMAã¬ãžã¹ã¿ã®STM
次ã®ããªãã¯ã¯ãSTMåœä»€ã®éåžžã«éæšæºçãªäœ¿çšã§ãã STMïŒãè€æ°æ ŒçŽããè€æ°ã¹ãã¬ãŒãžã®ç¥ïŒã¯ãäžå€®åŠçè£ çœ®ã®è€æ°ã®ã¬ãžã¹ã¿ãã·ãªã¢ã«ã¡ã¢ãªã«ããã¯ããããã«èšèšãããåœä»€ã®ã¯ã©ã¹ã§ãã STMåœä»€ã«ã¯ãåŸç¶ã®ãã¯ãªã¡ã³ããäºåã®ãã¯ãªã¡ã³ããåŸç¶ã®ã€ã³ã¯ãªã¡ã³ããäºåã®ã€ã³ã¯ãªã¡ã³ãã®4çš®é¡ããããŸãã ãåŸç¶ã®ãã¯ãªã¡ã³ãããšãã説æã¯ãããã¯ãããã¡ã¢ãªã®æ§é ãæããŸããå€ã¯é çªã«ä¿åãããåã¯ãŒããä¿åããããã³ã«ã¢ãã¬ã¹ã¯ã¯ãŒãã®ãµã€ãºã ãæžå°ããŸãã ãã®æäœã¯ãã¡ã¢ãªã«éé ã§æžã蟌ãããã»ã¹ã«äŒŒãŠããŸãã AãBãCã®å€ãä¿åãããšããããã¯CBAãšããŠã¡ã¢ãªã«æžã蟌ãŸããŸãããããã£ãŠãAããœãŒã¹ã¢ãã¬ã¹ã§ãããããAããå§ããŠãéã®é åºã§å€ãåŠçã§ããŸãã
ãã ããMartin Korthãæžããããã«ãå®éã«ããã»ããµã¯æåŸã®ã¬ãžã¹ã¿ã®ã¢ãã¬ã¹ãã©ãã«ãªãããäºåã«èšç®ãããã¯ãªã¡ã³ãã§ã¯ãªãã€ã³ã¯ãªã¡ã³ãã®å Žåãšåãé åºã§å€ãæžã蟌ã¿ãŸãã ãã®ãããçµæãšããŠCBAãã¡ã¢ãªã«æ ŒçŽããããšããäºå®ã«ãããããããæåã«Cãæžã蟌ã¿ãŸãããšãã¥ã¬ãŒã¿ã¯ãæ ŒçŽãããã¬ãžã¹ã¿ã®æ°ãäºåã«çµ¶ããèšç®ããå¿ èŠããããããäœæ¥ãé ããªãå¯èœæ§ããããŸãã äžè¬ã«ãã¡ã¢ãªãžã®æžã蟌ã¿é åºã¯éèŠã§ã¯ãªãããã«æãããŸããç¹ã«ãã¡ã¢ãªãžã®æžã蟌ã¿ãã¢ãããã¯ã§ãããšèŠãªãããã·ã³ã°ã«ã³ã¢ããã»ããµã®å Žåã¯éèŠã§ã¯ãããŸããã ã¡ã€ã³RAMã®å Žåãããã¯æ¬åœãããããŸããã ïŒèšé²ã¯1ã€ã®åœä»€ã§å®è¡ããããããDMAïŒ ãã€ã¬ã¯ãã¡ã¢ãªã¢ã¯ã»ã¹ ïŒã¯èšé²ããã»ã¹ã®éäžã§CPUã解æŸã§ããŸãããïŒãã ããã¯ã©ã·ãã¯NESã·ãªãŒãºã®ã²ãŒã ã§ã¯ã1ã€ã®åœä»€ã§DMAããŒã¿ã転éããããªãã¯ãè¡ãããŸãã
DMAããŒã¿è»¢éã¯ãããé åããå¥ã®é åã«ã¡ã¢ãªãå¹ççã«ã³ããŒããããã«äœ¿çšãããŸããå€ãã®å Žåãã²ãŒã ããã¯ããã¡ã€ã³RAMããŸãã¯ã¡ã€ã³RAMããFIFOãªãŒãã£ãªãããã¡ã«ã³ããŒãããŸãã ã¡ã¢ãªI / Oã¬ãžã¹ã¿ã®ãã£ãŒã«ãã«ã¯ãDMAããŒã¿éä¿¡ãèšå®ããããã®èšé²ãå¯èœãªãDMAãã£ãã«ããšã«3ã€ã®é£ç¶ããã¬ãžã¹ã¿ããããŸãïŒåèš4ã€ã®DMAãã£ãã«ããããŸãïŒã éåžžãã²ãŒã ã¯2ã€ã®åå¥ã®32ããããšã³ããªã§éä¿¡å ã¢ãã¬ã¹ãšå®å ã¢ãã¬ã¹ã瀺ããããŒã¿è»¢éãéå§ããŠãDMAã®æ°ãšå¶åŸ¡ããããèšé²ããŸãããŸãã¯ã1ã€ã®æåŸã®32ããããšã³ããªããŸãã¯å¶åŸ¡ã¬ãžã¹ã¿ã®åååã«2ã€ã®16ããããšã³ããªããããŸãã
ããããã¯ã©ã·ãã¯NESã·ãªãŒãºã®ã²ãŒã ã¯ã¯ããã«ã¹ããŒãã§ããããã3ã€ã®ã¬ãžã¹ã¿ã¯ã¡ã¢ãªã«é æ¬¡æ ŒçŽããããããSTMIAããã³STMDAåœä»€ã䜿çšããŠ3ã€ã®å€ããã¹ãŠåæã«èšé²ããŸãã STMIAã¯æãåçŽãªã±ãŒã¹ã§ãã1ã€ã®ã¬ãžã¹ã¿ã«æžã蟌ã¿ãã€ã³ã¯ãªã¡ã³ãã次ã®ã¬ãžã¹ã¿ã«æžã蟌ã¿ãã€ã³ã¯ãªã¡ã³ããå¶åŸ¡ã¬ãžã¹ã¿ã«æžã蟌ã¿ãã€ã³ã¯ãªã¡ã³ãã STMDAã¯å°ãç°ãªããŸãããã¯ãªã¡ã³ããå®è¡ããããããããèªèããŠããªããšãã¥ã¬ãŒã¿ãŒã¯å¶åŸ¡ããããã¢ãã¬ã¹ã«æžã蟌ãããšãã§ãããããäžæ£ãªDMAããŒã¿éä¿¡ã«ã€ãªãããŸãã AãBãããã³Cã¯CBAãšããŠæžã蟌ãŸããéå§ã¢ãã¬ã¹ã¯ã¢ãã¬ã¹Aã§ãããAã¯æåŸã«æžã蟌ãŸããå¿ èŠããããŸãã æžã蟌ã¿å¯èœãªã¬ãžã¹ã¿ã«ããã³ã°ã®éã¿ã䜿çšããé åºãæ£ããæ©èœããããã«ã¬ã³ãŒãã®éå§ãªãã»ãããååŸããå¿ èŠããããŸããã ãããã®æäœãå€æŽããåŸãæ©åšã®æåŸ ã«å¿ããŠãããŒã¿è»¢éãé©åã«å®è¡ããå§ããŸããã
ç§4ïŒ4ïŒä¿åã¿ã€ãã®é衚瀺
ããããããªãã¯ã¯ããã§çµãããŸããã§ããã 次ã®ããªãã¯ã¯ããã»ã©é£ãããªããä»ã®ã²ãŒã ã§ã䜿çšãããŠããŸãã Game Boy Advanceã«ãŒããªããžã«ã¯ã1ã€ä»¥äžã®ä¿æã¡ã«ããºã ãå«ããããšãã§ããŸãã äžéšã®ã²ãŒã ã¯ããã€ãã¢ãã¬ãã·ã³ã°ãåããNVRAMã®ä¿åã䜿çšããŸãã ãããã¯ã¡ã¢ãªãããã¯0Eã«ååšããæ£åžžã«ä¿åã§ããŸãã ä»ã®ã«ãŒããªããžã¯ãåãé åã®ãã©ãã·ã¥ã¡ã¢ãªã䜿çšãããã©ãã·ã¥ã¡ã¢ãªãžã®ãã€ãã®æžã蟌ã¿ãŸãã¯åããã°ã©ãã³ã°ã®ããã®é åã®æ¶å»ã«æšæºãããã³ã«ã䜿çšããŸãã 3çªç®ã®ã¿ã€ãã¯EEPROMã§ãã²ãŒã ããã¯ã¡ã¢ãªãšãªã¢ïŒ0Dãšãªã¢ïŒã®äžéšã«ãããŸãã DMAããŒã¿è»¢éã䜿çšãããããã¬ãã«ã®ãããã³ã«ã䜿çšããŠãããã°ã©ãã³ã°ã®ããã«äžé£ã®ããããEEPROMã«éä¿¡ããŸãã ãã ããåã²ãŒã ã«ä¿åã§ããã®ã¯1çš®é¡ã®ã¿ã§ãããã«ãŒããªããžã®ã¿ã€ãã«ã«ã¯äœ¿çšãããçš®é¡ã瀺ãããŠããŸããã mGBAãå«ãäžéšã®ãšãã¥ã¬ãŒã¿ãŒã¯ãã²ãŒã ããããã®ãããããšå¯Ÿè©±ããããšãããŸã§åŸ æ©ããŠãä¿åã®ã¿ã€ããå€å¥ããããšããŠããŸãã ããããã¯ã©ã·ãã¯NESã·ãªãŒãºãå«ãäžéšã®ã²ãŒã ã§ã¯ããšãã¥ã¬ãŒã¿ãã ãŸããŠééã£ãã¿ã€ãã«æåã«ã¢ã¯ã»ã¹ããããšããŸãã ããšãã°ããããã®ã²ãŒã ã¯ãã¹ãŠEEPROMã䜿çšããŠããŸãããSRAMã䜿çšããŠãããµããããŠããŸãã SRAMã«æžã蟌ãã ãšå€æããå Žåãäžèšã®Game Pak Errorç»é¢ã衚瀺ãããŸãã ãã®ããªãã¯ã¯ç°¡åã«åé¿ã§ãããšãã¥ã¬ãŒã¿ã¯ã²ãŒã ã³ãŒããäºåã«ãã§ãã¯ããŸãã 圌ãClassic NESã·ãªãŒãºã²ãŒã ã«é¢é£ããã³ãŒããçºèŠããå Žåã圌ã¯åŒ·å¶çã«ä¿åã¿ã€ããEEPROMã«å€æŽããŸãã
ããªãã¯5ïŒããªãã§ããéå
ãããã®ã²ãŒã ã®æ¬¡ã®ããªãã¯ã¯ãç§ã«ãšã£ãŠèŠã€ãã«ãããã®ã§ããã 調æ»ãå®äºããã«ã¯æ°æ¥ãããããã®åŸãããŒã¹ãšãã¥ã¬ãŒã·ã§ã³ãµã€ã¯ã«ã«ããªãäœã¬ãã«ã®å€æŽãå ããå¿ èŠããããŸããã ããã€ã¹ããã»ããµã«ã¯ããã€ãã©ã€ã³ãšåŒã°ããåœä»€ãå®è¡ããããã®ãã«ãã¹ãããããã»ã¹ããããŸãã å段éã§ãCPUã®äžéšãããžãã¹ã§å¿ãããä»ã®éšåãç¬èªã®æ®µéãå®è¡ããããã«ãåå¥ã®ã¿ã¹ã¯ãå®è¡ãããŸãã ã³ã³ãã¢ã¯ããã段éã§åœä»€ãå®è¡ããŠæ¬¡ã®æ®µéã«æž¡ããšãåŸç¶ã®åœä»€ããã§ã«è§£æŸããã段éãããã«åŒãç¶ãããšãã§ããããã«èšèšãããŠããŸãã Game Boy Advance ARM7TMDIããã»ããµã«ã¯ãæ£ç¢ºãªãšãã¥ã¬ãŒã·ã§ã³ã«å¿ èŠãª3ã€ã®ã¹ããŒãžããããŸãããµã³ããªã³ã°ïŒåœä»€ïŒããã³ãŒããå®è¡ã§ãã ãµã³ããªã³ã°æ®µéã§ãã¡ã¢ãªèŠæ±ãåœä»€ã«é¢é£ä»ããããã¡ã¢ãªãã¹ã«éä¿¡ãããŸãã 次ã«ããã³ãŒã段éã«è»¢éãããããã»ããµã¯ãããã©ã®ãããªåœä»€ã§ããããèŠã€ããŸãã æåŸã«ãããã»ããµãåœä»€ãå®è¡ããŸãã çŽ æŽãªéèš³è ã¯ãäœæ¥ãã¹ããŒãã¢ããããããã«ããŸãã¯åã«ããã»ããµã®åçãç¥ããªãããã«ã3ã€ã®ã¹ããŒãžãã¹ãŠãçµã¿åãããŸãã æè¿ãŸã§ãmGBAã§ã¯ããã³ãŒããšå®è¡ã®ã¹ããããçµã¿åããããŠããŸããã ãã ããã¯ã©ã·ãã¯NESã·ãªãŒãºã®ã²ãŒã ã®ã³ãŒãã調ã¹ããšãã«ãéèŠãªçºèŠãè¡ãããŸãããã²ãŒã ã¯å®è¡ã¹ããŒãžã®ããè¿ãã§åœä»€ãå€æŽããŸããã ããã¯ãã¯ã©ã·ãã¯NESã¡ããã€ããããªã¡ã¢ãªããååŸããã¢ã»ã³ãã©ã³ãŒãã§ãã
06000260: E3A01000 mov r1, #0 06000264: E28FE008 add lr, pc, #8 06000268: E51F0010 ldr r0, [$06000260] 0600026C: E58E0000 str r0, [lr, #0] 06000270: E3A010FF mov r1, #255 06000274: E3A010FF mov r1, #255
ã³ãŒãã¯éåžžã«ç°¡åã§ãã 0ãr1ã«ä¿åããŠããã06000260ã®åèªãr0ã«ããŒããã06000274ã«ä¿åããŸãããã®åŸã255ãr1ã«ä¿åããæåŸã«...ãŸããå®éãå°ãåãã€ããŸããã ãã®ã¢ã»ã³ããªãããã¯ã®æåŸã®åœä»€ã¯ãåã®2ã€ã®åœä»€ã§ä¿åãããã¢ãã¬ã¹ãšåãã§ããããšã«æ³šæããŠãã ããã ãã®ã¢ãã¬ã¹ã«æ ŒçŽãããŠããå€ã¯ã255ã§ã¯ãªãr1ã«å€0ãæ ŒçŽããåœä»€ã§ããããã§ããã®ã³ãŒãã¯äœãããŸããïŒ çãã¯ãã³ã³ãã¢ã®é·ãã«äŸåããŸãã
ãã®ã³ãŒããããã¯ãç解ããäžã§æãéèŠãªããšã¯ãåœä»€ããã€ãã©ã€ã³ã«æž¡ããåŸããã®ã¢ãã¬ã¹ãè¿ãã¡ã¢ãªã®å€æŽã¯é©çšã§ããªãããšãèªèããããšã§ãã ããã¯ããã£ãã·ã¥ã®æŽåæ§ã®ååã«äŒŒãŠããŸãããããã«å³ããã±ãŒã¹ã§ãã ããã¯ããã€ãã©ã€ã³ãååã«é·ãå Žåãèšé²ããã»ã¹äžã«ãã€ãã©ã€ã³ã«å°éããåœä»€ã¯255ãä¿åããåœä»€ã«ãªãããšãæå³ããŸãããã€ãã©ã€ã³ãçãããå Žåã0ãä¿åããŸãã ãéåžžã¯255ã®å€ããå§ãŸããŸããããã«æ°ä»ããã®ã§ãmGBAã§ãšãã¥ã¬ãŒãããããã€ãã©ã€ã³ãæ¡åŒµããå®è¡ãšéžæã®éã«ãããŒã®ã¹ããŒãžãæ¿å ¥ããå¿ èŠããããŸããã å®éã®ARM7TDMIãã€ãã©ã€ã³ã§ã¯ãããã2ã€ã®æé ã®éã«ãã³ãŒãæé ããããŸãã ããããç§ã¯ä»æ§ã泚ææ·±ãèªã¿ãŸããã§ãããããã®æ®µéãåå¥ã«å®è£ ãããããšãç解ããŠããŸããã§ããã ãã€ãã©ã€ã³ã®å¥ã®ã¹ããŒãžãã¯ã©ã·ãã¯NESã·ãªãŒãºã€ã³ã¿ãŒããªã¿ãŒã«è¿œå ããåŸã圌ãã¯çªç¶åãå§ããŸããïŒ
ç§66ïŒãµãŠã³ãFIFOãããã¡ã®äžåäžæ§
ãã ããè€éãªç¹ã1ã€ãããŸããã²ãŒã ããã¬ã€ã§ããŸãããé³ã絶æçã«ââçãããããŸããã ãã®ãœãªã¥ãŒã·ã§ã³ã«ã¯å°ãã®ãããã°ãå¿ èŠã§ãããããã®ããªãã¯ã¯ã¯ã©ã·ãã¯NESã·ãªãŒãºã«ãåºæã®ãã®ã§ããããããã£ãŠãä»æ§ãå®å šã«äžèŽããªããããå°ãééã£ãŠå®è£ ãããŠããŸããã Game Boy Advanceã«ã¯6ã€ã®ãªãŒãã£ãªãã£ã³ãã«ããããŸãïŒæç¶ãçã«çæããã4ã€ã®ãµãŠã³ããã£ã³ãã«ïŒå ã®Game Boyã®æ©èœçã«æ¡åŒµããããã£ã³ãã«ïŒãš2ã€ã®PCMãªãŒãã£ãªãã£ã³ãã«ã ç§ãç解ããããã«ãã¯ã©ã·ãã¯NESã·ãªãŒãºã®ã²ãŒã ã¯ãPCMãã£ã³ãã«ã®1ã€ã§ãã1ã€ã®ãã£ã³ãã«ã®ã¿ã䜿çšããŸãã PCMãªãŒãã£ãªãã£ãã«ã¯å°ããªå éšFIFOãããã¡ãŒã«ãã£ãŠå¶åŸ¡ãããç¹å®ã®ãã€ã³ãã«å°éãããšDMAããŒã¿ã®éä¿¡ãéå§ããŸãã ã²ãŒã ã¯ãåãã£ãã«ã«é¢é£ä»ããããI / Oã¬ãžã¹ã¿ã«äžåºŠã«32ããããæžã蟌ãããã«èšå®ããŸãã PCMãã£ã³ãã«ã¯8ãããå¹ ãããªãããã32ãããé²é³ã¯å®éã«ã¯4ãµã³ãã«ã§ãã ãã ããã¯ã©ã·ãã¯NESã·ãªãŒãºã®ã²ãŒã ã¯å°ãç°ãªããŸããã¬ãžã¹ã¿å šäœã§ã¯ãªããäžåºŠã«16ãããã®ã¿ãååã§æžã蟌ã¿ãŸãã ã²ãŒã ã§ã¯äžåºŠã«32ãããããèšé²ã§ããªããšæ³å®ããŠããããããšãã¥ã¬ãŒã¿ã¯ã²ãŒã ã«å¿ èŠãª2ã€ã®ãµã³ãã«ãš2ã€ã®ç©ºã®ãµã³ãã«ãåæã«èšé²ããããšã«ãªããŸããã ãã®ãããµããèŠèœãšãã¯ãã²ãŒã ã®é³ãå®å šã«æªããŸããã ç°¡åãªä¿®æ£ãè¡ã£ãåŸãã²ãŒã ã¯æ£åžžã«åäœãå§ããŸããã
ç§ãã¡ã¯æåãåããŸãããããªããã®ãããªå°é£ãªã®ã§ãã
任倩å ãNESã®éåžžã®ã²ãŒã ããŒãã§ããããã¹ãŠè¡ã£ãçç±ã¯ããããŸããã ãã«æ©èœã®NESãšãã¥ã¬ãŒã¿ãŒã¯é·ãéååšããŠããã1997幎ã«è¯ãäŸãç»å ŽããŸããã Classic NESã·ãªãŒãºã®ã²ãŒã ã¯åããŠããŒã¿ãã«ã³ã³ãœãŒã«ã§ãã¬ã€ã§ããŸãããä»ã®ããŒã¿ãã«ããã€ã¹ã§ã®Game Boy Advanceãšãã¥ã¬ãŒã·ã§ã³ã¯æ°å¹Žåãã䜿çšãããŠããŸãã ããã«ããªã¹ãããåé¡ã«ããäžéšã®ãããžã§ã¯ãã§ãšãã¥ã¬ãŒã·ã§ã³ã劚ããããŸãããããã®ãããªä¿è·ã¯Classic NESã·ãªãŒãºã§ã®ã¿äœ¿çšãããŠããŸããã ãã®ç¹å®ã®ã±ãŒã¹ã§ãšãã¥ã¬ãŒã¿ãŒã®éçºè ã«å¹²æžããã®ã«ãªã圌ãããããªã«åªåãããã®ãã¯ããããŸããããç§ã«ãšã£ãŠã¯ãäºæ ãæ¬åœã«æªããªããŸã§ãã²ãŒã ã³ãŒãé¢æ°ã®äžè²«ããåæãäœæ©ãç¶ããŸããã
ãã ãããããã®åé¡ããã¹ãŠæé€ãããšãã²ãŒã ã¯100ïŒ èµ·åããŠåäœããŸãã ææ°ã®ä¿®æ£ã¯ããŒãžã§ã³0.1.0ã§è¡ãããŸããããããã€ãã®å€§ããªå€æŽã¯åŸæ¥ãŸã§å»¶æãããŸããã ã²ãŒã ã¯ããªãªãŒã¹åŸã®ããŒãžã§ã³0.2.0ã§å®å šã«ãµããŒãããããã€ããªãŒãªãªãŒã¹ã§ãã¬ã€ã§ããããã«ãªããŸããã