Hacker News new | comments | show | ask | jobs | submit login
Qt 4.7 ported to AmigaOS 4 (amigax1000.blogspot.com.au)
45 points by synchronise 1305 days ago | hide | past | web | 19 comments | favorite

Growing up with an lowly Amiga 500 and high-end PCs upgraded yearly, I never understood why it took PCs so long to catch up in terms of graphics. There were literally dozens of video card companies competing in the 2D market, and years after they "beat" it in resolution and color, the performance was abysmal for gaming. None of my top of the line ATI, S3, Matrox cards ever had true sprite support, and would often slow down with any serious movement on the screen. It wasn't until post Voodoo2 era, that I felt the PC had finally caught up, and that was through brute force.

Anyone have any idea, what held the PC back? Patents or lack of VESA-like support for specialized features like the Amiga had?

The problem with the PC was a mixture of Attitude and Hardware capability.

The Amiga was developed with the knowledge of how people programmed the C64. That was an entirely different way of doing things to what was going on in the PC space. The programmers who were getting the most out of the C64 were not thinking in terms of bullet point feature lists but rather how the graphics chips worked to construct the screen on a scanline by scanline basis. Because the display was constructed over time by the chips the display was a product of the graphics state at the time of each scanline. That meant triggering interrupts as the beam travelled down the screen allowed for changing of the display state in order to supply as much as possible on each and every scanline. This meant things like instead of 8 sprites onscreen you could have 8 sprites per scanline appearing repeatedly down the screen. Colours and display modes could change for a wide variety of effects.

When the Amiga was being developed, they realised that rather than obscuring the internal features down to a fixed list of modes and capabilities, it would be better to expose what the graphics chips were actually doing. An example of this is the registers to show what video memory to display actually represent the video memory being displayed, not just the top of the frame, the value will increment as the scanline travels down the display. That means you are required to reset it every vertical blanking period to the top, but enables a vast array of possibilities. In addition the value that gets added to the pointer to get to the next scanline is also exposed, so you can change the virtual width of the page as well as set it to a negative value to make the display appear upside down.

To combat the problem that such a dynamic view of the video state had where you have to reset everything to first positions every frame, the Amiga supplied the Copper, which was a extremely simple processor that was designed to move constants into constant addresses. The copper could wait for a video beam position then load registers.

I said at the start that the difference was a mixture of attitude and hardware capability. The Amiga excelled because it embraced that attitude. On the PC Side EGA had some similar features and VGA had an interesting mix by virtue of backwards compatibility blending hardware designed for VGA and EGA together. It seems clear that the intention of EGA was to provide similar sort of abilities to the C64 (sprites notwithstanding). For the most part those abilities were ignored, instead of using capabilities like hardware scrolling programmers tended to just treat the device as a dumb framebuffer. There were a few exceptions, most notably was John Carmack, who used the hardware registers to make the Commander Keen engine.

When the VGA came along the hardware features were still there but the direct use of them was not incorporated into the design the way it was in the Amiga. For quite a while mode 13h was all things did. They drew into an offscreen buffer and copied across once complete. It was exactly the Dumb Frame buffer approach. Over time people did figure out how to do a few tricks with the combination of registers designed for VGA and registers designed for VGA. Wolfenstein 3d used ModeX which was using VGA mode13h display output but with EGA style memory addressing to allow page flipping without the entire framebuffer copy. It also allowed 320x240 (instead of 320x200) and indeed I rather enjoyed playing around with the limits at 400x300 in 256 colours. It was also possible to do hardware scrolling on VGA registers. A lot of scrolling games used these features. These were the first games to really surpass the Amiga in graphical ability. They needed substantially more CPU to achieve the same result, but at that stage PCs were considerably faster in raw horsepower.

In Japan, a similar-to-PC architecture did have sprite and background layer scrolling support in hardware. In the US it was more a result of graphics cards being optimized for windowing OSs and not gaming that drove video card development.



out of curiosity I started looking at the x1000, found a page where you can buy one:


$2,800 for pretty low spec hardware. Surely it only appeals to people who have fond memories of their Amiga 500? I knew two people who owned them when I was younger, always jealous! but that seems like an insane amount of money to spend on something that is seriously dated. What am I missing?

Nothing much, just the logo and name rights basically.

You can essentially get the same experience with AROS on an x86 machine (http://vmwaros.blogspot.com.au/) Or if you feel as though you want the PPC Amiga experience, you could get a G4 Mac Mini and install MorphOS (or AmigaOS4 illegally, but I cannot legally condone that). But, if you really want AmigaOS 4, then you can buy a slightly cheaper PPC system from Acube (https://acube-systemsbiz.serversicuro.it/shop/).

The Raspberry Pi is today's Amiga. Decent CPU for the money, surprisingly good graphics, hacker-friendly ecosystem.

The Pi just needs a decent GUI optimized for its OpenGL ES environment. X is too slow and has too much indirection, but something built using Qt Quick's direct OpenGL renderer might work great.

I don't agree. The Raspberry Pi has nothing to do with the Amiga. The Amiga was cutting edge when it came out, nothing came close to it in terms of performance. Even the super expensive PCs or Apples. The Raspberry Pi is just a cheap and good enough platform to start doing some cool stuff, but it's nowhere similar to how revolutionary was the Amiga.

Maybe Tizen? It has qt5 port in development.



I really wish Amiga somehow would take back its former glory, yet it feels so pointless... I don't see a reason for Amiga to exist :(

The OS is still great in many aspects. It's very light and fast, even most Linux distros feel bloated nowadays.

Never used it, but I hold a special place in my heart (if not necessarily the more practicality-oriented areas of my mind) for alternative operating systems. I grew up with the Atari 800 & ST and the Amiga was a compatriot.

I'm sure it's just a matter of perspective, but I sure feel as if research into new operating system concepts (such as distributed operating systems) has been flagging since the 90s. So it's heartwarming that there are some rare souls out there still nurturing alternative operating systems.

> out there still nurturing alternative operating systems.

Indeed, and among the "alternatives", AmigaOS is certainly one of the most alive of them. RISCOS, BeOS, are way less active than the Amiga scene.

I wouldn't say it exactly like that, Haiku is still moving steadily (it's package management implementation is close to being released) and RISC OS got a second wind with the Raspberry Pi and Beagleboard ports.

For RISCOS, a port is one thing, it does not mean the OS itself is in active development (AFAIK).


It's development cycle is still quite active, actually more so after the Raspberry Pi release.

Looks nice, but why not Qt 5 ?

Maybe the port was started on Qt4 and only now released?

Most Qt applications are made for Qt4, it will take a while before they are adapted to Qt5, as far as I understand.

Yeah, but new development (like my project) is done on Qt5. Qt5 brings some really nice features like a typesafe and C++11 friendly signal/slot syntax.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact