
рдкрд┐рдЫрд▓реА рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ, рдореИрдВрдиреЗ GameCube рдХреЗ рд▓рд┐рдП рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдПрдирд┐рдорд▓ рдХреНрд░реЙрд╕рд┐рдВрдЧ рд╢реБрд░реВ рдХреАред рдореИрдВ рдЗрд╕ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдореЙрдб рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рддрд▓рд╛рд╢рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рд░реЛрдорд┐рдВрдЧ рдФрд░ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВ рдбреЗрд╡рд▓рдкрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдЦреЗрд▓ рдореЗрдВ рдмрдиреЗ рд░рд╣реЗ, рдФрд░ рдпрд╣ рднреА рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдореИрдВрдиреЗ рдзреЛрдЦрд╛ рдХреЙрдореНрдмреЛрд╕ рдХреА рдЦреЛрдЬ рдХреА, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдиреНрд╣реЗрдВ рдЕрдирд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
new_Debug_mode
рд╢реЗрд╖ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рддреАрдХреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ "рдбрд┐рдмрдЧ" рд╢рдмреНрдж рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЪрд░ рдХреЗ рдирд╛рдореЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛, рдФрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рджреЗрдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЦреЗрд▓ рдореЗрдВ рдмрдиреА рд╣реБрдИ рд╣реИред рдпрджрд┐ рдореИрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдпрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдореЙрдбреНрд╕ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред
рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдп рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛, рд╡рд╣ рдерд╛
new_Debug_mode
ред рдЗрд╕реЗ
entry
рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдирд┐рдиреНрдЯреЗрдВрдбреЛ рд▓реЛрдЧреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдЦрддреНрдо рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рд╡рд╣ рд╕рдм рдХрд░рддреА рд╣реИ
0x1C94
рдмрд╛рдЗрдЯ рд╕рдВрд░рдЪрдирд╛
0x1C94
рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдХреЛ рдмрдЪрд╛рддреА рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдореБрдЦреНрдп рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдСрдлрд╕реЗрдЯ
0xD4
рдкрд░ рд╣реЛрд╕реНрдЯреЗрдб рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ
entry
рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
mainproc
рдорд╛рди 0 рд╕реЗрдЯ рд╣реИред
рдорд╛рди рд╢реВрдиреНрдп рди рд╣реЛрдиреЗ рдкрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
li r0, 0
рдирд┐рд░реНрджреЗрд╢ рдХреЛ
80407C8C
рдкрд░
80407C8C
, рдЗрд╕реЗ
li r0, 1
ред
li r0, 0
рдХреА рдХрдЪреНрдЪреА рдмрд╛рдЗрдЯреНрд╕
li r0, 0
рдирд┐рд░реНрджреЗрд╢
38 00 00 00
рдЬрд╣рд╛рдВ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореВрд▓реНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд┐рд░реНрдл
38 00 00 01
рд╕рд╛рде рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░
li r0, 1
рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк
kstool
рдЬреИрд╕реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ kstool ppc32be "li 0, 1"
li 0, 1 = [ 38 00 00 01 ]
рдбреЙрд▓реНрдлрд┐рди рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ, рдЗрд╕ рдкреИрдЪ рдХреЛ рдЦреЗрд▓ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ "рдкреИрдЪ" рдЯреИрдм рдкрд░ рдЬрд╛рдХрд░ рдФрд░ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдорд╛рди 1 рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░реАрди рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЧреНрд░рд╛рдл рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛:
рдпрд╣ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдХреЗрддрдХ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛: рд╕реНрдХреНрд░реАрди рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЫреЛрдЯреА рдкрдЯреНрдЯрд┐рдпрд╛рдБ рдпрд╛ рддреЛ рдмрдврд╝ рдЧрдИрдВ рдпрд╛ рдХрдо рд╣реЛ рдЧрдИрдВред (рдмрд╛рдж рдореЗрдВ, рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдЧреНрд░рд╛рдл рдХреЛ рдЦреАрдВрдЪрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рджреЗрдЦрд╛, рддреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реАрдкреАрдпреВ рдФрд░ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред)
рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдерд╛ред рдорд╛рди 1 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореЗрд░реЗ рд╢рд╣рд░ рдиреЗ рд▓реЛрдб рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред
рдЬрд░реВ рдореЛрдб
рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдиреНрдп рд╕рдВрджрд░реНрднреЛрдВ рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХрд░ рджреА, рдФрд░ рдХрдИ рдмрд╛рд░ "рдЬрд╝реБрд░реВ рдореЛрдб" рдирд╛рдордХ рдХреБрдЫ рдХреЗ рдкрд╛рд░ рдЖрдпрд╛ред рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реЗ рдХреЛрдб рдмреНрд▓реЙрдХреЛрдВ рдХреА рд╢рд╛рдЦрд╛рдУрдВ рдиреЗ рдЕрдХреНрд╕рд░
zurumode_flag
рдЪрд░ рдХреА рдЬрд╛рдВрдЪ рдХреАред
zzz_LotsOfDebug
(рдирд╛рдо рдореИрдВ рдЦреБрдж рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛) рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП
game_move_first
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреЗрд╡рд▓ рддрднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм
zurumode_flag
рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рдореВрд▓реНрдп рд╕реЗ рдЬреБрдбрд╝реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рдореБрдЭреЗ рдпреЗ рдорд┐рд▓реЗ:
zurumode_init
zurumode_callback
zurumode_update
zurumode_cleanup
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд░рд╣рд╕реНрдпрдордп рд╣реИ, рд╡реЗ
osAppNMIBuffer
рдирд╛рдордХ рдПрдХ рдЪрд░ рдХреЗ
osAppNMIBuffer
рдореЗрдВ рдмрд┐рдЯреНрд╕ рдХреЛ
osAppNMIBuffer
ред
рдпрд╣рд╛рдБ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдХрд╛рдо рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдХреИрд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:
zurumode_init
zurumode_flag
рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИosAppNMIBuffer
рдореЗрдВ рдХрдИ рдмрд┐рдЯреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИpadmgr
рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ zurumode_callback
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рдмрдЪрд╛рддрд╛ рд╣реИ- рдХреЙрд▓
zurumode_update
zurumode_update
osAppNMIBuffer
рдореЗрдВ рдХрдИ рдмрд┐рдЯреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ- рдЗрди рдмрд┐рдЯреНрд╕ рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░,
zurumode_flag
рдЕрдкрдбреЗрдЯ - OS рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдХреЛрдб рдХреЛ рд╕рдВрджрд░реНрдн рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд╛рдЗрди рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЧреИрд░-рдореБрджреНрд░рдг рдпреЛрдЧреНрдп рд╡рд░реНрдг рдереЗред рдХреЗрд╡рд▓ рдкрд╣рдЪрд╛рдирдиреЗ рдпреЛрдЧреНрдп рдкрд╛рда "рдЬрд╝реБрд░реВрдореЛрдбреЗрдлреНрд▓реИрдЧ" рдФрд░ "% рдбреА" рдерд╛ред

рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдорд▓реНрдЯреАрдмреАрдЯ рдХреИрд░реЗрдХреНрдЯрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд╛рд▓рд╛ рдЬрд╛рдкрд╛рдиреА рдЯреЗрдХреНрд╕реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд░рд┐рдХрдЧреНрдирд┐рд╢рди рдЯреВрд▓ рд╕реЗ рдЧреБрдЬрд╛рд░рд╛ рдФрд░ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд┐рдлреНрдЯ-рдЬреЗрдЖрдИрдПрд╕ рдХреЗ рд╕рд╛рде рдПрдирдХреЛрдбреЗрдб рдереАред рдЕрдиреБрд╡рд╛рдж рдореЗрдВ, рд▓рд╛рдЗрди рдХрд╛ рд╕реАрдзрд╛ рдорддрд▓рдм рдерд╛ "zurumode_flag рдХрд╛ рдорд╛рди% d рд╕реЗ% d рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред" рдпрд╣ рд╣рдореЗрдВ рдмрд╣реБрдд рдирдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ Shift-JIS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдкрдВрдХреНрддрд┐ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЗрд╕ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВред
zurumode_callback
- рдХреЙрд▓
zerumode_check_keycheck
osAppNMIBuffer
рдореЗрдВ рдХрдИ рдмрд┐рдЯреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИzurumode_flag
рдорд╛рди zurumode_flag
- рдХреЙрд▓
zurumode_update
zerumode_check_keycheck
рдЬрдм рддрдХ рд╣рдо рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрддрдиреА рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рдорд┐рд▓реЗ рдереЗ ... рдпрд╣ рдХреНрдпрд╛ рд╣реИ?
рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдЬрдЯрд┐рд▓ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдЕрдирд╛рдо рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрд┐рдЯреНрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВрдиреЗ рдПрдХ рдХрджрдо рдкреАрдЫреЗ рд╣рдЯрдиреЗ рдФрд░ рдЕрдиреНрдп рдбрд┐рдмрдЧрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЪрд░ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЬрд╝реБрдЖрд░ рдореЛрдб рдХреЗ рдорд╣рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ "рдХреБрдВрдЬреА рдЬрд╛рдБрдЪ" рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдХреБрдВрдЬреА рд╣реИ?
рд╡рд╛рдкрд╕ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП
рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ рдЖрдИрдбреАрдП рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреАред рдЧреЗрдо рдХреА рдбрд┐рд╕реНрдХ рдкрд░
foresta.map
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рдкрддреЗ рдФрд░ рдХрд╛рд░реНрдп рдФрд░ рдЪрд░ рдХреЗ рдирд╛рдо рд╣реЛрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрднрд╛рдЧ рдХреЗ рдкрддреЗ рдлрд┐рд░ рд╕реЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЛрдбрд┐рдВрдЧ рд╕рд┐рдВрдмрд▓ рдЯреЗрдмрд▓ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдИ рдЖрдИрдбреАрдП рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд▓рд┐рдЦреА рд╣реИрдВ:
.rodata
,
.rodata
,
.bss
рдФрд░
.bss
.text
рд╕реЗрдХреНрд╢рди рдореЗрдВ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рддрд╛рдХрд┐ рдЬрдм рдореИрдВ рдирд╛рдо рд╕реЗрдЯ рдХрд░реВрдВ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рддреНрдпреЗрдХ рдкрддреЗ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд╣рдЪрд╛рди рд▓реЗред
рдбреЗрдЯрд╛ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдирд░реА рдСрдмреНрдЬреЗрдХреНрдЯ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
m_debug.o
, рдЬрд┐рд╕реЗ
m_debug
рдирд╛рдордХ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛) рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрдВрдб рдмрдирд╛рдпрд╛, рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдФрд░ рдирд╛рдо рд╕реЗрдЯ рдХрд┐рдПред
рдЗрд╕рдиреЗ рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рджреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред (рдкреАрдЫреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ 4 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ 32-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреНрд░реЙрд╕-рд░реЗрдлрд░реЗрдВрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрдИ рдФрд░ рдХрдИ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рдкрддреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдереЗред)
.bss
рд▓рд┐рдП рдирдП
.bss
рд╕реЗрдЧрдореЗрдВрдЯ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ
m_debug_mode.o
, рдореБрдЭреЗ рдлрд╝реЙрд░реНрдо рдХреЗ рдХрдИ рд╡реИрд░рд┐рдПрдмрд▓ рдорд┐рд▓ рдЧрдП
quest_draw_status
рдФрд░
event_status
ред рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рддрд╛ рдерд╛, рди рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдЧреНрд░рд╛рдл, рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрди рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдбреНрд╕ рд╕реЗ
debug_print_flg
рдЪреЗрдХ рдХреЛрдб рдХреЗ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдХреНрд░реЙрд╕-рд░реЗрдлрд░реЗрдВрд╕
debug_print_flg
ред
рдбреЙрд▓реНрдлрд┐рди рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдПрдХ рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╣рд╛рдВ
debug_print_flg
рдЬрд╛рдБрдЪ рдХреА рдЧрдИ (
8039816C
) рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдЪреЗрдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрднреА рднреА рдЗрд╕ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░рд╛ред
рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ рдЗрд╕рдХреА
game_debug_draw_last
: рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ
game_debug_draw_last
рджреНрд╡рд╛рд░рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рд╕рд╢рд░реНрдд рдХреЙрд▓ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕ рдореВрд▓реНрдп рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ?
zurumode_flag
! рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ?
рдореИрдВрдиреЗ рдЗрд╕ рдЪреЗрдХ (
80404E18
) рдкрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕рдиреЗ рддреБрд░рдВрдд рдХрд╛рдо рдХрд┐рдпрд╛ред
zurumode_flag
рдХрд╛ рдорд╛рди рд╢реВрдиреНрдп рдерд╛, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдЪреВрдХ рдЬрд╛рддрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдПрдирдУрдкреА рд╢рд╛рдЦрд╛ рдирд┐рд░реНрджреЗрд╢ рдбрд╛рд▓рд╛ (рдЗрд╕реЗ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ) рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбреЙрд▓реНрдлрд┐рди рдбреАрдмрдЧрд░ рдореЗрдВ, рдпрд╣ рдЦреЗрд▓ рдХреЛ рд░реЛрдХрдХрд░, рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдФрд░ "рдПрдирдУрдкреА рдПрдирдУрдкреА" рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдХреБрдЫ рдирд╣реАрдВ рд╣реБрдЖред рддрдм рдореИрдВрдиреЗ рдЬрд╛рдБрдЪ рдХреА рдХрд┐ рдлрдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рдерд╛ рдФрд░ рдПрдХ рдФрд░ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХреА рдЦреЛрдЬ рдХреА,
803981a8
рдкрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣рд░
803981a8
рдХреЛ
803981a8
ред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдирдУрдкреА рдбрд╛рд▓рд╛, рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ "рдбреА" рдЕрдХреНрд╖рд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред
рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ
8039816C
(рдореИрдВрдиреЗ рдЗрд╕реЗ
zzz_DebugDrawPrint
рдХрд╣рд╛ рд╣реИ), рдЕрднреА рднреА рджрд┐рд▓рдЪрд╕реНрдк рдХреЛрдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмреНрд▓реЙрдХ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ:
рдХрдИ рдЕрдиреНрдп рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрдЬрд╛рдп рдПрдирдУрдкреА рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд╕реНрдХреНрд░реАрди рдкрд░ рд╡рд┐рднрд┐рдиреНрди рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреАрдВ:
рдЕрдЧрд▓рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рдерд╛ рдХрд┐ рдХреЛрдб рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдЗрд╕ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХреИрд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рд╢рд╛рдЦрд╛ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдореЗрдВ,
zurumode_flag
рдЗрд╕ рдбрд┐рдмрдЧ рдбреНрд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдФрд░ рдкреИрдЪ рдЬреЛрдбрд╝рд╛ рддрд╛рдХрд┐
zurumode_update
рдзреНрд╡рдЬ
zurumode_flag
рд╣рдореЗрд╢рд╛ рдорд╛рди 2 рд╕реМрдВрдкрд╛ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдпрд╣ 0 рд╕реЗ рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╛рди 2 рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред
рдЦреЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рджрд╛рд╣рд┐рдиреЗ рдХреЛрдиреЗ рдореЗрдВ рдРрд╕рд╛ рд╕рдВрджреЗрд╢ рджреЗрдЦрд╛ "рд╕рдВрджреЗрд╢ред рдирд╣реАрдВред "
рдирдВрдмрд░ 687 рд╕рдмрд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕рдВрджреЗрд╢ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЯреЗрдмрд▓ рд╡реНрдпреВрдЕрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪреЗрдХ рдХрд┐рдпрд╛ рдерд╛ рдЬреЛ рдореИрдВрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ
рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдкреВрд░реНрдг GUI рдХреЗ рд╕рд╛рде рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд░реЛрдорд┐рдВрдЧ рд╣реИрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдерд╛ред рдпрд╣рд╛рдБ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдЬрд╝реБрд░реБ рдореЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдЕрдм рджреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдпрд╣ рд╕реАрдзреЗ рдЧреЗрдо рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рдлрд┐рд░ рд╕реЗ рдЬрд╝реБрд░реВ рдореЛрдб рдкрд░ рд▓реМрдЯреЗрдВ
zurumode_init
рдХрдИ рдЪреАрдЬреЛрдВ рдХреЛ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ:
0xC(padmgr_class)
zurumode_callback
рдкрддреЗ рдХрд╛ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ0x10(padmgr_class)
рд╕реНрд╡рдпрдВ padmgr_class
рдХрд╛ рдкрддрд╛ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ0x4(zuruKeyCheck)
0x3C(osAppNMIBuffer)
рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╢рдмреНрдж рдореЗрдВ рдЕрдВрддрд┐рдо рдмрд┐рдЯ рдХрд╛ рдорд╛рди рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред
рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐
padmgr
рдХреНрдпрд╛
padmgr
, "рдЧреЗрдордкреИрдб рдореИрдиреЗрдЬрд░" рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдоред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЬрд╝реВрд░реЛ рдореЛрдб рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЗрдордкреИрдб рдкрд░ рдХреБрдВрдЬреА (рдмрдЯрди) рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрдпреЛрдЬрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рдбреЗрд╡рд▓рдкрд░ рдХрдВрд╕реЛрд▓ рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдЗрд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
zurumode_init
рдХреЛ рдЦреЗрд▓ рдХреЗ рдкрд╣рд▓реЗ рдмреВрдЯ рдкрд░ рд╣реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬрдм рд░реАрд╕реЗрдЯ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред
8040efa4
рдкрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд░рдХреЗ, рдЬрд┐рд╕ рдкрд░
0x4(zuruKeyCheck)
рдХрд╛ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
0x4(zuruKeyCheck)
, рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдХреБрдВрдЬреА рджрдмрд╛рдП рдмрд┐рдирд╛ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдорд╛рди 0. рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ 1 рд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рд╣реЛрддреА рд╣реИ:
рдЕрдХреНрд╖рд░ "D" рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ (рдпрд╣ рд╕рдордп рд╣рд░рд╛ рд╣реИ, рдкреАрд▓рд╛ рдирд╣реАрдВ рд╣реИ), рдФрд░ рдХреБрдЫ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЬрд╛рдирдХрд╛рд░реА рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЧрдИ рд╣реИ:
[CopyDate: 02/08/01 00:16:48 ]
[Date: 02-07-31 12:52:00]
[Creator:SRD@SRD036J]
рдПрдХ рдкреИрдЪ рдЬреЛ рд╣рдореЗрд╢рд╛ рд╢реБрд░реБрдЖрдд рдореЗрдВ
0x4(zuruKeyCheck)
рдХреЛ 1 рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
8040ef9c 38c00001
рдпрд╣ рдЬрд░реВ рдореЛрдб рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рдХреБрдЫ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЦреЗрд▓ рд╢реБрд░реВ рдХрд░рдирд╛, рдЙрд╕ рдкрд░ рдЪрд▓рдирд╛ рдФрд░ рдПрдХ рдЧреНрд░рд╛рдореАрдг рд╕реЗ рдмрд╛рдд рдХрд░рдирд╛, рд╣рдо рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рд╕реА рднреА рд╕рдВрджреЗрд╢ рдХреЛ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ (рдХреЛрдиреЗ рдореЗрдВ "рдбреА" рдЕрдХреНрд╖рд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╕рдВрджрд┐рдЧреНрдз
zurumode_update
рдФрд░
zurumode_callback
ред
zurumode_update
zurumode_update
рдкрд╣рд▓реЗ
zurumode_update
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░
zurumode_callback
рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рддрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдлрд┐рд░ рд╕реЗ рдЕрдВрддрд┐рдо рдмрд┐рдЯ
0x3C(osAppNMIBuffer)
рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░, рдЗрд╕ рдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░,
zurumode_flag
рдЕрдкрдбреЗрдЯ
zurumode_flag
ред
рдпрджрд┐ рдмрд┐рдЯ рд╢реВрдиреНрдп рд╣реИ, рддреЛ рдзреНрд╡рдЬ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рд╣реИред
рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдерди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреВрд░реНрдг рдорд╛рди
0x3c(osAppNMIBuffer)
r5
:
extrwi r3, r5, 1, 28
рдпрд╣
r5
рд╕реЗ 28 рд╡рд╛рдВ рдмрд┐рдЯ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ
r3
рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ 1 рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрд╢рд╛ 1 рдпрд╛ 2 рд╣реЛрддрд╛ рд╣реИред
рдлрд┐рд░
zurumode_flag
рддреБрд▓рдирд╛ рдкрд┐рдЫрд▓реЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐
0x3c(osAppNMIBuffer)
рдФрд░ рдЕрдВрддрд┐рдо рдмрд┐рдЯреНрд╕ рдореЗрдВ рд╕реЗ
0x3c(osAppNMIBuffer)
рд╕реЗрдЯ рд╣реИрдВ: 0, 1 рдпрд╛ 2ред
рдпрд╣ рдорд╛рди
zurumode_flag
рдХреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдореМрдЬреВрджрд╛ рдзреНрд╡рдЬ рдорд╛рди рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдорд╛рди рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдХреЛрдб рдмреНрд▓реЙрдХреЛрдВ рдХреА рдПрдХ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрд╛рдкрд╛рдиреА рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: "zurumode_flag рдорд╛рди% d рд╕реЗ% d рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛", рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдКрдкрд░ рдмрд╛рдд рдХреА рдереАред
рдлрд┐рд░ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЭрдВрдбрд╛ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЗрд╕ рднрд╛рдЧ рдХрд╛ рдХреЛрдб рдХреЛрдб рдиреАрд░рд╕ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХрд╛ рдЫрджреНрдо рдХреЛрдб рджрд┐рдЦрд╛рдКрдВрдЧрд╛:
if (flag_changed_to_zero) { JC_JUTAssertion_changeDevice(2) JC_JUTDbPrint_setVisible(JC_JUTDbPrint_getManager(), 0) } else if (BIT(nmiBuffer, 25) || BIT(nmiBuffer, 31)) { JC_JUTAssertion_changeDevice(3) JC_JUTDbPrint_setVisible(JC_JUTDbPrint_getManager(), 1) }
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдзреНрд╡рдЬ рд╢реВрдиреНрдп рд╣реИ, рддреЛ рддрд░реНрдХ 0 рдХреЛ JC_JUTDbPrint_setVoice рдкрд░ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдзреНрд╡рдЬ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред рдФрд░ рдмрд┐рдЯ 25 рдпрд╛ рдмрд┐рдЯ 31 рдХреЛ
0x3C(osAppNMIBuffer)
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛
0x3C(osAppNMIBuffer)
, рддреЛ
0x3C(osAppNMIBuffer)
рддрд░реНрдХ 1 рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ zuru рдореЛрдб рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдкрд╣рд▓реА рдХреБрдВрдЬреА рд╣реИ: рдЕрдВрддрд┐рдо рдмрд┐рдЯ
0x3C(osAppNMIBuffer)
рдХреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░
zurumode_flag
рдЧреИрд░-рд╢реВрдиреНрдп рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
zurumode_callback
zurumode_callback
рдкрд░ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рд╕рдВрднрд╡рддрдГ рдЧреЗрдордкреИрдб рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЙрд▓реНрдлрд┐рди рдбрд┐рдмрдЧрд░ рдореЗрдВ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЙрд▓ рд╕реНрдЯреИрдХ рд╣рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ
padmgr_HandleRetraceMsg
рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдЙрд╕рдХреА рдкрд╣рд▓реА рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ
zerucheck_key_check
рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдерд╛ред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЬрдЯрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдЗрд╕реЗ
zuruKeyCheck
рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреА-рдЪреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдЗрд╕ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдлрд┐рд░ рдпрд╣
0x3c(osAppNMIBuffer)
рдореЗрдВ рдХреБрдЫ рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдмрд┐рдЯ 26 рд╕реЗрдЯ рд╣реИ, рдпрд╛ рдпрджрд┐ рдмрд┐рдЯ 25 рд╕реЗрдЯ рд╣реИ рдФрд░
padmgr_isConnectedController(1)
рдПрдХ
padmgr_isConnectedController(1)
рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ
0x3c(osAppNMIBuffer)
рдореЗрдВ рдЕрдВрддрд┐рдо рдмрд┐рдЯ 1 рдкрд░
0x3c(osAppNMIBuffer)
рд╣реИ!
рдпрджрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдмрд┐рдЯ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдмрд┐рдЯ 25 рд╕реЗрдЯ рд╣реИ, рд▓реЗрдХрд┐рди
padmgr_isConnectedController(1)
рд░рд┐рдЯрд░реНрди 0 рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдЪреЗрдХ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрддрд╛
0x4(zuruKeyCheck)
рдкрд░ рдмрд╛рдЗрдЯ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдпрджрд┐ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдпрд╣ рдореВрд▓ рдорд╛рди рдореЗрдВ рдЕрдВрддрд┐рдо рдмрд┐рдЯ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ
0x3c(osAppNMIBuffer)
рд╡рд╛рдкрд╕ рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдпрд╣ рдЕрднреА рднреА 1 рдХреЛ рдЕрдВрддрд┐рдо рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдЫрджреНрдо рдХреЛрдб рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
x = osAppNMIBuffer[0x3c] if (BIT(x, 26) || (BIT(x, 25) && isConnectedController(1)) || zuruKeyCheck[4] != 0) { osAppNMIBuffer[0x3c] = x | 1
рдЙрд╕рдХреЗ рдмрд╛рдж, рдпрджрд┐ рдмрд┐рдЯ 26 рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди
zurumode_update
рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ
zurumode_update
, рдФрд░ рдлрд┐рд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред
рдпрджрд┐ рдмрд┐рдЯ рд╕реЗрдЯ рд╣реИ, рддреЛ рдпрджрд┐
0x4(zuruKeyCheck)
рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ: "ZURU% d /% d"ред
рд╕рдмрдЯреЛрдЯрд▓ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛
рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:
padmgr_HandleRetraceMsg
рдХрд╣рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ "рд╣реИрдВрдбрд▓ рд░рд┐рдЯреНрд░реЗрд╕ рд╕рдВрджреЗрд╢" рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдмрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдХреАрд╕реНрдЯреНрд░реЛрдХ рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреИрди рдХреЗ рд╕рд╛рде, рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдХреЙрд▓рдмреИрдХ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред
рдЬрдм
zurumode_callback
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ
zurumode_callback
рдпрд╣ рд╡рд░реНрддрдорд╛рди рдХреАрд╕реНрдЯреНрд░реЛрдХ (рдмрдЯрди) рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрдЯрди рдпрд╛ рдмрдЯрди рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣реА рд╣реИред
рдПрдирдПрдордЖрдИ рдмрдлрд░ рдореЗрдВ рдЕрдВрддрд┐рдо рдмрд┐рдЯ рдХреЛ рдЙрд╕рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рдЯреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдХ
zuruKeyCheck
рдмрд╛рдЗрдЯреНрд╕ (
0x4(zuruKeyCheck)
) рдХреЗ рдореВрд▓реНрдп рдкрд░ рднреАред
рдлрд┐рд░
zurumode_update
рдХреЛ
zurumode_update
рдФрд░ рдЗрд╕ рдмрд┐рдЯ рдХреЛ рдЪреЗрдХ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ 0 рд╣реИ, рддреЛ zuru рдореЛрдб рдлреНрд▓реИрдЧ рдХреЛ 0. рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ 1 рд╣реИ, рддреЛ рдореЛрдб рдлреНрд▓реИрдЧ 1 рдпрд╛ 2 рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрд┐рдЯ 28 рд╕реЗрдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЬреБрд░реБ рдореЛрдб рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ:- рдмрд┐рдЯ 26 рдХреЛ
0x3C(osAppNMIBuffer)
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 0x3C(osAppNMIBuffer)
- рдмрд┐рдЯ 25 рдХреЛ
0x3C(osAppNMIBuffer)
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 0x3C(osAppNMIBuffer)
рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдкреЛрд░реНрдЯ 2 рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ 0x4(zuruKeyCheck)
рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ
osAppNMIBuffer
osAppNMIBuffer
рдЕрд░реНрде рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ "рдПрдирдПрдордЖрдИ" рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХреА рдФрд░ рдирд┐рдирдЯреЗрдВрдбреЛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ "рдЧреИрд░-рдирдХрд╛рдмрдкреЛрд╢ рд╡реНрдпрд╡рдзрд╛рди" рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкрд╛рдпрд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЪрд░ рдХрд╛ рдирд╛рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдирдЯреЗрдВрдбреЛ 64 рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИ:
osAppNMIBuffer рдПрдХ 64-рдмрд╛рдЗрдЯ рдмрдлрд░ рд╣реИ рдЬрд┐рд╕реЗ рдардВрдбреЗ рдкреБрдирд░рд╛рд░рдВрдн рдкрд░ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо NMI рдХреЗ рдХрд╛рд░рдг рд░реАрдмреВрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдмрдлрд╝рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ "рд╕реЙрдлреНрдЯ" рд░рд┐рд╕реНрдЯрд╛рд░реНрдЯ (рд░рд┐рд╕реЗрдЯ рдмрдЯрди рдХреЗ рд╕рд╛рде) рдХреЗ рджреМрд░рд╛рди рд╕реЗрд╡ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИред рдЧреЗрдо рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдХрдВрд╕реЛрд▓ рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмрдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдВрдЯреЗрдВрдбреЛ 64 рдкрд░ рдореВрд▓ рдкрд╢реБ рдХреНрд░реЙрд╕рд┐рдВрдЧ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдХреЛрдб рдореЗрдВ рдРрд╕рд╛ рд╣реА рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рд╣рдо рдмрд╛рдЗрдирд░реА
boot.dol
рдлрд╝рд╛рдЗрд▓ (рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╕рдм рдХреБрдЫ
foresta.rel
), рддреЛ рдЗрд╕рдХреЗ
main
рдХрд╛рд░реНрдп рдореЗрдВ
osAppNMIBuffer
рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓рд┐рдВрдХ рд╣реИрдВред рдПрдХ рддреНрд╡рд░рд┐рдд рд░реВрдк рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЪреЗрдХ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ рдЬреЛ OR рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдмрд┐рдЯреНрд╕
0x3c(osAppNMIBuffer)
рдореВрд▓реНрдпреЛрдВ рдХреЛ
0x3c(osAppNMIBuffer)
рдХрд░ рд╕рдХрддреА рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд OR рдСрдкрд░реЗрдВрдб рдорд╛рди рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
- рдмрд┐рдЯ 31: 0x01
- рдмрд┐рдЯ 30: 0x02
- рдмрд┐рдЯ 29: 0x04
- рдмрд┐рдЯ 28: 0x08
- рдмрд┐рдЯ 27: 0x10
- рдмрд┐рдЯ 26: 0x20
рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ рдмрд┐рдЯреНрд╕ 25, 26 рдФрд░ 28 рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ: 25 рдФрд░ 26 рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЬрд╝реБрд░реБ рдореЛрдб рдЪрд╛рд▓реВ рд╣реИ, рдФрд░ рдмрд┐рдЯ 28 рдзреНрд╡рдЬ рд╕реНрддрд░ (1 рдпрд╛ 2) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдмрд┐рдЯ 31 рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрджрд▓рддрд╛ рд╣реИред
рдмрд┐рдЯ реирем
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ: рдкрддреЗ рдкрд░
800062e0
рдореЗрдВ
0x3c
рдмрдлрд░ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджреЗрд╢
ori r0, r0, 0x20
ред рдпрд╣ рдмрд┐рдЯ 26 рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрд╢рд╛ zuru рдореЛрдб рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИред
рдмрд┐рдЯ рд╕реЗрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП,
DVDGetCurrentDiskID
рд╕реЗ рд▓реМрдЯрд╛ рдЖрдард╡рд╛рдВ рдмрд╛рдЗрдЯ
DVDGetCurrentDiskID
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЧреЗрдо рдХреА рдбрд┐рд╕реНрдХ рдЫрд╡рд┐ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдФрд░
80000000
рдкрд░ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред рдЦреЗрд▓ рдХреЗ рдПрдХ рдирд┐рдпрдорд┐рдд рдЦреБрджрд░рд╛ рд░рд┐рд▓реАрдЬ рдореЗрдВ, рдЖрдИрдбреА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
47 41 46 45 30 31 00 00 GAFE01..
рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдЯ рдХреЛ
0x99
рдХреЗ рд╕рд╛рде
0x99
, рд╣рдореЗрдВ рдЧреЗрдо рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ:
рдФрд░ рдУрдПрд╕ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ:
06:43:404 HW\EXI_DeviceIPL.cpp:339 N[OSREPORT]: ZURUMODE2 ENABLE
08:00:288 HW\EXI_DeviceIPL.cpp:339 N[OSREPORT]: osAppNMIBuffer[15]=0x00000078
рдЕрдиреНрдп рд╕рднреА рдкреИрдЪ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкрддреНрд░ рдбреА рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдХреЛрдИ рднреА рдбрд┐рдмрдЧ рд╕рдВрджреЗрд╢ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИрдВред
рдмрд┐рдЯ реирел
рдХрдВрдЯреНрд░реЛрд▓рд░ рдкреЛрд░реНрдЯ 2 рдЪреЗрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдмрд┐рдЯ 25 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ?
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рдмрд┐рдЯ 28 рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдЪреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рд╕рдВрд╕реНрдХрд░рдг
0x90
рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдЗрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдмрд┐рдЯ 26 рд╕реЗрдЯ рд╣реИ (рдЖрдИрдбреА
0x99
), рддреЛ рдпреЗ рджреЛрдиреЛрдВ рдмрд┐рдЯреНрд╕ рднреА рд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдЬрд╝реБрд░реВ рдореЛрдб рдЕрднреА рднреА рд╕рдХреНрд░рд┐рдп рд╣реЛрдЧрд╛ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рд╕рдВрд╕реНрдХрд░рдг
0x90
рд╕реЗ
0x90
рдХреА рд╕реАрдорд╛ рдореЗрдВ рд╣реИ, рддреЛ рдЭреБрд░реВ рдореЛрдб рддреБрд░рдиреНрдд рдЪрд╛рд▓реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
zurumode_callback
рдореЗрдВ рдХрд┐рдП рдЧрдП рдЪреЗрдХ рдХреЛ рдпрд╛рдж рдХрд░реЗрдВ - рдореЛрдб рддрднреА рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдЬрдм рдмрд┐рдЯ 25 рд╕реЗрдЯ рд╣реЛ
рдФрд░ padmgr_isConnectedController(1)
рдПрдХ
padmgr_isConnectedController(1)
ред
рдирд┐рдпрдВрддреНрд░рдХ рдкреЛрд░реНрдЯ 2 рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж (рддрд░реНрдХ
isConnectedController
рдореЗрдВ рд╢реВрдиреНрдп рдЕрдиреБрдХреНрд░рдордг рд╣реИ), zuru рдореЛрдб рд╕рдХреНрд░рд┐рдп рд╣реИред рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддреНрд░ рдбреА рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдФрд░ рд╣рдо ... рджреВрд╕рд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
рдХреБрдЫ рдмрдЯрди рдРрд╕реА рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рди рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦреЗрд▓ рдХреА рдЧрддрд┐ рдХреЛ рднреА рдмрдврд╝рд╛рддреЗ рд╣реИрдВред
zerucheck_key_check
рдЕрдВрддрд┐рдо рд░рд╣рд╕реНрдп
0x4(zuruKeyCheck)
рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рди рдПрдХ рдмрдбрд╝реЗ рдЬрдЯрд┐рд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдореИрдВрдиреЗ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛:
рдбреЙрд▓реНрдлрд┐рди рдПрдореНрдпреВрд▓реЗрдЯрд░ рдбреАрдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдХрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореВрд▓реНрдп рджреВрд╕рд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдмрдЯрди рдкреНрд░реЗрд╕ рдХреЗ рдЕрдиреБрд░реВрдк рдмрд┐рдЯреНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред
рдмрдЯрди рдХреНрд▓рд┐рдХ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ
0x2(zuruKeyCheck)
рдкрд░ 16-рдмрд┐рдЯ рдорд╛рди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИред рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдорд╛рди
0x7638
ред
рдирд┐рдпрдВрддреНрд░рдХ рдмрдЯрди рдХреЗ рдЭрдВрдбреЗ рд╡рд╛рд▓реЗ 2 рдмрд╛рдЗрдЯреНрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░
zerucheck_key_check
рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдП
zerucheck_key_check
ред рдЬрдм рдпрд╣ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рддреЛ рдирдпрд╛ рдорд╛рди рд░рдЬрд┐рд╕реНрдЯрд░
r4
рд╕рд╛рде
padmgr_HandleRetraceMsg
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
zerucheck_key_check
рдХреЗ рдЕрдВрдд рдХреЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдБ
0x4(zuruKeyCheck)
рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
0x4(zuruKeyCheck)
ред
рдпрд╣ рдХреНрд░реЙрд╕-рд░реЗрдлрд░реЗрдВрд╕ рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕реЗ рдЖрдзрд╛рд░ рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ r3
, рдФрд░ рд╣рдо r3
рдХреЗрд╡рд▓ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рджреЗрдЦрдХрд░ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ редрдкрддреЗ рдкрд░, 8040ed88
рдорд╛рди r4
рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ 0x4(zuruKeyCheck)
ред рдареАрдХ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕реА рдЬрдЧрд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ 1 рд╕реЗ XORsред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХрд╛ рдХрд╛рд░реНрдп 0 рдФрд░ 1. рдХреЗ рдмреАрдЪ рдмрд╛рдЗрдЯ (рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдВрддрд┐рдо рдмрд┐рдЯ) рдХрд╛ рдорд╛рди рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реИ (рдпрджрд┐ рдорд╛рди 0 рд╣реИ, рддреЛ1 рд╕реЗ XOR рдХрд╛ рдкрд░рд┐рдгрд╛рдо 1 рд╣реЛрдЧрд╛ ред рдпрджрд┐ рдорд╛рди 1 рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо 0. рд╣реЛрдЧрд╛ред XOR рдХреЗ рд▓рд┐рдП рд╕рддреНрдп рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВред)рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЬрдм рдореИрдВрдиреЗ рд╕реНрдореГрддрд┐ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛, рддреЛ рдореБрдЭреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдбреАрдмрдЧрд░ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореВрд▓ рдореВрд▓реНрдп рдкрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ 8040ed7c
редрдирд┐рдпрдВрддреНрд░рдХ рдмрдЯрди рдХреЛ рдЫреВрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдореБрдЭреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдХреНрд░реАрди рдкрд░ рдЗрд╕ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдкрд░ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред рдХреЛрдб рдХреЗ рдЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ ( ) рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╢рд╛рдЦрд╛ рдирд┐рд░реНрджреЗрд╢ рд╕реЗ рдкрд╣рд▓реЗ рдореВрд▓реНрдп r5
рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред рдЗрд╕ рдмреНрд▓реЙрдХ рддрдХ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╛рд╕реНрддреЛрдВ рдореЗрдВ рд╕реЗ, рдХреЗрд╡рд▓ рдПрдХ рдкрддреЗ рдкрд░ рдЗрд╕рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдорд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред0xb
8040ed74
r5
0xb
8040ed68
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ r5
рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдХ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП 0xB
, рдореВрд▓реНрдп рдЗрд╕рдХреЗ рдареАрдХ рдкрд╣рд▓реЗ r0
рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП 0x1000
ред рд╕рдорд╛рд░реЛрд╣ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╢реНрд░реГрдВрдЦрд▓рд╛ рддрдХ рдХреЗ рдмреНрд▓реЙрдХ, рд╣рдо рдЗрд╕ рдмреНрд▓реЙрдХ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдкреНрд░рддрд┐рдмрдВрдз рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:- 8040ed74: рдорд╛рди
r5
рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0xB
- 8040ed60: рдорд╛рди
r0
рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0x1000
- 8040ebe8: рдорд╛рди
r5
рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0xA
- 8040ebe4: рдорд╛рди
r5
рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0x5B
- 8040eb4: рдорд╛рди
r5
рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0x7
- 8040eb94: рдорд╛рди
r6
1 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - 8040eb5c: рдорд╛рди
r0
0 рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - 8040eb74: рдкреЛрд░реНрдЯ 2 рдмрдЯрди рдорд╛рди рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП

рдпрд╣рд╛рдВ рд╣рдо рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдП рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдкреБрд░рд╛рдиреЗ рдмрдЯрди рдорд╛рди рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдирдП рдорд╛рди рд╕рд╣реЗрдЬреЗ рдЧрдП рд╣реИрдВред рдлрд┐рд░ рдирдП рдФрд░ рдкреБрд░рд╛рдиреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдЖрддрд╛ рд╣реИ: XOR рдСрдкрд░реЗрд╢рди рдЙрди рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рджреЛ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдмрджрд▓ рдЧрдП рд╣реИрдВред рдлрд┐рд░, рдФрд░ рдСрдкрд░реЗрд╢рди рдЙрди рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдЗрдирдкреБрдЯ рдХреЛ рдорд╛рд╕реНрдХ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 0 рдкрд░ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рдирдП рдореВрд▓реНрдп рдореЗрдВ рдирдП рдмрд┐рдЯреНрд╕ (рдмрдЯрди рдкреНрд░реЗрд╕) рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдЕрдЧрд░ рдпрд╣ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд╣реИрдВред рдПрдХ рдЕрдВрддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, 16 рдмрд┐рдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ рдмрдЯрди рдХреЗ рдЪреМрдереЗ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред XOR / AND рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ START рдмрдЯрди рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╢реБрд░реВ рдореЗрдВ рдХреИрд╕реЗ рдмрд░рд╛рдмрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПold_vals = old_vals XOR new_vals
old_vals = old_vals AND new_vals
r0
r0
0x1000
r5
0xA
ред r5
рдФрд░ рдХреБрдВрдЬреА рдкрд░реАрдХреНрд╖рдг рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд r6
рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ 0x0(zuruKeyCheck)
рдЕрдВрдд рдХреЗ рдХрд░реАрдм рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрдм рд╣рдо рдЙрд╕ рдХреЛрдб рдмреНрд▓реЙрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ 0x4(zuruKeyCheck)
редрдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрдИ рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдБ r5
рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ 0xA
:8040ed38
8040ed34
: рдорд╛рди r0
рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП 0x4000
(рдмрдЯрди B рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)8040ebe0
: рдорд╛рди r5
рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0x5b
8040eba4
: рдорд╛рди r5
рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0x7
- рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ...
r5
рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП 0x5b
8040ed00
8040ecfc
: рдорд╛рди r0
рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП 0xC000
(A рдФрд░ B рджрдмрд╛рдП рдЧрдП рд╣реИрдВ)8040ebf8
: рдорд╛рди r5
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП> = 98040ebf0
: рдорд╛рди r5
10 рд╕реЗ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП8040ebe4
: рдорд╛рди r5
рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0x5b
8040eba4
: r5
рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0x7
- рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ...
r5
9 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП8040ed50
8040ed4c
: рдорд╛рди r0
рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП 0x8000
(рдмрдЯрди рджрдмрд╛рдпрд╛ рдЧрдпрд╛)8040ec04
: рдорд╛рди r5
рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0x5d
8040ebe4
: рдорд╛рди r5
рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0x5b
8040eba4
: рдорд╛рди r5
рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП0x7
- рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ...
r5
рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП 0x5c
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХреЗ рдмреАрдЪ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдмрдЯрди рд╕реЗ рдХреЙрдореНрдмреЛ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд░рдо рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ START рджрдмрд╛рдХрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ START рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ A рдФрд░ / рдпрд╛ B рдХреЛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредрдпрджрд┐ рдЖрдк рдЙрд╕ рдХреЛрдб рдХреЗ рдкрде рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдЬреЛ r5
рдорд╛рди рдХреЛ 9 рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ , рддреЛ рдПрдХ рдкреИрдЯрд░реНрди рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ: r5
- рдпрд╣ рдПрдХ рдмрдврд╝рддрд╛ рд╣реБрдЖ рдореВрд▓реНрдп рд╣реИ рдЬреЛ рдпрд╛ рддреЛ рддрдм рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИ рдЬрдм r0
рдЙрдкрдпреБрдХреНрдд рдорд╛рди рдорд┐рд▓рддрд╛ рд╣реИ, рдпрд╛ рд╢реВрдиреНрдпред рд╕рдмрд╕реЗ рдЕрдЬреАрдм рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрдм рдпрд╣ рд╕реАрдорд╛ рд╕реЗ рдореВрд▓реНрдп рдореЗрдВ рдирд╣реАрдВ 0x0
рд╣реИ0xB
, рддрдм рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдХрдИ рдмрдЯрди рдХреЗ рд╕рд╛рде рдХрджрдо рдЙрдард╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдП рдФрд░ рдмреА рдХреЛ рдПрдХ рд╕рд╛рде рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдХреЙрдореНрдмреЛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдЖрдорддреМрд░ рдкрд░ рдЧреЗрдордкреИрдб рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛрдиреЛрдВ рдмрдЯрди рдирд╣реАрдВ рджрдмрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрд╕ рдмрдЯрди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдкрд╣рд▓рд╛ рд╡рд╛рд▓рд╛редрд╣рдо рд╡рд┐рднрд┐рдиреНрди рдХреЛрдб рдкрдереЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ:r5
рдЬрдм рдорд╛рди рдкрддреЗ рдкрд░ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдорд╛рди 9 рд▓реЗрддрд╛ рд╣реИ 8040ece8
редr5
рдорд╛рди 8 рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдкрддреЗ рдкрд░ рджрд╛рдпрд╛рдБ рдмрдЯрди C рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ 8040eccc
редr5
рдЬрдм рдмрд╛рдИрдВ рдмрдЯрди C рдХреЛ рдкрддреЗ рдкрд░ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдорд╛рди 7 рд▓реЗрддрд╛ рд╣реИ 8040ecb0
редr5
рдЬрдм LEFT рдкрддреЗ рдкрд░ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдорд╛рди 6 рд▓реЗрддрд╛ рд╣реИ 8040ec98
редr5
рдЬрдм DOWN рдкрддреЗ рдкрд░ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдорд╛рди 5 (рдФрд░ r6 рдорд╛рди 1 рд▓реЗрддрд╛ рд╣реИ) 8040ec7c
редr5
рдЬрдм рдорд╛рди рдКрдкрд░реА рдмрдЯрди C рдкрддреЗ рдкрд░ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдорд╛рди 4 рд▓реЗрддрд╛ рд╣реИ 8040ec64
редr5
рдЬрдм рдореВрд▓реНрдп рдХрдо рд╕реА рдмрдЯрди рдкрддреЗ рдкрд░ 3 рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ 8040ec48
редr5
рдЬрдм рдпреВрдкреА рдкрддреЗ рдкрд░ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдорд╛рди 2 рд▓реЗрддрд╛ рд╣реИ 8040ec30
редr5
r6
рдЬрдм Z рдкрддреЗ рдкрд░ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдорд╛рди 1 (рдФрд░ рдорд╛рди 1 рд▓реЗрддрд╛ рд╣реИ) рд▓реЗрддрд╛ рд╣реИ 8040ec1c
ред
рд╡рд░реНрддрдорд╛рди рдЕрдиреБрдХреНрд░рдо рд╣реИ:Z, UP, C-DOWN, C-UP, DOWN, LEFT, C-LEFT, C-RIGHT, RIGHT, A + B, STARTZ рдЬрд╛рдБрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдФрд░ рд╢рд░реНрдд рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ: рд╣рд╛рд▓рд╛рдБрдХрд┐ рдПрдХ рдирдпрд╛ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЗрдб, рд╡рд░реНрддрдорд╛рди рдЭрдВрдбреЗ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП 0x2030
: рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдмрдВрдкрд░ рдХреЛ рднреА рджрдмрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрдирдХреЗ рдкрд╛рд╕ рдорд╛рди рд╣реИрдВ 0x10
рдФрд░ 0x20
)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, UP / DOWN / LEFT / RIGHT рдбреА-рдкреИрдб рдмрдЯрди рд╣реИрдВ, рди рдХрд┐ рдПрдирд╛рд▓реЙрдЧ рд╕реНрдЯрд┐рдХредрдзреЛрдЦрд╛ рдХреЛрдб
рдкреВрд░реНрдг рдХреЙрдореНрдмреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:- рдмрдВрдкрд░ L + R рдХреЛ рдкрдХрдбрд╝рдХрд░ Z рджрдмрд╛рдПрдВ
- рдбреА-рдЙрддреНрддрд░ рдкреНрд░рджреЗрд╢
- рд╕реА-рдиреАрдЪреЗ
- рд╕реА-рдЙрддреНрддрд░ рдкреНрд░рджреЗрд╢
- рдбреА-рдиреАрдЪреЗ
- рдбреА-рд╡рд╛рдо
- рд╕реА-рд╡рд╛рдо
- рд╕реА-рд╕рд╣реА
- рдбреА-рд╕рд╣реА
- рдП + рдмреА
- рд╕реНрдЯрд╛рд░реНрдЯ
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рджреВрд╕рд░реЗ рдкреЛрд░реНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдбрд┐рдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рддреАрд╕рд░реЗ) рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдмрдЯрди рджрдмрд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрдпрд╣ рдХреЙрдореНрдмреЛ рдЧреЗрдо рдХреЗ рд╡рд░реНрдЬрди рдирдВрдмрд░ рдХреЛ рдкреИрдЪ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдзреЛрдЦрд╛ рдЙрдкрдХрд░рдг рдпрд╛ рдХрдВрд╕реЛрд▓ рдореЙрдб рдХреЗ рдмрд┐рдирд╛ рдЧреЗрдо рдХреА рдирд┐рдпрдорд┐рдд рд░рд┐рдЯреЗрд▓ рдХреЙрдкреА рдореЗрдВ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЙрдореНрдмреЛ рдХреЛ рдлрд┐рд░ рд╕реЗ рджрд░реНрдЬ рдХрд░рдирд╛ рдЭреБрд░реВ рдореЛрдб рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИредрд╕рдВрджреЗрд╢ "ZURU% d /% d" рдХрд╛ zurumode_callback
рдЙрдкрдпреЛрдЧ рдЗрд╕ рд╕рдВрдпреЛрдЬрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдбрд┐рд╕реНрдХ рдЖрдИрдбреА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд░рд╛рдмрд░ рд╣реИ 0x99
(рд╢рд╛рдпрдж рдзреЛрдЦрд╛ рдХреЛрдб рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдкрд╣рд▓реА рд╕рдВрдЦреНрдпрд╛ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдЖрдкрдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЗрд╕реА r5
ред рджреВрд╕рд░рд╛ рдорд╛рди 1 рд▓реЗрддрд╛ рд╣реИ, рдЬрдм рдЕрдиреБрдХреНрд░рдо рдХреЗ рдХреБрдЫ рдмрдЯрди рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рддрдм r6
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред 1.рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрджреЗрд╢ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдиреАрд▓реЗ рдФрд░ рд▓рд╛рд▓ рд╕рд┐рддрд╛рд░реЛрдВ рдХреА рдПрдХ рд▓рдВрдмреА рд▓рд╛рдЗрди рд╡рд┐рднрд┐рдиреНрди quests рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рд╣реИрдВред рдЬрдм рдЦреЛрдЬ рд╕рдХреНрд░рд┐рдп рд╣реЛрддреА рд╣реИ, рддреЛ рд╡рд╣рд╛рдВ рдХреБрдЫ рд╕рдВрдЦреНрдпрд╛рдПрдБ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ, рдЬреЛ рдЦреЛрдЬ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рд╕реВрдЪрдирд╛ рджреЗрддреА рд╣реИрдВредZ рдХреЛ рджрдмрд╛рдХрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд╛рд▓реА рд╕реНрдХреНрд░реАрди рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдВрддреНрд╡рдирд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкрд╣рд▓реБрдУрдВ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди, рдвреЗрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЕрдиреНрдп рдмреБрд░реЗ рдЕрдкрд╡рд╛рджред рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ, fault_callback_scroll
рдпрд╣ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рд▓реЙрдиреНрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдИ рдПрдирдУрдкреА рдХреЗ рд╕рд╛рде рдХрдЪрд░рд╛ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рдЖрдкрдХреЗ рдЕрдкрдиреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛:рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐рд╕рдВрд╕реНрдХрд░рдг рдЖрдИрдбреА рдХреЛ рдкреИрдЪ рдХрд░рдХреЗ рдбреАрдмрдЧ рдореЛрдб рдореЗрдВ рдЖрдирд╛ 0x99
рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрддрд╛ рд╣реИ: https://tcrf.net/Animal_Crossing#Debug_Mode ред (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓рд┐рдВрдХ рдкрд░ рдЕрдЪреНрдЫреЗ рдиреЛрдЯ рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдкреЛрд░реНрдЯ 3 рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред) рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдХрд┐рд╕реА рдиреЗ рдЕрднреА рддрдХ рдзреЛрдЦрд╛ рд╕рдВрдпреЛрдЬрди рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИредрд╡рд╣ рд╕рдм рд╣реИред
рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬреИрд╕реЗ рдХрд╛рд░реНрдб рдХреА рдбрд┐рдмрдЧ рд╕реНрдХреНрд░реАрди рдФрд░ рдПрдирдИрдПрд╕ рдПрдореБрд▓реЗрдЯрд░ рдЪрдпрди рд╕реНрдХреНрд░реАрди, рдФрд░ рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛рдПредрдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдореЙрдбреНрдпреВрд▓реНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рдбрд╛рдпрд▓реЙрдЧ рд╕рд┐рд╕реНрдЯрдо, рдЗрд╡реЗрдВрдЯреНрд╕ рдФрд░ рдХреНрд╡реИрд╕реНрдЯ рдХреЗ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдкрд░ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реВрдВрдЧрд╛ред