Need help?
<- Back

Comments (38)

  • drpaneas
    I built a Go runtime that runs on the Sega Dreamcast, the 1999 console with 16MB RAM and a 200MHz SH4 CPU.You can write games in Go with goroutines, channels, garbage collection, and all the language features you'd expect. It compiles using gccgo and runs on real hardware or emulators.The project includes 3 game examples Pong, Breakout and Platformer, input handling, audio support, and integrates with KallistiOS (the Dreamcast homebrew SDK).* Star Here: https://github.com/drpaneas/godc * Documentation: https://drpaneas.github.io/libgodc/ * Video Tutorial: https://youtu.be/ahMl0fUvzVAHappy to answer any questions about the implementation!
  • phantasmish
    > Replaces the standard Go runtime with one designed for the Dreamcast's constraints: memory 16MB RAM, CPU single-core SH-4, no operating system.24 total megabytes, with an M, of memory between system and video (another 8 there), single core 200mhz CPU, graphics chip runs at 100mhz. Shenmue runs on it.Glares at Teams.
  • Imustaskforhelp
    If someone is interested in running golang projects on niche hardware perhaps, one pro tip I can suggest but there is way to convert golang 100% into wasm (no js shim or anything required) and the only thing you would need is a wasm libraryYou have to use golang from source (see the stackoverflow page https://stackoverflow.com/questions/76087007/golang-to-wasm-... )go install golang.org/dl/gotip@latest gotip download GOOS=wasip1 GOARCH=wasm gotip build -o main.wasmAlthough the way I did it is going into the gotip folder and then the binary folder which would contain the go compiler binary and then just use that path withGOOS=wasip1 GOARCH=wasm ~/sdk/gotip/bin/go build -o main.wasmNote that I forgot the exact path but it was similar to this but the point being that its super easy and simple :)I tried to do it and I can tell you that it works and it works for even the most latest versions of golang, all you need is a wasmengine which I suppose can be ubiquitous.I have built a solution where golang code gets converted to wasm and then we run a ssh server which then runs that wasm all in sandbox to create sandboxed mini golang servers :p I really love it although its a more so prototype than anything
  • nasretdinov
    Nice project! Having just 16Mb of RAM does indeed sound like a real challenge for stock Go (not the TinyGo variant)! Even hello world is a couple megs, although I imagine Dreamcast isn't 64-bit, so the instructions are probably much shorter. Interesting to see anything written in it :)
  • steeve
    this is incredible
  • donatj
    The "Effective Dreamcast Go" docs on this are fantastically well written. I've read much worse docs from major corporations.
  • AdmiralAsshat
    > Who is this for? > ... > Anyone who enjoys the challenge of severe constraintsRemembering what a powerhouse the Dreamcast was when it came out, and how amazing games like Soul Caliber and Shenmue looked, it's hard to think of the Dreamcast hardware as "severely contained".
  • rpastuszak
    I love this. The documentation is great and I've even learned a thing or two about golang from it! The logo makes me want to port Icy Tower to DC.
  • karel-3d
    I thought that gccgo supports only some old go version? Or subset of features? I will need to refresh my memory for sure