LUISP13 escribió:La pregunta es si el administrador de asignaciones de memoria de la psp determina realmente los huecos que utilizará de forma aleatoria o si por lo contrario las tiene preestablecidas.
Depende. Para un juego dado en un FW dado, el mapa de memoria siempre será el mismo (ojo, me refiero a la posición de los bloques de memoria, no a los datos, obviamente

). En VSH hay una pequeña aleatoriedad introducida por Sony para fastidiar los exploits (de ahí que el ChickHEN sea tan inestable). Definitivamente, las direcciones de carga no están preestablecidas (
hardcoded) pero al ser el algoritmo de carga siempre el mismo, el resultado siempre es el mismo.
LUISP13 escribió:En ese caso al encontrarlas ocupadas por otro proceso, utiliza otra combinación también establecida, no siendo un proceso aleatorio buscando el primer hueco libre. ¿Es posible que se de esta situación?
En PSP, existen 2 tipos de módulos: estáticos y relocalizables. Los módulos estáticos sólo se pueden cargar en una determinada dirección de memoria, y si ésta no está disponible, no se podrán cargar. Este tipo de módulo sólo puede ser el principal de un juego/homebrew, es decir, el primero que se carga. Los relocalizables (los famosos PRX, PlayStation Relocatable eXecutable) pueden cargarse en cualquier dirección de memoria. Para éstos el kernel busca el bloque libre de memoria más adecuado, generalmente en las posiciones altas de memoria (algo que me parece extraño, pero bueno). Para que nos entendamos, éste es el mapa de la memoria de usuario en PSP:
