Home Artists Posts Import Register

Content

Most parts of the TMNT hardware have been implemented and connected with each other. The lenghty bug-hunting process began.

To do this without having to wait several minutes for the core to be synthesized and used on a real FPGA, simulation is used. Simulation is an essential tool for debugging, it's similar in principle to an FPGA emulator.

It can be started almost instantly (no synthesis is required to map the HDL to FPGA gates), and all signal changes are logged for further analysis. However, the simulation itself is not real-time AT ALL. It's much, MUCH slower than having the same design on a real FPGA.

I remember having to wait for at least 5 minutes to get a whole video frame from the Neo Geo core simulation (which should haven taken 0.016s in real time). But if a graphics glitch appeared, I could go look for the exact moment it occured in the signals log (billions of state changes) and climb back up the source of the problem, like if I had an oscilloscope with thousands of probes and nearly infinite memory.

The picture above shows the result of simulating the TMNT core in its current state for 0.0018ms. Like many other arcade games, TMNT's program first performs hardware checks. This causes the glitchy screens well known to arcade operators when powering up a cab. The test results are often displayed during a short period to let the operator now that everything is ok (or not), then the game starts.

Here, the palette RAM (where color values are stored) is tested first. The program writes and reads back multiple values at every possible address to see if the RAM is working correctly. This test passes, then the tilemap RAM (scrolling backgrounds) is tested and... the CPU stalls. Here's the first bug !

Files

Comments

Anonymous

Super de suivre ça en direct ;) bon courage mon bon pour tout le taff qui reste à faire

Anonymous

Cowabunga! 🥷 🐢