THE HACKER'S VIEW OF THE COMMODORE 64

Mar 12, 2020

ICU64 for VICE 3.x v0.1.3 - Released

A long awaited update of the ICU64 for the VICE 3 emulator is ready for download. While I'm still working for the v0.2, the new features of this release are trying to reduce the gap from the more feature rich ICU64 for Frodo. Among the unique features of this version, the new .icu file format, is more generic and can be used with bigger success with other emulators also. Please, read carefully the new instructions about how to install and run, and thank Sebastian who pushed me for this release. For any bug/issue/question post a comment or send me an email.

Update 2023.07.27: Download support for VICE 3.7 


Known issues

  • symptom: memory view '1' (cpu events) shows no events (all cells are black)
    cause: icu64 failed to connect to the emulator automatically when it started
    fix: press ALT+F5 in icu64 to connect to the emulator manually

13 comments:

  1. Thanks for the update!

    VICE has implemented a new "binary interface", which I presume is what you need to access the emulated engine from outside. Would it be possible for you to utilise this so that ICU would hence forward be compatible with all and any builds, and not relying on you making custom builds?

    Also; the idea of zooming into the memory map looks really kewl, connecting the overall view with the hexdump view. Mouse wheel zoom is also really handy. But when I get down to the hexdump level navigating is a lot less handy. Just cursors. No page up/down, home/end or ctrl+cusrsor for faster navigation. These would be most handy additions.

    I would very much like to be given an option to centre the view to some place (possibly CTRL+G and then entering an address like in c64 debugger). As a mean to "teleport" the view to a specific address of interest.

    ReplyDelete
    Replies
    1. Thanks for your suggestions, but seems like you haven't pressed F1 (help) in the memory view (and any other window). There are many shortcut keys for navigation, cell selections, map editing, and c64 state editing. For example:
      The HOME key shows you the whole map. Press ALT+1/2/3 to set the HOME zoom level. Use the cursor keys to scroll up/down/left/right cell-by-cell. Use -/= (near backspace) to move to the prev/next cell address. Auto-scroll by dragging with the right mouse button and release it while having some momentum. And CTRL+G indeed 'teleports' you to any address.

      As for the API of VICE, I haven't examine it yet because: 1) I guess it's a very slow interface (as all APIs) for the needs of ICU64. 2) I don't know if gives me access to the 'memory map' (the memory access log), which is buggy anyway. 3) ICU64 operates as a generic debuger, and can work with other C64 emulators too (VICE is just the 'reference' emulator)

      I have to rebuild VICE just to fix the banking issues of its memory map, and I supply the source code also (for second time), so someone from the VICE Team to embed it and/or improve it. Then I could supply only the ICU64.EXE (<256KB), or even just the .icu files, and much more often.
      Also, if someone wants ICU64 with other public or custom builds of VICE, all he has to do is to alter or create a new .icu file (an easy task for any hacker; I suggest the CheatEngine to locate the addresses of the fields).

      Delete
    2. Thanks!

      I did find the F1 option, but only in the main window. Didn't realise there was a per windows help menu.

      Now I see the range of functions. Again, thanks.

      I guess the only part I still miss is the ability to rearrange it. For example, getting a general view of say zeropage isn't really possible unless you have a REALLY wide screen ;-)

      I can't tell the speed of the interface as it's really new and also very experimental at this stage. The core of this wish is still that ICU would work with any future version of VICE without expecting you to make a special build of it. The monitor is developing and also the keymap has also changed a bit, which makes toggling between an ICU fork and trunk is quite confusing.

      This is one of the posts in the discussion that contains the thread:
      https://sourceforge.net/p/vice-emu/mailman/message/36967495/

      Please keep nagging on fixing bugs! I'd be happy to help advocating it. Do you have a reference to a bug report that contains the issue of the memory map?

      Delete
    3. For example, to re-arrange the zero page as a 16x16 table:
      [CTRL+G] [0]
      [CTRL+G] [+10]
      [ENTER]
      and repeat 15 times: [G] [ENTER]

      For more complex layouts do heavy use of F2,INSERT, copy/paste selections and set relative addresses on selections, or generate a text file manually or using a script language and import it as a map.

      To change the keymap, the palette, etc, merge the folder of my build (the WIN version only, not the SDL) with the official build (read the readme.txt and the dir.txt in my release).

      The bug in the memmap of VICE in well known as they have a FIXME note inside the source code (for over 10 years). As for the new binary interface, I'll check it when I found some time.

      Delete
    4. I checked the proposed API for the VICE. That's a classic client/server protocol with 'kind' handshakings for everything is allowed and only. It has to be complex to support everything, and needs functions calls even for simple things (too slow). It doesn't give access to the memory accesses, which is the most important for icu64. And even if allowed, it will need faster computers to build a user interface similar to icu64. In general, it is far away from my approach, which will be seen in VICE (and Frodo) in v0.2 at github when it will be ready.

      Delete
  2. One other wish would be to be able to define the length of a row. The current setup is fixed to a page. Inspecting a hex dump that is really too much ...

    ReplyDelete
    Replies
    1. CTRL+N creates a new map with the desired dimensions. Also you can alter the dimensions of any map using: CTRL+BACKSPACE which inserts a cell in the current position, while extends the right side of the map (new columns on the right side). ENTER extents the map vertically (new rows). SHIFT+ENTER which concatenates two lines, alters the dimensions of the map to fit both lines in one.
      Though, copy/paste blocks of cells (selections), not alter the dimensions currently, but this will be fixed in the future.

      Delete
    2. Also, to reduce the dimensions of the map: F5, trims all the empty columns on the right side. SHIFT+DEL, deletes a row and decrements the height of the map by one.

      Delete
  3. CTRL+N gives a matrix, but it has no content... ???

    ReplyDelete
    Replies
    1. ...to build any layout you want (see the map editing shortcuts in the help). For example:
      Hit INSERT (above the DELETE key, not in the numpad) to insert the first cell. Then press F2 on the cell to change its address. To put more cells (with successive addresses, as it is common): right-click on a full cell to get its address then hit INSERT to an empty cell twice! (only the first time). Any following hit of INSERT will insert a cell with address that advances by one every time.

      You can select multiple cells, clone them, and advance all their addresses at once with F2 and typing a relative (+/-) address. It's possible to build the hires graphics layout (8000 bytes) in less than 2 minutes.

      Delete
  4. I intended to mess around with this a bit tonight, but got a trojan warning for Trojan:Script/Wacatac.C!ml

    While it could be a false positive (I have no intention of testing this!), I wanted to check to make sure someone hasn't hacked your blogspot page and implanted a trojan in your download link!

    ReplyDelete
    Replies
    1. ICU64.EXE is extremely malicious... but only for the emulator that monitors ;-) Just verify the original hashes bellow, and you are safe!

      File:icu64-for-vice3.x-v0.1.3.7z
      MD5:98a2ba519a5d0b961fe221c5d0f7edca
      SHA1:273c1822c92797d4a3db21281b174efc24dc5f1b

      File:icu64.exe
      MD5:01828aca628cebba491242aa7525e6ef
      SHA1:8be52d5755cdb2e902a496073f8c1ac09bba0d02

      Delete
  5. thanks for updated version. :)

    ReplyDelete