Show HN: Cobalt – a pixel-art painting studio for the Nintendo DS

benbridle.com

173 points by benbridle 6 days ago

Hey everyone,

Cobalt is a program for painting textural and expressive pixel-art on Windows, Linux, Nintendo DS, and in-browser. The same 46KB core executable runs on all platforms, with a thin emulator layer sitting on top to handle differences in inputs and filesystem access (which makes it easy to port between systems). It's built on Bedrock[0], an 8-bit virtual computer system I posted about here in July.

I created Cobalt because I wanted to draw messy, gritty pixel art without smooth gradients, and the smaller colour palette helped with making bolder colour choices. Images can be moved back and forth between platforms, so you can copy works-in-progress to the DS to keep working away on the bus or train. It's like a 2004-era vision of the future.

There's a live demo on the linked page that runs in the browser, and there are downloadable demos for every platform here[1]. Let me know if you try it out or have any questions!

[0] https://benbridle.com/bedrock

[1] https://derelict-engineering.itch.io/cobalt

zahlman 2 days ago

I love everything about this concept. Building your own stack, the overall aesthetic, doing simple things with modern tech to recapture the past... you are definitely my kind of people. "2004-era vision of the future" is a great slogan (although I'm also a fan of some c. 1984 insights).

  • benbridle 2 days ago

    Thank you! I'm really passionate about exploring this direction of computing, digging around in a bargain bin of discarded futures to find ideas worth pursuing.

merelysounds 2 days ago

Love it; editable patterns are my favorite feature. I also like that in general it is a very configurable editor - being able to customize each tool is extremely user friendly.

  • benbridle 2 days ago

    Thank you! The customizable tools give a surprising amount of power to the user for a relatively small amount of work (just a couple of basic editing screens). The most interesting outcome of all this is that the scatter and spacing parameters work equally well on the bucket fill tool as they do for regular brushes, allowing you to emulate white noise and similar when filling large areas.

mouse_ 2 days ago

Long live resistive touch screens!

  • snowram 2 days ago

    Little known fact, the original DS touch screen is pressure sensitive. I don't know of any games using this feature, but the Colors homebrew does use it! So the DS was a fairly convenient digital art machine for its time.

dannyfritz07 2 days ago

Hi BenBridle. What changed between Bedrock Spec v1 and Spec v2? Is there a way for me to see what's new? I'm assuming there were changes to support more than 1 screen for NDS, but not sure.

  • benbridle 2 days ago

    The second revision of the Bedrock specification changed very little of consequence, but I should probably add a change note to the spec. The structure of the document was reworked, becoming a single long document instead of multiple smaller ones; some sections were reworded for clarity; the behaviour in some underspecified edge cases was made explicit; the assembler specification was cleaned up; reading from the action port on the file device returns error state instead of success state. I don't expect that any existing programs other than Cobalt will have been affected. The bedrock-nds emulator uses the second screen to run a second Bedrock program (the on-screen keyboard), it isn't exposed to the main program.

    My intention for Bedrock is that it will never change going forwards, other than for minor clarifications, so that existing programs will continue to work on any emulator indefinitely. Have you played around with Bedrock before, or written a program for it?

    • dannyfritz07 a day ago

      I haven't written any Bedrock assembly yet. But a few months ago I read the spec and bookmarked it as something interesting. I am toying with the idea of creating a disassembler for it now.

      • benbridle 21 hours ago

        Oh cool, that'd be great! I'm wanting to write a disassembler in the future as part of a dedicated debugger for Bedrock programs. If you end up writing down any plans I'd love to take a look or help you out, my email address is ben@derelict.engineering.

enricozb 2 days ago

Huge fan of this sort of work, would like to put my DS to use someday.

msephton 2 days ago

Great work! I’ve built a pixel art app for macOS and I’ve also enjoyed rolling everything myself.

ugh123 2 days ago

Amazing! I couldn't see how to do the 'sketch layer'. Layers would be amazing for this

  • benbridle 2 days ago

    The sketch layer is accessed with the 'eye' button in the bottom-right corner of the canvas screen. Clicking that button toggles visibility of the sketch layer and reveals three more buttons, and clicking the newly-revealed pencil button toggles drawing to the sketch layer instead of the canvas.

    The decision to implement only two layers for Cobalt was a conscious one. The design of Cobalt is focused towards speeding up the user and helping them to finish their images, and I found that being able to go back and tweak each layer made it more difficult to commit to a final image.

    • ugh123 2 days ago

      Makes sense. Thanks!

nemomarx 2 days ago

Headline buried the lead that it also runs on other platforms. That part sounds really impressive.

Jotalea 2 days ago

it's always awesome seeing people still making stuff for the DS.

  • benbridle 2 days ago

    It's such a good platform for running programs on. It's small, has plenty of grunt, and the dual screens are great for multi-window work.

vyr 3 hours ago

[dead]

leakycap 2 days ago

I wonder if this would be well-known if it was free instead of a nominal cost of $5?

When I put this much work in, charging a tiny/nominal fee feels like a barrier without a clear reason.

Younger users without payment methods and those on a budget will not engage with what you built.

At $5, the income stream has to be miniscule, so why choose a $5 license instead of free with donations?

If you want to make money on this, all the thrilled users you currently have would have likely paid 2x or more the current price, so if making money from it is the reason for the cost, $5 is confusing. But $5 is also confusing as a cost of entry to something that could be widely enjoyed at no extra cost to you, and might bring you something good in return if it was free and not paid.

At $5 a pop I can't imagine you're getting much of anything, including attention or widespread usage.

  • benbridle 2 days ago

    There are free demos available on the store page for Windows, Linux, and Nintendo DS, so Cobalt can still be used by people who can't afford $5. Charging a higher price would make the program a lot less accessible, and charging nothing would be unsustainable, I can't live off attention alone.

  • gyomu 2 days ago

    Young users without payment methods do not sideload binaries on a Nintendo DS.

    If you’re hacking with a Nintendo DS in 2025 you were most likely a teenager in the 2000s/early 2010s, and you most certainly have a payment method.

    Agree that OP is underselling their work at $5 - the next big psychological barrier after $0.99 is at $9.99, might as well go there

    • squigz 2 days ago

      An old DS you find in your parents' stuff from years ago is exactly the sort of thing a young hacker might be messing about with.

    • mouse_ 2 days ago

      $5 is value price for me. No way I'd spend 10. 5? Sure. I feel like I won't miss 5, but 10 is food money.

  • wkjagt 2 days ago

    Actually, when I saw the $5 price, my first thought was: thank you for not making this a subscription.