SetSp(0x0FFF,0x0EF8);
ClearBreakpoints();
SetMem(0x0100,mecmCode+8,0x100-8);
+ SetMem(0xa00,hd,seedSize);
SetMem(0x0ba2,hw,0x80);
AddBreakpoint(0x0000);
AddRomCallbacks();
DoMap(f,tmp,Get(0x48));
AddCycles(MapCycles());
break;
+ case 0x43:
+ DoMap(f);
+ break;
+ case 0x44:
+ GetMem(0x400,tmp,64,0);
+ DoMap(f,tmp);
+ SetMem(0x440,tmp,20,0);
+ break;
+ case 0x45:
+ GetMem(0x400,tmp,64,0);
+ DoMap(f,tmp,Get(0x48));
+ SetMem(0x440,tmp,20,0);
+ break;
case 0x4d:
DoMap(f,tmp,-((Get(0x48)<<16)|(Get(0x49)<<8)|Get(0x4a)));
SetMem(0x400,tmp,53,0);
BYTE4_LE(data+16,sctx.h0);
break;
case 0x45: // add wordsize bytes to SHA1 buffer and finalize SHA result
- if(wordsize) {
- if(wordsize>1) RotateBytes(data,wordsize);
- SHA1_Update(&sctx,data,wordsize);
+ if(dl) {
+ if(dl>1) RotateBytes(data,dl);
+ SHA1_Update(&sctx,data,dl);
}
- memset(data,0,64);
- SHA1_Final(data+64,&sctx);
+ SHA1_Final(data,&sctx);
+ RotateBytes(data,20);
break;
default:
return false;