Ps2toolchain: ELF рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдЯ рдХрднреА-рдХрднреА рджреВрд╖рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдЬрдире░ 2020  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ps2dev/ps2toolchain

рдХреЛрдб рдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧ рдЕрдорд╛рдиреНрдп рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЧрд╛:

#include <stdio.h>

extern const int i1, i2, i3, i4;

int main()
{
        printf("i1=%d\n", i1);
        printf("i2=%d\n", i2);
        printf("i3=%d\n", i3);
        printf("i4=%d\n", i4);

        return 0;
}

const int dum1=1;
const int dum2=2;
const int dum3=3;
//const int dum4=4;
//const int dum5=5;
//const int dum6=6;
const int i1=1111;
const int i2=2222;
const int i3=3333;
const int i4=4444;

рдЬрдм рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдбрдореА рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗ:
рдЕрдЪреНрдЫрд╛:

i1=1111
i2=2222
i3=3333
i4=4444

рдЦрд░рд╛рдм рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

i1=1111
i2=2222
i3=3333
i4=0
i1=1111
i2=2222
i3=0
i4=0



md5-a7a998816ff6355b19ebaf6bb16f20b1



i1=1111
i2=0
i3=0
i4=0



md5-50fa41c3352404f2cadd42c17104c34f



ee-gcc -o hello.elf hello.c
ps2client -h 192.168.1.10 execee host:hello.elf

рдЗрд╕ рдмрдЧ рдХреЗ рдХрд╛рд░рдг OPL рдореЗрдВ size_ds34bt_irx рдФрд░/рдпрд╛ size_ds34usb_irx 0 рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдмреВрдЯ (рдХрд╛рд▓реА рд╕реНрдХреНрд░реАрди) рдкрд░ OPL рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреНрд░реИрд╢ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред OPL рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдерд╛рди рдкрд░ рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рдмрдЧ рдкреНрд░рдХрдЯ рдФрд░ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдорд╛рдиреНрдп рдорд╛рди рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрддрд┐рдо 128 рдмрд┐рдЯ рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:
ee-objdump -D hello.elf

рдпреЛрдЧрд┐рдиреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рди рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЛрдЧрд┐рдиреА рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдХрд╣реАрдВ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рдмрдЧ рдорд┐рд▓рд╛:

crt0 16byte/128bit рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ .bss рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП .bss рдЕрдиреБрднрд╛рдЧ рдХреЛ рдХрдо рд╕реЗ рдХрдо 16byte/128bit рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдкрд╣рд▓реЗ рдпрд╣ ps2sdk рдореЗрдВ рд▓рд┐рдВрдХрд░рдлрд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЧрд╛рд░рдВрдЯреАрдХреГрдд рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд┐рдиреБрдЯрд┐рд▓реНрд╕ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рд┐рдВрдХрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рд╛: https://github.com/ps2dev/ps2toolchain/commit/7c494f217d379639aaca23d3c588e48986177a51) crt0 рдХреЗ рд▓рд┐рдП .bss рдЕрдиреБрднрд╛рдЧ рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред .sdata рдореЗрдВ рдЕрдВрддрд┐рдо рдХреБрдЫ рдорд╛рдиреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рднреА рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдмрд┐рд▓реНрдЯрд┐рди рдмрд┐рдиреБрдЯрд┐рд▓реНрд╕ рд▓рд┐рдВрдХрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рдмрдирд╛рдпрд╛ рд╣реИред рдпрд╣ рдиреНрдпреВрд▓рд┐рдм рдкреАрдЖрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ред

рд╕рднреА 9 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗ

рдЕрдЧрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдИрдПрд▓рдПрдл рдХреЗ рднреАрддрд░ рдореВрд▓реНрдп рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ ps2link рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдиреЗ рдЕрдкрдирд╛ рдИрдПрд▓рдПрдл рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡рддрдГ ps2link рд╕реНрдореГрддрд┐ рдХреЛ рд╕рд╛рдлрд╝ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред sceSifLoadElf() рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рднреА рдореЗрдореЛрд░реА рдХреЛ рд╢реВрдиреНрдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЦрд░рд╛рдм рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде ELF рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдореЛрд░реА рдХреЛ рдорд┐рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдЧрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдИрдПрд▓рдПрдл рдХреЗ рднреАрддрд░ рдореВрд▓реНрдп рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ ps2link рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдиреЗ рдЕрдкрдирд╛ рдИрдПрд▓рдПрдл рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ?

рд╣рд╛рдБ, ELF рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╢реАрд░реНрд╖рдХ рдереЛрдбрд╝рд╛ рднреНрд░рд╛рдордХ рд╣реИред рдореИрдВ рдПрдХ рдФрд░ рд▓реЛрдбрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡рддрдГ ps2link рд╕реНрдореГрддрд┐ рдХреЛ рд╕рд╛рдлрд╝ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред sceSifLoadElf() рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рднреА рдореЗрдореЛрд░реА рдХреЛ рд╢реВрдиреНрдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЦрд░рд╛рдм рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде ELF рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдореЛрд░реА рдХреЛ рдорд┐рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред

const int in .sdata (рд╕реНрдерд┐рд░ рдбреЗрдЯрд╛) рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ .sdata рдЕрдиреБрднрд╛рдЧ рдХреЛ рдПрд▓реНрдл рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕реНрдореГрддрд┐ рдореЗрдВ 16bytes/128bits рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдХрд╣реАрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдЕрдЧрд░ .sdata рд╕реЗрдХреНрд╢рди 128рдмрд┐рдЯреНрд╕ рдХрд╛ рдЧреБрдгрдЬ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╢реЗрд╖ рдбреЗрдЯрд╛ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕реНрдерд╛рди рдкрд░ рд╢реВрдиреНрдп рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рдпрд╛ рд╢рд╛рдпрдж .sdata рдЕрдиреБрднрд╛рдЧ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рд╢реВрдиреНрдп рдЕрдиреБрднрд╛рдЧ рдЗрд╕рдХреЗ рдЖрдЧреЗ рдареАрдХ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИ? рдФрд░ рдЬреАрд░реЛрдЗрдВрдЧ .sdata рдХреЗ рдХреЙрдкреА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реЛрддрд╛ рд╣реИ?

рдирдорд╕реНрддреЗ,
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ @sp193 рд╕рд╣реА рдерд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ ps2link рдореЗрдВ рдереА, рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм рдпрд╣ рд╕реНрдХреНрд░реАрди рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП scr_prinf рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ULaunchELF рдпрд╛ PCSX2 . рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛

рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА

#include <stdio.h>

void init_scr(void);
void scr_printf(const char *, ...) __attribute__((format(printf,1,2)));

extern const int i1, i2, i3, i4;

int main()
{
   init_scr();
   scr_printf("i1=%d\n", i1);
   scr_printf("i2=%d\n", i2);
   scr_printf("i3=%d\n", i3);
   scr_printf("i4=%d\n", i4);

   while(1) {}

   return 0;
}

const int dum1=1;
const int dum2=2;
const int dum3=3;
const int dum4=4;
const int dum5=5;
const int i1=1111;
const int i2=2222;
const int i3=3333;
const int i4=4444;

рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛

ee-gcc -o hello.elf hello.c -L$PS2SDK/ee/lib -ldebug

рдЖрдЙрдЯрдкреБрдЯ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, PCSX2 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░
Screenshot 2020-01-15 at 09 47 54

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╡рд╣реА рд╣реИ рдЬреЛ @rickgaiser рдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред

i1=1111
i2=2222
i3=3333
i4=0

рдзрдиреНрдпрд╡рд╛рдж

ps2link рдпреЛрдЧрд┐рдиреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SifLoadElf рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
https://github.com/ps2dev/ps2link/blob/1ec566c54bb8b567ee0a702982b392f37807b5e2/ee/cmdHandler.c#L138

ps2sdk рд╕реЗ:
https://github.com/ps2dev/ps2sdk/blob/5385a6ccd9db8c9fa54ecfd8af45322a5908bf6d/ee/kernel/src/loadfile.c#L129

рдпрд╣ IOP рдкрд░ RPC рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд▓реЛрдбрдлрд╛рдЗрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ред

рдХреНрдпрд╛ рдпрд╣ LOADFILE рдореЗрдВ рдПрдХ рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╛ рд╢рд╛рдпрдж рд╣рдорд╛рд░рд╛ рдЯреВрд▓рдЪреЗрди рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдЙрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ LOADFILE рдЙрдирд╕реЗ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ sbv_patches рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ LOADFILE рдХреЛ рдкреИрдЪ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╡реЗ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рднреА рдкреИрдЪ рдХрд░рддреЗ рд╣реИрдВ?

LOADFILE рдХреЗ рд▓рд┐рдП SBV рдкреИрдЪ LoadModuleBuffer() рдХреЗ рд▓рд┐рдП RPC рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдерд╛ред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рд╡рд╣ рдлрд╝рдВрдХреНрд╢рди LOADFILE рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рд╕реЛрдиреА рдЗрд╕реЗ рднреА рдкреИрдЪ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореБрдЭреЗ рдмрдЧ рдорд┐рд▓рд╛:

crt0 16byte/128bit рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ .bss рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП .bss рдЕрдиреБрднрд╛рдЧ рдХреЛ рдХрдо рд╕реЗ рдХрдо 16byte/128bit рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдкрд╣рд▓реЗ рдпрд╣ ps2sdk рдореЗрдВ рд▓рд┐рдВрдХрд░рдлрд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЧрд╛рд░рдВрдЯреАрдХреГрдд рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд┐рдиреБрдЯрд┐рд▓реНрд╕ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓рд┐рдВрдХрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рд╛: https://github.com/ps2dev/ps2toolchain/commit/7c494f217d379639aaca23d3c588e48986177a51) crt0 рдХреЗ рд▓рд┐рдП .bss рдЕрдиреБрднрд╛рдЧ рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред .sdata рдореЗрдВ рдЕрдВрддрд┐рдо рдХреБрдЫ рдорд╛рдиреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рднреА рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдмрд┐рд▓реНрдЯрд┐рди рдмрд┐рдиреБрдЯрд┐рд▓реНрд╕ рд▓рд┐рдВрдХрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рдмрдирд╛рдпрд╛ рд╣реИред рдпрд╣ рдиреНрдпреВрд▓рд┐рдм рдкреАрдЖрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ред

рдЖрдИрдЖрдИрдЖрд░рд╕реА, рдЖрдк рд╣рдореЗрд╢рд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреБрднрд╛рдЧ 128-рдмрд┐рдЯ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реИрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдбреАрдПрдордП рд╕рдВрд░реЗрдЦрдг рдпрд╛ рдХреБрдЫ рдРрд╕реЗ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рдерд╛ рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдерд╛ред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдиреНрдпреВрд▓рд┐рдм рдкреАрдЖрд░ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛: https://github.com/ps2dev/ps2toolchain/commit/f5544b8d68fbdf611e277e9583714ae6627f3a61

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

terremoth picture terremoth  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lptech1024 picture lptech1024  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SignalSpectre picture SignalSpectre  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

siwka picture siwka  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ain picture ain  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ