Live data from Hacker News

Reverse Engineering SimTower

phulin.me

51–60 of 82 posts

Re: Reverse Engineering SimTower

#52
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…

> APIs may be copyrightable

Didn't Google v. Oracle disprove this?

Re: Reverse Engineering SimTower

#53
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. :)

Was this a thing?

I never knew this!!

Man, pre big-internet was so hard to find information on games. I remember for the original tomb raider a friend needed a guide, so I wrote and printed out them a guide for the full game, since I played it pretty obsessively.

Re: Reverse Engineering SimTower

#54
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 v…

Yeah the simulation also seems to have some bugs. I saw a person get stuck waiting for an elevator for hours when all the elevators were idle. He got more and more pissed off until he eventually despawned overnight.

I agree that you need to be able to produce source code that matches the original binary before you can start porting things.

Re: Reverse Engineering SimTower

#55

Earlier quoted context omitted.

Love Yoot Tower! Can we clone it next?

yes! I've been thinking about how to do it, but it will take some work!

That would be wonderful! There are a lot of different versions with all kinds of extensions. A cool thing about The Tower II (a later version of Yoot Tower only released in Japan) is the ability to plug in new content, using "Tower Kit"! So it should be possible to reverse engineer its plug-in system, and plug new stuff into it, or even create a plugin adaptor so you can easily create plugins in JavaScript / HTML / etc.

"Tower Kit" was released, but I haven't been able to find an archive of the executable, just some web pages about it:

https://web.archive.org/web/20000229064305fw_/http://www.ope...

https://web.archive.org/web/20000311043425/http://www.openbo...

https://web.archive.org/web/20000310234154/http://www.openbo...

https://web.archive.org/web/20000521002924fw_/http://www.ope...

There's even a monster movie version of "The Tower II Special Gamera Pack" released with “Gamera 3: Revenge of the Iris”!

https://en.wikipedia.org/wiki/Gamera_3:_Revenge_of_Iris

Here's a summary of Tower Kit:

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

>What's Tower Kit?

>Tower Kit is optional software for The Tower II. In The Tower II, you can select the stage where you want to start the game using the concept of a "map." The Tower II package comes with three maps: "Shinjuku Subcenter," "Hawaii Diamond Head," and "Kegon Falls," and the "Tower Kit" adds these maps. By installing this tower kit, a new stage game will begin. Tower kits don't just add more stages. Each map has new features, allowing you to play a completely new game.

>Please try the "Tower Kit" which allows for infinite variations.

>A love story between you, the person in charge of the Liberty Island redevelopment project, and two men and women who are your subordinates. Your work will have a subtle influence on the course of your love life. The Tower II is the first attempt at a crossover between redevelopment and love, set in New York. What is the ending...? [...]

Re: Reverse Engineering SimTower

#57

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…

I spoke with Yoot about it recently. There are some issues with Nintendo and licensing that may take some time to work through. My fingers are crossed, but it might take a while and require patience. We all want it to happen though! Meanwhile I'm working on Micropolis (based on the original SimCity Classic code, cleaned up, and compiled with Emscripten into WASM), and also reimplementing The Sims character animation…

If there's legal problems with releasing the Nintendo console ports, would it be possible to just release the code for the PC/Mac versions?

Re: Reverse Engineering SimTower

#59
post #52
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…

> APIs may be copyrightable Didn't Google v. Oracle disprove this?

Not quite. Google v Oracle ducked the question of API copyrightability (that was one of the main complaints of Thomas's dissent), instead saying that Google's use of the APIs were very definitely fair use in a sufficiently general manner that any clean room implementation of API for compatibility is very definitely fair use.

Re: Reverse Engineering SimTower

#60
Every once a while, I get the itch to replay SimTower. Unfortunately, the latest times I've attempted, something in WINE manages to interact so poorly with the window manager that it crashes X altogether. This has led me to poke at it to consider either building my own version of WINE that doesn't crash my desktop or building my own UI on top of the existing 16-bit code in a franken-build to make it work.

I've been leaning towards the latter, partially because I have an idea to replace one of the functions that's currently implemented as a horrible irreducible CFG that's a pain to understand with... some 16-bit AVX instructions. Mostly for the amusement of saying that I have used 16-bit AVX instructions.

Post reply on HN