software

More on ICU64, the C64 super hack tool

After the gobsmacking video we posted yesterday, an exchange pinging back and forth between fellow bloggers Digital Tools has yielded more information regarding this amazing tool, from the author himself.

Watch this new video, and after the jump, read the words from the author himself, posted in the Lemon64 forums. Seems like there’s a lot of potential, among which I really like the possibility of a synchronized parallel array of C64s.

[kml_flashembed movie="http://www.youtube.com/v/inWsuWEy3mQ" width="425" height="344" allowfullscreen="true" fvars="fs=1" /]

Mathfigure, creator of this software, explains and tells us about his expectations:

This is ‘Boulder Dash 4’ for Commodore 64. What you see is the off-screen where the full world of the game remains. Normally the game shows only a small window of this world and scrolls horizontally and vertically when it is necessary. ICU64 simulating a customizable display is able to show the full world of the game. Instead of reading from the temporary video RAM, as VIC-II do, ICU64 reads from the memory where the off-screen is located. The particular display you see is 4 times bigger than C64’s.

(No borders was tough, but no screen limits… that was impossible!)

A little about how it works:

Currently, ICU64 works more like the ‘Cheat Engine’ (as a debugger), but with a value help from the debugged application, which is a modified version of Frodo emulator (called ‘Frodo Redpill’).
Frodo redpill can report useful events (like memory accesses, new frames, raster interrupts, bad lines, clock cycles, etc) and can be instrcucted to get snapshots of the whole state (as an example, when ICU64 enables the raster effects, Frodo Redpill takes 15600 snapshots/sec). Thus, ICU64 has full access both to the current state of the virtual machine and to every event that occur inside it. Then is just a matter to interface this information to the user.

I choose Frodo instead of VICE because Frodo has much simpler source code. Frodo Redpill can already be used by other applications like ICU64.
I’m not so proud for this framework, as it is right now; it could be better.

So, let me illustrate my vision:

An emulator can easily expose every bit and every event of the machine that emulates. Using such an emulator as a platform many applications could extend the capabilities of the emulated machine (and any software that it runs), working either as wrappers, editors, or just as monitor tools (which are all hacking tools). A user application with such a tool would be a ‘HACK’.

A more impressive possibility with diverse range of applicability would be what I call “GAME WORLD TRANSFORM” (although some other term could be better). Most C64’s games build their worlds using custom charsets where every text character is a block of graphics (the same is valid for sprites). Imagine replacing the whole charset with a new one that may have even bigger blocks and even more colors (true color). What you get?
The same C64 retro game with grand new graphics, almost so good as current PC graphics.
Retro gamers will have new experiences of their favorite games (if they want of course).

Would even be possible to transform the whole world from flat to 3D and insert lights and cameras. And to push this to the limits, combine it with Virtual Reality technology and… you are inside a C64’s world!
Or combine this with Holography Technology or 3D-Displays and… the sprites are escape to the real world!
And guess what, it is still the original C64 from the ’80, since neither software nor hardware is altered! It is just a new view of the same thing.

There are also other possibilities as “GAME MIXES” (AI and worlds from different games, all together). Imagine a battle between the AI (not just the sprites) Karatekas taken from different games (Int. Karate, Exploding Fist, etc). This could happen mapping the attacks from one game to the attacks of the other game and vice versa.

Parallel execution of synchronized C64s. Imagine a video-wall (eg: 4×4=16) of C64s, each of which running a part of a special designed application which exploit more power: speed x16 (16MHz), memory x16 (1MB), screen x16 (1280×800), voices x16 (48!). What is needed to operate all these is only a maestro that will keep them synchronized. (Demo Sceners will have new challenges!)

Education tools about programming or hardware (imagine labels and full text descriptions everywhere).

There is a diverge range of visualizations. Who knows what someone can think. As you have the full control of the system there are no limmits.

The ‘HACKING TECHNOLOGY’ designed for Hackers (the most skilled persons on what they do). As they hack only machines (and not people), you couldn’t imagine what they could do.

I just made a start to this direction with “Frodo Redpill” and “ICU64”, but it is not an easy task for only one person. More people must involve, and all these ideas are free for implementation.

VICE and CCS64 is the best C64’s Emulators and would be good if the their developers expose a programming interface with full access to every bit end every event of C64. Immediately, will be transformed to platforms for a new era of software technologies and applications (that will have started using just a C64).
This, of course, could be happen with any virtual machine (so harry-up!).

People inside C64 community still loves Commodore 64. Why?
Are you expecting something more from Commodore 64?
I hope that I live in a universe where this is the case.

(the whole project is dedicated to the Commodore 64 community)

4 comments to More on ICU64, the C64 super hack tool

  • So he wants someone else to dev an hardware interface to hack the c64 from the pc?

    We are through the rabbit hole here people.

  • mathfigure

    VICE 2.1 has a new (optional) feature that logs every memory access made by the CPU. Utilizing this feature (which I didn’t notice earlier), ICU64 can see now (in realtime) the memory accesses made by the virtual CPU inside VICE.

    But this feature is not enough (Frodo Redpill, for example, does much more).More bits, events, and control over the virtual machine, MUST EXPOSED to external programmers via some API.

    That’s the way every emulator should be implemented, otherwise a big potential remains unexploited.

  • Math, I hope you can work with the VICE team to implement this on their emulator!

  • mathfigure

    Since the VICE team have made some steps, they may could run also.
    We should let the time pass for a while.