TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Why fastDOOM is fast

672 点作者 wicket2 个月前

25 条评论

gwern2 个月前
&gt; The MPV patch of v0.1 is without a doubt build 36 (e16bab8). The &quot;Cripy optimization&quot; turns status bar percentage rendering into a noop if they have not changed. This prevents rendering to a scrap buffer and blitting to the screen for a total of 2 fps boost. At first I could not believe it. I assume my toolchain had a bug. But cherry-picking this patch on PCDOOMv2 confirmed the tremendous speed gain.<p>Good example of how the bottlenecks are often not where you think they are, and why you have to profile &amp; measure (which I assume Viti95 did in order to find that speedup so early on). The <i>status bar percentage</i>?! Maybe there&#x27;s something about the Doom arch which makes that relatively obvious to experts, but I certainly would&#x27;ve never guessed that was a bottleneck a priori.
评论 #43259722 未加载
评论 #43263145 未加载
评论 #43260076 未加载
评论 #43267412 未加载
评论 #43260132 未加载
评论 #43260478 未加载
评论 #43260331 未加载
评论 #43262333 未加载
评论 #43260113 未加载
评论 #43261439 未加载
评论 #43266477 未加载
评论 #43261272 未加载
yjftsjthsd-h2 个月前
&gt; To get the big picture of performance evolution over time, I downloaded all 52 releases of fastDOOM, PCDOOMv2, and the original DOOM.EXE, wrote a go program to generate a RUN.BAT running -timedemo demo1 on all of them, and mounted it all with mTCP&#x27;s NETDRIVE.<p>I&#x27;m probably not the real target audience here, but that looked interesting; I didn&#x27;t think there were good storage-over-network options that far back. A little searching turns up <a href="https:&#x2F;&#x2F;www.brutman.com&#x2F;mTCP&#x2F;mTCP_NetDrive.html" rel="nofollow">https:&#x2F;&#x2F;www.brutman.com&#x2F;mTCP&#x2F;mTCP_NetDrive.html</a> - that&#x27;s really cool:)<p>&gt; NetDrive is a DOS device driver that allows you to access a remote disk image hosted by another machine as though it was a local device with an assigned drive letter. The remote disk image can be a floppy disk image or a hard drive image.
评论 #43259271 未加载
评论 #43262059 未加载
评论 #43259253 未加载
ndegruchy2 个月前
The linked GitHub thread with Ken Silverman is gold. Watching the FastDOOM author and Ken work through the finer points of arcane 486 register and clock cycle efficiencies is amazing.<p>Glad to see someone making sure that Doom still gets performance improvements :D
评论 #43259445 未加载
评论 #43307195 未加载
评论 #43261462 未加载
unleaded2 个月前
One feature of FastDOOM I haven&#x27;t seen mentioned here are all the weird video modes, some interesting examples:<p>- IBM MDA text mode: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=Op2tr2lGK6Y" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=Op2tr2lGK6Y</a><p>- EGA &amp; Plantronics ColorPlus: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=gxx6lJvrITk" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=gxx6lJvrITk</a><p>- Classic blue &amp; pink CGA: <a href="https:&#x2F;&#x2F;youtu.be&#x2F;rD0UteHi2qM" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;rD0UteHi2qM</a><p>- CGA, 320x200x16 with &#x27;ANSI from Hell&#x27; hack: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=ut0V1nGcTf8" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=ut0V1nGcTf8</a><p>- Hercules: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=EEumutuyBBo" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=EEumutuyBBo</a><p>Most of these run worse than with VGA, presumably because of all the color remapping etc
评论 #43260853 未加载
评论 #43264385 未加载
评论 #43260789 未加载
jakedata2 个月前
&quot;IBM PS&#x2F;1 486-DX2 66Mhz, &quot;Mini-Tower&quot;, model 2168. It was the computer I always wanted as a teenager but could never afford&quot;<p>Wow - by 1992 I was on my fourth homebuilt PC. The KCS computer shows in Marlborough MA were an amazing resource for tinkerers. Buy parts, build PC and use for a while, sell PC, buy more parts - repeat.<p>By the end of 1992 I was running a 486-DX3 100 with a ULSI 487 math coprocessor.<p>For a short period of time I arguably had the fastest PC - and maybe computer on campus. It outran several models of Pentium and didn&#x27;t make math mistakes.<p>I justified the last build because I was simulating a gas&#x2F;diesel thermal-electric co-generation plant in a 21 page Excel spreadsheet for my honors thesis. The recalculation times were killing me.<p>Degree was in environmental science. Career is all computers.
评论 #43269382 未加载
评论 #43265662 未加载
评论 #43261468 未加载
评论 #43261554 未加载
mmphosis2 个月前
<i>On top of releasing often, Viti95 displayed outstanding git discipline where one commit does one thing and each release was tagged.</i><p><a href="https:&#x2F;&#x2F;fabiensanglard.net&#x2F;fastdoom&#x2F;#:~:text=one%20commit%20does%20one%20thing%20and%20each%20release%20was%20tagged" rel="nofollow">https:&#x2F;&#x2F;fabiensanglard.net&#x2F;fastdoom&#x2F;#:~:text=one%20commit%20...</a>
kingds2 个月前
&gt; I was resigned to playing under Ibuprofen until I heard of fastDOOM<p>i don&#x27;t get the ibuprofen reference ?
评论 #43259194 未加载
评论 #43259220 未加载
sedatk2 个月前
If the author reads this: John Carmack&#x27;s last name was mistyped as &quot;Carnmack&quot; throughout the document.
评论 #43259492 未加载
anilgulecha2 个月前
One non-cynical take on why modern software is slow, and not containing optimizations such as these: The standardization&#x2F;optimization hypothesis.<p>If something is&#x2F;has become a standard, then optimization takes over. You want to be fastest and meet all of the standard&#x27;s tests. Doom is similarly now a standard game to port to any new CPU, toaster, whatever. Similarly email protocol, or a browser standard (WebRTC, Quic, etc).<p>The reason your latest web app&#x2F; electron app is not fast is that it is exploratory. It&#x27;s updated everyday to meet new user needs, and fast-enough-to-not-get-in-the-way is all that&#x27;s needed performance wise. Hence we see very fast IRC apps, but slack and teams will always be slow.
评论 #43266532 未加载
z3t42 个月前
It&#x27;s not trivial to go back in versions to check for improvements or regressions, because some optimizations can introduce bugs that is later discovered, or you introduce a vital feature that degrades performance... So you can make your life easier by having automatic performance tests that are run before each release, and if you discovered a performance issue you write a regression test as usual... What I&#x27;m trying to say is: Do performance testing!
manoweb2 个月前
Unlike the author, back in the day I would have preferred a 486DX50 to the DX2-66. 50MHz bus interface (including to the graphics card) instead of 33MHz
评论 #43261490 未加载
评论 #43262416 未加载
rasz2 个月前
&gt;Optimize R_DrawColumn for Mode Y<p>Seeing this made a difference makes it clear Fabien ran fastdoom in Mode Y<p>&gt;One optimization that did not work on my machine was to use video mode 13h instead of mode Y.<p>13h should work on anything, its the VBD that requires specific VESA 2.0 feature enabled (LFB * ). VBR should also work no problem on this IBM<p>Both 13h and VBR modes would probably deliver another ~10 fps on 486&#x2F;66 with VESA CL5428.<p>* LFB = linear frame buffer, not available on most ISA cards. Somewhat problematic as it required less than 16MB ram or &quot;15-16MB memory hole&quot; enabled in bios. On ISA Cirrus Logic support depended on how the chip was wired to the bus, some vendors supported it while others used lazy copy and paste of reference design and didnt. With VESA Cirrus Logic lazy vendors continued to use same basic reference design wiring disabling LFB. No idea about <a href="https:&#x2F;&#x2F;theretroweb.com&#x2F;motherboards&#x2F;s&#x2F;ibm-ps-1-type-2133a,-2155a,-2168a-type-1" rel="nofollow">https:&#x2F;&#x2F;theretroweb.com&#x2F;motherboards&#x2F;s&#x2F;ibm-ps-1-type-2133a,-...</a> motherbaord
评论 #43283955 未加载
评论 #43269288 未加载
bee_rider2 个月前
From a quote in the article<p>&gt; One of my goals for FastDoom is to switch the compiler from OpenWatcom v2 to DJGPP (GCC), which has been shown to produce faster code with the same source. Alternatively, it would be great if someone could improve OpenWatcom v2 to close the performance gap. &gt; - Conversation with Viti95<p>Out of curiosity, how hard is it to port from OpenWatcom to GCC?<p>Clearly the solution here is to write a Watcom llvm front end…
评论 #43262409 未加载
rob742 个月前
Ah, that picture brings back memories - I used to have a successor of that machine in the mid nineties (PS&#x2F;1000), it looked almost the same, except the handle was rounded and the power button was blue (a big blue button). And the CPU was IBM&#x27;s very own &quot;Blue Lightning&quot; 486SX clone (75 MHz, but no FPU). It ran Doom great, but had to pass on Quake, which required an FPU for its polygon-based 3D graphics.
ge962 个月前
&gt; I always wanted as a teenager but could never afford<p>Funny how that is, for me it was a Sony Alpha camera (~~flagship at the time~~) and 10 years later I finally buy it for $50.
评论 #43259511 未加载
hyperman12 个月前
I see the acronyms MVP and MPV in the post. Does someone know what they mean?
评论 #43264406 未加载
评论 #43264366 未加载
评论 #43267373 未加载
fitsumbelay2 个月前
very nice website design
评论 #43260754 未加载
cantrecallmypwd2 个月前
In high school, the fastest computer in the computer lab was an IBM-donated PS&#x2F;1 486SX 25 all-in-one that also was used to play DOOM.
dabeeeenster2 个月前
&gt; I was resigned to playing under Ibuprofen until I heard of fastDOOM<p>WTH is Ibuprofen?!
评论 #43261737 未加载
评论 #43261117 未加载
评论 #43269917 未加载
评论 #43261138 未加载
评论 #43260999 未加载
prox2 个月前
Is there a recommended place where I can play Doom in the browser?<p>If such a thing exists!
评论 #43259164 未加载
评论 #43259143 未加载
评论 #43259121 未加载
评论 #43261536 未加载
评论 #43269150 未加载
评论 #43259178 未加载
评论 #43259229 未加载
zombot2 个月前
How does git fit into 4 MiB of RAM?
评论 #43265868 未加载
klaussilveira2 个月前
Glad to see another post on Fabien&#x27;s blog!
acoolguy482 个月前
This is cool
hinkley2 个月前
So what does one do with a faster Doom, besides bragging, larger maps and more simultaneous players?
评论 #43259498 未加载
评论 #43259471 未加载
评论 #43260228 未加载
评论 #43260542 未加载
评论 #43259871 未加载
评论 #43264965 未加载
评论 #43259455 未加载
评论 #43279342 未加载
alanh2 个月前
For readability:<p><pre><code> html { font-family: system-ui; } </code></pre> Consider <a href="https:&#x2F;&#x2F;alanhogan.com&#x2F;bookmarklets#add_css" rel="nofollow">https:&#x2F;&#x2F;alanhogan.com&#x2F;bookmarklets#add_css</a> to add this to the page. Code blocks are still shown in monospaced font. BTW, monospaced font for prose is an anti-pattern that you hackers need to relinquish, but whatever!
评论 #43261072 未加载
评论 #43266230 未加载
评论 #43307382 未加载