tag:blogger.com,1999:blog-33550829823142924312024-03-27T08:36:40.631+02:00ICU64The Hacker's View of the Commodore 64mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-3355082982314292431.post-79624776369757505302021-12-31T13:45:00.031+02:002022-11-09T11:08:30.700+02:00 ICU64 for Frodo Redpill v0.1.8 - Released<p><span style="font-size: medium;">Download the new version <a href="https://drive.google.com/file/d/1mGgdYI0kcH2lmU8FA_vkZmd45Mi0vms4/view?usp=sharing">here</a>.<br /><span style="font-size: small;">(also download the latest <span style="font-size: medium;"><a href="https://drive.google.com/file/d/1fnMbHWoPwmQBJWkQShlOdnpvclrulU4W/view?usp=sharing">update</a></span> 2022.01.08)</span><br /></span></p><p></p><p><span style="font-size: large;"><span style="color: #666666;"><b><span style="font-size: large;"><span style="color: #666666;"><b>New features of </b></span></span>Frodo Redpill:</b></span></span><br />- Multiple independent instances<br />- Preferences > Redpill > 'Extra Shared RAM' option<br />- CPU boost<br />- <span style="color: #b6d7a8;">.<a href="https://icu64.blogspot.com/2021/12/icu64-for-frodo-redpill-v018-released.html#hack_format">hack</a></span><a href="https://icu64.blogspot.com/2021/12/icu64-for-frodo-redpill-v018-released.html#hack_format"> </a>file format (for data injection and boost control)<br />- drag'n'drop files: .fpr .hack<br />- improved REU emulation <br /><span style="color: #666666;">- Window/Display management:</span><br /> - [<span style="color: #ffa400;">F11</span>] toggle window frame<br /> - [<span style="color: #ffa400;">Ctrl+RMB+drag</span>] move window<br /> - [<span style="color: #ffa400;">RMB+drag</span>] move all windows of all instances<br /> - [<span style="color: #ffa400;">Alt+arrows/Home</span>] control screen offset in smaller viewports<br /><br /></p><p><span style="font-size: large;"><span style="color: #666666;"><b><span style="font-size: large;"><span style="color: #666666;"><b>New features of </b></span></span>ICU64:</b></span></span><br />- Multiple independent instances<br /><span style="color: #666666;">- memory view:</span><br /> - view [<span style="color: #ffa400;">6</span>] : Changed values<br /> - view [<span style="color: #ffa400;">7</span>]/[<span style="color: #ffa400;">Ctrl+F</span>] : Find values (in current map layout)<br /> - extras [<span style="color: #ffa400;">F4</span>] : added REU view (if enabled)<br /> - Extra Shared RAM @ DE00..DEFF of MMIO (if enabled)<br /> - selection [<span style="color: #ffa400;">LMB+drag</span>] > [<span style="color: #ffa400;">Ctrl+C/V</span>] : copy/paste via clipboard<br /> - status bar [<span style="color: #ffa400;">F10</span>] : added current cell coordinates<br /><span style="color: #666666;">- code painter:</span><br /> - [<span style="color: #ffa400;">New</span>]&[<span style="color: #ffa400;">Clear</span>] (to reduce close & reopen of this tool)<br /><span style="color: #666666;">- instruction logger:</span><br /> - [<span style="color: #ffa400;">Break New</span>]&[<span style="color: #ffa400;">PC only</span>] (to locate easier first time executed code)<br /><span style="color: #666666;">- .NET API:</span><br /> - peek/poke renamed as <span style="color: #b6d7a8;">Peek</span>/<span style="color: #b6d7a8;">Poke</span><span style="font-size: large;"><span style="color: #666666;"><b><br /></b></span></span> </p><p></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="289" src="https://www.youtube.com/embed/FVv8YHWo1i8" width="499" youtube-src-id="FVv8YHWo1i8"></iframe></div> <span style="color: #999999;"><b> </b></span><p></p><p><span style="color: #999999; font-size: medium;"><b><span style="color: #b6d7a8;">Multiple Instances</span><br /></b></span><br />You can start multiple -independent- instances of ICU64 & Frodo Redpill that are totally isolated. However, to utilize some parallelism, you can optionally enable the 'Extra Shared RAM' (in Frodo > Preferences > Redpill) that provides 256 bytes of extra RAM (at DE00..DEFF in MMIO). This RAM is common among all the Frodo instances that have this option enabled. Be aware that this shared pipeline has max bandwidth only 256 bytes/frame = 12.5KB/s and latency = ±1 frame (I'm working to improve these...). The previous 'unlocked' instances (where the whole RAM and COLORRAM both shared) is still available; just start the emulator holding the [<span style="color: #ffa400;">SHIFT</span>] key.</p><p><span style="color: #999999;"><b> <br /><span style="font-size: medium;"><span style="color: #b6d7a8;">CPU Boost </span><br /></span></b></span><br />The 'CPU Boost' feature is a clock multiplier (a turbo) for the CPU of the C64. The rest of the chips (VIC,SID,CIAs) operate in the original speed and preserve the real-time features of the system. It is similar to the turbo switch of the <a href="https://en.wikipedia.org/wiki/SuperCPU" target="_blank">SuperCPU</a> for the real hardware, but in Frodo Redpill boost is controlled automatically by a .hack file. For example, say you have a 3D game that calls its -slow- rendering routine with an instruction like:<br /><span> </span><code><span> </span>1204 JSR 3120<br /><span> </span>1207 ...</code><br />If you create a .hack file that contains:<br /><code> +1204<span> </span>; enable boost when 1204 is executed<br /> -1207<span> </span>; disable boost when 1207 is executed</code><br />and drop this file inside the emulator, then the routine at 3120 will be executed 63 times faster! I think you get the idea...</p><p>Note that every time you apply a .hack file, the boost map of the emulator resets. You can use this to turn off the boost feature without restarting the emulator or editing your .hack file; just keep an empty 'foo.hack' file around and drop it to the emulator anytime you want to turn off boost globally.<br /><br /></p><p><span style="color: #999999; font-size: medium;"><b><span id="hack_format" style="color: #b6d7a8;">The .hack file format</span><br /></b></span> <br />A .hack file is a text file with a simple syntax, that simplifies the application of patches to a running C64 software, and also controls the boost of the C64 CPU. A command in a .hack file starts with a single symbol:<br /><code> # comment<br /> ; comment too<br /> : poke<br /> + boost on<br /> - boost off</code><br />After a poke or boost command follows a hex address, and in the case of poke it follows an array of hex byte values that can expand in multiple lines. Some examples:<br /></p><p><code> # this is a comment<span> </span>; this is a comment too<br /> :400 08 05 0c 0c 0f ; poke some bytes at $0400 $0401 ...<br /> :2d020 00 <span> </span>; make border black (MMIO @ 2xxxx)<br /> +1800 <span> </span>; turn on boost at $1800 (x63)<br /> -1860 <span> </span>; turn off boost at $1860 (x1)<br /></code></p><p><span style="color: #999999; font-size: medium;"><b><br /><span style="color: #b6d7a8;">.NET API</span><br /></b></span><br />To avoid some issues, the peek[]/poke[] functions renamed as Peek[]/Poke[], and the <a href="https://drive.google.com/file/d/1DcUPfYUi9CAxjJzAnU-brI5-51YFI0da/view?usp=sharing">sample code</a> for the Mathematica has updated too.<br /></p><p> <br />Enjoy!</p>mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.com0tag:blogger.com,1999:blog-3355082982314292431.post-54049672437010087992020-03-12T16:10:00.006+02:002024-03-26T12:55:37.797+02:00ICU64 for VICE 3.x v0.1.3 - Released<p></p><p>A long awaited update of the ICU64 for the VICE 3 emulator is ready for <a href="https://drive.google.com/file/d/1irJGPCLcrdx9NPsGZiAUqzO2Q1DtF4ug/view?usp=sharing">download</a>. 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.</p><p></p><p></p><p></p><p></p><p></p><p></p><p><span style="background-color: #444444; font-size: medium;"><b>Update</b> 2023.07.27: <a href="https://drive.google.com/file/d/166YA9SzX8Z27hUmorHt65x0_VolvKqax/view?usp=drive_link">Download</a> support for VICE 3.7</span> </p><p><br /> <span style="color: #666666;"><b>Known issues</b></span><br />
</p><ul><li><span style="color: #990000;"><span style="color: #cc0000;"><span style="color: #cc0000;"><span style="color: #a02020;"><b>symptom</b></span></span></span></span>: memory view '1' (cpu events) shows no events (all cells are black)<br /><span style="color: #f1c232;"><b><span style="color: #a0a020;">cause</span></b></span>: icu64 failed to connect to the emulator automatically when it started<br /><span style="color: #6aa84f;"><span style="color: #20a020;"><b>fix</b></span></span>: press ALT+F5 in icu64 to connect to the emulator manually<br /></li></ul>mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.com13tag:blogger.com,1999:blog-3355082982314292431.post-39114291433768557142018-11-01T16:09:00.002+02:002022-03-26T14:00:43.452+02:00ICU64 for Frodo Redpill v0.1.7 ReleasedDownload the new version <a href="https://sites.google.com/site/mathfigure/icu64frodorp-0.1.7.zip" target="_blank">here</a>.<br />
(<span style="font-size: x-small;">and also the</span> <a href="https://sites.google.com/site/mathfigure/frodorp-0.1.7-patch3.zip">patch</a>, <span style="font-size: x-small;">last update 2019.11.17</span>) <br />
<br />
<span style="font-size: large;"><span style="color: #666666;"><b>New features </b></span></span><br />
<br />
<b>In ICU64:</b><br />
- bug fixes<br />
- block edits in memory view<br />
- static code analyzer tool<br />
- sync mode option<br />
- 'peek & poke' via .NET interface<br />
<br />
<b>In Frodo Redpill:</b><br />
- bug fixes<br />
- drag'n'drop .d64, .t64, .prg, and .fss<br />
- SID Voice 3 mute works<br />
- REU support increased up to 16MB<br />
- ROM files embedded to the .exe file<br />
- multiple instances unlocked<br />
<br />
<span style="color: #666666;"><b>Sync Mode</b></span><br />
In sync mode, Frodo Redpill and ICU64 operate in alternation and absolute synchronization at rate of 50Hz. They run like sharing a single thread on the host CPU (which needs more GHz in this mode, not cores). Most of the time you should use the asynchronous mode (since it is lighter), but the sync mode is a lot more visually pleasing, as far as you can turn your monitor at 50Hz (otherwise may not worth to enable this mode!). So the steps are:<br />
- Turn your monitor at <b><span style="color: #e69138;">50Hz</span></b> (most display drivers have user settings for that)<br />
- Press <span style="color: orange;"><span style="color: #e69138;"><b>ALT+F5</b></span></span> in ICU64 to switch to sync mode (watch the indication on the main title)<br />
- Enjoy the absolute smooth motion and perfect sync on both programs.<br />
<br />
<span style="color: #666666;"><b>Multiple Instances (experimental)</b></span><br />
Multiple instances combined with memory sharing is the long name of parallelism. And this feature is all about parallelism. You can now run multiple instances of Frodo Redpill that share some of their parts. And even if the control of sharing is minimal yet, is enough to start dealing with the problems and the benefits of parallelism.<br />
So, try to start a second instance of Frodo Redpill and you will see three options: <br />
<ul>
<li>The first option is to press '<span style="color: orange;"><b>Cancel</b></span>' and quit, to avoid any change to the state of the first instance (choose this if accidentally you started a new instance).</li>
<li>The second option is to press '<span style="color: orange;"><b>No</b></span>' and you will have a minimal sharing between two C64s. Then you can start, for example, different games in parallel and watch them fighting for their colors.</li>
<li>The third option is '<span style="color: orange;"><b>Yes</b></span>' and is mainly for 6502 programmers, as the first thing will happen is to <b>crash </b>both C64s (not the external apps, only the internal virtual machines). To start without crash is a challenge; first you must realize the problem and then you'll have to write some code (ask me for help if you want). After you find a way, you may start exploit the benefits of multiple CPUs on a C64 writing custom programs.</li>
</ul>
A host CPU with multiple cores is beneficial with this feature, as there is no limit to the number of instances you can start in parallel.<br />
Note that this feature is experimental; done by minimal modifications in the emulator side only. ICU64 is ignorant of the secondary instances (those having an <b>asterisk '*'</b> on their title). So you'll not helped much. Though you can watch all memory accesses from all instances, in some views (like the raster view) all these events interfere and get messy.<br />
Note also that if you close or crash the primary instance, then any new instance will be secondary. And the only way to receive a primary instance again, is to close them all, and start new ones.<br />
<br />
<span style="color: #666666;"><b>Code Painter</b></span><br />
The 'Code Painter' in the misc tools of ICU64, is a static code analyzer. It works on a snapshot of the RAM that takes every time it opens.The disassembly of the code starts from a user specified address, and it follows the flow of execution until to reach a top level RTS/RTI, a BRK, a loop, or a 'JAM'. As a basic rule it never disassembles the same address twice.<br />
Theoretically, if you specify the entry point of a program, it should disassembly the whole code. But the CPU of the C64 has <b>3 threads</b>: RESET (the main thread), IRQ (most interrupts), and NMI (RESTORE key and CIA2 interrupts). Also, because the analyzer is 'static', it can't deal with dynamic changes in places like:<br />
- IRQ vector ($fffe..$ffff)<br />
- NMI vector ($fffa..$fffb)<br />
- memory banking ($00..$01) (bank switching) <br />
- destination address of the 'jmp $(xxxx)' instruction<br />
- return addresses on the stack<br />
- the code itself (in case of self-modifying code)<br />
Neither fully supports the undocumented instructions of 6502. Indeed, there are many restrictions. A dynamic code analyzer that will bypass any restriction, will be one of the main features in the future. For now, though 'static' is still useful.<br />
As an example, check the game 'Barbarian'. After LOAD & RUN, its code occupies a single continuous region in memory and is mainly static. The only dynamic part is the destination address of a 'jmp $(xxxx)' instruction, and all its destinations (10 in total) located in a array of pointers that's easy to find. So, if you disassemble the main thread (hint: barbarian stays resident after reset), and also the IRQ, the NMI, and the 10 destinations of the 'jmp()' instruction, then you will get a nicely structured form of the whole code!<br />
Also, even if the Code Painter can't read any ROM, if you copy the ROM into the RAM, you can disassembly there the KERNAL and the BASIC.<br />
<br />
<span style="color: #666666;"><b>.NET Interface (for programmers)</b></span><br />
This is another way to control the C64 virtual machine via an easy to use API. Currently allows you only to peek & poke the RAM, ROM, and MMIO of the C64 using any .NET 2.0 compliant language. You can peek & poke single bytes or multiple bytes at a time.<br />
Here is some <a href="https://sites.google.com/site/mathfigure/peek_and_poke_181130.zip?attredirects=0&d=1">sample code</a> in Mathematica. Start Frodo Redpill (without the ICU64), open the sample code, correct the path to ICU64.EXE, and run the examples.<br />
<br />
(Note: Don't confuse this .NET interface which exposed by ICU64 with the more powerful -and undocumented yet- 'redpill interface' which exposed by Frodo Redpill itself)<br />
<br />
<br />
<span style="color: #666666;"><b>Known issues</b></span><br />
<ul>
<li><span style="color: #990000;"><span style="color: #cc0000;"><span style="color: #cc0000;"><span style="color: #a02020;"><b>issue</b></span></span></span></span>: In some rare cases, Frodo Redpill crash very often by just clicking or dragging few times the window title.<br /><span style="color: #f1c232;"><b><span style="color: #a0a020;">cause</span></b></span>: The bug is related to the sound system.<br /><span style="color: #6aa84f;"><span style="color: #20a020;"><b>fix</b></span></span>: option 1: Change the DirectSound option in Preferences > WIN32<span style="font-family: "courier new" , "courier" , monospace;">.</span><br /> option 2: If the above fail, restart the Windows.<br /> option 3: If all fail, disable the SID Emulation in Preferences > Standard.</li>
</ul>
mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.com2tag:blogger.com,1999:blog-3355082982314292431.post-17046902668408938732015-06-01T18:00:00.000+03:002019-10-09T12:16:43.227+03:00ICU64 for Frodo Redpill v0.1.6 - ReleasedThe creation of memory maps gets easier with this <a href="https://sites.google.com/site/mathfigure/icu64frodorp-0.1.6.zip">release</a>.<br />
<br />
<span style="color: #999999;">New features in the memory view:</span><br />
<br />
<span style="color: #666666;"><b>BASIC program layout</b></span><br />
Load or type a BASIC program and hit <span style="color: #e69138;">ctrl-L</span> in the memory view to watch the memory map of its code. After RUN, you have to press ctrl-L periodically to update that map, because a running BASIC program updates the layout of the data area (which is located after the code area) as it meets new variables for the first time. Enable the text view (<span style="color: #e69138;">ctrl-A</span>) to get a more meaningful view (or type LIST in the emulator but this is like cheating!)<br />
<br />
<span style="color: #666666;"><b>Data Classification (Order In Chaos)</b></span><br />
The data classification view colorize the memory in a chaotic still consistent way. And using only your <span style="color: #999999;"><b><span style="background-color: black;"><span style="color: white;">pattern recognition</span></span> </b></span>abilities you can organize the data even if you don't understand their meaning!<br />
So far, watching the internals of the C64 in action may was something, yet you may have this feeling: "wow! I see everything :) but still I understand almost nothing :(". Well, the new feature lets the CPU to interpret to us the meaning of the data using a color language. And no, you don't have to learn another color code, since these colors are meaningless this time (it's just a meaningless 'alphabet'). What's important is their patterns (i.e. the 'words' and 'phrases' that they form). These patterns are not the usual data patterns (as in the grayscale view), they are <b><span style="color: white;"><span style="background-color: black;">event patterns</span></span></b> arranged in space that highlight the internal structure of the data as being used by the code (who always knows their meaning, and this is where we rely).<br />
More particular, this visualization is based on 'what code access what data', and actually it's a simple hash function of the "last access" address that located in the upper left corner of every cell (visible in deep zoom). So, actually, this information was always there in a numerical/textual form, proper only for serial/boring reading. By translating this information into colors, patterns emerge (from chaos!) that can be recognized immediately by the human brain <b><span style="color: white;"><span style="background-color: black;">in </span></span></b><span style="color: #999999;"><b><span style="color: white;"><span style="background-color: black;">parallel</span></span> </b></span><span style="color: #999999;"><b> </b></span>way, and organized manually. This view is especially useful to find large internal structures like arrays or lists of data, and analyze their entries down to their most individual parts.<br />
<br />
<span style="color: #666666;"><b>Map Editing</b></span><br />
Some new functions that will help you with your memory maps:<br />
<span style="font-family: "verdana" , sans-serif;"> <span style="color: #e69138;">Enter</span> / <span style="color: #e69138;">Shift-Enter </span> :<span style="font-family: inherit;"> Split / Join line</span><br /> <span style="color: #e69138;">Backspace</span> / <span style="color: #e69138;">Shift-Backspace</span> :<span style="font-family: inherit;"> Move line Left / Right</span></span><br />
(the above operations never overwrite non empty cells)<br />
<span style="font-family: "verdana" , sans-serif;"> <span style="color: #e69138;">Delete </span>/ <span style="color: #e69138;">Shift-Delete</span> : <span style="font-family: inherit;">Delete cell / line</span><br /> <span style="color: #e69138;">right click</span> / <span style="color: #e69138;">Insert</span><span style="color: #990000;">*</span> : <span style="font-family: inherit;"><span style="font-family: inherit;">P</span>ick cell / <span style="font-family: inherit;">P</span>ut cell++ </span></span><br />
<span style="font-family: "verdana" , sans-serif;"> <span style="color: #e69138;">F2</span><span style="color: #990000;">*</span> : <span style="font-family: inherit;">Rename cell (change address)</span></span><br />
Note that the editing functions are minimal yet, and they are line oriented. If you want to move blocks around you must export the map and use some spreadsheet application.<br />
<span style="color: #990000;"><span style="font-size: x-small;"><span style="font-size: small;"> *</span> edit: bugs found on these operations that may mess your map, so avoid them <span style="color: #38761d;">(fixed in version 0.1.7)</span></span></span><br />
<br />
<span style="color: #666666;"><b>Drag 'n' Drop</b></span><br />
If you drop a .txt file in the memory view, it will open as a memory map. Any other file will be imported as a .prg file (i.e. will be loaded in the RAM at the location that the first two bytes specify). BTW, the Frodo Redpill window accepts .fss files (Frodo snapshots).<br />
<br />
Press <span style="color: #e69138;"><b>F1</b></span> on every window (even in the main menu) to see more functions.<br />
<br />
You can also <a href="https://sites.google.com/site/mathfigure/icu64-memory-maps.rar">download</a> some generic memory maps that may help you. Especially the RAM only map, it's a good start point to create the map of a game.<br />
<br />
<br />
<span style="color: yellow;"><b>How to create a memory map, in practice:</b></span><br />
- start a game in the emulator and wait until it gets into its main loop<br />
- from the memory view of icu64, import (<span style="color: #e69138;">ctrl-i</span> or <span style="color: #e69138;">drag'n'drop</span>) the RAM only map (so you don't mess with the ROM and the MMIO while editing the map)<br />
- press<span style="color: yellow;"> <span style="color: #e69138;">shift-ctrl-X</span></span> to clear the colors and thus start a new log (do this at any time)<br />
- (optional) switch to view '<span style="color: #e69138;">1</span>' or '<span style="color: #e69138;">3</span>' (cpu events) and play with the game for a while until you locate its code areas to remove them (since the data classification is meaningless with the code parts). Use '<span style="color: #e69138;">shift-delete</span>' to delete entire lines.<br />
- switch to view '<span style="color: #e69138;">2</span>' (vic events) to find the bitmaps, text screens, charsets, and sprites, all of which have 'standard' layouts usually (the graphics view will help you with this). <br />
- switch to view '<span style="color: #e69138;">4</span>' (data classification) and play with the game as much as possible, so the code to exploit much (if not all) of its data. As you start seeing similar patterns in the memory view, hit '<span style="color: #e69138;">enter</span>' over the beginning of each pattern to send it to a new line. The goal is to align the similar patterns vertically. To join two lines, hit '<span style="color: #e69138;">shift-enter</span>' on the first line.<br />
- if some colors are very similar, hit '<span style="color: #e69138;">0</span>' to get a different set of colors<br />
- note that even with an incomplete map, you can probably locate lists of pointers/offsets (they have very characteristic patterns) to the patterns you have found so far, and this way you can find ALL the addresses of the entries in a list/table/etc.<br />
- to tidy up the map export it (<span style="color: #e69138;">ctrl-O</span>) as a text file, open it with Notepad, and copy everything or a part. Start a new sheet on Excel, select all of its cells and mark them as 'Text' (ctrl-A > right click > Format cells > Text). Paste the map to the sheet and do your edits (e.g. move blocks around). Finally, copy & paste everything back to Notepad, save the map, and import it again to icu64. <span style="color: #990000;"><span style="font-size: x-small;"><span style="color: #38761d;">(edit: in v0.1.7 you can move blocks around, so there is no need for external tools)</span></span></span><br />
- enjoy the new view!mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.com30tag:blogger.com,1999:blog-3355082982314292431.post-2361015732203803672012-10-28T18:44:00.001+02:002012-11-24T16:56:03.848+02:00ICU64 for VICE 2.3 v0.1.2 - ReleasedAn update of the ICU64 for the VICE emulator is available for <a href="https://sites.google.com/site/mathfigure/icu64vice23-v0.1.2.zip">download</a> (you also need the <a href="http://www.zimmers.net/anonftp/pub/cbm/crossplatform/emulators/VICE/WinVICE-2.3-x86.zip">VICE 2.3</a> emulator). There are no new features, only better functionality. My goal is to inject the REDPILL into the VICE, so more features could be supported in the future. I'm working on it...<br />
(see the included readme file for instructions)<br />
<br />
<span style="color: yellow;"><b>Note for programmers:</b></span><br />
This time I modified the VICE source code to fix the bank issues of the memmap feature (the mod is <a href="https://sites.google.com/site/mathfigure/vice-2.3-memmap-mod.zip">here</a>).<br />
<br />
<span style="color: #666666;">EDIT: I forgot to fix the zoom-out crash bug that occurs in the 64-bit versions of Windows. A patch is available in the <a href="http://icu64.blogspot.gr/p/download.html">download</a> page. </span>mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.com17tag:blogger.com,1999:blog-3355082982314292431.post-2902119532089435182012-09-30T20:11:00.000+03:002012-09-30T20:16:08.918+03:00ICU64 for Frodo Redpill v0.1.5 - ReleasedEventually, after 3 years, a new version of ICU64 is ready for <a href="http://sites.google.com/site/mathfigure/icu64frodorp-0.1.5.zip">download</a>. Several bugs and issues have fixed, additional functionality and features have added. Note however, that this version is not the one that I was working on the last years (i.e. v0.2). This is only an update of the initial release, where I have paste as much code as I could from v0.2 without corrupting the functionality. My goal is to make the raster view equally significant with the memory (matrix) view, so the development is being continued...<br />
<br />
Report any bug/issue/request in the comments or via e-mail.<br />
<br />
Good hack!mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.com2tag:blogger.com,1999:blog-3355082982314292431.post-32892979008375915652010-09-16T22:46:00.002+03:002015-06-27T11:31:28.914+03:00Release DelayUnfortunately, the cleanup task of the Frodo Redpill source code was underestimated. More time is needed before it's released. Also, the changes have effects to the ICU64, which has a GREAT progress these days, after a year of suspension.<br />
<br />
The pending releases are:<br />
- a great new version of ICU64 / Frodo Redpill<br />
- the source code of Frodo Redpill<br />
- sample code (C++/C#/Mathematica) that handles Frodo Redpill<br />
<br />
I'll try to make them available as soon as possible and, in any case, before the 2011.<br />
<br />
My apology to all those who follow this project<br />
and they were waiting for a new release now,<br />
<br />
Mathfigure.mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.com32tag:blogger.com,1999:blog-3355082982314292431.post-81216195477649145272010-02-26T23:25:00.006+02:002010-04-16T14:59:56.685+03:00Interview in Commodore Free MagazineThe <a href="http://www.commodorefree.com/">Commodore Free Magazine</a> is a free electronic magazine dedicated to the Commodore. Some days ago, Nigel Parker (the editor) asked me for an interview about my project. So if anyone looks for information about the ICU64, they can be found on the current issue (Issue 37). <br />
<br />
I would like to thank Nigel Parker for his questions because they really pushed me to think some things better. Also I want to thank him for his patience because my text was full of spelling errors and several corrections had to be made.<br />
<br />
Any comment or question after reading the <a href="http://www.commodorefree.com/magazine/vol4/issue37.html#MATHFIGURE">interview</a> is welcome.mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.com3tag:blogger.com,1999:blog-3355082982314292431.post-45793244181959914032009-09-30T20:46:00.016+03:002015-12-06T17:03:38.701+02:00Custom Display for ParadroidA hack for the game Paradroid (1985):<br />
<iframe allowfullscreen="" frameborder="0" height="234" src="https://www.youtube.com/embed/1TdaoOluq0A" width="520"></iframe><br />
(watch in full-screen)<br />
<br />
This game is set on a spaceship with 20 decks. There is an off-screen with a full deck, somewhere in the RAM, but only a small part of it is visible on the display while playing. ICU64 reads directly from the off-screen and visualizes it whole in a custom display. <br />
<br />
This case wasn't so trivial as was the 'Boulder Dash':<br />
<iframe allowfullscreen="" frameborder="0" height="320" src="https://www.youtube.com/embed/inWsuWEy3mQ" width="512"></iframe><br />
(read more on this and other future applications at <a href="http://www.lemon64.com/forum/viewtopic.php?t=30747">lemon64</a>)<br />
<br />
Paradroid uses sprites (in a swap mechanism) and splits the screen using raster effects. But it's done now, proving that any game can be hacked like this.<br />
<br />
(During this hack several missing features from ICU64 were pointed out and they are on their way now)mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.com9tag:blogger.com,1999:blog-3355082982314292431.post-15051793317431109272009-09-12T23:35:00.034+03:002009-11-21T13:42:32.243+02:00ICU64 for VICE 2.1It was asked by many, so here it is: <br />
<br />
<div style="text-align: center;"><a href="http://sites.google.com/site/mathfigure/icu64vice21.zip"><span style="font-size: large;">ICU64 for VICE 2.1</span></a><b> </b><br />
<div style="text-align: left;"><b>Requirements</b>:<br />
</div></div>- a PC with Windows XP and <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en">.NET Framework 2.0</a><br />
- the <a href="http://www.zimmers.net/anonftp/pub/cbm/crossplatform/emulators/VICE/WinVICE-2.1.zip">WinVICE 2.1</a> emulator<br />
<br />
Have fun!<b style="color: yellow;"> </b><br />
(Read the included README.TXT for the installation instructions)<b> <br />
</b><br />
<b style="color: yellow;">NOTE</b><br />
In this version ICU64 operates as a common debugger over the x64 process. This approach reduces the features that can be supported, in comparison to the Frodo Redpill version. But since it is slightly newer, it has some more functionality and some bugs are fixed. The notable addition is a simple 'memory scanner'.<br />
<br />
Also, this version can be connected with other C64 emulators. However, the procedure to do this is a little hard, for safety reasons.<br />
<br />
The included file 'x64mm.exe' comes from a recompilation of the VICE 2.1 source code with the -memmap option. (The source code is NOT altered this time, in contrast to the Frodo version). With this option, the x64 tracks the memory accesses made by the CPU (unfortunately with some issues: some RAM accesses reported incorrectly by the x64 as ROM accesses).<br />
<br />
I hope that the VICE team will notice the possibilities, so that one day they fully expose the C64 virtual machine to the external applications.<br />
<ul></ul>mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.com24tag:blogger.com,1999:blog-3355082982314292431.post-78782745158438236732009-09-01T00:10:00.065+03:002015-12-06T16:56:31.550+02:00First Release of ICU64 and Frodo RedpillAfter the first public preview of ICU64, the hacking tool that provides real-time view and edit of the C64 internals, here is the first public version:<span style="font-size: small;"><b> </b></span><br />
<div style="text-align: center;">
<span style="font-size: small;"><b><a href="http://sites.google.com/site/mathfigure/icu64frodorp.zip">ICU64 / Frodo Redpill v0.1</a></b></span> </div>
You can now experience the hacker's view of the Commodore 64!<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/tjcvR5McmSg" width="512"></iframe><br />
<span style="color: #444444; font-size: x-small;">(the above video is also available at <a href="https://vimeo.com/13941225">vimeo</a>)</span><br />
<br />
<b>Requirements</b>:<br />
- a fast PC with Windows XP and <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en">.NET Framework 2.0 </a><br />
- the <a href="ftp://ftp.zimmers.net/pub/cbm/crossplatform/emulators/Frodo/frodo4_1.win32.zip">Frodo v4.1</a> emulator<br />
<br />
<div style="color: yellow;">
<b>NOTE</b></div>
It is still a prototype, and it is missing a lot of functionality and user guidance. This software is intended for advanced users.mathfigurehttp://www.blogger.com/profile/10670878382239389455noreply@blogger.com28