+batari Posted December 15, 2020 Share Posted December 15, 2020 This thread is to discuss Concerto firmware. You can report problems, request features, that kind of thing. This first post will help describe how Concerto firmware is structured to help track down issues, and to explain the changes that were not able to make it to the release firmware just yet. The Concerto firmware consists of six parts: The first two parts are the splash screen and the bootloader. This gets Concerto up and running. While the splash screen is displaying, Concerto is copying firmware code from its 2MB EEPROM chip into flash and RAM, with 7800 assistance, so the menu and game loader can run. The next two parts are the Concerto operating system and the menu. These parts work in tandem, with the menu running on the 7800, and the operating system running on Concerto's microcontroller, which also accesses the SD card's FAT filesystem to translate it into a friendly format to send to the menu. The OS is also responsible for initiating the game loader. The fifth part is the game loader. When you select a game to be loaded, Concerto's OS shuts down as the game is loaded from SD into memory. Once the game is loaded, the game loader analyzes the A78 header and/or the game code to help determine what kind of game it is (2600 or 7800) and the bankswitch type. Once the bankswitch type is determined, the game loader also accesses an internal file system that loads the bankswitch code for that game. The 7800 menu is still active during this stage, and will display bankswitch type and the loading progress. The last part is the bankswitch code for the game. The bankswitch code may do some additional game loading if necessary, then it shuts down the menu and begins the game. Each bankswitch scheme is actually its own file in Concerto's internal filesystem, and there are currently 42 different files that may be loaded. All of these parts (splash screen, bootloader, menu, operating system, game loader, and the 42 bankswitch code files) are all built separately, and built with three different tools. I am describing the structure of the menu to explain what you have with version 0.92 that several people are getting: Splash screen: Rewritten to enhanced stability. Bootloader: slight changes to speed things up and enhance reliability Menu: Changed 7800's memory usage for better reliability, moved critical code into overscan to prevent possible issues with DMA Operating system: Could not build a new version in time Game loader: Could not build a new version in time Bankswitch code: Each of the 42 bankswitch code files are built separately. I only had time to change two of them for 0.92 (over 0.91): I updated the 128k+RAM and 144k schemes to support the optional POKEY @$0450. No other bankswitching changes have been made yet. I spent a full week trying to get the OS and game loader to build under a new compiler, but it wouldn't work properly. Until I am able to figure it out, I may need to revert to the old compiler to make changes or fix bugs. Second post will address a few reports. 8 5 Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.