=============================================

November 19th, 2008

One day I needed something simple like notepad, but with syntax highlight and easy idents. I looked at Notepad++, and I was like “OMFG! I don’t need that many features, goddamit. Just a notepad!“. So I made OMFGNotepad. It has all the features I ever needed - nothing less, nothing more.

Download here:
http://fileserver.forest-tm.com/soft/OMFGNotepad.2.0.rar

OMFGNotepad 2.0 features:

  • Is a notepad
  • Syntax highlights for most of what you want
  • Sometimes auto-determines file type, and changes syntax highlight
  • Displays file name in task bar - nothing more really
  • Black Phoenix uses it for most of ZCPU-related programming
  • You can quickly change idents of a code block
  • I think there’s about box
  • Full support for ZASM2 (not full support for ZGPU opcodes, and some new ZCPU opcodes, will fix ASAP)
  • Window can be maximized and minimized, also dragged around (it saves position and size)
  • Can export code into neat HTML (highlighted)

=============================================

November 18th, 2008

First version, based off some example I found on interwebs. It was a long time ago, it used 256 color palette, and generally sucked.

Second version, full color, sucked too, but it was temporary 3D renderer for one project I was making (I’ll tell about it someday, it was revolved around simulating oil spill physics and how to fight with it etc).

Third version used in my landscape renderer. Now with LOD’s! Allows for a much higher render distance, and it was never really shown to public.

Too bad I don’t have Delphi installed right now (those were written on Delphi), so I could make an animation of how it renders the landscape, but it looks pretty obvious - from near to far.

Here’s some C-like psuedocode on how this was done (input: Angle, VertAngle, ViewZ, GetHeight(), GetColor()):

for (int x = 0; x < width; x++) {
  //Compute view angle based on FOV, our current rotation, and current column
  ViewAngle = Angle + FOV*((x - width) / height);

  //Compute delta step based on current view angle
  DX = Cos(ViewAngle * PI / 180);
  DY = Sin(ViewAngle * PI / 180);
  DDist = DX*DX + DY*DY;

  //Compute start position of our tracer thing
  PX = CX;
  PY = CY;

  //Start distance
  Dist = Max(1,NearDist);

  //Do a small ray step (dont trace 90* under legs)
  PX = PX + NearDist * DX;
  PY = PY + NearDist * DY;

  //Compute distance ratio (distance per ray step)
  DistanceRatio = (FarDist - NearDist) / Steps;

  //Compute smallest (highest) Y
  minY = height;

  for (int d = 1; d < Steps; d++) {
    //Ray step
    PX = PX + DX * DistanceRatio;
    PY = PY + DY * DistanceRatio;

    //Distance step
    Dist = Dist + DDist * DistanceRatio;

    //Get terrain height...
    Height = GetHeight(PX,PY);

    //Project on screen, including depth and fake vertical angle
    y = Round(VertAngle + height - 100 * (Height - ViewZ) / Dist);
    if (y < minY) {
      if (minY > y) {
        Color = GetColor(PX,PY,Height);
        DrawVerticalLine(y,minY,x,Color); //Draw a line from y to minY
      }
      minY = y;
      if (minY = 0) break; //MinY = 0 means we should stop tracing for sure
    }
  }
}

=============================================

November 17th, 2008

=============================================

November 14th, 2008

Taking off and orbitting works perfectly:

Although landing is a problem. Because the only re-entry sequence that exists is for Space Shuttle, and this is not Space Shuttle, it poses a problem of determining proper way of flying (it has more lift than space shuttle, and weights much more). Last two out of three launches resulted in aircraft destruction, and one was canceled due to some problems during liftoff (aircraft safely landed at Edwards AFB).

If you are interested, here’s some telemetry data recieved two and a half minutes before craft hit the sea surface (blue line is altitude, not up to scale, but scaled by time. Starts at 290000ft or so, and ends at sea level):

=============================================

November 10th, 2008

Orbitting X-30 in X-Plane (alt 300000ft, speed 5.66 km/sec)

=============================================

November 9th, 2008

https://productstudio.partners.extranet.microsoft.com/

RDP: ps20dublin.partners.extranet.microsoft.com

Domains:

=============================================

November 8th, 2008

With some help I’ve accomplished the goal of few months - ZX Spectrum now runs and outputs image in COLOR.

Well, it’s not really done - right now only RGB and synchronization outputs are properly converted (to SCART). There’s still brightness output though, so it only displays 8 colors without shades.

Also cable is terrible, image quality is bad because of interference in the cable itself (it’s not isolated or anything, just simple 5-wire cable). You can see rounded edges, and a red stripe in the video below.

The cable:

That’s SCART. A lot of pins, for everything you could think of, but here’s what pins I used:

  • 21 - GRND (Ground)
  • 20 - SYNC (Synchronization signal)
  • 16 - BLNK (Blanking signal). Attached to a small 1.5v battery. There is no acceptable power source from Spectrum, and you have to input voltage here to switch from composite to RGB input/output)
  • 15 - RIN (Red channel input)
  • 11 - GIN (Green channel input)
  • 7 - BIN (Yellow channel input. No just kidding, it’s blue.)

Also it was fun when I made mistake of swapping BLNK (16th, RGB-COMPOSITE switch), and brightness output - it outputted only bright parts correctly, and the rest of screen was white…

Jet Set Willy was loaded from my laptop via sound output/tape input. The game works, except it’s copy of original, so I needed this nifty table to bypass copy protection (found on Wikipedia (look, it’s small picture doooown there):

Also notice the diskette inside. That’s my tapeloader diskette - it’s MS-DOS formatted, and therefore crashes ZX Spectrum, and it reboots in Sinclair ROM rather than TR-DOS ROM (TR-DOS works only for floppies).

Edit: Tape signal looks like this (square wave modulated by width, 300 bytes/second):

Photos:

Video:

(Yeah, that’s the kitchen, with the telly that is not occupied)

=============================================

November 8th, 2008

The new upcoming game console. It’s a 6th generation wired computer, and it uses GPU as primary output. Also for the first time ever, it has fully operational wireless interconnection system called WireFI based on regular radios, and WireFI specification.

Hardware specs:
CPU: 2x 2.60 MHZ ZCPU
RAM: 256KB RAM (64KB x2 + 128KB)
Video: ZGPU video output
Sound: 8-channel mono output
BIOS: FoxBIOS (8KB) + ACPI-BIOS (4KB)
Cartridge: FoxROM cartridges, max 1MB
Storage: 48KB ROM (save games)
Communication: WireFI compatible, 4 radio channels, up to 16 simultenous devices.
Input: Universal Joystick Interface (via WireFI)
Motherboard: Fox Motherboard (Theta, revision 5)

Size comparsion:

Motherboard:

More screenshots:

=============================================

November 7th, 2008

GWCD (GMOD Wire Computer Developement) group website has opened. New contraptions and computers will be posted there, I will mirror my contraption posts from that website here though (for consistency). So tomorrow there will be two posts instead of one.

=============================================

November 6th, 2008

A new construct map in making, featuring a (relatively) realistic subway line. I hope for several KM of track, and 4 to 6 stations. And a little overground bit too. The tracks are mostly straight, so building good trains is easier, plus there might be chassis presets/premade trains.