Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [解説] SPRX Projectについて
- ※面倒なのでまだしっかりとまとめてはいません。
- 新しくSPRX作る場合は
- Visual C++ → SCE → PS3 → PS3 PPU Project
- Project typeはPPU PRX project
- ++++++++++++++++++++++++++++++
- Project立ち上げた後
- ソリューションエクスプローラーからprx.cppを開く
- エラーのどれでもいいので右クリックしてエラー元開く
- そのエラーページ上部に以下コード貼り付け
- #include <sys/sys_time.h>
- #include <sys/syscall.h>
- #include <sys/ppu_thread.h>
- #include <string.h>
- #include <sys/syscall.h>
- #include <stdarg.h>
- #include <stddef.h>
- #include <sys/timer.h>
- ++++++++++++++++++++++++++++++
- SYS_MODULE_INFOを追加し、以下コード貼り付け
- void sleep(usecond_t time)
- {
- sys_timer_usleep(time * 1000);
- }
- int console_write(const char * s)
- {
- uint32_t len;
- system_call_4(403, 0, (uint64_t) s, 32, (uint64_t) &len);
- return_to_user_prog(int);
- }
- sys_ppu_thread_t id;
- sys_ppu_thread_t create_thread(void (*entry)(uint64_t), int priority, size_t stacksize, const char* threadname)
- {
- if(sys_ppu_thread_create(&id, entry, 0, priority , stacksize, 0, threadname) != CELL_OK)
- {
- console_write("Thread creation failed\n");
- }
- else
- {
- console_write("Thread created\n");
- }
- return id;
- }
- ++++++++++++++++++++++++++++++
- PS3_PPU_Project1_prx_entryを追加し、以下コード貼り付け
- void thread_entry(uint64_t arg)
- {
- }
- //This is where all your mods will begin ^_^
- ++++++++++++++++++++++++++++++
- PS3_PPU_Project1_prx_entry内に以下コードを記述する
- create_thread(thread_entry, 0x4AA, 0x6000, "Main_Thread");
- return 0;
- ++++++++++++++++++++++++++++++
- 情報
- Writing the Memory//I'm not entirely sure if this is correct, but it should be.
- 1 byte - *(char*)0x0000000 = 0x01; //Yes this is literately how you write the memory in C++.
- 2 bytes - *(short*)0x00000000 = 0x01;
- 3 bytes - *(float*)0x00000000 = 0x01;
- 4 bytes - *(int*)0x00000000 = 0x01;
- 8 bytes - *(double*)0x00000000 = 0x01;
- 例
- for (;;)//Since the code practically runs once you'll need to add a loop
- {
- if (InGame())//Detects when it's InGame so it knows when to run and not every half a millisecond.
- {
- sleep(5000); //Sleeps for 5 seconds then executes your code below.
- *(char*)0x1786418 = 0x40; //Thanks to mango for the player speed offset, This sets your speed x2 so we'll know if it works or not ^_^
- }
- }
- ++++++++++++++++++++++++++++++
- 情報
- Reading the Memory
- same concept
- 1 byte - *(char*)0x0000000;
- 2 bytes - *(short*)0x00000000;
- 3 bytes - *(float*)0x00000000;
- 4 bytes - *(int*)0x00000000;
- 8 bytes - *(double*)0x00000000;
- 例
- for (;;)//Since the code practically runs once you'll need to add a loop
- {
- if (InGame())//Detects when it's InGame so it knows when to run and not every half a millisecond.
- {
- sleep(5000); //Sleeps for 5 seconds then executes your code below.
- if (*(char*)0x1786418 == 63)
- {
- *(char*)0x1786418 = 0x40; //Thanks to mango for the player speed offset, This sets your speed x2 so we'll know if it works or not ^_^
- }
- else
- { *(char*)0x1786418 = 0x3F; /*Obviously this wouldn't work because it would turn it on and off every 5 seconds*/ }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement