Jump to content
IGNORED

UnoCart firmware update(s)


DirtyHairy

Recommended Posts

Hi all!

 

Over the last year there have been several versions of the UnoCart firmware floating around. In order to reduce the confusion and have a consistent versioning scheme, we (@electrotrains, @ZackAttack and myself) have decided to make future firmware upgrades available on Github. Firmware is versioned (the current release is v09), and the firmware identifies its version at the bottom of the menu (the current release reads "R.EDWARDS. 9").

 

For some time now, the firmware shipped on new UnoCarts supports @ZackAttack's ACE format. ACE is not only yet another scheme for ARM-enabled games, but it also allows to flash new firmware directly from the SD. Just download the "update.bin" from Github to the SD card and launch it from the menu. Don't turn off the 2600 until the screen shows "UPDATE COMPLETE".

 

As an alternative (or in the unlikely event of a SD update gone wrong), you can flash the firmware ("firmware.hex") directly using an ST-LINK/V2 USB programmer. You don't have to get the real deal from STM, there are cheap chinese clones available on Ebay and Amazon for a few bucks that work fine. @MacRorie has posted a video of how to this here. If you are on Linux or MacOS, you can use the open source stlink tools to flash (you'll need the "firmware.bin" file for that).

 

The current release v09 is an update over the previously released firmware versions and provides support for 256k BF/BFSC, 128k DF/DFSC and for the Pink Panther Prototype ? Download from Github, grab your UnoCarts and enjoy!

Edited by DirtyHairy
  • Like 8
  • Thanks 1
Link to comment
Share on other sites

And another one... I used a more recent toolchain for building v09 and v10, and it turns out that it optimizes differently, which leads to issues with supercharger games, at least on my Jr. I released v11 which uses more aggressive optimization and fixes those issues. I did some more extensive testing so, hopefully, this should be the last bugfix.

Link to comment
Share on other sites

6 hours ago, DirtyHairy said:

And another one... I used a more recent toolchain for building v09 and v10, and it turns out that it optimizes differently, which leads to issues with supercharger games, at least on my Jr. I released v11 which uses more aggressive optimization and fixes those issues. I did some more extensive testing so, hopefully, this should be the last bugfix.

Git hub says:

"This release identifies as R.EDWARDS 10 in the menu."

for the v11.

 

https://github.com/DirtyHairy/UnoCart-2600/releases/tag/v11

Link to comment
Share on other sites

  • 2 weeks later...

There's another update, v13. This contains improvements to DPC emulation. Audio now sounds better and should match the real cartridge, and the emulation now hopefully works better on oddball consoles with weird bus timings. Please reply in this thread if you have feedback or issues on DPC emulation with this version.

  • Like 1
Link to comment
Share on other sites

6 hours ago, Karl G said:

I have a console with odd TIA timings. What would make a good test ROM? Do you just mean actual DPC emulation for Pitfall 2, or also DPC+ homebrew games? 

Just Pitfall II at the moment. I have not yet dared (as in: found the time) to tackle DPC+ ;) The issue are that some consoles out there seem to have a very noisy bus that may trip up the bit banging that the Uno (and the Harmony) do to drive the bus. DPC is particularly susceptible to that problem, as there is a lot of logic that has to be squeezed into the limited amount of cycles between the state changes of the bus.

 

Afaik, there have been consoles in the past that have had trouble with Pitfall II on the UnoCart. I hope this ROM fixes those issues.

Edited by DirtyHairy
  • Like 4
Link to comment
Share on other sites

  • 3 months later...
  • 2 weeks later...
On 11/10/2019 at 6:18 PM, DirtyHairy said:

Just Pitfall II at the moment. I have not yet dared (as in: found the time) to tackle DPC+ ;) The issue are that some consoles out there seem to have a very noisy bus that may trip up the bit banging that the Uno (and the Harmony) do to drive the bus. DPC is particularly susceptible to that problem, as there is a lot of logic that has to be squeezed into the limited amount of cycles between the state changes of the bus.

 

Afaik, there have been consoles in the past that have had trouble with Pitfall II on the UnoCart. I hope this ROM fixes those issues.

 

 
I am hopeful that as soon as these DPC + barriers are overcome, and we can freely run Scramble, Chaotic Grill and so many other homebrew games on UnoCart ?
Edited by alfredtdk
Link to comment
Share on other sites

20 hours ago, alfredtdk said:
 


 

I am hopeful that as soon as these DPC + barriers are overcome, and we can freely run Scramble, Chaotic Grill and so many other homebrew games on UnoCart ?

Chaotic Grill only requires a DPC+ driver to be written.  I would suggest to @DirtyHairy that it might be a good one to start with since it doesn't use any custom ARM code. 

 

I'm not sure if there are any other games that fall in the category of limited DPC+ use.  Maybe Stay Frosty 2?   I believe all the rest of DPC+ games have custom ARM code, so it would probably be up to each developer to release a Uno-cart compatible build.

Link to comment
Share on other sites

On 3/3/2020 at 11:15 PM, splendidnut said:

Chaotic Grill only requires a DPC+ driver to be written.  I would suggest to @DirtyHairy that it might be a good one to start with since it doesn't use any custom ARM code. 

 

I'm not sure if there are any other games that fall in the category of limited DPC+ use.  Maybe Stay Frosty 2?   I believe all the rest of DPC+ games have custom ARM code, so it would probably be up to each developer to release a Uno-cart compatible build.

Thanks. I am aware of Chaotic Grill but, to my knowledge, it is the only actual game that uses DPC+ without relying on custom ARM code.

 

In principle, it should be possible to run unmodified DPC+ and CDF games on the Uno. The main issue that needs to be overcome are differences in the memory map. It is possible to reconfigure the STM32 on the Uno sufficiently to relocate RAM at 0x0 and copy the ROM data there, but the Harmony RAM is relocated at 0x40000000, so the ARM code needs to be patched to fix up any absolute pointers. I have done a proof of concept in emulation by adapting the memory map in 6502.ts and was able to successfully patch and run Stay Frosty 2 and Space Rocks, and I think that the patching could be refined sufficiently to work for other ROMs as well.

 

For CDF, there is the additional issue of callbacks from the game code into the driver. Those happen via branches to trampolines in the first 2k of address space, so this space will need to be reserved, and corresponding trampolines that jump into the Uno driver need to be installed there.

 

The easier route would be to skip the memory map stuff and recompile (technically, relinking should suffice) ARM games to run on the Uno. However, this would come at the obvious price of requiring new builds of all affected games that will only run on the Uno (BBasic games that use the DPC+ kernel could be patched automatically, though). 

 

I think that all of this is doable, and I am curious enough to try, but that's a major project, and I currently have too little spare time for too many software projects anyway, so I don't know if and when I will really descend into this rabbit hole ;) Of course, if anyone else wants to go down either road before me, I'd be happy to assist :P .

Edited by DirtyHairy
  • Like 1
Link to comment
Share on other sites

Addendum (just in case someone actually wants to use what I wrote above ?): After rethinking this issue, I just realized that calls from CDF ARM code to the driver will attempt to switch from Thumb to ARM mode, which will cause a fault on the STM32. So, the fault handler could dispatch the correct function.

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...
On 11/9/2019 at 3:06 PM, DirtyHairy said:

There's another update, v13. This contains improvements to DPC emulation. Audio now sounds better and should match the real cartridge, and the emulation now hopefully works better on oddball consoles with weird bus timings. Please reply in this thread if you have feedback or issues on DPC emulation with this version.

I just bought an unocart and installed this update. Tried playing pitfall 2 and the musics pitch was higher than what I’ve heard on Stella and direct console tv recordings of the theme. Like 1.5-2 steps up in pitch. Is this the intended pitch or is this a because of the vader console/cartridge?

Link to comment
Share on other sites

  • 3 weeks later...
55 minutes ago, Karl G said:

The latest version of Tower of Rubble (NTSC) isn't working on my UnoCart, but works on Harmony. An earlier build of the game that I already had on my SD card works fine, however. When I try to load it, the screen stays black.  Do others see the same thing?

Tower of Rubble v.1.0 - NTSC and PAL60 works fine on the PlusCart, which means it should work on the UnoCart as well.

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...