Recent Changes
Here is a summary of the changes in the most recent released versions of the code.
Note these lists are not inclusive but highlight the major differences.
Version 0.17
- As always, removed lots of code that isn't needed anymore.
- Added a generic attract mode that all games can use.
- Improved switch debouncing. Every switch can now have its own prebounce (time it must remain
closed before it will be considered) and postbounce (time after closure that it is ignored).
- Fixed a few ball tracking bugs that could cause balls to get permanently stuck.
- Font character display is much faster than before (rewritten in assembly language)
- Lookaside DMD page support added for caching.
- Text shadowing is now possible when writing text on top of a complex background.
- The match algorithm actually works now.
- The PIC programming to unlock the switch matrix works correctly.
- Tilt warnings were not coded correctly.
- Some new fonts included.
- Native emulation now simulates time better.
- Bit manipulation macros were horribly broken in 0.16, and are now fixed.
- Fixed really bad bugs in flipper handling on WPC-95.
- Low-priority system housekeeping is now done on a more regular schedule.
- Lamps that are used for multiple purposes are now redrawn occasionally, as game state changes.
- Rewrote most of the lamp effect management. It is much simpler now.
- The TZ "starfield effect" has been rewritten and looks much better :-)
- Interrupt-level no longer tries to update a solenoid that isn't defined by the machine (i.e. it's unused).
- TZ's hardware clock is now managed more efficiently and is more accurate than before.
- Added "tracer" script that parses PinMAME trace output, for calculating cycle counts of function calls.
Version 0.16
- Much improved PIC support for WPC-S and WPC-95 games.
- Much improved native mode emulation of the WPC hardware.
- Retested AFM, WCS, and Terminator 2 more thoroughly than previous release.
- Define more lamps and switches for AFM and WCS.
- Fixed WPC-95 flipper output polarity.
- Removed older support for compiling in XBMs directly. Use the FIF format instead.
- Retime IRQ-level functions, optimizing a few of them and feeding the profiling
data into the scheduler to spread them evenly. Added a "tracer" script that
parses PinMAME trace files and presents human-readable reports from it.
- Fixed a couple of problems where interrupts were disabled for a really long
time.
- Fixed bug where lamps didn't briefly flicker properly on corresponding switch
hit.
- Fixed several bugs relating to ball device kicking that could cause lockups.
- Replay value displayed more reliably.
- Internally rearranged a lot of code to avoid running out of ROM space.
- Cleaned up the build system, removing many older constructs and making it more
modular.
- Removed support for the old user.make file; now a .config file is required.
Version 0.15
- GCC 4.2 is now the default compiler.
- Many test mode additions
- Performance enhancements to switch scanning and solenoid update
- Solenoid update is also more real-time than before
- Ball save logic is now much better.
- Dynamic memory allocation is stable.
- TZ autofire, gumball logic deals with errors better
- Core logic updated to work on non-Fliptronic games
- Lampset code is more streamlined
- More optimized font rendering
- Stack overflows less likely, and are caught better than before
- Improved ball search timing
- 'Native' build now using ncurses to show state
- Native build can save to protected memory using a backing file
- Added better graphics support, will begin migrating more code to use it
- Cleaner makefile
Version 0.14
- Better support for GCC 4.x, although GCC 3.4.6 is still recommended by default.
- A working malloc() function for dynamic memory needs.
- Rewrite of display effect module to use dynamic memory for each effect
- Deff retries and aborts
- Many, many test mode improvements
- Match algorithm added
- Static scheduler
- Improved right ramp and mini-playfield handling on TZ.
- Better ball tracking, ball searching, empty balls test, etc.
- DMD/Fliptronic specific codes are more isolated
- Amode starts much sooner during reset
- Smarter bit macros
Version 0.13
- Improved score rendering for multiplayer games
- More adjustments and audits implemented
- Improved font test
- Misc. performance enhancements
- ROM and RAM test at startup
- General illumination brightness control
- Better music effect control
- Better compressed image drawing
- Fixed some bugs with paging that caused system crashes
- Deleted LOTS of old code no longer needed
- Added some multiball modes to TZ
- Many improvements in common code for coins, tilts, autolaunchers, etc.
Copyright © 2007, 2008 by Brian Dominy.