Help understanding ISP programming, bootloading, cores, USB to serial

BTW, I tried out the Dragon this evening and had a tough time getting it to talk to an ATtiny85 in circuit. Eventually I discovered that it would not work because I had PB2 (SCK) connected to drive an optoisolater. When I connected the optoisolator to a different pin all worked fine so somehow that optoisolator is causing errors in the communications for the Dragon but was not a problem for the Arduino as ISP. Maybe there is an override in the Dragon that could get past that problem?

I have not been able to get the Dragon working with the Arduino IDE. I'll try again tomorrow. I tried editing the boards.txt and programmers.txt as in the suggested links but get java errors when I try to upload a sketch using my edited entries and the Dragon.

Added to boards.txt

attiny85dragon.name=ATtiny85 1Mhz (w/ Dragon via ISP)
attiny85dragon.upload.using=dragon
attiny85dragon.upload.maximum_size=8192
attiny85dragon.build.mcu=attiny85
attiny85dragon.build.f_cpu=1000000L
attiny85dragon.build.core=attiny45_85

added to programmers.txt

dragon.name=Atmel AVR Dragon in ISP mode
dragon.communication=usb
dragon.protocol=dragon_isp

Errors

Binary sketch size: 1690 bytes (of a 8192 byte maximum)
java.lang.NullPointerException
at processing.app.debug.AvrdudeUploader.getProgrammerCommands(AvrdudeUploader.java:106)
at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:68)
at processing.app.Sketch.upload(Sketch.java:1603)
at processing.app.Sketch.exportApplet(Sketch.java:1568)
at processing.app.Sketch.exportApplet(Sketch.java:1524)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2293)
at java.lang.Thread.run(Thread.java:619)