This week I primarily worked on tracking lines between the two players and loading in garbage into the playfield. This mechanism turned out to be complex enough that, much like line clearing, it makes more sense to implement it by loading in a line at a time. So our game states now cycle between loading a new piece, the piece falling, locking it in place, then cycling through 16 states to provide enough time for garbage to load in, then fetching the next piece. This was implemented this way due to area pressure.
This justification still holds even after swapping to the DE2-115 boards. This is because the logic that manipulates the locked-state of the playfield is already quite complex which can cause some difficulty in placing and routing the logic density around that set of registers. Since we have an abundance of cycles to compute with, it makes more sense to design the garbage clearing with similar philosophies to the design of the line-clearing logic, using simple manipulations of the register set and allowing many cycles for the operation to occur.
As I mentioned above, to deal with the area issues we have opted to use the larger DE2-115 board. This board is in abundant supply with none of the 18240 labs running for the remainder of the semester. In addition it has roughly 2x the area of our previous board, the DE0-CV. Like the DE0, this board has no SoC which makes our project easy to transfer, with minor edits to the top level module only. In fact, the only significant difference is that the DE2-115 uses 8-bit color on it’s VGA interface rather than 4-bit color, which the DE0-CV uses.
Some time was spent this week producing our statement of work regarding the coronavirus situation, and with some last second adjustments due to the abrupt announcement of TechSparks closure. I was intending to also start working on the menu screens for the user, to make them more informative than just blocks of color, but it seems that will be pushed off for next week. This is still reasonably on-schedule. I had planned to work on all but one of the menu screens next week, but instead I will simply be working on all of them. A small adjustment.
In regards to the multiplayer functionality, I am blocked by Eric’s current status on the networking stack. I have other tasks to work on for now, I expect he will be wrapped on that soon.