ã¬ããŒãã¯3ã€ã®éšåã«åããããšãã§ããŸãã
- 6502ããã»ããµã®åäœãšãJavaScriptã䜿çšããŠãšãã¥ã¬ãŒãããæ¹æ³ã
- ã°ã©ãã£ãã¯ã¹åºåããã€ã¹ã®ä»çµã¿ãšã²ãŒã ã®ãªãœãŒã¹ã®ä¿åæ¹æ³ã
- WebãªãŒãã£ãªã䜿çšããŠãªãŒãã£ãªãåæããæ¹æ³ãšããªãŒãã£ãªorletã䜿çšããŠ2ã€ã®ã¹ããªãŒã ã«äžŠååããæ¹æ³ã
æé©åã®ãã³ããæããŠã¿ãŸãããããã§ãããšãã¥ã¬ãŒã·ã§ã³ãéèŠã§ãã60FPSã§ã¯ãã³ãŒããå®è¡ããæéãã»ãšãã©ãããŸããã
-ã¿ãªãããããã«ã¡ã¯ãç§ã®ååã¯ãŒãŒãã£ã§ããä»åºŠã¯ãåææ¥ã«ãå€ãã®åææ¥ã®ãããžã§ã¯ãã«ã€ããŠå°ãå€ãã£ã話ããããŸããæ¢åã®Webãã¯ãããžãŒã®äžã«å®è£ ã§ããã³ã³ãã¥ãŒã¿ãŒã·ã¹ãã ã®ãšãã¥ã¬ãŒã·ã§ã³ã«ã€ããŠè©±ããŸããããå®éãWebã«ã¯ãã§ã«ããªãè±å¯ãªããŒã«ãããã絶察ã«é©ãã¹ãããšãã§ããŸããå ·äœçã«ã¯ã90å¹Žä»£ã®æåãªãã³ãã£ã³ã³ãœãŒã«ã§ãå®éã«ã¯ãã³ãã³ããŒãšã³ã¿ãŒãã€ã³ã¡ã³ãã·ã¹ãã ãšåŒã°ããŠãããšãã¥ã¬ãŒã¿ãŒã«ã€ããŠã話ããŸãã
å°ãæŽå²ãæãåºããŸãããã 1983幎ã«ãã¡ãã³ã ãæ¥æ¬ã§çºå£²ããããšãã«å§ãŸããŸããã任倩å ããçºå£²ãããŸããã 1985幎ã«ãã³ãã³ããŒãšã³ã¿ãŒãã€ã³ã¡ã³ãã·ã¹ãã ãšåŒã°ããã¢ã¡ãªã«çããªãªãŒã¹ãããŸããã 90幎代ã«ã¯ããã³ãã£ãšåŒã°ããåãå°æ¹Ÿã®å°åããããŸããããå¯ãã«ãããã¯éå ¬åŒã®æ¥é èŸã§ãããããŠããã³ãã³ããŒããã®æåŸã®ãã®ãããªéã®èŽãç©ã¯ãNESãããåºã2016幎ã§ãããæ®å¿µãªãããç§ã¯NESminiãæã£ãŠããŸããã SNES miniãã¹ãŒããŒãã³ãã³ããŒããããŸãããããã©ãã»ã©å°ããããèŠãŠãã ããããã®ã¹ã©ã€ããèŠããšãã ãŒã¢ã®æ³åããã®æ å ã®ãã¹ãŠãèŠãããšãã§ããŸãã
1985幎ãšã³ã³ãœãŒã«ãšãžã§ã€ã¹ãã£ãã¯ã®æ¯çãèŠããšã2016幎ã«ã¯ãäººã®æãå€ãããªãããããžã§ã€ã¹ãã£ãã¯ãå°ããããããšã¯ã§ããŸããããã³ã³ãœãŒã«èªäœã¯å°ãããªã£ãŠããããããã¹ãŠãã©ãã ãå°ãããªã£ãããããããŸãã
ãã§ã«æ°ã¥ããããã«ãå€ãã®ãšãã¥ã¬ãŒã¿ãŒããããŸããèšããŸããã§ããããå°ãªããšã1人ã®é¢ä¿è ãæ°ã¥ããŸãããããïŒSNESminiãŸãã¯NESminiïŒã¯ãå®éã«ã¯å®éã®ã»ãããããããã¯ã¹ã§ã¯ãããŸãããããã¯ãã³ã³ãœãŒã«ããšãã¥ã¬ãŒãããããŒããŠã§ã¢ã§ããã€ãŸããå®éã«ã¯ãããã¯å ¬åŒã®ãšãã¥ã¬ãŒã¿ãŒã§ãããããã¯éåžžã«é¢çœãéã®åœ¢ã§æäŸãããŸãã
ãããããåç¥ã®ããã«ã2000幎代以éãNESããšãã¥ã¬ãŒãããããã°ã©ã ãããããã®ãããã§ãã®æä»£ã®ã²ãŒã ãæ¥œããããšãã§ããŸãããããŠãå€ãã®ãšãã¥ã¬ãŒã¿ãŒããããŸãããªãå¥ã®ãã®ãç¹ã«JavaScriptã§ãããªãã¯ç§ã«å°ããŸããïŒç§ããã®ããšããããšããç§ã¯ãã®è³ªåã«å¯Ÿãã3ã€ã®çããèªåã§èŠã€ããŸããã
- , . - , . . , - , - . . . , , . , -.
- , , . , , , , NES â , , NTSC, 60 . 16 , . .
- . , . , , . , , â , . . , , .
ãŸããNESãå®è¡ããããã»ããµã®ãšãã¥ã¬ãŒãã«ã€ããŠã話ããŠããMattGodboldã«ãããã¬ãŒã³ããŒã·ã§ã³ãèŠãŸããã圌ã¯ãç§ãã¡ããã®ãããªäœã¬ãã«ã®ãã®ããã®ãããªé«ã¬ãã«ã®èšèªã§ãšãã¥ã¬ãŒãããŠããã®ã¯é¢çœããšèšããŸãããç§ãã¡ã¯ããŒããŠã§ã¢ã«ã¢ã¯ã»ã¹ã§ããã鿥çã«äœæ¥ããŠããŸãã
äœããšãã¥ã¬ãŒãããããã©ã®ããã«ãšãã¥ã¬ãŒãããããªã©ã®æ€èšã«ç§»ããŸããããããã»ããµããå§ããŸãã NESèªäœã¯è±¡åŸŽçã§ãããã·ã¢ã«ãšã£ãŠãããã¯çè§£ã§ããŸããããã¯æåçãªçŸè±¡ã§ãããããã西åŽãæ±åŽãæ¥æ¬ã§ã¯ãã³ã³ãœãŒã«ãå®éã«å®¶åºçšãããªã²ãŒã æ¥çå šäœãæã£ããããããã¯æåçãªçŸè±¡ã§ããããŸããã
ããã»ããµã¯ã象城çãªMOS6502ã«ãã€ã³ã¹ããŒã«ãããŠããŸãããã®æçŸ©ã¯äœã§ããïŒç»å Žããæç¹ã§ãç«¶åä»ç€Ÿã®äŸ¡æ Œã¯180ãã«ãMOS6502ã®äŸ¡æ Œã¯25ãã«ã§ãããã€ãŸãããã®ããã»ããµã¯ããŒãœãã«ã³ã³ãã¥ãŒã¿é©åœãéå§ããŸããããããŠããã«ç§ã¯2å°ã®ã³ã³ãã¥ãŒã¿ãŒãæã£ãŠããŸãã 1ã€ç®ã¯AppleIIã§ããç§ãã¡ã¯çããã®ã€ãã³ããããŒãœãã«ã³ã³ãã¥ãŒã¿ã®äžçã«ãšã£ãŠã©ãã»ã©éèŠã§ãã£ãããç¥ã£ãŠãããæ³åããŠããŸãã
BBCãã€ã¯ãã³ã³ãã¥ãŒã¿ãŒããããŸãã圌ã¯è±åœã§ãã人æ°ããããBBCã¯è±åœã®ãã¬ãäŒç€Ÿã§ããã€ãŸãããã®ããã»ããµã¯ã³ã³ãã¥ãŒã¿ã倧è¡ã«ãããããŸããããã®ãããã§ãç§ãã¡ã¯ããã°ã©ããŒãããã³ããšã³ãéçºè ã«ãªããŸããã
æå°éã®ããã°ã©ã ãèŠãŠã¿ãŸããããã³ã³ãã¥ãŒãã£ã³ã°ã·ã¹ãã ãäœãã«ã¯äœãå¿ èŠã§ããïŒ
CPUèªäœã¯ããªã圹ã«ç«ããªãããã€ã¹ã§ãããåç¥ã®ããã«ãCPUã¯ããã°ã©ã ãå®è¡ããŸããããããå°ãªããšããã®ããã°ã©ã ãã©ããã«ä¿åããã«ã¯ãã¡ã¢ãªãå¿ èŠã§ãããããŠãã¡ãããããã¯æå°ããã°ã©ã ã«å«ãŸããŠããŸãããããŠãç§ãã¡ã®ã¡ã¢ãªã¯ããã€ããšåŒã°ãã8ãããã®ã»ã«ã§æ§æãããŠããŸãã
JavaScriptã§ã¯ãåä»ãUint8Arrayé åã䜿çšããŠãã®ã¡ââã¢ãªããšãã¥ã¬ãŒãã§ããŸããã€ãŸããé åãå²ãåœãŠãããšãã§ããŸãã
ã¡ã¢ãªãããã»ããµãšã®ã€ã³ã¿ãŒãã§ãŒã¹ãæã€ããã«ããã¹ããããŸãããã¹ã«ãããããã»ããµã¯ã¢ãã¬ã¹ãä»ããŠã¡ã¢ãªãã¢ãã¬ã¹æå®ã§ããŸããã¢ãã¬ã¹ã¯ãããŒã¿ã®ããã«8ãããã§ã¯ãªãã16ãããã§æ§æãããŠããããã64ãããã€ãã®ã¡ã¢ãªãã¢ãã¬ã¹æå®ã§ããŸãã
ããã»ããµã«ã¯ç¹å®ã®ç¶æ ããããAãXãYã®3ã€ã®ã¬ãžã¹ã¿ããããŸããã¬ãžã¹ã¿ã¯äžéå€ã®ã¹ãã¬ãŒãžã®ãããªãã®ã§ããã¬ãžã¹ã¿ãµã€ãºã¯1ãã€ããŸãã¯8ãããã§ããããã¯ãããã»ããµã8ãããã§ããã8ãããã®ããŒã¿ã§åäœããããšã瀺ããŠããŸãã
ã¬ãžã¹ã¿ãŒã®äœ¿çšäŸã 2ã€ã®æ°å€ã远å ãããã®ã§ãããã¡ã¢ãªã«ã¯ãã¹ã1ã€ãããããŸãããæåã®çªå·ããã®éã®ã©ããã«ä¿åããå¿ èŠãããããšãããããŸããããããã¬ãžã¹ã¿Aã«ä¿åããã¡ã¢ãªãã2çªç®ã®å€ãååŸããŠè¿œå ãããšãçµæãåã³ã¬ãžã¹ã¿Aã«é 眮ãããŸãã
æ©èœçã«ã¯ããããã®ã¬ãžã¹ã¿ã¯å®å šã«ç¬ç«ããŠãããäžè¬çãªã¬ãžã¹ã¿ãšããŠäœ¿çšã§ããŸãããã ããå ç®ãªã©ã®æå³ããããçµæã¯ã¬ãžã¹ã¿Aã§ååŸããã第1ãªãã©ã³ãã®å€ãååŸãããŸãã
ãŸãã¯ãããšãã°ãããŒã¿ã«å¯ŸåŠããŸããããã«ã€ããŠã¯åŸã§èª¬æããŸãããªãã»ããã¢ãã¬ã¹æå®ã¢ãŒããæå®ããXã¬ãžã¹ã¿ã䜿çšããŠæçµå€ãååŸã§ããŸãã
ããã»ããµã®ç¶æ ã«ã¯ä»ã«äœãå«ãŸããŠããŸããïŒã¢ãã¬ã¹ã¯2ãã€ãã§ãããããçŸåšã®ã³ãã³ãã®ã¢ãã¬ã¹ãæãPCã¬ãžã¹ã¿ããããŸãã
ã¹ããŒã¿ã¹ãã©ã°ã瀺ãã¹ããŒã¿ã¹ã¬ãžã¹ã¿ããããŸããããšãã°ã2ã€ã®å€ãæžç®ããŠè² ã«ãªããšããã©ã°ã¬ãžã¹ã¿ã®ç¹å®ã®ããããç¹ç¯ããŸãã
æåŸã«ãã¹ã¿ãã¯ãžã®ãã€ã³ã¿ã§ããSPããããŸããã¹ã¿ãã¯ã¯åãªãéåžžã®ã¡ã¢ãªã§ãããä»ã®ãã¹ãŠã®ããã°ã©ã ããåé¢ãããŠããããã§ã¯ãããŸããããã®SPãã€ã³ã¿ãå¶åŸ¡ããããã»ããµããã®åœä»€ããããŸãããããã¹ã¿ãã¯ã®å®è£ æ¹æ³ã§ããæ¬¡ã«ããã®ãããªè峿·±ããœãªã¥ãŒã·ã§ã³ã«ã€ãªãã1ã€ã®åªããã³ã³ãã¥ãŒã¿ãŒã®ã¢ã€ãã¢ãèŠãŠãããŸãã
ããã§ãããã»ããµãã¡ã¢ãªãç¶æ ãããã»ããµã«ããããšãããããŸãããç§ãã¡ã®ããã°ã©ã ãäœã§ãããèŠãŠã¿ãŸããããããã¯äžé£ã®ãã€ãã§ããäžè²«ããŠããå¿ èŠã¯ãããŸãããããã°ã©ã èªäœã¯ãã¡ã¢ãªã®ããŸããŸãªéšåã«é 眮ã§ããŸãã
ããã°ã©ã ãæ³åããããšãã§ããŸããããã«ã³ãŒãããããŸã-1ã2ã3ã4ã5ã6ã7ã8ã9ã10ãããã¯å®éã®6502ããã°ã©ã ã§ãããã®ããã°ã©ã ã®åãã€ãããã®é åã®åæ¡ã¯opcodeãšããŠã®ãšã³ãã£ãã£ã Opcode-æäœã³ãŒãã ããããããåã³ãæ®éã®æ°ã
ããšãã°ãopcode 169ããããŸããããã¯ãããèªäœã§2ã€ã®ãã®ããšã³ã³ãŒãããŸãã1ã€ã¯åœä»€ã§ããåœä»€ãå®è¡ãããšãããã»ããµãã¡ã¢ãªãªã©ã®ç¶æ ãã€ãŸãã·ã¹ãã ã®ç¶æ ãå€åããŸããããšãã°ã2ã€ã®æ°å€ãå ç®ãããšãçµæã¯ã¬ãžã¹ã¿Aã«è¡šç€ºãããŸããããã¯äŸã®åœä»€ã§ãããŸããLDAåœä»€ããããŸãããããã«ã€ããŠã¯ããã«è©³ããæ€èšããŸããã¡ã¢ãªããã¬ãžã¹ã¿Aã«å€ãããŒãããŸãã
opcodeããšã³ã³ãŒããã2çªç®ã®ããšã¯ãã¢ãã¬ã¹æå®ã¢ãŒãã§ãã圌ã¯åœŒå¥³ã®ããŒã¿ãã©ãã§å ¥æãããã«ã€ããŠæç€ºãäžããŸããããšãã°ããããIMMã¢ãã¬ãã·ã³ã°ã¢ãŒãã®å Žåãæ¬¡ã®ããã«è¡šç€ºãããŸããçŸåšã®ããã°ã©ã ã«ãŠã³ã¿ãŒã®é£ã®ã»ã«ã«ããããŒã¿ãååŸããŸãããŸãããã®ã¢ãŒããã©ã®ããã«æ©èœããJavaScriptã§ã©ã®ããã«å®è£ ã§ãããã«ã€ããŠã説æããŸãã
ãããããã°ã©ã ã§ãããããã®ãã€ããé€ãã°ããã¹ãŠãJavaScriptãšéåžžã«äŒŒãŠããŸãããäžäœã¬ãã«ã®ã¿ã§ãã
ç§ã話ããŠããããšãèŠããŠãããªããé¢çœããã©ããã¯ã¹ããããããããŸãããããã°ã©ã ãã¡ã¢ãªã«ä¿åããããŒã¿ãä¿åããŸãããã®è³ªåããããããããŸããïŒããã°ã©ã ã¯ããŒã¿ãšããŠæ©èœã§ããŸããïŒçãã¯ã€ãšã¹ã§ãããã®ããã°ã©ã ã®å®è¡æã«ãããã°ã©ã èªäœãã倿Žããããšãã§ããŸãã
ãŸãã¯å¥ã®è³ªåïŒããŒã¿ã¯ããã°ã©ã ã«ãªãããšãã§ããŸããïŒã¯ããããã»ããµã¯é¢ä¿ãããŸããã圌ã¯ã¡ããã©å·¥å Žã®ããã«ã圌ã«äŸçµŠããããã€ããç²ç ããæç€ºã«åŸããŸããé説çãªããšãããªããããã«ã€ããŠèãããªãã°ãããã¯éåžžã«å®å šã§ã¯ãããŸãããã¹ã¿ãã¯äžã®ããŒã¿ãªã©ã ãã®ããã°ã©ã ã®å®è¡ãéå§ã§ããŸãããã ããéåžžã«ç°¡åã§ãããšããå©ç¹ããããŸããè€éãªåè·¯ãè¡ãå¿ èŠã¯ãããŸããã
ããã¯ç§ãã¡ã仿¥åºããããæåã®çŽ æŽãããã¢ã€ãã¢ã§ããããã¯ãã©ã³ãã€ãã³ã¢ãŒããã¯ãã£ãšåŒã°ããŸããããããå®éã«ã¯å€ãã®å ±èè ãããã«ããŸããã
ããã«ç€ºãããŠããŸããããã°ã©ã 1ãopcode 169ãç¶ããŠ10ãããã€ãã®ããŒã¿ããããŸããã¯ãããã®ããã°ã©ã ã¯ã次ã®ããã«è¡šç€ºããããšãã§ããŸãã169ã¯ããŒã¿ã10ã¯opcodeã§ããããã¯6502ã®åæ³çãªããã°ã©ã ã«ãªããŸãããã®ããã°ã©ã å šäœãããŒã¿ãšèŠãªãããšãã§ããŸãã
ã³ã³ãã€ã©ãããã°ãäœããäœã£ãŠãã®ã¡ã¢ãªã«å ¥ããããšãã§ããŸããããã¯ãšãŠãé¢çœãããšã§ãã
ããã°ã©ã ã®æåã®éšåã§ããæé ãèŠãŠã¿ãŸãããã
6502ã¯ãç®è¡ãå«ã73ã®åœä»€ãžã®ã¢ã¯ã»ã¹ãæäŸããŸãïŒå ç®ãæžç®ãä¹ç®ãšé€ç®ã¯ãããŸãããããããªããããããæäœãããããããã¯8ãããã¯ãŒãã®ããããæäœããããšã«é¢ãããã®ã§ãã
ããã³ããšã³ãã§çŠæ¢ãããŠãããžã£ã³ãããããŸãããžã£ã³ãã¹ããŒãã¡ã³ãã¯ãããã°ã©ã ã«ãŠã³ã¿ãŒãã³ãŒãã®äžéšã«è»¢éããã ãã§ããããã¯ããã°ã©ãã³ã°ã§ã¯çŠæ¢ãããŠããŸãããäœã¬ãã«ãæ±ã£ãŠããå Žåã¯ããããåå²ãè¡ãå¯äžã®æ¹æ³ã§ããã¹ã¿ãã¯ãªã©ã®æäœããããŸãããããã¯ã°ã«ãŒãåãããŠããŸããã¯ãã73ã®æç€ºããããŸãããã°ã«ãŒããšãã®æ©èœãèŠããšãå®éã«ã¯ããã»ã©å€ãã¯ãªãããã¹ãŠéåžžã«ãã䌌ãŠããŸãã
LDAåœä»€ã«æ»ããŸãããããã§ã«è¿°ã¹ãããã«ãããã¯ãã¡ã¢ãªããã¬ãžã¹ã¿Aã«å€ãããŒããããããšã§ããããã¯ãJavaScriptã§éåžžã«ç°¡åã«ã§ããããšã§ããå ¥ãå£ã«ã¯ãã¢ãã¬ã¹æå®ã¢ãŒãã§æäŸãããã¢ãã¬ã¹ããããŸããå éšã®ç¶æ ã倿ŽããŸããthis._aã¯ã¡ã¢ãªããã®èªã¿åãå€ã«çãããšèšããŸãã
ã¹ããŒã¿ã¹ã¬ãžã¹ã¿ã«ãããã®2ã€ã®ããããã£ãŒã«ãïŒãŒããã©ã°ãšè² ã®ãã©ã°ïŒãèšå®ããå¿ èŠããããŸããããã«ã¯ãããã¯ã€ãºãªãã®ããããããããŸãããããããšãã¥ã¬ãŒã¿ãŒãäœæããå Žåããããã®ORããã¬ãã£ããªã©ãåŠçããããšã¯ããªãã«ãšã£ãŠç¬¬äºã®æ§è³ªã«ãªããŸããå¯äžã®é¢çœãããšã¯ã2çªç®ã®ãã©ã³ãã«ãã®ãããªïŒ 256ãããããšã§ããç¹°ãè¿ãã«ãªããŸãããç§ãã¡ãæããJavaScriptèšèªã®æ§è³ªãã€ãŸãåä»ãã®å€ããªããšããäºå®ã瀺ããŠããŸãã Statusã«å ¥åããå€ã¯ã1ãã€ãã«åãŸã256ãè¶ ããå¯èœæ§ããããŸããç§ãã¡ã¯ãã®ãããªããªãã¯ã«å¯ŸåŠããªããã°ãªããŸããã
次ã«ãopcodeã®æåŸã®éšåã§ããã¢ãã¬ã¹æå®ã¢ãŒããèŠãŠã¿ãŸãããã
12ã®ã¢ãã¬ã¹æå®ã¢ãŒãããããŸããåã«è¿°ã¹ãããã«ãããŒã¿ãã©ãããååŸããããæç€ºããããã«ãããããååŸããŠç€ºãããšãã§ããŸãã
3ã€ã®ããšãèŠãŠã¿ãŸããããæåŸã¯ABSã絶察ã¢ãã¬ã¹ã¢ãŒãã§ããããããå§ããŸããããå°ãæ¥ããããæããããŸãã圌ã¯ãã®ãããªããšãããŸããå ¥åãšããŠã16ãããã®å®å šãªã¢ãã¬ã¹ã圌ã«äžããŸãã圌ã¯ãã®ã¡ã¢ãªã»ã«ããå€ãååŸããŸããã¢ã»ã³ãã©ã®2çªç®ã®åã§ãLDA $ ccbbã®ããã«è¡šç€ºãããŸãã ccbbã¯16鲿°ã§ãããéåžžã®çªå·ã§ãããåã«ç°ãªã衚èšã§æžãããŠããŸããããã§äžå¿«ã«æããå Žåã¯ãããã¯åãªãæ°å€ã§ããããšãå¿ããªãã§ãã ããã
3çªç®ã®åã§ã¯ããã·ã³ã³ãŒãã§ã©ã®ããã«è¡šç€ºããããã確èªã§ããŸããåæ¹ã«ã¯opcode-173ããããéè²ã§åŒ·èª¿è¡šç€ºãããŠããŸãããããŠ187ãš204ã¯ãã§ã«ã¢ãã¬ã¹ããŒã¿ã§ãããã ãã8ãããå€ã§åäœããŠãããããã¢ãã¬ã¹ãæžã蟌ãã«ã¯2ã€ã®ã¡ã¢ãªäœçœ®ãå¿ èŠã§ãã
ãŸããopcodeã¯CPUã§ãã°ããå®è¡ããããšèšãã®ãå¿ããŸããããããçšåºŠã®ã³ã¹ããããããŸãã絶察ã¢ãã¬ã¹æå®ã®LDAã«ã¯ã4CPUãµã€ã¯ã«ããããŸãã
ããã§ã¯ããªãããã»ã©å€ãã®ã¢ãã¬ã¹æå®ã¢ãŒããå¿ èŠãªã®ãããã§ã«çè§£ã§ããŸããæ¬¡ã®ã¢ãã¬ã¹æå®ã¢ãŒãã§ããZP0ã«ã€ããŠèããŠã¿ãŸããããã¯ããŒãžãŒãã¢ãã¬ãã·ã³ã°ã¢ãŒãã§ãããŸããããŒãž0ã¯ãã¡ã¢ãªã«å²ãåœãŠãããæåã®256ãã€ãã§ãããããã¯0ãã255ãŸã§ã®ã¢ãã¬ã¹ã§ãã
ã¢ã»ã³ãã©ã§ããLDA * 10ã§ãããã®ã¢ãã¬ã¹æå®ã¢ãŒãã¯äœãããŸããïŒåœŒã¯æ¬¡ã®ããã«è¿°ã¹ãŠããŸããããŒãž0ã«ç§»åããŸããããã§ã¯ãæåã®256ãã€ãã§ããã®ãããªãªãã»ããã䜿çšããŸãããã®å Žåã¯10ã§ãããããå€ãååŸããŸããããã§ã¯ãã¢ãã¬ã¹æå®ã¢ãŒãéã®å€§ããªéãã«ãã§ã«æ°ã¥ããŠããŸãã
絶察ã¢ãã¬ã¹æå®ã®å Žåãæåã«ããã®ãããªããã°ã©ã ãäœæããããã«3ãã€ããå¿ èŠã§ãããæ¬¡ã«ã4ã€ã®CPUãµã€ã¯ã«ãå¿ èŠã§ããããŸããZP0ã¢ãã¬ãã·ã³ã°ã¢ãŒãã§ã¯ã3CPUãµã€ã¯ã«ãš2ãã€ãããããããŸããã§ãããããããã¯ããç§ãã¡ã¯æè»æ§ã倱ããŸãããã€ãŸããããŒã¿ãæåã®ããŒãžãã€ãŸããã®ããŒãžã«ããé 眮ã§ããŸããã
IMMã®æçµçãªã¢ãã¬ã¹æå®ã¢ãŒãã¯æ¬¡ã®ãšããã§ããopcodeã®é£ã®ã»ã«ããããŒã¿ãååŸããŸããã¢ã»ã³ãã©ãŒã®ãã®LDAïŒ10ã¯ãããè¡ããŸãããããŠãããã°ã©ã ã¯[169ã10]ã®ããã«èŠããããšãããããŸããããã§ã«2ã€ã®CPUãµã€ã¯ã«ãå¿ èŠã§ããããããããã§ã¯æè»æ§ã倱ãããŠããããšã¯æããã§ãããããŒã¿ã®é£ã«opcodeãé 眮ããå¿ èŠããããŸãã
ãããJavaScriptã§å®è£ ããã®ã¯ç°¡åã§ããããã«ããã€ãã®ãµã³ãã«ã³ãŒãããããŸããäœæããããŸããããã¯IMMã¢ãã¬ãã·ã³ã°ã§ãããããã°ã©ã ã«ãŠã³ã¿ãŒããããŒã¿ãååŸããŸããã¢ãã¬ã¹ã¯ããã°ã©ã ã«ãŠã³ã¿ãŒã§ãããæ¬¡ã«ããã°ã©ã ãå®è¡ããããšãã«æ¬¡ã®åœä»€ã«ãžã£ã³ãããããã«ãã¢ãã¬ã¹ã1ã€ã€ã³ã¯ãªã¡ã³ãããŸãã
ããã¯é¢çœãããšã§ããããã³ããšã³ãéçºè ã®ããã«ãã·ã³ã³ãŒããèªã¿åãããšãã§ããããã«ãªããŸããããããŠãã¢ã»ã³ãã©ãŒã«äœãæžãããŠãããã確èªããæ¹æ³ãç¥ã£ãŠããŸãã
ååãšããŠå¿ èŠãªãã®ã¯ãã¹ãŠãã§ã«ç¥ã£ãŠããŸããããã°ã©ã ããããããã¯ãã€ãã§æ§æãããŠããŸããåãã€ãã¯opcodeãåopcodeã¯åœä»€ãªã©ã§ããããã°ã©ã ãã©ã®ããã«å®è¡ãããããèŠãŠã¿ãŸãããããããŠããããã®CPUãµã€ã¯ã«ã§ã®ã¿å®è¡ãããŸãã
ãã®ãããªã³ãŒãã¯ã©ã®ããã«å®è¡ã§ããŸããïŒäŸããœãããŠã§ã¢ã«ãŠã³ã¿ãŒããopcodeãèªã¿åããããã1ã€å¢ããå¿ èŠããããŸããæ¬¡ã«ããã®opcodeãåœä»€ãšã¢ãã¬ã¹æå®ã¢ãŒãã«ãã³ãŒãããå¿ èŠããããŸããèããŠã¿ãã°ãopcodeã¯169ã®çŽ æ°ã§ãããããŠã1ãã€ãã«ã¯256åã®æ°åãããããŸããã 256åã®å€ãæã€é åãäœæã§ããŸãããã®é åã®åèŠçŽ ã¯ã䜿çšããåœä»€ãå¿ èŠãªã¢ãã¬ã¹æå®ã¢ãŒããããã³ããã«ããããµã€ã¯ã«æ°ãåç §ããã ãã§ããã€ãŸããããã¯éåžžã«ç°¡åã§ãããããŠãç§ãæã£ãŠããã¢ã¬ã€ã¯ã¡ããã©ããã»ããµã®ç¶æ ã«ãããŸãã
次ã«ã36è¡ç®ã§ã¢ãã¬ã¹æå®ã¢ãŒãã®æ©èœãå®è¡ããŸããããã«ãããã¢ãã¬ã¹ãæäŸãããæç€ºãéãããŸãã
æåŸã«è¡ãå¿ èŠãããã®ã¯ãã«ãŒããåŠçããããšã§ãã opcodeResolverã¯ãµã€ã¯ã«æ°ãè¿ããremainingCycles倿°ã«æžã蟌ã¿ãŸããåããã»ããµãµã€ã¯ã«ã確èªããŸããæ®ãã®ãµã€ã¯ã«ããŒãã®å Žåã¯ã次ã®ã³ãã³ããå®è¡ã§ããŸãããŒããã倧ããå Žåã¯ãåçŽã«1ã€æžãããŸãããããŠãããã¯ãã¹ãŠãéåžžã«ç°¡åã§ããããã¯ã6502ã§ããã°ã©ã ãå®è¡ãããæ¹æ³ã§ãã
ãããããã§ã«è¿°ã¹ãããã«ãããã°ã©ã ã¯ãã¡ã¢ãªã®ããŸããŸãªéšåãããŸããŸãªæ¯çãªã©ã«é 眮ã§ããŸããããã»ããµã¯ããã®ããã°ã©ã ã®å®è¡ãéå§ããå Žæãã©ã®ããã«çè§£ã§ããŸããïŒ Cã®äžçãããã®ãããªintã¡ã€ã³ãå¿ èŠã§ãã
å®éããã¹ãŠãåçŽã§ããããã»ããµã«ã¯ããã®ç¶æ ããªã»ããããæé ããããŸãããã®æé ã§ã¯ãã¢ãã¬ã¹0xfffxcããåæã³ãã³ãã®ã¢ãã¬ã¹ãååŸããŸãã 0xfffxcã16鲿°ã§ããäžå¿«ã«æããå Žåã¯ãã¹ã³ã¢ãä»ããŠãã ãããããã¯éåžžã®æ°å€ã§ããããã¯ã0xãä»ããŠJavaScriptã§èšè¿°ãããæ¹æ³ã§ãã
ã¢ãã¬ã¹ã®2ãã€ããèªã¿åãå¿ èŠããããŸããã¢ãã¬ã¹ã¯16ãããã§ãããã®ã¢ãã¬ã¹ããäžäœãã€ããèªã¿åããæ¬¡ã®ã¢ãã¬ã¹ããäžäœãã€ããèªã¿åããŸãããããŠããã®ãããªãããæäœã®éæ³ã䜿ã£ãŠãã®ã±ãŒã¹ã远å ããŸããããã«ãããã»ããµã®ç¶æ ããªã»ãããããšãã¬ãžã¹ã¿ã®å€ïŒã¬ãžã¹ã¿AãXãYãã¹ã¿ãã¯ãžã®ãã€ã³ã¿ãã¹ããŒã¿ã¹ïŒããªã»ãããããŸãããªã»ããã«ã¯8ãµã€ã¯ã«ããããŸããããããããšã§ãã
ç§ãã¡ã¯ãã§ã«ãã¹ãŠãç¥ã£ãŠããŸããæ£çŽãªãšããããã¹ãã®ä»æ¹ãå šãããããªãã£ãã®ã§ãå šéšæžãã®ã¯ã¡ãã£ãšå€§å€ã§ãããç§ãã¡ã¯ããããŸã§ã«äœæãããããã°ã©ã ãå®è¡ã§ããã³ã³ãã¥ãŒã¿ãŒå šäœãäœæããŠããŸããç§ãã¡ãæ£ããåããŠããããšãã©ã®ããã«çè§£ããã®ã§ããïŒ
çŽ æŽãããæ¹æ³ããããŸãïŒ 2ã€ã®CPUã䜿çšããŸãã 1ã€ç®ã¯ç§ãã¡ãäœæãããã®ã§ã2ã€ç®ã¯ãªãã¡ã¬ã³ã¹CPUã§ããããããããŸãæ©èœããããšã¯ç¢ºãã§ããããšãã°ãNESçšã®ãšãã¥ã¬ãŒã¿ãŒã§ãããã³ãã³ãã¥ã¬ãŒã¿ãŒããããŸããããã¯CPUã®ãã®ãããªãã³ãããŒã¯ãšèŠãªãããŠããŸãã
ç¹å®ã®ãã¹ãããã°ã©ã ãååŸãããããåç §CPUã§å®è¡ããŠãåã³ãã³ãã®ç¶æ ãã°ã«ããã»ããµã®ç¶æ ãæžã蟌ã¿ãŸããæ¬¡ã«ããã®ããã°ã©ã ãååŸããŠCPUã§å®è¡ããŸãããããŠãåã³ãã³ãã®åŸã®åç¶æ ããã®ãã°ãšæ¯èŒãããŸããã¹ãŒããŒã¢ã€ãã¢ïŒ
ãã¡ãããCPUãªãã¡ã¬ã³ã¹ã¯å¿ èŠãããŸãããããã°ã©ã å®è¡ãã°ãå¿ èŠã§ãããã®ãã°ã¯Nesdevã«ãããŸããå®éã鱿«ã®æ°æ¥ã§ããã»ããµãšãã¥ã¬ãŒã¿ãäœæã§ããã®ã§ãããããã¯ãã°ãããããšã§ãã
ãããŠããããã¹ãŠã§ãããã°ãååŸããŠç¶æ ãæ¯èŒããã€ã³ã¿ã©ã¯ãã£ããªãã¹ããè¡ããŸããæåã®ã³ãã³ããå®è¡ããŸãããéçºäžã®ããã»ããµã«ã¯å®è£ ãããŠããŸããããããå®è£ ãããã°ã®æ¬¡ã®è¡ã«ç§»åããŠãå床å®è£ ããŸããè¶ æ©ãïŒãã°ããç§»åã§ããŸãã
NESã¢ãŒããã¯ãã£
ããã§CPUãã§ããŸãããããã¯ãåºæ¬çã«ã³ã³ãã¥ãŒã¿ãŒã®å¿èéšã§ãããããŠãNESèªäœã®ã¢ãŒããã¯ãã£ãäœã§ã§ããŠãããããããŠãã®ãããªè€éãªè€åã³ã³ãã¥ãŒã¿ã·ã¹ãã ãã©ã®ããã«äœãããŠããããèŠãããšãã§ããŸããèããŠã¿ãã°ãCPUããããã¡ã¢ãªãããããã§ããå€ãåãåã£ãããé²é³ãããããããšã¯ã§ããŸã
ããNESã®ã»ãããããããã¯ã¹ã«ã¯ãç»é¢ããµãŠã³ãããã€ã¹ãªã©ããããŸããåšèŸºæ©åšã®æäœæ¹æ³ãåŠã¶å¿ èŠããããŸããããªãã¯ããã®ããã«äœãæ°ããããšãåŠã¶å¿ èŠãããããŸãããç§ãã¡ã®ãã¹ã®æŠå¿µã¯ååã§ããããã¯ãããã2çªç®ã®çŽ æŽãããã¢ã€ãã¢ã§ããããšãã¥ã¬ãŒã¿ãŒãäœæããéçšã§ç§ãèªåã§äœã£ãçŽ æŽãããçºèŠã§ãã
64ãããã€ãã ã£ãã¡ã¢ãªã2ã€ã®32ãããã€ãã®ç¯å²ã«åå²ãããšããŸããããäœãç¯å²ã«ã¯ããã®ããŒãã®åçã®ããã«ãé»çã®é åã§ããç¹å®ã®ããã€ã¹ããããŸãã
ãã®ãžã¥ãã¢32ãããã€ãã®ç¯å²ã«æžã蟌ããšãã©ã€ãããªã³ãŸãã¯æ¶ç¯ãããšããŸããããã«å€1ãæžã蟌ããšãã©ã€ããç¹ç¯ãã0ã®å Žåã¯æ¶ç¯ããŸããåæã«ãå€ãèªã¿åã£ãŠã·ã¹ãã ã®ç¶æ ãçè§£ãããã®ç»é¢ã«è¡šç€ºãããŠããç»åãçè§£ããããšãã§ããŸãã
ç¹°ãè¿ããŸããããªã»ããæé äžã«é«ç¯å²ã®ã¢ãã¬ã¹ãå¿ èŠã«ãªããããé«ã¢ãã¬ã¹ç¯å²ã«ããã°ã©ã ãé 眮ãããŠããéåžžã®ã¡ã¢ãªãé 眮ããŸãã
ããã¯å®éã«ã¯è¶ 倩æçãªã¢ã€ãã¢ã§ããåšèŸºæ©åšãšå¯Ÿè©±ããããã«ã远å ã®ã³ãã³ããªã©ã¯å¿ èŠãããŸããã以åãšåæ§ã«ãå€ãè¯ãã¡ã¢ãªã«æžã蟌ãã ãã§ãããããåæã«ãã¡ã¢ãªã¯ãã§ã«è¿œå ã®ããã€ã¹ã§ããå¯èœæ§ããããŸãã
ããã§ãNESã¢ãŒããã¯ãã£ã確èªããæºåãæŽããŸããããã€ãã®ããã«ãCPUãšãã®ãã¹ããããŸããããã«2ãããã€ãã®ã¡ã¢ãªããããŸãã APUïŒãµãŠã³ãåºåããã€ã¹ïŒããããŸããæ®å¿µãªãããä»ã¯èæ ®ããŸãããããã¹ãŠããšãŠãã¯ãŒã«ã§ãããããŠãã«ãŒããªããžããããŸããé«åã«é 眮ãããããã°ã©ã ããŒã¿ãæäŸããŸãã圌ã¯ãããã®ã°ã©ããæäŸããŠããŸããæ¬¡ã«æ€èšããŸãã CPUãã¹ã®æåŸã®ãã®ã¯ãPPUãç»ååŠçãŠãããããã®ãããªããããããªã«ãŒãã§ãããããªã«ãŒãã®æäœæ¹æ³ãåŠã³ããå Žåã¯ããããªã«ãŒãã®å®è£ æ¹æ³ãåŠã³ãŸãã
PPUã«ã¯ç¬èªã®ãã¹ãããããã®äžã§ååããŒãã«ããã¬ãããããã³ã°ã©ãã£ãã¯ããŒã¿ãã·ãããããŸãããã ããã°ã©ãã£ãã¯ããŒã¿ã¯ã«ãŒããªããžã«ãã£ãŠæäŸãããŸãããããŠããªããžã§ã¯ãã®ã¡ã¢ãªããããŸãããããã¢ãŒããã¯ãã£ã§ãã
ã«ãŒããªããžãšã¯äœããèŠãŠã¿ãŸããããããã¯ãéå»ã®ãã®ã§ãããšèãããšãCDãããã¯ããã«ã¯ãŒã«ãªã¢ã€ãã¢ã§ãã
ãªãã§ãã£ãããã®ïŒå·ŠåŽã«ã¯ãã¢ã¡ãªã«å°åã®ã«ãŒããªããžãæåãªã²ãŒã ZeldaããããŸãã誰ããã¬ã€ããããšããªãå Žåã¯ããã¬ã€ãã¹ãŒããŒã§ãããããŠããã®ã«ãŒããªããžãåè§£ãããšããã®äžã«ãã€ã¯ãåè·¯ãèŠã€ãããŸããã¬ãŒã¶ãŒãã£ã¹ã¯ãªã©ã¯ãããŸãããéåžžããããã®ãããã«ã¯ããŒã¿ãå«ãŸããŠããŸãããŸããã«ãŒããªããžã¯ãã³ã³ãã¥ãŒã¿ã·ã¹ãã ãCPUããã³PPUãã¹ã«çŽæ¥åã蟌ã¿ãŸããããã¯ããªããé©ãã¹ãããšããããŠãŒã¶ãŒäœéšãåäžãããããšãå¯èœã«ããŸãã
ã«ãŒããªããžã«ã¯ããããŒãæèŒãããŠãããäœæã®ç¿»èš³ãèšå ¥ãããŠããŸãã倧ããªã²ãŒã ããããšããŸããããããããNESã«ã¯ãããã°ã©ã çšã«ã¢ãã¬ã¹æå®ã§ãã32ãããã€ãã®ã¡ã¢ãªãããããŸãããããšãã°ãã²ãŒã ã¯128ãããã€ãã§ããããããŒã¯ãããã°ã©ã ã®å®è¡äžã«ããã®å Žã§ç¹å®ã®ç¯å²ã®ã¡ã¢ãªãå®å šã«æ°ããããŒã¿ã«çœ®ãæããããšãã§ããŸããããã°ã©ã ã§èšãããšãã§ããŸãïŒã¬ãã«2ãããŒããããšãã¡ã¢ãªã¯ã»ãŒç¬æã«çŽæ¥äº€æãããŸãã
ããã«ãé¢çœãããšããããŸããããšãã°ãããããŒã¯ãµãŠã³ããã©ãã¯ãæ¡åŒµããããæ°ãããã®ã远å ãããããããããæäŸã§ããŸããCastlevaniaããã¬ã€ããããšãããå Žåã¯ãæ¥æ¬ã®å°åã®Castlevaniaã®é³ãèããŠãã ããã远å ã®é³ããããŸããããã¯å®å šã«ç°ãªã£ãŠèãããŸãããã®å Žåããã¹ãŠãåãããŒããŠã§ã¢ã§å®è¡ãããŸããã€ãŸãããã®ã¢ã€ãã¢ã¯ããããªã«ãŒããè³Œå ¥ããŠã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ãããšãã®ã¢ã€ãã¢ã«äŒŒãŠããã远å ã®æ©èœããããŸããããã§ãåãã§ããããã¯çŽ æŽãããããšã§ããããããç§ãã¡ã¯CDã§ç«ã¡åŸçããŠããŸãã
æåŸã®éšåã«ç§»ããŸããã-ãã®ç»ååºåããã€ã¹ãã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããããšãã¥ã¬ãŒã¿ãŒãäœãããã®ãªããæå°éã®ããã°ã©ã ã¯ããã»ããµãŒãäœãããšã§ãããããã¯åçããããªã²ãŒã ãã©ã®ããã«èŠããããèŠãããã®ãã®ã§ãã
ãããã¬ãã«ã®ãšã³ãã£ãã£ãã€ãŸãç»åèªäœããå§ããŸãããã 2ã€ã®èšç»ããããŸããããåçãªãšã³ãã£ãã£ãé 眮ããã忝ãšãã·ãŒã³ãªã©ã®ããéçãªãšã³ãã£ãã£ãé 眮ãããèæ¯ããããŸãã
ããã§åå²ãèŠãããšãã§ããŸããå·ŠåŽã¯åãæåãªCastlevaniaã²ãŒã ãªã®ã§ãPPUãžã®æ å šäœã¯SimonBelmontã§è¡ãããŸãã圌ãšäžç·ã«ããã¹ãŠãã©ã®ããã«æ©èœããããæ€èšããŸãã
èæ¯ãæ±ãªã©ããããŸããèæ¯ã«æãããŠããã®ãããããŸãããåæã«ãã¹ãŠã®ãã£ã©ã¯ã¿ãŒïŒãµã€ã¢ã³èªèº«ïŒå·Šãè¶è²ïŒãšå¹œéïŒããã§ã«åæ¯ã«æãããŠããŸããã€ãŸãã忝ã¯ããåçãªãšã³ãã£ãã£ã«ååšããèæ¯ã¯ããéçãªãšã³ãã£ãã£ã«ååšããŸãã
ãããããããã£ã¹ãã¬ã€äžã®ç»åã¯ãã¯ã»ã«ã§æ§æãããŠããŸãããã¯ã»ã«ã¯åãªãè²ä»ãã®ãããã§ããå°ãªããšããè²ãå¿ èŠã§ãã NESã«ã¯ã·ã¹ãã ãã¬ããããããŸãã 64è²ã§æ§æãããŠããŸãããæ®å¿µãªããNESãåçŸã§ãããã¹ãŠã®è²ã§ãããã ãããã¬ããããè²ãååŸããããšã¯ã§ããŸãããã«ã¹ã¿ã ãã¬ããã®å Žåãã¡ã¢ãªå ã«ç¹å®ã®ç¯å²ããããããã2ã€ã®ãã®ãããªãµãç¯å²ã«åå²ãããŸãã
èæ¯ãšåæ¯ã®ç¯å²ããããŸããåç¯å²ã¯ã4è²ã®4ã€ã®ãã¬ããã«åå²ãããŠããŸããããšãã°ãèæ¯ããŒããã¬ããã¯ãçœãéãèµ€ã§æ§æãããŸãããŸããåãã¬ããã®4çªç®ã®è²ã¯åžžã«éæãªè²ãæããŸããããã«ãããéæãªãã¯ã»ã«ãäœæã§ããŸãã
ãã¬ããã®ãããã®ç¯å²ã¯ãCPUãã¹ã§ã¯ãªããPPUãã¹ã«é 眮ãããŠããŸãã CPUãã¹ãä»ããŠPPUãã¹ã«ã¢ã¯ã»ã¹ã§ããªããããããã«ããŒã¿ãæžãèŸŒãæ¹æ³ãèŠãŠã¿ãŸãããã
ããã§åã³ãã¡ã¢ãªããããããI / Oã®ã¢ã€ãã¢ã«æ»ããŸããã¢ãã¬ã¹0x2006ãš0x2007ãããããããã¯16鲿°ã®ã¢ãã¬ã¹ã§ããããããã¯åãªãæ°åã§ãããããŠãç§ãã¡ã¯ãã®ããã«æžããŸããã¢ãã¬ã¹ã¯16ãããã§ããããã8ãããã®2ã€ã®ã¢ãããŒãã§ã¢ãã¬ã¹ãox2006ã¢ãã¬ã¹ã¬ãžã¹ã¿ã«æžã蟌ã¿ã次ã«ã¢ãã¬ã¹0x2007ãä»ããŠããŒã¿ãæžã蟌ãããšãã§ããŸãããããªã«é¢çœãããšãã€ãŸããå®éã«ã¯ãå°ãªããšããã¬ããã«äœããæžã蟌ãã«ã¯ã3ã€ã®æäœãå®è¡ããå¿ èŠããããŸãã
åªããããã¬ããã¯ãããŸãããæ§é ãå¿ èŠã§ããè²ã¯åžžã«è¯ãã§ãããããããããã«ã¯ç¹å®ã®æ§é ããããŸãã
ã°ã©ãã£ãã¯ã®å Žåããããããã¿ã€ã«ãå«ã4ãããã€ãã®2ã€ã®ããŒãã«ããããŸãããããŠããã®ãã¹ãŠã®èšæ¶ã¯äžçš®ã®ã¢ãã©ã¹ã§ãã以åã¯ã誰ããã©ã¹ã¿ãŒã€ã¡ãŒãžã䜿çšãããšãã«ã倧ããªã¢ãã©ã¹ãäœæããããããèæ¯ã€ã¡ãŒãžãã座æšã«ãã£ãŠå¿ èŠãªã€ã¡ãŒãžãéžæããŠããŸãããããã¯åãèãã§ãã
åããŒãã«ã«ã¯256åã®ã¿ã€ã«ããããŸããç¹°ãè¿ããŸãããé¢çœãæ°å€ã§ããæ£ç¢ºã«256ã䜿çšãããšã1ãã€ãã256ã®ç°ãªãå€ãæå®ã§ããŸããã€ãŸãã1ãã€ãã§ãå¿ èŠãªä»»æã®ã¿ã€ã«ãæå®ã§ããŸãã 2ã€ã®ããŒãã«ãèŠã€ãããŸããèæ¯çšã®ããŒãã«ãšåæ¯çšã®ããŒãã«ã
ãããã®ã¿ã€ã«ãã©ã®ããã«ä¿åãããŠãããèŠãŠã¿ãŸããããããã§ãé¢çœãã§ãããã¬ããã«ã¯4ã€ã®è²ãããããšãæãåºããŠãã ãããæ°å€åŠïŒãã€ãã«ã¯8ãããããããã¿ã€ã«ã¯8 x8ã§ãã 1ãã€ãã§ã¿ã€ã«ã®ã¹ããªããã衚ãããšãã§ããåããããäœããã®è²ãæ åœããããšãããããŸãããŸãã8ãã€ãã§ãæ¬æ Œçãª8 x8ã¿ã€ã«ã衚ãããšãã§ããŸãã
ããããããã«ã¯1ã€ã®åé¡ããããŸãããã§ã«è¿°ã¹ãããã«ã1ããããè²ã®åå ã§ããã2ã€ã®å€ãã衚ãããšãã§ããŸãããã¿ã€ã«ã¯2ã€ã®å¹³é¢ã«æ ŒçŽãããŸããæäžäœããããšæäžäœãããã®ãã¬ãŒã³ããããŸããæçµçãªè²ãååŸããããã«ãäž¡æ¹ã®å¹³é¢ããã®ããŒã¿ãçµåããŸãã
èããŠã¿ãŠãã ãããããšãã°ãäžéšã®æåãIãã«ã¯æ°åã®ã3ãããããŸããããã¯æ¬¡ã®ããã«ãªããŸããæäžäœããããšæäžäœãããã®å¹³é¢ãååŸãã10鲿°ã®3ã«çãã2鲿°ã®11ãååŸããŸãããã®ãããªé¢çœãããŒã¿æ§é ã
ããã¯ã°ã©ãŠã³ã
ããã§ãããããèæ¯ãã¬ã³ããªã³ã°ã§ããããã«ãªããŸããã
ãã®ååã®è¡šããããŸãããããã960ãã€ãã®2ã€ããããåãã€ãã¯ç¹å®ã®ã¿ã€ã«ãåç §ããŸããã€ãŸããã¿ã€ã«èå¥åã¯åã®è¡šã«ç€ºãããŠããŸãããããã®960ãã€ãããããªãã¯ã¹ãšããŠè¡šããšã32 x30ã®ã¿ã€ã«ç»é¢ãåŸãããŸãã NESã®è§£å床ã¯256ãã¯ã»ã«Ã240ãã¯ã»ã«ã«ãªããŸãã
åªãããããã«ã¿ã€ã«ãæžãããšãã§ããŸãããã ãããæ°ã¥ããããããŸããããã¿ã€ã«ã¯è¡šç€ºãããã¬ããã瀺ããŠããŸãããããŸããŸãªãã¬ããã§ããŸããŸãªã¿ã€ã«ã衚瀺ã§ããŸãããŸãããã®æ å ±ãã©ããã«ä¿åããå¿ èŠããããŸããæ®å¿µãªããããã¬ããæ å ±ãæ ŒçŽããããã®ååããŒãã«ããšã«64ãã€ããããããŸããã
ãããŠããããåé¡ãçºçããå Žæã§ããå€ã64ã«ãªãããã«ããŒãã«ãããã«åå²ãããšã4 x 4ã®ã¿ã€ã«ã®æ£æ¹åœ¢ãåŸãããŸããããã¯ããã®ãããªèµ€ãæ£æ¹åœ¢ã®ããã«èŠããŸããç»é¢ã®å€§éšåã«ãããŸããã圌女ã¯ã1ã€ã§ã¯ãªããŠãã1ã€ã®ãã¬ããã«åŸå±ããŸãã
èŠããŠããããã«ããµããã¬ããã«ã¯4ã€ã®ãã¬ããããããå¿ èŠãªãã®ã瀺ãããã«å¿ èŠãªã®ã¯2ãããã ãã§ãããããã®64ãã€ãã®ããããã¯ã4 x4ã°ãªããã®ãã¬ããæ å ±ãã³ããŒããŸãããããããã®ã°ãªããã¯ãŸã ãã®ãããªãµãã°ãªããã«2ã€ãã€åå²ãããŠããŸãããã¡ãããããã«ã¯å¶éããããŸãã2è¡2åã®ã°ãªããã1ã€ã®ãã¬ããã«é¢é£ä»ããããŠããŸãããããã¯ã任倩å ã§èæ¯ã衚瀺ããäžçã®å¶éã§ããé¢çœãäºå®ã§ãããäžè¬çã«ã¯ã²ãŒã ã«å¹²æžããããšã¯ãããŸããã
ã¹ã¯ããŒã«ããããŸããããšãã°ããããªãªãããã£ãã¹ã«ãŽã¡ãã¢ãæãåºããšã次ã®ããšãããããŸãããããã®ã²ãŒã ã§ããŒããŒãå³ã«ç§»åãããšãç»é¢ã«æ²¿ã£ãŠäžçãå±éããŠããããã«èŠããŸããããã¯ã¹ã¯ããŒã«ã«ãã£ãŠè¡ãããŸãã
ãã§ã«2ã€ã®ç»é¢ããšã³ã³ãŒãããŠãã2ã€ã®ååããŒãã«ãããããšãæãåºããŠãã ããããããŠãããŒããŒãç§»åãããšãããã«ç¶ãååã®ããŒãã«ã«ããŒã¿ã远å ããŸãããã®å Žã§ãããŒããŒãåããšãååã®è¡šã«èšå ¥ããŸããååã®ããŒãã«ã®ã©ã®ã¿ã€ã«ããããŒã¿ã®è¡šç€ºãéå§ããå¿ èŠããããã瀺ãããšãã§ããããšããããããããçåç¶ã«å±éããŸããã¹ã¯ããŒã«ã®å šäœçãªããªãã¯ã¯ã2ã€ã®ååããŒãã«ããèªã¿åãããšã§ãã
ã€ãŸããããååã®ããŒãã«ãæ°Žå¹³æ¹åã«è¶ ãããšãå¥ã®ããŒãã«ããèªåçã«èªã¿åããéå§ãããªã©ã§ãããŸããããŒã¿ãå ¥åããããšãå¿ããªãã§ãã ããã
ã¡ãªã¿ã«ãåœæã¯ã¹ã¯ããŒã«ãããªã倧ããªãã®ã§ããããžã§ã³ã»ã«ãŒããã¯ã®æåã®æ¥çžŸã¯ãã¹ã¯ããŒã«ã®åéã§ããããã®è©±ããã§ãã¯ããŠãã ãããããã¯ããªãé¢çœãã§ãã
忝
ãããŠåæ¯ããã©ã¢ã°ã©ãŠã³ãã§ã¯ãåè¿°ããããã«ãåçãšã³ãã£ãã£ãããããããã¯ãªããžã§ã¯ããšå±æ§ã®ã¡ã¢ãªã«æ ŒçŽãããŸãã
64åã®ãªããžã§ã¯ããæžã蟌ãããšãã§ãã256ãã€ããããããªããžã§ã¯ãããšã«4ãã€ãã§ããåãªããžã§ã¯ãã¯ãç»é¢äžã®ãã¯ã»ã«ãªãã»ããã§ããXãšYããšã³ã³ãŒãããŸããããã«ãã¿ã€ã«ã®ã¢ãã¬ã¹ãšå±æ§ãèæ¯ã«åªå é äœãä»ããããšãã§ããŸããäžã®å³ãåç §ããŠãã ããããã¬ãããæå®ã§ããŸããèæ¯ãããåªå 床ã¯ãèæ¯ãã¹ãã©ã€ãã®äžã«æç»ããå¿ èŠãããããšãPPUã«éç¥ããŸããããã«ãããSimonãåã®åŸãã«é 眮ã§ããŸãã
åçã®ãIãã®ããã«ãåããå€ããããæ°Žå¹³ãåçŽãªã©ã®ä»»æã®è»žãè¶ ããŠå転ããããããããšãã§ããŸãããã¬ãããšã»ãŒåãæ¹æ³ã§ãã¢ãã¬ã¹0x2003ã0x2004ãä»ããŠæžã蟌ã¿ãŸãã
æåŸã«ããšã³ãã£ã³ã°ã忝ãªããžã§ã¯ããã©ã®ããã«ã¬ã³ããªã³ã°ããŸããïŒ
åçã¯ã¹ãã£ã³ã©ã€ã³ãšåŒã°ããç·ã«æ²¿ã£ãŠå±éããŸããããã¯ãã¬ãçšèªã§ããåã¹ãã£ã³ã©ã€ã³ã®åã«ããªããžã§ã¯ããšå±æ§ã®ã¡ã¢ãªãã8ã€ã®ã¹ãã©ã€ããååŸããã ãã§ãã8ã€ä»¥äžã8ã€ã ãããµããŒããããŸãããã®ãããªå¶éããããŸããããšãã°ãããã®ããã«ã1è¡ãã€è¡šç€ºããã ãã§ããçŸåšã®ã¹ãã£ã³ã©ã€ã³ã§ã¯ãé»è²ã§ãé²ã倪éœãå¿èãçžæš¡æ§ã«è¡šç€ºãããŠããŸããã¹ãã€ãªãŒã¯è¡šç€ºããŸããããããã圌ã¯ãŸã 幞ãã§ããOne LoneCoderã¹ãŒããŒãã£ã³ãã«ã
ãã§ãã¯ããŠãã ãããç¹ã«ããã°ã©ãã³ã°ããã»ã¹èªäœããããŸã-NESãšãã¥ã¬ãŒã¿ãŒã®ããã°ã©ãã³ã°ããããŠãNesdevã«ã¯ããšãã¥ã¬ãŒã·ã§ã³ã«é¢ãããã¹ãŠã®æ å ±ïŒæ§æå 容ãªã©ïŒãå«ãŸããŠããŸããæåŸã®ãªã³ã¯ã¯ããšãã¥ã¬ãŒã¿ãŒã®ã³ãŒãã§ããèå³ãããã°ã芧ãã ãããTypeScriptã§æžãããŠããŸãã
ããããšããæ¥œããã§ãã ããã