Hobby Project
SRS Modification - From Below Tetris NES Clone - 2021
Project Overview
GitHub: Source code
From Below an existing homebrew created by Matt Hughson, is a Tetris clone with an exciting twist – the addition of the Kraken that elevates the blocks, creating an additional challenge. Since basic NES games are restricted to a mere 40KB of memory and rely on 8x8 pixel sprite sheets for graphics, the music can only use five audio channels, which include Two Pulse Wave, One Triangle Wave, One Noise, and One Sample channel. Utilising C language instead of assembly results in a memory overhead, meaning any new features added must carefully account for these limitations. I have personally modified his version to include the following enhancements:
From Below an existing homebrew created by Matt Hughson, is a Tetris clone with an exciting twist – the addition of the Kraken that elevates the blocks, creating an additional challenge. Since basic NES games are restricted to a mere 40KB of memory and rely on 8x8 pixel sprite sheets for graphics, the music can only use five audio channels, which include Two Pulse Wave, One Triangle Wave, One Noise, and One Sample channel. Utilising C language instead of assembly results in a memory overhead, meaning any new features added must carefully account for these limitations. I have personally modified his version to include the following enhancements:
- Use the modern SRS rotation system that adds support for wall kicks and T-spins. A lock delay has been added to make spinning the pieces easier.
- Players can hold a piece using the SELECT button (though they lose the ability to taunt the Kraken 😢).
- A Ghost Piece is shown.
-
Score calculation changes:
- The score now accounts for T-Spins, Back to Back Tetris, and Perfect Clear.
- Soft Drop adds 1 point per line to the score, while Hard Drop adds 2 points per line to the score.
- Performing a T-Spin triple triggers the Tetris sound with a shake.
- A secret song can be played by knowing the right key to press prior to the main game start.
How to play
The aim of the game is you bring down blocks from the top of the screen. You can move the blocks, either left to right and/or you can rotate them. The blocks fall at a certain rate, but you can make them fall faster either using a soft drop or a hard drop, if you're sure of your positioning. Your objective is to get all the blocks to fill all the empty space in a line at the bottom of the screen; whenever you do this, you'll find that the blocks vanish and you get awarded some points. If you can clear mulitple lines at once, you will be awarded more points.
NES Keyboard Mapping
NES A: Z Key
NES B: X Key
NES Start: Enter Key
NES Select: Space Key
NES D-Pad: Arrow Keys
Move Piece
Rotate Piece
Soft Drop
Hold Piece
Hard Drop