/*
This file is part of jpcsp.
Jpcsp is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Jpcsp is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Jpcsp. If not, see <http://www.gnu.org/licenses/>.
*/
package jpcsp.HLE.modules;
import java.util.Random;
import org.apache.log4j.Logger;
import jpcsp.Allegrex.compiler.RuntimeContext;
import jpcsp.HLE.BufferInfo;
import jpcsp.HLE.BufferInfo.LengthInfo;
import jpcsp.HLE.BufferInfo.Usage;
import jpcsp.HLE.HLEFunction;
import jpcsp.HLE.HLEModule;
import jpcsp.HLE.HLEUnimplemented;
import jpcsp.HLE.Modules;
import jpcsp.HLE.TPointer;
public class sceMemab extends HLEModule {
public static Logger log = Modules.getLogger("sceMemab");
private Random random = new Random();
@HLEUnimplemented
@HLEFunction(nid = 0x6DD7339A, version = 150)
public int sceMemab_6DD7339A() {
// Has no parameters
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0xD57856A7, version = 150)
public int sceMemab_D57856A7() {
// Has no parameters
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0xF742F283, version = 150)
public int sceMemab_F742F283(int unknown1, int unknown2, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=16, usage=Usage.out) TPointer unknown3, int unknown4) {
unknown3.clear(16);
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0x4B54EAAD, version = 150)
public int sceMemab_4B54EAAD(@BufferInfo(lengthInfo=LengthInfo.fixedLength, length=192, usage=Usage.out) TPointer unknownOutput1, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=160, usage=Usage.out) TPointer unknownOutput2) {
unknownOutput1.clear(192);
RuntimeContext.debugMemory(unknownOutput1.getAddress(), 192);
unknownOutput2.clear(160);
RuntimeContext.debugMemory(unknownOutput2.getAddress(), 160);
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0x9BF0C95D, version = 150)
public int sceMemab_9BF0C95D(@BufferInfo(lengthInfo=LengthInfo.fixedLength, length=192, usage=Usage.out) TPointer unknownOutput1, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=160, usage=Usage.in) TPointer unknownInput, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=272, usage=Usage.out) TPointer unknownOutput2) {
RuntimeContext.debugMemory(unknownInput.getAddress(), 160);
unknownOutput1.clear(192);
RuntimeContext.debugMemory(unknownOutput1.getAddress(), 192);
unknownOutput2.clear(272);
RuntimeContext.debugMemory(unknownOutput2.getAddress(), 272);
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0xC3981EE1, version = 150)
public int sceMemab_C3981EE1(@BufferInfo(lengthInfo=LengthInfo.fixedLength, length=192, usage=Usage.inout) TPointer unknownInputOuput, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=272, usage=Usage.in) TPointer unknownInput, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=256, usage=Usage.out) TPointer unknownOutput) {
unknownInputOuput.clear(192);
RuntimeContext.debugMemory(unknownInputOuput.getAddress(), 192);
RuntimeContext.debugMemory(unknownInput.getAddress(), 272);
unknownOutput.clear(256);
RuntimeContext.debugMemory(unknownOutput.getAddress(), 256);
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0x8ABE3445, version = 150)
public int sceMemab_8ABE3445(@BufferInfo(lengthInfo=LengthInfo.fixedLength, length=192, usage=Usage.out) TPointer unknownOutput, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=96, usage=Usage.in) TPointer unknownInput) {
unknownOutput.clear(192);
RuntimeContext.debugMemory(unknownOutput.getAddress(), 192);
RuntimeContext.debugMemory(unknownInput.getAddress(), 96);
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0x23E4659B, version = 150)
public int sceMemab_23E4659B(@BufferInfo(lengthInfo=LengthInfo.fixedLength, length=192, usage=Usage.inout) TPointer unknownInputOutput1, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=256, usage=Usage.inout) TPointer unknownInputOutput2, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=96, usage=Usage.out) TPointer unknownOutput) {
unknownInputOutput1.clear(192);
RuntimeContext.debugMemory(unknownInputOutput1.getAddress(), 192);
unknownInputOutput2.clear(256);
RuntimeContext.debugMemory(unknownInputOutput2.getAddress(), 256);
unknownOutput.clear(96);
RuntimeContext.debugMemory(unknownOutput.getAddress(), 96);
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0xCB5D3916, version = 150)
public int sceMemab_CB5D3916(@BufferInfo(lengthInfo=LengthInfo.fixedLength, length=60, usage=Usage.inout) TPointer unknownInputOutput, @BufferInfo(lengthInfo=LengthInfo.nextParameter, usage=Usage.in) TPointer unknownInput, int inputLength, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=32, usage=Usage.out) TPointer unknownOutput, int unknown1, int unknown2) {
unknownInputOutput.clear(60);
RuntimeContext.debugMemory(unknownInputOutput.getAddress(), 60);
RuntimeContext.debugMemory(unknownInput.getAddress(), inputLength);
unknownOutput.clear(32);
RuntimeContext.debugMemory(unknownOutput.getAddress(), 32);
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0xD47A50B1, version = 150)
public int sceMemab_D47A50B1(@BufferInfo(lengthInfo=LengthInfo.fixedLength, length=76, usage=Usage.inout) TPointer unknownInputOutput, @BufferInfo(lengthInfo=LengthInfo.nextParameter, usage=Usage.in) TPointer unknownInput, int inputLength, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=32, usage=Usage.out) TPointer unknownOutput, int unknown1, int unknown2) {
unknownInputOutput.clear(76);
RuntimeContext.debugMemory(unknownInputOutput.getAddress(), 76);
RuntimeContext.debugMemory(unknownInput.getAddress(), inputLength);
unknownOutput.clear(32);
RuntimeContext.debugMemory(unknownOutput.getAddress(), 32);
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0x3C15BC8C, version = 150)
public int sceMemab_3C15BC8C(@BufferInfo(lengthInfo=LengthInfo.fixedLength, length=68, usage=Usage.inout) TPointer unknownInputOutput, @BufferInfo(lengthInfo=LengthInfo.nextParameter, usage=Usage.in) TPointer unknownInput, int inputLength, @BufferInfo(lengthInfo=LengthInfo.fixedLength, length=16, usage=Usage.in) TPointer unknownInput2, int unknown2) {
unknownInputOutput.clear(68);
RuntimeContext.debugMemory(unknownInputOutput.getAddress(), 68);
RuntimeContext.debugMemory(unknownInput.getAddress(), inputLength);
RuntimeContext.debugMemory(unknownInput2.getAddress(), 16);
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0x16594684, version = 150)
public int sceMemab_16594684(@BufferInfo(lengthInfo=LengthInfo.fixedLength, length=16, usage=Usage.out) TPointer buffer) {
// Generates 4 pseudo-random numbers (PSP_KIRK_CMD_PRNG)
for (int i = 0; i < 4; i++) {
buffer.setValue32(i << 2, random.nextInt());
}
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0x9DE8C8CD, version = 150)
public int sceMemab_9DE8C8CD(@BufferInfo(lengthInfo=LengthInfo.fixedLength, length=16, usage=Usage.in) TPointer xorKey, @BufferInfo(lengthInfo=LengthInfo.nextParameter, usage=Usage.inout) TPointer buffer, int bufferLength) {
// Encrypting (PSP_KIRK_CMD_ENCRYPT) the data in unknownInputOutput buffer
RuntimeContext.debugMemory(buffer.getAddress(), bufferLength);
return 0;
}
@HLEUnimplemented
@HLEFunction(nid = 0x9BF1A0A4, version = 150)
public int sceMemab_9BF1A0A4(@BufferInfo(lengthInfo=LengthInfo.fixedLength, length=16, usage=Usage.in) TPointer xorKey, @BufferInfo(lengthInfo=LengthInfo.nextParameter, usage=Usage.inout) TPointer buffer, int bufferLength) {
// Decrypting (PSP_KIRK_CMD_DECRYPT) the data in unknownInputOutput buffer
RuntimeContext.debugMemory(buffer.getAddress(), bufferLength);
return 0;
}
}