Jump to content
IGNORED

Concerto firmware thread


batari

Recommended Posts

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.

  • Like 8
  • Thanks 5
Link to comment
Share on other sites

This second post to this thread will address a few reports:

 

No sound in Popeye:

The POKEY detection routine in Popeye is from 7800basic, which is fairly elaborate. Currently, this routine doesn't detect the presence of the POKEY, so no sound plays. Until I am able to address this in firmware, a workaround for this (and probably other 7800basic games) is to use a hex editor and search the following stream of bytes: 0F A9 00 8D 08 21 91 4B 88. Change the 91 to 60. The author is aware of this and may have patched binaries already.

 

This patch isn't perfect as bypassing the POKEY detection also bypasses the POKEY reset, but that should be taken care of with another reported issue below.

 

Menu navigation issues:

I got a report of menu navigation issues. Some controllers are worse than others. I did encounter this too, but it was with a Proline controller with sticky buttons so I attributed it to that, but maybe it's not that. I am investigating.

 

Some 2600 games not booting:

I got a report of some 2600 games not booting. Some of the 2600 bankswitch schemes are not implemented in Concerto mode (if you load Harmony Encore firmware, they all work, but eventually I will get them all going without having to do that.) However, some 2600 games should work, so will look into that.

 

High-pitched sound during gameplay:

I think the POKEY is being turned on inadvertently in the menu, causing unwanted sounds. I will address the issue plus add in a POKEY reset before game booting.

  • Like 3
  • Thanks 3
Link to comment
Share on other sites

31 minutes ago, mimo said:

can you link me to a working 2600 rom or two so that I can test. I have been unable to get any to work at the moment 

 

Thanks 

OK, I see the issue. I munged up the loading of all 2600 games with recent changes to the menu. Good news is the fix is simple, and the change is important so I will post up a fixed firmware soon after I get up in the morning.

  • Like 1
  • Thanks 2
Link to comment
Share on other sites

9 hours ago, batari said:

This second post to this thread will address a few reports:

 

No sound in Popeye:

The POKEY detection routine in Popeye is from 7800basic, which is fairly elaborate. Currently, this routine doesn't detect the presence of the POKEY, so no sound plays. Until I am able to address this in firmware, a workaround for this (and probably other 7800basic games) is to use a hex editor and search the following stream of bytes: 0F A9 00 8D 08 21 91 4B 88. Change the 91 to 60. The author is aware of this and may have patched binaries already.

I usually include a "Concerto" version when I release versions.

9 hours ago, batari said:

 

This patch isn't perfect as bypassing the POKEY detection also bypasses the POKEY reset, but that should be taken care of with another reported issue below.

Due to the lack of Pokey Reset, sound will cut out in places. Some tunes will seem out of tune, due to the AUDCTL losing settings. However, it makes a big difference.

9 hours ago, batari said:

 

Some 2600 games not booting:

I got a report of some 2600 games not booting. Some of the 2600 bankswitch schemes are not implemented in Concerto mode (if you load Harmony Encore firmware, they all work, but eventually I will get them all going without having to do that.) However, some 2600 games should work, so will look into that.

I didn't know that 2600 support was still a sure thing. This is really cool!

9 hours ago, batari said:

 

High-pitched sound during gameplay:

I think the POKEY is being turned on inadvertently in the menu, causing unwanted sounds. I will address the issue plus add in a POKEY reset before game booting.

If I turn the system off mid-sound, I sometimes the sound is still present when I turn the system back on.

 

I have one 7800 seems to power up flawlessly with the Concerto. I have a second system, which will often boot if the system has been turned off for a long time. It's kind of hit or miss. After one or two good boots, it will not boot up again. I do not have this issue with regular games.  I do not know if this would be helpful in any testing, or if this would just be considered a fluke system. (If it sounds like my system, I'd also be happy to hear suggestions.)

Link to comment
Share on other sites

I received my Concerto today!  I went thru 3 SD cards before I found one that worked.  Works well now.

Lexar Platinum II 4GB SDHC class 6 - FAT32 - boots to menu but doesn't list files

Sandisk 4GB SDHC class 4 - FAT - boots to menu but doesn't list files

Sandisk 16GB SDHC class 1 - FAT32 - works perfectly.

  • Like 4
Link to comment
Share on other sites

4 hours ago, sramirez2008 said:

Thank you for starting this thread. One more issue to report. I've experienced a menu freeze, meaning that the menu displays, but then freezes and I'm unable to select anything. Each time this occurred, a simple reboot took care of it. 

 

I've also had this happen, but a reboot doesn't recover - it causes none of the directories or files on the SD card to display after reboot.  The files are still on the card, but Concerto does not show them.  FWIW, I did figure out that powering off, removing the SD card, connecting the Concerto to a USB port, and reinserting the SD card and powering up again clears it about 99% of the time.

 

Late edit: the cartridge has sat overnight without being powered-up, about 18 hours total.  Still had the missing menu at startup; doing the USB dance cleared it.

 

20 minutes ago, tep392 said:

I am having trouble with the settings menu.  I can only move down two lines in the menu, then it jumps back to the main menu.  I can scroll thru games lists inside folders without any problems.  I get the same behavior with proline or cx40 joystick.

 

In the Settings menu, I can move as far down as 'Discard and return to main menu', at which point (with no button press) it does exactly that.

 

Kingston 8GB SDHC Class 10 / A1 cards are being used (they're all I have at the moment).  Prolines are the only sticks I have right now; they were both rebuilt last month with Best Electronics' PCB kit.  Checked PSU: getting 13.85VDC at the connector.  The 7800's serial number shows a build date of May, 1988.

 

 

Edited by x=usr(1536)
Link to comment
Share on other sites

Here is the first firmware update, version 0.93.

 

Fixes:

- 2600 support restored!

- Debounced joystick button on initial boot (let me know if this helps with SD card reading!)

 

To install firmware:

NOTE: Firmware versions 0.91 or older cannot update to 0.92 or later through the menu (yet.)

 

From version 0.91 or older: Download the .bin file, and update over USB. To do that, download the Harmony software, and follow the instructions in the Harmony manual for firmware updates. If you don't want to do it this way, in time I will be releasing a transitional firmware that you can update to from the menu, which can then update to 0.92 or later, also from the menu.

 

From version 0.92, you can update from the menu. Download the .cbi file, copy to your SD card, boot Concerto and press fire. Wait a moment until you get the confirmation screen. (auto rebooting isn't working yet, so manually power cycle.)

 

 

hbios_concerto_0.93.2600fix.bin concerto_0.93.2600fix.cbi

  • Like 6
  • Thanks 3
Link to comment
Share on other sites

Great thanks Fred!

 

Just a quick one - I've installed the FT232R drivers in Win 10 and my harmony cart is recognised and found in the Stephen's latest Harmony software but my concerto is shown as the following in the Device Manager (same occurs on 2 different PCs):

devices.thumb.png.88aa190ee4ce564917fdd7caf14373ce.png

Just for others who might be on 0.91 and who get the same issue - would that more relate to the cable? BTW happy to wait for the transitional firmware ?

Link to comment
Share on other sites

3 minutes ago, mksmith said:

Great thanks Fred!

 

Just a quick one - I've installed the FT232R drivers in Win 10 and my harmony cart is recognised and found in the Stephen's latest Harmony software but my concerto is shown as the following in the Device Manager (same occurs on 2 different PCs):

devices.thumb.png.88aa190ee4ce564917fdd7caf14373ce.png

Just for others who might be on 0.91 - would that more relate to the cable? BTW happy to wait for the transitional firmware ?

I should clarify that these newer Concertos use CH341 USB drivers, not FTDI like the older ones. If anyone isn't sure, generally the purple PCBs will use FTDI and the green boards use CH341.

Link to comment
Share on other sites

Just now, batari said:

I should clarify that these newer Concertos use CH341 USB drivers, not FTDI like the older ones. If anyone isn't sure, generally the purple PCBs will use FTDI and the green boards use CH341.

Ah right - I'll find those and install ?

Link to comment
Share on other sites

2 minutes ago, mksmith said:

Ah right - I'll find those and install ?

If you have Win10, it should find the drivers automagically if you tell it to. I've got several devices around the house already that use that chip including some Arduino clones and they all work great with the driver Windows found and installed.

  • Thanks 1
Link to comment
Share on other sites

25 minutes ago, batari said:

Here is the first firmware update, version 0.93.

 

Fixes:

- 2600 support restored!

- Debounced joystick button on initial boot (let me know if this helps with SD card reading!)

 

To install firmware:

NOTE: Firmware versions 0.91 or older cannot update to 0.92 or later through the menu (yet.)

 

From version 0.91 or older: Download the .bin file, and update over USB. To do that, download the Harmony software, and follow the instructions in the Harmony manual for firmware updates. If you don't want to do it this way, in time I will be releasing a transitional firmware that you can update to from the menu, which can then update to 0.92 or later, also from the menu.

 

From version 0.92, you can update from the menu. Download the .cbi file, copy to your SD card, boot Concerto and press fire. Wait a moment until you get the confirmation screen. (auto rebooting isn't working yet, so manually power cycle.)

 

 

hbios_concerto_0.93.2600fix.bin 333 kB · 2 downloads concerto_0.93.2600fix.cbi 333 kB · 5 downloads

 

Fred, thank you for the updated firmware.  Unfortunately, I've only had partial success with it.

 

The good: using the .cbi version, Concerto recognised it as a firmware file, and claims to have updated it.

 

The unfortunate: after finishing the update, Concerto hung at this point.  There's no response to either trigger, and note the random character above the letter 'D' in 'Detected' - it's actually not a single character, but rather a series of them being (very) rapidly printed to that location.

 

Appreciate you taking the time to look into all of this!

 

IMG_20201215_181230.thumb.jpg.bcd8a7d1416913de4480c54b4999f61a.jpg

Edited by x=usr(1536)
Forgot to attach picture. Derp.
  • Like 1
Link to comment
Share on other sites

Yep, just rebooted to 0.93 (that version number does appear in the banner at the top of the screen) and am still having the issue with the menu freezing.  I realise that there was no specific fix done for this, but thought i'd mention it anyway.  Doing the USB trick I mentioned previously still recovers.

Edited by x=usr(1536)
  • Like 1
Link to comment
Share on other sites

 

13 minutes ago, CPUWIZ said:

I hope this one works, it's the only one I have left.  I only have huge MicroSD cards these days.

 

 

I had problems with a micro SD cards in a SD adaptor (16GB Kingston, tried a couple as I have a bunch of those).

 

4GB and 2GB SanDisk cards (both were "2" speed rated so older, slower cards) worked just fine, as did an 8GB Kingston SD.

Link to comment
Share on other sites

Updated to 0.93 and...

 

  • I can run 2600 games (Asteroids, Battlezone, H.E.RO.) now
  • Still have the menu freeze. Sometimes I freeze when the menu appears, sometimes I freeze when I select a folder or game
  • Same issue as tep392 (moving thru the setting menu)
  • I was scrolling through my 2600 ROMs, looking for a game to select and the menu became garbled. As with the menu freezing, I rebooted and it went away

 

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...