After learning about the Liangshan School of martial arts, I learned how to build a game console.
Hardware-wise: The screen is a 1.69-inch LCD driven by an ST7789V, with a 240×280 resolution, SPI interface, and a soldered design. Audio uses an 8002A amplifier circuit. There are 7 buttons, which feel really good to the touch. There's also a joystick. The buttons are directly connected to GND, and the input needs to be set to pull-up resistors. There's an LED indicator for running indicators or other customizable functions.
1. For the buttons, one side is connected to the microcontroller's I/O, and the other side is directly grounded, so the I/O mode needs to be set to pull-up resistor input during programming.

2. An LED indicator was added.

3. The reset button is different from LCSC's because mine doesn't have a battery interface.

4. Other modules are the same as LCSC's, except the vibration motor was removed.
Software-wise: I learned how to create a menu, using buttons to switch interfaces left and right, or sliding the joystick to switch interfaces. Then I made a Snake game, a super simple version of Snake. The TFTLCD library used is the LCD library.
I learned a lot from this experience of learning about the Liangshan School of martial arts and building a game console. I mainly learned about interrupts, ADCs, SPI, and IIC.
During the game console's construction, I encountered many problems. First, there were the two header pins. Initially, they didn't align with the development board because I had soldered them backwards on my board. It took three attempts to get the board right, but I finally succeeded on the first try (PS: I immediately noticed the mistake when I received the first two boards; they weren't soldered properly. I was too careless and didn't even understand the basics. I'm so inexperienced). Then there were programming issues. When writing the Snake game, I kept thinking about how to calculate the movement direction and next position of each snake body individually. Initially, I thought of giving each body a direction and then calculating the next position coordinates. However, I couldn't implement this. Then, after reading a tutorial from LCSC, it suddenly dawned on me: I only needed to give the snake head a direction, and the other body parts would inherit the position of the previous body (I'm really bad at this).