Vitor Vilela
@hackervilela
🇧🇷 Software & Computer Engineer | SNES ROM hacker | Creator of SA-1 Pack, Touhou Mario, SMW Widescreen & SnesLab: | | | sneslab.net
And finally, game rendering: PPU updates, VRAM uploads, positions handling. And once V-Blank is done, it updates object animations to ensure they run at 60 FPS. The airplane, ship, Bowser, tornados, they run smoothly even if simulation or UI itself is slowier. Impressive.
One thread takes care of user interface. Every button press, action taken, pop-ups, warnings, text. Runs at 15 FPS. Another thread handles simulation. City growth, traffic, everything complex. Takes several frames to finish a round.
SimCity has 3 different threads and it's so interesting how they interact with each other. The V-Blank (yes, screen blanking/refresher) is the main coordinator. It decides which main thread will run (think of a simple scheduler) and later does the main animations.
What is helping to understand the game better: instead of static analyzers or debug assisted playthrough, I'm also building tools that builds a graph-like to understand the cyclic complexity of each algorithm and the interactions between them.
In other news, my LG C1 TV is gone after about 4 years =( The panel has short circuit and turning it on makes the TV to flicker to about 3-4 seconds and *bam*. LG support basically told me to buy a new panel (90% price of a new TV) and there's no courtesy for me. Too bad.
SMW hacking. I never seen so much potential for new tools. With the advances and knowledge we have now, we can create tools that pushes creativity to infinity. I'm very excited!
Did you know that the SNES sound system supports surround sound? However, the current surround tech in our TVs and even on emulators doesn't produce the intended sound. This includes for both hand-made surround or tech like Dolby Surround (e.g. Samurai Showdown). Sounds a lot of potential.
Every day is a new opportunity for growth. For new projects. For continuation. Time can pass, but what you've learned stays. I'm back, everyone, and I hope you all look forward for what will be coming in the future. The future will be great.
I finally got a new PC! A laptop as always. I have great expectations for this new hardware. By the way It's the first time I'm using Windows 11, any hints for someone that is been using Windows 10?
Bluesky now has over 10 million users, and I was #6,283,019! Hue hue hue!
For reasons I can't understand yet, applying the SA-1 patch makes two scenarios marked as completed automatically
SimCity simulation is completely broken with SA-1 right now but Dr Wright is saying that my city is growing nicely, so that's what it matters for now!
Since the game uses COP as a software interrupt, all it does is to jump to some utility function. While it works like a shared routine, it's considered a suboptimal approach since using and setting COP takes more CPU cycles than using a routine command (e.g. JSL).
The 65c816 CPU has a opcode (command) called COP ("Coprocessor empowerment"). The SNES has no coprocessor to enpower, so it works like a software interrupt (like BRK). SimCity for unknown reasons heavily uses the command, being called 310 times in the game. They could have used a normal subroutine.
Hello everyone!! I just updated my handler!! It's now @hackervilela.sneslab.net!!! Share with everyone!
Managed to disassembly SimCity by 99.37%. Whew, this game has a LOT of hidden content. There might be some unused stuff as well (e.g. similar to SMW's test level), but I still need more research to confirm this.
It still bugs me that we don't know what the "big" levels exactly means on SMW
Hello everyone! This is my first post. To make stuff more fun, here is a screenshot of Super Metroid running on SA-1. Most of the algorithms are yet not processed by the chip, but the game layout is already adapt to the use the SA-1 chip.