Live data from Hacker News

Reverse Engineering SimTower

phulin.me

41–50 of 82 posts

Re: Reverse Engineering SimTower

#41

Just a fyi for anyone that doesn't know: A few years back Don Hopkins got the permission from Yoot Saito to open source Yoot Tower, SimTower's sequel: https://github.com/YootTowerManagement/YootTower ...however I don't think that the source was ever published anywhere, considering that the repository still doesn't have the source code yet. ("Please check out the YootTower repo, where I'll publish the source code once…

Also, Fabian Wesner's posted about using Claud Code to analyze the original micropolis repo's code and documentation to generate a new version.

Here is a deep dive "podcast" he generated (presenting Claud's analysis in a conversational format) that describes the work. I listened to it, and it got the important trademark and licensing issues right, was quite comprehensive and technically accurate, up until the end where they said maybe there's something to learn about city planning from SimCity! ;)

https://drive.google.com/file/d/1SGAkLIb4CQMPKU7TJ2sRdEjc0Dh...

It pretty much parallels the analysis docs in his repo, which are also quite accurate:

https://github.com/FabianWesner/micropolis/tree/master/docs

This lightning talk I gave at HAR 2009 goes into what you can actually learn from playing SimCity/Micropolis (and reading and extending the code), thanks to Seymour Papert's and Alan Kay's philosophy of Constructionist Education, and it's much wider and more generally useful than just city planning:

https://donhopkins.medium.com/har-2009-lightning-talk-transc...

To save you the indignity of LinkedIn scraping your browser extensions, here is a copy of Fabian Wesner's post and my response with the link spying urls resolved:

https://www.linkedin.com/posts/fabian-wesner_micropolis-simc...

Fabian Wesner | CTO | Passionate about AI and Entrepreneurship | 1 month ago

Claude Code is extremely good at documenting legacy software. That's a huge blessing, especially when the original developers are no longer around or are finally ready to retire.

If you haven't tried this, you might be missing out. So I did it for you.

#Micropolis is the open-source release of the original #SimCity, published by Electronic Arts in 1989. EA released the source code under GPLv3 in 2008 for the One Laptop Per Child project. The codebase is decades old, and there's likely no one left who knows it inside out.

SimCity was one of the very first games I played, back in 1990 on my father's 286. Just a few months after the Wall fell. So this one is personal.

I let Claude Code read the entire codebase and write a full documentation. As far as I can see, it looks correct and complete. I'm no expert on this particular codebase, but that's exactly the point: there might be no expert left on earth. I have tried this on other software where I am an expert, and the results are surprisingly accurate.

You can find the resulting docs and the prompt here: https://github.com/FabianWesner/micropolis/tree/master/docs

I also converted the docs into a podcast episode for easier consumption:

https://drive.google.com/file/d/1SGAkLIb4CQMPKU7TJ2sRdEjc0Dh...

Enjoy!

I know I’m not the first to use Claude Code on this treasure and - of course - I already rebuilt the game with JavaScript.

More on this tomorrow!

Don Hopkins | Full Stack Generalist AI Engineer

Although I may have two feet firmly planted in mid-air, I am still on Earth and know the code. I reviewed it and am I'm impressed with this documentation, which even caught my experimental Eliza chatbot easter egg in the PyGTK version! Importantly it correctly covered all the licensing and trademark issue, and mentioned that active development has moved on to the cleaned up and renovated MicropolisCore repo.

https://github.com/SimHacker/MicropolisCore

Here are the latest design docs:

https://github.com/SimHacker/MicropolisCore/tree/main/design...

The documentation you generated does a good job at mapping out and comparing the several different versions of the code. Albert Hofkamp and I cleaned up and refactored the code into C++ MicropolisCore (which I integrated with Python with SWIG, and later WebAssembly with emscripten/embind), and we wrote Doxygen comments and documentation in the code.

Chaim Gingold deeply studied multiple versions of the SimCity source code for his PhD thesis in Play Design, and interviewed many people involved, then wrote the definitive magnum opus "Building SimCity". Chaim is the one person on Earth who understands SimCity better than Will Wright!

https://direct.mit.edu/books/monograph/5791/Building-SimCity...

>Building SimCity: How to Put the World in a Machine

>A deep dive into the trailblazing simulation game SimCity, situating it in the history of games, simulation, and computing. Building SimCity explores the ...

Good grief you can't hide easter eggs any more!

"Additionally, the web version includes: PacBot -- an AI robot that follows roads toward heavy traffic and "eats" cars, reducing traffic density. This was an early experiment in programmable game avatars."

PacBot appears one minute into this video:

https://youtu.be/8snnqQSI0GE?t=56

>Micropolis Online (SimCity) Web Demo. A demo of the open source Micropolis Online game (based on the original SimCity Classic source code from Maxis), running on a web...

Re: Reverse Engineering SimTower

#42
post #38

It is missing the most important function. If the first tile you build is a lobby in the bottom left corner, it is supposed to double your starting money. :)

The real question is how many other things it's missing.

Reading the process in TFA, it's very much dependent on the comprehensiveness of the testing framework. And apparently, the tests never built a lobby in the bottom left corner...

Anything else it didn't try, is probably also not documented and not implemented.

With the growing use of AI in reverse engineering, we might need to shift our goals to more strongly verifiable ones, such as matching decompilation.

Re: Reverse Engineering SimTower

#43

Heh, I have four different games I am currently experimenting with, luckily I skipped this one as I am still expecting the original/Yoot source will be published (hopefully DonHopkins sees this and it nudges him to get it uploaded!).

I posted an update in response to this message:

https://news.ycombinator.com/item?id=47970301

Re: Reverse Engineering SimTower

#45
post #22

First of all, super cool. I have a soft spot for SimTower as well. :) > I didn’t want to do a function-by-function port. First, APIs may be copyrightable - and copying a binary that closely might implicate copyright more than an approach closer to clean-room design. But it was clear that I needed some level of feedback from the ground-truth binary in order to provide a hill for the LLM to climb on the reimplementatio…

It is not proof. It is a clear derived work infringing on the copyright of Nintendo.

Re: Reverse Engineering SimTower

#46

Just a fyi for anyone that doesn't know: A few years back Don Hopkins got the permission from Yoot Saito to open source Yoot Tower, SimTower's sequel: https://github.com/YootTowerManagement/YootTower ...however I don't think that the source was ever published anywhere, considering that the repository still doesn't have the source code yet. ("Please check out the YootTower repo, where I'll publish the source code once…

Also, Fabian Wesner's posted about using Claud Code to analyze the original micropolis repo's code and documentation to generate a new version. Here is a deep dive "podcast" he generated (presenting Claud's analysis in a conversational format) that describes the work. I listened to it, and it got the important trademark and licensing issues right, was quite comprehensive and technically accurate, up until the end whe…

At 3:35 I love how the speech synthesizer mispronounces "CherryPy" as "Cherry Pee".

https://drive.google.com/file/d/1SGAkLIb4CQMPKU7TJ2sRdEjc0Dh...

https://docs.cherrypy.dev/en/latest/

Re: Reverse Engineering SimTower

#47
post #4

I loved this game so much. Can't wait to see Santa.

It would be great for the movie theater to be able to play any video synchronized across multiple players so you can watch it together, like the awesome movie theater in Cursor Camp. Then we could all watch the extremely weird original SimTower movies together, in their 8-bit error diffusion dithered glory:

https://www.youtube.com/watch?v=qq8o7gg87k4

Condom Duck:

https://youtu.be/qq8o7gg87k4?t=211

Psycho Party:

https://youtu.be/qq8o7gg87k4?t=381

Cursor Camp (recent hn discussion and neil.fun link):

https://news.ycombinator.com/item?id=47949939

https://neal.fun/cursor-camp/

Also, LGR did these great reviews of SimTower and Yoot Tower, which he truly loves, so he disclaims that they are not exactly non-biased:

LGR - SimTower - PC Game Review (15 years ago):

https://www.youtube.com/watch?v=_4ToEDrhxo0

LGR - Yoot Tower: The Sequel to SimTower (5 years ago):

https://www.youtube.com/watch?v=CqNECXCd9iU

Yoot interviewed many interesting people for MACWORLD Japan, like Joanna Hoffman, Bill Atkinson, Steve Wozniak, Douglas Engelbart, and Alan Kay. Here's a transcript of Yoot Saito's interview of Alan Kay that he shared with me and I cleaned up and linked out:

https://github.com/YootTowerManagement/YootTower/blob/main/Y...

A Journey Through Computing History with Yoot Saito and Alan Kay

  Yoot towers wisely,
  Alan constructs the future --
  foundations of change.
Introduction

In this captivating interview from 1993, recently unearthed and previously published only in Japan, renowned game designer Yutaka "Yoot" Saito of MACWORLD Japan engages with computing pioneer Alan Kay in a deep exploration of technology's past and future. This dialogue, captured on a cassette tape and transcribed, spans the evolution of personal computing, highlighting groundbreaking advancements and visionary ideas that have shaped modern technology. Yoot Saito, celebrated for his innovative approach to game design, and Alan Kay, known for his seminal contributions such as the development of the graphical user interface and the concept of the Dynabook, offer profound insights into both the historical trajectory and the potential futures of the digital world. This interview serves as a treasure trove of historical anecdotes, philosophical reflections, and forward-looking innovations, capturing a moment when two brilliant minds discussed the dynamics of technological progress.

----

I'd love to find all of Yoot's original interviews published in MacWorld Japan. Yoot was very active introducing and working with technology and researchers from the US with Japan in the early days of the Mac, and he pioneered psychological chat based AI games using voice recognition and synthesis, like Seaman.

Seaman - Sega's Strangest Expedition Into Artificial Intelligence:

https://www.youtube.com/watch?v=VV0zpPSXOx4

Yoot Saito on His Classic Sega Game Where You Take Abuse from a Fish:

https://www.vice.com/en/article/yoot-saito-on-his-classic-se...

I found a couple of MacWorld Japan CDROM archives on Internet Archive, but my Mac says it can't mount the iso files. It appears to be an old HFS file system -- does anybody know how to to mount these treasures on a modern mac, with an emulator maybe? Or have the actual magazines lying around?

https://archive.org/details/macworld-japan-vol-1-1995-01

https://archive.org/details/macworld-japan-vol-2-1995-09

MACWORLD-VOL-1-1995-01.iso: Apple Driver Map, blocksize 512, blockcount 460003, devtype 0, devid 0, driver count 0, contains[@0x200]: Apple Partition Map, map block count 2, start block 1, block count 2, name Quick TOPiX by OMI, type Apple_partition_map, valid, allocated, readable, contains[@0x400]: Apple Partition Map, map block count 2, start block 3, block count 460000, name MACWORLD-ROM Vol. 1, type Apple_HFS, valid, allocated, readable

Re: Reverse Engineering SimTower

#49
post #22

First of all, super cool. I have a soft spot for SimTower as well. :) > I didn’t want to do a function-by-function port. First, APIs may be copyrightable - and copying a binary that closely might implicate copyright more than an approach closer to clean-room design. But it was clear that I needed some level of feedback from the ground-truth binary in order to provide a hill for the LLM to climb on the reimplementatio…

It is not proof. It is a clear derived work infringing on the copyright of Nintendo.

Depends of the country, a lot of countries have exceptions for interoperability (at least the whole EU) and since these projects are mainly used to make ports to other systems, it may be covered.
Post reply on HN