Cory's Internet Hangout

rss feed THINGS I MADE ps,
more social networking opportunities below!
myspace facebook youtube




Colors PE (Personal Edition)




A couple years ago I made a very small video application called "Colors". This video came out of my interest in wanting to make something using slit scan. This is a very common and quite easy technique where basically something is photographed through a slit. After spending some time trying to teach myself how quicktime works and how video is displayed on a modern computer, I finally ended up with Colors. Anyway, basically Colors PE (the personal edition version) is a small application that will play any quicktime movie using a slit scan technique one line at a time starting from the top. Personally, for my version, I used it to play the movie Colors by Dennis Hopper (to play every color in the movie takes 33 days). So here is the program in case anyone is bored, has some time on their hands, and wants to try it at home. Disclaimer: This version requires some legwork to get working, FYI.

Requirements: Intel Macintosh.
1. Download this. (Intel Macintosh Application)
2. Get yourself Colors on DVD if you would like that version but note it can play any movie so knock yourself out, suggestions include "Stripes" (thx hanne), "The Color Purple", etc, etc, you get the idea.
3. Rip this movie to your hard-drive. I would suggest using Mac the Ripper (to get the movie on your drive), and then Mpeg Streamclip (to save it as a quicktime movie)
4. Rename the quicktime version of your movie you have put on your harddrive colorsall.mov, and place it in the same directory as the "colors" app you have downloaded above.
5. Double Click and enjoy.

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

How to Save 500$ in 30 seconds



These screenshots are from the "gmail" signature which is under the "settings" menu (just incase anyone out there thinks this is "vaporware"), ........

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Blue Tube




Blue "Tube". 2007, .... click "watch again" a few times to get the full effect,.....Embed Code --->

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

The Bruce Springsteen Born to Run Glockenspiel Addendum (mp3s)




I have recently completed a new composition titled The Bruce Springsteen "Born to Run" Glockenspiel Addendum. For those not in the know, Bruce's Born to Run record is littered with glockenspiel. For example, the famous melody from the song Born to Run is actually a guitar DOUBLED by a glockenspiel. Yes, I know what you are thinking,...awesome, awesome, & awesome. The Born to Run record itself contains 3 songs that feature the glockenspiel, ... For this project, I decided to create an addendum to the original and compose, play, and record glockenspiel parts for the songs on Born to Run that do not already feature the instrument (Tenth Avenue Freeze Out, Backstreets, She's the One, Meeting Across the River and Jungleland). I have made a 12inch vinyl record (signed, edition of 300, hand silk screened covers by kayrock, etc, etc, etc) which is available through my online store, and also mp3's which are available below. Basically you can play the vinyl or mp3's at the same time as the original recording, and you got your self a seemless mix with even more glockenspiel then originally provided by Bruce and the band. If you listen to my 12inch or mp3's alone, you just got glockenspiel and alot of silence (yes, it IS susposed to be silent most of the time,... I had to do it in Bruce's style, and this meant very sparse arrangements...)

Here is a small example of the concept:

Tenth Avenue Freeze Out (original)
Tenth Avenue Freeze Out (glockenspiel addendum) *
Tenth Avenue Freeze Out (both original and glockenspiel addendum mixed)


Ok, here goes nothing, ... without further delay, I present the The Bruce Springsteen "Born to Run" Glockenspiel Addendum:

Thunder Road (silence)
Tenth Avenue Freeze Out
Night (silence)
Backstreets
Born to Run (silence)
She's the One
Meeting Across the River
Jungleland



* - this interesting decending line, I actually found on rare live footage of the E Street band who used to play this song sometimes with a Glockenspiel.....

UPDATE: Kevin over at todomundo has a pretty funny 2 turntable mix session with the addendum and the Born to Run original,...sounds more like a drunk glockenspiel player cause of the wavering tempos, but its almost there......

UPDATE 2: Pictures of Kevin's set-up

UPDATE 3: Scroll down, and there is a broadcast of the addendum mixed with the original LP.....

UPDATE 4: me playing "she's the one" at a party......

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Kurt Cobain's Suicide Letter vs. Google AdSence



Recently I made a webpage which pairs the text from Kurt Cobain's suicide letter up with Google Ads. Here is the result...ps - google ads are genereated from the text of the page they appear on...

UPDATE: The page was talen down, but I put up some screenshots of what it looked like,.......

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Starbucks Center of Garvity


Spurred on by a discussion on Kottke.org, I decided it would be interesting to find out what the Starbucks Center of Gravity in Manhattan is (note: On kottke they are looking for density, not center of gravity which I thought was more fun...). What does "center of gravity" mean? Well, it means the exact place you can stand in Manhattan and be closest to ALL Starbucks. As if every single Starbucks was pulling you equally in its direction, this is the place where u could stand to feel the most Starbucks power...and not just within a few blocks radius, but for the whole Island! Think of it like being at the North Pole for overpriced coffee...The power center / death star if you will allow me to go that far....

So let me explain how this was calculated and also I am going to give shout outs to the many people who helped me on this. First, Starbucks locations were data mined off of their website, and an excel spreadsheet of these addressees was constructed (note this was done this summer so there are prolly a few more now...sorry...). You can download that here (thx for my sister Jamie and Charles Harlan for help with this). Then these (thx to Jon Levy for this) were fed into fancy mapping software and Lat and Lon points were calculated . If you are a nerd and are really wondering that the Latitude and Longitude points for the Starbucks in Manhattan is, here are those!!!:

-74.01317, 40.70456
-74.01138, 40.70782
-74.00713, 40.70541
-74.01161, 40.70894
-73.9987, 40.69628
-74.00848, 40.70906
-74.00739, 40.7089
-74.00928, 40.71102
-74.01043, 40.71007
-74.01197, 40.7108
-74.01346, 40.7152
-74.00708, 40.7158
-74.01084, 40.71
-74.00515, 40.71713
-73.99995, 40.71858
-74.0037, 40.7182
-73.99749, 40.72299
-74.00557, 40.72409
-73.99511, 40.72778
-74.00662, 40.7338
-74.00256, 40.73089
-73.9971, 40.73235
-73.99888, 40.73422
-73.99727, 40.73728
-73.9894, 40.72945
-74.00193, 40.73876
-74.00297, 40.74046
-73.98534, 40.73715
-73.99372, 40.74215
-73.98857, 40.73842
-73.9994, 40.74404
-73.99156, 40.74511
-73.98107, 40.73976
-73.98711, 40.74537
-73.98386, 40.74423
-73.97949, 40.74123
-73.99494, 40.74529
-73.99681, 40.75047
-73.98786, 40.74344
-73.98942, 40.75062
-73.98522, 40.74355
-73.99029, 40.75179
-73.99641, 40.75361
-73.99321, 40.75284
-73.98159, 40.74813
-74.0036, 40.75653
-73.97701, 40.75064
-73.97512, 40.75039
-73.98009, 40.75224
-73.99385, 40.75285
-73.97942, 40.75333
-73.98128, 40.75134
-73.97658, 40.74926
-73.98143, 40.75125
-73.98847, 40.75674
-73.97758, 40.75071
-73.99253, 40.75876
-73.98989, 40.75554
-73.99689, 40.7602
-73.9859, 40.75555
-73.9859, 40.75555
-73.97489, 40.74905
-73.97616, 40.75009
-73.97761, 40.7536
-73.98756, 40.75484
-73.99294, 40.75889
-73.96868, 40.75511
-73.97251, 40.75675
-73.97069, 40.75644
-73.98365, 40.76079
-73.98734, 40.76201
-73.97757, 40.75905
-73.98641, 40.76054
-73.98418, 40.75966
-73.98124, 40.7619
-73.97646, 40.7605
-73.9879, 40.76102
-73.96964, 40.75918
-73.97608, 40.75858
-73.98508, 40.75904
-73.97709, 40.76014
-73.97838, 40.76398
-73.97433, 40.76374
-73.97391, 40.76402
-73.97898, 40.76509
-73.98368, 40.76698
-73.96162, 40.76058
-73.98494, 40.76915
-73.98232, 40.76913
-73.96623, 40.76343
-73.98213, 40.77357
-73.96245, 40.76857
-73.9573, 40.7673
-73.95956, 40.76754
-73.9813, 40.77502
-73.98399, 40.76888
-73.9623, 40.7716
-73.977, 40.77999
-73.98133, 40.77852
-73.95437, 40.77418
-73.95438, 40.77474
-73.97692, 40.77994
-73.98194, 40.78242
-73.95762, 40.77496
-73.95263, 40.77353
-73.95978, 40.78314
-73.97228, 40.78391
-73.95266, 40.78205
-73.95385, 40.78006
-73.95421, 40.78723
-73.97367, 40.7923
-73.96921, 40.79669
-73.96634, 40.80477
-73.96426, 40.80803
-73.94473, 40.80748
-73.9356, 40.85106
-73.98534, 40.73715
-74.00041, 40.74302
-73.97692, 40.77747
-73.98003, 40.75469

Then, these were averaged (thx for Michael Frumin and Jonathan Levy again! for help on this), and THUS WE HAVE THE CENTER OF GRAVITY which turns out to be here:



somewhere between 5th and 6th, in between 39th and 40th which looks like this ------>



So that's that. Just one more piece of information to clog up the internet 4 ya...

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Simon and Garfunkel "Live @ Central Park" DVD timecode for all the places where a liberal reading could indicate tension between Simon and Garfunkel




00:01:36
Simon forces a smile for the audience after shaking Garfunkel's hand.

00:14:12
00:14:35
Garfunkel sings while Simon's back is turned to him, a gesture which can be seen as oddly aggressive.

00:14:50
Garfunkel points somewhere offstage, and Simon gives him that "what the f#ck r u doing" look.

00:26:06
Garfunkel spaces out on the side of the stage with nothing to do while Simon sings his solo material.

00:27:14
Garfunkel pretends he knows the words to Paul's solo material.

00:37:08
Simon and Garfunkel bicker.

00:38:21
The bickering continues, Garfunkel tries to get in the last word, Simon laughingly sneers off Garfunkel's request (whatever it was)...

01:00:40
Garfunkel attempts interest in Simon's solo material, but can't even seem to raise enough enthusiasm to clap on time to the beat....

01:02:03
Garfunkel spaces out on the side of the stage...again....

01:02:53
Garfunkel puttering about on stage with nothing to do during Simon's solo material....again....

01:04:27
Garfunkel messes up on the first verse of "The Boxer", Simon with a quick double take and roll of his eyes lets him know he f$%ked up.

01:10:36
Simon and Garfunkel, a cold embrace with no eye contact. Possible interpretation: "Lets just get through this".

01:20:11
For the curtain call, Simon motions to hug Garfunkel, Garfunkel resists, replies with "pat on back".

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Space Invader


     


This is a mod of the Atari game Space Invaders which has been turned into Space Invader (note: its no longer plural...thus the white out over the last "s" on the cartridge) --> all the invaders have been erased except one. Here is the Atari ROM which you can run in your Atari emulator that was hacked together by RSG.

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Iron Maiden's "The Number of the Beast" compressed over and over as an mp3 666 times.





If you have ever wondered what Iron Maiden's "The Number of the Beast" would sound like compressed over and over as an mp3 666 times...here's your chance...click here to download...and if u r wondering, YES, it does lose quality each time it is compressed. Here is the perl source code to do this yourself!!! You'll need the "normalize" binary, and also the "lame" decoder....

ps - If u like this project, don't forget to study up on your old school and check out Alvin Lucier's "I am Sitting in a Room".

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

F1 Racer Mod (Japanese Driving Game)


     


This is a simple mod I did of the old Japanese famicom driving game F1 Racer. Basically I just took out the game, cars, etc, and left the road. You can download the NES ROM to run in your emulator here, and the source code here note: you will need both nesasm, and nbasic to compile this rom ...I have written a small perl compile script 4 u also, I use mac osx and this all works fine, for other operating systems, I would warn u might need to tinker a bit....thanks.....

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Beach Boys / Geto Boys




So yeah, I have finally gotten around to posting this mash up of the Beach Boys "Little Surfer Girl" and the Geto Boys "6-feet deep" I made last year for a permiere at the MOMA. It is just one of a bunch of backlogged things I made last year that I will be posting to the web when I have time....

Note: You have to watch for about a minute before the beach boys show up...I did this so the key change in the Beach Boys song would line up with the third verse of the Geto Boys song...(ps - the Beach Boys song is super short and Brian Wilson for some reason modulates little surfer girl up a whole step 3/4's of way through...totally weird, but it works) .... Yeah, yeah, also I know mash-ups were cool like 5 years ago, and already had a Vh1 show like 3 years ago, so I added some constraints. I wanted 2 see if I could go for the trifecta of mash-ups. Meaning, the two bands had to have a common name, the video has to be interesting even with no prior knowlege of the 2 bands, + I could't cut the videos or the music to make them fit together, they had to be played next to each other,...Becides this, the music had to sound good...So, yeah, I hope u like it. Here is the mp3 too.

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Slim Thug Status Bot




RSG and I wrote a bot that lets you know if Slim Thug's album "Already Platinum" has gone platinum yet.......AIM "SlimThugPlatinum" and try it yourself....NOTE: you have to add "SlimThugPlatinum" to your buddies first.(also spcl thx to michael bell smith)...ps - i had to take this offline cause it was burning up server and taking up like 99% of the processor. I think it cause got in a bot loop with anohter bot. ha ha ha ha ha ha....!!!!

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Super Mario Clouds - 2005 rewrite


     

In 2002 (or was it 2003, hmmm?), I posted a tutorial on the Internet about a project I made called "Super Mario Clouds". In this work, I took an old Super Mario Brothers Nintendo video game and erased everything but the clouds. This project was very much in the line of the stuff various BEIGE representitives (Paul, Joe, + Joe) were doing then. Anyway, after many years, I got alot of emails about this page, and realized there were some things I could have written better. Plus, I ended up changing the code cause my laptop was stolden (and the code along with it). So, I have redone this page below. In section 1 is the source code with commentary, and in section 2 is alittle tutorial on how to make your own version of this cartridge if u aren't afraid of soldering irons...before we get started, if you want all the good stuff here it is: the ROM for this is here, and the source code is here. If you are just interested in learning how to make your own version, scroll down to section 2.

: )

Cory

SECTION1: SOURCE CODE AND COMMENTARY

Below I will go through the source code line by line. To compile this code you will need dasm and nbasic. nbasic is a small assembly wrapper for the Nintendo. The idea here is to simply write a program that will take the clouds from Mario Brothers and scroll them across the screen. Here comes the first line of code:


;********************************************************
;
; Super Mario Clouds
;
; BEIGE 2002-5 - Cory Arcangel
;
; http://www.post-data.org/beige/
; http://www.beigerecords.com/cory/
; http://del.icio.us/cory_arcangel/
;
; "you mess with the best, you die like the rest" - Anon
; "punks jump up to get beat down" - Brand Nubian
;
;********************************************************


When computer code is made public it is common for programmers to put contact information for a variety of reasons. Here I have also included a few small phrases aimed at media artists who think they can step to my style. This is a trait I inherited from the early commodore64 cracking scene. In this scene gangs of hackers would compete to crack video games (crack means to remove its copyright protection), and they would also make very elaborate video introductions in order to show off. These often contained disses at other competiting groups.

Before I get started with the code I would like to take this opportunity to state that I am not really a programmer. The first time I took a class in "computer science" was at a summer school when I was 8 or 9 years old and I remember crying and switching to the "storytelling" class. Years later in college I still didn't like computer science and got below 50% on most of my exams. I have since grown used to programming only because it is the mechanism that seems to make most of the world move. Believe me, if I could order Pizzas [dominos has a great online delivery mechanism....], by painting, I definitely would paint. For those interested, I have actually hacked the dominos pizza ordering system in a project called "pizza party" with help from my super-genius programming friend Michael Frumin. Google "pizza party", ... last time I checked it was the second result. So let get back on topic, the first line in this program that actually does anything is:


asm


This program is written in a programming language called assembly. Assembly language is the lowest level someone can program. It is one step away from the ones and zeros, and in some cases involves actual ones and zeros. I tend to prefer assembly because it gives me control over the machine and assures me that aesthetic choices are based on the hardware of the machine and not, say, some dupe at Macromedia. The above line of code simply says we will be writing this program in assembly. The paticular brand of assembly we will be using is 6502 assembly. That is because the Nintendo runs on the 6502 microprocessor. The 6502 is the chip that made the Apple II possible and thus revolutionized home computing. The Nintendo runs on a modified version of this chip. It should not be suprising that the Nintendo and Apple run on the same processor because video game systems are really just home computers without disk drives.


.inesprg 2 ; 32k program memory
.ineschr 1 ; 8k chr graphics
.inesmir 1 ; standard mirroring
.inesmap 0 ; NROM mapper....aka no mapper...

.org $8000 ; 32 k cartridge

clouds_start: ; include cloud hex file
.dw clouds_start_addr
clouds_start_addr:
.incbin "clouds.hex"


I like the idea of making things out of trash [one can easily find an NES in a dumpster these days], and I like the idea of actually having to break into something that I find in the trash even better. The only way to make work for the NES is to hack and solder a cartridge. To do this, I will clip off the program chip from an actual Mario cartridge, burn my new information [the output of this code compiled] to a chip, and solder it in the place of the old one. Please see SECTION 2 of this tutorial for information on how to do this. The above lines basically set up our compiler and tell it that we would like this program to be for a chip which is 32k (the same as an old Super Mario Brothers chip), and also that we will later be working with a file called "clouds.hex", which is a data file of the clouds.

The next part of code tells the cartridge what to do when we press the reset button on the NES. This code is modified from a Canadian NES genius named Chris Covell, who apparently got it from Duck Hunt. Awesome. I learned to program in assembly language looking at examples of code posted by Chris Covell, and as with a lot of this 8-bit work, information comes mostly from a hobby scene. In my opinion these are the true hero's of contemporary computer art. Out of the hobby scene have come portable playstations, Dreamcasts that boot LINUX, and even hard drives that play music by spinning at different speeds.


start: ; clear memory

sei
cld

.vblank_clear1
lda $2002
bpl .vblank_clear1

.vblank_clear2
lda $2002
bpl .vblank_clear2

.vblank_clear3
lda $2002
bpl .vblank_clear3

sei
cld

.vblank_clear4
lda $2002
bpl .vblank_clear4

.vblank_clear5
lda $2002
bpl .vblank_clear5

.vblank_clear6
lda $2002
bpl .vblank_clear6


lda #$00
ldx #$00
.clear_out_ram
sta $000,x
sta $100,x
sta $200,x
sta $300,x
sta $400,x
sta $500,x
sta $600,x
sta $700,x
inx
bne .clear_out_ram

lda #$00
ldx #$00
.clear_out_sprites
sta $2000,x
sta $2100,x
sta $2200,x
sta $2300,x
sta $2400,x
sta $2500,x
sta $2600,x
sta $2700,x
sta $2800,x
sta $2900,x
sta $2a00,x
sta $2b00,x
sta $2c00,x
sta $2d00,x
sta $2e00,x
sta $2f00,x
inx
bne .clear_out_sprites

ldx #$FF
txs

jsr vwait
jsr vwait


Ever wonder why Mario and Zelda were little squares? The Nintendo can only display graphics in 8 pixel by 8 pixel squares, and can only hold 8k of graphics in total therefore Mario and Zelda were simply adhering to the hardware limitations of the Nintendo System. These two hardware limitations defined the aesthetic of most early 80's video games on the Nintendo, and making "art" for this system is a study of these limitations. Below I load up the color that this cartridge will use into the palette RAM. The Nintendo can only display 4 colors in any 8*8 square. For this cartridge I will use black, blue, light blue and white which translates to $od, $11, $21, $30 in the Nintendos palette.


;++++++++++++++++++++++++++++++++++++++++++++++++
;load palette
;++++++++++++++++++++++++++++++++++++++++++++++++

lda #$3F ; NES background palette location
sta $2006
lda #$00
sta $2006

lda #$21 ;background [powder blue]
sta $2007
lda #$30 ;cloud inside [white]
sta $2007
lda #$11 ; highlight [blue]
sta $2007
lda #$0d ;outline [black]
sta $2007


A typical NES Cartridge has two chips. One is a graphics chip, and the other is a program chip. Basically the program chip tells the graphics chip where to put the graphics, and thus if you do this in a interesting manner, you have a video game. When making a "Super Mario Clouds" cartridge, I only modify the program chip, and I leave the graphic chip from the original game intact. Therefore since I do not touch the graphics from the original cartridge, the clouds you see are the actual factory soldered clouds that come on the Mario cartridge. There is no generation loss, and no "copying" because I did not even have to make a copy. Wasss up.

The code below is where I load up the clouds. This references the file clouds.hex we pointed to earlier in the program.


;++++++++++++++++++++++++++++++++++++++++++++++++
;load name tables
;++++++++++++++++++++++++++++++++++++++++++++++++


endasm
array addr 2
set songloadloop 0
asm

ldx #0
ldy #0

lda #2
sta songloadloop
load_outcast:
lda clouds_start,y
sta addr,x
iny
inx
dec songloadloop
bne load_outcast

lda #$20
sta $2006
lda #$00
sta $2006

nametables:

ldx #$08
ldy #$00

load_clouds:
lda [addr],y
sta $2007
iny
bne load_clouds
txs
ldx #$01
inc addr,x
tsx
dex
bne load_clouds

lda #$00
sta $2006
sta $2006 ;Reset PPU
sta $2005
sta $2005 ;Reset Scroll


For this cartridge I simply draw everything and then turn the screen on. The NES can not just draw a picture to the screen like a modern computer [in fact to make something that looks similar on a modern computer would take about 3 minutes in Photoshop ]. It is too slow for that, so in order to change backgrounds one has to turn the screen off, draw a new picture, and turn it back on again. This is why the screen goes black for a split second between worlds on most early NES games. I turn the screen on by placing a sequence of ones and zeros into a specific Nintendo memory location. One highlight of working in assembly language is being able to actually use ones and zeros. So yeah, above I just drew everything and below in the section "init graphic settings", I turn on the screen!


;++++++++++++++++++++++++++++++++++++++++++++++++
;init graphic settings
;++++++++++++++++++++++++++++++++++++++++++++++++

lda #%10011100
sta $2000
lda #%00001010
sta $2001

;++++++++++++++++++++++++++++++++++++++++++++++++
;set variables for scroll
;++++++++++++++++++++++++++++++++++++++++++++++++

endasm

set DELAYSCROLL 1
set NTShow 0
set SCROLL 0

asm

;++++++++++++++++++++++++++++++++++++++++++++++++
;loop forever....
;++++++++++++++++++++++++++++++++++++++++++++++++

main:

jmp main

;++++++++++++++++++++++++++++++++++++++++++++++++
;vblankzzzzzz
;++++++++++++++++++++++++++++++++++++++++++++++++

vwait:
lda $2002
bpl vwait
vwait2:
lda $2002
bmi vwait2
rts


That's it for the intro code. Now below I make it scroll

A TV works by drawing a picture faster than your eye can see every 1/60th of a second. [In Europe it is 1/50th] Every time this scan line gets to the bottom of the screen it has to jump back to the top. This is called a vertical blanking interrupt. The NES can only draw graphics to the screen when this line is jumping from the bottom of the screen to the top. Below is the code which scrolls the clouds during this period where the electron beam is jumping. A highlight of working on early game systems is this intimate access to the display machanism of the television.


;++++++++++++++++++++++++++++++++++++++++++++++++
;NMI Routine!!!! Very important!!!!!
;++++++++++++++++++++++++++++++++++++++++++++++++

nmi:

dec DELAYSCROLL
bne .end_no_scroll

lda #$20
sta DELAYSCROLL

lda #$ff
cmp $24 ;scroll
beq .NT_adj
jmp .end

.NT_adj:

lda #$00
cmp NTShow
beq .Show_Zero

lda #%10011100
sta $2000
lda #%00001010
sta $2001

lda #$00
sta NTShow

jmp .end

.Show_Zero:
lda #%10011101
sta $2000
lda #%00001010
sta $2001

lda #$01
sta NTShow

.end:

inc $24 ;scroll
lda $24 ;scroll
sta $2005
lda #$00
sta $2005

.end_no_scroll:


rti

irq:

rti


That's all the code. Now we just need to set the vector table appropriately. This tells the cartridge what to do when you put it in.


;++++++++++++++++++++++++++++++++++++++++++++++++
;Load Data Filez
;++++++++++++++++++++++++++++++++++++++++++++++++

.bank 3
.org $fffa
.dw nmi ;//NMI
.dw start ;//Reset
.dw irq ;//BRK
.bank 4
.org $0000
;//end of file

.incbin "mario.chr" ;gotta be 8192 bytes long

endasm


The end. The cartridge is complete. Not that bad. Actually programming for the NES is pretty simple. You can download this source code here. Also the complete NES ROM to run in an emulator. Now I would compile this program, and then burn it to a chip.


SECTION2: HOW TO GET THIS STUFF ON A CARTRIDGE.

The process of making a NES cartridge was orginally taught to me by BEIGE member Paul B. Davis. In this section I will pass this technique on to you. Basically in short, the process will entail us taking apart an old Super Mario Brothers video game cartridge, desoldering one of the chips in the cartridge, and then soldering a new one in its place.



a
The first thing you will need to get is an original Super Mario Brothers cartridge. Not a "Duck Hunt+Mario Brothers" cartridge, but just a plain old Super Mario Brothers cartridge. Next you should unscrew the plastic back on the cartridge, and inside you will see a circut board like the one you see below. There are two chips on this board. The CHR chip, and the PRG chip. We are interested in the PRG chip for this project. Also please make sure the cartridge says NES-NROM-01 (01-05 in also fine). This let`s us know it is a 32k Nintendo circut board.

b
Next take some wire clippers and clip the legs of the PRG chip. I like to use the red clippers from Radioshack.

c
Once the legs are clipped you should be able to take the chip off like this.

d
The end of the legs will still be soldered to the circut board though.

e
Now, with a pair of wire holders, hold a leg that is still attached to the board. While you are holding it, touch it with a hot soldering iron. This will melt the solder that is keeping it attacked to the board. You should feel the leg losen, and you will be able to pull it out of the circut board. Do this for each leg.

f
Next, get some Desoldering Briad!



g
Put it over the holes in the circut board. Then place the soldering iron on the braid. This will make the solder heat up and the braid will suck it up.

h
When you are done, the holes in the circut board should look clean like this

i
Now you will need to solder a socket into the holes where the program chip used to be. You will need to buy 28 pin lowprofile sockets. You can get these form Jameco.com. This makes it so you can take the chip in and out of the socket with out resoldering. This isnt so necessary, but I always make mistakes, so it is kinda a precaution incase I need to make a new chip.

j
To solder, just touch the pin, and the solder at the same time, and you will see the soldering melt into the hole thus sealing the socket pin into the hole.

k
Now you can place a chip into the hole. The way you make these chips is by getting an EEPROM burner. It is like a CD burner, except for computer chips as oppoed to Cd`s. I would get one from Jameco. The kinda chip you will get is called a 27C256. This is a 32k EEPROM which is exactly the sameone the Nintendo used for cartridges like Mario Brothers. I would also get those from Jameco.com. Remember to make sure your EEPROM burner can burn type 27C256 chips! So once you have this, (or maybe a friend has one?), you can download the compiled 32k file from here and burn this data to the chip.

l
The next part is the easy part. Get a drill, drill some startholes into the front of the plastic cartridge. Then with your wire cutters you used earler, bore out the plastic. You need to do this cause the socket we used is too tall for the pastic case of the cartridge, so you need to drill out a hole so the new PRG chip can stick out.

m
Don`t forget to label it!

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Paris Hilton vs. Macaulay Culkin




Is it just me, or is some explanation in order?

*Note: Images have NOT been retouched,...only resized...

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

"Disco2.pct" desktop wallpaper



I make a desktop wall paper u can get at www.tokion.com....Note: Special thanks to lightning paint.

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Pizza Party



Pizza Party is a command line program that allows you to order pizza. made with Michael Frumin.

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©

Dooogle


www.dooogle.com is a google hack which only returns information on Doogie Howser M.D.

©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©