ファミコンエミュレータを作った / Yeeh! PHP NES emulator's here!!

ファミコンエミュレータを作った / Yeeh! PHP NES emulator's here!!

PHP勉強会@東京 #131 の発表資料です。

40575ebf9c2f4a6e3bcb68630f446a3b?s=128

HASEGAWA Tomoki

October 31, 2018
Tweet

Transcript

  1. ௕୩઒ஐر ϑΝϛίϯΤϛϡϨʔλΛ࡞ͬͨ

  2. ௕୩઒ஐر !UPN[PI

  3. ௕୩઒ஐر !UPN[PI ΤϛϡϨʔλͷ࿩Λॻ͖·ͨ͠

  4. ϥΠϑϫʔΫ ςοΫΧϯϑΝϨϯεӡӦࢀՃ  8FCJ04ΞϓϦ։ൃ Ϗʔϧ  $16 ϨτϩήʔϜػ ిࢠ޻࡞ 


    αοΧʔ؍ઓ ϨϯλϧΧʔτϨʔε ʜ σδλϧαʔΧεגࣜձࣾ ෭ஂ௕$50 !UPN[PI
  5. None
  6. None
  7. 8FC%FWFMPQNFOUXJUI 8&"3&)*3*/( IUUQXXXEHDJSDVTDPN 0NPUFTBOEP 5PLZP

  8. ࠓ೔ͷςʔϚ

  9. IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF/JOUFOEP'BNJDPN$POTPMF4FU'-QOH

  10. ϑΝϛίϯΤϛϡϨʔλΛ࡞ͬͨ

  11. ΤϛϡϨʔλ

  12. QIQUFSNJOBMOFTFNVMBUPS

  13. None
  14. %FNP

  15. IUUQTXXXIBTFHBXBUPNPLJDPNCMPHQIQUFSNJOBMOFTFNVMBUPS

  16. ͸͡Ίʹँࣙ

  17. None
  18. IUUQTCVJMEFSTDPOJPUPLZPTFTTJPOBBCDFECG

  19. ײಈͱিಈ

  20. ࣸܦ

  21. ײँ

  22. ͯ͞ຊ୊

  23. ͖ͬ͞ͷࣗݾ঺հ

  24. ϥΠϑϫʔΫ ςοΫΧϯϑΝϨϯεӡӦࢀՃ  8FCJ04ΞϓϦ։ൃ Ϗʔϧ  $16 ϨτϩήʔϜػ ిࢠ޻࡞ 


    αοΧʔ؍ઓ ϨϯλϧΧʔτϨʔε ʜ σδλϧαʔΧεגࣜձࣾ ෭ஂ௕$50 !UPN[PI
  25. ϥΠϑϫʔΫ ςοΫΧϯϑΝϨϯεӡӦࢀՃ  8FCJ04ΞϓϦ։ൃ Ϗʔϧ  $16 ϨτϩήʔϜػ ిࢠ޻࡞ 


    αοΧʔ؍ઓ ϨϯλϧΧʔτϨʔε ʜ σδλϧαʔΧεגࣜձࣾ ෭ஂ௕$50 !UPN[PI
  26. ࣌ؒͰ΋࿩ͤΔͱࢥ͏

  27. ࠓ೔͸͕࣌ؒ෼

  28. ΤϛϡϨʔλͷ໘ന͍ͱ͜Ζ ͘͝Ұ෦͝঺հ

  29. ΤϛϡϨʔλͷ໘ന͍ͱ͜Ζ ͘͝Ұ෦͝঺հ ࢒Γͷ෦෼͸ʢ࠾୒͞ΕΕ͹ʣͲ͔͜ͷ
 1)1ΧϯϑΝϨϯεPS࣍ճҎ߱ʹʜ

  30. ϑΝϛίϯͷجૅ஌ࣝ

  31. $16 ϑΝϛίϯͷϋʔυ΢ΣΞߏ੒

  32. 83". ,# $16 ϑΝϛίϯͷϋʔυ΢ΣΞߏ੒

  33. 83". ,# $16 ϑΝϛίϯͷϋʔυ΢ΣΞߏ੒ ίϯτϩʔϥ

  34. 83". ,# $16 ϑΝϛίϯͷϋʔυ΢ΣΞߏ੒ "16 ίϯτϩʔϥ

  35. 83". ,# $16 ϑΝϛίϯͷϋʔυ΢ΣΞߏ੒ "16 α΢ϯυ ίϯτϩʔϥ

  36. 83". ,# 116 $16 ϑΝϛίϯͷϋʔυ΢ΣΞߏ੒ "16 α΢ϯυ ίϯτϩʔϥ

  37. 83". ,# 116 $16 ϑΝϛίϯͷϋʔυ΢ΣΞߏ੒ "16 α΢ϯυ ը໘දࣔ ίϯτϩʔϥ

  38. 83". ,# 73". ,# 116 $16 ϑΝϛίϯͷϋʔυ΢ΣΞߏ੒ "16 α΢ϯυ ը໘දࣔ

    ίϯτϩʔϥ
  39. Χηοτ 83". ,# 73". ,# 116 $16 ϑΝϛίϯͷϋʔυ΢ΣΞߏ੒ "16 α΢ϯυ

    ը໘දࣔ ίϯτϩʔϥ
  40. ࠓ೔͸$16ͷ࿩

  41. 31"& wϕʔεͷΧελϜ$16ʢϦίʔ੡ʣ w "16 %."#$%໋ྩ

  42. 31"& wϕʔεͷΧελϜ$16ʢϦίʔ੡ʣ w "16 %."#$%໋ྩ "QQMF** 1$Τϯδϯʜ

  43. CJU$16

  44. IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH

  45. IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH σʔλόεCJU

  46. IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH σʔλόεCJU YYGG

  47. IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH σʔλόεCJU ΞυϨεόεCJU YYGG

  48. IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH σʔλόεCJU ΞυϨεόεCJU YYGG YYGGGG ,#

  49. ϝϞϦΞΫηε wʙ''''ͷΞυϨεΛࢦఆ wόΠτͷ஋ΛಡΈॻ͖ wର৅͸ϝϞϦʢ30.3".ʣʹݶΒͳ͍

  50. ϝϞϦϚοϓ

  51. ϝϞϦϚοϓ YYGGGGͷ όΠτʹ
 Կ͕͋Δ͔

  52. όοςϦʔόοΫΞοϓ3".,# ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ '''' ϫʔΫ3".,# *0ϙʔτ 116

    *0ϙʔτ "16 FUD  
  53. Χηοτ

  54. None
  55. ըظతͩͬͨ

  56. ઐ༻ήʔϜػͰͳ͘ ൚༻ήʔϜػ

  57. None
  58. ༷ʑͳϝʔΧ͔Β ҆ՁʹήʔϜ͕ڙڅ

  59. None
  60. None
  61. ϓϩάϥϜ30.

  62. ϓϩάϥϜ30. $16όε

  63. ϓϩάϥϜ30. $16όε ΩϟϥΫλ30.

  64. ϓϩάϥϜ30. $16όε ΩϟϥΫλ30. 116όε

  65. όοςϦʔόοΫΞοϓ3".,# ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ '''' ϫʔΫ3".,# *0ϙʔτ 116

    *0ϙʔτ "16 FUD 
  66. ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ ''''

  67. ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ '''' ϓϩάϥϜ30. $16όε ΩϟϥΫλ30. 116όε

  68. ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ '''' ϓϩάϥϜ30. $16όε ΩϟϥΫλ30. 116όε

  69. ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ ''''

  70. ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ '''' 

  71. ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ ''''  

  72. ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ ''''   ϓϩάϥϜ30.ͷ
 ΞυϨε͸ϏοτͰ


    දݱͰ͖Δ
  73. ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ ''''   ϓϩάϥϜ30.ͷ
 ΞυϨε͸ϏοτͰ


    දݱͰ͖Δ
  74. ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ ''''   ϓϩάϥϜ30.ͷ
 ΞυϨε͸ϏοτͰ


    දݱͰ͖Δ   C JUT
  75. $16ͱ͸ wϓϩάϥϜ࣮ߦ؀ڥ wϝϞϦʢ30.3".ʣ͔Β໋ྩΛಡΈࠐΜͰ࣮ߦ͢Δ w໋ྩ͸όΠτ wύϥϝλΛ໋࣋ͭྩ΋͋Δ wϨδελʢม਺ʣΛ࣋ͭ

  76. 31"&ͷϓϩάϥϜ 78 D8 A9 10 8D 00 20 A2 FF

    9A AD 02 20 10 FB AD 02 20 10 FB A0 FE A2 05 BD D7 07 C9 0A B0 0C CA 10 F6 AD FF 07 C9 A5 D0 02 A0 D6 20 CC 90 8D 11 40 8D 70 07 A9 A5 8D FF 07 8D A7 07 A9 0F 8D 15 $8000 $8010 $8020 $8030 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  77. 31"&ͷϓϩάϥϜ 78 D8 A9 10 8D 00 20 A2 FF

    9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  78. 31"&ͷϓϩάϥϜ 78 D8 A9 10 8D 00 20 A2 FF

    9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  79. 31"&ͷϓϩάϥϜ 78 D8 A9 10 8D 00 20 A2 FF

    9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  80. 31"&ͷϓϩάϥϜ $78 $D8 $A9 $10 $8D $00 $20 $A2 $ff

    $9A $8000 $8001 $8002 $8004 $8007 $8009 SEI CLD LDA #imm STA abs LDX #imm TXS 78 D8 A9 10 8D 00 20 A2 FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  81. "-%"JNN

  82. "-%"JNN w"Ϩδελʹ໋ྩͷ࣍ͷ஋Λ୅ೖ͢Δ

  83. "-%"JNN w"Ϩδελʹ໋ྩͷ࣍ͷ஋Λ୅ೖ͢Δ 78 D8 A9 10 8D 00 20 A2

    FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  84. "-%"JNN w"Ϩδελʹ໋ྩͷ࣍ͷ஋Λ୅ೖ͢Δ 78 D8 A9 10 8D 00 20 A2

    FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F w"ϨδελʹΛ୅ೖ͢Δ
  85. %45"BCT

  86. %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ

  87. %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ 78 D8 A9 10 8D 00 20

    A2 FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  88. %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ 78 D8 A9 10 8D 00 20

    A2 FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F w"Ϩδελͷ஋Λʹ֨ೲ͢Δ
  89. 31"&ͷϓϩάϥϜ $78 $D8 $A9 $10 $8D $00 $20 $A2 $ff

    $9A $8000 $8001 $8002 $8004 $8007 $8009 SEI CLD LDA #imm STA abs LDX #imm TXS
  90. 31"&ͷϓϩάϥϜ $78 $D8 $A9 $10 $8D $00 $20 $A2 $ff

    $9A $8000 $8001 $8002 $8004 $8007 $8009 SEI CLD LDA #imm STA abs LDX #imm TXS "ϨδελʹΛ୅ೖ͢Δ
  91. 31"&ͷϓϩάϥϜ $78 $D8 $A9 $10 $8D $00 $20 $A2 $ff

    $9A $8000 $8001 $8002 $8004 $8007 $8009 SEI CLD LDA #imm STA abs LDX #imm TXS "ϨδελʹΛ୅ೖ͢Δ "Ϩδελͷ஋Λʹ֨ೲ͢Δ
  92. ΤϛϡϨʔλͷ$16໋ྩ࣮૷

  93. "-%"JNN w"Ϩδελʹ໋ྩͷ࣍ͷ஋Λ୅ೖ͢Δ ˞ίʔυΛҰ෦มߋͯ͠؆ུԽ͍ͯ͠·͢ɻਖ਼͍͠ίʔυ͸QIQUFSNJOBMOFTFNVMBUPSͷ$QVQIQΛ͝ཡ͍ͩ͘͞

  94. "-%"JNN w"Ϩδελʹ໋ྩͷ࣍ͷ஋Λ୅ೖ͢Δ case 'LDA': $this->registers->a = $this->fetch($this->registers->pc); $this->registers->p->negative = !!($this->registers->a

    & 0x80); $this->registers->p->zero = !$this->registers->a; break; ˞ίʔυΛҰ෦มߋͯ͠؆ུԽ͍ͯ͠·͢ɻਖ਼͍͠ίʔυ͸QIQUFSNJOBMOFTFNVMBUPSͷ$QVQIQΛ͝ཡ͍ͩ͘͞
  95. ˞ίʔυΛҰ෦มߋͯ͠؆ུԽ͍ͯ͠·͢ɻਖ਼͍͠ίʔυ͸QIQUFSNJOBMOFTFNVMBUPSͷ$QVQIQΛ͝ཡ͍ͩ͘͞ %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ

  96. ˞ίʔυΛҰ෦มߋͯ͠؆ུԽ͍ͯ͠·͢ɻਖ਼͍͠ίʔυ͸QIQUFSNJOBMOFTFNVMBUPSͷ$QVQIQΛ͝ཡ͍ͩ͘͞ %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ case 'STA': $this->write( $this->fetch($this->registers->pc, "Word"), $this->registers->a);

    break;
  97. Ͳ͏ࢥ͍·͔͢ʁ೉͍͠ʁ

  98. ΉͬͪΌ۪௚ͳίʔυ

  99. $16ͷ໋ྩ࠷খ୯Ґ

  100. $16ͷ໋ྩ࠷খ୯Ґ

  101. $16ͷ໋ྩ࠷খ୯Ґ ͜͏͢Δ͔͠ͳ͍

  102. ໘ന͍Ͱ͢Ͷʂ

  103. ͪͳΈʹʜ

  104. QIQUFSNJOBMHBNFCPZFNVMBUPS

  105. ήʔϜϘʔΠ

  106. ήʔϜϘʔΠ #Z5SBOTGSPN+1&(WFSTJPOBOESFNPWFXIJUFCBDLHSPVOE0SJHJOBMCZ&WBO"NPT.FEJB(BNF#PZ'-KQH  1VCMJD%PNBJO IUUQTDPNNPOTXJLJNFEJBPSHXJOEFYQIQ DVSJE

  107. ήʔϜϘʔΠ w;ϕʔεͷΧελϜ$16ʢγϟʔϓ੡ʣ

  108. ήʔϜϘʔΠ w;ϕʔεͷΧελϜ$16ʢγϟʔϓ੡ʣ wΞυϨεόεCJUσʔλόεCJU
 ʢϑΝϛίϯͱಉ͡ʣ

  109. /** * Opcode #0x01. * LD BC, nn * @param

    Core $core */ public static function opcode1(Core $core) { $core->registerC = $core->memoryRead($core->programCounter); $core->registerB = $core->memoryRead(($core->programCounter + 1) & 0xFFFF); $core->programCounter = ($core->programCounter + 2) & 0xFFFF; }
  110. /** * Opcode #0x01. * LD BC, nn * @param

    Core $core */ public static function opcode1(Core $core) { $core->registerC = $core->memoryRead($core->programCounter); $core->registerB = $core->memoryRead(($core->programCounter + 1) & 0xFFFF); $core->programCounter = ($core->programCounter + 2) & 0xFFFF; } #$Ϩδελʹ໋ྩͷ࣍ͷ஋Λ֨ೲ͢Δ
  111. /** * Opcode #0x02. * LD (BC), A * @param

    Core $core */ public static function opcode2(Core $core) { $core->memoryWrite( ($core->registerB << 8) + $core->registerC, $core->registerA); }
  112. /** * Opcode #0x02. * LD (BC), A * @param

    Core $core */ public static function opcode2(Core $core) { $core->memoryWrite( ($core->registerB << 8) + $core->registerC, $core->registerA); } #$ϨδελͷΞυϨεʹ"Ϩδελͷ஋Λ֨ೲ͢Δ
  113. ಉ͡ʂ

  114. $16ͷΤϛϡϨʔγϣϯ͸
 ͲΜͳ$16Ͱ΋ಉ͡ײ͡ʹͳΔ

  115. ·ͱΊ

  116. ·ͱΊ

  117. wΤϛϡϨʔλͷίʔυ͸ܾͯ͠೉͍͠΋ͷͰ͸ͳ͍ ·ͱΊ

  118. wΤϛϡϨʔλͷίʔυ͸ܾͯ͠೉͍͠΋ͷͰ͸ͳ͍ wϋʔυ΢ΣΞͷ࢓༷Λιʔείʔυͱͯ͠දݱ
 )BSEXBSFTQFDJpDBUJPOBT$PEF ·ͱΊ

  119. wΤϛϡϨʔλͷίʔυ͸ܾͯ͠೉͍͠΋ͷͰ͸ͳ͍ wϋʔυ΢ΣΞͷ࢓༷Λιʔείʔυͱͯ͠දݱ
 )BSEXBSFTQFDJpDBUJPOBT$PEF w໘ന͍ͷͰΈΜͳ΋ಡΜͰΈͯʂͦͯ͠ॻ͍ͯΈͯʂ
 ࣸܦ͓͢͢Ίɻ ·ͱΊ

  120. wΤϛϡϨʔλͷίʔυ͸ܾͯ͠೉͍͠΋ͷͰ͸ͳ͍ w$16Ҏ֎΋ฉ͖͔ͨͬͨΒ5XJUUFSʹQIQTUVEZΛ෇͚ͯ ʮ΋ͬͱฉ͖͍ͨʂʯͬͯπΠʔτ͓͍͍ͯͯͩ͘͠͞ʂ wϋʔυ΢ΣΞͷ࢓༷Λιʔείʔυͱͯ͠දݱ
 )BSEXBSFTQFDJpDBUJPOBT$PEF w໘ന͍ͷͰΈΜͳ΋ಡΜͰΈͯʂͦͯ͠ॻ͍ͯΈͯʂ
 ࣸܦ͓͢͢Ίɻ ·ͱΊ

  121. ͓ΘΓ !UPN[PI

  122. ࠂ஌

  123. None
  124. 1)1FS,BJHJ 'SJ 4VO .BSEBZT εϙϯαʔืूதʂ IUUQTQIQFSLBJHJKQ

  125. None
  126. 1)1ΧϯϑΝϨϯεઋ୆ τʔΫืूத ʢຊ೔ʣ ·Ͱ ઋ୆Ͱ๻ͱѲखʂ

  127. ༨ஊ

  128. ༨ஊ

  129. খֶੜൿٕ ΧηοτࣼΊࠩ͠ ༨ஊ

  130. খֶੜൿٕ ΧηοτࣼΊࠩ͠ ͬͪ͜Λු͔ͤΔͱ
 ىಈ͠ͳͦ͏ ༨ஊ

  131. খֶੜൿٕ ΧηοτࣼΊࠩ͠ ͬͪ͜Λු͔ͤΔͱ
 ىಈ͠ͳͦ͏ ͬͪ͜Λු͔ͤΔͱΩϟϥ͕
 յΕͨΓͯ͠໘ന͍ͷ͔΋ʁ ༨ஊ

  132. 31"& wϕʔεͷΧελϜ$16ʢϦίʔ੡ʣ w 116 %."#$%໋ྩ

  133. CJU$16

  134. IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH σʔλόεCJU ΞυϨεόεCJU YYGG YYGGGG ,#

  135. ༨ஊ

  136. ༨ஊ

  137. ༨ஊ IUUQTKBXJLJQFEJBPSHXJLJ.$NFEJB'JMF.$1@+1(

  138. ༨ஊ IUUQTKBXJLJQFEJBPSHXJLJ.$NFEJB'JMF.$1@+1( σʔλ
 όεʷ σʔλόεʷ

  139. ༨ஊ IUUQTKBXJLJQFEJBPSHXJLJ.$NFEJB'JMF.$1@+1( σʔλ
 όεʷ σʔλόεʷ YYGGGG

  140. ༨ஊ IUUQTKBXJLJQFEJBPSHXJLJ.$NFEJB'JMF.$1@+1( σʔλ
 όεʷ σʔλόεʷ ΞυϨεόεʷ ΞυϨ εόε ʷ YYGGGG

  141. ༨ஊ IUUQTKBXJLJQFEJBPSHXJLJ.$NFEJB'JMF.$1@+1( σʔλ
 όεʷ σʔλόεʷ ΞυϨεόεʷ ΞυϨ εόε ʷ YYGGGG

    YYGGGGGF .#
  142. IUUQEPXOMPBEJOUFMDPNEFTJHOQFOUJVNEBUBTIUTQEG $$දࣔܧঝ IUUQTDPNNPOTXJLJNFEJBPSHXJOEFYQIQ DVSJE ༨ஊ

  143. IUUQEPXOMPBEJOUFMDPNEFTJHOQFOUJVNEBUBTIUTQEG $$දࣔܧঝ IUUQTDPNNPOTXJLJNFEJBPSHXJOEFYQIQ DVSJE D0ʙD63 A3ʙA31 ༨ஊ

  144. 30.ٵ͍ग़͠ ༨ஊ

  145. ༨ஊ

  146. ༨ஊ

  147. ༨ஊ

  148. όοςϦʔόοΫΞοϓ3".,# ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ '''' ϫʔΫ3".,# *0ϙʔτ 116

    *0ϙʔτ "16 FUD 
  149. όοςϦʔόοΫΞοϓ3".,# ϓϩάϥϜ30.,# ϓϩάϥϜ30.,#   $ '''' ϫʔΫ3".,# *0ϙʔτ 116

    *0ϙʔτ "16 FUD  ಡΈॻ͖͢Δ͜ͱͰपลσόΠεͱ
 ௨৴ *0 ͢Δ
  150. %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ 78 D8 A9 10 8D 00 20

    A2 FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F w"Ϩδελͷ஋Λʹ֨ೲ͢Δ
  151. %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ 78 D8 A9 10 8D 00 20

    A2 FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F w"Ϩδελͷ஋Λʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ
  152. %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ 78 D8 A9 10 8D 00 20

    A2 FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F w"Ϩδελͷ஋Λʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ ϦτϧΤϯσΟΞϯ
  153. %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ 78 D8 A9 10 8D 00 20

    A2 FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F w"Ϩδελͷ஋Λʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ ϦτϧΤϯσΟΞϯ ΨϦόʔཱྀߦه
  154. %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ 78 D8 A9 10 8D 00 20

    A2 FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F w"Ϩδελͷ஋Λʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ ϦτϧΤϯσΟΞϯ ΨϦόʔཱྀߦه फڭઓ૪
  155. %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ 78 D8 A9 10 8D 00 20

    A2 FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F w"Ϩδελͷ஋Λʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ ϦτϧΤϯσΟΞϯ ΨϦόʔཱྀߦه फڭઓ૪ όΠΤϯσΟΞϯ
  156. %45"BCT w"Ϩδελͷ஋Λ໋ྩͷ࣍ͷ஋Ͱࢦఆͨ͠
 ΞυϨεʹ֨ೲ͢Δ 78 D8 A9 10 8D 00 20

    A2 FF 9A AD 02 20 10 FB AD $8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F w"Ϩδελͷ஋Λʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ ϦτϧΤϯσΟΞϯ ΨϦόʔཱྀߦه फڭઓ૪ όΠΤϯσΟΞϯ ฏ࿨͕๚Εͨ
  157. ͓ΘΓ !UPN[PI