Remix.run Logo
Show HN: I spent 3 years reverse-engineering a 40 yo stock market sim from 1986(wallstreetraider.com)
158 points by benstopics 4 days ago | 36 comments

Hello my name is Ben Ward for the past 3 years I have been remastering the financial game Wall Street Raider created by Michael Jenkins originally on DOS in 1986.

It has been a rough journey but I finally see the light at the end of the tunnel. I just recently redid the website and thought maybe the full story of how this project came to be would interest you all. Thank you for reading.

DigiEggz an hour ago | parent | next [-]

Congrats on such an achievement. The remake looks great, but those DOS screenshots have an undeniable charm. With such a large scale game, something I always find interesting is uncovering what types of quirks and bugs bubble underneath the surface in the original version. Did you come across anything obvious in your testing?

JohnHammersley 4 days ago | parent | prev | next [-]

This is such a well written story, and congratulations Ben, it sounds like it's been a lot of hard but ultimately successful work!

I know you'll deservedly get a lot of credit for all your work in remastering the game, but you should also get credit for how you've woven this narrative together, it's a lovely read. Thank you for taking the time to write it up, and good luck with the Steam release, and whatever project you take on next! :)

benstopics 3 days ago | parent [-]

Thank you sir and I'm glad you enjoyed the story! I hope it's successful but we will see.

sho_hn 6 minutes ago | parent [-]

I really enjoyed this article as well!

I'm still curious, however:

> That's not a marketing angle—it's a headline that writes itself.

Any ChatGPT assistance there?

wewewedxfgdf an hour ago | parent | prev | next [-]

If you dropped the source code here you'd probably get a versiojn in each of the 5 major languages quick smart.

dionian an hour ago | parent [-]

i guess if it was public you could cheat or understand it. its incomprehnsibilty is just like the real markets - you can never know why or how

doctoboggan an hour ago | parent | prev | next [-]

Really interesting, thanks for sharing!

I know it almost sounds crass, but you should consider letting an LLM take a crack at transpiling the code. Source to source translations are one of the most widely agreed upon strengths of LLMs.

masswerk 44 minutes ago | parent | prev | next [-]

Regarding "The Second Oldest Game Developer", there are also the authors of "Spacewar!": Steve Russell was born in 1937, meaning, he's either 89 or will be 89 this year. Dan Edwards must be around that age, as well.

jjmarr 4 days ago | parent | prev | next [-]

Good job! When can I buy it?

I am sold on the game and wishlisted it but lack of release date saddens me.

I love spreadsheet games like Terra Invicta/Paradox/Simutrans and this seems like a terrific example of one.

benstopics 4 days ago | parent [-]

If I can't get a response from a publisher here soon, I will be setting an Early Access release date of 1-2 months from now to give me some time to build up more wishlists before I pull the trigger.

DeathArrow 43 minutes ago | parent [-]

Please post here when you have a date!

thomassmith65 an hour ago | parent | prev | next [-]

This is a wonderful project, and the post is a wonderful read!

Are there any plans to break out portions of the Basic engine to a modern language? It's frustrating that the heart of the game remains inscrutable. Surely Ward is tempted?

saaaaaam 4 days ago | parent | prev | next [-]

This is very well written. I have fairly low interest in video games and rarely read gaming content, but read this all the way through. That’s an achievement in itself!

pillefitz 2 hours ago | parent | prev | next [-]

This is amazing! Having no knowledge of Basic, a.) what makes the rewrite "impossible"? b.) how do coding agents perform on the codebase? It might make for a neat benchmark similar to ARC

lelanthran 11 minutes ago | parent | next [-]

The BASIC from that time was pretty limited, IIRC.

No real functions, only `gosub` and `goto` so everything is a global variable.

I think even assembler for x86 is easier to unravel.

thomassmith65 an hour ago | parent | prev [-]

I gather the version of Basic is not Object-Oriented.

So the program most likely is flat: a bunch of global variables (and possibly memory addresses), and instructions ordered by line number, rather than functions or methods.

omega3 4 days ago | parent | prev | next [-]

The Wall Street Raider is under active development, you’re releasing a clone under the same name?

https://www.roninsoft.com/wsraider.htm

benstopics 4 days ago | parent [-]

I am working with Michael to remaster it. He transferred the domain name to me and I just redid the website. I'm not sure when the last time he updated Roninsoft website, but he has "retired" from working on WSR, although has been a huge help with the remaster. https://www.roninsoft.com/#:~:text=!!!%20Check%20out%20WallS...

msephton 2 hours ago | parent | prev | next [-]

Fantastic. Well done! For both the new game and the website article.

replwoacause 4 days ago | parent | prev | next [-]

I enjoyed the read. How did you tap into the legacy Power Basic engine? Was there a FFI or some kind of bridge you could hook into? And what languages were you using?

benstopics 4 days ago | parent [-]

I built an FFI via event dispatching and shared memory pointers/matching structs. Imported the C++ UI layer as a DLL via Win32 LoadLibrary. The PB shares a big array for storing global pointers allowing them to read/write each other's memory. The C++ has an event queue and has DLL functions the PB can call to peek/pop the next event. It actually isn't that complicated, just took me forever to come up with the idea.

As for languages, PB, C++, and JavaScript (Electron/Preact). I chose a no-build UI framework so that it could be modded by players without installing any build tools, just edit the text files in the game folder, and it has been a very good decision.

nwellinghoff an hour ago | parent | next [-]

Indeed very clever. I wonder if you framed this problem up with claude how it would “guide” you to solve this problem. Would be an interesting match up of ai vs human. Love the story!

replwoacause 4 days ago | parent | prev [-]

That’s awesome. What a clever approach!

zahlman 3 days ago | parent | prev | next [-]

... You got the source code, and it was 115 kloc of BASIC, but several other individuals and organizations failed to "reverse-engineer" it?

benstopics 3 days ago | parent | next [-]

Others attempted to build from scratch or port it without the original developer's involvement. I worked directly with Michael and built a bridge layer into his existing codebase rather than rewriting it.

zahlman 2 days ago | parent [-]

Ah, I understand now.

benstopics 3 days ago | parent | prev [-]

I'm sorry what is the question?

ozozozd 2 days ago | parent | prev | next [-]

Awesome story! Well-written also.

You are the engineer we all aspired to be. Though, you really are the chosen one.

Wish you the best!

dionian an hour ago | parent | prev | next [-]

Love it and fascinated to play the game.

nacozarina 4 days ago | parent | prev | next [-]

AI can’t do impossible things yet, but we still can.

benstopics 4 days ago | parent [-]

You're damn right we can.

cameron_b 4 days ago | parent | prev | next [-]

Cheers for this!

Thank you for sharing your story.

benstopics 4 days ago | parent [-]

You're welcome!

sevenseacat 3 days ago | parent | prev [-]

oh this is an absolutely fascinating story!

sevenseacat 2 days ago | parent [-]

I forgot to ask, do you have links to any of the Reddit threads? They’d be a fun read!

benstopics 2 days ago | parent [-]

That is a really good idea. I totally forgot to include the link in that part of the story. I will definitely be making that change! Well, here is the one I think you are referring to: https://www.reddit.com/r/tycoon/s/bzjG709MLB