| 
				 (WIP) Портирование decap патча на Prince of Persia: Rival Swords 
 
	
		Порт decap патча RhymeKidder'a для PSP версии Rival Swords (ULUS-10240), включает разрубание монстров в игре. Залил во вложения пропатченный boot.bin и написанную на скорую руку простенькую утилитку, которая патчит boot.bin или iso образ.  
Большое спасибо riku.kh3  и Yoti  за помощь!     Архив   На днях я попробовал изучить исходники патча RhymeKidder'a  для PC версии, как он включает decap (разрубание монстров), нашёл похожий код в PSP версии с помощью ghidra, получилось даже частично включить decap внеся грубые правки в пару функций.
 
Небольшая видео-демка с частично включённым decap для монстров dark reptus:
https://streamable.com/ul4nx0 
	//PC - thunk_FUN_00849c30(), PS2 - thunk_FUN_004c0a80(), PSP - thunk_FUN_003132b4()
		HookMem( HOOK_CALL, 0x5e5ecb, (DWORD) &decap_brute ); //PS2 - 0x1a8fb4? PSP - 0x4096c?
		HookMem( HOOK_CALL, 0x675f29, (DWORD) &decap_archer ); //PS2 - 0x233144? PSP - 0xcd194?
		
		//dark reptus decap
		HookMem( HOOK_CALL, 0x6a3bb9, (DWORD) &decap ); //PS2 - 0x389d14, PSP - 0x20ed40
		HookMem( HOOK_CALL, 0x701fb8, (DWORD) &decap ); //PS2 - 0x2ff6f8? PSP - 0x173c18?
		HookMem( HOOK_CALL, 0x70200c, (DWORD) &decap ); //PS2 - 0x2ff798? PSP - 0x173cbc?
		
		HookMem( HOOK_CALL, 0x74662d, (DWORD) &decap ); //PS2 - 0x3fae88? PSP - 0x24b580?
		HookMem( HOOK_CALL, 0x746676, (DWORD) &decap ); //PS2 - 0x3faf1c? PSP - 0x24b618?
		
		HookMem( HOOK_CALL, 0x7b6d8b, (DWORD) &decap ); //PS2 - 0x442b98? PSP - 0x29294c?
		HookMem( HOOK_CALL, 0x7b6dd0, (DWORD) &decap ); //PS2 - 0x442c2c? PSP - 0x2929e4?
 
К сожалению, с полноценным пропатчиванием возникла проблема, а именно в первых двух функциях, для которых применяется более громоздкий алгоритм. Возник вопрос - чем возможно хукнуть вызов функции в boot.bin и какой аналог asm кода должен быть для MIPS?
 
Edit: добавил во вложения тестовый boot.bin  (ULUS-10240) с заменённой через hex decap функцией (без фиксов под brute/archer).  
			
			
			
			
				
			
			
			 			 
 Последний раз редактировалось ErikPshat; 02.07.2024 в 16:25.
 
 |