Commit Graph

45 Commits (master)

Author SHA1 Message Date
Gunstick 7fc1eef486
added YT viudeo link to the talk 2021-01-31 10:25:16 +01:00
Georges Kesseler 187271cadf documentation 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
2015-02-09 18:33:24 +01:00
Gunstick f5492b7091 Create README.md 2015-02-08 22:25:16 +01:00
Gunstick bc5cabb261 Create LICENSE.md 2015-02-08 22:22:22 +01:00
Georges Kesseler 1756405236 Finished, it is finished!
Added nice intro disting.
Better bounce sync and precalc more in hwbouncer table.
2012-02-21 23:26:15 +01:00
Georges Kesseler ee19981e8d Lots 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.
2012-02-21 23:23:10 +01:00
Georges Kesseler cecd6521ae The 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
2012-02-21 23:03:31 +01:00
Georges Kesseler 32912ebe16 Welcome 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
2012-02-21 22:57:44 +01:00
Georges Kesseler 9230ac6ded Use 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.
2012-02-21 22:29:58 +01:00
Georges Kesseler c1f5c1ba42 Name 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...
2012-02-21 22:16:50 +01:00
Georges Kesseler 3dd7b21ded And 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:
2012-02-21 21:54:17 +01:00
Georges Kesseler 25a84c62f6 This 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.
2012-02-21 21:50:18 +01:00
Georges Kesseler bd02f08380 Added 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.
2012-02-21 21:47:30 +01:00
Georges Kesseler 4b6672abcf new sound files available. Little work on making digit sound better.
It does not yet play for the full duration of the VBL.
2012-02-21 21:42:24 +01:00
Georges Kesseler 7ae258042a font 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.
2012-02-21 01:51:04 +01:00
Georges Kesseler 33d0a26f89 working on new font layout 2012-02-21 01:47:31 +01:00
Georges Kesseler 96f7f81eb1 we can add an independant distorter on top of the parallax background 2012-02-21 01:40:04 +01:00
Georges Kesseler 734611f79d First 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.
2012-02-21 01:25:40 +01:00
Georges Kesseler ad0dcaa25e adding 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
2012-02-21 00:37:08 +01:00
Georges Kesseler 2d787af42d changed playfield dist color. something is not right, the font is still not there 2012-02-21 00:32:15 +01:00
Georges Kesseler b240884460 some work on the hardware bouncing. Happy to see a screen full
of crappy grafics distorting. Maybe I should sort out that font
issue...
2012-02-21 00:28:01 +01:00
Georges Kesseler b39a40fd86 some 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
2012-02-21 00:20:15 +01:00
Georges Kesseler c77dd58daf Well 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.
2012-02-20 01:41:17 +01:00
Georges Kesseler 00bda99890 Added 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.
2012-02-20 01:38:53 +01:00
Georges Kesseler 64d6fcafa6 Starting to introduce the playfield code. Those background bars will
soon explode. Using macros for this.
2012-02-20 01:35:31 +01:00
Georges Kesseler ed3924ea3d all overscan integrations done: replace color switches by resolution switches
More of the overscan is now showing.
2012-02-20 01:32:11 +01:00
Georges Kesseler b2a7549fbf moved includes into subdirectory
font has now nice vertical bars as background
20 copy routines integrated
2012-02-20 01:24:35 +01:00
Georges Kesseler f2459fb737 Temporarly 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.
2012-02-20 01:09:14 +01:00
Georges Kesseler 408425066d Bye 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.
2012-02-20 01:06:12 +01:00
Georges Kesseler 1f9c182296 Added comments which registers are free to facilitate integrating.
The light blue part indicates the time needed to copy the scroller
to the screen.
2012-02-20 00:53:57 +01:00
Georges Kesseler c0ae2f6775 Integrating 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.
2012-02-20 00:50:39 +01:00
Georges Kesseler a9916c6901 This 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?
2012-02-20 00:44:37 +01:00
Georges Kesseler efdca8522d Some 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...
2012-02-20 00:40:40 +01:00
Georges Kesseler c583453fcc As 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.
2012-02-20 00:39:32 +01:00
Georges Kesseler 95d5e0fd9e Now 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.
2012-02-19 23:15:53 +01:00
Georges Kesseler 6ac0bdbad9 Some more overscan integrating
ALso note the replacement of jsr/rts by jmp/bra for the copy routines
2012-02-19 23:09:28 +01:00
Georges Kesseler 7906f93d29 Finally 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.
2012-02-19 00:57:52 +01:00
Georges Kesseler ed0272cd3f place 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
2012-02-19 00:54:45 +01:00
Georges Kesseler fc68e5f82f little changes 2012-02-19 00:52:30 +01:00
Georges Kesseler 63d9ec0d8a Some code moving around. Not sure what this did, but the assembled result
has now vertical bars instead of scroll text. Hmm vertical bars... playfield.
2012-02-19 00:48:22 +01:00
Georges Kesseler 9a76b1d84d This 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.
2012-02-19 00:32:21 +01:00
Georges Kesseler 614af0fc1a the 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.
2012-02-19 00:25:44 +01:00
Georges Kesseler 51e8cb4095 jepp, thats a sort of lea storing directly the address 2012-02-19 00:17:50 +01:00
Georges Kesseler d00a60d356 26 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!
2012-02-19 00:13:24 +01:00
Georges Kesseler a3bb82c6fd parallax 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.
2012-02-19 00:12:11 +01:00