3 ms·
> I believe the //e and the //c could generate interrupts on vertical blanking VBlank interrupts were only available through the Mouse Firmware, which was buil
by thought_alarm 2y ago
> I believe the //e and the //c could generate interrupts on vertical blanking
VBlank interrupts were only available through the Mouse Firmware, which was built into the IIc but a rarely-installed option on the IIe. As a result, there were no interrupt-driven games for the 8-bit Apple II machines.
The complete lack of consistent frame rates and timing is a hallmark of Apple II gaming.
- vintermann 2y agoConversely, screen interrupts were at the core of Commodore 64 games, and of the demoscene. And also of arcade machines, NES and the whole next generation of consoles and non-IBM computers. So I wonder why it wasn't added. It wouldn't have been hard, exactly (enthusiasts for the TIKI-100, a Norwegian educational 8 bit, have gotten into the habit of repurposing the printer interrupt by means of a dongle in the printer port). Was the idea that educational machines shouldn't be too game-friendly?
- rbanffy 2y agoThey could at least be aware of real time. A default vblank interrupt handler that increments a 16-bit counter would be incredibly useful.
- deater 2y agothe idea was the original Apple II was made in 1977 as a game machine (Woz wanted to play breakout in software) but there really wasn't much of a concept of what a "Game Machine" was back then, it was mostly a huge hack trying to get minimal chipcount years later when the c64 and IBM PC came out, the IIe was released which did have vblank support, but Apple II devs were reluctant to break backwards compatability. You can still do a lot of cool games w/o vblank support. I'd say it'd barely makes the top 5 list of most annoying things about programming games on the Apple II. And all these other "better" platforms, tell me do they have a port of Riven? http://deater.net/weave/vmwprod/riven/ http://deater.net/weave/vmwprod/riven/
- thought_alarm 2y ago> So I wonder why it wasn't added. It wouldn't have been hard, exactly The answer to the question "Why didn't Apple add X/Y/Z to the Apple II?" is that they did add those features, starting with the Apple III in 1980, and continuing with the IIc and IIgs. The problem is that there was a 2-year window between the release of the III and the explosion of the home/education market that Apple ignored the II and assumed sales of that quirky, obsolete system would dry up. The IIe was designed within that window, and the skeleton crew of engineers who worked on the IIe did not have the green light to add significant new features. The only goal was to reduce manufacturing costs and maintain compatibility. It wasn't until after the IIe was locked in that the Apple leadership began to realize the importance of the II within the suddenly booming home/education market, and only then did they put any significant resources back into the platform. The IIc (1984) and IIgs (1986) were the result of those renewed efforts, but by that time the cat was already out of the bag. The IIe remained the most popular machine of the platform, and the "modern" features added to the IIc and IIgs were left unused by most developers and users.
- IWeldMelons 2y agoAfaik you can do Vapor Lock on Apple - poor mans VBlank detection: http://deater.net/weave/vmwprod/megademo/vapor_lock.html http://deater.net/weave/vmwprod/megademo/vapor_lock.html
- rbanffy 2y agoThat’s processor intensive. What’s the minimum number of cycles required to detect a vblank?
- IWeldMelons 2y agoyes it is, but it does not matter if you have finished rendering and now just waiting for the next frame.
- 0xcde4c3db 2y agoIIe and IIc have a vsync status bit that you can poll, but IIRC the polarity was flipped between the two models and there are other quirks that can interfere with using it, so it was neither recommended nor popular.
- deater 2y agoit's more complex than that, I think IIe and IIgs have the same register but polarity reversed, the IIc has a weirder interface that generally involves setting up an interrupt through the mouse firmware