Permalink
Switch branches/tags
Commits on Jan 16, 2018
  1. Improved palette colour visibility

    simonowen committed Jan 16, 2018
    Added definitions for CLUT indices and palette colours, so make
    it clearer where they're being used.
Commits on Jan 15, 2018
  1. Added sound table generation to build process

    simonowen committed Jan 15, 2018
    Replaced freq.pl with freq.py, which is run during build.
  2. Changed to generate graphics using tile2sam.py

    simonowen committed Jan 15, 2018
    We now include the graphics as images, and use a helper script
    to convert them to a format the code can use. This process needs:
    https://github.com/simonowen/tile2sam
    
    The ROM extraction tool used to prepare the distribution files
    has also been converted from Perl to Python.
Commits on Mar 1, 2014
  1. pacemu v1.4

    simonowen committed Mar 1, 2014
  2. Improved control support for diagonal inputs

    simonowen committed Feb 28, 2014
    The original Pac-Man machine uses a 4-way joystick, which makes it
    impossible to generate more than one direction input. The game does
    not understand diagonals, and will use the first direction found to
    be pressed. This can cause frustration when played on the keyboard
    or with a regular 8-way joystick.
    
    We now ignore control input for the direction Pac-Man is currently
    facing, so changes of direction are always preferred. We also ignore
    perpendicular inputs on tile entry, to defeat the turn overshoot
    mechanism that gives a brief window for players to change their mind
    about a turn.
    
    These changes are only active when diagonal inputs are detected, so
    traditional play with a single input remains true to the original.
Commits on Jun 3, 2013
  1. Build system improvements

    simonowen committed Jun 3, 2013
    - added basic 'make run' for Linux using xdg-open
    - fixed Win32 clean rule so it removes all files cleanly
    - easier to change target basename
    - adding missing endlocal to make.bat
Commits on Aug 13, 2012
  1. Add run target to make.bat

    simonowen committed Aug 13, 2012
Commits on Aug 10, 2012
  1. Add run target to Makefile

    simonowen committed Aug 10, 2012
    Launches application for disk image, usually SimCoupe.
Commits on Aug 4, 2012
  1. pacemu v1.3

    simonowen committed Aug 4, 2012
  2. Fixed screen junk on startup with some 3rd party ROMs

    simonowen committed Aug 4, 2012
    Custom ROMs that skip the nenory test/clear leave junk in the pages
    used for the emulator display.  This fix ensures they're cleared.
Commits on Feb 6, 2012
Commits on Jan 18, 2012
  1. Minor release tweaks

    simonowen committed Jan 18, 2012
    - replaced auto-launch with message in make.bat, as .dsk is unlikely to be associated with SimCoupe
    - fixed mixed line endings in ReadMe.txt
    - added missing sound.bin Makefile dependency
  2. pacemu v1.2

    simonowen committed Jan 18, 2012
    Includes updated build system.
Commits on Jan 17, 2012
  1. Added memory map

    simonowen committed Jan 17, 2012
    Detailed memory map to keep track of what is where, as working it out from the code is kinda tricky.
  2. Added Hard mode option

    simonowen committed Jan 17, 2012
    Hold F9 during startup to select Hard difficulty.
    
    If successful, the cyan ghost should leave the ghost box immediately on the Cherry level.
  3. Restored debug border stripes

    simonowen committed Jan 17, 2012
    Restored the debug option, to show coloured border stripes for each of the main loop tasks.
Commits on Jan 10, 2012
  1. Fixed 2UP header alignment with score

    simonowen committed Jan 10, 2012
    the 2UP text was 1 character (3 bytes) too far left, and didn't match the 1UP text position.
  2. Avoid sprite drawing at x=0

    simonowen committed Jan 10, 2012
    There's no need to draw sprite when the tunnel clipping would hide it anyway.  The code check is for x=255, which is mirrored to x=0.
  3. Cosmetic changes

    simonowen committed Jan 10, 2012
    Added comments, renamed labels, changed formatting.
  4. Interrupt handler tweaks

    simonowen committed Jan 10, 2012
    - IY is no longer preserved as we don't use it
    - removed Cntrl border colour change to show frame time used
  5. Minor optimisations

    simonowen committed Jan 10, 2012
  6. Disable 1-UP and 2-UP flashing

    simonowen committed Jan 10, 2012
    To save on tile update work the current player text no longer flashes.
  7. Added ROM bit-7 text address fix

    simonowen committed Jan 10, 2012
    The original ROM code relies on memory mirroring ignoring bit 15 of the address.  To avoid corrupting upper memory we must reset the bit before using it.
    
    The fix code is positioned in the old RAM test area, after the interrupt thunk.
  8. Moved interrupt thunk

    simonowen committed Jan 10, 2012
    The old thunk used the 'BAD ROM' entry in the string table.  We now use the location of the RAM check code, which we skip.  Hopefully this is still compatible with Hangly Man.
Commits on Jan 9, 2012
  1. Skip RAM check in ROM startup

    simonowen committed Jan 9, 2012
    This chops a few seconds off the startup time, and avoids the user wondering if we've crashed with a black screen!
  2. Changed to use real OTDR instruction

    simonowen committed Jan 9, 2012
    No more broken assembler — yay!
  3. Improved input handling

    simonowen committed Jan 9, 2012
    Improved handling of multiple key presses, with the new key taking priority.  The arcade game uses a 4-way joystick, which makes diagonals impossible, so the ROM has no native support for multiple directions.
    
    Added SAM joystick 1 and QAOP as additional control methods.
    
    Removed unused Cntrl scanning, as the speed cheat required too much code patching.
  4. Improve sprite trimming at screen edges

    simonowen committed Jan 9, 2012
    We used to trim each sprite individually after drawing.  This has been changed to trim as a single step, which is much more efficient if multiple sprites are overlapping the screen edges.  It's neater too.
  5. Improved tile updating logic

    simonowen committed Jan 9, 2012
    Changed to update all tiles if no sprites are visible, which makes the maze appear faster and reduces artefacts on the attract screen text.  When sprites are visible we fall back on the original strip method.
    
    As a bonus, it's now much easier to change the code for the Mayhem accelerator, and it may even be possible to detect and patch the code automatically.
  6. Removed use of RAM write-protection

    simonowen committed Jan 9, 2012
    The Spectrum version runs fine without it, and it's one less thing to remember to disable for patching.
  7. Removed ROM patch for interrupt chaining

    simonowen committed Jan 9, 2012
    Rather than patch the chained handler address in the ROM we now patch our own interrupt handler to jump to it.
  8. Improved offsetting of first 2 sprites

    simonowen committed Jan 9, 2012
    Shortened and removed self-modifying code.
  9. Removed line interrupt and HPEN polling

    simonowen committed Jan 9, 2012
    The hope was that the line interrupt could give us a second chance at a missed frame interrupt, but it never really helped.  It usually meant we were late for the next frame too.
    
    When there was little to draw we could catch the line interrupt in the same frame, so we needed to check HPEN to make sure we were beyond it.  This nasty hack has been removed too.
  10. Improved sprite save/restore

    simonowen committed Jan 9, 2012
    Previously the save/restore code started on an even line and saved 13 lines.
    
    The new code starts and ends on the correct lines, avoiding the copy of 7 bytes per sprite for both save and load.