Jump to content

Photo

New GUI for the Atari 8-bit


3011 replies to this topic

#1276 Gunstar OFFLINE  

Gunstar

    Gunstar

  • 7,432 posts
  • Location:Canyon Lake TEXAS

Posted Tue Feb 28, 2012 2:54 PM

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!

#1277 Stormbringer OFFLINE  

Stormbringer

    Chopper Commander

  • 123 posts

Posted Tue Feb 28, 2012 3:06 PM

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!


Uhhh.... you might want to retract that demand....

#1278 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • Topic Starter
  • 8,420 posts
  • Location:United Kingdom

Posted Tue Feb 28, 2012 3:22 PM

Neither retraction nor request required... been out of work for ages. Development couldn't get any faster than it's been for the past year... it'll only get slower when I do eventually find a job. :(

#1279 MrFish OFFLINE  

MrFish

    River Patroller

  • 2,197 posts
  • Serious Computerist
  • Location:$02F5 - $02F9

Posted Tue Feb 28, 2012 5:03 PM

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.

#1280 Kylev OFFLINE  

Kylev

    Chopper Commander

  • 120 posts
  • Location:U.S.A - West Coast

Posted Tue Feb 28, 2012 9:15 PM

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

#1281 MrFish OFFLINE  

MrFish

    River Patroller

  • 2,197 posts
  • Serious Computerist
  • Location:$02F5 - $02F9

Posted Tue Feb 28, 2012 9:43 PM

It will be exciting to see this project completed.


"Completed" is surely a longggggggggggggggggggggggggggggg ways off... but, although I'm not usually one to make predictions, by this time next year I think a lot of questions will be answered, at least.

#1282 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • Topic Starter
  • 8,420 posts
  • Location:United Kingdom

Posted Wed Feb 29, 2012 5:00 AM

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, Wed Feb 29, 2012 5:33 AM.


#1283 fibrewire OFFLINE  

fibrewire

    Stargunner

  • 1,592 posts
  • Location:Southern California

Posted Wed Feb 29, 2012 5:15 AM

If it's any consolation, I think that a reasonably complete GUI with some publications in embedded markets will surely land Jon a six-figure job.

Keep up the good work!

#1284 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • Topic Starter
  • 8,420 posts
  • Location:United Kingdom

Posted Wed Feb 29, 2012 7:20 AM

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:



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, Wed Feb 29, 2012 7:23 AM.


#1285 w1k OFFLINE  

w1k

    Stargunner

  • 1,395 posts
  • Location:martin, slovakia

Posted Wed Feb 29, 2012 9:03 AM

faster then before :)

#1286 dmlloyd OFFLINE  

dmlloyd

    Chopper Commander

  • 182 posts

Posted Wed Feb 29, 2012 11:37 AM

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

#1287 JamesD OFFLINE  

JamesD

    River Patroller

  • 4,788 posts

Posted Wed Feb 29, 2012 11:51 AM

Performance doesn't look a lot different than the original Mac, but then the Mac was driving a higher res display.

#1288 MEtalGuy66 OFFLINE  

MEtalGuy66

    River Patroller

  • 2,598 posts
  • If it aint broke, fix it anyway!
  • Location:Houston, TX, USA

Posted Wed Feb 29, 2012 12:12 PM

Heh. The mac also had an 8mhz 16bit CPU and a 16bit system architecture..

#1289 MrFish OFFLINE  

MrFish

    River Patroller

  • 2,197 posts
  • Serious Computerist
  • Location:$02F5 - $02F9

Posted Wed Feb 29, 2012 1:22 PM

Heh. The mac also had an 8mhz 16bit CPU and a 16bit system architecture..


I wonder if any of the 6809 prototypes are still in existence?

#1290 ivop OFFLINE  

ivop

    Chopper Commander

  • 217 posts
  • Location:The Netherlands

Posted Wed Feb 29, 2012 2:03 PM

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

#1291 MrFish OFFLINE  

MrFish

    River Patroller

  • 2,197 posts
  • Serious Computerist
  • Location:$02F5 - $02F9

Posted Wed Feb 29, 2012 2:08 PM

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.

#1292 fibrewire OFFLINE  

fibrewire

    Stargunner

  • 1,592 posts
  • Location:Southern California

Posted Wed Feb 29, 2012 2:36 PM

Why bother caching with this kind of performance! ;)

#1293 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • Topic Starter
  • 8,420 posts
  • Location:United Kingdom

Posted Wed Feb 29, 2012 2:46 PM

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...

#1294 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • Topic Starter
  • 8,420 posts
  • Location:United Kingdom

Posted Sat Mar 3, 2012 5:43 AM

"Outline" text proved an interesting coding challenge:

outline.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:

Mac_Outline.png

Geos_text_styles.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, Sat Mar 3, 2012 5:46 AM.


#1295 AtariNerd OFFLINE  

AtariNerd

    Dragonstomper

  • 766 posts
  • Cool Atari project? Take my money, take it!
  • Location:California

Posted Sat Mar 3, 2012 3:13 PM

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?

#1296 fibrewire OFFLINE  

fibrewire

    Stargunner

  • 1,592 posts
  • Location:Southern California

Posted Sat Mar 3, 2012 7:45 PM

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

Never mind, I've been up for 35 hours. I'm pretty useless whenever I'm on the forum after work.

#1297 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • Topic Starter
  • 8,420 posts
  • Location:United Kingdom

Posted Sun Mar 4, 2012 5:39 AM

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, Sun Mar 4, 2012 5:44 AM.


#1298 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • Topic Starter
  • 8,420 posts
  • Location:United Kingdom

Posted Sun Mar 4, 2012 3:34 PM

Got the stripped-down character renderer working as fast as I can manage today, and here it is filling a window with simulated "real world" content:



#1299 potatohead OFFLINE  

potatohead

    River Patroller

  • 4,196 posts
  • Location:Portland, Oregon

Posted Sun Mar 4, 2012 4:07 PM

Damn. That looks perfectly usable to me. Very nice progress. :)

#1300 JamesD OFFLINE  

JamesD

    River Patroller

  • 4,788 posts

Posted Sun Mar 4, 2012 4:24 PM

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.




2 user(s) are browsing this forum

0 members, 2 guests, 0 anonymous users