Jump to content
IGNORED

Harmony Encore issues with >= 64K ROMs


Karl G

Recommended Posts

2 minutes ago, batari said:

Thanks,

 

Encore and Concerto have exactly the same loader and driver, so it sounds like it's related to that. I will take a look at the code and see if I notice anything strange. I personally do not experience the issue on any of my consoles or carts so I will have to rely on others to test things.

 

Are you only having issues with SC games? I know Zippy is a non-SC game and you said this works fine, but I am not sure whether the other ones use Superchip or not.

Thanks so much Fred! Here's a summary of the games, download links and brief description of the issues:

 

1) Penult (DFSC* 128K) - Screen corruption and crashing

2) Robot Zed (EF* 64K) - Game resetting to title screen

3) Dystopia (EFSC* 64K) - Game crashing

4) Abyss of Chernobyl (EFSC* 64K) - Game resetting to title screen

5) Zippy the Porcupine (EF* 64K) - Game resetting to title screen

6) 2600 Words (EF* 64K) - Screen corruption

7) EF RAM Test (EF* 64K) - Screen corruption

 

- James

Link to comment
Share on other sites

7 minutes ago, Karl G said:

My 2600 Words game is non-SC, and my little test program is also non-SC. I don't think that's a factor.

Thanks. I ran this for 5 hours today and had no issues at all :( So the EF RAM tester is non-SC? What is being tested, the RIOT RAM?

Link to comment
Share on other sites

26 minutes ago, batari said:

Thanks. I ran this for 5 hours today and had no issues at all :( So the EF RAM tester is non-SC? What is being tested, the RIOT RAM?

Correct about the test program being non-SC as well. I think many or most people don't see issues with Encore and 64+ games on their consoles, including me. Yes, it's the RIOT RAM that's being displayed on the screen with values = color.

 

Edit: Here's the source, in case it is useful.

 

efram.asm

Link to comment
Share on other sites

38 minutes ago, ZeroPage Homebrew said:

Thanks so much Fred! Here's a summary of the games, download links and brief description of the issues:

 

1) Penult (DFSC* 128K) - Screen corruption and crashing

2) Robot Zed (EF* 64K) - Game resetting to title screen

3) Dystopia (EFSC* 64K) - Game crashing

4) Abyss of Chernobyl (EFSC* 64K) - Game resetting to title screen

5) Zippy the Porcupine (EF* 64K) - Game resetting to title screen

6) 2600 Words (EF* 64K) - Screen corruption

7) EF RAM Test (EF* 64K) - Screen corruption

 

- James

Are you running on a 7800? Since you mentioned Concerto, it sounds like you might be.

 

I am looking at the code now and the one thing that is jumping out at me is the code for EF, DF, etc, seems to be lacking my usual method for dealing with "evil" 7800s (with the dreaded timing kludge intended to support 2600 Dark Chambers.) It is possible that I thought the method wasn't needed here, but it is worth adding it in and creating a test firmware to try.

Link to comment
Share on other sites

45 minutes ago, batari said:

Are you running on a 7800? Since you mentioned Concerto, it sounds like you might be.

 

I am looking at the code now and the one thing that is jumping out at me is the code for EF, DF, etc, seems to be lacking my usual method for dealing with "evil" 7800s (with the dreaded timing kludge intended to support 2600 Dark Chambers.) It is possible that I thought the method wasn't needed here, but it is worth adding it in and creating a test firmware to try.

I've been running all of these tests on my RGB Modded Atari 2600 Light Sixer with Encore carts. Sorry about the mis-typing in the previous message (I've corrected it now), I meant to type Encore.

 

- James

Link to comment
Share on other sites

1 hour ago, ZeroPage Homebrew said:

I've been running all of these tests on my RGB Modded Atari 2600 Light Sixer with Encore carts. Sorry about the mis-typing in the previous message (I've corrected it now), I meant to type Encore.

 

- James

Thanks. I'll see if I can whip up a quick cart integrity checker to determine if it's the game loader or the bankswitch code where things fail.

 

 

  • Thanks 1
Link to comment
Share on other sites

Here is a simple EF cart integrity checker. It puts a simple graphical image on the screen, with each block representing a 256-byte page in memory where the integrity check failed. Green background indicates a pass and a red block indicates a failure of that page.

 

Note that a few red blocks will always appear in the upper left and one red block in the upper center. These are the pages that contain the integrity checker code itself, so these should not be considered. See the screenshot from Stella to see what this looks like.

 

eftest.thumb.png.b116759fe02e9f0f367bf189a23ce5d1.png

 

Load the game on Encore and observe the state after one run-through. If it does not match Stella, then there may a game loading problem, particularly if the integrity remains consistent over time. I would load the binary several times and observe the startup state, both cold and after everything has warmed up for a while.

 

You can also let it run for a while and see if more red blocks appear over time. Anytime an error is found, the block for that page stays red even if it tests good in subsequent passes. The number on the bottom is the number of full passes through the binary.

eftest.bin

  • Like 1
Link to comment
Share on other sites

On 3/12/2022 at 1:10 AM, batari said:

Load the game on Encore and observe the state after one run-through. If it does not match Stella, then there may a game loading problem, particularly if the integrity remains consistent over time. I would load the binary several times and observe the startup state, both cold and after everything has warmed up for a while.

 

You can also let it run for a while and see if more red blocks appear over time. Anytime an error is found, the block for that page stays red even if it tests good in subsequent passes. The number on the bottom is the number of full passes through the binary.

Thank you so much Fred!

 

Here's the results, and video below, of running the binary over an hour through various tests:

 

00:00 - Booting from cold and running it for 30 minutes. At the end of pass 34 and through pass 36 it filled in the whole screen with red.

30:54 - Restarted the test with warm system and didn't change any of the blocks over the next half an hour.

1:01:11 - Restarted the test with warm system 5 times for 2 passes each, none of the blocks changed to red.

1:06:04 - Ran @Karl G's program just for fun afterward with a 1hr+ warmed system. As expected it quickly started developing corruption about 1.5 mins in.

1:10:43 - Ran your test again just for fun. None of the blocks changed to red after 14 passes.

 

- James

 

 

Link to comment
Share on other sites

2 hours ago, ZeroPage Homebrew said:

Thank you so much Fred!

 

Here's the results, and video below, of running the binary over an hour through various tests:

 

00:00 - Booting from cold and running it for 30 minutes. At the end of pass 34 and through pass 36 it filled in the whole screen with red.

 

Thanks for the tests! From the results it appears that loading is likely fine.

 

The whole screen turning red means that the integrity tests for all pages failed, but I doubt that every single page was actually corrupt, as I would have expected the program to crash. The manner in which the failure happened suggests to me that the program's RAM got corrupted instead, causing the tests to run incorrectly and report failure.

 

I will take a look at the firmware and see if I can spot anything that could cause RAM corruption.

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

  • 4 weeks later...

@ZeroPage Homebrew and @batari - do either of you remember if there are any other users that also have issues with ROMs >= 64K with the Encore? It might be useful to see if anyone else sees RAM corruption, or if it's limited to only one console somehow.

 

I ran both utilities on both my 7800 and my 2600 for over an hour each, and saw no issues myself.

Link to comment
Share on other sites

1 hour ago, Karl G said:

@ZeroPage Homebrew and @batari - do either of you remember if there are any other users that also have issues with ROMs >= 64K with the Encore? It might be useful to see if anyone else sees RAM corruption, or if it's limited to only one console somehow.

 

I ran both utilities on both my 7800 and my 2600 for over an hour each, and saw no issues myself.

I don't remember other people having this issue unfortunately, it would be good to have another system to test things out on. The only ones with the problem I know is my console and Al's console that I was borrowing for a time that I forwarded to Fred for testing.

 

I'm sure there are more systems like ours out there but I can only assume that people either haven't reported the issue with these handful of games, or they don't have an Encore or they play them using emulation, but I'm just guessing at this point.

 

- James

  • Thanks 1
Link to comment
Share on other sites

On 3/12/2022 at 4:10 AM, batari said:

Here is a simple EF cart integrity checker. It puts a simple graphical image on the screen, with each block representing a 256-byte page in memory where the integrity check failed. Green background indicates a pass and a red block indicates a failure of that page.

 

Note that a few red blocks will always appear in the upper left and one red block in the upper center. These are the pages that contain the integrity checker code itself, so these should not be considered. See the screenshot from Stella to see what this looks like.

 

Load the game on Encore and observe the state after one run-through. If it does not match Stella, then there may a game loading problem, particularly if the integrity remains consistent over time. I would load the binary several times and observe the startup state, both cold and after everything has warmed up for a while.

 

You can also let it run for a while and see if more red blocks appear over time. Anytime an error is found, the block for that page stays red even if it tests good in subsequent passes. The number on the bottom is the number of full passes through the binary.

eftest.bin 64 kB · 7 downloads

For contrast, I just ran this on my Encore (on a '7800 with S/Video mod) for over 150 passes and no errors beyond the expected blocks in the top row. It also works fine with EF ROMs though. Dunno if that helps. (I have a couple of '2600s that I can pull out and test on as well if more data is helpful.)

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