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
Thanks for the update!
ReplyDeleteVICE 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.
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:
DeleteThe 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).
Thanks!
DeleteI 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?
For example, to re-arrange the zero page as a 16x16 table:
Delete[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.
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.
DeleteOne 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 ...
ReplyDeleteCTRL+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.
DeleteThough, copy/paste blocks of cells (selections), not alter the dimensions currently, but this will be fixed in the future.
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.
DeleteCTRL+N gives a matrix, but it has no content... ???
ReplyDelete...to build any layout you want (see the map editing shortcuts in the help). For example:
DeleteHit 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.
I intended to mess around with this a bit tonight, but got a trojan warning for Trojan:Script/Wacatac.C!ml
ReplyDeleteWhile 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!
ICU64.EXE is extremely malicious... but only for the emulator that monitors ;-) Just verify the original hashes bellow, and you are safe!
DeleteFile:icu64-for-vice3.x-v0.1.3.7z
MD5:98a2ba519a5d0b961fe221c5d0f7edca
SHA1:273c1822c92797d4a3db21281b174efc24dc5f1b
File:icu64.exe
MD5:01828aca628cebba491242aa7525e6ef
SHA1:8be52d5755cdb2e902a496073f8c1ac09bba0d02
thanks for updated version. :)
ReplyDeletea question: where have the colors gone? in VICE 2.3 we had colors in multicolor mode, not anymore. is there a specific reason for this?
ReplyDeletethank you. :)
Those colors, in the graphics view, were the first 4 colors of the C64 palette. But since most games almost always assign different colors, I abandon them, and replaced them with grayscales that represent 0:black, 1:dark gray, 2:light gray, 3:white
Deleteto emphasize the color index rather than the color itself.
Aha, i see! Thanks for explaining...
Deletei cannot really make it working in my windows 11 laptop. there's no way to get VICE running at 100% speed.
ReplyDeletethat's weird, it works just fine in my much, much older windows 7 systems.
Speed is fine in my case but I have a different strange issue in Windows 11 (on a virtual machine): The c64 screen is semi-transparent, i.e. i can see the desktop behind the c64 screen. The important I want to note about the Windows 11 is that if you have the 'Force randomization for images (Mandatory ASLR)' enabled, then the ICU64 will not be able to connect to the VICE process. And that my builds and tests are on mainly on Windows 10.
Deleteinteresting, i do not see this semi-transparent issue on my windows 11 system.
Deletebut process hacker shows the x64sc.exe as a "debugged process" constantly. icu64.exe eats the whole core where it is running, right after starting. and the bytes at 0314/0314 (just as an example, i guess all are flashing, no matter if there is any activity) are flashing nonstop.
so: it in theory does work, but still it's useless, as the emulator speed drops under 50%
might be some setting in windows 11
Try these:
Delete- open both and close only the icu64. if the vice is still slow then it's a vice issue (verify that Preference > Emulation Speed = 100%).
- open both and close only the vice. open the memory view of ic64 and navigate around with the mouse also check in the task manager the cpu consumption of the icu64.exe (must be <1%).
if both alone work OK, then it's a windows API debug issue or a windows 11 protection setting issue. if both alone are slow then your CPU/GPU is extremely slow or you need updated drivers.
Also to disable the ASLR go to Windows Settings > Privacy & Security > App & browser control > Exploit protection > Force randomization for images (Mandatory ASLR) = OFF.
Ok,
DeleteI already knew VICE itself runs just fine, it also warps at 1200%
But ICU64 "standalone" ate around 8% CPU time.
Then i disabled all that ASLR stuff, did a reboot, and now it works as expected. ICU64 "standalone" still at 2% in default memory window size, but that's ok. Increasing the memory window size and zooming in heavily influences the CPU time ICU64 uses. We need a multicore ICU64. :) Thanks for developing.
Thanks also for the ASLR tip, that really was helpful.
Any chance of any update with updated VICE engine in it?
ReplyDeleteThe VICE Team usually makes a new release every December or January. I think is better to wait for a while, to support the next release.
Delete