Denise

Denise is a cycle-accurate emulator for the Commodore Amiga and C64, featuring advanced debugging tools and shader support.

README

Build status

Denise Logo

cycle-accurate Amiga and C64 emulator

Downloads - IssueTracker - Nightlies Windows - Nightlies Linux | macOS - Build info

changelog

2.9

  • Shader: koko-aio is the preferred shader in Denise for C64/Amiga
    • Quick access: Presentation -> Shader -> Star Icon
    • shader integration of dynamic lighting for loading and power LEDs by Antonio and providing images by Forum64 community
    • displays a floppy with dynamic LED next to the monitor, if set: Image geometry -> Scaling -> Window
  • Shader: parameters are now clearly displayed in a scrollable list and are modified in an overlay
  • C64 Studio: add binary monitor (compatible with VICE) for debugger integration, in e.g. C64 Studio
  • C64: add libresidfp (by Leandro)
  • C64: support for Trilogic Expert and Prophet64 was added by ClausS
  • C64: add options to disable Sprite collisions
  • C64: add Disk Demon speeder for 1541
  • C64: USBSID-PICO library was updated by LouD
  • macOS: improve UI widget positioning, fix input problems when switching between apps
  • Warp: add Fast Forward with adjustable speed, Shaders are no longer suppressed during warp (can be deactivated)
  • creation of blank disks, tapes, Flash, SRAM, EEPROM is now directly integrated into the corresponding UI
  • repo has moved to GitHub

2.8

  • Amiga: Debugger/Disassembler for:
    • CPU, Memory, Logic Viewer, Denise, Agnus, Copper, Blitter, Paula, Serial, CIA
    • break/watch/exception points for CPU/Copper
    • stepping: CPU/Copper instructions, Blitter cycles, single cycles
    • debug borders with display of DMA usage
  • C64: Debugger/Disassembler for:
    • CPU, SCPU, Memory, Memory-SCPU, Logic Viewer, VIC-II, SIDs, CIA
    • Drive 8,9,10,11: CPU, Memory, VIA
    • break/watch/exception points for CPU, SCPU, drive CPUs
    • stepping: CPU/SCPU instructions, VIC-II RDY/BA cycles
    • debug borders with display of DMA usage
  • C64: support for KCS Power Cartridge was added by ClausS
  • C64: add hotkey to toggle priority between joystick port and keyboard
    • helpful for keyboard joysticks
  • Amiga: support hard disks with more than 4 GB
  • bug fixes for both emulators, as always

2.7

  • added screenshot generation
    • option to merge two adjacent frames (e.g. interlace)
    • option to generate multiple screenshots at a set interval
    • option to take native or scaled, filtered screenshots
  • C64: support for USBSID-Pico was added by LouDnl
  • C64: added support for 2 MHz
    • C64 in C128 mode: e.g. Sonic, SNK vs CAPCOM (C128 version), Eye Of the Beholder, Mario
    • Hotkey to force 2 MHz for games that can handle it but don't support it
    • 2 MHz status LED
  • C64: added PALette measurements by Tobias as new default for color generation
  • C64: support for Structured Basic CRT was added by ClausS
  • support MP3 for audio recording
  • fix: mouse is found when changing the USB port (Windows)
  • disk finder: guessing follow disks or tapes take archives into account
  • support HDR for Windows (D3D11) and macOS (Metal)
    • monitor must support this and be activated in the OS and emulator
  • support black frame insertion (BFI) to reduce motion blur
    • monitor requires support for higher refresh rates, e.g. 100, 150, 200, 250 Hz...
    • BLUR BUSTERS CRT Simulation GPU Shader ... advanced BFI read more
  • added rewind support
    • you can rewind a few seconds while playing, e.g. to avoid the loss of a life
    • the function must be assigned to a hotkey, ideally the gamepad
  • added option to prepend YUV (S/C-Video) PAL/NTSC color encoding to a CRT shader
    • default setting for C64
  • added CoreAudio3 driver for macOS

2.6

  • Amiga: added harddisk emulation
    • built-In HD Controller
    • M-Tec AT 500
    • VHD support for dynamic HDFs
  • Amiga: added ECS Denise emulation (A500+/A600)
  • Amiga: added option to overclock CPU
  • Amiga: support for floppy disks in SCP format
  • Amiga: added CD32 gamepad support
  • Amiga: added option to show Caps Lock LED in status bar
  • C64: added file dialog option to prevent speeder for next load
    • the speeder + firmware does not have to be switched time-consumingly for certain programs
  • C64: added file dialog preview for cartridges
  • C64: improved PRG injection (rebuild linked list)
    • Note: a PRG can also be loaded as a D64
  • Windows 10/11: added dark UI mode
  • added LHA support
    • added option to convert LHA archives to Amiga native filesystem (ADF, HD-ADF or HDF)
  • APP can be used fully or partially portable
  • added file history to make it easier to re-insert files
  • improved Shader management
    • fixed an error when parsing shaders (Bezel: koko-aio works again)
    • added option to automatically download and unpack shaders

2.5

  • added 1581 floppy drive
  • added SuperCPU
    • support SuperCPU + REU (e.g. Sonic without slowdowns)
    • added option to boost DRAM accesses (speedup Wolf3D)
    • support Metal Dust burst loader (new CIA's only and in UI check CIA Burst modification)
  • added Final Chesscard
    • support options to overclock (up to 115 MHz)
    • hint: latest BROM v3.6 from IBM PC ISA-cartridge can be used too
  • added MagicDesk 2 (SNK vs CAPCOM Stronger Edition)
  • added Easycalc, Hyperbasic, Businessbasic cartridges
  • added StarDOS, SuperCard+
  • added 4 and 8 player adapter for C64
  • added option to toggle 1541C track zero sensor
  • Linux: built flatpak
  • Linux: improve detection of Bluetooth controller
  • Windows: support USB adapter for DB9 retro joysticks
  • additional sound profile for C64 added to differentiate between 5 1/4" and 3.5" drives
  • configurations are shown in a tree view for subfolder support
  • updated reSID code
  • hide mouse cursor after 2 seconds of inactivity and becomes visible again when moved
  • fix VIC-II sprite collision bug
  • fix A1000 blitter busy bug
  • fix A1000 WOM lock during reset instruction

2.4

  • support macOS Metal graphics driver with shaders
  • added Cocoa as a keyboard driver for macOS
    • avoid the system dialog to allow input
  • added BSD UHID joypad driver
    • supported on FreeBSD, NetBSD and OpenBSD
  • reworked on-screen status messages
    • adjust position, font size, font type, foreground/background color, transparency, box padding/margin
    • download TTF/OTF/TTC fonts or add OS installed fonts for win c:/Windows/Fonts, mac /Library/Fonts, linux /usr/share/fonts
  • added esperanto translation (thanks to Diego)
  • separated(C64/Amiga) file dialog preview options and moved to Software UI
  • improved openGL shader cache
  • improved handling of shader UI
  • added possibility to assign a different floppy sound profile for external drives
  • Amiga: added new floppy sound profile
  • Amiga: emulate Blitter<>Copper conflict
  • C64: fixed a bug in G64 emulation
  • C64: added exponential function to simulate drive motor acc/deceleration
  • C64: improved D64 track alignment

2.3

  • added RetroArch Shader support
    • targets: openGL, D3D11
    • converted existing GLSL/HLSL Shaders to SLANG
    • fast switching of shaders from a favourite list (shader cache and compilation without blocking App)
    • for shader development, compilation errors and translated native code are displayed in the UI
    • looking for Shader authors, read more in the next paragraph
  • Amiga: improved emulation, especially the disk drive
    • thanks to amilo3438 for testing a huge number of games and demos
  • Amiga: emulated Bitplane <> Refresh conflicts
  • Amiga: Final Fight Enhanced supported by temporary option to fake ECS Denise
  • Amiga: written floppy disks are now saved in a second file
    • this does not apply to uncompressed ADF (don't worry, emulator asks if ADF can be changed)
    • permanent writes are now possible for IPF, compressed images, EXT ADF, DMS
    • the folder for the save files can be customized under Amiga > Software > Paths
  • Amiga: added 4-player adapter
  • Amiga: added copy protection dongle support
  • C64: besides PRG, P00 and T64 are loadable as D64
    • Drag'n'Drop PRG on Software TAB -> Disk file slot OR
    • use filedialog and change file type to "all files"
  • C64: fixed Hucky Cart emulation (thanks to Claus)
  • fixed a bug not finishing Drag'n'Drop in Linux GTK
  • fixed some OSX bugs/crashes [looking for tester]
    • ARM builds can now handle IPF capsimg library
    • fix UI file dialog crashes
  • improved mouse capture handling for all OSes
  • UI changes
    • many global options are distributed among the individual emulator options
    • volume slider has moved to status bar
    • Shader controls have been reworked
    • all hotkey assignments are now in the same place
    • added option to capture pointer by left mouse button
  • changed BuildSystem to CMAKE
  • added Linux/BSD XCB input driver for keyboard/mouse
  • improved GTK window resizing in some desktop environments

looking for Shader authors

  • interested in shaders for
    • Luma/Chroma crosstalk
    • wrap image with 1702/1084S/... monitor and C64/Amiga floppy drive
  • new option for SLANGP files: luma_chroma
    • Luma Chroma input to prevent lossy conversion from RGB
    • Alpha Channel is used for Pixel meta data: C64 VIC2 AEC and BA signal (affect luminance)
    • add a few pixels around the image, which will be cropped later between shader passes (e.g., calculate FIR Filter in border or first PAL delay line)
  • there are parameters that are not visible or can be operated by user
    • the emulator sets them automatically and can be used by the shader author
    • autoEmu_driveLED, autoEmu_cropTop, autoEmu_cropLeft, autoEmu_lace, autoEmu_hires, autoEmu_pal, autoEmu_subRegion

2.2.1

  • fixed spanish translation

2.2

  • added D3D11 driver
    • openGL has bad VSYNC/VRR behavior on Windows 11 (replace it with D3D11: Options->Video->Driver)
    • ported internal and external openGL shader to D3D11
  • added italian translation (thanks to Luigi)
  • added an option to rotate the screen (90°/180°/270°)
  • added an option to force a single instance when opening another instance from frontend loader or file explorer
  • fixed Amiga basic volume (louder)
  • improved 1571 emulation
  • added C64 cartridges: Comal-80, Silverrock, RGCD
  • added a more easy way to set stereo separation (Audio -> DSP)
  • added tapes to swapper (mixed disc/tape swapper)
  • added option to decide if manual warping stops automatic warping until next restart
  • added more options to control the screen aspect ratio
  • added button/hotkey to crop the outer frame after resizing or changing "aspect ratio" or emulated border

2.1

  • add drag'n'drop overlay
    • files can be inserted into additional drives faster
    • files can either only be inserted or inserted and restarted
    • multi file support
  • fix: Wasapi didn't work on some audio hardware
  • thanks to all translators: Ben, Ulgon, Ferenc, Muzza
  • [Amiga]
  • greatly improved accuracy, thanks to amilo3438, vAmigaTS, CPU Tester, AW182
  • ~15% speed up
  • fix: Drive LED sometimes does not turn off
  • display tracks more clearly
  • add IPF, DMS, EXE and encrypted kick rom support
  • add RTC
  • add multi file support for any-loader (fill DF0-3 in one go)
  • show power LED in status line
    • colors for power and drive LEDs depend on the model
    • click on power LED to select audio filter
  • [C64]
  • fix: multi SID UI not updated correctly from config
  • fix: sometimes crashes when changing speeder
  • add cartridges: Dinamic, Diashow Maker, Super Snapshot V5
  • add option to intensify pseudo stereo (now also works with same SID models)

2.0

  • add Amiga emulation
    • A1000 (OSC/ICS), A500 (Full OCS), A500 (ECS Agnus, OCS Denise)
    • RGB or S-Video with PAL/NTSC color encoding, border cropping
    • support all global features like: runAhead, savestates, G-Sync, configs, Warp, JIT polling, shader
    • up to 4 disk drives with acceleration option
    • Chipram, Slowram, Fastram
    • list disk content in UI
    • AROS firmware is preinstalled
    • motor controlled auto warp
    • drive sounds
    • support custom frequencies like B.C. Kid (56.4 Hz)
    • if you only want to use one of the two emulators, Amiga or C64 core can be hidden
  • emulator now boots automatically after power on
    • Splash screen can be disabled
    • emulator remembers which core was used last
  • disk swapper can be filled faster due to multiple selection of files
    • files from archives can also be added quickly
    • if requested disk swap position is not prepared, emulator guesses the disk based on requested position and the currently inserted disk
  • windows: prevent App minification when focus loss in fullscreen
  • C64: add option to combine Virtual Device Traps (instant load first file) with floppy speeder
  • C64: improve drive motor controlled auto warp
    • add option to stop auto warp when software requests input, because
    • some games stop drive motor too late and warp runs too long, what could lead to the loss of a life
  • C64: support magicdesk CRT's with broken header
  • C64: fix runahead slowdown with REU/GeoRAM when using a lot of memory, e.g. REU 16 MB
  • Mice and other mouse-controlled devices, such as Lightguns, can now be configured with one click

NOTES

  • Mouse Capturing
    • In order to operate the Amiga/C64 mouse, it must first be captured. The middle mouse button is designed for this purpose by default. Of course, another key or key combination can also be used for this.
    • Press the "Hotkeys" button under Control / Amiga Configuration. A double click on the first entry "capture mouse" allows you to assign a new key(s).
  • Dutch Translation
    • someone created a ticket and offered a Dutch translation for Denise. Unfortunately, I reacted too late
    • and the creator certainly never read the answer. If you're reading this. Yes, I am interested and in other languages too, of course.
  • VRR (G-Sync, FreeSync)
    • [Windows] keep in mind that the old DirectX9 video driver can apply VRR only in "exclusive" fullscreen (not in windows, not in normal fullscreen)
    • [Windows] for VRR you should select openGL driver in Denise. So it works in window and fullscreeen mode
    • [Linux,macOS] keep in mind that VRR works only in fullscreen mode [not an emulator limitation]

1.1.3.1

  • thanks for the countless tests and suggestions [thanks to AW182]
  • thanks for spanish translation [thanks to Muzza]
  • tape loading sounds (playing as audio cassette)
  • fixed a bug for windows UI not listing all addresses for multi SID's in drop-down list
  • faster loading of floppy drive profile with a lot of stepper WAV's for each track
    • newtronics drive sound profile no longer blocks emulation on first start
  • added option to hold autofire a little bit longer
    • a few games benefit from it, applies to all active Turbo functions
    • hint: some autofire compatible joysticks do this
  • added option to prioritise Controlport over keyboard and vice versa
    • double assignments are temporarily inactivated
    • e.g. using cursor keys as joystick replacement

1.1.3

  • added newtronics drive sound profile [thanks to enigma]
  • precise FPS counter and speed selection menu
    • define a custom speed
    • define decimal place and refresh interval for FPS counter
  • added option to render in a separate thread [threaded renderer]
    • improves VSync for non standard refresh rates, like 50.125 Hz
    • new default setting, because most reliable
  • added option for adaptive sync (not to be confused with VRR)
    • automatically selects the best sync option for requested emulation speed
    • outperforms threaded renderer, but it needs more attention
    • first it needs threaded renderer to be disabled
    • need to detect correct refresh rate (use new sync hotkey to confirm if it fits)
    • refresh rate detection works for primary screen only (at the moment)
    • threaded renderer will be enabled automatically if display refresh rate differs from user requested emu speed
    • skips frames when user requested emu speed is a multiple of display refresh rate
  • fixed jerky scrolling for Linux and macOS
  • added option to change the size of the window in the correct aspect ratio
  • added option to emulate in a separate thread besides User Interface
    • unblocked audio/video when browsing the file dialog or moving/sizing window
  • fix support for VRR displays (G-Sync/FreeSync)
    • reduce input lag by 20 ms (PAL)
    • don't forget to enabale VRR in your monitor OSD or display software
    • set display refresh rate to maximum
    • don't forget to disable VSync in emulator
    • Linux and macOS don't support VRR in window mode (not an emulator problem)
    • old direct3D9 driver in Denise support it only in exclusive fullscreen
    • use openGL in Windows (supports VRR in window and fullscreen mode)
    • when changing the emu speed, within the VRR interval, the scrolling remains soft
    • without adjusting the display refresh rate you can switch between 50.125 Hz (PAL) and 59.826 Hz (NTSC)
  • using revision 1/2 kernals when selecting old VIC's
    • only happens if standard firmware is selected
  • show tape content in User Interface
    • start files without manual fast-forward
    • fast-forward to selected file without autostartig it
    • Virtual Device Traps: load tape files (PRG or Turbo Tapes) instantly
  • added autofire
    • typical or self-firing continuous fire (superimposed by a press on the fire button)
    • turbo fire for left/right directions (shaking games)
    • adjustable autofire frequency
  • added option to allow opposite directions
    • by default, simultaneous pressing of opposite directions (left<>right, top<>down) is ignored
  • added support for second fire button (Cheetah Annihilator)
  • added tape drive sounds
    • like floppies, you can add your own sound profiles
    • you can send me new profiles and I will integrate them permanently with the next release
  • FreeBSD support
  • macOS M1 support
  • a lot of fixes

1.1.2

  • P64 support
  • 1541, 1541C support
  • 1570/1571 support
    • support of D71 / G71 / P71 formats
    • Burst Modification
    • MFM support
      • P64
      • G64 (U-II+/U64 compatibility mode)
  • Floppy RAM expansions and parallel cable
  • Floppy Fastloader
    • SpeedDOS
    • DolphinDOS v2, v3, Ultimate compatible
    • ProfDOS v1, R3, R4, R5, R6
    • PrologicDos Original and Classic
    • Turbo Trans with 512k Ram Disk ( includes Turbo Access )
    • ProSpeed 1571 GTI v2.0
    • Expansionsport cart for ProfDOS, PrologicDOS, Turbo Trans
    • Userport plug-in for DolphinDOS, ProfDOS, PrologicDOS, ProSpeed 1571
  • bugfix: switch to custom resolution in fullscreen
  • auto insert newly created disks or tapes
  • decrease App initial loading time
  • add drive sounds
    • samples provided by [thanks to enigma and Trackers World]
    • support for multiple profiles
    • simply create own WAV folders and select it
  • support command line start of disk entries, besides Load "*"
    • Frontends like Assembly64 support this
  • Virtual Device Traps
    • fast load first file
    • can be combined with Warp
  • add hungarian translation [thanks to Ferenc]
  • add "Just in time" polling for faster input recognition
  • Catalina and above prompts to allow keyboard monitoring if not already so
  • display CPU JAM in status bar

1.1.1

  • add Final Cartridge 3 support to EF³
  • add DataBlast, SwiftLink, Turbo232 emulation
    • BBS suppor