2021-07-04, 04:57 PM
(This post was last modified: 2021-07-04, 04:58 PM by ytm.
Edit Reason: typo
)
Here is a little update from a branch where I replace GEOS gfx routines by Beamracer and overlay whole screen using BR Programmable Bitmap Sequencer.
If you want to try this right away, here is the boot disk, compiled from beamracer-gfx branch head:
geos-beamracer-gfx-756a8cd2cdf7b5e0b245f0fdd4061f052aabee2e.zip (Size: 101.99 KB / Downloads: 5)
Note that it won't work in Kernal64 emulator because both DLs and bank switching are used.
Everything except strings draws to Beamracer RAM. Both ports are used - either to write into fore/backbuffer simultaneously or to use one to read and other to write data in read-modify-write setup. For line fill REP0/1 registers provide hardware acceleration.
All features provided by RAM expansion (DeskTop bufffer, drive 8 RAM shadowing) are enabled.
DeskTop runs fine. For debug purposes the display list and bitmap sequencer are enabled only for the top half of the screen.
GeoFont looks fine here but once font is loaded for editing one can see that the app writes directly to VIC bitmap at $a000-$bf40, so it will never work properly. Unfortunately most of GEOS 64 programs work this way, even main BSW apps like geoPaint.
Here in IconEdit split screen one can see what was stored in VIC bitmap directly, without referring to GEOS KERNAL:
Finally menus will look wrong sometimes because I have a strange off-by-one error somewhere:
Anyway, this is for fun. I think I will continue with this for a while just to have string drawing routines ready but it's clear that it will never be compatible with main GEOS 64 apps. It will be a good basis for hardware-accelerated TGI driver for CC65.
I will turn my focus to RAM expansion instead. Some of this work, especially with memory management, might be useful anyway.
If you want to try this right away, here is the boot disk, compiled from beamracer-gfx branch head:
geos-beamracer-gfx-756a8cd2cdf7b5e0b245f0fdd4061f052aabee2e.zip (Size: 101.99 KB / Downloads: 5)
Note that it won't work in Kernal64 emulator because both DLs and bank switching are used.
Everything except strings draws to Beamracer RAM. Both ports are used - either to write into fore/backbuffer simultaneously or to use one to read and other to write data in read-modify-write setup. For line fill REP0/1 registers provide hardware acceleration.
All features provided by RAM expansion (DeskTop bufffer, drive 8 RAM shadowing) are enabled.
DeskTop runs fine. For debug purposes the display list and bitmap sequencer are enabled only for the top half of the screen.
GeoFont looks fine here but once font is loaded for editing one can see that the app writes directly to VIC bitmap at $a000-$bf40, so it will never work properly. Unfortunately most of GEOS 64 programs work this way, even main BSW apps like geoPaint.
Here in IconEdit split screen one can see what was stored in VIC bitmap directly, without referring to GEOS KERNAL:
Finally menus will look wrong sometimes because I have a strange off-by-one error somewhere:
Anyway, this is for fun. I think I will continue with this for a while just to have string drawing routines ready but it's clear that it will never be compatible with main GEOS 64 apps. It will be a good basis for hardware-accelerated TGI driver for CC65.
I will turn my focus to RAM expansion instead. Some of this work, especially with memory management, might be useful anyway.