- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将 Quake 2 的 MSVC 内联汇编代码移植到 MASM,然后最后移植到 GAS(用于 MinGW)。有问题的具体代码是针对皮肤绘图的(R_PolysetCalcGradients 对于那些想要查找它的人)。代码几乎“起作用”了,但皮肤似乎错误地拉伸(stretch)了模型。
我注意到一些有趣的事情是,当我运行 objdump -dwrC r_polysa.obj > r_polysa.masm 并且 GAS 版本相同时,除了 fsubp 和 fsubrp 已在 MASM 中交换。请注意不是操作数(我已经在 GAS 中知道这个问题)。 图中左边是GAS版本,右边是MASM版本。原始 MASM 代码(因此我在 GAS 中拥有的代码)应该位于左侧。我不确定为什么 MASM 显然交换了这个或者 objdump 是否错误地报告了它。但是,如果我交换两者,这并不能解决问题。它只是以另一种错误的方式倒置了。
我提到这个 FSUBP/FSUBRP 交换是因为这是移植粒子混合内联 ASM 代码时的一个问题。这有一个在 MASM 版本中使用 FSUBRP 的调用,objdump 报告它现在是 FSUBP,我必须在 GAS 版本中将它更改为 FSUBP 才能工作!我不明白为什么会这样?
无论如何,我是汇编的新手,但了解一些基础知识并且一直在阅读。显然这里的数学不太正确,但似乎应该如此。我不知道下一步该怎么做。如何修复和调试此问题?
我正在处理的代码库位于:https://bitbucket.org/neozeed/q2dos/commits/branch/win32_asm (特别是 Win32_ASM 分支)。我正在使用的文件是 gas\r_polysa.s 和 ref_soft\r_polysa.asm。
最佳答案
操作码被颠倒了,所以在 fsubp 之后的 GAS 和 fsubrp 有一个怪癖。还有另一个问题,与该问题无关。对于那些感兴趣的人,请参阅:https://bitbucket.org/neozeed/q2dos/commits/f5bf93e3a78e112ae1f766606471a6c5e67283d4
关于c - 将 Quake 2 中的 MASM5 代码移植到 GAS——意外的渲染结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56211009/
什么技术用于供电Quake Live ? 具体来说,您如何创建一个在浏览器中如此广泛使用 3D 的 Web 应用程序?该服务需要您下载并安装插件才能播放。你如何创建这样一个插件,它是如何与网站交互的?
许多资料都描述了计算平方根倒数的“神奇”方法,显然可以追溯到 Quake 游戏。维基百科上有一篇很好的文章:https://en.wikipedia.org/wiki/Fast_inverse_squ
John Carmack 在 Quake III 源代码中有一个特殊函数,它计算 float 的平方根倒数,比常规 (float)(1.0/sqrt(x)) 快 4 倍,包括奇怪的 0x5f3759d
我一直在研究 Quake 3 BSP 加载程序。但是我无法正确渲染这些面孔。 这是 map 的顶点。这是我在 map 上渲染人脸时发生的情况。 这是渲染代码: void bsp::render() {
我很好奇在 Quake 中使用 CreateEvent() 函数。 我们在 WinMain() 定义的 c 文件中有以下全局变量: static HANDLE tevent; 在 WinMain()
过去几周我一直在研究(旧)3D 渲染技术,并且认为我现在对 Doom 中 3D 渲染的工作方式有了相当的了解。 它使用光线转换来渲染 3D 场景,使用对象的 Sprite ,因此不是“真正的”3D。
我正在学习 Quake 2源代码,用于学习,获得经验,只是为了纯粹的乐趣。有一个入口点——经典的代码块——Windows msg 循环。这是它的样子: while (1) {
我在查看 Quake 1 GPL 代码时遇到了各种类似的头文件,我似乎不明白它们的目的或用途。它们看起来像某种表格,结构如下 {1, 0}, {1, -1}, {1, -2}, {1, -3}, {1
我已经通读了源代码,并尝试在线研究它,但我在完全理解它方面遇到了瓶颈。 我的意思是,它与区域分配有何不同? “zone”是否用于小内存,而“hunk”用于模型等较大的东西? 谢谢 最佳答案 是的,hu
我正在查看 Quake II 源代码,发现它们阻止用户以 root 身份运行游戏。 : /* Prevent running Quake II as root. Only very mad mi
我正在学习各种网络技术,特别是 UDP 和 TCP 协议(protocol)。 我读过很多次像 Quake 这样的游戏使用 UDP 的原因是,“如果你错过了导弹等的位置更新数据包也没关系,因为下一个数
好吧,我想知道 math.h 平方根与其中包含神奇数字的那个(因 Quake 而出名,但由 SGI 制作)相比有多快。 但这对我来说是一个受伤的世界。 我首先在 Mac 上尝试了此操作,其中 math
这只是为了满足我自己的好奇心。 是否有这样的实现: float InvSqrt (float x) { float xhalf = 0.5f*x; int i = *(int*)&x;
我在这里使用 JQuery 终端:http://terminal.jcubic.pl/ 我正在尝试创建一个控制台样式终端(类似 Quake 的控制台),如本页示例 2 中所述:http://termi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
这只是为了满足我自己的好奇心。 是否有这样的实现: float InvSqrt (float x) { float xhalf = 0.5f*x; int i = *(int*)&x;
我正在将 Quake 2 的 MSVC 内联汇编代码移植到 MASM,然后最后移植到 GAS(用于 MinGW)。有问题的具体代码是针对皮肤绘图的(R_PolysetCalcGradients 对于那
我想做一个像地震一样的控制台:http://klickverbot.at/blog/2011/02/quake-style-terminal-on-osx/quake4-console.png 当你按
我想知道是否有人知道如何将装配好的动画角色的几何体/纹理导出为 Quake MD2?我正在为移动设备开发一个应用程序,我发现 MD2 非常适合轻量级 OpenGL 渲染。我有几个动画角色,我想将它们从
我是一名优秀的程序员,十分优秀!