frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Show HN: NES Contra (1987) port (ASM –> C and then C –> WebAssembly)

https://epoyraz.github.io/nes-contra-us/
22•tevlon•2h ago•12 comments

Show HN: A language model that lives in a boot sector

https://github.com/kerlenton/bootgpt
31•kerlenton•8h ago•0 comments

Show HN: Ghostman – A fast, keyboard-driven TUI API client and webhook inspector

https://github.com/4yk5/Ghostman
37•4yk5•1d ago•25 comments

Show HN: A USB-C LTE modem that gives my computer a phone line

https://github.com/Koppar-AI/koppar-lte-modem
31•abijahkaj•5h ago•23 comments

Show HN: Marelleo, an open-source story box I built for my kids using ESP32

https://zebra.rodeo/en/blog/marelleo/
177•foOg•4d ago•48 comments

Show HN: Aruma – clean-room self-hosted backend for the official Firebase SDKs

https://github.com/arumadev/aruma
3•osama200•2h ago•1 comments

Show HN: Castov – Open-source dev tools and AI secret shield with zero telemetry

https://castov.com
2•castov•2h ago•0 comments

Show HN: Jointter – A daily word puzzle using dots and lines

https://www.jointter.com/
9•proy87•5h ago•17 comments

Show HN: To Honor Sir Patrick Stewart, Enjoy the TNG Episode Guessing Game

https://tng.episodle.com/
230•francisofascii•21h ago•72 comments

Show HN: Run Claude Code inside OpenCode through the official CLI

https://github.com/khalilgharbaoui/opencode-claude-code-plugin
2•kaygeee•3h ago•0 comments

Show HN: InterviewLint – Practice explaining code, not just writing it

https://interviewlint.com
2•aburayhanalif•3h ago•0 comments

Show HN: A working Nintendo in ~1GB of Qwen weights

https://github.com/dbreunig/nesformer
281•dbreunig•1d ago•143 comments

Show HN: Maclet – A native macOS container runtime written from scratch in Rust

https://github.com/sumant1122/maclet
3•paperplaneflyr•5h ago•0 comments

Show HN: Similarity, a spiritual successor to 2000s-era OkCupid

https://similarity.com
4•stickfigure•5h ago•2 comments

Show HN: Quit everything to make one website

https://hellojomp.com/
3•hellojomp•6h ago•0 comments

Show HN: Sketch Stadium – watch your agent play Pictionary

https://sketch.wakeshift.ai/games/q5ucru
35•ericlevine•1d ago•11 comments

Show HN: I rebuilt Kubernetes for ESP32 microcontrollers

https://github.com/arterialist/kube32
51•Arterialist•2d ago•16 comments

Show HN: I built a crawler that finds personal websites by a /.well-known/josh

https://joshternet.org/
4•TheWoollyBully•7h ago•0 comments

Show HN: I Turned DOOM into a Transformer

https://github.com/mottopanikeiku/doomformer
129•falperc•1d ago•35 comments

Show HN: Auto Dismiss Mac OS "Allow <app> to find devices on local networks?"

https://github.com/johncassil/dontallow
153•johncassil•2d ago•130 comments

Show HN: Mullvad as a rotating connect proxy

https://github.com/nicorobinreal/molehill
2•albinstman•8h ago•0 comments

Show HN: UPC Label Maker – 1:1 PostScript point barcode imposition for Avery/FBA

https://upclabelmaker.com/
2•dirtyfancy•9h ago•0 comments

Show HN: Million Piece Puzzle

https://puzzle.io27.com/
2•jeffbaumes•9h ago•1 comments

Show HN: Spinf-serve – inference server for bulk scoring and decisions

https://github.com/spinfinc/spinf-serve
22•giarec•1d ago•5 comments

Show HN: A proof-of-concept formalization of the IRS federal tax forms

https://github.com/emmilco/us-tax-model
81•RGS1811•3d ago•13 comments

Show HN: Fraktur, a DJ mixing app in the browser

https://greenvitriol.com/posts/fraktur
23•janesconference•1d ago•2 comments

Show HN: Imza – plan and review focused coding agent

https://github.com/umutsevdi/imza
3•umutsevdi•11h ago•0 comments

Show HN: I made a game about the 3k-year evolution of Chinese characters

https://chinese.vedranb.com/
3•vedran•4h ago•1 comments

Show HN: I rebuilt my old canvas 3D library as a small WebGL 2 library – phoria2

https://kevs3d.co.uk/phoria2/
2•kevs3d•11h ago•0 comments

Show HN: Lasm – Write formally verified webapps in Lean for Node/serverless/edge

https://github.com/Millillion/lasm
36•lastmjs•1d ago•20 comments
Open in hackernews

Show HN: NES Contra (1987) port (ASM –> C and then C –> WebAssembly)

https://epoyraz.github.io/nes-contra-us/
22•tevlon•2h ago
Based on vermiceli's annotated disassembly of Contra: https://github.com/vermiceli/nes-contra-us. Thanks for the great work.

I ported it in two steps. First to C: the game logic is translated routine by routine from the 6502 assembly, and checked frame by frame against the original in the Mesen emulator. Then the C code to WebAssembly so it runs in the browser.

The cherry on top: online multiplayer, so two players can play co-op over the internet.

Source: https://github.com/epoyraz/nes-contra-us

Comments

BSPtree•1h ago
Cool, how did you build the multiplayer mode? And how much AI was used?
gwbas1c•1h ago
One of the things that I'm curious about: How easy / hard is it to use the same NES game with higher resolution / color graphics, and sample-based sound?

Are there any emulators out there that let you swap in higher resolution assets so a game can be freshened without a complete port?

kekebo•1h ago
Idk about swapping assets but zsnes used to have a range of video filters that could improve the experience on a modern screen quite a bit.

Edit: For SNES, not NES, my bad.

unleaded•1h ago
Mesen has texture packs. Don't know about sound, you'd have to reverse each game's sound driver first. https://vgmpf.com/Wiki/index.php?title=Famicom/NES_Sound_Dri...
BSPtree•1h ago
I would not think so, at least not in a meaningful way. That would require to edit the cartridge data thus the ROM, as all sprite data was contained within the cartridge. Sample based sound is impossible natively, as NES and older game consoles don't work with digital data but synthesizers. You could perhaps synthesize the music to WAV files and then enchance it. But then again, NES and thus its emulators have no way of playing digitized audio!
cowlevel•1h ago
The NES in particular is probably not too difficult to upscale, because the graphics data is stored on its own ROM chip (sometimes RAM) in a well structured layout. SMB1 just uses a ROM chip containing many tile graphics which the CPU code addresses by tile index. It would be really easy for an emulator to use the same tile indices to address any arbitrary set of tiles loaded from a PNG. Some games use RAM, which makes it harder as you'd have to index the PNG by hash or something.
pantelisk•55m ago
Compute motion vectors, faux depth, and add DLLS5 to it maybe? Could be pretty cool, or pretty horrific. Only one way to find out :)
vunderba•46m ago
You might like 3dSen, which came out several years ago. It does some pretty crazy stuff, converting NES games into essentially 3D voxel environments.

https://store.steampowered.com/app/1147940/3dSen_PC

tevlon•43m ago
whoa, that's cool. I didn't know about this. Thanks for sharing!
einpoklum•1h ago
Most of the keys aren't working for me in Firefox though :-(
tevlon•52m ago
i only testing in chrome. Will look into it!
raldi•37m ago
But the Japanese Contra was so much better! https://www.youtube.com/shorts/CiXzONyCDW0