void NES_DataLoad(LPWSTR NES_File)
{
FILE* fp;
//_wfopen_s(&fp,NES_File,LoadFormat) ;
//fread(&stNES.Magic_Number,4,1,fp) ;
//fread(&stNES.ROM_COUNT,1,1,fp) ;
//fread(&stNES.VROM_COUNT,1,1,fp) ;
//fread(&stNES.MixBitX,1,1,fp) ;
//fread(&stNES.MixBitY,1,1,fp) ;
__asm
{
push LoadFormat
push NES_File
lea eax,fp
push eax
call dword ptr[_wfopen_s]
add esp,0Ch
cmp dword ptr[fp],0h
jne noerror
push 10h
push 0h
push 0h
push 0h
call dword ptr[MessageBoxA]
noerror: mov esi,dword ptr[fp]
push esi
push 1h
push 4h
push offset stNES.Magic_Number
call dword ptr[fread]
add esp,10h
lea edi,stNES.ROM_COUNT
mov edx,dword ptr[esi]
mov al,byte ptr[edx]
mov bl,byte ptr[edx+1h]
mov cx,word ptr[edx+2h]
mov byte ptr[edi],al
mov byte ptr[edi+4h],bl
mov word ptr[edi+8h],cx
push esi
call dword ptr[fclose]
add esp,4h
//xor eax,eax
//xor ebx,ebx
lea edi,stNES.Main_Mapper
mov al,stNES.MixBitY
mov bl,stNES.MixBitX
mov ecx,ebx
and eax,0x000000F0
shr ebx,4
or eax,ebx
//and ebx,0x000000F0
//shr ebx,4
//or eax,ebx
mov dword ptr[edi],eax
lea eax,[JLT+ecx*8]
jmp eax
JLT:
jmp Sample0x0000;0
and e
bp
,0x52
and ebp,0x72
jmp Sample0x0001;1
xor esp,0x12
jmp Sample0x0010;2
or esp,0x18
jmp Sample0x0011;3
push 0x25
push eax
jmp Sample0x0100;4
add eax,0x23
jmp Sample0x0101;5
sub ecx,0x37
jmp Sample0x0110;6
push ecx
push 0x23
jmp Sample0x0111;7
inc eax
inc ebx
inc edx
jmp Sample0x1000;8
out dx,ax
push ebx
jmp Sample0x1001;9
dec eax
dec ebx
dec ecx
jmp Sample0x1010;10
dec eax
dec ebx
dec ecx
jmp Sample0x1011;11
dec eax
dec ebx
dec ecx
jmp Sample0x1100;12
sub ecx,0x37
jmp Sample0x1101;13
sub ecx,0x37
jmp Sample0x1110;14
sub ecx,0x37
jmp Sample0x1111;15
sub ecx,0x37
Sample0x0000:
_emit 0xC7
_emit 0x05
_emit 0xFC
_emit 0x62
_emit 0x42
_emit 0x00
_emit 0xDA
_emit 0x22
_emit 0x42
_emit 0x00
////////////////
_emit 0xC7
_emit 0x05
_emit 0x00
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x08
_emit 0x23
_emit 0x42
_emit 0x00
///////////////
_emit 0xC7
_emit 0x05
_emit 0x04
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x08
_emit 0x23
_emit 0x42
_emit 0x00
//////////////
_emit 0xC7
_emit 0x05
_emit 0x08
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x38
_emit 0x23
_emit 0x42
_emit 0x00
jmp ENX
Sample0x0001:
_emit 0xC7
_emit 0x05
_emit 0xFC
_emit 0x62
_emit 0x42
_emit 0x00
_emit 0xD4
_emit 0x22
_emit 0x42
_emit 0x00
////////////////
_emit 0xC7
_emit 0x05
_emit 0x00
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x08
_emit 0x23
_emit 0x42
_emit 0x00
///////////////
_emit 0xC7
_emit 0x05
_emit 0x04
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x08
_emit 0x23
_emit 0x42
_emit 0x00
//////////////
_emit 0xC7
_emit 0x05
_emit 0x08
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x38
_emit 0x23
_emit 0x42
_emit 0x00
jmp ENX
Sample0x0010:
_emit 0xC7
_emit 0x05
_emit 0xFC
_emit 0x62
_emit 0x42
_emit 0x00
_emit 0xDA
_emit 0x22
_emit 0x42
_emit 0x00
////////////////
_emit 0xC7
_emit 0x05
_emit 0x00
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x04
_emit 0x23
_emit 0x42
_emit 0x00
///////////////
_emit 0xC7
_emit 0x05
_emit 0x04
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x08
_emit 0x23
_emit 0x42
_emit 0x00
//////////////
_emit 0xC7
_emit 0x05
_emit 0x08
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x38
_emit 0x23
_emit 0x42
_emit 0x00
jmp ENX
Sample0x0011:
_emit 0xC7
_emit 0x05
_emit 0xFC
_emit 0x62
_emit 0x42
_emit 0x00
_emit 0xD4
_emit 0x22
_emit 0x42
_emit 0x00
////////////////
_emit 0xC7
_emit 0x05
_emit 0x00
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x04
_emit 0x23
_emit 0x42
_emit 0x00
///////////////
_emit 0xC7
_emit 0x05
_emit 0x04
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x08
_emit 0x23
_emit 0x42
_emit 0x00
//////////////
_emit 0xC7
_emit 0x05
_emit 0x08
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x38
_emit 0x23
_emit 0x42
_emit 0x00
jmp ENX
Sample0x0100:
_emit 0xC7
_emit 0x05
_emit 0xFC
_emit 0x62
_emit 0x42
_emit 0x00
_emit 0xDA
_emit 0x22
_emit 0x42
_emit 0x00
////////////////
_emit 0xC7
_emit 0x05
_emit 0x00
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x08
_emit 0x23
_emit 0x42
_emit 0x00
///////////////
_emit 0xC7
_emit 0x05
_emit 0x04
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x04
_emit 0x23
_emit 0x42
_emit 0x00
//////////////
_emit 0xC7
_emit 0x05
_emit 0x08
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x38
_emit 0x23
_emit 0x42
_emit 0x00
jmp ENX
Sample0x0101:
_emit 0xC7
_emit 0x05
_emit 0xFC
_emit 0x62
_emit 0x42
_emit 0x00
_emit 0xD4
_emit 0x22
_emit 0x42
_emit 0x00
////////////////
_emit 0xC7
_emit 0x05
_emit 0x00
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x08
_emit 0x23
_emit 0x42
_emit 0x00
///////////////
_emit 0xC7
_emit 0x05
_emit 0x04
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x08
_emit 0x23
_emit 0x42
_emit 0x00
//////////////
_emit 0xC7
_emit 0x05
_emit 0x08
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x38
_emit 0x23
_emit 0x42
_emit 0x00
jmp ENX
Sample0x0110:
_emit 0xC7
_emit 0x05
_emit 0xFC
_emit 0x62
_emit 0x42
_emit 0x00
_emit 0xDA
_emit 0x22
_emit 0x42
_emit 0x00
////////////////
_emit 0xC7
_emit 0x05
_emit 0x00
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x04
_emit 0x23
_emit 0x42
_emit 0x00
///////////////
_emit 0xC7
_emit 0x05
_emit 0x04
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x04
_emit 0x23
_emit 0x42
_emit 0x00
//////////////
_emit 0xC7
_emit 0x05
_emit 0x08
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x38
_emit 0x23
_emit 0x42
_emit 0x00
jmp ENX
Sample0x0111:
_emit 0xC7
_emit 0x05
_emit 0xFC
_emit 0x62
_emit 0x42
_emit 0x00
_emit 0xD4
_emit 0x22
_emit 0x42
_emit 0x00
////////////////
_emit 0xC7
_emit 0x05
_emit 0x00
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x04
_emit 0x23
_emit 0x42
_emit 0x00
///////////////
_emit 0xC7
_emit 0x05
_emit 0x04
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x04
_emit 0x23
_emit 0x42
_emit 0x00
//////////////
_emit 0xC7
_emit 0x05
_emit 0x08
_emit 0x63
_emit 0x42
_emit 0x00
_emit 0x38
_emit 0x23
_emit 0x42
_emit 0x00
jmp ENX
2014年09月12日 03点09分
3