C64emu first public release



.: Download link :.

C64emu releases


.: Disclaimer :.

Please note that this is the very first release of an emulator that is still under development. There may be bugs, it may not start for some people, there is no user manual for it yet, but I am releasing it anyway, otherwise you would have to wait a long time for it to be released.

The real 1541 emulation is still under development (the entire emulator is programmed from scratch since '97), but it can already be used with one-filers and cartridge files.


.: Some starter hints :.

  • The menu system is accessed with the ESC key
  • Port 2 joystick is mapped to the numpad (fire is num insert or right CTRL)
  • The mapping of the spec keys can be read from the virtual keyboard that appears with ALT+V
  • You can load files (.PRG, .D64, .G64, .CRT, .SID) to the emulator as command line parameter or by drag & drop


.: Key features :.

  • Realistic CRT emulation with RGB or mono (green) shadow mask

  • Ambient occlusion around the CRT screen
  • Smooth scroll on every refresh rate by interpolating adjacent VIC-II frames (optional)
  • PAL emulation only (6569R3)
  • Screenshot saving option with up to 16X upscaled CRT shadow mask
  • Realistic 6581 filter distortion model with R2/R3/R4/R4AR presets (there is 8580R5 emulation obviously)
  • Realistic audio resampling, so even tricky DIGIs (like PWM) work
  • Surround sound rendering (optional)
  • HVSC integration with songlength and STIL support (you can even play the entire HVSC in linear or random order using the built-in player)
  • PSID and RSID support up to 3 SIDs
  • Scope and spectrum analyser (linear or logarithmic) visualizers up to 9 channels (3SID), filter stage analyzer (base SID only), and a scrolling MIDI piano roll like view
  • Single- or multi SID output recording capability to WAV file
  • Automatic state saving on exit (can also be done manually), so next time the emulation will continue where you left off
  • Gameplay recording/-playback function
  • Cartridge emulation (not all hardware type, but the EasyFlash one is the classic cart with Am29F040 chips)
  • Advanced debugging functionality (breakpoints, disassembler, PETSCII/screencode viewer, you can browse unmapped memory, even the two RAM locations under CPU port, etc.)
  • D64 and G64 support for now with a simple IEC emulation only, so you can load one-filers from disk images, but fastloaders doesn't work (full emulation under development, the G64 bitstream decoder already done, but VIA is not yet)
  • Windows only... yet...


And so on...


Feel free to leave a comment.


Cheers,

DaemonPig

Comments

  1. Can't wait to check this out!!!

    ReplyDelete
  2. No hardware SID support yet? Have a link to the code repo?

    ReplyDelete
    Replies
    1. I don't think it's possible to create a truly good clock-exact hardware SID interface in a high-level operating system environment that would work well with tricks such as PWM digi, or noise write-back based and ADSR based digi (as in the Censor Design Wonderland XII, XIII, or XIV demos). In fact, I would say that it is quite impossible, so I don't think there will be anything like that in the emulator.
      But I don't even know if simple 6581/8580 detection would work, although, to be honest, I have no experience in this area, but I have a feeling that the clock signal that the external SID receives in this case has little to do with the emulator.
      Perhaps someday, there will be some kind of hardware SID option in the future for games and simpler demos with reduced accuracy.
      This is a closed source emulator, so it doesn't have a public code repo.

      Delete
    2. I guess you havent heard of USBSID-Pico yet? It has support in JSidplay2, Denise and Vice. I am the developer btw.

      Here's a nice cycle exact example with Vice:
      https://youtu.be/ER8v2g7TlwA?si=INlS4-HyuBXcPIRT

      Delete
    3. I've heard about it, but I haven't actually tried it yet.
      Wow, sounds cool, better than I expected, great work, thanks for the demo link!
      Can you make recordings of the end of Wonderland XII, XIII and XIV (you can boot from the last disk side), as well as screenshots of the following test programs? I'm very curious.

      WL 12:
      https://csdb.dk/release/?id=120907

      WL 13:
      https://csdb.dk/release/?id=151275

      WL 14:
      https://csdb.dk/release/?id=232980

      ADSR test progs:
      https://sourceforge.net/p/vice-emu/code/HEAD/tree/testprogs/SID/env_test/
      https://sourceforge.net/p/vice-emu/code/HEAD/tree/testprogs/SID/sidcheck/

      Delete
    4. Sure, will do when I get back from vacation!
      I have more demo's on my youtube channel. Next Level and Coma Light 13 aswell
      Here's my Discord btw https://discord.gg/zG2rxXuT2g

      Delete
    5. Super, thank you, have a nice holiday until then!

      Delete
    6. Well, folks, it's crazy, but based on the videos this guy uploaded yesterday to his YouTube channel about the above demos (thanks again to him for uploading them), I have to say that this USBSID-Pico is incredibly good, I can only recommend it to everyone :)

      Delete
  3. wow thats awesome.
    I love that frame glow


    please consider name changing to C64CRTemu
    because on first look, judging by title, I ignored it, I though that this is another c64 emulator, but we have vice.

    also one small detail. when I do close up I see that grid pattern is stronger than scanline patern. I think scanlines should be stronger or grid weaker.
    I remember CRT TV more due to horizontal lines than dots/grid

    and also red tone, is a little bit too much

    ReplyDelete
    Replies
    1. Thank you, I'm glad you like it!
      The name isn't very special, I know, but I have some ideas and will come up with something.
      About the pattern/scanline ratio:
      There are many types of CRT screens, but my implementation is based specifically on my own Commodore 1084s monitor, which has approximately this ratio.
      Brightness, contrast, and saturation can be adjusted in the config file.

      Delete
    2. I didn't have a 1084a monitor, but ok I believe you. The thing is, for me crt is always more about scanline, that the grid. Maybe pc crt monitors had more grid, but the thing is, you made commodore emulator, which most of the people were using in 80/90s, on crt TVs, not crt monitors, and I rememer a lot of crt TVs, where the scanline was more visible than thr grid.
      Maybe I said it in wrong words - I was talking about slice, thinny more stronger scanlines, not thicker, but only stronger, a littlebit more dark colored, just small touch of change.

      and about tonality - today I cleary see that it is too redish, too much red, the blue is not the blue but your blue is blue plus small touch of red. So I understad that I can change it in settings, but I'm talking about default setting for everyone . Please consider that your source - reference point is an old moniotor, which can be uncalibrated, or because of aged/old components, can give you today, a fake colors. I saw video on Ardians Digital Basement on youtube, where he fixed that monitors and the old parts replacement and then color tonality calibration was one of the steps.
      Just search for pictures on google graphics with c64 on CRTs, and you will see that your one is too redish. It never was like that. it was never warm blue, but always cold blue.

      but anyway I love the fact that you made that huge effort to emulate crt. Because today the cancer of the retro world is that everyone is doing fine emulators or even true hadware replica like new c64 ultimate, but they all forget about CRT artifacts, which made all games looks more detailed.
      CRT gives a texture, a pattern, on the game's objects and background, so they are filled with texture, but LCD lacks of it, so all objects looks like empty, without any textures, flat, simple, like lower graphics details settings
      and there is a demand on the market, for that ctr effect emulation, because China made a generator, an adapter, converter, which provide on screen scanline emulation. they sell it on alliexpress and amazon, so it is a prove, that people need it to full noatalgia feeling. That is why I love your hard work to emulate it

      Delete
    3. I completely understand your point of view, and I can promise that in the future there will be more options for CRT emulation parameterization, or at least there will be more templates, and color adjustments will of course be available from the menu.
      And thank you again for your kind words, it's good to read that other people also love the detailed graphics produced by the CRT grid.

      Delete
  4. Just checked this out... I love the menu system and the CRT look. So far its great. Very promising... I will be waiting for updates and joystick support. This is the best look to an emulator I have seen. I like it better than C64 Forever and better than The C64 Maxi hardware. Keep up the great work!

    ReplyDelete
    Replies
    1. Wow, thank you so much, your comment made my day!
      And yes, joystick support is on my to-do list.

      Delete
  5. It is indeed super promising and I'm looking forward to what happens next. The whole CRT presentation I find very refreshing and one of the things that I have been missing so much from the other emus. As the developer of RetroPaint (www.beyond.dk/RetroPaint) I've been seeking for stuff like this, even though it is simulation rather than emulation of the CRT. I wish you the best of luck moving forward. /Theo Engell

    ReplyDelete
    Replies
    1. I didn't used your software yet, but I just checked out the website and it looks pretty awesome, I'll definitely try it out.
      And thanks for the kind words, I wish you the same!

      Delete
  6. This looks great, love the subtle reflection of the screen in the bezel. My old game looks well on this :) I looked for something to change the Contrast, Saturation etc like the knobs on the front did, and also the screen position and size controls that were on the rear of the monitor?

    ReplyDelete
    Replies
    1. Thank you! I'm glad you like it :) Brightness, contrast, and saturation can only be adjusted in the config file for now; they are not yet available in the menu. Screen positioning is also planned, but scaling has a significant impact on the shadow mask VS scanline relationship, so it won't be available for a while, but who knows.

      Delete
  7. Very nice. Love how you implemented the "bulge" of the CRT tube. Looking forward to more

    ReplyDelete
  8. Also DENISE emulator has a perfect CRT emulation by the way. How is this different/better?

    ReplyDelete
    Replies
    1. I tried to simulate the glass and the glow of the grid points, and all this with the same sharpness as it looks on my own 1084s monitor. There is also a little ambient occlusion around the screen. Try it out and decide if you like my implementation.

      Delete
  9. Hi!

    This looks very nice and I can't help but smile on this "oh, I wanted to emulate the SID and as kind of a side effect, here's an emulator with fantastic CRT emulation" angle :)

    I have tried it on a 100 Hz monitor and when VSYNC is enabled the whole emulator gets choppy: it does not matter if I enable frame interpolation or not, or if I enable or disable Freesync (though it looks like the emulator does not use it). It's not just the display but also the music slows down.

    ReplyDelete
    Replies
    1. Haha, thanks :)
      Oh, thank you for the feedback, I'll see what I did wrong. Unfortunately, Freesync is not currently supported, I'm not familiar with it yet.

      Delete
    2. Oh, of course...
      I forgot to make it before the release, even though I had it in mind not long ago that if the frame rate is a multiple of 50 Hz, then I have to wait for more frames in the case of native (without interpolation) vsync. In the current version, at 100 Hz with interpolation, since there will be minimal variance compared to the actual PAL VIC-II framerate, so the moving image will blur and sharpen periodically, and without interpolation (forcing the native refresh rate), the emulation will speed up twice as fast (if the machine can handle it, my emulator is quite resource-intensive).
      I will fix it in the next version.

      Delete
    3. Of course, I'm talking about something completely different than what you wrote... So it slows down... Hmm... Could you give me some details about the configuration you're running it on (CPU, GPU)?

      Delete
  10. The CRT emulation is gorgeous. Well done.

    ReplyDelete
  11. Lorant, I am simply astonished by the quality of your emulator. I really felt to be again in front of my beloved CM8833 CRT monitor and I pumped up the volume of my loudspeakers to believe it. That's simply the best CRT reproduction I've ever seen on a C64 emulator and I really hope you'll add USB joypads support as soon as possible, since playing with keyboard is not C64ish at all. :-)

    Keep up the good work!

    ReplyDelete
    Replies
    1. Hi Paolo,
      I am very happy that I was able to give you a happy nostalgic experience. I was waiting for the opinion of someone who used their C64 with a good CRT monitor.
      My own observation is that, although I have huge respect for the creators of implementations that emulate complex video signal glitches, most of them are not truly visible on a really good CRT monitor unless the computer has a very early VIC-II, whereas on a modern LCD TV, almost every ugliness is visible. In my opinion, LCD TVs actually amplify all interference, and when these are emulated, I feel like I'm sitting in front of an LCD TV, not a good old CRT monitor. I thought that people wanted to get rid of these glitches so that the picture would be as clear as it used to be in the old days.
      Of course, I could try to put these into my emulation, but then the question of what is the point of yet another emulator alongside the existing ones would be justified. Instead, I tried to simulate the mixing of RGB components at each grid point as realistically as I can, experimenting with local bloom effects to make the grid as lifelike as possible, which of course only really shows up on ultra high resolution monitors.
      I'm putting joystick support higher on my to-do list, because it's really quite important.
      Thank you very much, I hope to be able to post a new version on the blog soon!

      Delete
    2. I absolutely agree with you. The C64, 128 and Amiga computers were meant to be used with good quality equipment to truly express themselves: using TV sets was a cheap and ready-to-go, but absolutely unpleasant option. People claiming they wish to have glitches, distortions and color aberrations in their emulation experience are just people who suffered at the time and today they would like to suffer again, but masochism has nothing to do with the efforts Commodore engineers put in their creations. At the time I had to spend a lot of money to get rid of all glitches, so seeing them again is absolutely not a priority to me. Thanks for your efforts on joystick support, it will help all of us a lot. Kind regards.

      Delete
    3. BTW: since you're prioritizing joypad support, please don't forget second fire button support. More and more modern games are using this option as well.

      Delete
    4. Thanks for the tip, I'll add a mapping option so that you can assign keys or any joyport input line to extra buttons and directions, so that both joy ports can be controlled with a single multi-direction controller if you want. I also thought that analog directions could be connected to SID pot inputs, and if we want to use them as digital inputs, I will of course make it possible to configure the dead zone. I can't promise that it will be ready in a few days, and it's possible that only some of the listed features will be implemented in the first round, but I will treat the introduction of controller support with priority.

      Delete
    5. Ok, I see what you mean, additional fire implementations on real hardware, like a button on a POT input. There will be such an option too, I just misunderstood you, because I hadn't heard of it, I just read up on it now.

      Delete
  12. Hy, as with any other emulator, i'm going to offer help with implementing support for the VICE testbench, should you want this -> see https://vice-emu.pokefinder.org/wiki/Testbench ... you'll a couple simple features in the emulator.

    Get in touch if you are interested :) /GPZ

    ReplyDelete
    Replies
    1. Hi GPZ :)
      Thank you for your kind offer! I would be very happy if my emulator could be added to the results list on your site.
      I must confess that I have already used several test programs from this great repository, and what's more, this version already includes the Debugcart function, which can be enabled in the config file with the variable DEBUG_CART_ENABLED (valid values 0 or 1).
      There are two other optional variables that I found useful, but they should obviously be left disabled for your tests: DEBUG_CART_DONT_QUIT and DEBUG_CART_SCREENSHOT.
      Please let me know if there is anything else I need to do to move forward.
      I may also be able to provide some test programs myself in the future, if you are interested in such things.
      Thanks in advance!

      Delete
  13. I just got to try your excellent C64 emulator. It looks really stunning!
    I hadn't especially tried to chase a CRT look with the C64 because none of the emulators did a version of it that I liked. But this one I can stare at, see the reflection in the bezel, and really start to think it's a tube. Nicely done. 👍

    I echo other people's thoughts that joystick support would be nice. For anyone who hasn't tried it, joytokey.net/en can be used to quickly get any joystick working here. I used it to map multi-key games like Tau Ceti, Elite, and Airborne Ranger on VICE. 😊

    For recording video, I'll use OBS Studio and capture the screen directly, with all that bloom, grid, and pincusion goodness. But I also like to create gif's from the games I play sometimes. The current screenshot option is perfect, where it can output a simple 384x265 png image. Could an option be added to save a screenshot for every PAL frame? Then I could drag them into ScreenToGIF, double the pixels, and save gifs like these:
    https://drive.google.com/file/d/1jgeASl_T_PkaLJFMUvEdkpdmq0repmWu/view?usp=drive_link

    https://drive.google.com/file/d/1vd4Yf9qDfZlgclg8mA9QnGzTQeNd4n6Q/view?usp=drive_link

    Thanks!

    ReplyDelete
    Replies
    1. Thank you very much for the compliment!
      I have already partially finished the joystick support, I still need to integrate it into the menu system so that it can be configured, but I think you can expect a usable version within a week. I even successfully connected analog steering to the SID POT inputs so that it works quite well with Final Cartridge III in 1351 mode. I would also like to implement the latter specifically for mouse integration, and then the next release can come.
      I also use OBS for screen recording, but I plan to add a video recording option as well, although I don't know when that will be. BTW, I like your idea about saving image sequences, so I think I'll do that too :)

      Delete

Post a Comment