DEATHSHADOW'S
MADNESS
Madness and You, Perfect together!

  1. Top of Page
  2. Main Menu
  3. Page Content
  4. Page Extras
  5. Bottom of Page

Revisions

9 November 2011
Revision 1.6
( Public )
  1. Added MT32/GM/Midi support

    Requires the MIDI device to have a 24 step pitch bend range or allow setting via RPN -- Which "Microsoft GS Wavetable" does not... This is still in the early development stages and doesn't sound all that great yet -- but it shows promise.
  2. Better EGA and VGA support

    • VGA now uses BIOS scanline set, works properly on pretty much everything!
    • EGA sets misc register properly
  3. "infinite fruit" bugfix

    Added counter of how many have been shown
  4. Fixed AI bugs

    • random for ghost turn was ignored
    • random for ignore chase was always taken
    • death during final 'chase' resumed as 'always scatter' instead of a 250 iteration scatter followed by resuming the chase. Fixing this bug revealed the Final Chase Update Bug.
    *** NOTE *** AI bug fixes may have increased difficulty
  5. Final Chase Update Bug

    Fixed behavior update procedure being called every timer tick once the 'final chase' was reached. This got rid of late game 'slowdowns' on slower systems
  6. Improved sound on/off handling

    Can now turn sound off mid-theme and during longer sfx
  7. Better dividing of tasks between audio timer ticks

    Should lower CPU speed requirements even further
  8. Removed many FOR, WHILE and REPEAT for recursive object calls

    Speedup, lower memory use and simpler logic flow
  9. Rewrote many library functions in ASM

    speedup, smaller exe size
  10. Stopped passing sprite pointer on every call

    • now handled by global pointer "tileSource"
    • speedup, less stack use
  11. New Joystick Handler

    faster, reads both axis at same time
  12. Replaced write/writeln with custom handler

    reduced total code size 5%, who knew WRITE was inefficient?
  13. Smaller/simpler graphics 'outtext' routines

    • removed all the custom number outputs
    • allows wider use of background erase or transparent
  14. Rewrote 'circling' pixels on menu page

    Faster, lower memory use, prevents really slow 8088's from bogging down
  15. Renamed many procedures and variables

    Code cleanup, make it easier to find things
  16. Renamed all data files to .DAT (no more .FNT or .TDT)

    Actually allowed a bit of code reduction, and it's easier to keep track of when copying files to build the distro.
  17. Moved music config info into external .DAT files

    Lowers heap/stack/code size, makes customization easier
    • PAT_MT32.DAT, PAT_GM.DAT, PAT_CUST.DAT
      Patch files for MT32, General Midi or Custom (see custMidi.txt)
    • PAT_ADLB.DAT
      Instrument Data for Adlib
  18. Revised CMS/Game Blaster code

    I was using word width port outputs for register/data pairing, and not sending the chip enable on every tone change -- both of which appear to make said sound card not work on AT or higher systems, or with the Soundblaster 1.5. (Worked fine on my XT testbed with a SB 1.0). Hopefully this change will get it working for those of you reporting problems with the SoundBlaster 1.5's CMS chips or on AT/higher systems.
  19. Distribution built with stack checking off

    reduced exe size, faster execution. My stack is fine, don't need the compiler second guessing me.
  20. Abandoned PC/JR and Tandy specific video code

    Due to bugfixes and better understanding of the CGA implementation on both platforms, the code to try and use the 160x200 video mode is no longer required.

Amazingly even with all the changes, rewrites and inclusion of new features... the executable dropped 1k in size and uses less memory in a less aggressive fashion. Though the stack does get a bit of a workout...

21 March 2011
Revision 1.5
( public )
  1. Faster blitting routines for backbuffer thanks to code discussion at Oldskooler Ramblings
  2. More PcJr. Fixes (I hope!)
20 March 2011
Revision 1.5 Beta
( private )
  1. Code Cleanup from revisioning system screwup complete
  2. Testing new Jr. Textmode code
  3. Tandy/Jr specific version included in source tree
  4. Testing machine language optimizations for sprite blits

Version 1.4 was a train wreck -- I was using CVS on the code tree since version 1.2, and when I built 1.4 it had code regressions across the entire beast to problems I've not seen since the 0.89 alpha... So I've scrapped that nonsense and will just go back to doing it by hand as I pretty much had to brute force recode to clean up that mess anyways. Particularly annoying was large sections of code reverting back to their 1.1 and 1.2 incarnations.

Ended up like every time I'm forced into using extra 'tools' for HTML/CSS/PHP -- it's ALWAYS a broken buggy disaster; how do people even use this ****? I swear, I've not had problems that bad with code since I was forced into working with Dreamweaver, Jquery AND some rubbish CSS framework -- all three of which just result in disasters.

"Programmers Tools" -- I swear the only thing about these things that can be called professional grade tools are the people promoting their use.

5 March 2011
Revision 1.4
( Public )
  1. Minor code improvements to better handle 4.77mhz systems
  2. Joystick reads spread out across task slicing to prevent slowdowns and handle how certain systems do not properly 222discharge the capacitors if they are at less than full charge. (Like PCJr, SB2.0) without causing some systems to hang completely (original PC game adapter, tandy 1000) while not introducing any extra 'delays'.
  3. Fixed PC Jr. blink/intensity not being set right -- FINALLY
13 February 2011
Revision 1.3
( Public )
  1. Added Joystick Support
  2. Tracking of five most recent high scores
  3. Saving of high scores to disk
  4. New font renderer uses less memory and sped up menu.
  5. Fixed bug with MCGA detecting as VGA
  6. Fixed audio 'buzz' on PS/2 speakers
  7. Memory footprint down to 67k
10 February 2011
Revision 1.2
( Public )

Two days after the initial 1.0 release, and I'm already up to Rev 1.2. I've upped it to that number because I've rewritten the entire sprite engine from scratch. This has increased the memory footprint of the game to a "whopping" 70k, but by allocating an extra 16k to make two back-buffers I've completely eliminated flicker on 4.77mhz machines (though true CGA cards WILL have snow, not a lot I can do about that!). The speedup and improvement to how it's drawn was so good, I removed the speed test AND the /vsync option completely!

This technique should have occurred to me sooner, but I was so obsessed with not using memory. Even at 70k a machine with only 128k of RAM should be fine, even under DOS 3.

9 February 2011
Revision 1.1 Alpha
( Private )
Minor improvements to the renderer
8 February 2011
Revision 1.01
( Public )
Fixed bug with level up voice sticking between levels
4 February 2011
Revision 1.0 ( Public )
Initial Release
  1. Top of Page
  2. Main Menu
  3. Page Content
  4. Page Extras
  5. Bottom of Page