Welcome to BupSystem

BupSystem is an Atari 7800 ProSystem emulator. It was originally written to assist in the development and distribution of Rikki & Vikki, but can run most other software for the platform.

As of writing BupSystem is closed source and only available for Microsoft Windows.

This program is intended as a development tool for and preservation of the ProSystem architecture. While it can be used to run commercial software I will neither assist nor prevent users from doing so. You are on your own.

More information can be found in the included help file.

What's Emulated
  • Sally, Maria (NTSC or PAL), TIA, RIOT, and the BIOS
  • Mappers : 16K, 32K, 48K, SUPER, SOUPER, ABSOLUTE, and ACTIVISION
  • Hardware Expansion : XBoard
  • Audio Expansion : Pokey, BupChip
  • YIQ Color Generation
  • One and Two Button Joysticks
  • Light Pens and Light Guns

  • Gamepad Support
  • Save States
  • Sally and Maria Overclocking

Current Version
BupSystem 8-26-2019 Added :
  • Full Screen Mode toggle on double-click.
  • Upgraded to JoyFish v0.8.6.1.
Cleanup :
  • Improved keyboard navigation in dialogs, button focus and ordering is much friendlier.
  • Input assignment procedures can now be aborted by pressing Esc.
  • Full Screen Mode was overwriting the userís window dimensions.
  • EXFIX segment in SUPER cartridges wasnít enabled for *.a78 files.
  • AutoSave feature wasnít working if an XBoard was installed.

BupSystem 8-1-2019 Added :
  • EMPTY cartridge support.
  • RIOT edge detection on PA7 support.
  • VCS compatible memory map support via INPTCTRL's MEN bit.
  • TIA INPT0 - INPT3 ground path and INPT4 - INPT5 latch support.
  • EXRAM sizing support for 32K and SUPER cartridges.
  • Unmapped $4000 - $7FFF region support for SUPER cartridges.
  • Brightness and Contrast sliders to the Color Dialog.
  • Graphics API (GAPI) abstraction layer and NULL Render Path.
  • Drag 'n Drop loading support for cartridges and snapshots.
  • Upgraded to JoyFish v0.8.6.0.
Cleanup :
  • Default settings now favor accuracy rather than performance.
  • Disabling EXT only held A15 and A14 low on cartridge accesses rather than A15, A14, and A12.
  • Maria's palette registers aren't readable, no matter which addressing mode you use.
  • Input merging feature now allows the Left or Right Triggers to be read in single button mode.
  • RIOT's timer was stopping after its second underflow instead of continuing to decrement.
  • Sally's ABS,X and ABS,Y reads now perform dummy accesses on page boundaries.
  • Sally's ABS,X and ABS,Y writes are now five cycles long and perform dummy accesses.
  • XBoard is now installed by default, but will remain "asleep" until XCTRL is written to.
  • Overhauled Pokey's audio implementation, still not perfect but significantly less bad.
  • Reduced the maximum size of ABSOLUTE cartridges to 64KB.
BupSystem 11-1-2018 Added :
  • Commandline loading support (BupSystem [Cartridge]).
  • Atari 7800 File (*.a78) loading support.
  • Binary File (*.bin) loading support.
  • Upgraded to JoyFish v0.8.5.3.
Cleanup :
  • Resources and configuration data now stored relative to BupSystem's actual location on disk.
  • Save state format now includes version tags.
  • Filter selections moved into their own popup menu.
BupSystem 4-18-2018 Added :
  • Aspect Ratio choices expanded to Television, Square Pixels, and Stretch to Fit.
  • Upgraded to JoyFish v0.8.5.2.
Cleanup :
  • Screen Saver and Monitor Power Down now disabled while running.
  • Several Direct3D 9 performance enhancements for faster texture updates.
  • Display surface is now a system component rather than part of Maria's module.
  • Increased BupBoop 1.2.2cz's patch and music stack depths from four entries to sixteen.
  • Difficulty Switch labels now match Atari's nomenclature : Beginner (Left) and Advanced (Right).
  • Difficulty Switches' positions were implemented... ugh, backwards.
  • Moved Maria's DMA setup and first DLL fetch back to the first active line.
  • Maria now uses a fixed render abort offset whether or not the current line is the last of a display region.
  • Maria's DMA shutdown procedure is now allowed to overflow into the next scanline.
BupSystem 12-27-2017 Added :
  • Automatic input configuration support.
  • Upgraded to JoyFish v0.8.5.1.
Cleanup :
  • Input dialog now highlights each button's mapping field when pressed or reassigning.
  • Maria's line counters and MSTAT now update at the end of DMA rather than at the end of a scanline.
  • Moved Maria's DMA setup and first DLL fetch to the last line of VBL rather than prefixing the first active line.
BupSystem 10-2-2017 Added :
  • List of detected joysticks now displayed after a manual rescan.
  • XInput support.
Cleanup :
  • Maria's Display Lists now terminated by (0 == (DL_PW & $5F)) rather than (0 == DL_PW).
  • Joystick auto rescanning would never trigger from a cold start if multiple joysticks were connected.
  • Joystick auto rescan interval reduced from four to two seconds.
BupSystem 7-23-2017 Added :
  • BIOS support and BIOS section in HTML Help.
  • Preliminary support for the system control register.
  • Mouse cursor autohiding in Full Screen Mode.
  • Entries in the Troubleshooting section pertaining to accuracy.
Cleanup :
  • TIA now has collision register read residue instead of open bus.
  • Split Sally's emulation into fetch and execute phases to fudge timing a little better.
  • Maria's NTSC and PAL menu listings now include their respective frequencies.
BupSystem 2-23-2017 Added :
  • Light Pen and Light Gun input using the mouse.
  • EXRAM/A8 support for 32K cartridges.
  • Small (320x240) and Large (960x720) window size presets.
BupSystem 12-13-2016 Added : Cleanup :
  • Improved Direct3D 9 recovery upon device loss or internal driver error.
  • Maria's Triple Bandwidth Mode wasn't indicating whether or not it was enabled.
BupSystem 10-8-2016 Added :
  • PAL (EU, 50Hz) support.
Cleanup :
  • Improved performance by merging the active display and overscan buffers.
  • Renamed NTSC Aspect Ratio to TV Aspect Ratio.
BupSystem 7-12-2016 Added :
  • Optional support for Pontus Oldberg's XBoard.
  • Troubleshooting section in HTML Help.
Cleanup :
  • Reworked Maria's DMA timing to better match hardware sprite tearing behavior.
  • Cartridges can now respond to reads and writes throughout the entire address range.
  • Window placement is no longer discarded when entering or exiting full screen mode.
  • Save State format reworked for improved file verification and size.
BupSystem 6-29-2016 Added :
  • Pokey support for 32K and SUPER mappers.
Cleanup :
  • Left and Right Trigger inputs now merged in single button mode, this can be optionally disabled.
  • Maria's linebuffers now only swap and clear when rendering is enabled at the start of a scanline.
  • TIA's audio output reduced to (2/3) of its original amplitude to prevent clipping.
BupSystem 6-21-2016 Added :
  • Upgraded to BupBoop 1.2.1cz.
  • Cycle-based audio pusher, sample playback is now supported.
Cleanup :
  • Overscan on the left and right sides of the screen in NTSC Aspect Ratio were swapped.
  • Builds now optimized for speed rather than just using the default optimization settings.
  • Maria graphic fetches only wrap within a page in character mode, direct reads perform a full address increment.
  • Open bus reads now return the last driven state on the first read, subsequent reads are logically OR'd with $1B.
BupSystem 6-8-2016 Added :
  • Open bus behavior (reads return the last driven state).
  • Sally undocumented instructions.
  • Sally slow cycle penalties when accessing TIA or RIOT.
  • History section in HTML Help.
Cleanup :
  • Maria is now allowed to read herself.
  • Maria now waits 32 clocks (@7.16MHz) into a scanline before taking the bus from Sally.
  • TIA and RIOT mirroring were way off.
  • RIOT's prescaler was running one extra tick upon reset.
BupSystem 5-27-2016 Initial Release

All content by Osman D. Celimli unless otherwise noted.
Not all of said content guaranteed to be useful. Some is probably quite old and dumb.
Oh my, here's a YouTube and Twitter.