Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
ファミコンエミュレータを作った / Yeeh! PHP NES emulator's here!!
HASEGAWA Tomoki
October 31, 2018
Technology
1
240
ファミコンエミュレータを作った / Yeeh! PHP NES emulator's here!!
PHP勉強会@東京 #131 の発表資料です。
HASEGAWA Tomoki
October 31, 2018
Tweet
Share
More Decks by HASEGAWA Tomoki
See All by HASEGAWA Tomoki
tomzoh
1
1.3k
tomzoh
0
93
tomzoh
4
140
tomzoh
0
710
tomzoh
1
240
tomzoh
2
440
tomzoh
0
520
tomzoh
0
390
tomzoh
0
1.2k
Other Decks in Technology
See All in Technology
takem001
0
910
kappa4
4
2.4k
shimacos
2
350
satoryu
0
2.4k
clustervr
0
200
fujiihda
8
1.1k
koba789
0
150
cygames
1
410
yamasaki696
0
320
am7cinnamon
2
2.8k
shirayanagiryuji
0
2.2k
kakka
0
3.7k
Featured
See All Featured
maggiecrowley
8
430
thoeni
4
550
lemiorhan
626
42k
tanoku
86
8.5k
sferik
609
54k
lara
172
9.5k
nonsquared
81
3.3k
jacobian
255
20k
edds
56
9.3k
ufuk
56
5.4k
denniskardys
220
120k
michaelherold
225
8.5k
Transcript
୩ஐر ϑΝϛίϯΤϛϡϨʔλΛ࡞ͬͨ
୩ஐر !UPN[PI
୩ஐر !UPN[PI ΤϛϡϨʔλͷΛॻ͖·ͨ͠
ϥΠϑϫʔΫ ςοΫΧϯϑΝϨϯεӡӦࢀՃ 8FCJ04ΞϓϦ։ൃ Ϗʔϧ $16 ϨτϩήʔϜػ ిࢠ࡞
αοΧʔ؍ઓ ϨϯλϧΧʔτϨʔε ʜ σδλϧαʔΧεגࣜձࣾ ෭ஂ$50 !UPN[PI
None
None
8FC%FWFMPQNFOUXJUI 8&"3&)*3*/( IUUQXXXEHDJSDVTDPN 0NPUFTBOEP 5PLZP
ࠓͷςʔϚ
IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF/JOUFOEP'BNJDPN$POTPMF4FU'-QOH
ϑΝϛίϯΤϛϡϨʔλΛ࡞ͬͨ
ΤϛϡϨʔλ
QIQUFSNJOBMOFTFNVMBUPS
None
%FNP
IUUQTXXXIBTFHBXBUPNPLJDPNCMPHQIQUFSNJOBMOFTFNVMBUPS
͡Ίʹँࣙ
None
IUUQTCVJMEFSTDPOJPUPLZPTFTTJPOBBCDFECG
ײಈͱিಈ
ࣸܦ
ײँ
ͯ͞ຊ
͖ͬ͞ͷࣗݾհ
ϥΠϑϫʔΫ ςοΫΧϯϑΝϨϯεӡӦࢀՃ 8FCJ04ΞϓϦ։ൃ Ϗʔϧ $16 ϨτϩήʔϜػ ిࢠ࡞
αοΧʔ؍ઓ ϨϯλϧΧʔτϨʔε ʜ σδλϧαʔΧεגࣜձࣾ ෭ஂ$50 !UPN[PI
ϥΠϑϫʔΫ ςοΫΧϯϑΝϨϯεӡӦࢀՃ 8FCJ04ΞϓϦ։ൃ Ϗʔϧ $16 ϨτϩήʔϜػ ిࢠ࡞
αοΧʔ؍ઓ ϨϯλϧΧʔτϨʔε ʜ σδλϧαʔΧεגࣜձࣾ ෭ஂ$50 !UPN[PI
࣌ؒͰͤΔͱࢥ͏
ࠓ͕࣌ؒ
ΤϛϡϨʔλͷ໘ന͍ͱ͜Ζ ͘͝Ұ෦͝հ
ΤϛϡϨʔλͷ໘ന͍ͱ͜Ζ ͘͝Ұ෦͝հ Γͷ෦ʢ࠾͞ΕΕʣͲ͔͜ͷ 1)1ΧϯϑΝϨϯεPS࣍ճҎ߱ʹʜ
ϑΝϛίϯͷجૅࣝ
$16 ϑΝϛίϯͷϋʔυΣΞߏ
83". ,# $16 ϑΝϛίϯͷϋʔυΣΞߏ
83". ,# $16 ϑΝϛίϯͷϋʔυΣΞߏ ίϯτϩʔϥ
83". ,# $16 ϑΝϛίϯͷϋʔυΣΞߏ "16 ίϯτϩʔϥ
83". ,# $16 ϑΝϛίϯͷϋʔυΣΞߏ "16 αϯυ ίϯτϩʔϥ
83". ,# 116 $16 ϑΝϛίϯͷϋʔυΣΞߏ "16 αϯυ ίϯτϩʔϥ
83". ,# 116 $16 ϑΝϛίϯͷϋʔυΣΞߏ "16 αϯυ ը໘දࣔ ίϯτϩʔϥ
83". ,# 73". ,# 116 $16 ϑΝϛίϯͷϋʔυΣΞߏ "16 αϯυ ը໘දࣔ
ίϯτϩʔϥ
Χηοτ 83". ,# 73". ,# 116 $16 ϑΝϛίϯͷϋʔυΣΞߏ "16 αϯυ
ը໘දࣔ ίϯτϩʔϥ
ࠓ$16ͷ
31"& wϕʔεͷΧελϜ$16ʢϦίʔʣ w "16 %."#$%໋ྩ
31"& wϕʔεͷΧελϜ$16ʢϦίʔʣ w "16 %."#$%໋ྩ "QQMF** 1$Τϯδϯʜ
CJU$16
IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH
IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH σʔλόεCJU
IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH σʔλόεCJU YYGG
IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH σʔλόεCJU ΞυϨεόεCJU YYGG
IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH σʔλόεCJU ΞυϨεόεCJU YYGG YYGGGG ,#
ϝϞϦΞΫηε wʙ''''ͷΞυϨεΛࢦఆ wόΠτͷΛಡΈॻ͖ wରϝϞϦʢ30.3".ʣʹݶΒͳ͍
ϝϞϦϚοϓ
ϝϞϦϚοϓ YYGGGGͷ όΠτʹ Կ͕͋Δ͔
όοςϦʔόοΫΞοϓ3".,# ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ '''' ϫʔΫ3".,# *0ϙʔτ 116
*0ϙʔτ "16 FUD
Χηοτ
None
ըظతͩͬͨ
ઐ༻ήʔϜػͰͳ͘ ൚༻ήʔϜػ
None
༷ʑͳϝʔΧ͔Β ҆ՁʹήʔϜ͕ڙڅ
None
None
ϓϩάϥϜ30.
ϓϩάϥϜ30. $16όε
ϓϩάϥϜ30. $16όε ΩϟϥΫλ30.
ϓϩάϥϜ30. $16όε ΩϟϥΫλ30. 116όε
όοςϦʔόοΫΞοϓ3".,# ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ '''' ϫʔΫ3".,# *0ϙʔτ 116
*0ϙʔτ "16 FUD
ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ ''''
ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ '''' ϓϩάϥϜ30. $16όε ΩϟϥΫλ30. 116όε
ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ '''' ϓϩάϥϜ30. $16όε ΩϟϥΫλ30. 116όε
ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ ''''
ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ ''''
ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ ''''
ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ '''' ϓϩάϥϜ30.ͷ ΞυϨεϏοτͰ
දݱͰ͖Δ
ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ '''' ϓϩάϥϜ30.ͷ ΞυϨεϏοτͰ
දݱͰ͖Δ
ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ '''' ϓϩάϥϜ30.ͷ ΞυϨεϏοτͰ
දݱͰ͖Δ C JUT
$16ͱ wϓϩάϥϜ࣮ߦڥ wϝϞϦʢ30.3".ʣ͔Β໋ྩΛಡΈࠐΜͰ࣮ߦ͢Δ w໋ྩόΠτ wύϥϝλΛ໋࣋ͭྩ͋Δ wϨδελʢมʣΛ࣋ͭ
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
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
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
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
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
"-%"JNN
"-%"JNN w"Ϩδελʹ໋ྩͷ࣍ͷΛೖ͢Δ
"-%"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
"-%"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"ϨδελʹΛೖ͢Δ
%45"BCT
%45"BCT w"ϨδελͷΛ໋ྩͷ࣍ͷͰࢦఆͨ͠ ΞυϨεʹ֨ೲ͢Δ
%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
%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"ϨδελͷΛʹ֨ೲ͢Δ
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
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 "ϨδελʹΛೖ͢Δ
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 "ϨδελʹΛೖ͢Δ "ϨδελͷΛʹ֨ೲ͢Δ
ΤϛϡϨʔλͷ$16໋ྩ࣮
"-%"JNN w"Ϩδελʹ໋ྩͷ࣍ͷΛೖ͢Δ ˞ίʔυΛҰ෦มߋͯ͠؆ུԽ͍ͯ͠·͢ɻਖ਼͍͠ίʔυQIQUFSNJOBMOFTFNVMBUPSͷ$QVQIQΛ͝ཡ͍ͩ͘͞
"-%"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Λ͝ཡ͍ͩ͘͞
˞ίʔυΛҰ෦มߋͯ͠؆ུԽ͍ͯ͠·͢ɻਖ਼͍͠ίʔυQIQUFSNJOBMOFTFNVMBUPSͷ$QVQIQΛ͝ཡ͍ͩ͘͞ %45"BCT w"ϨδελͷΛ໋ྩͷ࣍ͷͰࢦఆͨ͠ ΞυϨεʹ֨ೲ͢Δ
˞ίʔυΛҰ෦มߋͯ͠؆ུԽ͍ͯ͠·͢ɻਖ਼͍͠ίʔυQIQUFSNJOBMOFTFNVMBUPSͷ$QVQIQΛ͝ཡ͍ͩ͘͞ %45"BCT w"ϨδελͷΛ໋ྩͷ࣍ͷͰࢦఆͨ͠ ΞυϨεʹ֨ೲ͢Δ case 'STA': $this->write( $this->fetch($this->registers->pc, "Word"), $this->registers->a);
break;
Ͳ͏ࢥ͍·͔͢ʁ͍͠ʁ
ΉͬͪΌ۪ͳίʔυ
$16ͷ໋ྩ࠷খ୯Ґ
$16ͷ໋ྩ࠷খ୯Ґ
$16ͷ໋ྩ࠷খ୯Ґ ͜͏͢Δ͔͠ͳ͍
໘ന͍Ͱ͢Ͷʂ
ͪͳΈʹʜ
QIQUFSNJOBMHBNFCPZFNVMBUPS
ήʔϜϘʔΠ
ήʔϜϘʔΠ #Z5SBOTGSPN+1&(WFSTJPOBOESFNPWFXIJUFCBDLHSPVOE0SJHJOBMCZ&WBO"NPT.FEJB(BNF#PZ'-KQH 1VCMJD%PNBJO IUUQTDPNNPOTXJLJNFEJBPSHXJOEFYQIQ DVSJE
ήʔϜϘʔΠ w;ϕʔεͷΧελϜ$16ʢγϟʔϓʣ
ήʔϜϘʔΠ w;ϕʔεͷΧελϜ$16ʢγϟʔϓʣ wΞυϨεόεCJUσʔλόεCJU ʢϑΝϛίϯͱಉ͡ʣ
/** * 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; }
/** * 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; } #$Ϩδελʹ໋ྩͷ࣍ͷΛ֨ೲ͢Δ
/** * Opcode #0x02. * LD (BC), A * @param
Core $core */ public static function opcode2(Core $core) { $core->memoryWrite( ($core->registerB << 8) + $core->registerC, $core->registerA); }
/** * Opcode #0x02. * LD (BC), A * @param
Core $core */ public static function opcode2(Core $core) { $core->memoryWrite( ($core->registerB << 8) + $core->registerC, $core->registerA); } #$ϨδελͷΞυϨεʹ"ϨδελͷΛ֨ೲ͢Δ
ಉ͡ʂ
$16ͷΤϛϡϨʔγϣϯ ͲΜͳ$16Ͱಉ͡ײ͡ʹͳΔ
·ͱΊ
·ͱΊ
wΤϛϡϨʔλͷίʔυܾ͍ͯ͠͠ͷͰͳ͍ ·ͱΊ
wΤϛϡϨʔλͷίʔυܾ͍ͯ͠͠ͷͰͳ͍ wϋʔυΣΞͷ༷Λιʔείʔυͱͯ͠දݱ )BSEXBSFTQFDJpDBUJPOBT$PEF ·ͱΊ
wΤϛϡϨʔλͷίʔυܾ͍ͯ͠͠ͷͰͳ͍ wϋʔυΣΞͷ༷Λιʔείʔυͱͯ͠දݱ )BSEXBSFTQFDJpDBUJPOBT$PEF w໘ന͍ͷͰΈΜͳಡΜͰΈͯʂͦͯ͠ॻ͍ͯΈͯʂ ࣸܦ͓͢͢Ίɻ ·ͱΊ
wΤϛϡϨʔλͷίʔυܾ͍ͯ͠͠ͷͰͳ͍ w$16Ҏ֎ฉ͖͔ͨͬͨΒ5XJUUFSʹQIQTUVEZΛ͚ͯ ʮͬͱฉ͖͍ͨʂʯͬͯπΠʔτ͓͍͍ͯͯͩ͘͠͞ʂ wϋʔυΣΞͷ༷Λιʔείʔυͱͯ͠දݱ )BSEXBSFTQFDJpDBUJPOBT$PEF w໘ന͍ͷͰΈΜͳಡΜͰΈͯʂͦͯ͠ॻ͍ͯΈͯʂ ࣸܦ͓͢͢Ίɻ ·ͱΊ
͓ΘΓ !UPN[PI
ࠂ
None
1)1FS,BJHJ 'SJ 4VO .BSEBZT εϙϯαʔืूதʂ IUUQTQIQFSLBJHJKQ
None
1)1ΧϯϑΝϨϯεઋ τʔΫืूத ʢຊʣ ·Ͱ ઋͰͱѲखʂ
༨ஊ
༨ஊ
খֶੜൿٕ ΧηοτࣼΊࠩ͠ ༨ஊ
খֶੜൿٕ ΧηοτࣼΊࠩ͠ ͬͪ͜Λු͔ͤΔͱ ىಈ͠ͳͦ͏ ༨ஊ
খֶੜൿٕ ΧηοτࣼΊࠩ͠ ͬͪ͜Λු͔ͤΔͱ ىಈ͠ͳͦ͏ ͬͪ͜Λු͔ͤΔͱΩϟϥ͕ յΕͨΓͯ͠໘ന͍ͷ͔ʁ ༨ஊ
31"& wϕʔεͷΧελϜ$16ʢϦίʔʣ w 116 %."#$%໋ྩ
CJU$16
IUUQTKBXJLJQFEJBPSHXJLJϑΝϛϦʔίϯϐϡʔλNFEJB'JMF31"&KQH σʔλόεCJU ΞυϨεόεCJU YYGG YYGGGG ,#
༨ஊ
༨ஊ
༨ஊ IUUQTKBXJLJQFEJBPSHXJLJ.$NFEJB'JMF.$1@+1(
༨ஊ IUUQTKBXJLJQFEJBPSHXJLJ.$NFEJB'JMF.$1@+1( σʔλ όεʷ σʔλόεʷ
༨ஊ IUUQTKBXJLJQFEJBPSHXJLJ.$NFEJB'JMF.$1@+1( σʔλ όεʷ σʔλόεʷ YYGGGG
༨ஊ IUUQTKBXJLJQFEJBPSHXJLJ.$NFEJB'JMF.$1@+1( σʔλ όεʷ σʔλόεʷ ΞυϨεόεʷ ΞυϨ εόε ʷ YYGGGG
༨ஊ IUUQTKBXJLJQFEJBPSHXJLJ.$NFEJB'JMF.$1@+1( σʔλ όεʷ σʔλόεʷ ΞυϨεόεʷ ΞυϨ εόε ʷ YYGGGG
YYGGGGGF .#
IUUQEPXOMPBEJOUFMDPNEFTJHOQFOUJVNEBUBTIUTQEG $$දࣔܧঝ IUUQTDPNNPOTXJLJNFEJBPSHXJOEFYQIQ DVSJE ༨ஊ
IUUQEPXOMPBEJOUFMDPNEFTJHOQFOUJVNEBUBTIUTQEG $$දࣔܧঝ IUUQTDPNNPOTXJLJNFEJBPSHXJOEFYQIQ DVSJE D0ʙD63 A3ʙA31 ༨ஊ
30.ٵ͍ग़͠ ༨ஊ
༨ஊ
༨ஊ
༨ஊ
όοςϦʔόοΫΞοϓ3".,# ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ '''' ϫʔΫ3".,# *0ϙʔτ 116
*0ϙʔτ "16 FUD
όοςϦʔόοΫΞοϓ3".,# ϓϩάϥϜ30.,# ϓϩάϥϜ30.,# $ '''' ϫʔΫ3".,# *0ϙʔτ 116
*0ϙʔτ "16 FUD ಡΈॻ͖͢Δ͜ͱͰपลσόΠεͱ ௨৴ *0 ͢Δ
%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"ϨδελͷΛʹ֨ೲ͢Δ
%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"ϨδελͷΛʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ
%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"ϨδελͷΛʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ ϦτϧΤϯσΟΞϯ
%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"ϨδελͷΛʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ ϦτϧΤϯσΟΞϯ ΨϦόʔཱྀߦه
%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"ϨδελͷΛʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ ϦτϧΤϯσΟΞϯ ΨϦόʔཱྀߦه फڭઓ૪
%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"ϨδελͷΛʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ ϦτϧΤϯσΟΞϯ ΨϦόʔཱྀߦه फڭઓ૪ όΠΤϯσΟΞϯ
%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"ϨδελͷΛʹ֨ೲ͢Δ ͕ͷܗͰ ֨ೲ͞Ε͍ͯΔ ϦτϧΤϯσΟΞϯ ΨϦόʔཱྀߦه फڭઓ૪ όΠΤϯσΟΞϯ ฏ͕๚Εͨ
͓ΘΓ !UPN[PI