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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Rewriting wipEout

199 点作者 erupt7893将近 2 年前

27 条评论

spicyjpeg将近 2 年前
&gt; The PSX devkits came with a library called LIBGPU, which handled the rendering. Since the PSX GPU didn&#x27;t have a z-buffer, all primitives you wanted to draw (triangles, quads and sprites) needed to be submitted into an “ordering table” or OT for short. This table had (typically) 8192 slots allowing for 8192 different z-levels. The GPU would then rasterize the list back to front. The result would not be perfect (in some situations neither of two polygons will have all pixels in front of the other one), but close enough.<p>This is actually implemented in a slightly funky way on the PS1. The DMA unit responsible for sending commands to the GPU allows for a display list to be built in memory as a linked list of variable-length packets, each of which can hold zero or more commands. What Sony&#x27;s libraries do is essentially generating the ordering table as an array of 8192 empty packets linked to each other, then allowing actual command packets to be allocated elsewhere (typically using a simple bump allocator) and &quot;spliced&quot; into the link from one empty packet to the next one. The PS1&#x27;s vertex transformation coprocessor, the GTE, also keeps track of the Z coordinates of the last 4 vertices processed and has an instruction to quickly average them out so that the resulting value can be used as an index into the ordering table.<p>I wrote a few SDK-less bare metal C examples showing how to build an ordering table [1] and leverage it for 3D polygon sorting [2], should anybody want to check those out.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;spicyjpeg&#x2F;ps1-bare-metal&#x2F;blob&#x2F;main&#x2F;src&#x2F;07_orderingTable&#x2F;main.c">https:&#x2F;&#x2F;github.com&#x2F;spicyjpeg&#x2F;ps1-bare-metal&#x2F;blob&#x2F;main&#x2F;src&#x2F;07...</a><p>[2] <a href="https:&#x2F;&#x2F;github.com&#x2F;spicyjpeg&#x2F;ps1-bare-metal&#x2F;blob&#x2F;main&#x2F;src&#x2F;08_spinningCube&#x2F;main.c">https:&#x2F;&#x2F;github.com&#x2F;spicyjpeg&#x2F;ps1-bare-metal&#x2F;blob&#x2F;main&#x2F;src&#x2F;08...</a>
评论 #37087193 未加载
评论 #37126456 未加载
bityard将近 2 年前
&gt; Each new release was decidedly worse than the previous one. Compare the original PSX version (video) to the DOS release (video): The vertex lighting on the track is gone, everything looks flat, there is no transparency and the speedometer was redrawn by a programmer. The ATI Rage Edition (video) carried this mess forward, introduced visible seams in the geometry everywhere, somehow corrupted the software z-sorting and then screwed up the text rendering with ghastly letter spacing.<p>I played a lot of Wipeout XL on the Playstation in my late teens&#x2F;early 20s. I mean a LOT. The only thing I really wished for (other than less frustrating maps and smarter AI) was a higher resolution and farther draw distance. At some point, I found the Windows version in a bargain bin at some store and snatched it up. 640x480 Wipeout XL would be glorious!<p>Unfortunately whoever ported it was brand-new to programming or something because they pinned the game speed to the CPU speed, or screen refresh rate or similar. Net result was that it ran way too fast even on a modest computer at the time. It&#x27;s like nobody even bothered to test it. There was a patch floating around to fix the speed at one point, but there are so many other problems with it that&#x27;s just far easier to run the PSX version in an emulator and call it a day.
评论 #37084493 未加载
评论 #37127118 未加载
评论 #37086122 未加载
infp_arborist超过 1 年前
Just a reminder that BallisticNG is an equally addictive Wipeout clone and available on all Steam platforms. A Nintendo Switch port was also announced.<p><a href="https:&#x2F;&#x2F;store.steampowered.com&#x2F;app&#x2F;473770&#x2F;BallisticNG&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;store.steampowered.com&#x2F;app&#x2F;473770&#x2F;BallisticNG&#x2F;</a>
评论 #37126817 未加载
AlbertoGP将近 2 年前
WOW! Just a `git clone`, download and unpack the .zip with the assets (end of the blog post), type `make` and it compiles on Linux without warnings into `wipegame`, run it and it works first time!<p>You need a joypad&#x2F;joystick, I was surprised that I could plug it in after the game had started and it picked it up, insted of having to restart the game as I remember being the case with other games on Linux years ago.
评论 #37102789 未加载
wodenokoto将近 2 年前
I loved everything about Wipeout, except the racing. The controls where impossible and the difficulty ridiculous.<p>But the music, the art style, the concept and attitude of that game was awesome. I spent many hours playing it on PSX as an early teenager.
评论 #37126861 未加载
评论 #37094239 未加载
trollied超过 1 年前
Source repo: <a href="https:&#x2F;&#x2F;github.com&#x2F;phoboslab&#x2F;wipeout-rewrite">https:&#x2F;&#x2F;github.com&#x2F;phoboslab&#x2F;wipeout-rewrite</a><p>The web version is WASM, from C&#x2F;SDL sources.
评论 #37124446 未加载
throwaway888abc超过 1 年前
This is great.<p>Sidenote, there should be some amazing games capable of running browser now. Is there any list or any recommendation ?
评论 #37125541 未加载
评论 #37126229 未加载
评论 #37125535 未加载
j1elo将近 2 年前
I&#x27;ve lately been playing Redout (<i>Redout: Enhanced Edition</i>) on the Steam Deck, and it is a quite fun game in the spirit of the old Wipeout game. Consider giving it a go if you are into that sort of speed-over-everything-else racing games!
评论 #37087578 未加载
DrNosferatu将近 2 年前
&lt;3 Designers Republic &lt;3
评论 #37086072 未加载
评论 #37126697 未加载
alrex021超过 1 年前
Link to the original soundtrack <a href="https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;wipeout_psx_soundtrack" rel="nofollow noreferrer">https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;wipeout_psx_soundtrack</a>
评论 #37125357 未加载
评论 #37125241 未加载
vmladenov将近 2 年前
This is so cool! My first entry in this series was WipEout Pure on PSP; such a great experience and remastered twice with HD and Omega Collection. Impressive how the PS1 original can run at 60 fps in a browser.
pmarreck超过 1 年前
The writeup is pretty impressive<p><a href="https:&#x2F;&#x2F;phoboslab.org&#x2F;log&#x2F;2023&#x2F;08&#x2F;rewriting-wipeout" rel="nofollow noreferrer">https:&#x2F;&#x2F;phoboslab.org&#x2F;log&#x2F;2023&#x2F;08&#x2F;rewriting-wipeout</a><p>As a sign of what you&#x27;re getting yourself into, though (you knew this was coming though, didn&#x27;t you?): &quot;The leaked source has a few hundred global variables scattered all over. Many of these are brought in to different source files (using `extern int something;`) and there was little logic to where they were defined.&quot;
coolliquidcode超过 1 年前
I was wondering how he didn&#x27;t get shutdown immediately and read his post about it linked in the top right. <a href="https:&#x2F;&#x2F;phoboslab.org&#x2F;log&#x2F;2023&#x2F;08&#x2F;rewriting-wipeout" rel="nofollow noreferrer">https:&#x2F;&#x2F;phoboslab.org&#x2F;log&#x2F;2023&#x2F;08&#x2F;rewriting-wipeout</a><p>This part is great: &gt; If anyone at Sony is reading this, please consider that you have (in my opinion) two equally good options: either let it be, or shut this thing down and get a real remaster going.<p>&gt; I&#x27;d love to help!
ChrisArchitect将近 2 年前
A perfect thing to release on &quot;Zero Cool Day&quot;
评论 #37086860 未加载
nazgulsenpai将近 2 年前
Its always so fascinating to see source code from console games of the 5th generation when most started using C vs assembly. The ratio of lines of code to &quot;game&quot; for something like this or Mario 64 just seems so incredibly high.
dwroberts将近 2 年前
I would love to see an analysis of the original source without the attempt to try and critique and ‘improve’ it
adamrezich超过 1 年前
programmers who don&#x27;t understand seasoned game developers&#x27; views on manual memory management (and aversion to garbage collection) might want to take a look at the &quot;Rewriting the memory management&quot; section—look at how simple that is, both to implement and maintain!
mips_r4300i将近 2 年前
Looks really cool and props for fixing a huge amount of spaghetti code. Now, I wonder if I can make a 3d rasterizer on a FPGA and run the CPU side on a RISC-V... If anyone else is intrigued by this let me know.
stuaxo将近 2 年前
It&#x27;s funny there aren&#x27;t any texture packs for the original WipeOut yet.<p>It would be good if this code would could would work with whatever the standard format for texture packs on PS1 emulators is.
padjo超过 1 年前
Brings back happy memories of playing this on the demo unit in the shop across the road from my house every day after school because I couldn’t afford to buy the console.
pgt超过 1 年前
What are the keys? I can&#x27;t figure out how to accelerate.
评论 #37125111 未加载
simonbarker87超过 1 年前
Yep, just as hard as I remember it being - fun though
SillyUsername将近 2 年前
The Amiga might finally get a port! IIRC related one of more of the hardware designers of the Amiga went on to do the Playstation 1 hardware.
评论 #37124907 未加载
finikytou超过 1 年前
to me wipeout 3 was the pinnacle of the genre. never matched after.
评论 #37126778 未加载
gsanderson超过 1 年前
Impressive. Really smooth. Brings back memories!
bufio超过 1 年前
The code is a pleasure to read.
NKosmatos将近 2 年前
Yesterday’s submission: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=37075916">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=37075916</a><p>It’s strange how some HN submissions fail to get noticed, and a duplicate submission after a few hours (or even next day) gets upvoted and is more visible.
评论 #37126175 未加载