Jump to content







Photo

2600 evolution

Posted by BigO, 18 June 2007 · 81 views

I find the concept of "genetic programming" to be very interesting. I've seen pictures of some very quirky but supposedly highly functional RF antennas that were designed using this methodology.

I've read that these techniques can result in functioning code that is all but impossible for a human to understand. Kinda reminded me of my attempts to disassemble some 2600 code.

I wonder how many thousand generations it would take to evolve code that would produce Atari 2600 code that would do anything: display a red spot in the center of the screen, anything that would visibly respond to joystick input, etc.

If you're a genetic programming expert, feel free to steal my idea. I don't have the mental horsepower to do that job. :dunce:


http://www.genetic-programming.org/
http://en.wikipedia....tic_programming
http://www.technolog...ch/14148/page1/ (mention of the antenna design project)




As a side effect, something like this might uncover still hidden abilities of the 2600. Just don't ask me to do the disassembly.
  • Report

BigO, on Mon Jun 18, 2007 5:18 PM, said:

As a side effect, something like this might uncover still hidden abilities of the 2600. Just don't ask me to do the disassembly.
This was mentioned briefly in this thread. Very briefly. As an aside, my random binary generator has made some exceedingly weird binaries.

But as far as a genetic algorithm goes, each binary would have to be validated by a human in some way to give instructions to the next generation, and this could get tedious.

Well, I suppose one could code one into an emulator and have it run each binary itself to see if it's meeting certain predefined criteria. That might be a little difficult.
  • Report

batari, on Mon Jun 18, 2007 3:41 PM, said:

This was mentioned briefly in this thread. Very briefly. As an aside, my random binary generator has made some exceedingly weird binaries.

But as far as a genetic algorithm goes, each binary would have to be validated by a human in some way to give instructions to the next generation, and this could get tedious.

Well, I suppose one could code one into an emulator and have it run each binary itself to see if it's meeting certain predefined criteria. That might be a little difficult.

Yes, the validation is potenitally troublesome.

But, I've seen plenty of software capable of monitoring video sources for motion and color and placement, etc. I have a little camera based video game console that can track an IR light source or player motion to let the player interact with the video (Whack-A-Mole game, bubble juggling e.g.). It would be a truly horrendous waste of resources, but a high-powered machine vision system might do it.

One of my first thoughts was that an emulator might be able to do the job. While it's probably over my head, I wouldn't think that analyzing the contents of a captured frame for a given color in a given area would be too far out. Testing for a response to joystick input, now that sounds tough.

I would honestly be quite impressed if it just produced output that was within the requirements to display on a TV without rolling, flipping, or otherwise out-of-sync-ing. Just a steady screen was more than I could do just a few weeks ago.

I wonder how much "seeding" you can do in those "random" algorithms. I'm thinking you might ensure that at least the two first generation parents contain the bit patterns representing all of the pertinent addresses. Though, in 2 or 4K of random bits, they might mostly show up anyway. I have no idea if that would even make a difference.

Sounds like a "fun" project for a University Computer Science student somewhere and good for a few minutes of musing here.

Have there been any noteworthy reactions by the 2600 to your random .bin files? (Not that I expect you've taken time to thoroughly test each one.)
  • Report
Just read that other thread. I think most of this has been discussed there, I just never saw that thread.
  • Report

BigO, on Mon Jun 18, 2007 6:16 PM, said:

Have there been any noteworthy reactions by the 2600 to your random .bin files? (Not that I expect you've taken time to thoroughly test each one.)
Try it! Binaries that do something rather than nothing aren't as uncommon as it would seem.

I think that most effects are explained by a BRK that does a loop and writes to the stack, which also triggers TIA regs periodically. But there have been some weird effects I haven't figured out. Like this binary:
http://www.atariage....a...ry&id=79466

It might not work on z26 or real hardware, but it seems to work occasionally in Stella. It produces weird sounds, but strangely enough, the Stella debugger doesn't reveal anything weird going on. There have also been a few weird binaries posted in another thread but I can't seem to find them now.
  • Report

May 2012

S M T W T F S
  12345
6789101112
13141516171819
2021 22 23242526
2728293031  

Recent Comments