9 ms·
Doom for 16-bit DOS computers
- aidenn0 3y agoI can't easily tell; does it still require VGA or MCGA to run?
- molticrystal 3y agoWhile i haven't tried it, there is code that sets it to mode 0x13 [0][1] so it would be VGA. [0] https://github.com/FrenkelS/Doom8088/blob/2001f8c2576a2e99f3c588e201ceb3e31d16e8b7/i_system.c#L204-L217 https://github.com/FrenkelS/Doom8088/blob/2001f8c2576a2e99f3... [1] https://en.wikipedia.org/wiki/Mode_13h?useskin=vector https://en.wikipedia.org/wiki/Mode_13h?useskin=vector
- iguessthislldo 3y agoI was wondering that as well since Wolfenstein got a CGA port: https://github.com/jhhoward/WolfensteinCGA https://github.com/jhhoward/WolfensteinCGA The CGA mode is playable, but pretty bad looking as would be expected. It looks much better with the Tandy graphics mode enabled. It'd be cool to be able to run Doom on my Tandy 1000 as well.
- jonny_eh 3y ago> It's based on GBADoom I wonder why. The GBA has a 32-bit ARM processor.
- speps 3y agoNot all projects have #defines for pointer and type sizes, or hardcode values for these sprinkled through the code. So probably to port to GBA they had to go through the code and fix these. Now this specific codebase of Doom is better suited for other ports as well.
- monocasa 3y agoProbably better matches the makeup of RAM and processor speed. The GBA only has 384KB and runs at 12.5MHz.
- AnotherGoodName 3y agoAlso a quick background and the GBA port is a port of the jaguar port which is a port of the SNES port. So somewhere in that heritage is the SNES version of doom. A 16bit version.
- bluedino 3y agoCorrect. It's actually not even Doom: The game does not use the Doom engine, but features a custom engine, known as the Reality engine, programmed by Randy Linden.
- wk_end 3y agoThe Jaguar port is not a port of the SNES port. It was built in-house at Id and was developed by Carmack himself. See Doom Wiki: https://doom.fandom.com/wiki/Atari_Jaguar https://doom.fandom.com/wiki/Atari_Jaguar The SNES port runs on a bespoke engine written by Randy Linden. Whereas the Jaguar Doom is the basis for many console ports, SNES Doom is something of an (incredibly impressive!) dead-end on the Doom family tree.
- rocky1138 3y agoI took this to mean the assets rather than the code.
- ArtWomb 3y agoHow can multi-player be ported to https://dos.zone/ https://dos.zone/ ? WebUDP ??
- extraduder_ire 3y agoAccording to another comment, this is based on GBA doom. Dos.zone seems to already support multiplayer, so it should be as simple as implementing (probably copying in) the multiplayer part to replace the link cable functionality.
- CamperBob2 3y ago[flagged]
- hypercube33 3y agoI see these cool or potentially cool projects posted once a week here without screenshots or even documentation sometimes. I too do not understand.
- jonhohle 3y agoThe documentation one get me, especially with GitHub repos. Don’t show me all your build status widgets and give me build instructions before ever (or without even) telling me what the project does.
- ido 3y agoWe should demand our money back!
- extraduder_ire 3y agoI think most times this happens because the description of the project is hosted elsewhere, and github is primarily thought of as a way to host the files for download. I see this a lot with projects that only link to the /releases/ page, especially when the code itself is not open source. Or, they're just too close to the project and the idea that someone would have to read the readme completely slips their mind.
- schemescape 3y agoIt’s possible someone else just ran across the repository and submitted it to HN, but the author wasn’t ready to share the project yet. I’ve seen that happen several times.
- jylam 3y agoFor everyone here, this quote is not a quote. CamperBob2 just wanted to bully someone it seems, because they doesn't seem to value neither time or skills over quick entertainment for themselves. Next time, just ignore the post and get your tiktok shot.
- erkkonet 3y agoFor those that wonder how it looks, I found a video: https://twitter.com/FOmmetje/status/1696266683756003451 https://twitter.com/FOmmetje/status/1696266683756003451 or if you prefer: https://nitter.net/FOmmetje/status/1696266683756003451 https://nitter.net/FOmmetje/status/1696266683756003451
- ChrisArchitect 3y agoWhen I hear 8088 I'm picturing like an IBM PC original from like 1981, so seeing the video of this running on a 286 isn't as impressive in the end.
- rograndom 3y agoDoom barely ran on 386s and lower 486s, so running at all on a 286, let alone better than most any 386, is pretty impressive to me.
- Sharlin 3y agoIn the video it runs in an emulator clocked at 15x the clock speed of a real 286.
- nsxwolf 3y agoYou can clock the 8088 to 10MHz, and the NEC V20 drop-in replacement ran up to 16MHz. I'd be curious to see one of those run this.
- gwbas1c 3y agoLooks just like the DOS Doom that I played in the 1990s
- thecatspaw 3y agosurprisingly smooth considering that its reading all the textures from disk every frame
- 3y ago
- temporallobe 3y agoBut wasn’t Doom originally developed for “16-bit DOS computers”? That’s the way I originally played it, by installing it from 3.5” floppies as a DOS program on my Windows 3.11 PC, although it was a 486/33 IIRC. I could play the entire game, save my progress, and I had sound via SoundBlaster. In fact, I even installed Doom II on that same computer.
- sjm-lbm 3y agoDoom used a DOS 32 bit extender called DOS/4GW: https://en.wikipedia.org/wiki/DOS/4G https://en.wikipedia.org/wiki/DOS/4G.
- deleted 3y ago[deleted]
- nxobject 3y agoI thought it was originally developed on 32-bit 68k NeXT workstations, no? I would be interested if there was anywhere to learn how the porting to x86 went, especially with regards to different strategies for block transfers/etc.
- sillywalk 3y agoIt wasn't really "ported", is was developed on NeXTStep, but the target was X86/VGA/DOS" Apparently they just cross-compiled it. Also, the NeXTStep version of Doom didn't have sound. "We wrote all of DOOM and Quake's code on NeXTSTEP. We debugged the code in NeXTSTEP with DOOM and Quake's 320x200 VGA screen drawing in a little Interceptor window while the rest of the screen was used for debugging code. When all the code ran without bugs we cross-compiled it for the Intel processor on NeXTSTEP then turned over to our Intel DOS computers, copied the EXE and just ran the game. The DOS4GW DOS-Extender loaded up and the game ran. It was that easy." http://web.archive.org/web/20140310124554/http://rome.ro/2006/12/apple-next-merger-birthday.html http://web.archive.org/web/20140310124554/http://rome.ro/200...
- wk_end 3y ago
- agentdrek 3y agoDoom will soon have been ported to more hardware than NetBSD!
- chrisco255 3y agoDoes anyone know of any compact Doom wasm examples? Looking for the tiniest Doom that could run in a web browser.
- MBCook 3y ago> Super slow because for every frame every necessary image is read from the hard disk and for every calculation involving a lookup table the hard disk is also accessed The 8086 was limited to 640k, a 286 could actually do 16MB with paging. Is the problem simply the ram limit on the 8086? Is that why assets have to be reloaded off disk constantly? Couldn’t a 286 with enough memory handle it (if you were emulating that processor)? I’m curious what the issue is.
- Narishma 3y agoEven an 8088 could use more than 640kB through paging with EMS add-on cards. A 286 doesn't even require paging to use up to 16MB.
- basementcat 3y agoAdding EMS support is on the issue list. https://github.com/FrenkelS/Doom8088/issues/1 https://github.com/FrenkelS/Doom8088/issues/1
- whaleofatw2022 3y agoEMS only let's you have a 64kb frame, I don't think it matters if it's 286 or not.
- Narishma 3y agoA 286 doesn't need EMS though. You can use XMS or a 16-bit DOS extender and run in protected mode to access all memory.
- whaleofatw2022 3y agoYou mentioned EMS that's why I brought it up. On a 286 sure you can go to protected mode but AFAIK that tended to be more involved than most people would like. In the case of XMS, that could help but still requires moving data to/from EMB. Frankly EMS would be the best option to keep it workable on an 8088. At the very least the 64k frames could be used for some of the data that I'm guessing are streamed (belched?) from disk.
- idonotknowwhy 3y agoDoom ran on the 16 bit SNES console
- fb03 3y agoBut it needed an additional coprocessor to do it, which shipped within the cartridge (Super FX 2)
- scheeseman486 3y agoSuperFX was 16 bit too, no 32 bit registers.
- fb03 3y agoYeah, thanks. I went to investigate and was baffled to find that it was speedier but still, 16 bits. Insane stuff!
- gravitronic 3y agoSweet, I can run it on my new book 8088 laptop https://www.aliexpress.com/item/1005005534146618.html https://www.aliexpress.com/item/1005005534146618.html
- johnklos 3y agoIt's interesting that a not very optimized port of DOOM was available for m68k Macs where DOOM runs at an almost playable framerate on a Mac LC or LC II with 15 MHz m68020 or m68030 on a 16 bit memory bus. It's worlds faster than DOOM on a 24 MHz 80286.
- gibb0n 3y agoFinally
- gabereiser 3y agoMy first computer was an IBM 486DX@33Mhz. My father had an Apple Macintosh Quatra (Ferrari) and I had this IBM (hooptie). I remember vividly trying to get DOOM to run on it. It would but at 6fps. With the turbo switch on, 66Mhz, I got 12fps on low settings. My father and I tried everything we could to overclock that IBM into 133Mhz but the CPU was holding it back. Later that year, he bought Marathon by Bungie (precursor to Halo) for me on his Mac. I think he felt bad that I was so disappointed. I loved it. He saw this and for Christmas that year, I had a new motherboard with a new Pentium chip capable of ripping Martian marine mutant faces.
- gattilorenz 3y ago> My first computer was an IBM 486DX@33Mhz. > With the turbo switch on, 66Mhz That’s not how a turbo button works, it doesn’t make the pc “go faster” [1] :) Either you had a 486@66Mhz, or you set your multiplier to 2x instead of just pressing the turbo button. [1] I mean, you could by default power your pc with turbo in “slow mode”, and activate it for hyperspeed, but you’re still using a 66Mhz CPU that is being normally slowed down
- gabereiser 3y agohttps://en.wikipedia.org/wiki/Turbo_button https://en.wikipedia.org/wiki/Turbo_button I know the chip was a 66mhz chip. Without the button pressed, it was useless. I also know this was about CPU timing. Having it "on" slowed down the timing. But having it on (to slow the CPU timing) and trying to overclock the CPU (to make it faster), resulted in nothing more than a few fps. After the upgrade to Pentium, it was 60fps. The turbo button is a 3-pin switch. Some wired it so that "off" was full-speed. Some wired it the other way. I believe mine were wired for "on" = fullspeed.
- CaesarA 3y agoMaybe I am missing something but are all the wall textures replaced by the door texture?