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

Improving the Graphics Gremlin #16

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open

Conversation

spark2k06
Copy link
Contributor

@spark2k06 spark2k06 commented Feb 5, 2023

- Video page management
- Expansion of the video memory from 32Kb to 128Kb

Note: Shared main memory with video memory is not possible due to the design of the hardware section. As a consequence, some games and/or applications that make use of it will not display correctly.
Copy link
Owner

@schlae schlae left a comment

Choose a reason for hiding this comment

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

looks pretty good although i still need to test it on the real hardware.

one general comment: i'm not a huge fan of renaming mda to hgc because the logic is still mostly copied directly from the MDA schematic in the IBM tech ref. can you keep the MDA names but add hgc_ to all the Hercules signals that you added, making it super clear these are HGC-specific mods?

verilog/cga.v Outdated Show resolved Hide resolved
verilog/cga.v Outdated Show resolved Hide resolved
verilog/cga.v Show resolved Hide resolved
verilog/cga.v Outdated Show resolved Hide resolved
verilog/cga_pixel.v Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
@spark2k06
Copy link
Contributor Author

spark2k06 commented Feb 6, 2023

looks pretty good although i still need to test it on the real hardware.

one general comment: i'm not a huge fan of renaming mda to hgc because the logic is still mostly copied directly from the MDA schematic in the IBM tech ref. can you keep the MDA names but add hgc_ to all the Hercules signals that you added, making it super clear these are HGC-specific mods?

I think that's right, as soon as I can I'll review all your comments and rethink the code according to your criteria.

My changes are not based on schematics, but on behaviour according to the HGC and Tandy 1000 technical manuals.

On the other hand, I may not have been very careful with the names of the registers and wires, you are free to rename them as you think is clearer for the project.

Only a couple of modified registers are kept for use in Hercules.
In addition, some texts are corrected
I have modified many of the texts to MDA/HGC, rather than just MDA, as suggested. However, it is at the author's discretion to update these files as appropriate.
@spark2k06
Copy link
Contributor Author

I've added new commits to my fork, but I don't quite know how to add them to this pull request:

https://github.com/spark2k06/graphics-gremlin/commits/main
image

Adlib is based on JTOPL2 by @jotego. Others can be added later, e.g. CM/S at the same time in the same bitstream.
@spark2k06
Copy link
Contributor Author

I add bitstream 3 in my repository, initially with Adlib.

Adlib is based on @jotego's JTOPL2. Others can be added later, e.g. CM/S at the same time in the same bitstream.

spark2k06@a3fc3b2

Later, when you review the pull request, you may consider adding this commit to your main repository.

Bitstream 3 now consists of:

* Adlib
* Game Blaster (CMS)

https://youtu.be/O5jq5LvJR_M
@spark2k06
Copy link
Contributor Author

spark2k06 commented Feb 16, 2023

Added Game Blaster (CMS) to Bitstream 3, now together with Adlib:

spark2k06@570dd63
spark2k06@60bb9b6

Thanks to this change, some parts of the area5150 demo that didn't look right, like the dancing elephant, are now displayed correctly.

Thanks @somhi for noticing this detail in MiSTer PCXT core.
@spark2k06
Copy link
Contributor Author

spark2k06 commented Feb 17, 2023

Improvement taken from the MiSTer PCXT port based on Graphics Gremlin, thanks to which some scenes from the Area5150 demo now look good:

spark2k06@42bff7b

image

Other graphical glitches were also not solved in the Graphics Gremlin part of the PCXT core, such as the initial text in the demo, with ghost lines appearing.

Thank you @gyurco for the idea and the tips for implementation.

Several glitches of AREA5150 have been solved.
@spark2k06
Copy link
Contributor Author

CGA and Hercules CRTC updated to UM6845R

spark2k06@8453503

before:

image

after:

image

@skiselev
Copy link

skiselev commented Jul 20, 2023

The latest commit spark2k06@8453503 breaks CGA scan doubling.

  • @spark2k06 in his email mentioned that he intentionally disabled scan doubling because his VGA monitor works better with 15 kHz mode
  • In my tests with 3 different LCD monitors (spanning from early 2000 to a 2020 models) none of them were able to work with 15 kHz mode
  • I tried re-enabling scan doubling by reverting the relevant changes around cga.v lines 438-446 and all the cga_top.v changes. That somehow still didn't work
  • Finally, the scan doubling was re-enabled by reverting the spark2k06@8453503 commit (the other change there seems to be moving to a different MC6845 implementation)

@explit7
Copy link

explit7 commented Jun 18, 2024

The latest commit spark2k06@8453503 breaks CGA scan doubling.

* @spark2k06 in his email mentioned that he intentionally disabled scan doubling because his VGA monitor works better with 15 kHz mode

* In my tests with 3 different LCD monitors (spanning from early 2000 to a 2020 models) none of them were able to work with 15 kHz mode

* I tried re-enabling scan doubling by reverting the relevant changes around cga.v lines 438-446 and all the cga_top.v changes. That somehow still didn't work

* Finally, the scan doubling was re-enabled by reverting the [spark2k06@8453503](https://github.com/spark2k06/graphics-gremlin/commit/8453503e26fb3384a3a737d101b5e054cf8a72e5) commit (the other change there seems to be moving to a different MC6845 implementation)

On my old Nokia Display from 1999 this commit also don't work. I get black screen. But the improvement of CGA glitches in this commit are really cool. @spark2k06 Is it possible to add this improvements but disable 15 kHz mode ?
At the moment you are the only one, who make active development on this project. It would be really a gift for the Retro PC community.
Thanks

@explit7
Copy link

explit7 commented Oct 5, 2024

The most progress was made in the last commit spark2k06@8453503
Unfortunately the CGA Scandoubling doesnt works on "normal" "not Multisync" VGA Displays.
Maybe you can fix it, so it works with all VGA displays, @spark2k06

Please, Please, Please!!!

@spark2k06
Copy link
Contributor Author

The most progress was made in the last commit spark2k06@8453503 Unfortunately the CGA Scandoubling doesnt works on "normal" "not Multisync" VGA Displays. Maybe you can fix it, so it works with all VGA displays, @spark2k06

Please, Please, Please!!!

Sorry, I have been disconnected from the project for a while now. My daily work and chores are also limiting me a lot at the moment.

I hope someone else can collaborate, but if one day I find the time to take it up again, I will let you know.

@explit7
Copy link

explit7 commented Oct 12, 2024

i fully understand you, @spark2k06

Let's hope, you will find time and motivation to bring it to the end. thank you very much!

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.

4 participants