INTROjr by Hornet [web]
INTROjr -- A 2013 Hornet Production Code: Trixter Graphics and Music: Phoenix Shameless plug: Go to www.mindcandydvd.com and buy MindCandy Volume 3! Please! This program requires a real IBM PCjr with at least one memory expansion (and memory driver loaded such as JRCONFIG.SYS) to run properly. Any other scenario, such as a Tandy 1000 or DOSBox, will likely not work. A Tandy 1000 will run the program but every other scanline will be blank. It's also possible the raster bars won't display properly (or at all). If possible, view this demo via the PCjr's composite video output, as all colors and effects were calibrated for that as the output device. INTROjr competed at @party 2013 in June 2013 and won second place in the oldskool demo competition. Ironically, this is the very first pure 100% Hornet demoscene production that is ACTUALLY A DEMO. We used to run archives, produce a weekly magazine, and produce DVDs and Blu-rays. Now, after 20 years, an actual production. Go figure, eh? Tools used: - IBM PCjr + jrIDE - Turbo Pascal 7 (intro is 80% pascal and 20% assembler) - Photoshop - Deflemask Misc. notes: This demo was a proof-of-concept framework to see how many full-framerate effects were possible on a PCjr. The music replay routine, raster bars, and scroller all run in one frame. The music takes between 2 and 6 scanlines, and the raster bars and scroller take roughly 50 scanlines each. These run via an emulated vertical retrace interrupt that fires shortly after the last visible scanline has been drawn to give maximum time to the scroll routine, which finishes right as the first visible scanline is being drawn. Then, the raster bars draw, then the music is updated. The non-realtime effects in the lower window use whatever CPU time is left, so they are running at roughly half normal speed. The raster bars have some graphic corruption in them because the interrupt fires only after the CPU is done executing the last instruction and that time is variable. It is unknown if the PCjr can be put into a mode where all interrupts are off for cycle-exact effects, because the PCjr needs to refresh DRAM so it doesn't lose its contents. PCjr also uses the NMI differently than the PC. These are unknown variables; you're welcome to explore them! Composite color output was always the output target, because this was written to compete at a compo and the only way to hook a PCjr up to a projector is via the composite output. It looks ok on an RGB monitor, but it looks much better via the composite output. I could have spent a few more days trying to get the memory usage of this down so that it could work on a stock unexpanded PCjr, but the effects would have been so slow that it would not have been fun. Besides, if you have a PCjr, you more than likely have at least one memory expansion, and one is all you need to run this program. If I ever do a stock PCjr demo, it will be a trackmo because booting directly from the disk is the only way I'd have enough memory to do anything. I'm not that crazy yet. --trixter, 20130704
[ back to the prod ]