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.

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

Minimum Requirements
  • 1.2GHz Intel Pentium III
  • 256MB RAM
  • Microsoft Windows 95 + DirectX 7.0
  • DirectDraw or Direct3D Compatible Graphics Accelerator
  • DirectSound Compatible Audio Device

Current Version
BupSystem 2021-5-27 Added
  • Support for launching in Full Screen Mode.
  • More robust Atari 7800 File (*.a78) parser.
  • Upgraded to JoyFish v0.8.6.2.
  • Color Dialog didn't restore its previous settings when canceled.
  • Palette wasn't recalculated on a console region change.
  • Direct3D 9 display texture is now padded vertically, this corrects some filtering issues.
  • Restored the behavior of rendering whether or not a cartridge is loaded.
  • Using the menu in Full Screen Mode now shifts the display downward instead of resizing it.
  • Screen Saver and Monitor Power Down are now allowed while execution is paused.
  • Recent cartridges menu was broken in Windows 95.

BupSystem 2020-5-27 Added
  • Separate menu item icons for Aero themes.
  • Support for using the menu in Full Screen Mode.
  • Optional confirmation when erasing the cartridge history.
  • Multiple file support for Drag 'n Drop.
  • All menu item icons redrawn in monochrome.
  • Custom images are a little more considerate of system metrics.
  • Disabled menu items could still be triggered in Full Screen Mode using their accelerator keys.
  • Adjustments in the Color Dialog are now shown whether or not a cartridge is loaded.
  • Disabled mouse cursor autohiding while the Color Dialog is visible.
  • Corrected longstanding GDI Resource leaks in the Input and Joystick Disconnected Dialogs.
BupSystem 2020-5-2 Added
  • Upgraded to Visual C++ 6.0 SP5 + Processor Pack.
  • Optimization now favors Pentium Pro.
  • EXRAM support for 32K cartridges.
  • SUBPAR and SUBLET variants of SOUPER cartridges.
  • SST39SF040 (512KB NOR Flash) for SUBLET cartridges.
  • Cartridge type guessing when loading Binary Files (*.bin).
  • Sorted history of recently played cartridges and persistent file filters.
  • Execution pause, resume, and frame step.
  • Menu item icons.
  • Sally's clock multiplier was accidentally grouped with save state data.
  • Rendering is now skipped when a cartridge isn't running.
  • Moved console region selection into its own menu.
  • Changed default cartridge format to Atari 7800 File (*.a78).
BupSystem 2019-8-26 Added
  • Full Screen Mode toggle on double-click.
  • Upgraded to JoyFish v0.8.6.1.
  • 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 2019-8-1 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.
  • 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 2018-11-1 Added
  • Commandline loading support (BupSystem [Cartridge]).
  • Atari 7800 File (*.a78) loading support.
  • Binary File (*.bin) loading support.
  • Upgraded to JoyFish v0.8.5.3.
  • 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 2018-4-18 Added
  • Aspect Ratio choices expanded to Television, Square Pixels, and Stretch to Fit.
  • Upgraded to JoyFish v0.8.5.2.
  • 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 2017-12-27 Added
  • Automatic input configuration support.
  • Upgraded to JoyFish v0.8.5.1.
  • 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 2017-10-2 Added
  • List of detected joysticks now displayed after a manual rescan.
  • XInput support.
  • 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 2017-7-23 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.
  • 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 2017-2-23 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 2016-12-13 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 2016-10-8 Added
  • PAL (EU, 50Hz) support.
  • Improved performance by merging the active display and overscan buffers.
  • Renamed NTSC Aspect Ratio to TV Aspect Ratio.
BupSystem 2016-7-12 Added
  • Optional support for Pontus Oldberg's XBoard.
  • Troubleshooting section in HTML Help.
  • 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 2016-6-29 Added
  • Pokey support for 32K and SUPER mappers.
  • 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 2016-6-21 Added
  • Upgraded to BupBoop 1.2.1cz.
  • Cycle-based audio pusher, sample playback is now supported.
  • 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 2016-6-8 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.
  • 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 2016-5-27 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.