Minecraft HDL, an HDL for Redstone
212 points
1 day ago
| 12 comments
| github.com
| HN
Aromasin
10 hours ago
[-]
The only reason I ended up persuing Electronic Engineering at University, or eventually becoming an FPGA Engineer, was because I spent way too many hours playing with redstone in Minecraft as a teenager. Seeing a Verilog compiler for Minecraft is like seeing my career come full circle.
reply
Arch-TK
21 hours ago
[-]
This is an amazing timeline. I still remember the day redstone was added to Minecraft. I spent the entire evening and many days afterwards on the forum brainstorming how to implement various things. I think I had one of the first if not the first T flip flop, it "took an entire room" and was slow. It has been crazy watching things get compacted, repeaters getting added, pistons, comparators. I remember when BUDs got discovered and then eventually just added as a block.

Now* we have an entire HDL.

I honestly stopped keeping track of things around 2012 so I am completely lost looking at modern redstone contraptions.

*8 years ago

reply
Dylan16807
20 hours ago
[-]
This is a cool tool but compared to modern redstone contraptions this is a sidegrade, not an upgrade. It's straightforward torch and dust logic, with each torch being a nor gate and dust being wires. And it doesn't consider timing at all. This could have been made the week redstone was added (with minor adjustments to not have repeaters), and it wouldn't have taken any newer insights.
reply
Dilettante_
10 hours ago
[-]
I haven't looked at the code, but you could presumably extend it, or maybe expect further development on the logic?

->The repo says "Branch out from master and have fun!"

reply
Dylan16807
1 hour ago
[-]
For what it's for, it's better that it's simple.
reply
Arch-TK
10 hours ago
[-]
Ah, damn. I was envisioning something limited but not this limited.
reply
johnisgood
10 hours ago
[-]
I loved redstone. At some point it got forked and the fork was named "redpower" if I remember correctly. Good stuff.

There were other great mods (I forgot the name, something that has to do with turtles?) and I remember implementing a shell in Lua, among other things.

reply
Arch-TK
8 hours ago
[-]
Red Power was (is... Kind of) an extension not a fork. Although you could call it more an reinterpretation.

But really RP vs Redstone is more like C vs Assembly. I've seen crazy things done in both but I think I find it a bit more impressive when people use pure Redstone to get things done. There are so many dimensions where you both need to understand the mechanics and where there are opportunities for optimization.

The turtle mod you are talking about is ComputerCraft.

reply
johnisgood
8 hours ago
[-]
Yes, ComputerCraft! I have written so much Lua because of it. Only if I still had the scripts. :(

I had no idea RedPower is not a fork, I just remember having switched to it because of no updates for Redstone or version incompatibility issues or something? It's been a really long time ago.

reply
Arch-TK
7 hours ago
[-]
Redstone isn't a mod. It was added to Minecraft in a secret Friday update in the early days around alpha iirc.
reply
johnisgood
7 hours ago
[-]
Oh hold on. I was confusing Redstone with https://ftb.fandom.com/wiki/RedPower_2 and Project Red[1] that came afterwards. How embarassing. :P So it was RedPower -> RedPower 2, and then Project Red. It added a lot of goodies! You should check out the links.

[1] https://ftbwiki.org/Project_Red

reply
dang
1 day ago
[-]
Related:

Verilog to Minecraft Redstone Synthesizer - https://news.ycombinator.com/item?id=25195802 - Nov 2020 (12 comments)

(Reposts are fine after a year or so! https://news.ycombinator.com/newsfaq.html)

reply
verdverm
20 hours ago
[-]
I wonder if this takes account of any of the quirks or quasi-connectivity in redstone?

Mumbo Jumbo recently got a lesson in, and made a video about, computational redstone. Some seriously impressive builds in there (like ms paint). One of the major design constraints is tick/lag. The recent addition of copper bulbs turned the t-flipflop into a single block solution

https://www.youtube.com/watch?v=jTZaUz8bYW8

reply
rbits
16 hours ago
[-]
It seems to only use redstone dust, repeaters, and torches. So quasi-connectivity wouldn't affect it
reply
SLWW
18 hours ago
[-]
I wrote a 8-bit ripple adder when I was 16 one night; I thought about this idea then but it seemed like a massive undertaking.

With all the additional redstone items/capabilities however I could imagine most circuits could be more and more compact..

All in all, really cool

reply
eirikbakke
21 hours ago
[-]
In case anyone needs a minimal CPU implementation in 65 lines of Verilog: https://people.csail.mit.edu/ebakke/fic/ https://people.csail.mit.edu/ebakke/fic/code/Fic.v

(I wonder if it would convert cleanly to a redstone circuit...)

reply
lpribis
21 hours ago
[-]
This compiler does not support sequential logic, meaning no flip flops/registers.
reply
paulwetzel
23 hours ago
[-]
Super cool project :) Just the right level of, objectively useless - but really fun!
reply
8note
22 hours ago
[-]
Optimizing passes for this would be interesting.

Describing a flip flop as a villager minecart with some number of NaN minecarts beside it seems challenging to pick when to use it vs a copper bulb.

reply
thedougd
19 hours ago
[-]
I’ve been looking for any reason to relearn Verilog and this might give me my first idea.

Such a cool idea. Thank you.

reply
gatane
22 hours ago
[-]
Amazing project!!
reply
throwaway290
23 hours ago
[-]
Minecraft circuits can't have feedback? That's pretty sad:(
reply
melncat
23 hours ago
[-]
They can. It's just that this specific program is not capable of translating it.
reply
throwaway290
18 hours ago
[-]
I couldn't find any examples by googling, give one?
reply
Aromasin
10 hours ago
[-]
Check out this persons' YouTube channel: https://www.youtube.com/@sammyuri/videos

You wouldn't be able to do any of that without feedack.

reply
throwaway290
9 hours ago
[-]
OK. I thought feedback was more like that analog thing in electricity where you plug thing into itself and it amplifies but I guess it's also used in memory circuts
reply
regularfry
8 hours ago
[-]
Have a look at the diagram for https://minecraft.wiki/w/Redstone_circuits/Memory#Input_stab.... It's doing exactly that.
reply
throwaway290
8 hours ago
[-]
again this is showing memory and not the analog feedback behavior I thought about...
reply
oasisaimlessly
3 hours ago
[-]
They're (approximately) one and the same.

* Feedback causes memory-like effects (e.g. reverb and oscillation whine in audio systems).

* Besides maybe memresistors, memory is pretty much always implemented via positive feedback (i.e. >unity loop gain) plus some sort of saturation to prevent exponential growth (which you typically get for free in physical systems if you can keep them from exploding).

Furthermore, digital behavior is an emergent effect from analog physical systems that are designed to be bistable. Digital systems will always make use of analog physical processes "under the hood".

reply
rbits
16 hours ago
[-]
reply
throwaway290
9 hours ago
[-]
Ctrl F "feedback" = nothing
reply
Sweepi
21 hours ago
[-]
> A 2-bit 7-segment display decoder in action (the display itself was not generated by MinecraftHDL)

Lame!(/s) I did this vanilla Minecraft(1.12?), including the display itself.

reply