
рдореИрдВрдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдЕрдм рдореИрдВ 3DO рдХрдВрд╕реЛрд▓ рдЗрдореНрдпреВрд▓реЗрд╢рди рдХреЛ рдирд╣реАрдВ рдЫреВрдКрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореБрдЭреЗ рдПрдХ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ, рдЬреИрд╕реЗ
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд┐рджреЗрд╢реА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛ред рдкрд╣рд▓реА рдмрд╛рдд рдореИрдВрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдерд╛, рдмреЗрд╢рдХ рдореЗрд░рд╛ 3DO рдХрдВрд╕реЛрд▓ рдПрдореБрд▓реЗрдЯрд░ (рдлреАрдирд┐рдХреНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ) рдерд╛ред 90 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдерд╛, рд╕реАрдбреА рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ 32-рдмрд┐рдЯ рдХрдВрд╕реЛрд▓, рдореБрдЭреЗ рдЕрдкрдиреЗ рднрд╛рдИ рдХреА рдпрд╛рдж рд╣реИ рдФрд░ рдореИрдВ рдЙрд╕реЗ рдореЙрд╕реНрдХреЛ рд╕реЗ рд▓рд╛рдпрд╛ рдерд╛, рддрдм рд╕реЗ рдореИрдВ рдЦреБрдж рдХреЛ рдлрд╛рдбрд╝ рдирд╣реАрдВ рд╕рдХрддрд╛ред рдЦреИрд░, рдЬрдм рд╕реЗ рдпрд╣ рдорд╛рдорд▓рд╛ рдЪрд╛рд▓реВ рд╣реБрдЖ, рддрдм 3DO рдПрдореБрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рднреА рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣рдо рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗред рддреЛ рдЪрд▓рд┐рдП рдЬрд╛рдиреЗ ...
FreeDOCore - GoogleCode рдореЗрдВ рднрдВрдбрд╛рд░ рд╕реЗ рдореВрд▓ рдХреЛрд░ред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ :
http://www.freedo.org/рд╕рдВрд╢реЛрдзрди ::ред
рдорджрдж : рдкрд╣рд▓рд╛ рдФрд░ рдЖрдк рдЗрд╕ рдХрдВрд╕реЛрд▓ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдПрдореБрд▓реЗрдЯрд░ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╛рдХреА рд╕рднреА рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рдХреЛрдб рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред
рд▓рд┐рдЦрдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐редV523: 'рддрддреНрдХрд╛рд▓реАрди' рдХрдерди 'рдФрд░' рдХрдерди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИредрд▓рд╛рдЗрди 673 - clio.cpp
рдирд┐рдпрдорд┐рдд рд╕рдВрдХрд▓рдХ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрдХрд░реНрд╖рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
if((cregs[0x404])&0x200) { ptr=0; while(len>=0) { b3=_xbus_GetDataFIFO(); ... } cregs[0x400]|=0x80; } else { ptr=0; while(len>=0) { b3=_xbus_GetDataFIFO(); ... } cregs[0x400]|=0x80; }
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рди рдХреЗрд╡рд▓ рдирд┐рд░рд░реНрдердХ рдХреЛрдб, рдмрд▓реНрдХрд┐ рдПрдХ рдЗрдореНрдпреВрд▓реЗрд╢рди рддреНрд░реБрдЯрд┐ рднреА рд╣реИ, XBUS рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджреНрд╡рд┐-рджрд┐рд╢рд╛рддреНрдордХ рд╣реИ, рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╣рдореЗрд╢рд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕реАрдбреА рдбреНрд░рд╛рдЗрд╡ рдХреЗ рдЕрдиреБрдХрд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдЕрдиреБрдХрд░рдгреАрдп рдЦреЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдХрд▓ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдЦрддрд░рдирд╛рдХ рддреНрд░реБрдЯрд┐ рд╣реИред - рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рд╕рдм рдПрдХ рдЦрд╛рд▓реА рдЬрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдЕрдиреБрдХрд░рдгреАрдп рдПрдХреНрд╕рдмрд╕ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдбреАрдПрдордП рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореЗрдореЛрд░реА рджреВрд╖рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧреА, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдПрдлрдЬреЗрдб-рдИрдПрдо 253 рдбреА 3 рдбреА рдореЗрдореЛрд░реА рдпреВрдирд┐рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рджреБрд░реНрд▓рднрддрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рддреНрд░реБрдЯрд┐ рдкрдврд╝реЗрдВредV614: рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╕рдВрдЧрдард┐рдд рдЪрд░ 'рд╡реИрд▓' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрд▓рд╛рдЗрди 803 - clio.cpp
рдкрд╣рд▓реЗ рддреЛ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдмрдХрд╡рд╛рд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЪрд╛рдирдХ рдореБрдЭреЗ FIFO рдореЗрдВ рднреВрдд рдпрд╛рдж рдЖрдП ...
unsigned short __fastcall _clio_EIFIFO(unsigned short channel) { unsigned int val,base,mask; ... if(FIFOI[channel].StartAdr!=0)
рдпрд╣рд╛рдВ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реИрд░рд┐рдПрдмрд▓
рд╡реИрд▓ рдХреЛ рдХреЗрд╡рд▓ рддрдм рд╣реА рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╢рд░реНрдд рдкреВрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж FIFO рдбреАрдПрд╕рдкреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдЗрд╕реЗ рд╕реЗ рдкрдврд╝рд╛ рдЧрдпрд╛ рдЕрдВрддрд┐рдо рдореВрд▓реНрдп, рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рднреВрдд рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдПрдХ рдЦрд╛рд▓реА рдлреАрдлреЛ рд╕реЗ рд░реАрдбрд┐рдВрдЧ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ, рдЕрдЪрд╛рдирдХ рд╕реБрдзрд╛рд░ рдХреЗ рдмрд╛рдж рдПрдХ рдФрд░ рдЧреЗрдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ?
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рджреЛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЧрд▓рддрд┐рдпрд╛рдБ, рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдХреБрдЫ рдФрд░ рд╣реЛрдЧрд╛ред
FourDO - SourceForge рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдХреЛрд░
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ :
http://www.fourdo.com/рд╕рдВрд╢реЛрдзрди : рей7vision
рд╕рдВрджрд░реНрдн : рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреЛ рдЬреАрд╡рди рдЬреАрддреА рдереА, рдкрд╣рд▓реА - рдЬрдм рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рдЕрдкрдиреЗ рдЖрдк рд╣реА рдПрдореБрд▓реЗрдЯрд░ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдлрд╕реЛрд╕, рд░реЛрдЧреА рдХреЛрдорд╛ рдореЗрдВ рдЖ рдЧрдпрд╛, рдФрд░ рдлреНрд░реАрдбреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдирдпрд╛ рдЬреАрд╡рди рд╢реБрд░реВ рд╣реБрдЖ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирдП рдЕрдВрдЧреЛрдВ рдХреЗ рд╕рд╛рдеред рддреЛ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг рдХреИрд╕реЗ рдЬрдбрд╝ рд▓реЗрддреЗ рд╣реИрдВ ...
рдлрд┐рдХреНрд╕реНрдб, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдмрдЧред
рддреБрд░рдВрдд рдореИрдВ рдореВрд▓ рдХрд░реНрдиреЗрд▓ (V614: рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╕рд┐рдВрдЪрд┐рдд рдЪрд░ 'рд╡реИрд▓' рд▓рд╛рдЗрди 803 - clio.cpp) рдореЗрдВ рдЕрдВрддрд┐рдо рддреНрд░реБрдЯрд┐ рдХреЛ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рднреВрддреЛрдВ рдХреЛ рдмрд┐рдирд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ (рдпрд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА) рдХреЗ рд╕рд╛рде рдирд┐рдкрдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдмрд╛рддрдЪреАрдд?
unsigned short __fastcall _clio_EIFIFO(unsigned short channel) { unsigned int val,base,mask; base=0x400+(channel*16); mask=1<<channel; if(FIFOI[channel].StartAdr!=0) { ... } else { val=0;
рд▓реЗрдХрд┐рди рд╡реНрдпрд░реНрде рдореЗрдВ рд╡реЗ рдирд┐рдкрдЯрд╛! рдЕрд╕рд▓реА рд╕рдорд╕реНрдпрд╛ рдЕрдирд╕реБрд▓рдЭреА рд░рд╣реА, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдмрд╛рд╣рд░ рд╕реЗ рд╕реБрдВрджрд░ рдерд╛, рдФрд░ рдХреЛрдИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рд╕рдмрд╕реЗ рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╡реИрд░рд┐рдПрдмрд▓
рд╡реИрд▓реЗ рдХреЛ
рд╕реНрдерд┐рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ рд╢реВрдиреНрдп рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдЗрд╕реЗ рдлрдВрдХреНрд╢рди рдХреЗ рдмрд╛рд╣рд░ рд░рдЦрдирд╛ рдФрд░ рдЗрд╕реЗ рддреНрд╡рд░рд┐рдд рд╕реЗрд╡ рдХреЗ рд▓рд┐рдП рд╡реИрд░рд┐рдПрдмрд▓ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди
рдЕрдиреНрдп рдмреНрд▓реЙрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рддрд╛рдХрд┐ рдпрд╣ рднреНрд░рдорд┐рдд рди рд╣реЛред
рдЙрдкрд╕рд░реНрдЧ рддреНрд░реБрдЯрд┐редV523: 'рддрддреНрдХрд╛рд▓реАрди' рдХрдерди 'рдФрд░' рдХрдерди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИредрд▓рд╛рдЗрди 673 - clio.cpp
рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдкреИрд░ рдиреЗ рдпрд╣рд╛рдВ рдкреИрд░ рдирд╣реАрдВ рд░рдЦрд╛ - рд╕рдм рдХреБрдЫ рдореВрд▓ рд░реВрдк рдореЗрдВ рд╣реИред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╡рд┐рд╖рдп рдкрд░ рдирд╣реАрдВ рд╣реИрдВ, "рдирд┐рд░реНрдорд╛рддрд╛" рдлреЛрд░рдбреАрдУ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ - рд╡рд┐рдХреНрдЯрд░ (рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЙрд╕рдХрд╛ рдирд╛рдо рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд╡рд╣ рд╕реНрдЯрд░реНрд▓рд┐рдВрдЧрд┐рдЯреНрдЬ рднреА рд╣реИ), рд╡рд╣ 3DOPlay рдХреЗ рд▓реЗрдЦрдХ рд╣реИрдВ, FreeDO рдХрд╛ рдПрдХ рдФрд░ рдХрд╛рдВрдЯрд╛ рд╣реИ, рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╕рдорд╛рди рд╣реИрдВ рдЬреИрд╕рд╛ рдореВрд▓ рдореЗрдВ рд╣реИред 3DOPlay рдХреЗ рд╕рд╛рде рдПрдХ рдордЬреЗрджрд╛рд░ рдХрд╣рд╛рдиреА рдереА: рд╡рд┐рдХреНрдЯрд░ рдиреЗ рдЯреНрд░реЛрд▓ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдХрд╣рд╛ рдХрд┐ рд╡рд╣ 3DO рдПрдореНрдпреВрд▓реЗрдЯрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдерд╛, рдФрд░ рдлреНрд░реАрдбреАрдУ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдХрдерд┐рдд рддреМрд░ рдкрд░ рдЙрд╕рд╕реЗ рдХреЛрдб рдЪреБрд░рд╛ рд▓рд┐рдпрд╛ рдерд╛ред рдореЗрд░реА рдмрд╣реБрдд рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ, рдореИрдВ, FreeDO рдХреЗ рд╕рд╣-рд▓реЗрдЦрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдкрдиреЗ 3DOPlay рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╢рддреНрд░реБрддрд╛ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗ рдкрд╛рдпрд╛ рдФрд░ рдХрд╣рд╛ - рдореБрдЭреЗ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдирд╛рдо рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдиреЗ рд╡рд┐рд╕реНрдлреЛрдЯ рдХрд░ рджрд┐рдпрд╛ - рддреАрди рдЦреЛрдЦрд▓реЗ рдФрд░ рдпрд╣ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ ... рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡рд┐рдХреНрдЯрд░, FourDO рдЯреАрдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдпрд╛ред рдФрд░ рд╣рдореЗрдВ рд╢реНрд░рджреНрдзрд╛рдВрдЬрд▓рд┐ рдЕрд░реНрдкрд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рд╡рд╣ рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬрд┐рд╕рдиреЗ рдореВрд▓ рд╕реНрд░реЛрдд рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ 3DO рдПрдореБрд▓реЗрд╢рди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рд╣реИред
рдЕрднреА рддрдХ рдЧрд▓рддреА рдирд╣реАрдВ рд╣реБрдИредV550: рдПрдХ рд╡рд┐рд╖рдо рд╕рдЯреАрдХ рддреБрд▓рдирд╛: Rez2T! = 0. рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ: рдлрд╝реИрдмреНрд╕ (рдП - рдмреА)> рдПрдкреНрд╕рд┐рд▓реЙрдиредрд▓рд╛рдЗрди 778 - madam.cpp
рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрдВрднреАрд░ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИред
static double Rez0T,Rez1T,Rez2T,Rez3T; ... Rez2T=(signed int)((M20*V0+M21*V1+M22*V2)/65536.0); if(Rez2T!=0) M=Nfrac16/(double)Rez2T; else M=Nfrac16;
рдореВрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ,
Rez2T рдЯрд╛рдЗрдк
рдЗрдВрдЯ рдХрд╛ рдерд╛ , рд╢рд╛рдпрдж рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЯрд╛рдЗрдк рд░реВрдкрд╛рдВрддрд░рдг рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ рдЕрдЪрд╛рдирдХ
рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЗрдВрдЯ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЬрдмрд░рди рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рддреЛ
Rez2T рджреНрд╡рд╛рд░рд╛
Nfrac16 рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╕рдордп рдПрдХ
рдХреЛрдкреНрд░реЛрд╕реЗрд╕рд░ рдЕрдкрд╡рд╛рдж рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣реЛрдЧрд╛ред
рдФрд░ рдХреЛрдб рдХрд╛ рдПрдХ рдФрд░ рдЯреБрдХрдбрд╝рд╛ рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрдВрднреАрд░ рдЪрд┐рдВрддрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
void __fastcall _qrz_PushARMCycles(unsigned int clks) { uint32 arm,cnt; int timers=21000000;
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдХрд┐ рдореИрдВ рдХреЗрд╡рд▓ "рдЗрд╕" рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ) рдЬрдм рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдШрдбрд╝реА рдЪрдХреНрд░ рдПрдХ рдирд┐рд░рд╛рдХрд╛рд░ рд╡рд┐рдШрдЯрди рд╣реИ, рдиреАрдЪреЗ рдореВрд▓ рд╕реЗ рдХреЛрдб рд╣реИ:
void __fastcall _qrz_PushARMCycles(unsigned int clks) { uint32 arm; arm=(clks<<24)/ARM_CLOCK; qrz_AccARM+=arm*ARM_CLOCK; if( (qrz_AccARM>>24) != clks ) { arm++; qrz_AccARM+=ARM_CLOCK; qrz_AccARM&=0xffffff; } qrz_AccDSP+=arm*SND_CLOCK; qrz_AccVDL+=arm*(VDL_CLOCK); if(_clio_GetTimerDelay()) qrz_TCount+=arm*((__temporalfixes?12500000:25000000)/ (_clio_GetTimerDelay())); }
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд░реЛрдЧреА рди рддреЛ рдЬреАрд╡рд┐рдд рд╣реИ рдФрд░ рди рд╣реА рдореГрдд рд╣реИ, рдПрдореБрд▓реЗрдЯрд░ рдХреЛрд░ рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рд╣реИрдВ, рд╕рднреА рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реБрдП, рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИред
рдлреАрдирд┐рдХреНрд╕ рдПрдореБ-рдкреНрд░реЛрдЬреЗрдХреНрдЯ - рдирдпрд╛ рдХрд░реНрдиреЗрд▓ - рдирдП рдмрдЧред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд▓ :
http://www.arts-union.ruрд╕рдВрд╕реНрдХрд░рдг : 1.7
рд╕рд╣рд╛рдпрддрд╛ : 3DO рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдкреВрд░реНрдгрддрд╛ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рдЙрдиреНрдорддреНрдд рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде 3DO рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЙрдЪрд┐рдд рдХреЛрдб рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рд╕рд╛рде рдорд▓реНрдЯреАрд╕рд┐рд╕реНрдЯрдо рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдХреЗрд╡рд▓ 3DOред
рддреНрд░реБрдЯрд┐ - рдмрдирд╛рд╡рдЯ рдЫреАрд▓рдиреЗ!V501: рдмрд╛рдИрдВ рдУрд░ рдФрд░ '! =' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ: val.flags! = Val.flagsредрд▓рд╛рдЗрди 207 - gfx_celengine.h
struct gfxCelTexturePDECAttrib { uint32 pre0; uint32 flags; int plutcount; uint16 plut[32]; bool operator==(const gfxCelTexturePDECAttrib &val) const { if(val.pre0!=pre0)return false; if(val.flags!=val.flags)return false; if(val.plutcount!=plutcount)return false; for(int i=0;i<val.plutcount;i++) { if(val.plut[i]!=plut[i])return false; } return true; } };
рдЦреЗрд▓ рдХреЗ рджреМрд░рд╛рди рд▓рд╛рдкрд░рд╡рд╛рд╣реА рдФрд░ рдмрдирд╛рд╡рдЯ рджреЛрд╖ рдХреЗ рдХрд╛рд░рдг рд╣реБрдИ рдПрдХ рдЧрд▓рддреА, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рдХреИрд╢ рдореЗрдВ рдмрдирд╛рд╡рдЯ рдХреЗ рд╕реАрдИрдПрд▓ рдЭрдВрдбреЗ рдЕрд▓рдЧ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдпрдерд╛ рд╡реЗ рд╕рдорд╛рди рд╣реИрдВ, рдмрдирд╛рд╡рдЯ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рд╢реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдиреАрдЪреЗ рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рд╣реИ:
if(val.flags!=flags)return false;
рддреНрд░реБрдЯрд┐ - рд╕реНрдХреНрд░реАрди рдкрд░ рдХрдЪрд░рд╛!V579: рдореЗрдорд╕реЗрдЯ рдлрдВрдХреНрд╢рди рд╕реВрдЪрдХ рдФрд░ рдЗрд╕рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдПрдХ рдЧрд▓рддреА рд╣реИред рддреАрд╕рд░реЗ рддрд░реНрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВредрд▓рд╛рдЗрди 36 - vdlp_3do.cpp
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - PAL рдкреНрд░рд╛рд░реВрдк рдЧреЗрдо рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╕рдордп VDLP рд▓рд╛рдкрд░рд╡рд╛рд╣реА рдХрд╛ рд╢рд┐рдХрд╛рд░ рд╣реБрдЖред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдПрдореБрд▓реЗрдЯрд░ рдиреЗ рдХреЗрд╡рд▓ NTSC рдЧреЗрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд, рдФрд░ рдлреНрд░реЗрдо рдмрдлрд░ рдореЗрдВ 320 рдХрд╛ 240 рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
screen=new uint8[384*288*3*4]; memset(screen,0,sizeof(screen));
рдФрд░ рддрд╛рдХрд┐ рддреНрд░реБрдЯрд┐ рджреГрд╖реНрдЯрд┐ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рдП (рд╢рд╛рдмреНрджрд┐рдХ, рдХреНрдпреЛрдВрдХрд┐ рдЦреЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдмреЛрдзрдЧрдореНрдп рдлреНрд░реЗрдо рдХрдЪрд░рд╛ рд╕реЗ рднрд░рд╛ рд╣реЛрддрд╛ рд╣реИ), рдЖрдк рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
memset(screen,0,sizeof(uint8)*384*288*3*4);
рддреНрд░реБрдЯрд┐ - рд▓реЗрдХрд┐рди рдХреЛрдИ рдбрд┐рд╕реНрдХ рдирд╣реАрдВ рд╣реИ!V595: nullptr рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'рдЕрдиреБрдХреВрд▓рди' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 375, 376редрдкрдВрдХреНрддрд┐ 375 - dumplibrary.cpp
рдФрд░ рдлрд┐рд░, рд▓рд╛рдкрд░рд╡рд╛рд╣реА ... рд╡рд╕реНрддреБ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЕрдВрддрд┐рдо рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдиреНрдпрдерд╛, рдЖрд╡рд╢реНрдпрдХ рдЫрд╡рд┐рдпреЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЧрдП рдЧреЗрдо рдХреЗ рд▓реЛрдб рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЕрдкрд╡рд╛рдж рдорд┐рд▓реЗрдЧрд╛ред
dumpAdapter *adapt=createDumpAdapter(j, inf->Parent()->Attribute("attach").toString()); adapt->SetSign(signs[names[i]]); if(!adapt)break;
рдореИрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ? рдореБрдЭреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдпрд╛ рд╢рд╛рдо рдХреЛ рдЖрд░рд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╣рд▓реЗ рдЕрдиреБрднрд╡ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╕рдордп рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдирд╕реЛрдВ рдХреЛ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдореБ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╢реНрди рдХреА рдХреАрдордд рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдЖрд░рдПрдо рдХреЗ рд▓рд┐рдП рд╣реЗрдХреНрд╕-рд░реЗ рдбрд┐рдХрдореНрдкреЙрдЗрд▓рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬреЛ 3 рдбреАрдУ рдПрдореБрд▓реЗрд╢рди рдХреЛ рдХрдИ рдХрджрдо рдЖрдЧреЗ рд▓реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред