Git Product home page Git Product logo

graphics-gremlin's People

Contributors

schlae avatar spark2k06 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

graphics-gremlin's Issues

Memory errors in CheckIt, screen corruption in MDA mode

The FPGA byte code from November 20, 2021 (the latest) produces memory errors at certain memory addresses in both MDA and CGA modes.
It also results in memory/screen corruption in MDA mode. The location on the screen seem to correspond to these addresses (typically column 64).
The issue is reproducible in several cards built exactly according to the BoM.

Typical error locations:

  • CGA: 0xB9000, 0xBA000
  • MDA: 0xB0080, 0xB0400, 0xB0800, 0xB0880, 0xB0C80

Different cards might show errors only in some of these locations. Perhaps there is a timing violation that results in memory corruption in for these certain addresses

MDA 70Hz RAM issues

MDA (70Hz VGA compatible) on some boards has issues with the attribute byte getting corrupted by the previously-read character byte. This shows up as spurious underlines, inverse video, etc on the screen. Likely this is a marginal timing issue as it works fine on some boards but not others.

Can I replace with ICE40HX1K-TQ144?

Hi

I'm intending to assemble your board however I realised ICE40HX4K-TQ144 is out of stock everywhere.

Will a ICE40HX1K-TQ144 work instead?

Too much CGA snow

The arbitration logic between the SRAM, the CGA pixel engine, and the ISA bus isn't quite intelligent enough and triggers a lot of CGA snow--more than the original card.

Gremlin over pci(e), serial, or other bus?

Is it possible to use gremlin over another bus, or are you aware of another project which allows this?

Sorry, I realize this is only tangentially related to the project, but I really cannot find any other way to get graphics working on DOS in a modern machine (other than emulating/virtualizing the entire machine).

Unavailability of parts

A few parts are currently unavailable from several suppliers with long lead-times from the manufacturer - is there a possibility of alternatives?

U1: iCE40HX4K-TQ144
U10: APX803S00-29SA-7

MDA upgrade to Hercules

I have started a new development branch to implement the graphical mode of the hercules. As Hercules is actually an improved MDA, I have chosen to take this as a basis and update it:

https://github.com/spark2k06/graphics-gremlin/tree/hgc_dev

The VGA 70Hz mode is difficult to maintain, as it would have to be determined which CRTC values are appropriate when these are modified when accessing the graphics mode, so in principle it would only work more or less well from the RGBI output.

I don't have an original monochrome monitor compatible with this output, but my monitor accepts the timings from the VGA output, and we can see that the implementation works, at least with the recommended CRTC values corresponding to the 720x348 graphics mode:

https://www.seasip.info/VintagePC/hercplus.html
image

image

It would be nice if someone could check how it would look like on an original monochrome monitor.

There are other software or games that use different values that do not display correctly, like prehistorik or simcga... and right now I don't know how to solve those cases:

image

Video timing for CGA modes adjustment

The timing for CGA modes, 640x200 or 640x400 implemented with scan doubling, seems to be a bit off.
The picture on my VGA monitors appears to be shifted left significantly. On a couple of monitors I was able to adjust the horizontal position and bring the picture to middle of the screen, on my newer monitor, I cannot do that, even at minimal (rightmost) position, the picture appears to be shifted left and clipped
Are there settings in Verilog that I can adjust to change the timing?

Add LICENSE file

Hello!

Thank you for a great project, published under opensource license!

Could you please add a file LICENSE or COPYING with a license text, so the forks (like https://github.com/yeokm1/graphics-gremlin-hdmi) wouldn't loose it by a mistake?

It is easy to add the file with GitHub, it has the license template.

If you want, I can help you.

Question about the specified board size

I don't really go here but I found the following part of the readme file curious:

The circuit board is a 2-layer board, 4.19 x 4.2 inches (106 x 95mm).

  1. The shorter and longer sides seem to be swapped between the inches and millimetres specifications.
  2. I don't see how the values are accurate matches. Perhaps the "4.2 inches" should be "4.02 inches"? That still wouldn't match exactly though.

Multiple issues running 8088MPH

These all appear to be timing issues. Investigate the relationship between the display enable/vsync bits in the status register and the sequencer.

I am just looking for more information that is beginner friendly

HI, I have lots of experience assembling boards, but not so much programming fpga so when it gets to the part that says run iceprog to program and you then spend days following guides and compiling this and messing with linux only too find a windows version the next day then the ftdi programmer needs to have it's driver forced because iceprog can't find it and it can't be on a certain sub port, you can imagine someone who does not have fpga experience can have one or two problems.

So after a lot of messing about I can talk to the ftdi, but it will not program the fpga so I need to check a lot of things.

This is how to change the driver
YosysHQ/icestorm#141

and the windows build
https://github.com/YosysHQ/oss-cad-suite-build/releases

Once I have everything working I could document and perhaps it will help others.

Not really an issue... Just a suggestion...

I'm trying get some old floptical drives running on several ISA-based platforms I have been working with. I came across this project and I'm glad to see someone is working to make NEW hardware for OLD machines. Anyway...

How about an ISA based video card that goes straight to HDMI?

While this might seem relatively trivial, anyone who is trying to hook up an old ISA/VGA card via a simple VGA->HDMI converter knows - its not. The unfortunate fact of the matter is that most new HDMI monitors don't support the necessary 700x420@70Hz signal used by BIOS/DOS. To make matters even worse, most current HDMI upscalers won't even do this anymore. (I.E. The $200 Startech VGA2HDPRO2 which replaced the previous model VGA2HDMIPRO (which did) doesn't...)

Not expecting you to do this but seems like you might be interested....

Now, if only we had an ISA based controller which supported direct attachment (on board) of SDCards for both floppy and Hard Drive emulation... Maybe add a serial, parallel, game port, and sound function is suitably motivated. Maybe put all of this on the same ISA card with upscaled HDMI output and you have a single ISA card ready to provide any/all retro PC services as needed.

Sorry if this is not appropriate for posting here....

Enchancement: Olivetti M24-like modes

Olivetti M24 had mostly CGA compatible display adapter with several enhancements:

  • The display resolution was 640x400
  • Standard CGA graphics modes used scan doubling, very similar to Graphics Gremlin
  • Standard CGA text modes used 8x16 font, similar to that of VGA adapters
  • It supported an additional 640x400 monochrome graphics mode

It would be nice to implement at least the 640x400 / 8x16 font text mode. It is much more readable than the default CGA 8x8 font
Graphics 640x400 mode is nice too, but I don't think it was widely used

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.