Via Robin Sloan comes Fabien Sanglards deep dive into the engineering behind the Street Fighter II arcade machine and the graph paper and scissors process the team undertook to ensure all their sprites fit inside the tight memory budget.
If the CPS-1 capabilities were a blessing for artists, it was a problem for project managers. In an era where ROM chips were very expensive, a game was allocated a ROM budget at its beginning which it could not exceed.
Before the CPS-1, remaining within the budget was a simple matter of a division. The number of #sprites allowed to the art team was ROM size / rectangular sprite size. But the free form factor introduced a tracking problem.
In order to make the best use of the capacity we had, we wrote the ROM’s capacity on a board, and cut and paste the pixel characters on the board.*
If there was space left on the board, then there was open capacity in the ROM. So, from there we started filling in the spaces, like a puzzle.
I don’t want to just know what a quick fix is or something like that. I want to actually get in. I want to read this, you know, like, an example, like, a gem that won’t upgrade, like, I want to go dive into that source code. I want to see what the source code is doing. I want to figure out the why, you know. I don’t want to just Google for, like, hey, I can’t upgrade this gem. What do you think I should do? So I’ve always been super curious. That’s how I’ve been able to sustain in software development and not really get burn out. It’s what makes me tick.