Jump to content
IGNORED

New GUI for the Atari 8-bit


flashjazzcat

Recommended Posts

This is all starting to look pretty darn incredible, I can't wait for the GUI much longer, therefore I demand you guys quit your day jobs and go on welfare so you can do the GUI full-time!

 

Thanks, we appreciate the interest. "Coding full-time on the Atari" = "Welfare", is probably not too far off. ;)

 

I've been fortunate enough to have more time to devote to this lately, and coming up with a method for converting fonts from other platforms to a format that can be used on the Atari has been one of the results. I only wish there was more time and less to be done, but considering we've only been working on this for one year, and the fact that Jon has been busy with many other projects, I think we've made good progress. I was hit with some pretty heavy personal tragedies last year too, which slowed my interest in coding and doing artwork way down for quite a few months.

Link to comment
Share on other sites

MrFish & FlashJazzCat,

 

The work you have already done is absolutely incredible. I only wish I had half your talent and the time to put it to good use. Keep up the good work, both of you. It will be exciting to see this project completed.

 

Russ

Link to comment
Share on other sites

Well, I've managed to answer a lot of my own questions already. A lot of this pondering and uncertainty (and the need to design very radical solutions to certain problems) is in the past now, and progress depends in no small part on sheer coding hours. So time-frames are indeed harder than ever to come up with, since "I'm coding a GUI for the A8" cuts little ice with the rent-man or the electricity board (although the wife sees a certain amount of mystique in it). If as much progress as we managed between February - June last year is made this year, we should be in a good place in the Summer, and able to answer a lot of those questions MrFish alludes to. I reckon it'll easily take three months to get the system onto a cartridge and running resources out of extended RAM (this is the next urgent job). That should have been the first job, but who knew... ;) Anyway, when that's done, and we have a dialogue manager, I believe things will come together pretty fast (after all, once the tremendous challenges of memory management are overcome, there's really not such a vast number of visual elements still to add before we have a reasonably complete UI).

Edited by flashjazzcat
Link to comment
Share on other sites

Thanks - it would be nice to think that this project could lead to good things. I'm aiming at a job in programming, but I need to update my severely outdated programming vocabulary. :)

 

OK - here's a video (looped three times; the demo can't respond to client redraw events yet) of the renderer drawing characters with transparent backgrounds:

 

http://youtu.be/_tD0uGa3sEM

 

It's appreciably faster than the original, largely because the shorter characters have a built-in vertical render offset (this makes the files smaller, but was primarily intended to aid rendering speed). MrFish pointed out to me last night that ninety per cent of the time, there's no need to draw an opaque background when rendering a character, since the they've usually already had a background drawn behind them anyway (althogh we can preserve the opaque-background functionality for when it's needed elsewhere). It's as well we had that discussion, since I had become totally lost in the technicalities and was oblivious to this rather obvious optimisation, which removes the need to vertically pad a character's bounding box.

 

Still clipping to do, but I don't think it will impact massively on performance. I'm also considering a stripped-down renderer for UI elements, so those menus might get even faster. :)

Edited by flashjazzcat
Link to comment
Share on other sites

Any possibility of having a larger scrolling virtual desktop area, especially with 130XE-style machines?

 

I'd jump at the chance to implement something like this using the A8's hardware scrolling, but sadly we can't rely on Antic banking being available and therefore the whole desktop bitmap would have to be in main memory, and there just isn't room. We could achieve it by blitting stuff in and out of extended RAM, but it wouldn't be the elegant solution it should be.

 

are the menus cached or re-rendered each time the mouse hovers over?

 

They're rendered each time. We've discussed caching for systems with extra memory.

 

Why bother caching with this kind of performance! ;)

 

Well, quite. Caching was suggested at one stage, but I see little point now. Back window client areas may prove to be a different matter...

Link to comment
Share on other sites

"Outline" text proved an interesting coding challenge:

 

post-21964-0-22705600-1330774602_thumb.png

 

It uses a triple line-buffering system to OR sets of three lines into one another. The bitmap is also left and right shifted, before the original character bits are XORed into the resulting data. This works out quite nicely, as long as two extra "dummy" lines of zero bytes are introduced at the end of the character bit-stream. The idea is to efficiently simulate the rendering of the character offset by 1 pixel in vertical, horizontal and diagonal positions before stamping the original bitmap in the middle.

 

I thought it well worth adding this effect, which was also present in Mac OS and and GEOS:

 

post-21964-0-15787600-1330774601_thumb.png

 

post-21964-0-42244200-1330774600_thumb.png

 

The Mac's drop-shadow outline style would require quadruple line buffering and additional shifting. Needless to say the outline style is sufficiently hard work to warrant its own code sections, so as not to impinge on the performance of normal rendering.

Edited by flashjazzcat
  • Like 2
Link to comment
Share on other sites

Beyond my feeble comprehension, but marvelous all of the same. With performance like this, it really becomes much more than a novelty or a what if experiment, but a bonefide working system. Are you still looking into a RAMcart solution or would this work with a regular IDE or flash drive?

Link to comment
Share on other sites

With performance like this, it really becomes much more than a novelty or a what if experiment, but a bonefide working system.

 

Well, until the difficult undertakings of cartridge banking and extended memory management are completed, it can't be considered a working system. But the developments of the last couple of months have satisfied me that we have all the tools required to create a fast and responsive GUI on the A8. Today I'm working on a special unbuffered character renderer for use when no dynamic styling is active. This should significantly speed up the UI elements (where the only commonly used style is the very simple "greyed-out text"), and will ensure that file browser windows fill up with icon or list view content at the maxmum possible speed.

 

Are you still looking into a RAMcart solution or would this work with a regular IDE or flash drive?

 

Memory upgrades are so ubiquitous now that RAM availability is less of an issue. However, I hope to make a separate build which works on Steve Tucker's special RAMcart (there are also a few people who'd really like to see a version which will run on a 64K machine). In all cases, all the support files will be on the cartridge, so 128KB, a flash cart, and SIO or HDD storage will work. The ideal setup will be a RAM expanded machine with a SIDE cart (the GUI would replace the XEX loader on the cartridge).

 

What about the drop shadow from the menus? Do they use the same OR effect?

 

The drop shadows on the windows and menus are done simply by drawing lines offset by 1px on both axes. The vertical and horizonal line drawing routines are exceptionally fast. However, once the vertical line renderer is coded up to draw lines 2px thick, it'll be faster still.

Edited by flashjazzcat
Link to comment
Share on other sites

Looks very good. It takes what? A second or less to draw all the text on that window?

 

I've been watching some videos about the original Macs and they are definitely faster, but without having the two side by side doing the same thing it's difficult to say how much faster the Mac is.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   1 member

×
×
  • Create New...