Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Zom-B

Boom computer

Recommended Posts

EarthQuake said:

Dunno if this has been mentioned yet, but it might be worth looking at Wadc. It's a programming language/compiler that is useful for generating complex wads such as this.

And so a tool finally finds its purpose ;)

Share this post


Link to post

Even with this tool, I'd still need to write a program that can translate circuits to the wadc language. I could just as well program something that writes wads directly.

Share this post


Link to post

Also, there are two possible approaches here:

  1. Modeling an actual CPU architecture (e.g. Motorola 68k, Intel i386, PowerPC, ARM etc.) along with its peripherals and then use that (with modeled output devices, as well) to run a specially (or normally) compiled version of Doom.
  2. Using something like that C-to-FPGA/VHDL compiler to create a sort of an "ASIC" that can play Doom...somehow, and model that directly.
The latter could probably be more efficient in terms of computrons (CPU cycles times memory) for smaller programs depending on how exactly that translating circuit maps C functions to "equivalent circuits" (????) but in either case you'd need something with the least number of components as possible (a 68000 has about 40000 transistors and yet offers a complete CISC 32/16 bit architecture. An ARM2 (among the oldest ones) offers a RISC 32-bit architecture with only 30000 transistors, while a Z80 would require less than 10000, if there weren't memory addressing/bank switching issues to tackle.

Of course, you could always design your own (purely virtual) CPU architecture, write a compiler for it, and emulate it in Boom ;-)

Share this post


Link to post

I was thinking of implementing something like the Relay computer. It will use 8 bits data, 16 bits address (memory will theoretically be limited to 64k), and it has no video output. For these reasons it won't be able to run DOOM. But do you really want to emulate Doom within Boom? Remember Doom on a 386/25MHz ran at 5fps?

We already have the proof that Boom is Turing complete, so we don't have to go to such lengths. It just means that given infinite space and time, and the [Boom engine] (without limitations like the 256kb block-map) it can theoretically emulate Doom.

Share this post


Link to post

It feels like this must have some sort of implications for the simulated universe postulation in physics/cosmology, if even a "universe" as simplistic as DOOM's has the emergent property of Turing-complete computational capability ;)

Share this post


Link to post

Our universe could merely be a simulation run inside of a modified Doom engine.

I think I just found a metaphysical idea I can get behind.

Share this post


Link to post

I don't think Doom-inside-of-Doom is really feasible, but what about Pong? I'm still not clear on what you would use for a display, though. Maybe IDDT and some sector hackery to move an object around?

Share this post


Link to post

A two-colour display might be possible. It would be in the same fashion as selecting numbers in this boom computer. The "screen" would have to be angled though.

I don't understand any of how this works, but it's very interesting to see innovation in such an old game.

Share this post


Link to post
Maes said:

They would have to be part of the same map ;-)


Hmm. Why? :p

Can you not alter the behavior of the voodoo dolls in the map by changing properties of some things? A DeHackEd patch could be applied to alter a things height/width/solidity, allowing it to pass through an area it would otherwise not be able to without the patch.

Not sure about how feasible it would be, but certainly a possibility, wouldn't you think?

chopkinsca said:

A two-colour display might be possible.


Well technically a 16 color display would be possible using red/green/blue phosphors, much like a real monitor. Even with the Doom palette, you could perceive colors like cyan (ever see a blue and red texture at a distance and "see" purple?). As for the difficulty involved in constructing such a display... well, that's another story.

Share this post


Link to post

I'm thinking pong might be a nice goal.

A display can be made with the 'Light to 0/255' specials, but it will be a floor display like a disco floor.. A vertical display made from shutters will definitely look bad/distorted from any angle. A 16x16 pixel display (like the original pong) will cover about 1sq foot floor space with 1x1 unit sectors, for minimum distortion.

I've also looked into replicating the 6502/7 but that would consume about 50-80% of the usable map space (blockmap limit). It wouldn't leave much room for memory and motherboard logic. The processor also contains a lot of things like bulky instruction decoder ROMs and interrupt logic, which aren't technically needed.

I've been studying on different architectures. Most architectures optimize on different practical things, like number of transistors, memory bandwidth vs ALU bandwidth, wire length/thickness, fan-in and fan-out (how much transistors a single transistor can drive) and power consumption. Most of these 'limitations' are not necessary for Doom. For example, a 'wire' is just an agreeing tag between trigger lines and sectors, so distance and fan-out don't mean anything anymore. This very fact already helped me make a more efficient adder than normally possible.

There are some architectures that will be impractical in real electronics, but will be very useful in the Doom universe. One of those is the use of ALU registers. A dozen or so memory locations don't actually exist, but when read, you get a value that is a function of one or more other registers, like the arithmetic and logic operations. A final register contains the program counter, and a write to that register makes a program jump.

Share this post


Link to post
Zom-B said:

I'm thinking pong might be a nice goal.


Doom is the universal benchmark of real computers, Pong is the universal benchmark of virtual computers.

Share this post


Link to post
Creaphis said:

Doom is the universal benchmark of real computers, Pong is the universal benchmark of virtual computers.

Considering that in the 70s Pong was the benchmark for real computers, I can imagine that in the 2050s Doom will be the benchmark of virtual computers, but virtual in which future system? and what future game will be the benchmark of real future computers, that emulates doom in real-time?

Share this post


Link to post

now we just need a self sustaining Doom OS. An open source ZDoom operating system where applications can be converted into ZDoom format and loaded from inside the OS. Just like all the mini games you see in wads, and like Donkey Kong Doom and Mortal kombat Doom, you could port applications like Open Office and Firefox to run inside ZDoom. You can check your email, surf the web, and create office documents, all with the click of your... err... trigger!! haha. And when you get a virus attack from looking up porn, they will appear in the form of demons that you have to search through your harddrive and kill lol.
yep that would be badass.

Share this post


Link to post

I finished my wad compiler to generate boom-logic maps from simple scripts. The input is a so-called boom-logic script with commands resembling the following:

A & B C

This reads, A is the result of the AND function of B and C, where A, B and C will automatically be mapped to tags.

Here are some example wads:

Test map
Adder
Subtractor
Program Counter (PC)

The Test map contains some basic gates wired directly to the user inputs/outputs. What which bit does is visible on the map (except one, the output of a flip-flop).

For the Program Counter wad, you better note the following on a piece of paper:
B0 (green 1) = ~Clock (increment on on-to-off transition)
B1 (green 2) = Load (loads number A)
B2 (green 4) = Reset (go to zero)

For those interested in the complete logic description behind these maps, here is a zip with the scripts: zip (does not contain the compiler)

Share this post


Link to post

https://dl.dropboxusercontent.com/.../boombomputerfiles.zip

This excludes the Java files used to generate logic maps from a template file. Reason for this is that I updated the WAD loader/saver and that broke things. I'll look into that in the near future.

[Edit] I dumped even more stuff in the zip file. I don't know if everything works though.

btw, .circ files are for Logisim.

Share this post


Link to post

Thanks a lot man, I was planning on asking you about this by PM after this thread, but I forgot about it. I'm definitely trying these ones.

Share this post


Link to post

I'm committing a huge faux pas by bumping an old thread, but does anyone have a copy of the Digicomp map that started this thread? The mediafire link no longer works.

Share this post


Link to post
fraggle said:

I'm committing a huge faux pas by bumping an old thread, but does anyone have a copy of the Digicomp map that started this thread? The mediafire link no longer works.

There was a computer.wad posted before the author corrected the link, if that's what you mean. Everything else should be in boombomputerfiles.zip.

Share this post


Link to post
Memfis said:

I think it was identical to calculator.wad inside boombomputerfiles.zip

Yep - different datestamp but otherwise identical.

Share this post


Link to post

Sorry for bump, but does anybody have boombomputerfiles.zip and other files posted in this topic? The links are dead now.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×