Friday, November 24, 2017

16 bit color!

So due to the previous issue, I decided to go full-on VESA modes (in this case, 800x600) via GRUB2, including 16 bit color.  The net effect is that the resolution should work on most VESA compliant machines, and the colors should look much more like the original C64.  Here's a screenshot:


Tweaking the optimizations and skipframes needs to be worked out a little.  On older machines, ive been able to out-type the system.  Will keep working on this to improve timing.  Cycle-exact would be ideal, but not there just yet.

I've compiled this for 640x480x16, 800x600x16, and 1024x768x16 and it scales fine.  I picked 800x600 because it gives a reasonable performance and render.  Those of you who are looking at the source, the loader.s file contains the requested resolution.  Multiboot is supposed to try to give the requested resolution or provide a near option, but Id say most support 800x600.

Again, this means that the old text mode (ESC key) isnt available at the moment.  The purpose of that screen was to aid in debugging, so I will probably go ahead and generate it again so I can use it and also have access to an ML monitor and disk functions.

2 comments:

  1. This works great.
    how do I get these to type in { }

    I have also notice the F10 key doesnt reset the c64 like you had before. (its no biggie system boots fast as it is now)
    Do you have a bug reporting area here?

    ReplyDelete
  2. Curly braces arent part of the C64 keyboard. All it had were the bracket characters []. I need to really take a closer look at F10. It wants to do it sometimes, and when it does, it can take a few cycles to even start. But yeah I will be fixing that soon. I probably will move it to maybe the End key on the keyboard. F10 is too close to F9.

    As for bug reporting, the list would be massive right now with all the goals I have for this, so its better to just keep doing what youre doing and post responses here to the latest builds. Its great feedback and I appreciate it. Github is also fine for reporting issues. Thanks!

    ReplyDelete