çŽ æŽãããæ¥æ¬ã®ãµãã€ãã«ãã©ãŒã²ãŒã ãåãããããã©ã®ããã«æ©èœããããèŠãŠããããè±èªã«ç¿»èš³ããããã§äœãä»ã®ããšãããŸãããã
ã¯ããã«
ClockTowerïŒæ¥æ¬ã§ã¯Clocktower-The First FearãšããŠç¥ãããŠããŸãïŒã¯ãã¹ãŒããŒä»»å€©å åãã«ãã¥ãŒãã³ãšã³ã¿ãŒãã€ã¡ã³ããæåã«ãªãªãŒã¹ããã²ãŒã ã§ãã

ããã¯ããã€ã³ãã¢ã³ãã¯ãªãã¯ã¢ããã³ãã£ãŒãžã£ã³ã«ã®ã²ãŒã ã®1ã€ã§ããããµãã€ãã«ãã©ãŒãžã£ã³ã«ã®åµèšè
ã®1人ã«ããªã£ãŠããŸãã é°è¬ã¯ãã·ã§ã«ã¿ãŒã®ééåŸã®4人ã®å€å
ãéžå®
ã«è¡ãçããäžäººãã€åœŒããæ¶ãå§ãããšããããšã§ãã ãã¬ã€ã€ãŒã¯å€å
ã®äžäººã§ãããžã§ããã¡ãŒãæäœããéãéãåäººãæ¢ããéžå®
ã§äœãèµ·ãã£ãŠããã®ããèŠã€ããããšããŸãã
ã²ãŒã ã®é°å²æ°ã¯å³ãããå®¶ã®äžã®åºæ¥äºã¯å¶ç¶ã«èµ·ãããŸãããæãããªçç±ããªãïŒèšãæããã°ãå®¶ã¯éåã«æºã¡ãŠããŸãïŒãæã«ã¯äœããããªããæ®ºãããšãã§ããŸããã¯ãªãããŒã®ãµã€ã³ãã¹ãå®¶äžã远ããããŠããŸãïŒãã€ãªãã¶ãŒã3ãã¡ã·ã¹ã¯æåã®ãã®ãããªæåã§ã¯ãããŸããïŒïŒ

ã²ãŒã ã§ã¯ãè¿
éãªæèãå¿
èŠãšããå±éºãªç¶æ³ããã°ãã°çºçããå¯äžã®æãã¯çãæ®ããéããé ããããšã§ãããããããžã§ããã¡ãŒã®å¿ãä¿ã€ããšãéèŠã§ããããããªããšããžã§ããã¡ãŒã¯å¿èçºäœã§åããŠæ»ã¬ãããããŸããïŒã²ãŒã Illbleedã®ã¹ã¿ã€ã«ã§ïŒã
ãã®ã²ãŒã ã¯1994幎ã«SNESã§ãªãªãŒã¹ããã1997幎ã«PSXã§åŒ·åãããã³ã³ãã³ãã§åãªãªãŒã¹ãããWonderswanã³ã³ãœãŒã«ã§ãªãªãŒã¹ãããŸããïŒããããWonderswanãæ°ã«ãã人ã¯ããŸããã§ããïŒã
ã¯ããSNES ROMã«ã€ããŠã¯ãAeon Genesisãè±èªã®ç¿»èš³ããªãªãŒã¹ããŸããïŒããã ã£ãããã§ãïŒããSNESã®ããŒãžã§ã³ã¯PCã®ããŒãžã§ã³ãããå£ã£ãŠãããPCã®ããŒãžã§ã³ã®æ¹ãã¯ããã«åªãããµãŠã³ãã§ãããFMVã®ç޹ä»ãããªãªã©ããããŸãã ãããããããå€ãã®ã³ã³ãã³ããå«ãå¯äžã®ããŒãžã§ã³ã¯PSXããŒãžã§ã³ã§ãããããã«ã€ããŠã¯åŸã§èª¬æããŸãã
æåã«ãCDããã²ãŒã ããé¢ä¹³ãããŸãããã
ããŒã1-ç ç©¶
次ã®ãããªã²ãŒã ãã©ã«ããŒããããŸãã

BGãã©ã«ããŒãããããã®äžã«ã¯ãåå²åœ¢åŒã®éšå±ã®èæ¯ã«äŒŒããã®ããããããã«ä»éãã.MAPãã¡ã€ã«ããããŸãã

PTNãã¡ã€ã«ãšPYXãã¡ã€ã«ãå«ãDATAãã©ã«ããŒããããŸã...ãããäœãªã®ãããããŸãã...ã¬ãã«ç»é¢ãããžãã¯ãªã©ã«é¢é£ä»ããŠããã®ãããããŸããã
ãã€ã¢ãã°ã§äœ¿çšããã人ã
ã®é¡ãæã€bmpãå«ãFACEãã©ã«ããŒããããŸãã

ãžã§ããã¡ãŒã䜿çšã§ããã¢ã€ãã ãå«ããã©ã«ããŒããããŸãã

PATTERNãã©ã«ããŒã«ã¯ABMãã¡ã€ã«ãå«ãŸããŠããŸãã ã¹ãã©ã€ãã¢ãã¡ãŒã·ã§ã³ã«äœ¿çšããããšæããŸãããééã£ãŠããå¯èœæ§ããããŸãã
SCEãã©ã«ããŒã«ã¯ãCT.ADOãšCT.ADTã®2ã€ã®ãã¡ã€ã«ãå«ãŸããŠããŸãã ããããèæ
®ããŸã-ãããã¯ãã²ãŒã å
šäœã§çºçããè«çã¢ã¯ã·ã§ã³ã¹ã¯ãªããã§ãããç¬èªã®ãã€ããªã¹ã¯ãªããèšèªã§èšè¿°ãããŠããŸã...ãããŠãã»ãšãã©ã®æéããããã«è²»ãããŸãã
SNDDATAãã©ã«ããŒã«ã¯ã鳿¥œãšå¹æé³ã®MIDIãã¡ã€ã«ãšWAVãã¡ã€ã«ãå«ãŸããŠããŸãã
VISUALãã©ã«ããŒã«ã¯ããã¹ãŠã®é«è§£å床ã¬ã³ããªã³ã°ãã¡ãã¥ãŒãªãã·ã§ã³ãªã©ãå«ãŸããŠããŸãã BMP圢åŒã 玹ä»ãããªãããã«ä¿åãããŠããŸãã

æåŸã«ãDATA.BINãã¡ã€ã«ããããŸãããããäœãããã®ããŸã ããããŸããã ããã«ãã²ãŒã ct32.exeã®å®è¡å¯èœãã¡ã€ã«ããããŸãã
CDãªãã§ã²ãŒã ãå®è¡ãããšã次ã®ã¡ãã»ãŒãžã衚瀺ãããŸãã

ãããã¬ã§ã²ãŒã ãå®è¡ããŠããã®è¡ãèŠã€ããŸãã 圌女ã¯ãã²ãŒã ãã²ãŒã ããŒã¿ã®å Žæãç¥ããªãïŒã€ãŸããCDãæ¿å
¥ãããŠããªãïŒããšãå ±åããã ãã§ããããšãããããŸãã
ããŒã2-NoCDã®äœæ
IDAãèŠããšãRegQueryValueExã䜿çšãããŠããããšãããããŸããã€ãŸããã¬ãžã¹ããªå€ãèªã¿åãããŠããŸãã ã²ãŒã ã¯ããããäœãåŸãŸããïŒ

ãŸã...ç§ã¯ãããçãã ãšæããŸãã
ãŸã忢ããŸãã
äœãåå ã§ãããã確èªããŸããããã³ãŒãå
ã§ãããããŒãã³ãŒãã£ã³ã°ã§ããŸãã

äœåãªäœæ¥ã¯ç¡é§ã§ã¯ãªãã£ãããã§ãïŒ ã²ãŒã ã¯NOREGåŒæ°ãæ¢ããŠããŸãã èŠã€ãããªãå Žåãã¬ãžã¹ããªå€ããã§ãã¯ããã¹ãã£ã³ãã¹ãããããŠã芪ãã£ã¬ã¯ããªã«ãããšæ³å®ããŠã²ãŒã ãèµ·åããŸãã ããã§ã¯ãç°¡åãªãããã圹ç«ã¡ãŸããããã«ãããã²ãŒã ã¯åžžã«NOREGåŒæ°ã§å§ãŸããšèããããã«ãªããŸãã ãããè¡ãã«ã¯ãjzã0xEBïŒãŸãã¯ç¡æ¡ä»¶ã®JMPïŒã«çœ®ãæããŸãã
å®è¡ããŠååŸïŒ

ã¯ãïŒ
ããŒã3-ã²ãŒã å
ããã¹ãã®æ€çŽ¢
å°ãèããŠã¿ãŸããã-ãã¹ãŠã®ããã¹ããå®è¡å¯èœãã¡ã€ã«ã«ãããšæåŸ
ã§ããŸããïŒ ããã¯å¯èœã§ããå€ãã®ã²ãŒã ã§èµ·ãããŸãã ãã€ããªãã¡ã€ã«ã«ã¯éçãªè¡ããããŸãïŒããšãã°ãCDããªãããšã§èŠã€ãã£ããšã©ãŒïŒããããã¹ãã¯ä»ã®å ŽæïŒããŒã¿ãã¡ã€ã«ã«ããã®ãããããŸããïŒã«é ãããŠãããšæããŠããŸãã èŠãŠã¿ãŸãããïŒ

SHIFT-JIS圢åŒïŒéåžžã«äžè¬çïŒã䜿çšããæ¥æ¬èªã®ããã¹ãã¯ãéåžž0x80-0x8Fã®ç¯å²ã®å¶åŸ¡æåã§å§ãŸããŸã...å®è¡å¯èœãã¡ã€ã«ã§é¡äŒŒãããã®ãæ¢ãããšããå§ããã®ãããã§ãããã
次ã«ããããã®è¡ãæ°ãããã¡ã€ã«ã«ã³ããŒããŠã¡ã¢åž³++ã§éããGoogle翻蚳ã«è²Œãä»ããŸãã

ãã®ãããã²ãŒã ãã€ã¢ãã°ã§ã¯ãªããšã©ãŒã¡ãã»ãŒãžã«äŒŒãŠããŸãã ä»ã®ãã¡ã€ã«ãæ¢ãæéã§ãïŒ

ããŒããçè§£ã§ãã-PTNããã³PYXãã¡ã€ã«ã«ã¯ããã¹ãããããŸããã SCEãã©ã«ããŒã確èªããŸãããã

CT.ADTãã¡ã€ã«ã«ã¯4ãã€ãã®ãªãã»ãããå«ãŸããŠããããã§ãïŒãã¡ã€ã«ã®æåŸãŸã§ã¯0x100ãŸã§ã«ãŠã³ãããäžåºŠã«4ãã€ãïŒã
ããããCT.ADOãã¡ã€ã«ã§ã¯...


ããã§ããã¡ã€ã«ãã¹ã«é¡äŒŒããASCIIæååã ãã§ãªããSHIFT-JIS圢åŒã®ããã¹ãæååãèŠã€ãããŸããã ãã®ãã¡ã€ã«å
ã®ããŒã¿ã¯å¥åŠã«èŠããŸã...ãããããããçè§£ã§ãããã©ãããèŠãŠã¿ãŸãããã ããããè§£æãããå Žåã¯ãããããå¿
èŠããããŸãã
ããŒã4-ADO / ADTã®è©³çް
ADTãã©ã®ããã«æ©èœãããã«ã€ããŠã¯ãã§ã«å°ãããã£ãŠããã®ã§ãADOãã©ã®ããã«èŠããããèŠãŠã¿ãŸãããã

æäžéšã§ããžãã¯ïŒADCãªããžã§ã¯ããã¡ã€ã«ïŒãéå§ãããããã0xFFã®æã256ãã€ãªãã»ãããããããŒã¿ãéå§ãããããã§ãã æ¬ç©ã®ã³ã³ãã¥ãŒã¿ãŒç§åŠè
ã®ããã«èããæã§ãïŒ
ãããã®è¡ã¯ãã¹ãŠãæçœãªæ€çŽ¢ã®ãªããã€ããªåœ¢åŒã§ãããããADTãã¡ã€ã«ãé€ããŸãã å
éšã«ã¯ãè§£ææã«ã²ãŒã ã«è¡šç€ºãããå
容ãã²ãŒã ã«çè§£ãããå¶åŸ¡ã³ãŒããšããŒã¿ãæ··åšããŠããå¿
èŠããããŸãããããã¯ãã¹ãŠäœããã®æ§é ãæã£ãŠããŸãã
.BMPã§æååã調ã¹ããšãåããã¿ãŒã³ãããããšã«æ°ä»ãã§ãããã
39FFã®åŸã«ã¯ãŒãã®2ãã€ãå€ïŒã»ãšãã©ã®å Žåãããã0x0100ã§ãããããããã¯WORDã®å€ã ãšæããŸãïŒããŒãå€ã§çµããASCIIè¡ãããã³ã€ã³ãã³ããç¶ããŸãã å®éãFACEã®BMPãããŒããããã³ã«ãå€ã¯0xFF39ã«ãªããŸãïŒ
å®è¡å¯èœãã¡ã€ã«ã確èªããŸãããã

ããïŒ ããã ãã§ãªããä»ã®æå³ããããŸãã Shift-JISã®æ°è¡ããã§ãã¯ããŠããã¿ãŒã³ãèŠã€ãããã©ããã確èªããŸãããã

ãããïŒ ãã¹ãŠã®è¡ã¯0xFF33ã§å§ãŸãã2ã€ã®16ãããå€ïŒ0x0F00ïŒãããããã®åŸã«Shift-JISã®è¡ãç¶ããŸãã
æ³šïŒ SHIFT-JISããã«å€ã§çµäºããªãããšã«æ°ä»ãå ŽåããããŸãããããã¯äžå¯èœã§ãã äžéšã®ããã°ã©ã ã¯ã·ã³ã°ã«ãã€ããšãã«ããã€ãã®äž¡æ¹ã®æåå€ãåŠçã§ããŸãããå€ãããã°ã©ã ã§ã¯ããã¯æ·±å»ãªåé¡ã§ããã ãã®çµæãã芧ã®ãšããããã¹ãŠã®æ¹è¡ïŒ0x0aïŒã®åŸã«0x00ãç¶ããŸãã å®éãALL ALL ASCIIæåã®åŸã«ã¯0x00ïŒäž¡æ¹ã®æ°åãŸãã¯è±åïŒãç¶ããŸãã ãããã£ãŠãããã¹ãã¬ã³ããªã³ã°ã¯ãASCIIæåïŒ0-127ïŒã®ãã«ããã€ãè§£éããµããŒãã§ããå¶åŸ¡ãã€ãã§ããŒã¿ãã€ããèªã¿åããšãã«æ··ä¹±ãããéããŸãåæ§ã§ãã
ãããã£ãŠãã²ãŒã ã®ããžãã¯ã¯ãäœããã®æ¹æ³ã§çµäºãèŠã€ãããŸã§ïŒããããæ°ãããªãã³ãŒãïŒéåžžã¯0x28FFïŒãèŠã€ããããšã«ãã£ãŠïŒæååãè§£æããå¿
èŠããããšçµè«ä»ããŠããŸãã
ãããã£ãŠãADOãã¡ã€ã«ã«ã¯ãã¹ã¯ãªããåãããããªãã³ãŒãããšããã«ç¶ãããŒã¿ãè©°ã蟌ãŸããŠããŸãã çè«çã«ã¯ãã²ãŒã ãããããèªã¿åãã以åã®ãªãã³ãŒãã«åºã¥ããŠãã©ã®ããŒã¿ãäºæãããããç¥ã£ãŠãããšæ³å®ã§ããŸãã ããã§ãïŒãã¹ãŠã®ã±ãŒã¹ã§ïŒäžèšã§èŠã€ããå®è¡å¯èœãã¡ã€ã«ã®ã¹ã€ããã³ã³ã¹ãã©ã¯ããèŠãŠãã²ãŒã ã§äœ¿çšããããã¹ãŠã®ãªãã³ãŒãã匷調衚瀺ã§ããŸãïŒåœ¢åŒãããå®å
šã«çè§£ããããïŒã
å€ïŒ0xFF20ã0xFF87ïŒã«æ³šç®ããADOãã¡ã€ã«ã§ããããæ¢ããæ¬¡ã®ãªãã³ãŒãã®åã«åãæ°ã®ããŒã¿ãã€ãããããã©ããã倿ããŸãã ãããã2ãã€ãå€ãæååãªã©ã§ãããã©ããã調ã¹ãŠã¿ãŸãããã

ããã«ãå®è¡å¯èœãã¡ã€ã«ã«ã¯éåžžã«è峿·±ãããã¹ããå«ãŸããŠããããšã«æ°ä»ãã§ãããã

ããã¯å®éã«ã¯ãªã¹ãã§ããããªãã³ãŒãã®ååã®ããã«çãããèŠããŸãã 幞ããªããšã«ãããã§ãïŒ ããã§ããªãã³ãŒãã®ååãããããŸããã

ãã®æ®µéã§ããããã¬ãŒã䜿çšããŠã²ãŒã ãéå§ããæ§æã®å®è¡ãäžæããŠãç°ãªããªãã³ãŒãã®ã¢ã¯ã·ã§ã³ã芳å¯ã§ããŸãã ç§ãã¡ã®èå³ã®1ã€ã¯JMPã§ã...
å®éãæåã®JMPïŒ0xFF22ïŒã®åŸã«ã¯2ãã€ãå€0x17ããããŸãã
ã²ãŒã ã§ããã芳å¯ããADO_offsetãIDAã§èгå¯ããã倿°ãšããŠèšå®ãããšãã²ãŒã ã¯ãã®å€ãã0x1B32ã«ç§»è¡ããããšãããããŸãã 圌女ã¯ãããè¡ãå¿
èŠãããããšãã©ã®ããã«ç¥ã£ãŠããŸããïŒ ããã¯èŠå ã§ã¯ãããŸãã...ããããïŒ

ããïŒ
0x17 * 4 = 0x5Cãã€ãŸããADTã¯ããŸããŸãªã·ãŒã³ã®é·ç§»ããŒãã«ã§ãã CALLïŒ0xFF23ïŒé¢æ°ãåæ§ã«æ©èœããŸããããã°ãããããšãã®ãªãã»ããã«æ»ããŸã...æåã®ããã€ãã®ADTãªãã»ããã¯0xFF00ãæããŸãã ããã¯ã²ãŒã ã§ã¯éåžžã«éèŠã§ãããšæããããã©ã³ãžã·ã§ã³ã¯å®éã«ããããã¹ãããããŸãïŒãã©ã³ãžã·ã§ã³åŸã«ãªãã»ããã«+2ã远å ããŸãïŒã ããã¯RETNãªãã³ãŒãã®ãããªãã®ã§ããïŒ ããæãã
ãã ããADTãã¡ã€ã«ã®æåŸã«ã¯ç°ãªãå€ãå«ãŸããŠãããADOãã¡ã€ã«ã®ãµã€ãºã倧ããè¶
ããŠããããšã«æ°ä»ãã§ãããã 圌ãã¯äœãäžããŸããïŒ ãããçè§£ããŸããããŸãããããã®é·ç§»ãã©ã®ããã«æ©èœããããçè§£ããããã«ãã²ãŒã ã®å®è¡ããã»ã¹ã詳ããèŠãŠã¿ãŸãããïŒç¹å¥ãªæ³šæãæããŸãïŒã

ã¡ã¢ãªãã³ããäœæãããšãã¡ã¢ãªå
ã®ADCãªããžã§ã¯ããã¡ã€ã«ïŒCT.ADOïŒã®å€ã0x8000 int16ã§ããã0x8000ãŸãã¯32 KBããšã«æžã蟌ãŸããŠããããšãããããŸãã ãŸããADOã¯å€æŽãããŠããŸããã ãŸããå®è¡å¯èœãã¡ã€ã«ã§ã颿°ãå€ãè§£æãããã®å€ãèŠã€ãã£ãå ŽåïŒNOPãªã©ïŒã2ãã€ããã¹ãããããããšãããããŸãã

ã²ãŒã ã¯ããŒã¿ã32 KBã®ãã©ã°ã¡ã³ãã«åå²ããããïŒã»ãšãã©ã®å Žåãããå€ãã®ã»ã°ã¡ã³ãã«ã¡ã¢ãªã«ã¢ã¯ã»ã¹ããããã2ãã€ãå€ã«ééããããšãå€ã-ããã¯éèŠã§ãïŒãADTã«ã¯äœããã®çš®é¡ã®ã¢ãã¬ã¹å€æãå¿
èŠã§ãïŒADTã¯ã¢ãã¬ã¹ã®ãªãã»ããã䜿çšããããïŒ 4ãã€ãïŒã

ããã«å€ãã®æ°åŠããããŸãããããã¬ã§èгå¯ããå Žåãããã¯æ¬¡ã®ããã«ãªããŸãã

æåã«é¢æ°ãèŠã€ããããADOãã¡ã€ã«ã®æåŸãžã®ãã€ã³ã¿ãŒããããšä»®å®ããŠãADTãã¡ã€ã«ã®æåŸã«å°éããŸããïŒæåŸã®RETNã®ãªãã»ããã¯0x253F4ã§ãïŒã ADTãªã¹ãã§ã¯ã0x453F4ãšããŠãªã¹ããããŠããŸãã ä»ã®ããŸããŸãªã¢ãã¬ã¹ãæ¢ããåŸã倿ã«2ã€ã®æå¹ãªãã€ãã䜿çšãããããããååã«åå²ããŠæåŸã«æ¿å
¥ããŠããããšã«æ°ä»ããŸããã
æªãã¯ãããŸããããADTãã¡ã€ã«ãçæã§ããããã«ãªããŸããïŒéã®æäœïŒééãã0x8000ã®ééã«å¿ããŠãæãéèŠãªãã®ãä¹ç®ããããšã«ããïŒã ãŸããäžè¬çãªãªãã³ãŒãã¹ããŒã ããããè¡ã®å Žæãããã£ãŠããŸãã åè§£ããåã«ãè³ãèŠãŠæåãå°œãããŸãããïŒç¿»èš³ãæåïŒã
ããŒã4ïŒCTTDTIã®çª
æ ŒçŽãããŠãããã©ãŒãããæååãšãADOãã¡ã€ã«ããããããèªã¿åãæ¹æ³ãç¥ã£ãŠããŸãã ãã¡ãããããããæ¿å
¥ãçŽãã«ã¯ãADTãªãã»ããã倿Žããå¿
èŠããããŸããããã¯ãæååã®ãµã€ãºãã¯ããã«å€§ãããªãå Žåãšå°ãããªãå Žåãããããã§ãã ãŸããADOè¡ãããã¹ããã¡ã€ã«ã«ã«ããããéåžžã«ç°¡åã«ç·šéã§ãããã®ã«ããããšãæ€èšããŠãã ãããããã¯å¥ã®ããã°ã©ã ãšèŠãªãããšãã§ããŸãã æ°ããADOãã¡ã€ã«ã«è¡ãç°¡åã«æ¿å
¥ãããªãã»ãããç°¡åã«å€æŽã§ãã圢åŒãäœæããŸãããã ããã«ã¯äœãå¿
èŠã§ããïŒ
ãã®ãããè¡ã®éå§äœçœ®ã®ãªãã»ãããå
ã®è¡ã®ãµã€ãºïŒãã€ãåäœïŒã次ã«è¡èªäœã次ã®ãããªãã®ã§ãã
0xE92 25 blahblahblah
cttd.pyãäœæããŸãã
''' CTD - Clocktower Text Dumper by rFx ''' import os,sys,struct,binascii f = open("CT_J.ADO","rb") data = f.read() f.close() g = open("ct_txt.txt","wb") for i in range(0,len(data)-1): if(data[i] == '\x33' and data[i+1] == '\xff'):
åŸã§æ°ãããã¡ã€ã«ãçæããããã«ãCT.ADOãCT_J.ADOã«åå倿ŽããŸããã
ãã®ããã°ã©ã ã¯ãADOãã¡ã€ã«ãèªã¿åãã0xFF33ãèŠã€ããŠ6ãã€ããã¹ããããïŒãªãã³ãŒããš2ã€ã®2ãã€ãå€ããã€ãã¹ããããïŒãæåã®è¡ãªãã»ãããè¡ã®é·ããããã³è¡èªäœãã¿ãåºåã圢åŒã§æžã蟌ã¿ãæ°ãããã¡ã€ã«ã§æ°ããè¡ã§çµãããŸãã
ãã¹ãŠã®å€0x0aïŒæ¹è¡ïŒã[NEWLINE]ã«çœ®ãæããŠããããšã«æ°ã¥ãã§ãããã ããã¯ãè¡å
šäœã1è¡ã§åŠçããããã¹ããã¡ã€ã«ã®åœ¢åŒã倿Žããã«æ°ããè¡ãå¿
èŠãªå Žæã«å®çŸ©ã§ããããã§ãã
楜ãã¿ã®ããã«ããã«ãªããšãããŸãããããã®ããã¹ãã翻蚳è
ã§è§£æããŸãã ããã¯ãGoogle翻蚳ã«ããŒã¿ãããŒãããèšèªãèªåçã«èªèãã翻蚳ããŠç®çã®èšèªã®ããã¹ããè¿ãPythonã¢ãžã¥ãŒã«ã§ãã
cttt.pyïŒ
ã€ã³ãžã§ã¯ã¿ãŒã§æ°è¡è©ŠããŠã¿ãŸããã-ãã®ããã±ãŒãžã®æåŸã®ããã°ã©ã ã¯ãããã¹ããã¡ã€ã«ãè§£æããè¡ã®ãã¹ãŠã®ASCIIæåã«ãŒãã远å ããèŸæžã«è¡ãèªã¿èŸŒãã§ãã©ã®ãªãã»ãããå«ãŸããŠãããã確èªããŸãã ããã«ãADOããŒãããåäœæãïŒADTãèªã¿åãããã¹ãŠã®ãã·ãŒã³ãããªãã»ãããšãšãã«é
åã«ããŒãããè¡éããã³ãã®åŸã®ãã¹ãŠã®ããŒã¿ãã³ããŒããŸãïŒãADOã®ãã·ãŒã³ãã®ãµã€ãºã«åºã¥ããŠADTãåçæããŸãã
ctti.pyïŒ
''' Clocktower Text Injector by rFx ''' import os,sys,struct,binascii def is_ascii(s): return all(ord(c) < 128 for c in s) def get_real_offset(offset):
ä»çµã¿ã確èªããŸãããã

ãããïŒ
幞ããªããšã«ãè±èªã¯Clocktowerãã¡ã³ãã©ãŒã©ã ã§ç¿»èš³ãããrtfãã¡ã€ã«ãèŠã€ãã倧ãŸããªç¿»èš³ã«åºã¥ããŠè¡ãæåã§ç·šéããããšãã§ããŸããã

ãã¹ãŠã翻蚳ãããæºåå®äºã§ãïŒ å®è¡ããŸãããïŒ

ãããŒïŒ
äœãåé¡ããããŸããIDAã«ãã¡ã€ã«ãããããããŠãäœãèµ·ãããèŠãŠã¿ãŸãããã


ADOãã¡ã€ã«ãã¡ã¢ãªã«èªã¿èŸŒãã§ããããã«èŠããŸããããã€ã³ã¿ã䜿çšããããšããŠããŸããããã®å Žæã«ã¯äœããªããã䜿çšã§ããŸããã

ããããæ§é äœa1ãšãããå®è¡ããmallocã芳å¯ããŸãããããã¯ããããåé¡ã§ãã ããå°ãæãäžããåŸããããã®ãã€ã³ã¿ãŒãããã§äœæãããŠããããšãããããŸãã

ã€ãŸããã²ãŒã ã¯ïŒcmp5ãªãã³ãŒãã«åºã¥ããŠïŒADO 5 * 0x8000ã®ãã©ã°ã¡ã³ãã«å¯ŸããŠã®ã¿ãã€ã³ã¿ãŒãäœæããŸãããEOFã®åã«ADOããŒã¿ãèªã¿åããŸãïŒããã¯ééãã§ãïŒã ãã®çµæã0x28000以äžã®ãµã€ãºã®ADOãã¡ã€ã«ãããŒãã§ããŸãã ç§ãã¡ãæ¢ããŸããïŒ ãã¡ããéããŸãïŒ ã¡ã¢ãªå
ã®SCEæ§é ã詳ããèŠãŠã¿ãŸããã...
ADOãã€ã³ã¿ãŒãèªã¿èŸŒããã¹ãŠã®ã±ãŒã¹ã5ãã6ã«å€æŽããŠå¥ã®ãã€ã³ã¿ãŒã远å ã§ããŸããããã®æåŸã®ãã€ã³ã¿ãŒã®åŸã«äœãèµ·ããã§ããããïŒ ãã¡ãããADTã·ãããéå§ãããŸã

ãªãã»ããADT 0x00ã¯struct_head + 0x2Aã«ããã0x7D0ã«ç§»åããŠããããšãããããŸã... 0x7D0ãžã®ãã€ã³ã¿ãŒ??? 0x8000ã®ããã«èŠããŸãã
ãã®çµæãADTãã¡ã€ã«ã«ã¯0x4800ãã€ããããããŸããã æåã®ADTã€ã³ããã¯ã¹ãããšãã°0x2Eã«äžãããšãå¥ã®ADOãã€ã³ã¿ãŒãæžã蟌ãããã«4åã®ãã€ããåŸãããæåŸã«ãŸã å€ãã®ç©ºãã¹ããŒã¹ããããšèšããŸã
0x2Aãžã®æ§é äœãªã³ã¯ãèŠã€ããŠã0x2Eã«å€æŽããŸã

ã¯ãïŒ ãªããžã§ã¯ãæåã®ãªããŒã¹ãšã³ãžãã¢ãªã³ã°ã倧奜ãã§ãã
çŽ æŽããããä»ã²ãŒã ã¯å®å
šã«ç¿»èš³ãããŠããŸãã æ¬¡ã¯ïŒ
16é²ãšãã£ã¿ã䜿çšããŠCT32.exeã«ãã€ããªå€æŽãå ããå¿
èŠããããŸãã
529B: 74 EB BC7B: 2A 2E BC8D: D0 CC BD35: 2A 2E BD62: 2A 2E D4DA: 2A 2E D4FC: 2A 2E DA58: 2A 2E DA79: 2A 2E 103DA: 2A 2E 10407: 2A 2E 104F8: 2A 2E 105BB: 2A 2E 105E8: 2A 2E 10703: 2A 2E 10730: 2A 2E 115FA: 2A 2E 116B2: 05 06 116E8: 05 06 11720: 2A 2E 11729: D0 CC 1195D: 05 06 1C50F: 20 00
Work for the Future-ããŒã5-SCEDASM-SCEéã¢ã»ã³ãã©ãŒ
次ã®è«çã¹ãããã¯ãä»ã®ãã¹ãŠã®ãªãã³ãŒããéã¢ã»ã³ãã«ããŠãã²ãŒã /ãšãã£ã¿ãŒã§èªã¿åãããããã¹ããã¡ã€ã«ãäœæããããšã§ãã
ãã®ãããªãã®ïŒ
''' Clocktower ADC Object File Disassembler by rFx ''' import os,sys,binascii,struct ADO_FILENAME = "CT_J.ADO" ADT_FILENAME = "CT_J.ADT" ADO_OP = { 0xFF00:"RETN",
ãã®åŸããã¡ãããããããã¹ãŠãADO / ADTãã¢ã«æ»ãå¿
èŠããããŸãã
Work for the Future-ããŒã6-PSXããŒãžã§ã³
ã²ãŒã ã®PSXããŒãžã§ã³ãADO / ADTã䜿çšããŸãã ãªãœãŒã¹ã倿ããPSXããPCããŒãžã§ã³ã«æä»çãªã³ã³ãã³ãã远å ã§ããããã§ãã