Jump to content
IGNORED

Latest Harmony Cart software


batari

Recommended Posts

42 minutes ago, kapi21 said:

Regarding the harmony cartridge, I would like my Atari2600 PAL version to be able to play games in full screen. I can only do it with ntsc games but the colors are not correct. For me it would be a great achievement. Thank you.

That's not under control of the Harmony cart. If your PAL games are displaying too small, then either your TV is not setup correctly or the games where programmed that way (e.g. by Activision).

  • Like 1
Link to comment
Share on other sites

21 hours ago, stephena said:

I'm going to try to do a beta release sometime next week.  The most recent release internally uses version 1.85 of 'lpc21isp' (that's the code that actually programs the chip in the Harmony cart).  This release is over 7 years old.  There have been 6 new releases of 'lpc21isp' since then, now up to 1.97.  Hopefully these more recent versions will fix some of the issues people are having.

 

Note that the amount of feedback (or lack thereof) that I get from this beta release will determine whether I continue working on this software.  So if you want to see it continued, please consider helping in testing.  I need people using different OS's (Windows, Mac, Linux), and ideally different versions of the Harmony cart too.  The more variation in testing, the better the result for everyone.

Well, I am now fully on Windows 10 and have a very old Harmony cart.  I have several 2600s - I can assist you with testing.  In the past, I've not provided any feedback really, because the cart is awesome, and "just works".  I've never had an issue with it.  I believe the latest update I would have done to the cart, was whatever was needed to get the Galaga preview working in time for VCFMW2019.

Link to comment
Share on other sites

This thread is about both the Harmony programming software for Windows, Mac and Linux, as well as the firmware for the cart itself.

 

That said, the most recent discussion is about the programming software and we do need people to help test that. 
 

Also, I am working on a new firmware version that adds several new features, including some Encore-only features. It’s not ready for public beta testing yet, but I will announce here when it is.  

  • Like 4
Link to comment
Share on other sites

3 hours ago, alfredtdk said:

Dear friends, I just received my first Harmony Cart, it has never been updated. It is in version 1.03.

I intend to update to the latest version.? What I would like to know is whether I can skip previous versions of the firmware.

 

20201208_003220.jpg

You can update that one directly to 1.06 using the Harmony programming software in this thread.

  • Thanks 1
Link to comment
Share on other sites

OK, here is beta1 of the Harmony Programming Tool v2.0.  It's been 7 years since the last release, so I feel a bump to 2.x is justified :)  Changelog as follows:

  • Updated lpc21isp code to version 1.97 (last released version since 2015).
  • Completely reworked serial port autodetection for Mac and Windows ports.
  • Changed from using 'right-click' to 'double-click' to select ROMs in the 'QuickPick' list.  This fixes bugs in all ports, but particularly in MacOS, where the UI would sometimes become unresponsive.
  • Fixed annoying bug where a dialog box would appear when first starting the app, and would have to be manually closed.
  • Added option to skip bank 0 when compressing F4 images.  This is needed for some roms (Triptych).
  • Added option to delay after each write, to help with bad UARTs.
  • Added option to specify the number of connection attempts.
  • Included NTSC HBIOS 1.06.
  • Updated bankswitch autodetection code to latest from Stella 6.4.
  • Codebase ported to (and now requires) Qt 5.15.

So what does testing involve?  I need everything tested.  That means every option and combination for every type of bankswitching scheme.  And if you find a problem, if possible to then test on the oldest released version of this software, to see if it's a regression or if it was already there (ie, is this an old bug or a new bug?).  I understand this is a lot of testing, but going 7 years without a new release will cause that.  A lot has changed in the code, so the only way to fix it is to test.

 

Files are as follows:

HarmonyCart-2.0_beta1-x64.exe  (Windows 64-bit)

HarmonyCart-2.0_beta1-macos.dmg (MacOS 64-bit)

harmonycart_2.0-beta1_amd64.deb (Ubuntu 20.04 64-bit)

 

Source can be downloaded from https://github.com/sa666666/harmonycart.  Good luck, and good testing.

  • Like 6
Link to comment
Share on other sites

On 12/8/2020 at 2:31 AM, Mika73 said:

Not sure what firmware version it has.

 

 

Selecting [.] (top entry in list of files) then pressing the fire button on your controller will bring up the credits screen, which contains your firmware version. Mine is v1.06

 

IMG_1374.thumb.jpg.5169c3b0ecaf1d2221ce91f87d038e97.jpg

 

 

Link to comment
Share on other sites

1 hour ago, alfredtdk said:

What type of cable is specific to use on the Harmony Cart?
 I tested two mini B's without success. The software does not recognize the connected cartridge. 
I'm in the Linux Kde environment, I have tested all the USB ports and in the Windows environment, with no result!☹️


 

Screenshot_20201212_190552.png

Hello,

 

Make sure the driver is installed and working correctly. For this Harmony cart you need the FTDI drivers listed in the first post in this thread. Once drivers are installed, check on Device Manager that a new COM port comes up when the Harmony is connected.

  • Like 1
Link to comment
Share on other sites

1 hour ago, alfredtdk said:

What type of cable is specific to use on the Harmony Cart?
 I tested two mini B's without success. The software does not recognize the connected cartridge. 
I'm in the Linux Kde environment, I have tested all the USB ports and in the Windows environment, with no result!☹️


 

Screenshot_20201212_190552.png

I didn't answer about the cable.

 

There are 3 kinds of mini-B cables I know of, but only one will work: a 5-pin mini-B cable.

 

There are two other kinds, a 4-pin (meant for digital cameras) and a 2-pin (power-only) cable, and neither of these will work.

  • Like 1
Link to comment
Share on other sites

I compiled the latest beta from git on my linux PC and tested a little bit today with the two standard (not encore) harmony carts that I have (version 1.0 and 1.9b respectively, as per the output of "lsusb").

Spoiler

Bus 002 Device 014: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0x6001 FT232 Serial (UART) IC
  bcdDevice            6.00
  iManufacturer           1 AtariAge
  iProduct                2 Harmony Developer's Cart v1.0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 Harmony Developer's Cart v1.0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

--------------------------------------------------------------------------------

Bus 002 Device 015: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0x6015 Bridge(I2C/SPI/UART/FIFO)
  bcdDevice           10.00
  iManufacturer           1 FTDI
  iProduct                2 Harmony Developer's Cart v1.9d
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              400mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 Harmony Developer's Cart v1.9d
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

 


I tried dowloading the eeprom loader image to both carts using the UI and failed, despite trying several times:


With the new cart, on first try I got "error on writing data (1)" on the console.
On every subsequent one I got "free(): invalid next size (fast)" AND the app crashed.

Senzanome2.png.9ecdd74a0e19c701ccc89d7af456af16.png
I tried changing the number of retries to 20 and also setting the "add delay after writes..." option, but I got the same results.

 

With the old cart I got "free(): invalid pointer" on the first try, and "free(): invalid next size (fast)" on subsequent ones, and the app always crashed after that.

Senzanome3.png.b3b85be4b7d565e4e40e18ef31c7d962.png

 

I also tried different cables, with no change in the results.


I then tried flashing a few roms (from command line, this time).
new cart:
4k game:    ok
f8 game:    ok
f6 game:    "error on writing data (1)". tried 3 times with same result.
f4sc game:    same error - tried 2 times

old cart:
4k game:    ok
f8 game:    ok
f6 game:    download finished (game works), but software crashes with error "free():invalid pointer"
f4sc game:    same as with f6

Senzanome4.png.fda04b2dff88c1ef8660c6833b8b43d6.png

 

 

 


The older software v1.3 seems to work fine (I used it from time to time in the last years and never had issues with it).

Only sometimes fails on first attempt, but always works on second one in that case. The app doesn't crashes.

 

 

-------------------------------------------------------


Note on the firmware:
I noticed there's a PAL version 1.06 on the first post of this thread and tried it. The result is a b&w image on my CRT, so I guess it's outputting an odd number of scanlines.

 

I currently use an unofficial NTSC firmware that TJ posted a few years ago. Looking forward for an updated official one.

 

Edited by alex_79
Link to comment
Share on other sites

In case you're considering enhancements to the Harmony firmware, it would be great if it would accept menu navigation from port 2 as well as port 1. I love paddle games, but using them to navigate the menu is incredibly painful. And yes, my paddles are rebuilt and excellent (no jitter). The driving controller on the other hand is SUPERB for navigating! So my dream would be for the menu to use the port 2 controller to navigate if anything is plugged in there. Otherwise, it would default to port 1. I would then leave the driving controller in port 2 for menu navigation, and swap the port 1 controller with whatever type of games I plan to play :).

Link to comment
Share on other sites

1 hour ago, alex_79 said:

I compiled the latest beta from git on my linux PC and tested a little bit today with the two standard (not encore) harmony carts that I have (version 1.0 and 1.9b respectively, as per the output of "lsusb").

Thanks for the feedback; I'll look into it.  I guess it was too much to expect that the beta would work fine as-is :) 

Link to comment
Share on other sites

50 minutes ago, stlouisrod said:

In case you're considering enhancements to the Harmony firmware, it would be great if it would accept menu navigation from port 2 as well as port 1. I love paddle games, but using them to navigate the menu is incredibly painful. And yes, my paddles are rebuilt and excellent (no jitter). The driving controller on the other hand is SUPERB for navigating! So my dream would be for the menu to use the port 2 controller to navigate if anything is plugged in there. Otherwise, it would default to port 1. I would then leave the driving controller in port 2 for menu navigation, and swap the port 1 controller with whatever type of games I plan to play :).

I have build an unofficial BIOS which supports a joystick in the 2nd port. I did this for testing my trackball games. It is buried somewhere in the forums.

Link to comment
Share on other sites

14 minutes ago, stephena said:

@alex_79, please checkout and compile/run again.  If this issue is fixed, I will release it as beta2.

Tried again flashing the eeloader and a few roms with different bankswithing. Worked first try each time with both carts. No errors, no crashes.:thumbsup:

 

I will try to test further in the next days and will report back.

  • Thanks 1
Link to comment
Share on other sites

OK, here's beta 2.  Changelog as follows:

  • Fixed crashes reported by @alex_79.
  • The dropdown list of bankswitching schemes in the UI now lists all possible schemes; previously there were a few missing.
  • Selecting an item from the 'QuickPick' list is now by left-double-click only; the right mouse button is not used.

Files as follows:

HarmonyCart-2.0_beta2-x64.exe

HarmonyCart-2.0_beta2-macos.dmg

harmonycart_2.0_beta2_amd64.deb

  • Like 4
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...