51

Show HN: I spent 3 years reverse-engineering a 40 yo stock market sim from 1986

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.

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! :)

2 days agoJohnHammersley

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

a day agobenstopics

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!

2 days agosaaaaaam

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.

2 days agojjmarr

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.

2 days agobenstopics

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?

2 days agoreplwoacause

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.

2 days agobenstopics

That’s awesome. What a clever approach!

2 days agoreplwoacause

Cheers for this!

Thank you for sharing your story.

2 days agocameron_b

You're welcome!

2 days agobenstopics

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

2 days agonacozarina

You're damn right we can.

a day agobenstopics

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

a day agozahlman

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.

21 hours agobenstopics

Ah, I understand now.

6 hours agozahlman

I'm sorry what is the question?

a day agobenstopics

oh this is an absolutely fascinating story!