⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a.c

📁 小型游戏引擎
💻 C
📖 第 1 页 / 共 3 页
字号:
            eaxedx = ((unsigned __int64) esi);            eaxedx = ((eaxedx >> hxsiz_val) << 32) & 0xFFFFFFFF00000000 | edx;            eaxedx <<= hysiz4;            eax = ((eaxedx & 0xFFFFFFFF00000000) >> 32);            ecx = ((ecx & 0xFFFFFF00) | hoffs_val[eax]);            esi -= asm1;            edx -= asm2;            *((char *) edi) = pal_val[ecx];            edi--;            ebp--;        } /* if */    } /* if */    if ((edi & 1) == 0)    {        eax = esi >> hxsiz_val;        eaxedx = ((((unsigned __int64) eax) << 32) | edx) << hysiz_val;        eax = ((eaxedx & 0xFFFFFFFF00000000) >> 32);        ecx = ((ecx & 0xFFFFFF00) | hoffs_val[eax]);        ebx = ((ebx & 0xFFFFFF00) | pal_val[ecx]);        esi -= asm1;        edx -= asm2;        *((char *) edi) = pal_val[ecx];        edi--;        ebp--;    } /* if */    if ((edi & 2) == 0)    {        eax = esi >> hxsiz_val;        eaxedx = ((((unsigned __int64) eax) << 32) | edx) << hysiz_val;        eax = ((eaxedx & 0xFFFFFFFF00000000) >> 32);        ecx = ((ecx & 0xFFFFFF00) | hoffs_val[eax]);        ebx = ((ebx & 0x00FFFFFF) | pal_val[ecx] << 24);        esi -= asm1;        edx -= asm2;        *(((char *) edi) - 1) = pal_val[ecx];        edi -= 2;        ebp -= 2;    } /* if */    eax = esi >> (32 - machxbits_val);    esi <<= machxbits_val;    edx = (edx & 0xFFFFFFF00) | (eax & 0x000000FF);    edi++;    if (ebx >= 0xFFFF)        goto beginhline64;    eax = asm1;       /* !!! NOT DONE! */} /* hlineasm4 *//*    Used in Pentium II/Pentium Pro overlay. --ryan.	;eax: 00000000 00000000 00000000 temp----	;ebx: 00000000 00000000 00000000 temp----	;ecx: UUUUUUuu uuuuuuuu uuuuuuuu uuuuuuuu	;edx: VVVVVVvv vvvvvvvv vvvvvvvv vvvvvvvv	;esi: cnt----- -------- -------- --------	;edi: vid----- -------- -------- --------	;ebp: paloffs- -------- -------- --------	;esp: ???????? ???????? ???????? ????????ALIGN 16PUBLIC prohlineasm4_prohlineasm4_:	push ebp	lea ebp, [ecx+88888888h]prohpala:	mov ecx, esi	lea esi, [eax+1]	sub edi, esiprohbeg:	mov eax, ecx	shr eax, 20prohshru:	mov ebx, edx	shr ebx, 26prohshrv:	and eax, 88888888hprohand:	movzx eax, byte ptr [eax+ebx+88888888h]prohbuf:	mov al, [eax+ebp]	sub ecx, _asm1	sub edx, _asm2	mov [edi+esi], al	dec esi	jnz prohbeg	pop ebp	ret*/long prohlineasm4 (long eax, long ebx, long ecx, long edx, long esi, long edi){	fprintf(stderr, "STUB: prohlineasm4() %s line %d\n",__FILE__,__LINE__);	return(0);}/*ALIGN 16PUBLIC setupvlineasm_setupvlineasm_:		;First 2 lines for VLINEASM1, rest for VLINEASM4	mov byte ptr [premach3a+2], al	mov byte ptr [mach3a+2], al	push ecx	mov byte ptr [machvsh1+2], al      ;32-shy	mov byte ptr [machvsh3+2], al      ;32-shy	mov byte ptr [machvsh5+2], al      ;32-shy	mov byte ptr [machvsh6+2], al      ;32-shy	mov ah, al	sub ah, 16	mov byte ptr [machvsh8+2], ah      ;16-shy	neg al	mov byte ptr [machvsh7+2], al      ;shy	mov byte ptr [machvsh9+2], al      ;shy	mov byte ptr [machvsh10+2], al     ;shy	mov byte ptr [machvsh11+2], al     ;shy	mov byte ptr [machvsh12+2], al     ;shy	mov cl, al	mov eax, 1	shl eax, cl	dec eax	mov dword ptr [machvsh2+2], eax    ;(1<<shy)-1	mov dword ptr [machvsh4+2], eax    ;(1<<shy)-1	pop ecx	ret*/long setupvlineasm (long eax){	fprintf(stderr, "STUB: setupvlineasm() %s line %d\n",__FILE__,__LINE__);	return (0);}/*    Used in Pentium II/Pentium Pro overlay. --ryan.ALIGN 16PUBLIC prosetupvlineasm_prosetupvlineasm_:		;First 2 lines for VLINEASM1, rest for VLINEASM4	mov byte ptr [premach3a+2], al	mov byte ptr [mach3a+2], al	push ecx	mov byte ptr [promachvsh1+2], al      ;32-shy	mov byte ptr [promachvsh3+2], al      ;32-shy	mov byte ptr [promachvsh5+2], al      ;32-shy	mov byte ptr [promachvsh6+2], al      ;32-shy	mov ah, al	sub ah, 16	mov byte ptr [promachvsh8+2], ah      ;16-shy	neg al	mov byte ptr [promachvsh7+2], al      ;shy	mov byte ptr [promachvsh9+2], al      ;shy	mov byte ptr [promachvsh10+2], al     ;shy	mov byte ptr [promachvsh11+2], al     ;shy	mov byte ptr [promachvsh12+2], al     ;shy	mov cl, al	mov eax, 1	shl eax, cl	dec eax	mov dword ptr [promachvsh2+2], eax    ;(1<<shy)-1	mov dword ptr [promachvsh4+2], eax    ;(1<<shy)-1	pop ecx	ret*/long prosetupvlineasm (long eax){	fprintf(stderr, "STUB: prosetupvlineasm() %s line %d\n",__FILE__,__LINE__);	return (0);}/*ALIGN 16PUBLIC setupmvlineasm_setupmvlineasm_:	mov byte ptr [maskmach3a+2], al	mov byte ptr [machmv13+2], al	mov byte ptr [machmv14+2], al	mov byte ptr [machmv15+2], al	mov byte ptr [machmv16+2], al	ret*/long setupmvlineasm (long eax){	fprintf(stderr, "STUB: setupmvlineasm() %s line %d\n",__FILE__,__LINE__);	return (0);}/*ALIGN 16PUBLIC setuptvlineasm_setuptvlineasm_:	mov byte ptr [transmach3a+2], al	ret*/long setuptvlineasm (long eax, long ebx, long ecx){	fprintf(stderr, "STUB: setuptvlineasm() %s line %d\n",__FILE__,__LINE__);	return (0);}/*ALIGN 16PUBLIC prevlineasm1_prevlineasm1_:	test ecx, ecx	jnz vlineasm1_	add eax, edxpremach3a: shr edx, 32	mov dl, byte ptr [esi+edx]	mov cl, byte ptr [ebx+edx]	mov byte ptr [edi], cl	ret*/long prevlineasm1 (long eax, long ebx, long ecx, long edx, long esi, long edi){	fprintf(stderr, "STUB: prevlineasm1() %s line %d\n",__FILE__,__LINE__);	return (0);}/*ALIGN 16PUBLIC vlineasm1_vlineasm1_:	push ebp	mov ebp, ebx	inc ecxfixchain1a: sub edi, 320beginvline:	mov ebx, edxmach3a: shr ebx, 32fixchain1b: add edi, 320	mov bl, byte ptr [esi+ebx]	add edx, eax	dec ecx	mov bl, byte ptr [ebp+ebx]	mov byte ptr [edi], bl	jnz short beginvline	pop ebp	mov eax, edx	ret*/long vlineasm1 (long eax, long ebx, long ecx, long edx, long esi, long edi){	fprintf(stderr, "STUB: vlineasm1() %s line %d\n",__FILE__,__LINE__);	return (0);}/*ALIGN 16PUBLIC mvlineasm1_      ;Masked vlinemvlineasm1_:	push ebp	mov ebp, ebxbeginmvline:	mov ebx, edxmaskmach3a: shr ebx, 32	mov bl, byte ptr [esi+ebx]	cmp bl, 255	je short skipmask1maskmach3c: mov bl, [ebp+ebx]	mov byte ptr [edi], blskipmask1:	add edx, eaxfixchain1m: add edi, 320	sub ecx, 1	jnc short beginmvline	pop ebp	mov eax, edx	ret*/long mvlineasm1 (long eax, long ebx, long ecx, long edx, long esi, long edi){	fprintf(stderr, "STUB: mvlineasm1() %s line %d\n",__FILE__,__LINE__);	return (0);}/*ALIGN 16PUBLIC fixtransluscence_fixtransluscence_:	mov dword ptr [transmach4+2], eax	mov dword ptr [tmach1+2], eax	mov dword ptr [tmach2+2], eax	mov dword ptr [tmach3+2], eax	mov dword ptr [tmach4+2], eax	mov dword ptr [tran2traa+2], eax	mov dword ptr [tran2trab+2], eax	mov dword ptr [tran2trac+2], eax	mov dword ptr [tran2trad+2], eax	ret*/long fixtransluscence (long eax){	fprintf (stderr, "STUB: fixtransluscence() %s line %d\n",__FILE__,__LINE__);	return (0);}/*ALIGN 16PUBLIC settransnormal_settransnormal_:	mov byte ptr [transrev0+1], 83h	mov byte ptr [transrev1+1], 27h	mov byte ptr [transrev2+1], 3fh	mov byte ptr [transrev3+1], 98h	mov byte ptr [transrev4+1], 90h	mov byte ptr [transrev5+1], 37h	mov byte ptr [transrev6+1], 90h	mov word ptr [transrev7+0], 0f38ah	mov byte ptr [transrev8+1], 90h	mov word ptr [transrev9+0], 0f78ah	mov byte ptr [transrev10+1], 0a7h	mov byte ptr [transrev11+1], 81h	mov byte ptr [transrev12+2], 9fh	mov word ptr [transrev13+0], 0dc88h	mov byte ptr [transrev14+1], 81h	mov byte ptr [transrev15+1], 9ah	mov byte ptr [transrev16+1], 0a7h	mov byte ptr [transrev17+1], 82h	ret*/long settransnormal (void){	fprintf (stderr, "STUB: settransnormal() %s line %d\n", __FILE__,__LINE__);	return (0);}/*ALIGN 16PUBLIC settransreverse_settransreverse_:	mov byte ptr [transrev0+1], 0a3h	mov byte ptr [transrev1+1], 7h	mov byte ptr [transrev2+1], 1fh	mov byte ptr [transrev3+1], 0b8h	mov byte ptr [transrev4+1], 0b0h	mov byte ptr [transrev5+1], 17h	mov byte ptr [transrev6+1], 0b0h	mov word ptr [transrev7+0], 0d38ah	mov byte ptr [transrev8+1], 0b0h	mov word ptr [transrev9+0], 0d78ah	mov byte ptr [transrev10+1], 87h	mov byte ptr [transrev11+1], 0a1h	mov byte ptr [transrev12+2], 87h	mov word ptr [transrev13+0], 0e388h	mov byte ptr [transrev14+1], 0a1h	mov byte ptr [transrev15+1], 0bah	mov byte ptr [transrev16+1], 87h	mov byte ptr [transrev17+1], 0a2h	ret*/long settransreverse (void){	fprintf (stderr, "STUB: settransreverse() %s line %d\n", __FILE__,__LINE__);	return (0);}/*ALIGN 16PUBLIC tvlineasm1_        ;Masked & transluscent vlinetvlineasm1_:	push ebp	mov ebp, eax	xor eax, eax	inc ecx	mov dword ptr [transmach3c+2], ebx	jmp short begintvlineALIGN 16begintvline:	mov ebx, edxtransmach3a: shr ebx, 32	mov bl, byte ptr [esi+ebx]	cmp bl, 255	je short skiptrans1transrev0:transmach3c: mov al, [ebx+88888888h]transrev1:	mov ah, byte ptr [edi]transmach4: mov al, byte ptr [eax+88888888h]   ;_transluc[eax]	mov byte ptr [edi], alskiptrans1:	add edx, ebpfixchain1t: add edi, 320	dec ecx	jnz short begintvline	pop ebp	mov eax, edx	ret*/long tvlineasm1 (long eax, long ebx, long ecx, long ecx, long esi, long edi){	fprintf (stderr, "STUB: tvlineasm1() %s line %d\n", __FILE__,__LINE__);	return (0);}/*	;eax: -------temp1-------	;ebx: -------temp2-------	;ecx:  dat  dat  dat  dat	;edx: ylo2           ylo4	;esi: yhi1           yhi2	;edi: ---videoplc/cnt----	;ebp: yhi3           yhi4	;esp:ALIGN 16PUBLIC vlineasm4_vlineasm4_:	push ebp	mov eax, dword ptr _ylookup[ecx*4]	add eax, edi	mov dword ptr [machvline4end+2], eax	sub edi, eax	mov eax, dword ptr _bufplce[0]	mov ebx, dword ptr _bufplce[4]	mov ecx, dword ptr _bufplce[8]	mov edx, dword ptr _bufplce[12]	mov dword ptr [machvbuf1+2], ecx	mov dword ptr [machvbuf2+2], edx	mov dword ptr [machvbuf3+2], eax	mov dword ptr [machvbuf4+2], ebx	mov eax, dword ptr _palookupoffse[0]	mov ebx, dword ptr _palookupoffse[4]	mov ecx, dword ptr _palookupoffse[8]	mov edx, dword ptr _palookupoffse[12]	mov dword ptr [machvpal1+2], ecx	mov dword ptr [machvpal2+2], edx	mov dword ptr [machvpal3+2], eax	mov dword ptr [machvpal4+2], ebx		;     谀哪哪哪哪哪哪哪履哪哪哪哪哪哪哪

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -