added YT viudeo link to the talk
master
Gunstick2021-01-31 10:25:16 +0100
187271cadfdocumentation added pdf with paper notes in the design phase of the demo. this is where the invention of the scroll technique was born opd libreoffice presentation detailing how the demo is working
Georges Kesseler
2015-02-09 18:33:24 +0100
1756405236Finished, it is finished! Added nice intro disting. Better bounce sync and precalc more in hwbouncer table.
Georges Kesseler
2012-02-21 23:26:15 +0100
ee19981e8dLots of utilities and original grafics which I forgot in previous release. Some more work on the distorters and a little PSG init correction. Added reset demo handling.
Georges Kesseler
2012-02-21 23:23:10 +0100
cecd6521aeThe ordered grafics are here! The sound is fine, maybe a bad soundchip init was causing the bad quality. Demo statup is also now clean (background & buffer initialization). The sound problem may have been a bad soundchip init. And using old voltab again. A lot of code (shifting routines) is now in external includes
Georges Kesseler
2012-02-21 23:03:31 +0100
32912ebe16Welcome to the final sound sample! "You" by Boytronic. It's still a bit whizzing. The previously mangled source has been corrected. Added resync to the hardware jumping so it's moving with the music. We now have self modifying code to jump into the copy routines The famous cheatcode for the bus view appears. Digi volume conversion table is now external and using a louder version Background playfield is also an include now
Georges Kesseler
2012-02-21 22:57:44 +0100
9230ac6dedUse devpac 2.20 for this and newer sources. Use 2.00 for older sources. Yes, this is incompatible! To work around that a global substitution was done which garbled the source. Oh well does not assemble... Also added new sound.
Georges Kesseler
2012-02-21 22:29:58 +0100
c1f5c1ba42Name change! It's now officially called parallax distorter. Quite some code added to make it into the megademo. Sound is now good, but fullscreen vanished. THis may be due to the assembler optimizing. Change the sample to infinity.dmn and then you can see the scroller, but the sound is broken. Very funny to debug that...
Georges Kesseler
2012-02-21 22:09:14 +0100
3dd7b21dedAnd another sample which is quite sensitive to a bad player routine. Assembple with 0 for digitest and you see color switches where the soundplayer is located. Needs to be every second line. Little speed gain: a multiplier table by 208 at _mul208:
Georges Kesseler
2012-02-21 21:54:17 +0100
25a84c62f6This is the source code from which the backported bit came from. Sound is same as previous version. Changed wave to see why the syncscroll is flickering.
Georges Kesseler
2012-02-21 21:50:18 +0100
bd02f08380Added some code which plays the digit without anything else. Press any key to start the demo and listen to the difference. That's how it sounds when you don't play a sample every time. It's only 7.5kHz.
Georges Kesseler
2012-02-21 21:47:30 +0100
4b6672abcfnew sound files available. Little work on making digit sound better. It does not yet play for the full duration of the VBL.
Georges Kesseler
2012-02-21 21:42:24 +0100
7ae258042afont and digisound are at the beginning of the program (always think differently, it may be faster). The planes of font and background are switched. No more right border flickering. Color 0 is now a font color.
Georges Kesseler
2012-02-21 01:51:04 +0100
33d0a26f89working on new font layout
Georges Kesseler
2012-02-21 01:47:31 +0100
96f7f81eb1we can add an independant distorter on top of the parallax background
Georges Kesseler
2012-02-21 01:40:04 +0100
734611f79dFirst sound! Ugly sample quality but it's working. A lot of trickery as there were some clockcycles missing. Usage of a7 to address hardware registers with movep. Quite some heavy code rearrangement of which I forgot what it was all about. Note that the background now bounces with double speed as that looking more fluid.
Georges Kesseler
2012-02-21 00:40:18 +0100
ad0dcaa25eadding digisound player. notice that bus equ 0, so that diables the hardscroller and you can move with the numpad around. the digirout is doing color changes. the white bars should be on every second line to enable a nice and clean sound
Georges Kesseler
2012-02-21 00:37:08 +0100
2d787af42dchanged playfield dist color. something is not right, the font is still not there
Georges Kesseler
2012-02-21 00:32:15 +0100
b240884460some work on the hardware bouncing. Happy to see a screen full of crappy grafics distorting. Maybe I should sort out that font issue...
Georges Kesseler
2012-02-21 00:28:01 +0100
b39a40fd86some code backported from several versions in the future so that the overscan still works. You can view the original screen by changing in the first line the equ of "backport" to 0 instead of 10
Georges Kesseler
2012-02-21 00:20:15 +0100
c77dd58dafWell this one assembles but does not work. The oeverscan does not sync and remains closed. Some 50Hz switches added in preparation to add digisound too.
Georges Kesseler
2012-02-20 01:41:17 +0100
00bda99890Added code to open lower border. Code is called in every line reading switches from a table. This had to be put in all copyrouts. Now it shows that it's sometimes important where on the screen you place your code.
Georges Kesseler
2012-02-20 01:38:53 +0100
64d6fcafa6Starting to introduce the playfield code. Those background bars will soon explode. Using macros for this.
Georges Kesseler
2012-02-20 01:35:31 +0100
ed3924ea3dall overscan integrations done: replace color switches by resolution switches More of the overscan is now showing.
Georges Kesseler
2012-02-20 01:32:11 +0100
b2a7549fbfmoved includes into subdirectory font has now nice vertical bars as background 20 copy routines integrated
Georges Kesseler
2012-02-20 01:24:35 +0100
f2459fb737Temporarly copy less lines as there's not enough CPU time left. Some marcros added to ease integration. 8 copy routines have been integrated: nicely aligned colors. digisound player code pasted after "end" is inactive.
Georges Kesseler
2012-02-20 01:09:14 +0100
408425066dBye bye debug message and colored hardwarescroll. Also removed the annoying flicker as I need to integrate the scroll copy routines The scroll is looking funny becauuse I force always cpy00 which is the first to be integrated into overscan. First step: place color changes instead of resolution switches.
Georges Kesseler
2012-02-20 01:06:12 +0100
1f9c182296Added comments which registers are free to facilitate integrating. The light blue part indicates the time needed to copy the scroller to the screen.
Georges Kesseler
2012-02-20 00:53:57 +0100
c0ae2f6775Integrating more overscan needs to unloop all the shifting routines. We also now have a nice scrolltext. Check out the awkward trick to write it. And welcome back top border sync.
Georges Kesseler
2012-02-20 00:50:39 +0100
a9916c6901This now starts to really look like a demo. Not yet fullscreen though. CPU time is now completely used as a little routine got added to copy the scroll into double buffer. Could it be more optimized? Yes, but does it have to?
Georges Kesseler
2012-02-20 00:44:37 +0100
efdca8522dSome more overscan integration, in the process we lost the top border opening. If I'm right, the blue part minus hardscroll is the free processor time. That's not much...
Georges Kesseler
2012-02-20 00:40:40 +0100
c583453fccAs we have hardscrolling, show it off by jumping up and down. This changes screenadr and we need to use a virtual address (logbase) to draw the scroll. Notice some places where lea is replaced by add and other places where move is replaced by lea. Takes less time.
Georges Kesseler
2012-02-20 00:39:32 +0100
95d5e0fd9eNow we are activating the multi buffered screens! First light of the full screen distorter capability. Just imagine how excited you are when this idea actually works.
Georges Kesseler
2012-02-19 23:15:53 +0100
6ac0bdbad9Some more overscan integrating ALso note the replacement of jsr/rts by jmp/bra for the copy routines
Georges Kesseler
2012-02-19 23:09:28 +0100
7906f93d29Finally the first wavy scoller does it's debut. Notice that it's never going right. You can change the wave by uncommenting lines in wavetab to get other moves. The code moving right breaks the overscan on the lower part of the screen.
Georges Kesseler
2012-02-19 00:57:52 +0100
ed0272cd3fplace holders for digi sound and playfield distorter appear code starts to get integrated into overscan switches hardware scroll table is now in a binary include
Georges Kesseler
2012-02-19 00:54:45 +0100
fc68e5f82flittle changes
Georges Kesseler
2012-02-19 00:52:30 +0100
63d9ec0d8aSome code moving around. Not sure what this did, but the assembled result has now vertical bars instead of scroll text. Hmm vertical bars... playfield.
Georges Kesseler
2012-02-19 00:48:22 +0100
9a76b1d84dThis is one of the most important decisions. Reduce the scroller height from the classic 32 pixel height to 26, because there is not enough CPU time left to do 32 pixel! We can do this because there is no 8 lines/scroll limit when using the hardscroller.
Georges Kesseler
2012-02-19 00:32:21 +0100
614af0fc1athe line marked "wow!" needs an expalantion. Maybe one day I will find it. New in this code is the distorter wave handler. This code does not assemble.
Georges Kesseler
2012-02-19 00:25:44 +0100
51e8cb4095jepp, thats a sort of lea storing directly the address
Georges Kesseler
2012-02-19 00:17:50 +0100
d00a60d35626 copy routines. The screen is 416 px wide. Scroll buffer is same width to save space. But we do not shift the scroll buffer around. Instead there are 416/16=26 different cases in the scroll buffer where the left border of the scroller is. We simply use 26 different copy routines. If you scroll now too far with the numpad, the copied scroller will overwrite code, devpac or system. Crash ahoi!
Georges Kesseler
2012-02-18 23:34:18 +0100
a3bb82c6fdparallax distorter. It was first meant to be an independant distorter on 2 playfields, only later it became the parallax distorter. This version features just hardware scroller with overscan. Use numpad to move around.
Georges Kesseler
2012-02-18 23:32:41 +0100