рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдбреАрдПрд╕ рд╡реАрдбрд┐рдпреЛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗред
рд╡реАрдбрд┐рдпреЛ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХрдХрд░рдг
рд▓рдЧрднрдЧ рд╕рднреА рд╡реАрдбрд┐рдпреЛ рдореЛрдб рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдорд▓реНрдЯреАрд▓реЗрдпрд░" рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╣рдо 4 рдпреЛрдЬрдирд╛рдУрдВ (рдкреГрд╖реНрдарднреВрдорд┐) рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, "рдкреНрд▓рд╛рди" - "рдкреГрд╖реНрдарднреВрдорд┐" рд╣реЛред
рдХреБрд▓ 6 рдкреНрд░рдХрд╛рд░ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рд╣реИрдВ:
- рдлрд╝реНрд░реЗрдордмрдлрд╝рд░ - рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░рдХрд╛рд░ред рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж (16 рдмрд┐рдЯ) рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред (рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд);
- 3 рдбреА - рд╕реНрдХреНрд░реАрди рдкрд░ рдЪрд┐рддреНрд░ рдУрдкрдирдЧреЗрд▓ рдЬреИрд╕реА рдЖрдЬреНрдЮрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирддрд╛ рд╣реИ;
- рдкрд╛рда - рдкрд╛рда рдкреГрд╖реНрдарднреВрдорд┐ (рдЙрд░реНрдл рдЯрд╛рдЗрд▓) рдХреЛ 8x8 рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рдЗрд▓ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ;
- рд░реЛрдЯреЗрд╢рди - рд░реЛрдЯреЗрд╢рди рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрд▓ рд╡рд╛рд▓реА рдпреЛрдЬрдирд╛;
- рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдШреБрдорд╛рд╡ - рдлрд╝реНрд░реЗрдордмрдлрд╝рд░ рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдкрд┐рдХреНрд╕реЗрд▓ рдкреНрд░рддрд┐ 8 рдмрд┐рдЯреНрд╕ рдХреА рд░рдВрдЧ рдЧрд╣рд░рд╛рдИ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ, рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рд░реЛрдЯреЗрд╢рди рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЕрд▓реНрдлрд╛ рдмрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ;
- рдмрдбрд╝реЗ рдмрд┐рдЯрдореИрдк - рдмрдбрд╝реЗ 512x1024 рдпрд╛ 1024x512 рдЪрд┐рддреНрд░ 8 рдмрд┐рдЯ рдкреНрд░рддрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд╕рд╛рдеред
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рджреЛрдиреЛрдВ Nintendo рдбреАрдПрд╕ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛрд░ рд╕рд╛рдЭрд╛ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА (656KB) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдФрд░ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ 9 рдмреИрдВрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рдП рд╕реЗ рдЖрдИ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рд╣реИред рдЗрди рдмреИрдВрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╡реАрдбрд┐рдпреЛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 0x06000000 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ ("рдореИрдк") рдореИрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдХреЗ рд╕рдВрдЧрдарди рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдмреИрдВрдХреЛрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
рдЦреЗрд▓ рдореЗрдВ рд╣рдо рд╡реАрдбрд┐рдпреЛ рдирд┐рдпрдВрддреНрд░рдХ (MODE_0_2D) рдХреЗ рд╢реВрдиреНрдп рдЧреНрд░рд╛рдлрд┐рдХ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ 4 рдЯрд╛рдЗрд▓ рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред рдиреАрдЪреЗ рдХреА рд╕реНрдХреНрд░реАрди рдкрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрд░) рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЧреЗрдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ (рдЪрд▓рддреА рдЪрд┐рдкреНрд╕) рд╣реЛрдЧрд╛, рдФрд░ рджреВрд╕рд░рд╛ рд╕реНрдкреНрд▓реИрд╢ рд╕реНрдХреНрд░реАрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдКрдкрд░реА рд╕реНрдХреНрд░реАрди (рдореБрдЦреНрдп рдХреЛрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдкрд╛рдареНрдп рд╕реВрдЪрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
videoSetMode(MODE_0_2D | DISPLAY_BG0_ACTIVE); //
videoSetModeSub(MODE_0_2D | DISPLAY_BG1_ACTIVE | DISPLAY_BG0_ACTIVE); //
* This source code was highlighted with Source Code Highlighter .
рдЕрдм рдЯрд╛рдЗрд▓ рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдореЛрдб рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдХреЗ рд╕рдВрдЧрдарди рдореЗрдВ рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛ред рдЗрд╕ рдореЛрдб рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдЫрд╡рд┐ рддрдерд╛рдХрдерд┐рдд рдЯрд╛рдЗрд▓ рдХрд╛рд░реНрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рдЬрд┐рд╕реЗ рдЫрд╡рд┐ рдореЗрдВ 8x8 рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЯрд╛рдЗрд▓реЗрдВ рдЦреБрдж рдХреЛ рдПрдХ рдЕрд▓рдЧ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдирд┐рдпрдВрддреНрд░рдХ рдирдХреНрд╢реЗ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЯрд╛рдЗрд▓реНрд╕ рдирд┐рдпрдВрддреНрд░рдг рд░рдЬрд┐рд╕реНрдЯрд░ (рд╕реАрдЖрд░) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред 8 рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП (4 рдореБрдЦреНрдп рдХреЛрд░ рдкрд░ рдФрд░ 4 рдорд╛рдзреНрдпрдорд┐рдХ рдкрд░) рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ 3 рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: SUB_BG0_CR, SUB_BG1_CR рдФрд░ BG0_CR - рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХред
рдереЛрдбрд╝реА рддрд░рдХреАрдм рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рд░рдЬрд┐рд╕реНрдЯрд░ 16 рдмрд┐рдЯ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рдЖрдкрдХреЛ рдХрд╛рд░реНрдб рдкрддреЗ рдФрд░ рдЯрд╛рдЗрд▓реНрд╕ рдФрд░ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдкрддреЗ рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдкрддреЗ рдХреЗ рд▓рд┐рдП 5 рдмрд┐рдЯреНрд╕ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЯрд╛рдЗрд▓реНрд╕ рдХреЛ 16K рдХреА рдСрдлрд╕реЗрдЯ рдХреЗ рд╕рд╛рде 32 рдЖрдзрд╛рд░ рдкрддреЗ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ 2K рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде 32 рдкрддреЗ рдкрд░ рдХрд╛рд░реНрдбред
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╡реЗ рдПрдХ рдореЗрдореЛрд░реА рдмреИрдВрдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рд╣реИрдВ:
![](https://habrastorage.org/storage/habraeffect/06/5c/065c849ed13d34239ff38193a2294b15.png)
рд╣рдореЗрдВ рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП 2 рдЯрд╛рдЗрд▓ рдХрд╛рд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╡реЗ рдЖрдзрд╛рд░ рдкрддреЗ 0 рдФрд░ 1 рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрдВрдЧреЗред рд╣рдореЗрдВ рд╕реНрд╡рдпрдВ рдЯрд╛рдЗрд▓реНрд╕ рдХреЗ 2 рд╕реЗрдЯ рднреА рдЪрд╛рд╣рд┐рдПред рдЯрд╛рдЗрд▓реНрд╕ рдХрд╛ рд╢реВрдиреНрдп рдЖрдзрд╛рд░ рдкрддрд╛ рдХрд╛рд░реНрдб рдХреА рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЖрдзрд╛рд░ рдкрддреЗ рдирдВрдмрд░ 1 рд╕реЗ, рд╣рдо рдЯрд╛рдЗрд▓ рдЯрд╛рдЗрд▓ рд▓рдЧрд╛рдПрдВрдЧреЗред рд╡реЗ 36 KB рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдзрд╛рд░ рдкрддреЗ 2, 3 рдФрд░ 4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЕрдЧрд▓рд╛, рдкрддрд╛ 5 рд╕реЗ, рд╣рдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реНрдХреНрд░реАрди рд╕реЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрд▓реНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд░рдЦреЗрдВрдЧреЗред
рд╢реАрд░реНрд╖ рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП, рд╣рдо 0 рдХреЗ рдЖрдзрд╛рд░ рдкрддреЗ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрд▓ рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрд┐рд╕ рдЯрд╛рдЗрд▓ рдореЗрдВ рд░реВрд╕реА рдлрд╝реЙрдиреНрдЯ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рд╣рдо рдЗрд╕реЗ рдкрддреЗ рд╕реЗ рдбрд╛рд▓реЗрдВрдЧреЗред рдкрд╛рда рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рд░рдЬрд┐рд╕реНрдЯрд░ рдХрдВрд╕реЛрд▓ рдкреНрд░рд╛рд░рдВрдн рдХреЗ рджреМрд░рд╛рди libNDS рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ред
рдЕрдм 16 рд░рдВрдЧреАрди рдЯрд╛рдЗрд▓реНрд╕ (BG_COLOR16) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ:
int tile_base = 1;
int map_base = 0;
int tile_base_s = 5;
int map_base_s = 1;
int char_base = 1;
int scr_base = 0;
REG_BG0CNT_SUB = BG_COLOR_16 | BG_TILE_BASE(tile_base_s) | BG_MAP_BASE(map_base_s); //
REG_BG1CNT_SUB = BG_COLOR_16 | BG_TILE_BASE(tile_base) | BG_MAP_BASE(map_base); //
* This source code was highlighted with Source Code Highlighter .
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рдЖрдзрд╛рд░ рдкрддреЗ рдкрд░ рдЯрд╛рдЗрд▓ рдФрд░ рдХрд╛рд░реНрдб рд▓рдЧрд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА (32KB) рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдХреНрдд рдореЗрдореЛрд░реА рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред
рдЕрдм рд╣рдо рдЖрдзрд╛рд░ рдкрддрд╛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдирд┐рд░рдкреЗрдХреНрд╖ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдкрддреЗ рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдХрд╛рдо рдХрд░ рд╕рдХреЗрдВ:
u16* sub_tile = (u16*)BG_TILE_RAM_SUB(tile_base);
u16* sub_map = (u16*)BG_MAP_RAM_SUB(map_base);
u16* sub_tile0 = (u16*)BG_TILE_RAM_SUB(tile_base_s);
u16* sub_map0 = (u16*)BG_MAP_RAM_SUB(map_base_s);
u16* tile_char = (u16*)BG_TILE_RAM(char_base);
u16* map_char = (u16*)BG_MAP_RAM(scr_base);
* This source code was highlighted with Source Code Highlighter .
рдлрд┐рд░ рд╣рдорд╛рд░реА рдЯрд╛рдЗрд▓реЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ:
memcpy(( void *)sub_tile, (u8*)tilesTiles, 192*192/2); //
for (i=0; i < 16; ++i)
BG_PALETTE_SUB[i] = tilesPal[i]; //
memcpy(( void *)sub_tile0, (u8*)startTiles, 256*192/2); //
for (i=0; i < 16; ++i)
BG_PALETTE_SUB[i+16] = startPal[i]; //
* This source code was highlighted with Source Code Highlighter .
рдФрд░ рддреБрд░рдВрдд рдЫрдк рд╕реНрдХреНрд░реАрди рдЯрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдирд┐рдЪрд▓реЗ рд╕реНрдХреНрд░реАрди рдХреА рд╢реВрдиреНрдп рдпреЛрдЬрдирд╛ рднрд░реЗрдВ:
for (i=0; i< 24*32; i++) //
sub_map0[i] = (u16)(i)|0x1000;
* This source code was highlighted with Source Code Highlighter .
рдЯрд╛рдЗрд▓ рдХреЗ рдирдХреНрд╢реЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЯрд╛рдЗрд▓ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдореЗрдВ рдЕрдХреНрд╖реЛрдВ рдХреЗ рд╕рд╛рде рдкреИрд▓реЗрдЯ рдФрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдмреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рдкрд╣рд▓реЗ рдкреИрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирдХреНрд╢реЗ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП 12 рдмрд┐рдЯреНрд╕ рд╕реЗ 1 рддрдХ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рд╣рдо рдПрдХ рдЯрд╛рдЗрд▓ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рдмрд┐рдЯрдореИрдк рддрддреНрд╡ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦреЗрдВрдЧреЗ:
рдмрд┐рдЯреНрд╕ | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
рдирд┐рдпреБрдХреНрддрд┐ | рдкреИрд▓реЗрдЯ | Vetrik.otrред | Goriz.otrред | рдЯрд╛рдЗрд▓ рдирдВрдмрд░ |
рд╣рдо libNDS рдХрдВрд╕реЛрд▓ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ:
PrintConsole *console = consoleInit(NULL, 0, BgType_Text4bpp, BgSize_T_256x256, scr_base, char_base, true , true );
ConsoleFont font;
font.gfx = (u16*)pa_text2Tiles; //
font.pal = (u16*)pa_text2Pal; //
font.numChars = 256; //
font.numColors = pa_text2PalLen/2;
font.bpp = 4;
font.asciiOffset = 0;
font.convertSingleColor = false ;
consoleSetFont(console, &font);
* This source code was highlighted with Source Code Highlighter .
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд╣рдо PAlib рдПрдиреНрдХреЛрдбреЗрдб CP1251 рдХреЗ рд▓рд┐рдП ClusterM рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдлрд╝реЙрдиреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЬрдм рдпреВрдирд┐рдХреЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд░рд╣реА рдереА, рддреЛ ASCII рдХреЗ рдКрдкрд░реА рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЯреВрдЯ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд░реВрд╕реА рдкрд╛рда рдХреЗ рдмрд┐рдирд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЯрд╛рдЗрд▓ рдХреЗ рдирдХреНрд╢реЗ рдкрд░ рд╡рд░реНрдг рдХреЛрдб рд▓рд┐рдЦрдХрд░ рд╕реАрдзреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рднреА рдЯрд╛рдЗрд▓реЗрдВ рдмреАрдПрдордкреА рд╕реЗ рдЧреНрд░рд┐рдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред
рдХреАрдмреЛрд░реНрдб рдФрд░ рдЯрдЪрд╕реНрдХреНрд░реАрди
LibNDS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рди рдХреЗрд╡рд▓ ARM9 рдкреНрд░реЛрд╕реЗрд╕рд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ ARM7 рднреАред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рддрдереНрдп рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЛ рд▓рд╛рд▓рдЪ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдмрд╕ рдХреНрд▓рд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрдирдХреА () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ KeyHeld () рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рдХреБрдВрдЬреА рдХреЛ рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдЯрдЪ рд╕реНрдХреНрд░реАрди рдХреЛ рджрдмрд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдореВрд▓реНрдп рдХреЗ рдмрд┐рдЯреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдХреБрдВрдЬреА рдкрд░рд┐рднрд╛рд╖рд┐рдд | рдореБрдЦреМрдЯрд╛
рдмрд┐рдЯ | рдПрд╕реЛрд╕рд┐рдПрдЯреЗрдб рдЗрдирдкреБрдЯ |
---|---|---|
KEY_A | 1 << 0 | рдмрдЯрди рдП |
KEY_B | 1 << 1 | рдмрдЯрди рдмреА |
KEY_SELECT | рез << реи | рдмрдЯрди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ |
KEY_START | рез << рей | рдмрдЯрди рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ |
KEY_RIGHT | 1 << 4 | рдмрдЯрди рд╕рд╣реА |
KEY_LEFT | 1 << 5 | рдмрд╛рдпрд╛рдБ рдмрдЯрди |
KEY_UP | 1 << 6 | рдЕрдк рдмрдЯрди |
KEY_DOWN | рез << 7 | рдиреАрдЪреЗ рдмрдЯрди |
KEY_R | рез << 8 | рдЖрд░ рдмрдЯрди |
KEY_L | 1 << 9 | рдПрд▓ рдмрдЯрди |
KEY_X | 1 << 10 | рдПрдХреНрд╕ рдмрдЯрди |
KEY_Y | рез << резрез | Y рдмрдЯрди |
KEY_TOUCH | рез << резреи | рдЯрдЪ рд╕реНрдХреНрд░реАрди |
KEY_LID | рез << резрей | рдХрд╡рд░ рдмрдВрдж |
рддреЛ рд╣рдо рдЗрд╕реЗ рдПрдХ рд▓реВрдк рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ:
scanKeys();
held = keysHeld();
* This source code was highlighted with Source Code Highlighter .
рдФрд░ рдлрд┐рд░, рдЗрд╕ рддрдереНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдпреЛрдЬрд┐рдд рдЪрд░ рдореЗрдВ рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ KEY_TOUCH рдмрд┐рдЯ рд╕реЗрдЯ рд╣реИ, рддреЛ рдПрдХ рдЯрдЪрд╕реНрдХреНрд░реАрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЯрдЪрд╕реНрдХреНрд░реАрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯрд╛рдЗрд▓рд╕ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдЯрдЪрдкреЙрдЗрдВрдЯ рд╕рдВрд░рдЪрдирд╛ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо px рдФрд░ py рдлрд╝реАрд▓реНрдб рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдЯрд╛рдЗрд▓рд╕ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реЛрддреЗ рд╣реИрдВ:
if (held&KEY_TOUCH){ //
touchRead(&touchXY);
...
}
* This source code was highlighted with Source Code Highlighter .
рдмреАрдЪ рдореЗрдВ рдЖрддрд╛ рд╣реИ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП (рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИ), рд╕рдордп рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдЯрд╛рдЗрдорд░ рд╕реЗ рдЗрдВрдЯрд░рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред рдЗрдВрдЯрд░рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИрдВ:
рдкрд╣рд▓рд╛ рдирд╛рдо | рдкрддрд╛ | рдЖрдХрд╛рд░ | рд╡рд┐рд╡рд░рдг |
---|---|---|---|
REG_IME | 0x04000208 | 16 рдмрд┐рдЯреНрд╕ | рдореБрдЦреНрдп рд╡реНрдпрд╡рдзрд╛рди рд╕рдХреНрд╖рдо рд░рдЬрд┐рд╕реНрдЯрд░ |
REG_IE | 0x04000210 | 32 рдмрд┐рдЯреНрд╕ | рдЗрдВрдЯрд░рдкреНрдЯ рдЗрдиреЗрдмрд▓ рд░рдЬрд┐рд╕реНрдЯрд░ |
REG_IF | 0x04000214 | 32 рдмрд┐рдЯреНрд╕ | рдЗрдВрдЯрд░рдкреНрдЯ рдлреНрд▓реИрдЧ рд░рдЬрд┐рд╕реНрдЯрд░ |
рдЗрдВрдЯрд░рдкреНрдЯ рдорд╛рд╕реНрдЯрд░ рдЗрдиреЗрдмрд▓реНрдб рд░рдЬрд┐рд╕реНрдЯрд░ рд╕рднреА рд░реБрдХрд╛рд╡рдЯ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЗрдВрдЯрд░рдкреНрдЯ рдЗрдиреЗрдмрд▓ рд░рдЬрд┐рд╕реНрдЯрд░ рдЖрдкрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡реНрдпрд╡рдзрд╛рдиреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░реБрдХрд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:
рдмрд┐рдЯ | рдкрд░рд┐рд╡рд╛рджреЛрдВ рдореЗрдВ рдирд╛рдо | рд╡рд┐рд╡рд░рдг |
---|---|---|
0 | IRQ_VBLANK | рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд░рд┐рд╡рд░реНрд╕ рдмреАрдо |
1 | IRQ_HBLANK | рдХреНрд╖реИрддрд┐рдЬ рд╡рд╛рдкрд╕реА рдХрд┐рд░рдг |
2 | IRQ_YTRIGGER | REG_VCOUNT рд▓рд╛рдЗрди рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ |
3 | IRQ_TIMER0 | рдЯрд╛рдЗрдорд░ 0 рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ |
4 | IRQ_TIMER1 | рдЯрд╛рдЗрдорд░ 1 рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ |
5 | IRQ_TIMER2 | рдЯрд╛рдЗрдорд░ 2 рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ |
6 | IRQ_TIMER3 | рдЯрд╛рдЗрдорд░ 3 рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рдЧрдпрд╛ |
7 | IRQ_NETWORK | ? |
8 | IRQ_DMA0 | рдбреАрдПрдордП реж |
9 | IRQ_DMA1 | рдбреАрдПрдордП рез |
10 | IRQ_DMA2 | рдбреАрдПрдордП реи |
11 | IRQ_DMA3 | рдбреАрдПрдордП рей |
12 | IRQ_KEYS | рдХреБрдВрдЬреА рджрдмрд╛рдпрд╛ |
13 | IRQ_CART | GBA рдХрд╛рд░рддреВрд╕ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ |
16 | ARM7 IPC рдореЗрдВ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИ | |
17 | рдЗрдирдкреБрдЯ FIFO рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ | |
18 | рдЖрдЙрдЯрдкреБрдЯ рдлреАрдлреЛ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ | |
19 | IRQ_CARD | рдбреАрдПрд╕ рдХрд╛рд░реНрдб рдбреЗрдЯрд╛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ |
20 | IRQ_CARD_LINE | рдбреАрдПрд╕ рдХрд╛рд░реНрдб рдмрд╛рдзрд┐рдд 3 |
21 | GFX FIFO рд╡реНрдпрд╡рдзрд╛рди |
рдЗрдВрдЯрд░рдкреНрдЯ рдлрд╝реНрд▓реИрдЧреНрд╕ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рджреНрд╡рд╛рд░рд╛ рддрдм рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рд╡реНрдпрд╡рдзрд╛рди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЗрдВрдЯрд░рдкреНрдЯ рдмрд┐рдЯ рдорд╛рд╕реНрдХ рд╣реЛрддрд╛ рд╣реИред
рд╣рдо рд╕реАрдзреЗ рдЗрдВрдЯрд░рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рд▓рд┐рдмреЗрдВрдб рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо "рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд░рд┐рд╡рд░реНрд╕ рдмреАрдо" рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдХреНрд░реАрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╡реНрдпрд╡рдзрд╛рди рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдЪрдВрдЪрд▓рддрд╛ рдФрд░ рдЫрд╡рд┐ рдлрд╛рдбрд╝рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕ рд░реБрдХрд╛рд╡рдЯ рдХреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдПрдХ рдЪрд┐рддреНрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВрдЧреЗ:
void IRQ_vblank( void ){ //
... ...
}
...
irqSet(IRQ_VBLANK, IRQ_vblank); // .
* This source code was highlighted with Source Code Highlighter .
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЯрд╛рдЗрдорд░ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЙрд╕ рдкрд░ рдмрд╛рдзрд╛ рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рдХрд░реЗрдВред LibNDS рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЯрд╛рдЗрдорд░рд╕реНрдЯрд╛рд░реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЯрд╛рдЗрдорд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдбрд┐рд╡рд╛рдЗрдбрд░, рдЖрд╡реГрддреНрддрд┐ рдФрд░ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
void timer0_function( void ){
... ...
}
...
timerStart(0, ClockDivider_256, TIMER_FREQ_256(1000), timer0_function); // 256 1000
* This source code was highlighted with Source Code Highlighter .
рдЕрдВрдд рдореЗрдВ, рд▓рд┐рдмрдВрдбреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдПрдХ рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - swiWaitForVBlankред рдпрд╣ ARM9 рдкреНрд░реЛрд╕реЗрд╕рд░ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдПрдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдкрд┐рдЫрдбрд╝реЗ рд░реБрдХрд╛рд╡рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рд░рд▓ рдЧреЗрдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЖрдк рдЧреЗрдо "рдЯреИрдЧ" рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рд╣реИред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:
![](https://habrastorage.org/storage/habraeffect/af/a2/afa2da890f3986bb2d81d6195ca11686.png)