#rubywand
Explore tagged Tumblr posts
sourcefield · 3 years ago
Photo
Tumblr media
Ruby Wand w Polished Tip // India . 1.5” x 0.8” x 0.6” // UV Reactive . $36 // Available . . . #ruby #corundum #rubywand #uvminerals #sourcefieldshop #sourcefield #source #crystals #vintagejewelry #gemstones #minerals #mineralspecimens #earthtreasures #stones #rocks #gems #earthdayeveryday #intelligentdesign #fractalgeometry #crystalline #resonance #energy #dimensions #naturalart #earthart #planetearth #crystalphotography #RSM38RY (at Planet Earth) https://www.instagram.com/p/Cj9DbS9POfe/?igshid=NGJjMDIxMWI=
1 note · View note
willidleaway · 8 years ago
Photo
Tumblr media
In case you thought I’d forgotten about classic computers, classic Infocom interactive fiction, or both—rest assured, it’s just that in the spare time I’ve had to play with either, I’ve mostly been stuck on Planetfall for a while and trying to get a mouse for my IIc at a reasonable price, and neither of those are particularly exciting to write about.
In the meantime, though, I had a quick burst of excitement because I finally managed to produce a physical backup diskette of Trinity! I know I said it was nigh impossible to duplicate with the tools on hand, but as it turns out the solution was to just kind of deal with it and be extremely patient.
Trinity, as some of you may recall, is a little bit difficult to copy. In fact it’s the most difficult to copy out of the four Infocom games I own, and possibly out of any Infocom text adventure (i.e. excluding the three Infocom IF works that actually have graphics). Wishbringer (or at least my copy of it) isn’t even superficially copy-protected, and both Planetfall and H2G2 can be copied pretty easily with a patched RWTS, through the ever-reliable workhorse that is Copy II Plus. [0]
Side 1 of Trinity is a standard DOS 3.3 diskette like Wishbringer, but then we have side 2, which has 18 sectors per track barely accommodating Trinity’s astounding size. Since Trinity is the only game taking full advantage of this 16-sector/18-sector hybrid format, it’s one of the trickier ones to deprotect. [1] Seriously dedicated readers of this tumblelog (so, no one) will remember that I dabbled with making a 16-sector version of the story diskette, and failed. Badly.
Since I can’t program in assembly to save my life, the only option left to me was to carefully duplicate the 18-sector side 2. The typical bit/nibble copiers of choice here are programs like Copy II Plus and Locksmith, and both have served me quite well in various contexts. But after a bit of a scare when the original diskette failed to verify after one particular attempt, I realised I had to be able to read in side 2 just once, and attempt many writes of that data until I had a working copy.
This left me with one option: Saltine’s Super Transcopy (SST), which packs arbitrary diskette data into two sides of a standard 16-sector diskette, to be read and unpacked later. So I booted up SST, threw side 2 of Trinity into my internal drive, and packed it onto two sides of a diskette in the external drive, which I then transferred to my laptop via ADTPro for good measure. Then I could repeatedly unpack this to a blank diskette (with the unprotected side 1 of Trinity copied to the other side, of course), boot up the backup, and ask the interpreter to verify the game data.
Of course, it didn’t work, but I could figure out how much of it was due to what. The nice thing about SST is that it half-works with Apple II emulators: packing data into 16-sector disks is pretty broken in every emulator I’ve tried, but unpacking disks into nibble-ised images works great. This means that, using my transferred images of the packed data diskette, I was able to figure out whether my problem was bad reading or bad writing of the diskette.
As it turns out, it was a bit of both. I tried unpacking the packed data a few times a few different ways (different drives, different SST parameters ...), all to no avail. But crucially, under Virtual ][ (a wonderful emulator that I should probably pay for at some point), the unpacked diskette still refused to verify, instead throwing internal errors at some point while reading the data in. Fortunately, Virtual ][ has got a very nice debugger, part of which allows you to see what the disk drives are doing and what track and sector of the diskette is being accessed.
Pretty soon, my workspace looked something like this:
Tumblr media
Since I’m too lazy to properly learn how nibbles work, I wrote up some quick Python code to compare the nibble-ised image generated from my faulty backup [2] against a nibble-ised image of (pretty much) the same diskette known to work well with emulators. Then I tracked down the necessary byte edit, applied it to the bad nibble-ised image, and retried the verify procedure.
With each fix, the verify procedure got just a little bit further, and eventually the bad backup got fixed up enough that it fully verified! The SST packed diskette format is quite transparent, so I was able to edit the 16-sector disk images in the same way and overwrite the old backups. There were really only eight bad points in the data (all on the first half of the disk, too—hmm), so this wasn’t a nightmarish task, at least in 2017.
Mind you, it still took three tries to get it to work on a physical diskette. [3] What ended up working was completely initialising, certifying, and erasing the side of the diskette about to be written to. This is what you’re supposed to do with SST in the first place (or rather with Essential Data Duplicator, which is what SST is stripped down from), although it is also certainly possible that the third time is just plain lucky. Probably not the case, though.
In conclusion, non-standard disk duplication is tricky and I’m glad software publishers no longer have complete free rein on how data is read from/written on media. Also thank god I own this in 2017 because if I had tried this in 1987 I’m pretty sure I’d have thrown everything out the window from sheer impatience. Several times.
Footnotes:
[0: Well, at least it’s ever-reliable for circumventing relatively basic tomfoolery with RWTS. But it’s better than Locksmith, which is frankly just obtuse. SST documentation is also a bit sparse, but it’s basically the only way to back up copy-protected images to standard 16-sector diskettes as far as I know.]
[1: There’s a rather amusing pair of standard DOS 3.3 images on the Asimov server, a version of Trinity cracked by ‘The Sheik’ from ‘The Digital Gang’. There’s an extravagant intro screen proclaiming the cracker’s identity, followed by a wall of text calling out ‘the Bunnymen’ as a bunch of incompetent, highly conceited losers. It’s all a bit in your face and as toxic as BBS piracy groups got back in the day, which makes the irony ever so sweet when the interpreter fails with ‘Internal error 04. End of session.’
Well, at least it does on Catakig, which is my usual emulator of choice. The Digital Gang weren’t actually incompetent enough to release a non-functional crack—it just fails to work on various emulators (perhaps even some hardware configurations?) depending on fidelity. On Virtual ][ it just ... kind of freezes up midway through the intro text and refuses to work any further. And on AppleWin, it actually gets you past the intro and to an actual prompt. It even verifies! Not successfully, mind you.
Tumblr media
Really, if you’re running Trinity on an emulator, just get Rubywand’s NIB images. They’re a faithful copy of the original clean, commercial diskette, and I should know because I had to do a nibble-level comparison of my side 2 against Rubywand’s side 2 and fix the corrupt nibbles on my end.
If for some reason you need a physical version, I should remind you that writing these sorts of disks can be quite unreliable, especially given the increased data density that comes with 18 sectors per track, which leaves no room for junk. That said, I’m hosting the SST packed disks for side 2 (and the decidedly normal side 1, too) here while my server is still alive.]
[2: I ended up using CiderPress as part of the process, as you can see. There’s a built-in function in CiderPress to unpack disk images generated via SST, which is quite nice as it automatically uses relevant bytes to synchronise the starts of tracks. This means I only have to deal with only one arbitrary offset per track when comparing against a known working image.]
[3: You know, it would probably help just a little if I set my external drive to spin at 297 rpm (and the internal at 300 rpm), but I’m too lazy/scared to shift either of them, since they seem to be in perfect working order at 298-298.5 rpm at the moment without my intervention.]
1 note · View note
sourcefield · 3 years ago
Photo
Tumblr media
Looking at beauty in the world is the first step to purifying the mind. 💯 . Ruby Generator Wand // India 🇮🇳 . 2” x 1.25” x 1” UV Reactive . $80 // Available . . . #corundum #ruby #rubywand #generatorpoint #massager #sourcefieldshop #sourcefield #source #crystals #vintagejewelry #gemstones #minerals #mineralspecimens #earthtreasures #stones #rocks #gems #earthdayeveryday #intelligentdesign #fractalgeometry #crystalline #resonance #energy #nature #naturalart #earthart #planetearth #crystalphotography (at Planet Earth) https://www.instagram.com/p/ChS5ZnlPg2K/?igshid=NGJjMDIxMWI=
0 notes
sourcefield · 3 years ago
Photo
Tumblr media
Ruby Wand w Polished tip // India 🇮🇳 . 2.125” x 0.75” x 0.75” UV Reactive . $38 // Available . . . #ruby #rubywand #polishedruby #naturalruby #corundum #sourcefieldshop #sourcefield #source #crystals #vintagejewelry #gemstones #minerals #mineralspecimens #earthtreasures #stones #rocks #gems #earthdayeveryday #intelligentdesign #fractalgeometry #crystalline #resonance #energy #nature #naturalart #earthart #planetearth #crystalphotography (at Planet Earth) https://www.instagram.com/p/ChGImcavzh6/?igshid=NGJjMDIxMWI=
0 notes