Skip to content
Commits on Nov 25, 2011
  1. High score initials were not being set right if nothing entered.

    If a timeout occurred during entry, the default characters were
    being set to zero (null) instead of a space.  If the first
    character was corrupted this way, it would confuse the code into
    thinking that player 1's score qualified for ALL the spots in the
    table at once.
    (cherry picked from commit b59ee36)
    committed Nov 23, 2011
  2. Fix GI dimming outside of lamp effects; it was totally broken.

    (cherry picked from commit 9714eff)
    committed Nov 15, 2011
  3. Remove unneeded interrupt disable/enable in task scheduler.

    The orcc/andcc instructions have been there since the very beginning,
    but it is unclear why: they should not be necessary.  They were
    slowing down task switching a bit, and also adding latency since
    an interrupt during the stack restore (about 200 cycles) would be
    delayed, causing some jitter in any real time actions.
    (cherry picked from commit 2693188)
    committed Aug 22, 2011
  4. score_award_compact() obeys the global multiplier now.

    (cherry picked from commit 55d492b)
    committed Aug 10, 2011
Commits on Aug 22, 2011
  1. Ensure peripheral timer register is zero at init.

    If it is not, then the FIRQ will fail to flip the display
    pages correctly.
    committed Aug 21, 2011
Commits on Aug 8, 2011
  1. Fix subtle scheduling problem with the new PIC refresh logic.

    The refresh was destroying the column strobe enable set on the
    previous iteration, so bad switch returns were being read back
    Merged the two switch RTTs into one; this locks down the ordering
    much better.
    committed Aug 2, 2011
  2. Optimize PIC refresh more often to avoid bad switch readings:

    - Updated PIC refresh frequency from every 32ms to 2ms.
    - pic_rtt is moved just before switch_rtt in the schedule file, so that
      there is a very short delay between refresh and switch reading.
    - pic_rtt is broken into two routines, pic_rtt_start and
      pic_rtt_finish.  Eliminate the delay needed between writing and
      reading the PIC by scheduling something else important in between
      inside of just no-ops.  Moved lamp_rtt into this slot since it
      schedules at the same frequency.  These routines are also now
      inline functions to avoid function call overhead.
    - Actual unlock processing, when it is needed, is done in a third
      non-inline function.  No need to inline since it is not called often
      and it occupies the largest block of code.
    committed Jun 7, 2011
  3. Fix empty balls test:

    - Removed the use of Enter to force it to cycle again; this is now
      automatic.  It will continually try to kick all devices.
    - Use device_request_kick instead of device_request_empty in the
      loop.  We can't kick more than 1 ball at a time anyway...
    - Removed EMPTY BALLS DONE message.
    - Delay slightly on autoplunger games when kicking the trough, to
      give the autolauncher time to clear the shooter lane.
    committed Aug 8, 2011
Commits on Jul 29, 2011
  1. Update stressbuild script:

    - Reorder build variations so that "most important" configurations are always
      tested first.
    - Add --debug, --nodebug options.  Previously both were always tried.
    - Add --bpt, --nobpt options.  Previously CONFIG_BPT was always off.
    - Add machine only option.  Give a machine name as a parameter and it will
      only build that machine.
    committed Jul 29, 2011
  2. Use new 6809 division algorithm for PIC initialization.

    Remove old, clunky division code that was used before.  This is
    at least 10x faster, and probably less buggy.
    committed Jul 27, 2011
  3. Get the Extra-Ball buyin feature working better:

    1. Initial changes to support a working EB buyin.
    2. Add a preset to turn on EB buy-in.
       Also set to a 1-ball game to make testing easier.
    3. Drop priority of EB buyin effect to allow insert coins to override it.
    4. Other improvements to EB buyin:
    - Improve display effect text.
    - Restart effect when coins are inserted.
    - Rename events to be more clear.
    committed Oct 14, 2010
  4. Optimize dmd_memset used to clear/fill the display.

    The main enhancement is to use the DP register in each push
    instruction to fill 1 more byte per instruction.
    Because of the way this works now, the dmd_memset() call is not implemented
    in assembler anymore.  It wasn't being used heavily anyway.  It uses
    regular memset now.
    committed Apr 4, 2011
  5. Optimize 32-bit division further.

    committed Jul 28, 2011
  6. Reset message will always show the current build year.

    It was hardcoded before, but we have BUILD_YEAR to look at.
    committed Jul 29, 2011
  7. Remove old debug code.

    committed Jun 17, 2011
  8. Update comment.

    committed Jul 8, 2011
  9. Delete old buyin code.

    committed Jul 15, 2011
  10. Outhole and trough jam handling moved to separate drivers.

    This code is no longer compiled at all if the machine doesn't need them.
    This eliminates some warnings about unused callset entries.
    committed Jul 14, 2011
Commits on Jul 28, 2011
  1. Mapcheck won't complain if ROM region becomes 100% full.

    The error should only happen if that limit is exceeded.  An exact match is OK.
    committed Jul 28, 2011
  2. Remove defunct debug shell code.

    committed Jul 18, 2011
  3. Add optimized routine for doing 32-bit division on 6809.

    This functionality will be needed for future work.  Not having this
    was causing lots of trouble and leading to writing strange code to
    work around it.  This has been tested and seems to work well.
    It should take around 1-2ms at worst.
    committed Jul 27, 2011
  4. Remove the 'reset_page' field from the csum struct.

    It was not being used anymore.
    committed Jul 21, 2011
  5. Rename debugger output functions to be more portable to other platforms:

    - Rename wpc_debug... functions to pinio_debug...  These are intended
      to be portable and new platforms could define them appropriately.
      Move them into wpc.h.  Platforms should define PINIO_HAVE_DEBUG_PORT
      if they are defined.
    - Change db_puts to just puts.  The ability to write debug messages may
      not require a special debug port (e.g. the parallel port can be used).
    committed Jul 20, 2011
  6. Remove interdependency between DEBUGGER and CONFIG_BPT options.

    Previously CONFIG_BPT would not compile unless DEBUGGER was set.
    These are really two independent options: DEBUGGER enables print messages
    to a debug port, and CONFIG_BPT enables breaking into the system
    and pausing task scheduling.
    They can now be defined individually, or together.
    committed Jul 19, 2011
  7. Clean up the ball search routine:

    - Don't pulse "notinstalled" coils.
    - Don't try to pulse flipper coils.
    - Chase ball will not initiate until several seconds after the 5th ball
      search; previously it ended the ball immediately after the 5th try.
    committed Jul 25, 2011
  8. Simulation: Fix some string output that contained '%'.

    The string was being used as the printf() format, so if it
    contained a raw percent sign, it was not being printed but
    instead treated as a format specifier.  Need to add "%s"
    explicitly to prevent this from happening.
    committed Jul 14, 2011
  9. Implement the "Chase Ball" adjustment.

    When enabled, after the 5th unsuccessful ball search, the game will
    end the current ball, flag all balls not accounted for as missing,
    and continue with the next ball (or end the game).  This is to
    prevent infinite ball search.
    Default is now for chase ball to be OFF, however.  It can be
    enabled via the adjustment.
    committed Aug 21, 2009
  10. Fix gencallset bug with CALLSET_BOOL_ENTRY.

    It would not work if you tried to write one function that
    catches multiple events.  Commit 1ec5f7e was not complete.
    committed Jun 9, 2011
Commits on Jul 26, 2011
  1. Fix potential lockup in flasher/solenoid burnin.

    If no flashers/solenoids are defined in a machine, then the burnin thread
    will loop without any delay, and this stops task scheduling.
    committed Mar 16, 2010
Something went wrong with that request. Please try again.