D-Bug & Automation Forum
Old/Deprecated stuff >> The 20 years STE anniversary demo >> Screens' Post mortem!

Message started by ggn on 27.11.09 at 16:55:18

Title: Re: Screens' Post mortem!
Post by Dbug on 01.12.09 at 21:45:01
Save The Earth: The Post-Mortem, as seen from a Perforce point of view.
Depvpac crashes, broken optimizations, bad ideas, refactoring, hope, tears, satisfaction, and exhaustion, all neatly packed in one boring list of changes.
Have fun reading !

#374 on 2009/04/05 17:45:22

     First commit for the new Ste Demo for the 20th anniversary.
     Code is copy-pasted from the Creators intro source.

#375 on 2009/04/05 20:12:56

     Reworked the STE/MegaSTE detection code; and removed the code path for non overscan routines :)

#376 on 2009/04/05 20:20:23

     Removed the rest of the interrupt based code, plus the entire secondary codepath for non ST machines.

#377 on 2009/04/05 22:00:31

     Added the cinemascope binary logo, plus removed some more cruft from the old code (ie: Simplified scroller)

#378 on 2009/04/05 23:58:41

     Cinemascope logo is displayed:
     - Too large
     - Fullscreen rout is not efficient
     - No black borders

#379 on 2009/04/07 19:09:08

     Removed all the scroller code, added a 416x200 picture representing a city skyline by night. It will have to be displayed in overscan, with a nice background gradient, some mirrored reflection, and some moving objects (planes, helicopters, boats, cars), plus some blinking lights).
     If the picture was larger, I could also scroll it, with some cinema like effect.

#380 on 2009/04/07 20:02:25

     Started to split the source code by moving macros and other utility things in a separate file.

#381 on 2009/04/07 20:16:00

     Some more system split

#382 on 2009/04/07 21:42:57

     The city is now displayed, the black borders are kind of stabilized (but the code is horrible), now need to display the background gradient for the sky.

#383 on 2009/04/08 13:31:58

     Some more code has been split. Things related to gradients and palettes have been moved to 'palette.s', the screen buffers allocation is now in 'system.s'.
     Source code starts to make more sense now that things have been cleaned up a bit :)

#384 on 2009/04/08 18:06:59

     Now the cityscape has a (not very nice) gradient generated from a new routine (heavy usage of muls/divs, could probably use fixed point increment, not sure about accuracy).
     Some more cleaning, even more stuff was removed :)

#385 on 2009/04/08 19:12:58

     Moved some code to a "blitting.s" file, the display of the cinema-scope and night-city pictures is now done with an extended version of 'drawbloc' routine.
     Still need to handle correctly the double buffering, should not be mandatory...

#386 on 2009/04/08 21:59:34

     Replaced the old "optimized" pause macro by a new one using a jump to a table of nops in order to reduce the memory footprint of the routine.
     The drawback is that the new code needs a valid stack pointer, but on STE with the blitter we can survive with the missing adress register.

#387 on 2009/04/09 15:07:29

     The fullscren routine is now displayed using the timer-a (launched from the VBL)

#388 on 2009/04/11 17:41:55

     Added a defence force logo... which is unfortunately too large.
     The 416x276 resolution is cropped on the left by steem :(

#389 on 2009/04/13 13:41:06

     Added some pseudo plasma code using blitter.
     Need colors now :)

#390 on 2009/04/19 19:21:15

     Something that looks like a (bloky) tunnel on screen, yeah !

#410 on 2009/05/01 18:23:42

     Split the code in many more modules, plus a specific one for the motherboard display animation (not yet coded)

#411 on 2009/05/01 21:31:34

     Some more code factoring (initialisation of timer based fullscreen)

#412 on 2009/05/01 23:25:12

     Some more code splitting

#413 on 2009/05/01 23:43:57

     Part of mobo are displayed, but apparently I have a bug in the code, things are not always displayed correctly

#414 on 2009/05/02 19:48:29

     Fixed an issue in EraseScreen (was using the current screen pointer and doing horible things with it)

#415 on 2009/05/02 21:29:33

     Managed to get the code for the motherboard scrolling working - modified the flipscreen routine to give an optional parameter disabling the actual flipping + added support for the vbaselo register on ste.

#416 on 2009/05/16 22:27:48

     Implemented hardware soft scroller - does not work nicely on the real machine...

#417 on 2009/05/17 17:08:04

     Fixed a problem with a missing texture for the tunnel effect, and a small comment fixed on the hardscroll setup

#422 on 2009/05/29 21:58:05

     Added a lot of "piracy is not a crime" files.

#425 on 2009/06/17 20:43:48

     Added a preliminary version of the credits using a font

#426 on 2009/06/17 20:45:43

     Forgot the font for the credits

#438 on 2009/06/30 22:01:03

     Added the first version of the tv snow effect.
     In the end version it will have to be in complete fullscreen (no 16/9) on that one, and with some white noise in the background.
     Will have to work on the code generator + sequencer before that, because it is starting to be a bit cumbersome to reuse the same routine for everything.

#439 on 2009/06/30 22:52:02

     Splitted the code base even more.

#441 on 2009/07/05 16:59:11

     The snow effect is working on ste, fails to work on the mste for some reason. Split the music part in a separate file, some fixes in the fullscreen code to avoid the color change.

#442 on 2009/07/05 18:00:37

     Implemented a very basic sequencer :)

#443 on 2009/07/05 18:22:08

     Improved the keyboard handling of the sequenced parts, also made sure that screen positions/offsets are correctly reset between parts.

#444 on 2009/07/05 19:08:28

     Moved a lot of code from effects to the main setup sequencer

#445 on 2009/07/05 22:01:30

     Removed some unused code
     Fixed the display code for the Defence-Force logo so it uses the same code as the Cinemascope one.
     Cleaned up a bit the logo itself.

#446 on 2009/07/06 22:12:08

     All the code now passes through the sequencer, with an Init, Play, and Terminate function. Does not much for the moment, but now the idea is to have the sequencer handle the keyboard for all the 'Play' parts.

#447 on 2009/07/06 23:35:19

     The sequencer is working, and handle the keyboard for all the parts. It is also possible to go backward and forward using the arrows keys, and space to quit.
     Note that the piracy part will have to be modified because it does not behave nicely when called multiple times (continues from where it was instead of reseting)

#451 on 2009/07/15 15:59:01

     Upgraded the data makefile to generate data compatible with PictConv 0.12, also added the missing pictures.

#453 on 2009/07/15 18:56:04

     Added the two pictures (panoramic office + insert disk on the atari), plus the ones changed due to the new pictconv generating slightly different palettes.

#454 on 2009/07/15 19:21:07

     Yeah, the insert floppy disk image is now displayed in it's total glory of 44 colors. Still some glitches on the display because I'm using move.l (an)+,(an)+, should use movem.l to change them faster.

#455 on 2009/07/15 19:42:03

     Glitches are gone, nothing like a cure of movem.l to solve all you small tight timings related issues.
     Found also that the motherboard part was not correctly initializing the type of overscan routine to call.
     Next step, the desktop panoramic picture ;)

#456 on 2009/07/15 23:03:58

     Improved a bit the color changes for the scrolling part, still a lot to go :-/

#459 on 2009/07/16 20:39:47

     Improved fullscreen routine that changes some values at the start and end of the scanline to spread over the glitches.

#460 on 2009/07/17 18:24:27

     Replaced the overscan code to support panoramic/overscan formats.
     Still need to implement the top border version of the timer.

#461 on 2009/07/18 10:24:10

     We have a working top-border for the snow effect, now need to extend the display to 276 lines - including bottom border switch.

#462 on 2009/07/18 13:02:44

     Nearly fullscreen tvsnow effect.
     Modified the code to be able to enable/disable the color changes visualizing the sync, but for some reason there are still some visible colors on the top of the fullscreen screen.

#463 on 2009/07/18 14:47:51

     Added basic support for the subtitles buffer, makes the tvsnow effect to be artifact free.
     The next step is to enable the bottom border in cinemascope modes.

#464 on 2009/07/18 17:19:56

     Finally working subtitles, but now need to change the font, because that one kind of sucks (too large, not "movie subs" enough)

#465 on 2009/07/18 19:03:45

     Added a 24x24 font based on the MS Trebuchet, should be used for sub-titles, will require proportional spacing, else it will look terrible :p

#466 on 2009/07/18 19:15:16

     Fixed bad naming convention (8.3 sucks) and forgoten files...
     The subtitle buffer is now in the subtitle.s file
     Sub buffer is correctly cleared before each effect, to avoid residus from previous effects.

#467 on 2009/07/18 20:28:24

     Trying to find out why I have horrible color changes in my between parts... which is kind of hard considering the violent audio aggression currently in place at the party place :D

#468 on 2009/07/18 21:12:13

     Added subtitles on every-part, for some reason devpac crashes if I enable everything at the same time.
     Looks like I reached some executable size limit :'(
     Anyway, everything is smooth and fancy!

#470 on 2009/07/18 21:52:56

     Fixed the "ping pong" code for the motherboard scroll.
     The whole demo seem to work on the real machine, except that for some reason the text of the subtitles is totally unreadable:
     - either I have bitplan shifting
     - or the fucking piece of garbage (Funai I hate you) striked again on the bottom lines.

#471 on 2009/07/18 22:24:55

     Split the DMA audio code from the PiracyScreen.

#472 on 2009/07/19 12:52:01

     Fixed a number of issues:
     - audio does not refer the adress of samples anymore (provided by the caller)
     - the motherboard scroller was not initializing everything correctly at startup (failing on multiple calls)
     - the subtitles for the piracy screen were not working (making the code to crash and burn)

#473 on 2009/08/09 00:21:58

     We have sprites !
     Ok, added a preliminary version of the Defence Force logo as drawn using sprites displayed using a blitter routine.
     Now I need to modify pictconv to be able to force some colors.

#475 on 2009/08/09 22:23:51

     Working blitter based sprite routine.
     Takes about 45 scanlines to display a 48x44 sprite, about 13 scanlines to restore the background, 18 to mask out the background, and 18 to OR the sprite data.
     Needs to do a lot of cleaning, and then figure out how to insert that in the fullscreen.
     Considering all the drawing is done in 4 bitplans, there is room for optimisation, note that by using 3 bitplans one could display some nice shadow effect by using two palettes of slightly different intensities.

#476 on 2009/08/10 22:06:39

     Managed to get the letters move from 0,0 to their final position, one by one, using some generic code and data definition tables.
     Now need to make sure they stay on the screen at the end of the display, and have a nice curve for their travel from the start position to the end one.

#477 on 2009/08/12 13:51:24

     Bezier code working entirelly in registers (data and address) is working, now need to link the points together to create a real curve.

#478 on 2009/08/12 19:02:36

     Managed to implement a nice soft curve using real time interpolation of curve parameters. Thanks wikipedia :p

#479 on 2009/08/12 20:31:45

     Managed to get the sprits embeded in the backbuffer cleanly, so we actually have now the logo forming letter by letter. Still have one frame flickering issue to solve, and have to add nice curves.

#480 on 2009/08/12 21:02:39

     Added a missing file (sprites), plus added code to compute bezier points

#481 on 2009/08/12 22:44:20

     Yeah, the Bezier curves is now working in real time :)

#482 on 2009/08/12 23:16:05

     The bezier interpolator is down to 28 instructions, unfortunately still 6 muls and 6 divs (that can be replaced by asr.l if one knows the size/speed/accuracy of the curve in advance)

#485 on 2009/08/15 00:41:10

     A routine to draw flat rectangles using the blitter, with generic parameter passing to define the bitplans to modify or not, and with which values.
     Should probably change x0,y0,x1,y1 to x,y,dx,dy, not sure how more readable the code would be.

#486 on 2009/08/15 21:31:35

     Implemented a DisplayList system to be able to change the screen adress for each line. May be a good idea to implement what Kåre did, by aligning the screen lines on multiple of 256 and then just change one byte to select a line instead of changing 4 bytes each time.
     Used it to display a blitter based rectangle using precomputed scanlines.

#487 on 2009/08/16 17:46:50

     Now have a working flat rotating polygon, which for some reasons seems to be turning somewhat out of its axis, but it is working anyway.

#488 on 2009/08/16 18:45:55

     Managed to divide by more than two the cpu time used to compute the rotating plan, still something wrong in the rotation, but well, will fix that some day.
     Now will try to change the color depending of the orientation :)

#489 on 2009/08/17 20:30:38

     Fixed the color fade problem (was a missusing of the ste/stf cluts), plus implemented a basic debug print system using macros displaying text in the lower border.
     Now should find out why the rotation is broken

#491 on 2009/08/29 19:40:14

     Finally implemented a decent keyboard manager, it is possible to test if a key is currently beeing pressed, has just been pressed, or has just been released.
     Also started the "out run with trucks" part, this one will require a vertical split, should be interesting...

#493 on 2009/08/30 17:54:06

     We have a outrun sequence mostly working.
     What remains to be done:
     - Have a nice gradient with more colors (using dithering + flickering should do it)
     - Display some mountain range in the background
     - Have the road turn
     - Display some cars or signalising elements

#494 on 2009/08/31 19:48:29

     Ok, a "nice" outrun with a truck and cool gradients for the road.
     Need something better for the background, like a Fuji mountain :)

#495 on 2009/09/03 11:37:47

     Some cleaning in the code, removed some useless defines and equates, and changed some compile order.
     Noted that there is a problem with red colors appearing in some effects or pictures, and corruption in the subtitle font. Looks like I broke something :S

#496 on 2009/09/03 17:49:42

     Rewrote the CreateBackgroundColor routine so it takes colors as parameters in data registers instead of pointers (more practical to use).
     Took the opportunity to optimize the routine further.
     Still some weird red pixels in the gradients Oo

#497 on 2009/09/03 21:38:17

     Found the damn palette bug, was caused by changing the order of inclusions, happens that the keyboard reading code was clearing 16 bytes too many, which happen to overwrite some bytes of the gradient computation table :-/

#498 on 2009/09/03 22:10:22

     Fixed some more issues, including a broken palette in the nightcity, and the need for actual two pointers for the ste conversion tables... yeah, painful.
     Now on the sad side of things, I apparently have some memory overwrite in the defence force logo, because after it got displayed the font for subtitles got corrupted.

#499 on 2009/09/04 17:32:06

     The subtitles are now correctly displayed using proportional size computed at runtime.
     All the remains is to do the same for the credits font, add the apostrophe character, and possibly handle correctly the kerning for some of the bad combinations.

#500 on 2009/09/08 20:23:57

     Managed to get the credits display use the same code as the subtitles, and found out that the space character had a nasty color issue :)

#501 on 2009/09/08 21:11:46

     Managed to get a temporary display effect for the scrolling, also modified the message in the subtitle part.
     Not unhappy of the result, even if it still require quite a lot of work.

#502 on 2009/09/09 22:22:33

     We have some zooming effect with a C2P routine.
     Now need to handle a more gracefull scaling effect, and the vertical scaling as well.

#503 on 2009/09/09 23:22:05

     Now with vertical zoom as well :)
     Remains to be done: centering the effect, make it faster, integrate nicely in the fullscreen

#504 on 2009/09/13 12:50:05

     Too many things in this commit:
     - New rescaling parameters to the cinemascope
     - Allocated 4 panoramic screen buffers by default, and changed the way the word alligned adress is computed in the defence force logo code.
     - Common bss data size optimisation (computes the largest necessary size of all demo parts and allocates that)
     - Changed the way the credits are displayed, but really need an actual scroll instead of just using the 4 screen lenght.

#505 on 2009/09/13 19:29:29

     Getting there:
     - Fixed some corruption due to the debug print macros not restoring correctly the font parameters
     - Changed the scroll routine to reuse the buffer (but still a glitch and a white line appearing when wrapping around the buffer size)

#506 on 2009/09/13 21:16:17

     The scrolling code is working!
     Was really a stupid bug... anyway, it is working, managed also to get adebug (reloaded 2.13) to working in place of monst, so everything is nice and cool :)

#507 on 2009/09/13 22:48:11

     Updated the credits list.
     Now ideally I should implement a "variable space" command for the scroller, one special escape byte followed by the number of pixels to skip.

#508 on 2009/09/14 00:11:54

     There is now a routine that can automatically split a text that does not fit in a given size. It will insert a cariage return where necessary to reduce the lenght. The routine also compute the number of 'variable spaces' to fill that later with some justification parameters.
     Also added three missing files from perforce... oops

#509 on 2009/09/14 21:27:55

     I now have a quite nice scrolling routine with centring, left and right allignment, seems to work nicelly even on reasonably long texts, so that's kind of cool.

#511 on 2009/09/15 22:35:34

     We now have a compressed "Insert Disk" image, 9020 bytes instead of 48000.
     Could not use directly Ray's compressor, so had to write my own. *Sigh*, at least FilePack packs better than both his LZ77 and LZ78 packers.

#512 on 2009/09/15 23:05:12

     And two more compressed pictures:
     - Ste Motherboard, 214576 -> 72883
     - Desktop office, 89600 -> 42552
     Next step, Piracy pictures.

#513 on 2009/09/16 20:59:28

     Packe all the pictures of the "piracy it's a crime" sequence.
     Packing ratio is not that impressive, but it could have been worse :)

#514 on 2009/09/16 21:30:54

     Most of "piracy" pictures are now packed, will have to:
     - optimize the depack buffers
     - optimize the depacker (3 seconds to depack, that's way too long)

#515 on 2009/09/16 22:06:26

     Did a micro-optimisation of the depacking code, gone from $81 to $7f VBLs to depack (that's 2.54 seconds).
     Next step is to unroll the copy loop

#516 on 2009/09/16 22:35:30

     Unrolled the copy loop, down from $7f to $70 vbls (2.24 seconds)

#517 on 2009/09/16 23:07:21

     From 1965206 to 1944872 bytes used
     From 1638 to 1296 ko on disk.
     Still quite a lot of work to do :p

#518 on 2009/09/17 21:26:07

     Continuying with the quest for memory reduction by packing more files. Also using the Listing functionallity ot Devpac to get a dump of symbols.

#519 on 2009/09/17 21:52:37

     All the fonts are now decompressed, same thing for the "copy this demo" and "night city" pictures.
     Total size: 1927868, on disk 1199k

#522 on 2009/09/19 20:01:27

     The CopyTrack.wav has finally been reduced in size using delta compression. This gives a 50% ratio, so we are down from 580550 to 290276, not awesome, but as a result the executable is now 914 k !

#523 on 2009/09/20 17:52:58

     Fixed a bug in the delta depacker (was depacking twice as much data), and implemented the first code generator for the tvsnow effect fullscreen based on a serie of templates.
     Interesting to see that the assembly time reduced from 111 to 86 seconds by not having to do REPT/ENDR !

#524 on 2009/09/20 18:14:33

     One more full routine converted to template (the panoramic one, without color changes).

#525 on 2009/09/20 18:32:49

     Converted another fullscreen routine (Panoramic with full palette change), complete demo now takes 857k on disk, and assembles in 63 seconds (started at 111 seconds with the REPT/ENDR), still some more to go.

#526 on 2009/09/20 19:22:10

     And one more, converted the single background color change routine used in mobo/nightcity. We are down to 839k on disk, and 43.5" of assembly time... and it now fits on a floppy when packed with UPX (down to 720k :D)

#527 on 2009/09/20 19:39:08

     The final fullscreen routine has been converted from REPT/ENDR to generated code, we are down to 24" assembling time.

#528 on 2009/09/24 22:18:34

     New batch of pictures re-exported with the new pictconv that handles correctly the "locked "colors... but unfortunately fails to match the rest of colors properly. Will have to fix that.
     Anyway, got the "binary clock" code to work, the scrolling picture has nice desk/atari drawing (no more wild color changes).

#530 on 2009/09/26 00:27:07

     Got a switch with blinking lights, and a nice gradient in the background.
     Would be cool to have a parallax effect... both for the buildings in the background, and for the shape of the guy in front.
     And perhaps some blinking logos or something.
     Oh, and need to animate the Atari screen as well.

#531 on 2009/09/26 13:41:41

     I now have some 'demo effect' on the screen of the Atari. Some slow scrolling background rasters, and some bouncing ones on top.
     Now I need to add a scroll text, using the 8x8 font :)

#532 on 2009/09/26 21:07:24

     The office part is a lot better now:
     - Nice new color for the leds on the switch
     - A full demo effect with rasters and scroll text on the atari monitor
     - The floppy led is blinking
     - Improved somewhat the picture by doing some manual color reduction in order to help PictConv

#533 on 2009/09/26 23:16:29

     The "insert disk" floppy is now before the office screen.

#534 on 2009/09/27 22:21:57

     Now the cinemascope logo is actually zooming, that's nice.
     But need more steps, like twice as many, because it is a bit too choppy and fast.

#535 on 2009/09/27 23:30:03

     The zoomer now uses dynamically allocated memory - ie: computes with macros how much memory should be used for the big final buffer.
     Still wobly, guess I need to have ani additional table for blocks offsets, because the fix offset obviously propagates the error in a very noticable way :S

#536 on 2009/10/01 21:18:57

     Added the music for the effect

#537 on 2009/10/04 00:50:56

     The audio delta depacker is now slightly faster (but not good enough unfortunately), used it for the "boot disk" sound on the insert disk part, plus added an audio sequencer (I need to add a way to trigger callbacks for the user to do things).
     Also added a music (Renegade, by David Whittaker) during the desk office phase (should be started at the end of the loading on the previous sequence).
     The floppy disk LED also blinks during the loading.
     Still need to "insert" the disk.

#538 on 2009/10/04 15:08:54

     Fixed a number of issues:
     - Clearly distinguished between the display stride, and the blitting stride
     - New sequencer commands for the audio (can be used to temporize and run callbacks)
     - Insert disk screen now starts the music after the fake loading, and subtitles indicates what happens
     - Lot of fixes here and there :)

#539 on 2009/10/04 17:24:58

     Added the support for the LMC1992/Microwire, but of course none of the emulators supports that correctly, so I will push back the implementation and testing for later.
     At least I managed to implement the LED blinking correctly. It starts off, then lights during the loading, off during the depacking, and blinks madly during the music replay.

#540 on 2009/10/04 19:29:09

     The floppy now cleanly got inserted inside the floppy drive, and the eject button pops out.
     Still need an insert "schlock" sound, but that should do it for the moment :)

#541 on 2009/10/04 20:56:23

     Fixed issues with the lower border (tested on the real ste), was due to the adress change being done too late. By moving the black color change in the free nops in the border change, fixed the problem.

#542 on 2009/10/04 23:23:14

     Reimplemented the tvsnow effect using purely procedural code (noise generator + 2x2 blur + horizontal blur + chunky to plannar)
     Still some optimization to do, because it is not as fast as it could be. (The 2x2 blur could be way faster, by accessing less often the memory)

#543 on 2009/10/05 20:35:06

     Optimised the snow generator.

#544 on 2009/10/05 20:43:16

     Optimized the white noise generation by unrolling the loop

#545 on 2009/10/05 22:44:55

     Added a pre-sequence for letting people press a key to start the demo after a long floppy loading.
     Optimized the erasing routine !

#546 on 2009/10/05 22:55:48

     Replaced some more dedicated erasing loops by a calls to the optimized one.

#549 on 2009/10/06 20:59:29

     Added the ste side picture (resolution 416x100) to the demo.
     Need to add the code now.

#550 on 2009/10/06 21:12:01

     Fixed a stupid bug...

#551 on 2009/10/07 19:23:12

     Work in progress with the ste case scrolling sideways on top of the motherboard hardware scrolling using the 4 bytes full pixel adress trick :)
     Next step, add the palette pointer to the fast display list.

#552 on 2009/10/07 20:25:08

     Added support for full copper change, with both adress and palette (note: The first palette is not correct, have to change that)

#553 on 2009/10/07 22:08:53

     Now both the "ste motherboard" and the "side ste case" are displayed using multi-palette mode, the background rasters are back there as well.
     Demo now takes 2138864 bytes, 795k on disk, and 687k with UPX.
     Not sure for the memory usage, but for the disk we are good to go :)

#554 on 2009/10/08 22:06:29

     Added the chatroom picture.
     Not final, still a very first mockup, but it is getting there :)

#555 on 2009/10/08 23:02:20

     The IRC chatroom is now in the demo.
     Just need to make it work :)

#556 on 2009/10/10 15:39:05

     Added an improved version of the chatroom picture.
     Also reworked the BSS usage so no screen buffer is allocated by default, which made the final memory usage at this point to be 1985676 bytes, 808kb on disk, and 698kb packed with UPX :)
     So far so good.
     Please note, cinemascop, truckfrt and dfncfrce are still not compressed. But it still misses graphic data for the side truck, forklift and boxes.
     Will they fit ?

#557 on 2009/10/10 16:52:39

     Cinemascope logo is now packed.
     New size: 1973254/796/699

#558 on 2009/10/10 17:05:06

     The front facing truck picture is now compressed.
     Memory status: 1966130/789/699

#559 on 2009/10/10 17:57:28

     Reduced a bit the memory consumption.
     Found out also:
     - DefenceForce logo and sprites are both in memory, and not compressed
     - Need to get rid of A7 in the fullscreen so I can call the standard jsr based pause macro. This can be solved by reusing the adress/shift trick to get one more free register.

#560 on 2009/10/10 19:35:24

     Some more optimization in the fullscreen department, will try later to merge some of the displaylist code. Also need to simplify the polygon rotation code.
     Current memory status: 1936856/785/695

#561 on 2009/10/10 20:20:35

     Replaced all the possible JSR by BSR, not a problem now that the whole TEXT section is less than 32k.
     Memory usage: 1936448/784/696

#562 on 2009/10/10 20:34:58

     Even less memory used for the fullscreen generation.
     Net benefit is not as huge as expected, but I guess it is not that bad. Now I wish I could find which part uses the most bss !

#564 on 2009/10/11 11:52:26

     The 6x6 font is finally displayed correctly.
     Now the problem is that doing this display properly (pixel accurate placement and proportional handling) is going to be better with the generic routine, so I will reformat the picture to be on 16 bits entries... damned

#565 on 2009/10/11 14:02:18

     Improved the handling of text by passing a description bloc instead of a bunch of register values.
     6x6 font is now displayed correctly, but need to display it using some standard text routine now.

#566 on 2009/10/11 15:40:01

     Added the notion of "depack block" to clean up the source code a bit. Everything seems to be working fine, except for the 8x8 system font which happens to be totally broken.

#567 on 2009/10/11 16:29:32

     Found out that the 8x8 font was broken due to devpac aligning automatically the incbins, but unfortunately the label was not.

#568 on 2009/10/11 18:14:20

     Most of the crap text display code is gone.
     Added support for pixel accurate separation between characters; and the parameters like the width of the bitmap, size of space, etc... are all in the description bloc.
     As a result the small font is now correctly displayed using the generic routine :)

#569 on 2009/10/11 22:26:58

     Got a primitive chat window working.
     Still need to:
     - display the time stamp
     - the nickname
     - the 'real typing' effect
     - change the colors accordingly to who is typing

#570 on 2009/10/11 22:41:47

     Tweaked the 6x6 font so things look better.

#571 on 2009/10/11 23:33:33

     Extended the 6x6 font with the standard Atari characters (Fuji, arrows, bob, etc...)
     The chat now display the time stamps (had to reorganize the time management by moving part of the code to the System file).

#572 on 2009/10/12 23:23:10

     Lot of work done on the chatroom:
     - Changed the colors used for the realtime clock, now uses the two first colors (easier to patch/update)
     - Added some cool stupid random chat
     - Colors are now dependent of the nickname
     - Nicknames are displayed right alligned

#573 on 2009/10/13 21:58:41

     The segment based display of time is now working fine :)
     Will need to cleanup and optimize a bit, but at least it is working.

#574 on 2009/10/14 23:30:42

     The text box now correctly enter the text, with some random delay to make it more realistic.
     Now need to play some samples :)

#575 on 2009/10/15 23:19:39

     We have the keyclicks sounds.
     Also found out why the "copy" soundtrack was corrupted, I actually copy-pasted wrong code which was not depacking the correct amount of data.
     So anyway, 8 different click sounds, for a total of 4769 bytes packed, I can probably reduce by cleaning the sample anyway, there is some tweeting sounds here and there.
     Current memory usage: 1947452/789/694
     Not bad :)

#576 on 2009/10/17 12:24:01

     The tvsnow buffer is now being reused as 'static' noise, works great.
     Also modified the Audio replay so it returns the number of frames the sample will be played, for synchronization purpose.

#577 on 2009/10/17 17:38:23

     A bit too many changes in the same changelist, some non finished, this is bad:
     - extracted the sequencer part from audio.s to sequence.s
     - added a vbl callback for the parts
     - changed the implementation of the subtitle display (direct text instead of pointer)
     - started to reimplement the 'piracy' sequence with the generic sequencer instead of specialized one

#578 on 2009/10/17 18:43:09

     The Piracy part now entirelly uses the common sequencer, fixed some style issues and non compliant names. Working fine except the timings are all wrong, have to fix that.

#579 on 2009/10/17 20:33:41

     Fixed (improved?) some of the pictures

#580 on 2009/10/18 00:02:50

     Cleaned-up the fullscreen generator, and added a moon picture.
     Now need to replace the static nightcity picture by a scrolling one from the moon to the city, and some moving reflection with secondary blueish palette

#581 on 2009/10/18 10:25:29

     The sign correction for the samples is now done in the depacking routine itself at no cost, so I was able to remove the SampleChangeSign routine from audio.s
     This means that at some point I can start to depack per block instead of depacking everything upfront.

#582 on 2009/10/18 14:00:29

     Replaced most "incbin" by a FILE macro that correctly handles allignment and label adresses.
     Should solve the random bugs due to FilePack suddendly generating an odd long file :p

#583 on 2009/10/18 15:10:34

     New command in the sequencer to go to the next part.
     The nightcity sequence is also updated with a clean background, the moon, the rasters.
     All that remains to do is the mirroring of the city in the water.

#584 on 2009/10/18 15:28:03

     Removed one of the now unused fullscreen templates.
     Added a transition to next part on the piracy screen.

#585 on 2009/10/18 20:08:26

     We now have boxes that can beat your boxes.

#586 on 2009/10/20 23:27:29

     We are getting there.
     Need to optimize seriously the way I update the display lists, because it is not as fast is one may have wanted.
     Also need to solve the glitches.

#587 on 2009/10/21 20:10:41

     Fixed more of less the issue with the motherboard scrolling, had to remove the rasters, because well, they did not really work anymore.
     Memory: 1947110/789/690

#589 on 2009/10/21 21:38:12

     Updated stats

#590 on 2009/10/21 22:15:03

     Fixed the credits texts.
     Changed the background color of the motherboard

#591 on 2009/10/21 23:12:20

     Added new sequencer commands to set byte/word/long values (removed the set flag one), and fixed the code.
     Started to implement sequencing for the rotating defence force logo as well, but seems that the sprite sequence itself is fucked up *sigh* possibly a misconfigurated screen display.

#592 on 2009/10/24 13:05:52

     Replaced most of the 16 colors pictures for piracy by display list based multi-color pictures.
     Took the opportunity to clean up the DisplayList setup as well.
     Has to replace the display code by real effects for shaking and rewinding.

#593 on 2009/10/24 17:13:34

     Merged even more palette/display list code.
     Now have to find why I have some purple color between some of the effects.

#594 on 2009/10/25 20:16:26

     The "would you" parts are working again, had to use a small table to handle the adress computation more efficiently, but now have to replace in the rest of the code.

#595 on 2009/10/25 21:21:49

     No much changes.
     Now need to get the rotation transition to work between cinemascope and defence force logo.

#596 on 2009/10/25 21:50:28

     Removed one of the redudant fullscreen routines, cinemascope and defence force logo are now using the standard display list routine

#597 on 2009/10/25 22:11:24

     Added the sequencer to the cinemascope sequence

#599 on 2009/10/26 21:23:44

     Renamed some of the blitter functions to be consistant in the naming, finally replaced my old defines with french comments by decent ones in english using a structure definition, repaired the sprites display as well.
     Problem: Bezier + big sprites = kaboom.
     I should now try the sprites from crem

#600 on 2009/10/26 22:44:56

     Replaced the sprites by the new ones, does not look too bad; but still work to do. Oh, and the erasing is not done at the correct location :-/

#603 on 2009/10/27 21:58:09

     Fixed the bugs in the sprite display, replaced the complicated logic by a state machine, so much simpler, works better, faster as well.
     Wish I had done that before :-/
     Memory status: 1999830/789/716

#604 on 2009/10/28 00:40:06

     The city is finally reflected and ripples as well.
     Now I need to #the palette to have something darker and blueish as well.

#605 on 2009/10/28 21:57:17

     Did an optimisation pass on the code, added all these missing 's' and 'q' all over the place :)

#606 on 2009/10/28 22:22:46

     The "Any" in the Press Any Key is now working.
     Made the keyboard handler replacable, so in practice the loading done part just overides that and restores it after.

#607 on 2009/10/28 22:35:41

     Renamed some stuff to get consistant in the naming conventions, moved the grey palette from the snow to the palette file.
     Found out that enabling the insertdisk part actually is responsible for the black line in the rasters in the next part Oo

#608 on 2009/10/28 23:11:34

     Replaced the fullscreen routine in the insertdisk part by the displaylist based one.

#609 on 2009/10/29 20:40:21

     Replaced the fullscreen routine of the credits by the display list one.

#610 on 2009/10/29 20:52:47

     The chatroom is now using the displaylist routine as well.

#611 on 2009/10/29 21:37:08

     Outrun was converted to use the display list routine.
     Remains only one, the Office, still using the old one.
     Found out that the InsertDisk is the routine that corrupts data (responsible for both the black line in rasters and the purple palette corruption)

#612 on 2009/10/29 21:56:12

     Finally replaced the last part to use the display lists...
     Need to find why the InsertDisk part corrupts data, probably something stupid.

#613 on 2009/10/29 22:12:57

     Fixed the purple issue (was due to the IRQ callback still being called).
     Still have corruption on the gradient on the atari.

#614 on 2009/10/29 22:39:22

     Version as sent to XiA today.
     The end credits now exit cleanly at the end of the text.

#615 on 2009/10/31 18:02:17

     Removed some more unused stuff (rests from old test routines), changed the order of parts (different story, but more coherent and dynamic), modified the texts accordingly.
     Memory report: 1911310/786/716

#616 on 2009/11/01 17:08:09

     Did some cleanup in the setup of the overscan routine.
     Be carefully with optimizing the seting of the timer A, it breaks the top border...

#617 on 2009/11/01 18:07:51

     Did a lot of cleanup in the setup of overscan, now one call and it is done correctly.
     Also reduced the size taken by the subtitles font, both on disk and in memory.
     Thanks to GGN for signaling --ultra-brute flag on UPX, improved significantly the packing efficiency.
     Memory status: 1892460/784/710

#618 on 2009/11/01 18:16:11

     Removed unused parts on the OCR font, even more free memory:

#619 on 2009/11/01 18:35:25

     Reduced the size taken by the 8x8 font, moved the gradient buffer to the only part using it (office).

#620 on 2009/11/01 19:33:42

     Just updated the size of each part.

#621 on 2009/11/01 23:03:48

     The piracy pictures are not displayed as a font.
     Some glitches when changing the pictures, but it takes a lot less room:

#622 on 2009/11/02 20:10:04

     Fixed the display of texts in the piracy part.
     The glitch was due to the blitter call fucking up the vbl.

#623 on 2009/11/02 22:38:47

     Some more changes in the piracy section, now with a distortion plus interlacing effect.

#624 on 2009/11/03 23:06:05

     Added a new effect with the 5 pictures interleaved.

#625 on 2009/11/05 21:16:20

     Integrated XiA code in the intro.
     Managed to seriously optimize it (even if it was pointless, not like a scanline of difference changes anything)

#626 on 2009/11/08 14:13:30

     Fixed the fade-out of the snow effect.

#627 on 2009/11/08 18:27:58

     Sequenced the office sequence, fixed the problem with the background color (for some reason was apparently the evaluation of macros in devpac depending of what else has happened before :'( )
     Memory status: 1719292/722/638

#628 on 2009/11/08 18:56:17

     Tried to optimize a bit the desktop sequence, for some reason the vbl code is not very nice when interacting with the sequencer.
     Obvious fix would be to have the sequencer handle the 'play' routine itself during the vbl waits.

#629 on 2009/11/08 22:30:11

     Added a new "squish" effect on the Cinemascope logo, that uses the precalc table of scanlines, which hopefully will be usable by the rotation one.
     Will have to solve the issue of glitches in the office section (moving all the code in the vbl handler was a bad idea)

#630 on 2009/11/14 15:00:15

     Added some effects on the defence force logo, some glitches when fading, but otherwise kind of ok.
     Memory status: 1772528/725/638

#631 on 2009/11/14 16:20:31

     The sprites are now compressed.

#632 on 2009/11/14 18:16:42

     The missing truck picture is there:

#633 on 2009/11/15 18:16:13

     New sequencing of XiA music with synchronized effects.
     The effect-sequencer is now cleanly integrated in the main part sequencer.
     Music player with the new music from XiA is there as well, but using the music makes most effect to crash due to the VBL being too long - have to fix that.
     Memory status: 1792062/737/654

#634 on 2009/11/15 21:38:17

     Trying to crunch cpu time usage to get the music play well with the rest of the demo.
     Managed to get it to work, but then the effects are not displayed when texts are shown... kind of suck.

#635 on 2009/11/15 23:56:36

     Still optimizing... *sigh*

#636 on 2009/11/16 12:34:27

     Some more tweaks.
     At this points problems are:
     - sprites flickering
     - scrolltext font broken
     - fadepalette killed by the music

#637 on 2009/11/16 13:30:56

     Managed to fix most of the bugs, now what remains is text tweaking, and a final big atari logo.
     Memory status: 1816718/761/659

#638 on 2009/11/16 15:12:16

     Number of small tweaks, text duration, message changes, etc...
     Unfortunately the scroller font corruption is back.

#639 on 2009/11/16 17:39:58

     Fixed the scroller glitch, and adapted timings in the intro sequence so the texts are readable.
     New picture with Al Gore movie instead of horror movie.

#640 on 2009/11/16 18:49:35

     The TVSnow sound is now less violent.
     Nice picture for the "copy it"

#641 on 2009/11/16 23:06:21

     Some more stuff:
     - Changed the "copy this demo" to an ecological themed picture
     - Added an end picture with an Atari logo
     - Fixed glitches in the sprites

#642 on 2009/11/17 00:30:50

     Added the "wobbling" on the atari building sequence.

#643 on 2009/11/17 13:08:40

     Some timing tweaks, changed the atari end picture a bit, added flickering lights on the real floppy drive, and faded out the audio as well.

#644 on 2009/11/17 13:22:26

     Added a missing fade to white in the defence force logo sequence, fixed the audio glitch in the piracy end picture.

#645 on 2009/11/17 16:33:13

     Some more tweaks:
     - Removed the final text in the office sequence, so the next music starts at the right moment
     - Improved the transition from rotating plane to defence force logo

#646 on 2009/11/17 21:58:47

     Changed XiA's name in the credits, and worked on two pictures to remove palette #artefacts.

#647 on 2009/11/17 22:13:14

     Nothing special

#648 on 2009/11/18 21:33:05

     Found the white glitch bug, was just a missing nop :'(

#649 on 2009/11/18 22:37:12

     Version 1.0 of the demo!
     Sent to Evl, PRG is 672k, could have been smaller but I'm tired and want to be done with it.

#650 on 2009/11/20 00:46:59

     Did some cleanup, removed commented out lines and sequencer tweaks, but also changed the end effect, and added few names in the greetings.

#651 on 2009/11/20 12:16:27

     Some more cleaning, plus:
     - added the missing scanlines on the snow effect
     - removed the stabilizer from the fullscreen as well
     - removed some more commented out lines
     - fixed a small problem in the audio sequencer

D-Bug & Automation Forum » Powered by YaBB 2.6.0!
YaBB Forum Software © 2000-2020. All Rights Reserved.