Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v4.1 release #14

Merged
merged 26 commits into from
Nov 13, 2023
Merged

v4.1 release #14

merged 26 commits into from
Nov 13, 2023

Conversation

Timendus
Copy link
Owner

@Timendus Timendus commented Jun 4, 2023

As per @gulrak's discovery: SuperCHIP actually waits for vBlank on the HP calculators.

IMG_0032

Do we actually want to change this, knowing that many modern SuperCHIP ROMs expect this to be off..? Is the purpose of this test suite to get your interpreter close to the original, or to get it to run more games smoothly? I'm leaning towards the former, to prevent further fragmentation.

@Timendus
Copy link
Owner Author

Timendus commented Jun 7, 2023

It turns out that it only waits for vBlank in lores mode, which is considered "compatibility mode". In hires mode SuperCHIP doesn't wait for vBlank. This explains why this has gone unnoticed for so long. The test suite currently tests in lores mode though, so it is technically still broken.

Now this does make things a bit more complicated. Not for the test necessarily but for interpreter developers and thus for communicating the expected behaviour properly in the manual...

Proposed new solution:

We can test for vBlank twice in both modes and show the result quite easily when people select either SuperCHIP or XO-CHIP in the menu. We could actually do the same for the clipping/wrapping quirk.

For example:

Disp wait   lo   v
Clipping    hi   x

Values would then be on, off, hi and lo or low for the four permutations. Plus the existing error codes.

@Timendus Timendus changed the title SuperCHIP has vBlank SuperCHIP fixes Jun 11, 2023
@Timendus Timendus force-pushed the superchip-has-vblank branch 2 times, most recently from 914d041 to dec097b Compare June 13, 2023 22:57
@Timendus
Copy link
Owner Author

The current result:

IMG_0049

@Timendus
Copy link
Owner Author

Timendus commented Aug 8, 2023

Release plan:

  • Update version numbers in pictures
    • ./pictures/version.png
    • ./pictures/splash.png
    • ./pictures/ibm.png
  • Make sure README is in line with source
  • Run npm start to rebuild everything
  • Commit and push
  • Release on Github

@Timendus Timendus changed the title SuperCHIP fixes v5 release Aug 8, 2023
@coornio
Copy link

coornio commented Aug 9, 2023

I see progress is slowly but surely being made :D

Have you had any ideas of how to fit in the additional check for the flag in 8xy5 and 8xy7 (checking flag result when vx == vy) or nothing yet? I reckon you'd either have to change the markings for pass/fail or possibly break column alignment.

@Timendus
Copy link
Owner Author

Taking it slow, but yes, it's still moving 🙂

I think I'm just going to add a check without adding to the UI. Not many people run into this issue, and for those that do, basically the flag register is wrong. So just making the flag result a cross in those cases would be fine, I think.

Still need to write that though 😛

Copy link

@coornio coornio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the buzzer test, it might be best to keep the "speaker" icon visible at all times, then display "audio waves" coming from it when the buzzer is meant to go off. Maybe also the dots/bars that make up SOS as they are produced during runtime for extra flair :D

@Timendus
Copy link
Owner Author

Thanks for the review, I'll consider making it more fancy. I do think it fulfils its purpose now, right?

@Timendus Timendus force-pushed the superchip-has-vblank branch from 1235586 to 444a815 Compare August 20, 2023 22:30
@Timendus Timendus changed the title v5 release v4.1 release Sep 2, 2023
@Timendus
Copy link
Owner Author

Timendus commented Sep 2, 2023

I've changed my mind on this topic. I had already introduced the idea of "modern SUPER-CHIP" and "legacy SUPER-CHIP" in the scrolling tests, and it didn't feel right to release a breaking change to the quirks test that very few people are going to be able to pass, or even want to pass. So I've also split the quirks test up in a "modern" and "legacy" version if you select SUPER-CHIP. And I've rewritten the accompanying bonus documentation to match.

This also means that it's no longer a breaking release, and it can be v4.1 instead of v5.0.

@gulrak discovered that the SCHIP interpreter actually falls back to a "compatibility mode" when switching to what we've come to know as "lores" mode. In that mode it also enables the display wait quirk. This basically made the test suite fail on the original interpreter because that runs in "lores" mode and expected the disp quirk to be off. This commit fixes that by seperately testing this quirk for "lores" and "hires", and expecting different behaviours in the case of SCHIP. And while I was at it I added the "hires" test for clipping too.
@Timendus Timendus merged commit adb1b38 into main Nov 13, 2023
@Timendus Timendus deleted the superchip-has-vblank branch November 13, 2023 15:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants