frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Original C64 Lode Runner Source Code

https://github.com/Piddewitt/Loderunner
64•indigodaddy•3h ago

Comments

phendrenad2•3h ago
Aaaaah it's one 21k assembly file (including data in hex format). Step #1 for anyone trying to port this to another platform will be to split it up into smaller files, no doubt.
gabrielsroka•3h ago
21 kloc
snvzz•3h ago
A license is not present, as to enable derivatives.

It will still be a while until copyright expires, unfortunately.

Pannoniae•1h ago
fortunately, you don't have to care about those details, just go and do it ;) I don't think the original person who decompiled someone else's intellectual property has too much ground to stand on here lol
rileytg•3h ago
this is a great remake of the Load Runner follow up, Mad Monks Revenge. it works amazing on a modern macOS!

https://mmr.quarkrobot.com/

emmelaich•1h ago
I'd love to play a LodeRunner with the same feel as the original. No version I've tried has the right feel. It's subtle.

Is this good? I downloaded but Virustotal said 1/66 vendors gave > "MaxSecure Trojan.Malware.300983.susgen Acronis (Static ML) Undetected"

Probably a false positive but enough for me not to try it.

Razengan•26m ago
I loved Lode Runner 2, in isometric pseudo-3D with some beautiful art and gorgeous tilesets.

https://en.wikipedia.org/wiki/Lode_Runner_2

eek2121•1h ago
WOW thank you for this!
kenjackson•2h ago
I love how well structured these old 8bit asm games always seem to be.
rhyperior•2h ago
oh my, they used my favorite solution for the how to draw a circle interview question
hackthemack•2h ago
For anyone curious, the draw a circle code in Circle.asm appears to use Bresenham's circle drawing algorithm.

https://www.geeksforgeeks.org/c/bresenhams-circle-drawing-al...

The secret is to draw 1 arc of a 45 degree angle and the reflect it (redraw it with different coordinates).

krajzeg•2h ago
Just wanted to note: this is in no way the original source code for the game. It's disassembled and commented source code.

Here is the repository owner explaining the process himself: https://github.com/Piddewitt/C64-Game-Source-Code

Nice work and interesting still, but maybe we can correct the title?

cogman10•1h ago
ehh, for these old games that's pretty close to the same thing.

A lot of old games were written in assembly. The difference between the disassembled and assembled code is/was pretty minimal.

What you ultimately lose out on is the comments and perhaps jump location names depending on the assembler.

Luc•2h ago
This can't be the original source code.

https://github.com/Piddewitt/Loderunner/blob/main/Lode%20Run...

Original source, I imagine, would be very tersely commented, if only to fit in memory / floppy, and would have very short variable and subroutine names, and lots of mess and commented-out lines from experiments.

This looks like a very lovingly done disassembly.

taink•1h ago
From the repository's README:

  Commented source code of the C64 Lode Runner Game - Including the copy protection
viraptor•48m ago
This doesn't say who commented it and where the source code comes from.
taink•35m ago
Another comment by krajzeg points to this repository for more context: https://github.com/Piddewitt/C64-Game-Source-Code
evereverever•2h ago
I just went to a talk at Portland Retro Game Festival by the dutch guy that made an official Atari Lode Runner port. He said he found a japanese book that had the C source in it and got the enemy AI from that.

This is pretty cool.

bluedino•1h ago
I don't think I ever played an actual 'Lode Runner', just Steve Moraff's version (DOS shareware?)

Whatever happened to that guy?

whoopdedo•55m ago
Look at the subroutine `EnemyMoveGetMaxRowBot` starting at line #9353. On #9414 the data row pointer is set to the enemy's current row. On #9441 it checks if the column to the left is a pole. On #9516 it checks if the column to the right is a pole. Now notice that on #9461 the row pointer is moved to the row below so it can check for a walkable tile (brick or ladder). When the right-side check is done after a left-side check the row pointer will be on the wrong row.

Here it is in C (from my own notes)

    SetCurrentRow1(y);
    if (CURROW1[x] != 0) {
        if (x != 0) {
            if (CURROW1[x-1] == 4) {
                TargetY = y;
                if (y >= PlayerY)
                    return y;
            } else {
                SetCurrentRow1(y+1);
                if (CURROW1[x-1] == 1 || CURROW1[x-1] == 2 || CURROW1[x-1] == 3) {
                    TargetY = y;
                    if (y >= PlayerY)
                        return y;
                }
            }
        }
        if (x < 27) {
            if (CURROW1[x+1] == 4) {
                TargetY = y;
                if (y >= PlayerY)
                    return y;
            } else {
                SetCurrentRow1(y+1);
                if (CURROW1[x+1] == 1 || CURROW1[x+1] == 2 || CURROW1[x+1] == 3) {
                    TargetY = y;
                    if (y >= PlayerY)
                        return y;
                }
            }
        }
    }
The bug can be seen on level 29 if you stand on the left set of blocks that has a single gold in it. The enemies will get stuck on the second ladder which has a pole on the right side.

The Apple II, Atari 8-bit, Commodore 64, and naturally the VIC-20 versions of the game have this bug since they were all made by Broderbund. But interestingly so does the Hudson Soft NES port. The later Macintosh version, which is otherwise a direct port of the Apple II code, fixed it. The IBM-PC version didn't have this bug because it was rewritten with the memory layout column-ordered instead of row-ordered. But then introduced a similar bug by subtracting when it should be adding.

(edit: I hadn't checked until just now but I'm amused to find that Lode Runner Legacy from 2017 preserved this bug in the classic game mode.)

Novo Nordisk's Canadian Mistake

https://www.science.org/content/blog-post/novo-nordisk-s-canadian-mistake
238•jbm•5h ago•113 comments

Original C64 Lode Runner Source Code

https://github.com/Piddewitt/Loderunner
64•indigodaddy•3h ago•20 comments

Doing well in your courses: Andrej's advice for success (2013)

https://cs.stanford.edu/people/karpathy/advice.html
383•peterkshultz•9h ago•123 comments

QuickDrawViewer: A Mac OS X utility to visualise QuickDraw (PICT) files

https://github.com/wiesmann/QuickDrawViewer
23•ibobev•2h ago•8 comments

Duke Nukem: Zero Hour N64 ROM Reverse-Engineering Project Hits 100%

https://github.com/Gillou68310/DukeNukemZeroHour
82•birdculture•4h ago•26 comments

Airliner hit by possible space debris

https://avbrief.com/united-max-hit-by-falling-object-at-36000-feet/
204•d_silin•7h ago•105 comments

Dosbian: Boot to DOSBox on Raspberry Pi

https://cmaiolino.wordpress.com/dosbian/
102•indigodaddy•6h ago•38 comments

Gleam OTP – Fault Tolerant Multicore Programs with Actors

https://github.com/gleam-lang/otp
29•TheWiggles•3h ago•4 comments

What's Behind the Mysterious Ancient Wall in the Gobi Desert?

https://news.artnet.com/art-world/the-hunt-gobi-wall-mongolia-2674588
18•derbOac•1w ago•8 comments

Compare Single Board Computers

https://sbc.compare/
106•todsacerdoti•7h ago•46 comments

Deterministic multithreading is hard (2024)

https://www.factorio.com/blog/post/fff-415
49•adtac•16h ago•6 comments

GNU Octave Meets JupyterLite: Compute Anywhere, Anytime

https://blog.jupyter.org/gnu-octave-meets-jupyterlite-compute-anywhere-anytime-8b033afbbcdc
106•bauta-steen•10h ago•24 comments

Could the XZ backdoor been detected with better Git/Deb packaging practices?

https://optimizedbyotto.com/post/xz-backdoor-debian-git-detection/
73•ottoke•8h ago•56 comments

The Spilhaus Projection: A world map according to fish

https://southernwoodenboatsailing.com/news/the-spilhaus-projection-a-world-map-according-to-fish
94•zynovex•1w ago•10 comments

Forth: The programming language that writes itself

https://ratfactor.com/forth/the_programming_language_that_writes_itself.html
6•suioir•1h ago•0 comments

Pawn is a simple, typeless, 32-bit extension language with a C-like syntax

https://www.compuphase.com/pawn/pawn.htm
7•unleaded•1w ago•1 comments

The working-class hero of Bletchley Park you didn't see in the movies

https://www.theguardian.com/world/2025/oct/12/move-over-alan-turing-meet-the-working-class-hero-o...
86•hansmayer•1w ago•38 comments

Comparing the power consumption of a 30 year old refrigerator to a new one

https://ounapuu.ee/posts/2025/10/14/fridge-power-consumption/
119•furkansahin•5d ago•148 comments

Replua.nvim – an Emacs-style scratch buffer for executing Lua

https://github.com/mghaight/replua.nvim
11•mghaig•3h ago•1 comments

The Cancer Imaging Archive (TCIA)

https://www.cancerimagingarchive.net/
33•1970-01-01•6d ago•1 comments

From Hollywood to horticulture: Cate Blanchett on a mission to save seeds

https://www.bbc.com/news/articles/cwy7ekl4yl8o
6•RickJWagner•1h ago•0 comments

Look at how unhinged GPU box art was in the 2000s

https://www.xda-developers.com/absolutely-unhinged-gpu-box-art-from-the-early-2000s/
12•m-hodges•18m ago•2 comments

Infisical (YC W23) Is Hiring Full Stack Engineers

https://www.ycombinator.com/companies/infisical/jobs/0gY2Da1-full-stack-engineer-global
1•vmatsiiako•8h ago

Show HN: Duck-UI – Browser-Based SQL IDE for DuckDB

https://demo.duckui.com
175•caioricciuti•14h ago•54 comments

Abandoned land drives dangerous heat in Houston, study finds

https://stories.tamu.edu/news/2025/10/07/abandoned-land-drives-dangerous-heat-in-houston-texas-am...
131•PaulHoule•12h ago•128 comments

The macOS LC_COLLATE hunt: Or why does sort order differently on macOS and Linux (2020)

https://blog.zhimingwang.org/macos-lc_collate-hunt
77•g0xA52A2A•12h ago•15 comments

LoC Is a Dumb Metric for Functions

https://theaxolot.wordpress.com/2025/10/18/loc-is-a-dumb-metric-for-functions/
5•Axol•2h ago•1 comments

The case for the return of fine-tuning

https://welovesota.com/article/the-case-for-the-return-of-fine-tuning
145•nanark•16h ago•72 comments

Show HN: Pyversity – Fast Result Diversification for Retrieval and RAG

https://github.com/Pringled/pyversity
69•Tananon•11h ago•7 comments

Designing EventQL, an Event Query Language

https://docs.eventsourcingdb.io/blog/2025/10/20/designing-eventql-an-event-query-language/
16•goloroden•5h ago•8 comments