
翻蚳è ãã ïŒãã®æçš¿ã¯ãã»ã¬ãžã§ãã·ã¹/ã¡ã¬ãã©ã€ãããã³ãœããã¯CDçšã®ãœããã¯ã»ã¶ã»ãããžããã°ã·ãªãŒãºã®ã²ãŒã ã®ãœããã¯ç©çã¬ã€ãã®äžéšã®ç¿»èš³ã§ãã 次ã®ã»ã¯ã·ã§ã³ã§ã¯ãã©ã³ãã³ã°ããžã£ã³ããã¹ãã³ããªã³ã°ã®åªå€±ãæ°Žäžè¡åãè¶ é«éãã¢ã¯ã»ã·ããªãã£ãã«ã¡ã©ãã¢ãã¡ãŒã·ã§ã³ãªã©ã®ãããã¯ã«ã€ããŠèª¬æããŸãã å€ãã®éšåïŒ 14å ïŒããããããæçš¿ã®æåŸã«èª¿æ»ãè¿œå ããŸããã ç¶è¡ããå¿ èŠããããŸã-ããªãã決å®ããŸãã
ã·ãªãŒãºã®ä»ã®éšåãžã®ãªã³ã¯ïŒ
ããŒã2ïŒå®è¡äž
ããŒã3ããã³4ïŒãžã£ã³ããšã¹ãã³
ããŒã5ãš6ïŒãªã³ã°ã®åªå€±ãšæ°Žäžãžã®äŸµå ¥
ããŒã7ããã³8ïŒã¹ããªã³ã°ãšã®ãºã¢ãã¹ãŒããŒã¹ããŒã
- 1ã¯ããã«
- 2ç«ã¡
- 3ããã·ã¥
- 4ç§
- 5ãšããžã§ã®ãã©ã³ã¹
- 6åŸé
ãšæ²ç·
- 7åãæ¿ãã¢ãŒã
- 8空茞ã¹ããŒã¿ã¹
- 9ãã«ãïŒè§åºŠã®å€æ
- 10ã¡ã¢
ã泚æ
ãã®èšäºã§ã¯ããœããã¯ã®è¡çªãšåºäœã¿ã€ã«ãšã®çžäºäœçšã«ã€ããŠèª¬æããŠããŸãã ã¢ãã¿ãŒã移åãã©ãããã©ãŒã ããããã¯ãªã©ã®ãœãªãããªããžã§ã¯ãã«ã¯ãSonicãšã®ç¬èªã®è¡çªåŠçæé ããããŸãããããã¯å¿ ããããœãªããã¿ã€ã«ã®åäœãšäžèŽããŸããã
ã¯ããã«
ãœãªããã¿ã€ã«ãšã¯äœã§ããïŒ Sonicã²ãŒã ãæ§æãããŸãŒã³ïŒã¬ãã«ïŒã«ã¯å€ãã®ãœãªãããªããžã§ã¯ãããããŸãããã®ãããç°å¢ããã¹ãŠ64ãã€ãã®RAMãå æãããœãªãããªããžã§ã¯ãã§å®å šã«æ§æãããŠããå ŽåããŸãŒã³ã¯å€§éã®ã¡ã¢ãªãå¿ èŠãšããŸãã ã¹ããŒããªåããè¡ãããŸãã-ãŸãŒã³ã¯ã¿ã€ã«ããäœæããããããå¿ èŠãªã®ã¯ã¿ã€ã«ãåºäœïŒäžééæ§ïŒãã©ãããç¥ãããšã ãã§ãã
ãŸãŒã³ã¯128x128ãã¯ã»ã«ïŒãŸãã¯Sonic 1ããã³Sonic CDã§ã¯ 256x256ãã¯ã»ã«ïŒã®ãããã¯ã«åå²ãããããã«16x16ãã¯ã»ã«ã®ã¿ã€ã«ã«åå²ãããŠããããšãããããŸãã ãŸãããµã€ãºã8x8ãã¯ã»ã«ã®å°ããªã¿ã€ã«ã«åå²ãããŸãã ãœãªããèŠçŽ ãåŠçãããã¹ãŠã®éæ³ã¯ãã¿ã€ã«16x16ã®ã¬ãã«ã§çºçããããããã®ã¬ãã¥ãŒã§ã¯ãããã«ã®ã¿é¢å¿ããããŸãã
ãœããã¯ã®ãããã®ãœãªããã¿ã€ã«ãšã®çžäºäœçšãšè¡çªã¯ãã³ã¢ã²ãŒã ãšã³ãžã³ã圢æããŸãã 圌ãã¯ãåºãå£ã倩äºãã©ã³ãããã³ãžã®æäœæ¹æ³ã決å®ããŸãã ããã¯èšå€§ã§è€éãªãããã¯ãªã®ã§ãç§ã®ã¬ãã¥ãŒã¯ä»ã®Sonicã²ãŒã ã®ç©çã¬ã€ããšã¯ç°ãªããŸãããæšè«ãæå°éã«æããããšããŸãã
ç«ã¡
736ïŒ$ 02E0ïŒã«çããY軞ã«æ²¿ã£ãå°çã®äœçœ®ããšããšããœããã¯ã¯åº§æš716ïŒ$ 02CCïŒã§ãã®äžã«ç«ã¡ãŸãã å°äž20ãã¯ã»ã«ã§ãã
æŒã
ãœããã¯ã¯å£ã«ã¶ã€ãããšåæ¢ããã¯ãã§ãã ããã¯ãã©ã€ã³ãšã®è¡çªã確èªããããšã§å®çŸã§ããŸãã ã³ã©ã€ããŒã©ã€ã³ïŒãã©ã³ã¹ã¬ãŒã¿ãŒããïŒãããšä»¥éãã»ã³ãµãŒãšããçšèªã䜿çšãããŠããŸãããç§ãéžãã ãé©åãªã¢ããã°ãšæãããŸã ïŒã¯Y軞äžã®ãã®äœçœ®ã«ããã¹ãã§ã¯ãããŸãããããããã«äœããªããã°ãçãã¹ãããã«æ°ä»ããªãã§ãããã ãŸãã圌女ã¯äœãããããšã¯ã§ããŸãããããã§ãªããã°ã圌女ã¯ãœããã¯ãæŒãåºãã¹ãã§ãªãæé¢ãšæ²ç·ã«ãæ°ã¥ããã§ãããã Sonicã®äœçœ®ããY + 4座æšã§ã®äœçœ®ã¯ãéåžžãé«ãã16ãã¯ã»ã«æªæºã®é段ããªãããã§ãïŒãã®ãããªé段ãããå Žåãã¿ã€ã«ã§ã¯ãªãåºäœãªããžã§ã¯ãã§æ§æãããŸãïŒã
ã³ã©ã€ããŒã©ã€ã³ã®å¹ ã¯ã©ããããã§ããïŒ
å£ã®å·ŠåŽã®704ïŒ$ 02C0ïŒã«çããX座æšãååŸããå ŽåãSonicã¯693ïŒ$ 02B5ïŒãããè¿ããªãã¯ãã§ãã å£ã®å³åŽã®831ïŒ$ 033FïŒã«çããX座æšãååŸããå ŽåãSonicã¯842ïŒ$ 034AïŒããè¿ããªãã¯ãã§ãã ããã¯ãäž¡æ¹åã§11ãã¯ã»ã«ã®å·®ã«ãªããŸãã
ãããã£ãŠãã³ã©ã€ããŒã©ã€ã³ã®å¹ ã¯20ãã¯ã»ã«ã§ãX-10ããX + 10 Sonicã«åŒã䌞ã°ãããå¿ èŠããããŸãã ãœãªããã¿ã€ã«ãæ€åºããããã³ã«ãã¿ã€ã«ã®åº§æšããã€ãã¹ïŒãŸãã¯ãã©ã¹ïŒ11ã«èšå®ããŠãœããã¯ããæŒãåºããå¿ èŠããããŸãããå°äžã§ã®ç§»åé床ã¯ãŒãã«ããå¿ èŠããããŸãã ïŒ10ãã¯ã»ã«ã®ã¿ãæŒãåºãããšã¯ã§ããŸãããããã§ãªãå Žåã座æšX + 10ã®ãã€ã³ãã¯ãŸã ã¿ã€ã«ã®å¢çãã¯ã»ã«å ã«ãããŸãããã®å Žåãäžå®ã®è¡çªãç»é²ãããå£ã«è²Œãä»ããŸããïŒ
ã¿ã€ã«ã®å¢çç·ããSonicã®äœçœ®ãåŒããå€ã¯11ã§ãªããã°ãªããªããããSonicã®äžå¿ãšã¿ã€ã«ã®å¢çç·ã®éã«ã¯10ãã¯ã»ã«ãããããŸããã ãœããã¯ããã®11çªç®ã®ãã¯ã»ã«ã¯ãã¿ã€ã«ã®ç«¯ã«ãªããŸãã ãããã£ãŠãSonicã®å®éã®å¹ ã¯20ãã¯ã»ã«ã§ãã
ç§
ãœããã¯ã¯ãµã€ãããè±åºã§ããã¯ãã§ãã 圌ã¯æŒ«ç»Wile E. Coyoteã³ãšãŒãã®ããã«æ¯ãèãããšãã§ããã圌ã®äžã«ã¯äœããªãããšã«æ°ã¥ããªãã

ããã¯ãSonicãäžã®åºäœã¿ã€ã«ããã§ãã¯ããå¿ èŠãããããšãæå³ããŸãã ããã¯ãäžåãã®ã³ã©ã€ããŒãããã«2è¡è¿œå ããããšã§å®çŸã§ããŸãã ãœããã¯ã®å·ŠåŽãX-9座æšã«1ã€ïŒAïŒããããŸãã ãã1ã€ïŒBïŒã¯å³åŽã®X + 9ã§ãã Y軞ã«æ²¿ã£ãäœçœ®ããéå§ããY + 20ã«äœçœ®ããå°é¢ã¬ãã«ã§è¶³ãã16ãã¯ã»ã«ä»¥äžäžãããªããã°ãªããŸããïŒãã ããäœããªããããªãããäœãé段ãé段ããéãããšèœã¡ãã§ãããïŒãããããªãïŒã
ã³ã©ã€ããŒAãšBããœãªããã¿ã€ã«ãæ€åºããªãå Žåããœããã¯ã¯ãèœäžãããŸãã空äžã«ããããšããšã³ãžã³ã«éç¥ãããã©ã°ãèšå®ãããŸãã
å£ãšã®è¡çªã§ã¯ãSonicã®å¹ ã20ãã¯ã»ã«ã§ããããšãèŠããŠããŸãã ãã ããå°äžæ€åºã³ã©ã€ããŒã¯äžå¿ããããã18ãã¯ã»ã«ã§ãã ãœããã¯ã¯ãå£ã«ã¶ã€ãããšãããããµã€ãããéãããšãã®æ¹ãã2ãã¯ã»ã«èããããšãããããŸããã
ãšããžã§ã®ãã©ã³ã¹èª¿æŽ
è¯ã詳现-ãœããã¯ã¯ããµã€ãã®ç«¯ã«è¿ããã©ã³ã¹ã¢ãã¡ãŒã·ã§ã³ã«é²ã¿ãŸãã ããã¯ã圌ãåæ¢ãããšãã«ã®ã¿çºçããŸãïŒå°é¢ã®é床ã¯0ã§ãïŒã
ãšã³ãžã³ã¯ããã«ã€ããŠã©ã®ããã«ç¥ã£ãŠããŸããïŒ ãã¹ãŠãã·ã³ãã«ã§ã-ã³ã©ã€ããŒã®1ã€ã ããã¢ã¯ãã£ãã«ãªã£ãç¬éã«ããœããã¯ã¯æåç·ã«ããŸãã Aãã¢ã¯ãã£ãã§Bãã¢ã¯ãã£ãã§ãªãå Žåããµã€ãã¯ãã®å³åŽã«ãããŸãã ãã以å€ã®å Žåããµã€ãã¯å·ŠåŽã«ãããŸãã
ãããããœããã¯ããã©ã³ã¹ãåãå§ããå Žåãã³ã©ã€ããŒã®1人ãäœãèŠã€ããªããšããã«ã圌ã¯ãæ©ãããã©ã³ã¹ãåãå§ããããã¯æãã«èŠããŸãã ãããã£ãŠãããã¯1ã€ã®ã³ã©ã€ããŒã®ã¿ãã¢ã¯ãã£ãã§ãã ãX軞äžã®äœçœ®ãã¢ã¯ãã£ããªã³ã©ã€ããŒã«ãã£ãŠæ€åºããããœãªããã¿ã€ã«ã®å¢çããã倧ããå Žåã«çºçããŸãã
ãµã€ãã®å³ç«¯ã®åº§æšã2655ïŒ$ 0A5FïŒã«ãããšããœããã¯ã¯2656ïŒ$ 0A60ïŒã§ã®ã¿ãã©ã³ã¹ãåãå§ããŸãã äž¡æ¹ã®ã³ã©ã€ããŒãäœãèŠã€ããããªããšããããã¯2665ïŒ$ 0A69ïŒã«èœã¡ãŸãã
Sonic 2ããã³Sonic CDã§ã¯ ããµã€ãããœããã¯ã®ãã¥ãŒãšå察æ¹åã«ããå Žåã2çªç®ã®ãã©ã³ã¹ã¢ãã¡ãŒã·ã§ã³ããªã³ã«ãªããŸãã
Sonic 2 ã Sonic 3ãããã³SonicïŒKnucklesã§ã¯ ããããã®ç«¯ã«ããã«è¿ã¥ããšã3çªç®ã®ãã©ã³ã¹ã¢ãã¡ãŒã·ã§ã³ããããŸãã äžèšã®å€ãèšå®ãããšã座æš2662ïŒ$ 0A66ïŒã«ãããšãã«ãªã³ã«ãªããŸãã
泚ïŒãã©ã³ã¹ããšãå Žåãäžéšã®æ©èœã¯äœ¿çšã§ããŸããïŒå°é¢ã«æŒãä»ãããèŠäžãããå転ãããªã©ïŒã Sonic 3ïŒKnucklesã§ã¯ããã¬ã€ã€ãŒã¯å°é¢ã«å¯ãæ·»ã£ãŠå転ããããšãã§ããŸãïŒãã ããèŠäžããããšã¯ã§ããŸããïŒã
åŸé ãšæ²ç·
ãœããã¯ã»ã¶ã»ãããžããã°ã¯ãæ²é¢ãš360床ã®ã«ãŒãã䜿çšããæåã®ã²ãŒã ã®1ã€ã§ããã ãã®æ代ã®ã»ãšãã©ã®ã²ãŒã ã§ã¯ãç°å¢ã¯å®å šã«ãããã¯ããäœæãããŠããŸããïŒæã«ã¯æé¢ããäœæãããŠããŸããïŒã
圢ç¶ãæ»ããã«å€åããããªããžã§ã¯ããæäœããæ©èœã¯ãSonicã²ãŒã ã®æ°èŠæ§ãšé åã®åºæ¬çãªåŽé¢ã®1ã€ã§ãã æ®å¿µãªãããããã¯ãããããã¡ã³ã²ãŒã ã§åçŸããã®ãæãé£ããåŽé¢ã§ãã
ã©ã®ããã«æ©èœããŸããïŒ
é«ãã®ãã¹ã¯
ã³ã©ã€ããŒAãŸãã¯Bããœãªããã¿ã€ã«ãæ€åºãããã³ã«ããã®ã¿ã€ã«ã®é«ããè¿ãããŸãã
ã¿ã€ã«ã®é«ãã¯ã©ãã§ããïŒ
åã¿ã€ã«ã«ã¯ãã¡ã¢ãªã«ä¿åããããã¹ã¯ã«é¢é£ä»ããããå€ãé¢é£ä»ããããŠããŸãã ãã¹ã¯ã¯ã0ïŒ$ 00ïŒã16ïŒ$ 10ïŒã®ç¯å²ã®16ã®é«ãå€ãšè§åºŠå€ã®åçŽãªé åã§ãã
ããšãã°ããã®é«ããã¹ã¯ã«ã¯ãé«ã0 0 1 2 2 3 4 5 5 6 6 7 8 9 9 9ã®é åãš232ã®è§åºŠïŒ$ 00 00 01 02 02 03 04 05 05 06 06 07 08 09 09 09ãš$ E8ã®è§åºŠïŒããããŸãã
䜿çšãããé«ãé åã®å€ã¯äœã§ããïŒ ã³ã©ã€ããŒã®Xäœçœ®ããã¿ã€ã«ã®Xäœçœ®ãåŒããŸãã çµæã¯ã䜿çšãããé«ãé åã€ã³ããã¯ã¹ã«ãªããŸãã
èŠã€ãã£ãé«ãã®å€ã16ïŒ10ãã«ïŒã®å Žåãã³ã©ã€ããŒã¯æåã«èŠã€ãã£ãã¿ã€ã«ã®äžã®å¥ã®ã¿ã€ã«ããã§ãã¯ãããã®é«ãã®å€ã決å®ããå¿ èŠããããŸãã
ã³ã©ã€ããŒãæé«ã®é«ããæ€åºãããšããœããã¯ã®Y座æšã¯ãã®é«ããã20ãã¯ã»ã«ãåŒãããã®ã«çããèšå®ãããŸãã ãã®è§åºŠããæé«ã®é«ããè¿ããœãªããã¿ã€ã«ã®è§åºŠã«çããèšå®ãããŸãã
ã³ã©ã€ããŒããœãªããã¿ã€ã«ãèŠã€ããããªãå Žåãããã©ã«ãã§ã¯èã®ã¬ãã«ïŒY + 20ïŒãè¿ãããŸãã
ãã®ã¡ãœããã䜿çšãããšã©ãŒ
æ®å¿µãªãããå ã®ãšã³ãžã³ã§ãã®ã¡ãœããã䜿çšããŠãããããããã€ãã®è¿·æãªãã°ããããŸãã
ãœããã¯ãåŸæãããã©ãããã©ãŒã ã«ç«ã£ãŠããå Žåãã³ã©ã€ããŒã®1人ãã¿ã€ã«ãæ€åºãããèã®é«ããè¿ããŸãã ããã¯ããœããã¯ãééã£ãäœçœ®ã«ãããšããäºå®ã«ã€ãªãããŸãã
ãœããã¯ã¯ãå³ã«ç§»åãããšã³ã©ã€ããŒBãšãšãã«äžæããŸãã Bããµã€ããããèœã¡ãããšãSonicã¯ããã©ã«ãã§ã³ã©ã€ããŒAã®ã¬ãã«ã«ç§»åããŸãããã®åŸã圌ã¯ã³ã©ã€ããŒAãšãšãã«äžæããããã«å³ã«ç§»åããŸãã ãããã£ãŠã圌ã¯ãµã€ãããè±åºãããšãã«æåã«ç«ã¡äžãããèœäžããåã³ç«ã¡äžãããŸãã
ãããç®ç«ã€é åã¯ãããã§ããããã®ãããªãã°ã¯Genesis / Mega Driveã®ã²ãŒã ã®ãã¹ãŠã®éšåã«ååšããããªãåä»ã«èŠããŸãã
2ã€ç®ã®ãã°ã¯ã ã°ãªãŒã³ãã« ãŸãŒã³ã¬ãã«ãšããŒãã«ãŸãŒã³ã¬ãã«ã®äœãäžãªã©ãäžäžã«å察ã®åŸæã®2ã€ã®ã¿ã€ã«ãããå Žåã«çºçããŸãã
ã³ã©ã€ããŒBã¯ãã¹ããŒãããå³ã«äžéãå§ããŸããããœããã¯ã¯ãã³ã©ã€ããŒAã«ãã£ãŠæ€åºãããåã®ã¹ããŒãã®ã¬ãã«ãããã©ã«ãã®ãŸãŸã«ããŸãããããã®ã¹ããŒãã¯éåžžã«äœããããããã«ãããœããã¯ã¯äžå€®ã§çŽ1ãã¯ã»ã«äœããªããŸãã
ããããããã ãã§ã¯ãããŸããã ãœããã¯ã¯ãæé«ã®ã³ã©ã€ããŒããè§åºŠããŒã¿ãåä¿¡ãããããå³ã«åŸæè§ãããã¯ãã®ããã«èŠããŠãïŒããã«è¿ãããïŒãå·Šã«åŸæè§ããããŸãã ãžã£ã³ããããšãã圌ã¯ãã®è§åºŠã§ãžã£ã³ãããäºæ³ãããããã«åæ¹ã§ã¯ãªãåŸæ¹ã«ç§»åããŸãã
æãã®åã
ããã¯ãã¹ãŠéåžžã«çŽ æŽããããçŽ æŽãããã§ã-ãœããã¯ã¯ããŸããŸãªé«ãã®è¡šé¢ã§ã¹ã ãŒãºã«åããŸãã ãã ãããšã³ãžã³ã¯å¥ã®åŠçãè¡ãå¿ èŠããããŸãã çŸå®çã«ã¯ãSonicã®é床ãããè§åºŠã§æžéããå¿ èŠããããŸãã
è§åºŠããœããã¯ã®é床ã«åœ±é¿ãã2ã€ã®æ¹æ³ããããŸãã 1ã€ç®ã¯ãåãå¹ ã®å¹³ããªå°é¢ãšåæã«äžã®äžãèµ°ããªãããã«ããŸãã 2çªç®ã¯ãäžãäžããšãã¯é床ãäžããäžããšãã¯é床ãäžããŸãã ãããããé çªã«èŠãŠã¿ãŸãããã
3ã€ã®é床å€æ°
Sonicããããã¯ã®ã¿ã䜿çšããéåžžã®ãã©ãããã©ãŒããŒã§ããå Žåãå¿ èŠãªé床å€æ°ã¯2ã€ã ãã§ããXè»žïŒ Xsp ïŒããã³Yè»žïŒ Ysp ïŒã«æ²¿ã£ãåããSonicã®é床ã®æ°Žå¹³ããã³åçŽæåã§ãã å éïŒ acc ïŒãæžéïŒ dec ïŒãæ©æŠïŒ frc ïŒãXspã«è¿œå ãããŸã ã ãžã£ã³ãéåºŠïŒ jmp ïŒãšéåïŒ grv ïŒãYspã«è¿œå ãããŸã ïŒãœããã¯ã空äžã«ããå ŽåïŒã
ãã ããã©ã³ãã䜿çšããŠããå Žåããœããã¯ã¯ã©ã³ãã«æ²¿ã£ãŠç§»åãããšãæ°Žå¹³æ¹åãšåçŽæ¹åã«åæã«ç§»åããŸãã ããã¯ã XspãšYspã®äž¡æ¹ã«ãŒã以å€ã®å€ãããããšãæå³ããŸãã acc ã decããŸãã¯frcãXspã«è¿œå ããã ãã§ã¯æ©èœããªããªããŸãã ãœããã¯ãå£ãé§ãäžããããšããŠããããšãæ³åããŠã¿ãŠãã ãã-圌ãäžã«ç§»åããããšããŠããã®ã§ãæ°Žå¹³é床ã«è¿œå ããŠã圹ã«ç«ããªãã§ãããã
ããªãã¯ã¯ã3çªç®ã®å¯å€é床ïŒå ã®ãšã³ãžã³ãè¡ãããšïŒã䜿çšããããšã§ããããã察å°éåºŠïŒ Gsp ïŒãšåŒã³ãŸãããã ããã¯ãè§åºŠã«é¢ä¿ãªããå°çã«æ²¿ã£ããœããã¯ã®é床ã§ãã å€acc ã decãããã³frc㯠ã XspãŸãã¯Yspã§ã¯ãªãGspã«è¿œå ãããŸãã
å°äžã§ã¯ã XspãšYspã¯ãSonicã移åããåã®åã¹ãããã§GspããååŸãããŸãã ããã§ã¯ãæ¬äŒŒã³ãŒãã®äŸãé©åã ãšæããŸãã
Xsp = Gsp*cos(angle); Ysp = Gsp*-sin(angle); X += Xsp; Y += Ysp;
è§åºŠã®å€åã«é¢ä¿ãªããé床Gspãç¶æãããããããšã³ãžã³ã¯åžžã«ãœããã¯ããçã«ãåããŠããé床ãèªèããŸãã
åŸé ä¿æ°
ãœããã¯ã¯ãæ£ç¢ºãªé床ãç¶æããªãããããããäžãšã®çžäºäœçšãåŠçã§ããããã«ãªããŸããã ãã ãã圌ã¯ãŸã äžæäžã¯æžéããäžéäžã¯å éããå¿ èŠããããŸãã
幞ããªããšã«ãããã¯åŸé ä¿æ°ïŒ slp ïŒã®æŠå¿µã䜿çšããŠç°¡åã«å®çŸã§ããŸãã åã¹ãããã®å§ãã«slp * sinïŒ angle ïŒãGspã«è¿œå ããã ãã§ãã å®è¡äžã®slpå€ã¯åžžã«0.125ïŒ$ 0020ïŒã§ãããå転ããå Žåã¯ç°ãªããŸãã Sonicãäžãã¹ãã³ã¢ãããããšãïŒ Gsp㯠sinïŒ angle ïŒãšçãããªãïŒã slpã¯0.078125ïŒ$ 001EïŒã§ãã äžãäžã«å転ãããšãïŒ Gspã®ç¬Šå·ã¯sinïŒ angle ïŒã®ç¬Šå·ã«çããïŒã slpã¯0.3125ïŒ$ 0050ïŒã§ãã
æ³šïŒ Sonic 1ã§ã¯ã Sonicãåæ¢ããã¹ã¿ã³ãã£ã³ã°/åŸ æ©ãµã€ã¯ã«ã«ããå Žåã slpå€ã¯è¿œå ãããªãããã§ãã ãã ãã Sonic 3ããã³Knucklesã§ã¯ããã®å Žåã§ãslpå€ãè¿œå ããããããSonicã¯æ¥ãªæé¢ã«ç«ã€ããšãã§ããŸããã
è§åºŠãžã£ã³ã
ãœããã¯ããžã£ã³ãæã«ç«ã€è§åºŠããžã£ã³ãã«åœ±é¿ããŸãã 圌ã¯åã«Yspãjmpã«èšå®ããããšã¯ã§ããŸããã圌ã¯ç«ã£ãŠããè§åºŠããé£ã³åºãå¿ èŠããããŸãã ãããã£ãŠãæ£ããå€ãååŸããã«ã¯ãcosïŒïŒãšsinïŒïŒã䜿çšããŠjmpå€ãXspãšYspã®äž¡æ¹ã«å²ãåœãŠãå¿ èŠããããŸãã
ããã«ããã€ãã®æ¬äŒŒã³ãŒãïŒ
Xsp -= jmp*sin(angle); Ysp -= jmp*cos(angle);
ã¢ãŒãã®åãæ¿ã
ãã®ããããœããã¯ã¯äžãæé¢ãæ·å°ã«æ²¿ã£ãŠèµ°ãããšãã§ããŸãããããã¯æªããããŸããã ããããããã§ã¯ååã§ã¯ãããŸããã 圌ã¯ãè¿œå ã®ã³ãŒããªãã«å°çããå£ã倩äºã«åãã£ãŠé²ãããšã¯ã§ããŸããã
ãªãã§ïŒ ã©ã³ãã³ã©ã€ããŒAãšBã¯ããããã®çäžã«ããé害ç©ããã¹ãããå°çã®é«ããèŠã€ããŸãã ã¹ããŒã å šäœãY軞ã«æ²¿ã£ãŠæ£ç¢ºã«äžäžã«ç§»åããããã«èšèšãããŠãããããå£ãžã®ç§»è¡ãåŠçããããšã¯ã§ããŸããã
ãã®åé¡ã解決ããã«ã¯ïŒ 4ã€ã®ç°ãªãé転ã¢ãŒãã䜿çšããŸãã ããã«ã¯å°ã説æãå¿ èŠã§ãã
4ã€ã®ã¢ãŒã
ãœããã¯ã360床移åã§ããå Žåããšã³ãžã³ã¯360床ãã¹ãŠãã»ãŒåãæ¹æ³ã§åŠçãããšæ³å®ããã®ãè«ççã§ãã å®éããšã³ãžã³ã¯è§åºŠã4ã€ã®è±¡éã«åå²ããäœæ¥ãå€§å¹ ã«ç°¡çŽ åããŸãã
ç§ã話ããŠããããšãããããç解ããããã«ãå®å šãªã«ãŒããæãããäœãäžãšæé¢ã®ã¿ãåãããããã·ã³ãã«ãªãã©ãããã©ãŒããŒãæ³åããŠã¿ãŸãããã ãã£ã©ã¯ã¿ãŒãæ°Žå¹³æ¹åã«ç§»åããåŸã«è¡ãå¿ èŠãããã®ã¯ãããã¢ã¬ãã«ã«å°éãããŸã§äžäžã«ç§»åããããšã ãã§ãã 次ã«ãåºã®è§åºŠã枬å®ããå¿ èŠããããŸãã è§åºŠã¯Gspãäžããããã«äœ¿çšããããã以äžã®ç®çã«ã¯äœ¿çšãããŸããã ãã£ã©ã¯ã¿ãŒã¯åžžã«æ°Žå¹³ã«ç§»åããããã¢ã¬ãã«ã«å°éãããŸã§å³å¯ã«äžäžã«ç§»åããŸãã
ãœããã¯ã«é¢ããã²ãŒã ã§ãã»ãšãã©åãããšãèµ·ãããŸãã è§åºŠãããŸãã«ãæ¥ã«ãªã£ãå Žåã«ã®ã¿ããœããã¯ã¯ã象éããå€æŽããããã¢ã¢ãŒãããå³å£ã¢ãŒãã«åãæ¿ããŸãïŒå€©äºã¢ãŒããå·Šå£ãåºã¢ãŒãã«æ»ããªã©ïŒã ãã€ã§ãåã ã®ã¢ãŒãã§ããœããã¯ã¯éåžžã®ãã©ãããã©ãŒããŒã®ããã«åäœããŸãã ããžãã¯ã¯ããããã®4ã€ã®ã¢ãŒããšããããã®éã®ã¹ããŒããªã¹ã ãŒãºãªåãæ¿ããçµã¿åããããã®ã§ãã
ãããããœããã¯ã¯ã©ã®ããã«ããŠãã€ã¢ãŒããåãæ¿ããã®ã§ããããïŒ
ããã¢ã¢ãŒãã§224ïŒ$ E0ïŒãã倧ããè§åºŠãæ€åºããããšããšã³ãžã³ã¯å³å£ã¢ãŒãã«åãæ¿ãããŸãã åºæ¬çã«ããã¹ãŠã¯åããŸãŸã§ãã³ã©ã€ããŒã®ã¿ãäžéšã§ã¯ãªãå³åŽããã§ãã¯ãããœããã¯ã¯åçŽã§ã¯ãªãæ°Žå¹³ã«ãããã¢ãã¬ãã«ã«ç§»åããŸãã
å³å£ã¢ãŒãã§224ïŒ$ E0ïŒæªæºã®è§åºŠãæ€åºããããšããšã³ãžã³ã¯ããã¢ã¢ãŒãã«æ»ããŸãã
ä»ã®ãã©ã³ãžã·ã§ã³ãåæ§ã«æ©èœããŸãã
å ¬æ£ãªçåãçãããããããŸãã-ç§ãã¡ãæ£ããå£ã¢ãŒãã«ãããšããå°çè¡çªåšã¯ã©ãã«ãããŸããïŒ ãããã¯ããã«ãããŸããã90床å転ããŸãã ã³ã©ã€ããŒAã¯ããœããã¯ã®äžå¿ã«å¯ŸããŠX-9ã§ã¯ãªãY + 9ã«äœçœ®ããŠããŸãã ã³ã©ã€ããŒBã¯X + 9ã§ã¯ãªãY-9ã§ãã ã³ã©ã€ããŒã©ã€ã³ã¯åçŽã§ã¯ãªãæ°Žå¹³ã«ãªããèã®ã¬ãã«ãè¶ ããŠ16ãã¯ã»ã«ïŒX座æš+ 20ã§ãœããã¯ã®ãäžãã«20ãã¯ã»ã«ïŒäŒžã³ãŸãã
ã¯ããã³ã©ã€ããŒãåããããã¢ãŒããåãæ¿ããã¹ãããã§ãœããã¯ãæ°ããäœçœ®ã«ãããã·ã¥ãã§ããŸãã ãã ããåãã¯ã»ãã®æ°ãã¯ã»ã«ã§ãããéåžžã®ã²ãŒã ã§ã¯å®å šã«æç¥ã§ããŸããã
å¥ã®åŽé¢ïŒç§ãèšã£ãããã«ãåºäœã¿ã€ã«ã¯é«ãã®é åã§æ§æãããŠããŸãã ããã§ã®ããŒã¯ãŒãã¯ãé«ããã§ãã é©åãªå£ã¢ãŒãã§ã©ã®ããã«åäœããŸããïŒ æå€ãªããšã«ãå ã®ãšã³ãžã³ã§ã¯ãåãœãªããã¿ã€ã«ã«ã¯2ã€ã®çžè£çãªé«ãããããŸãã 1ã€ã¯æ°Žå¹³æ¹åã«äœ¿çšããããã1ã€ã¯åçŽæ¹åã®ç§»åã«äœ¿çšãããŸãã
å·Šã®å£ãšå€©äºã®ã¢ãŒãã¯ã©ãã§ããïŒ é«ãã®4ã€ã®é åã¯å¿ èŠãããŸãããïŒ ãããããã®åœ¢åŒã®ã¿ã€ã«ã¯é«ãã®éåžžã®é åã䜿çšãããããå転ããã ãã§ãã Sonicã¯ã倩äºã¢ãŒãã§ã¯ãèŠã€ãã£ãé«ãã®å€ã䜿çšããŠãäžã§ã¯ãªãäžã«ç§»åããå¿ èŠãããããšãèªèããŠããŸãã
ããã4ã€ã®ã¢ãŒãã®ãããã§ãSonicã¯ããããçš®é¡ã®èŒªéãå éšããã³å€éšæ²ç·ãªã©ã移åã§ããŸãã 以äžã«ãè§åºŠã®å€ãæã€ç»åã®äŸãããã€ã瀺ããŸãããããã®ç»åã¯ãç§ãã¡ã話ããŠããããšã説æããŠããŸãã
å£ã倩äºããèœã¡ã
å³å£ãå·Šå£ããŸãã¯å€©äºã¢ãŒãã®å Žåããœããã¯ã¯çµ¶å¯ŸGspå€ã 2.5ïŒ$ 0280ïŒãäžåããšäœäžããŸãïŒãã®æç¹ã§ã®Gspã¯0ã«çãããªããŸããã XspãšYspã¯å€åããªãããããœããã¯ã¯ç©ºäžããã®çµè·¯ã«æ²¿ã£ãŠç§»åãç¶ããŸãïŒ ããã¯ããã®äžã«åå°ãããå Žåã§ãèµ·ãããŸãã
ã¹ã©ã€ãããã¯
ãœããã¯ãäžèšã®æ¹æ³ã§èœã¡ããšãæ°Žå¹³å¶åŸ¡ããã¯ã¢ãŠãã¿ã€ããŒã¯31ïŒ$ 1EïŒã«èšå®ãããŸãïŒãœããã¯ãå°é¢ã«è§ŠãããŸã§ã¿ã€ããŒã¯ã«ãŠã³ãããŠã³ããŸããïŒã ã¿ã€ããŒå€ããŒãã«çãããªãããœããã¯ãå°äžã«ããéã圌ã¯ãã¬ã€ã€ãŒããã¿ã³ãå³ããšãå·Šãã§ãœããã¯ã®é床ãå€æŽããããšãèš±å¯ããŸããã ã¿ã€ããŒå€ã¯ã¹ãããããšã«1ãã€æžå°ãããããããã¯ã¯çŽ0.5ç§ç¶ããŸãã ãã®æéäžããœããã¯ãå°é¢ã«èœã¡ãé床ãšé床ã ããåãã«åœ±é¿ããããããœããã¯ã¯ã©ã³ããæ»ãéããŸãã
空äžã¹ããŒã¿ã¹
ãœããã¯ã空äžã«ãããšããè§åºŠã Gsp ã slpãªã©ã«ã€ããŠå¿é ããå¿ èŠã¯ãããŸããã å¿ èŠãªã®ã¯ãå°é¢ãšã®æ¥è§Šãæ€åºããããŸã§XspãšYspã䜿çšããŠç§»åãããã®åŸå°é¢ã¢ãŒãã«åãæ¿ããããšã§ãã
ãã ãããœããã¯ã«ã¯ç©ºäžã移åããããã®çããã³ã©ã€ããŒã®ã»ãããããã詳现ã«æ€èšãã䟡å€ããããŸãã
空borneã³ã©ã€ããŒ
暪åã³ã©ã€ããŒ
ãœããã¯ã¯å°é¢ã«ãããšããšåãããã«å£ã«ã¶ã€ããã¯ãã§ãã ãããã£ãŠãæ°Žå¹³ã³ã©ã€ããŒã®äœçœ®ã¯ããã®äœçœ®Yããå§ãŸããX-10ããX + 10ãŸã§äŒžã³ãŠããŸãã ãœãªããã¿ã€ã«ãšã®è¡çªã§ã¯ããœããã¯ã¯ã¿ã€ã«ã®å¢çã«ãã©ã¹/ãã€ãã¹11ã§ãæŒã蟌ã¿ããå°é¢ã«ããŸãã
éãã¯ããã®ã³ã©ã€ããŒã©ã€ã³ãåçŽã³ã©ã€ããŒAããã³Bãããåºããåå°ã®ååšãæ€åºããããšã§ãïŒããå°ãäžã«æ»ããŸãïŒã ã€ãŸããæ°Žå¹³ã³ã©ã€ããŒã©ã€ã³ã¯ã XspããŸã£ãããªãå Žåã§ããSonicãééãããããã¯ãæ€åºã§ããŸãã ãããã£ãŠã極端ãªãšããžã«åœãããšãåºäœãªããžã§ã¯ãããæ»ãèœã¡ãŸãã
ãœããã¯ãæ°Žå¹³ã³ã©ã€ããŒã®ãã®ç·ãšã®è¡çªãæ€åºãããšã圌ã®Xspã¯ãå£ããé¢ããã«å£ã«åãã£ãŠç§»åããå Žåã«ã®ã¿ãªã»ãããããŸãã ãããªããã°ã圌ã¯å£ã«ãã£ã€ããŠãããããéãéããŠé£ã³ãŸãã
åçŽã³ã©ã€ããŒ
ãœããã¯ã³ã©ã€ããŒAãšBã¯ãå°äžãšã»ãŒåãããã«ç©ºäžã§åäœããŸãã éãã¯ããœãªããã¿ã€ã«ãæ€åºããããšãã«ããœããã¯ã®é«ããããã«ã¿ã€ã«ã®é«ããã20ãã¯ã»ã«ãåŒããå€ã«çããèšå®ãããªãããšã§ãã 代ããã«ããã®é«ãã¯æ¢ã«ãã®é«ãããäœãå Žåã«ã®ã¿èšå®ãããŸãã ããã§ãªããã°ã圌ã¯åœŒã«è¿ã¥ãããšãã«åºã«åŒµãä»ããŠããã ããã
ã³ã©ã€ããŒã圌ã®è¶³ã®äžãŸã§ãããŸã§åŒã䌞ã°ãããå Žåããªã圌ã¯ãžã£ã³ãããã¹ãããã§å°é¢ãåã³çºèŠã§ããã決ããŠåœŒãåºããèœã¡ãªãã®ã§ããïŒ ç°¡åã§ããYspããŒã以äžã®å Žåãé€ãã圌ã¯ããããç¡èŠããŸãããããã£ãŠãäžã«ç§»åãããšãã ãå°çãæ€åºããŸãã
ãœããã¯ã¯ç©ºäžã§äžäžã«åãããšãã§ããã®ã§ã倩äºãšãã®äžã«ããæ²ç·ã«ãããã§ããããã«ãäžãã2人ã®ã³ã©ã€ããŒïŒCãšDïŒããã§ãã¯ããå¿ èŠããããŸãã ïŒCãšDã¯AãšBã®æ£ç¢ºãªé¡é¢åå°ã§ã-ãããã¯åãXäœçœ®ãšé·ããæã¡ãäžåãã§ã¯ãªãäžåãã®ã¿ã§ããïŒãœããã¯ã¯å€©äºãæ€åºãããããããé¢ããåºãšã¯ç°ãªãäžäžã«ç§»åããŸãäžã«ç§»åãããšãã«ã®ã¿æ€åºãããŸãã äžã«ç§»åããããééã®ããå£ã«ããã¿ã€ããããäžã®æ²ç·ã®åŽé¢ã«ãžã£ã³ãããããããšãã«ãã倩äºãïŒå®éã«ã¯ãããã¯ã®äžéšïŒãæã€ããšãã§ããŸãã
åºãé£ã³è¶ãã
ãœããã¯ããžã£ã³ããããšãã«ããã«é£ã¶ããšãã§ãããµã€ãããããŸãã ãããã¯ã ã°ãªãŒã³ãã«ãŸãŒã³ ã ãšã¡ã©ã«ããã«ãŸãŒã³ ã ããŒã ããªãŒãããã¯ãŸãŒã³ãªã©ã®äžéµç·å°ã§ããèŠãããŸãã ãã®ãããªããããæ§æãããœãªããã¿ã€ã«ã¯ãAããã³Bã³ã©ã€ããŒã«ãã£ãŠã®ã¿æ€åºã§ããç¹æ®ãªã¿ã€ããšããŠãšã³ãžã³ã«ãã£ãŠããŒã¯ãããCããã³Dã³ã©ã€ããŒãšæ°Žå¹³ã³ã©ã€ããŒã©ã€ã³ã«ãã£ãŠç¡èŠãããŸãã
å°çã®åçºèŠ
ãœããã¯ãå°é¢ã«ãããšãã XspãšYspã¯GspããååŸãããŸã ã èœäžããããå°é¢ãå£ãããããå Žåã XspãšYspã«ã¯ã空äžã®è»éãç¶ç¶ããããã«å¿ èŠãªå€ãæ¢ã«å«ãŸããŠããŸãã ãããããœããã¯ãçéžãããšããçéžæã«å©çšå¯èœãªXspãšYspããGspãèšç®ããå¿ èŠããããŸãã cosïŒïŒããã³sinïŒïŒã䜿çšããŠæ£ç¢ºãªå€ãååŸãããšèãããããããŸããããããã§ã¯ãããŸããã å®éããã£ãšåçŽãªããšãèµ·ããã湟æ²ãã倩äºã«ã¶ã€ãã£ããšããšæ¹Ÿæ²ããå°é¢ã«çãããšããšã§ã¢ã«ãŽãªãºã ãç°ãªãã®ã§ãåå¥ã«æ€èšããŸãã
äžã«ç§»åãããšã
æ€åºãããå°çã®è§åºŠã240ã255ïŒ$ F0ã$ FFïŒã®ç¯å²ã«ããïŒããã³ãããã®é¡é¢åå°ã0ã15ïŒ$ 00ã$ 0FïŒïŒå Žåã Gspã«ã¯å€Xsp ãå²ãåœãŠãããŸãã è§åºŠã224-239 ïŒ$ E0ã $ EFïŒïŒ16-31ïŒ$ 10ã$ 1FïŒïŒã®ç¯å²ã«ããå Žåã Xspã®çµ¶å¯Ÿå€ãYspãã倧ããå Žåã«ã®ã¿ã Gspã«Xspã®å€ãå²ãåœãŠãããŸãã ãã以å€ã®å Žåã Gspã¯Ysp * 0.5 * -signïŒcosïŒ angle ïŒïŒã«çãããªããŸãã è§åºŠã192-223ïŒ$ C0ã$ DFïŒïŒ32-63ïŒ$ 20ã $ 3FïŒïŒã®ç¯å²ã«ããå Žåã Xspã®çµ¶å¯Ÿå€ãYspãã倧ããå Žåã Gspã¯XspãšçãããªããŸãã ãã以å€ã®å Žåã Gspã«ã¯å€Ysp * -signïŒcosïŒ angle ïŒïŒ ãå²ãåœãŠãããŸãã
äžã«ç§»åãããšã
æ€åºããã倩äºã®è§åºŠã160-191ïŒ$ A0ãBFïŒïŒ64-95ïŒ$ 40ã$ 5FïŒïŒã®ç¯å²ã«ããå Žåããœããã¯ã¯å€©äºã«åãä»ãããã Gspã¯å€Ysp * -signïŒcosïŒ angle ïŒïŒãåããŸãã è§åºŠã96ã159ïŒ60ã9ç±³ãã«ïŒã®ç¯å²å ã«ããå Žåããœããã¯ã¯éåžžã®å€©äºã®ããã«é ã«åœãããé ã«ä»çããŸããã Yspã¯ç¡å¹åããã Xspã¯å€æŽãããŸããã
ãã«ãïŒè§åºŠã®å€æ
Genesis / Mega Driveã®ã²ãŒã ã§ã¯ãè§åºŠå€ã¯0ïŒ$ 00ïŒãã255ïŒ$ FFïŒãŸã§ã®16é²åœ¢åŒã§äœ¿çšããããããåã¯ä»¥åã®ããã«360ã®éšåã«åå²ãããã256ã«ãªããŸãã GMLãªã©ã®ä»ã®èšèªã§ã¯ãåæèšåãã«ã«ãŠã³ããããããã32ïŒ$ 20ïŒã¯45°ã§ã¯ãªãã315°ã§ãã
å ã®16é²æ°ã®è§åºŠãGMLã§äœ¿çšã§ããè§åºŠã«å€æããã«ã¯ã次ã®åŒã䜿çšããŸãïŒæ¬äŒŒã³ãŒãã§èšè¿°ïŒã
return (256-hex_angle)*1.40625;
泚é
- ãœããã¯ã¯ãããã¢ã¢ãŒãã§ã®ã¿æžéïŒè¶³ã§ãããããïŒããããšãã§ããŸãã
- ãœããã¯ã¯ã圌ã®äžã«äœã倩äºããããšãžã£ã³ãã§ããŸããã X-9ããX + 9ãŸã§ã®ã³ã©ã€ããŒã©ã€ã³ã§Y-25ã§è¡çªãæ€åºãããå Žåããœããã¯ã¯ãžã£ã³ããéå§ããŸããã
- ãœããã¯ã®é«ãã¯ããŸããŸã§ãã æ¥ã®ãã©ãããã©ãŒã ã§ç«ã£ãããèµ°ã£ãããèœäžããããé¢éžããããããšãã®é«ãã¯40ãã¯ã»ã«ã§ãã Y軞ã«æ²¿ã£ãäœçœ®ã¯åžžã«äžå¿ã§ãããããåžžã«å°é¢ãã20ãã¯ã»ã«äžã«ãããŸãïŒã¿ãããããšå€©äºã®äžã«20ãã¯ã»ã«ïŒã ãã ãããžã£ã³ãããŠå転ãããšãã®é«ãã¯ããã30ãã¯ã»ã«ã§ãå°é¢ãã15ãã¯ã»ã«äžã«äžãããŸãïŒãŸãã倩äºãã15ãã¯ã»ã«äžã«äžãããŸãïŒã ãœããã¯ãã¹ãã³ãŸãã¯ãžã£ã³ãããã¹ãããã§ã¯ãã¹ã©ã€ããŒãYäœçœ®ã«5ãè¿œå ããŸãããããã£ãŠãã¹ã©ã€ããŒãçããªããäžå¿ãäœçœ®ãå€æŽããŠããäžã®ãã€ã³ãã®äœçœ®ã¯å€æŽãããŸããã ãžã£ã³ãåŸã«å転ãå®äºãããçéžãããšãYãã5ãã¯ã»ã«ãå·®ãåŒãããŸããã«ã¡ã©ã·ã¹ãã ããã®ãªãã»ãããèæ ®ããå¿ èŠããããŸããããããªããšããœããã¯ã®é«ããå€ãããšãã¥ãŒãå€ãããŸãã
- ãã®ã¬ãã¥ãŒã§èª¬æãããŠããã³ã©ã€ããŒAãBãCãããã³Dã¯ã座æšX-9ããã³X + 9ã«ãããŸãã ããã¯ãæ©ããšããèœäžãããšããã°ãå°ããé¢ãããšããªã©ã«ã®ã¿åœãŠã¯ãŸããŸããåžžã«ããŒã«ã«æãç³ãŸããŠããªããšãã§ãã ãœããã¯ãã¹ãã³ãŸãã¯ãžã£ã³ãããå Žåããããã¯åº§æšX-7ããã³X + 7ã«ãããŸãã ãã ããæ°Žå¹³ã³ã©ã€ããŒã©ã€ã³ã¯åžžã«åããŸãŸã§ãã
æŽæ°ïŒå°æ°å€ãè¿œå ããŸããã