Category: Oldest📜

1992 to 2003

  • 1997-2022 Kitchen HiFi 📻

    1997-2022 Kitchen HiFi 📻

    ⏱️Overview

    This will be a somewhat unusual project post. I normally don’t show off stuff that didn’t need much creative work, but in this case it has a very long history (since 1997). It has gone through many modifications and it is still used every day, now in our kitchen for playing music.

    📷Pictures

    Gallery here.
    It has pictures from 2020 and up, showing old look and the newest merge of 2 HiFis. Needless to say, their cases weren’t compatible at all, so there is a lot of black tape around.

    📜History

    It all started as a Panasonic RX-FT530 Dual Cassette Player. My mom bought it for me in 1997 (its production date inside has 1995), before I started technical high school. It was also around the date when I started learning electronics in practice and later in theory (from 20 years ago) at school.

    Since then it has gone many changes and had lots of features, many of them aren’t present now:

    • Blue LED for radio stereo indicator. Obviously, the first thing to do.
    • A switch for super fast cassette rewinding (Do feel free to spool through). Tape looked after a bit uneven inside, but very useful.
    • Green LED lights under both cassette decks (in middle) to see where the tape is at (how much on left and right barrel). Also extremely useful.
    • I removed the closing decks, and was just having cassettes clearly visible while using.
    • A small LED for the marker on frequency ruler for analog radio. I think it broke at some point leaving me without a ruler. I guess due to putting it apart and together again, fast and too many times, while not caring much where I place its parts.
    • Not sure when, I splashed it with (white, silver and gold) oil paint?, from PCB markers I had back then (obviously too many).
    • A digital clock, at some point on right side. Wasn’t very accurate so it didn’t last long there. Left a switch and 4 places after its buttons in back though.
    • More input sockets, output audio socket to other amplifier, switch for it etc.
      I remember at some point of experimenting with other amplifier I accidentally put like -30V into HiFi, killing its power AMP chip. Which I then replaced, was a good challenge. While still being a teenager I obviously needed this HiFi.
    • Since these became not needed later, all holes got covered with black tape (at least 10 already, in total).
    • At some point I added a 5V regulator 7805 and USB sockets so I could power other devices from HiFi, e.g. a clock
      (Instead of ridiculous AA batteries. One can use a 3V regulator or a resistor (e.g. 200Ω) with 3V zener diode).
    • It has spent a few years, abandoned in cellar. Gathering dust and wishing for a better future.
    • Many years later, I ended my history with cassettes (recorded them on PC into FLAC and OGG, and threw out after).
      In 2020 the cassette decks (with all that mechanical nonsense and engine) flew out to electronic garbage bin too. It was just the amp and radio then.
    • I wanted to have a digital radio, that stayed at given frequency. And BTW a MP3 / USB player, why not.
      So I ended buying a cheap, local, 2nd HiFi (anyway with Chinese components) which just featured both. It had crappy sound due to small speakers (no bass at all), we used if for short, but naturally I wanted to merge its insides into my old speakers from Panasonic.

    🔍Details

    The final “HiFi” currently features a digital radio, USB or SD card player (from that 2nd cheap “HiFi” product) and analog input.
    Its radio forgets frequency after power off though, so power is always on. It was too in Panasonic, IDK why, using about 0.5 to 1W constantly, power amp is likely always on.

    I scrapped that stupid Class D amp (MIX3018) from 2nd HiFi, I prefer that AB, although it has too much power. Then located its audio outputs and connected to old LA4108 power amp (low quality, too much power), but with better quality anyway.
    Later I also added a double potentiometer (which I even had available) for volume on front, since the original was making noise when turning.

    I will eventually just use op-amps to speakers someday, and will throw out the big old PCB too, from which just 20% is now used. Then it will be just speakers and case from the oldest HiFi.

    There are now 3 extra buttons on top (power on/off (hold) / input, next and previous) to control 2nd HiFi. Light press switches, 0.5N force, my favorite. I put rubber cover on top, to protect form any liquids💧, this is kitchen after all🫖💦.

    For a while I had a cheap tiny Bluetooth receiver in analog input, powered from USB, but I dropped it, too much noise and once a while it did reconnect etc. Audio cable is more reliable, even cheaper.

    I still use its regulated 5V outside but in different connector (PC like), to power an outside thermometer (was from a PC case) and a digital LCD clock.

    Lastly I added a small white LED lamp, that’s always on, and helps moving around the kitchen at night, before reaching main light switch.

    ⌛Conclusions

    So: why didn’t I just buy a new HiFi that already has all those features, instead of continuing with this old junk?
    Several reasons:

    • Firstly, there is no such thing as a product that has all features / properties that I need, with proper control and interface (knobs, convenient buttons, menu, etc). This can only be achieved by continuing to develop it myself according to my current needs.
      I now see all electronics products just as ingredients for further modification. Ideally I would create one from start, but that’d be too much time and effort spent, just for our kitchen.
    • Secondly, I am an anti-consumer, I usually hate buying. It needs a lot of time for research, to find a product that is closest to: not a hoax/hype, reliable, functional, fair-priced, still cheap, durable (will work for long), allows repairs, looks okay, black, etc. (all at once; add needed, strike out not needed ?). On top of that I don’t like spending money (I like saving it) to support companies, which constantly produce (soon-to-be) garbage.
    • Lastly, it is a fun and easy hobby that grants better more customized products for daily use.
  • 2003 Painting, Eye

    2003 Painting, Eye

    ⏱️Overview

    This is the painting I did in 2003, on my room’s wall (the one behind my monitor). It was empty and really boring, and so it became an original and fitting background.

    I called it “The Eye of the Pharaoh”. It is a magical Gem (in middle) surrounded by 4 powers, emitting outside. From top left these are: Fire (yellow), Laser (lime), Lightning (white) and Neon (cyan). The eye itself is emerging from a cloud and has an extra lightning ring around it.

    💡Idea

    It was an inspiration for a game I wanted to create once (and most likely won’t). A top down ARPG shooter which would have weapons with those powers and this could be the energy source. But since I was also creating music at the time I used the title also for my group name.

    🔍Details

    I think it took about 1 week to make. It was actually quite an exercise for me, to move around and paint. It has at least 5 layers. I used various 1 liter house paints, only few colors I think (thus orange in fire is not saturated).

    • The background and most was done with a medium 1cm wide brush, nothing special.
    • The shiny skyblue ribbons in background are done with a spray paint. Also center gem (eye) has some of it. Red ribbons are regular paint.
    • The black rods are also done with a spray, shiny black. That’s why they are very dark and lower part shines from camera’s flash. The picture was only edited near borders. It’s also difficult to shoot straight at it, so it’s a little skewed, viewed from below.
    • The tiny detailed parts in ornaments (on rod ends) and a lot in lighting were done with few pieces of bent metal, sunk in paint and touched on wall to get a sharp and thin line.
    • Outer parts (web) and glowing glyphs were done with paint mixed with water, so they became transparent. I also darkened this way the ornaments later, with black paint and water, were too bright before.

    I think I used a small paintbrush for the rod shining and arc blocks (near center) but the detail was limited by the wall’s texture, It is quite coarse.

    ➡️Note

    Well it is still here, even after 20 years. It surely was a nice thing to look at, instead of a boring wall 😁.

  • 2002-03 Console 8051

    2002-03 Console 8051

    ⏱️Overview

    This is the final version of the “console” I created around 2003. Its purpose was to serve as program memory for 8051 MCU (board with it is not yet attached on this picture).
    The PC was filling console’s memory with bytes of code and then starting MCU which used it as program code.
    Console was connected with a PC through parallel port (LPT). The PC had my own IDE (editor) and compiling its assembler code to bytes.

    Nowadays this isn’t at all needed and even looks scary. MCUs of today have Flash memory for program, either programmed from PC through USB already or with a simple chip (USB to serial) converter/adapter/programmer.

    📊Features

    PC usually was sending a lot of bytes, so the console had counters, to increment the address by itself.
    It used power supply from PC, here 12V which LM317 regulator converted to 5V.

    So its memory (SRAM, 256kbit) was filled by the PC through the console, it then would serve as program memory for the 8051 family MCUs (a quite popular one, but still poor, like ATmega328 today).

    I had two modules for it. One with big 80C32 and second with smaller and faster 90C32. The console had a connector where you could attach one.

    It also featured a relay that would automatically turn on the supply for the module once the program got transferred to memory.

    Later you could switch the SRAM to EEPROM and get it programmed for the use in actual module/device with MCU, without console. Which I eventually never got to.

    🔍Details

    The console board was smaller than the older one (below) and needed less current. It featured a small and detachable display module, for showing address and byte value, which was mainly for checking and later wasn’t needed.

    Construction was made on a universal board, possibly reused. Since being smaller it also was more durable and had less spaghetti wires. Underside actually looked very well compared to the mess in older version.

    🖥️Program

    The PC program was driving LPT port and sending code bytes to memory. It quickly became a basic IDE, where I could write code for ’51 MCU in its assembly language. I wrote it in Delphi 5, which I was using at that time a lot. It translated all instructions and computed jump offsets. Additionally with one key press it compiled assembly code to bytes, then sent it to console and triggered its relay to start the program with MCU module. That was the most convenient thing possible. I’ve seen too many solutions which needed pressing reset switch on the board or other slow, manual work.

    👉Conclusions

    I was trying out few things to get done, an 8 bit ADC, a real time clock HM6818A chip and mostly 5×7 dot matrices. It somehow didn’t feel too stable, and it was a lot work to get anything done at the time. I actually didn’t finish any board then, as a separate working MCU. For a clock it would use too much current. And for making anything else that MCU was too slow. And I was more interested in other things at the time like creating music and my tracker.

    Lately everything I wanted back then, can be easily (and rather cheaply) done with modern MCUs connected through USB. Hence my recent interest got back into electronics and my keyboards even had a 128×64 display and even a 160×128 one later.

    📜Older version

    The first (older) version had bigger digits, mounted solid with also the logic to decode them. I think it was using close to 1A from 5V, and the 74192 counters were heating like crazy.

    I was also using SMD chips, if I found them somewhere else and desoldered. I don’t have any picture from underside of this old version, but I remember it was a serious spaghetti. I’m guessing around 400 wires connected 😆.

  • 2000-01 Drawings 🖌️

    2000-01 Drawings 🖌️

    ⏱️Overview

    These are decorative texts, drawn on paper. I was using (up to) about 26 colorful gel pens and few regular ballpoint pens too. The text in this picture is Experience (my favorite one).

    📷Gallery

    Full gallery with more here.

    ✍️Motivation

    Back in technical high school I was very disappointed at the level of education there (mainly stuff from 1980). And also extremely bored, especially on history and Polish (literature) lessons 🥱.

    After all, that stuff was already in the elementary school, and I thought I will get rid of those crappy non technical subjects.

    I never accepted the garbage I had to learn and did only bare minimum. There was no chemistry at all and history was for 4 (of 5) years? Now that was serious bullshit 😡.

    So yeah, this was my sudden and creative outcome at the time, which (at least partially) fixed the boredom and made something cool with the time. I didn’t expect it would happen.

    🔍Details

    The words in pictures from gallery are as follows:

    • Cathedral, Catedral (t upside down), Experience, Revolution, Reality. The rest is easy to tell.

    The green crystal hammer style is quite different and funny, normal one is the violet.
    There is also the eye gem symbol, a simpler version from my later painting. I only drew 2D things.

  • 1997 Last DOS Games 🚁

    1997 Last DOS Games 🚁

    ⏱️Overview

    Here I will gather 2 last games I made in DOS. Each of them also featured an editor, for creating (drawing) maps.
    Still in resolution 320×200 (256 colors) and in Turbo Pascal 7.0 with parts in Assembler. This was on PC with Pentium 120MHz. I tried 640×400 later, but it was too slow.

    🚗Car game

    📜History

    The first game I just called Porsche. Poor name, it’s a brand name, so it can’t be used. But I was a kid and had a model and a poster of such car.
    On the most bottom left screenshot there is a first, starting version of this game.
    This is what’s left. Very sadly, I have lost the final version (had no others) about 1 or 2 years after.
    But I won’t forget how we played it, in the summer of 1997 with elementary school colleague(s).

    📊Features

    Game was for 2 players only and had split screen. Cars were in center, map moved below. Similar way to my earlier 2 Planes game here.
    Maps had 3 sizes (square, in pixels): small (250 x 250), medium (450) and big (700). Due to only 640kB memory big maps didn’t start in IDE, so I could only test the game on medium.

    It was a simple, rally type driving with lots of sliding (especially in winter and autumn).

    The final game had 87 tracks in 7 sceneries: Forest, Jungle, Desert, Winter, Australia, Autumn, City (latest new: Mountain).
    About 18 of them were actually just circles, ellipses and rounded rectangles. These were real fun to play with many laps.
    I still have all our track prototypes drawn on paper. They lasted way longer than any of my PCs.

    There was an editor for creating tracks, where I would draw road:

    • straights and turns,
    • bridges or dips
    • jumps (car flew for a while without control, longer with more speed at start)

    Then place trees (also all of 9 types of vegetation at once), water, etc.

    There were also few graphic attractions like:

    • staying tire trails
    • dust behind cars (on deserts)
    • screen blur effect in autumn (with more speed), kind of like rain.

    Next, gameplay features were areas, with:

    • water
    • mud (slowing down)
    • grease (less control and random turning)
    • ice (no control)

    These were already present in my earlier game from 1996.
    Water puddles in autumn were even more slippery than the wet road.

    Then were some funny things:

    • stacks of tires – didn’t damage car, but bounced it back and sounded funny
    • blocks of hay – helping on road, or side, by slowing car down, e.g. before sharp turns
    • hedges – were along road, safe, didn’t bounce or damage car
    • sharp bushes damaging car (possible on road)
    • city tracks could have crosswalks with people (few pixels), you could smash

    Game featured sounds of course. The collision detection was quite basic (bad) but worked. The car just bounced back after hitting anything (trees and such), in the opposite direction it hit.
    We had simple damage slowing down cars. Tracks had repairing areas, car didn’t need to stop just drive over them.

    So the screenshots on left, with car in center, show actually the next version Porsche II, which was started later but never finished.

    🚁Shooter

    The second game, a top view scrolling shooter, again I poorly named Rambo II. Was meant to have similar jungle style to that movie.

    I did the basic start of game, 2 enemy planes, 3 weapons for player’s helicopter, animating water (palette), sparks on hit, and explosions.
    And the editor for map was quite good. I was drawing terrain levels, then few algorithms were adding noise, blurring few times to make it look like foliage (grassy hills). Then I could put rivers, with increasing width, starting from tiny streams. Rivers had auto added rocks on sides. On screen there are 2 types visible, clear blue and olive.
    There was also a separate tool, visible in the middle, just for putting enemy ships and picking their paths in places on the map. It was possible to move the map (in time) to show where ships will be.

    Once I showed this project in class (technical high school), I didn’t have to do anything, besides attending. It was very cool.

    ⏳Conclusions

    Since the loss (of Porsche with 87 tracks) was a result of my stupidity, I’ll gather the faults that led to it, with what I learned to do below:

    • HDD fail (the worst failing Seagate 1GB). I then even bought a second of same type (was cheaper) and it failed later too.
      Well today I’m checking for fail rates of HDDs before I buy and I don’t go just for the cheapest.
      For some time I made backups on CD/DVD/BR, some lasted more than HDDs. But now I don’t, recorders cost the same as HDDs. Eventually all HDDs fail, and I think I had maybe 2 every 5, lasting longer than I needed it. Now I have one HDD more, just for backup (of important data).
    • I made just one backup copy, on floppy disks, using a freaking self extracting RAR (binary exe). Without the 1st I can’t extract any later.
      I never used self extracting type after, and also forgot about RAR after I found out 7zip, which is also supported in DoubleCommander.
    • I have overwritten the backup, the first 8 of 23 parts. I shouldn’t ever do that. There were several ways to avoid this. Worst is that it was actually a suggestion from, well the stupidest teacher I had. The one who also said “you can overclock your CPU, no problems” and my motherboard died after. Later he even ended in jail for stealing huge money sums, also some from students.
      So yeah, as the saying goes: “never follow advice from people who you wouldn’t trade places with”.
    • I never made any copy of the source code during. It was 65kB for game and 68kB for editor.
      This is so small, that I should have copied it every day. Later I started just making archives often, from just my sources.
      And since I started with github I have repositories of my main projects there.
    • I would even loose everything from DOS (my projects in Turbo Pascal) with that stupid HDD, if I didn’t copy it all to my friend. I think it was my idea, so he could learn from it. He kept it and then I could restore it back.

    Finally, I used few concepts of this car game and many actual tracks in our 3D game (started 13 yeas later) Stunt Rally. And since Stunt Rally was really well made and its track count reached 176, I don’t miss my 1997 game so much (which took 2 or 3 weeks to make). While Stunt Rally had (over) 5 years of development, and I wouldn’t make it so only by myself.

  • 1996 Tracks game 🚘

    1996 Tracks game 🚘

    ⏱️Overview

    This was my first 2 player car driving game. Well a car being here a 6×3 pixels solid color rectangle.
    Done in that great 320×200 mode, with a static view of whole track on screen. I wrote it in Turbo Pascal 7.0 in 1996.

    It was also very successful, I played it at the time with my elementary school colleges (even few visited).

    💡Implementation

    It had very basic 1 tone PC speaker sounds. And all moving graphics were blinking badly (no V-sync). I think I didn’t know how to change palette R,G,B colors yet, so it only had default 256 palette colors. But it did feature some pixel effects like leaving tire traces and palette rotation for water animation (and teleporters).

    The later tracks were at night. A cool idea that wasn’t really that great due to that blinking. Cars had lamps (a triangle) that lit (changed colors) in front of them. One track was a total labyrinth in night and one even had a lighthouse with rotating light.

    📊Features

    It had 52 tracks, in just one scenery. But they featured plenty of attractions:

    • Car damage
      It was simply decreasing car top speed. After some damage taken, a spanner icon (for your car only) would appear in a random place. If picked it would repair damage.
    • Bridges
      Actually not easy to implement in a 2D game. I implemented them with special colors, reserved for detection and making car shift level (go dark under bridge) on bridge edges.
    • Jumps
      Those gray to white areas, making cars jump (become uncontrollable) and land after some time, depending on car speed when entering.
    • Areas with:
      • Water – Simply but nicely animating and making a splash sound when entering, slowing car.
      • Mud – Slowing cars down a lot.
      • Grease – Vigorously turning car in random directions (each frame), quite funny and with sound too.
      • Ice – Car wasn’t controllable on entering and was spinning in circle until it left ice.
    • Teleporters
      Those pink-magenta blinking pixels. There could be pairs of them on track. When entered it would instantly place car in other place. They made some pretty funny and odd looking tracks possible. E.g. the track with 6 circles, you basically didn’t know where you’ll land.
    • Moving barricades
      Closing and opening in a place on track requiring to be quick to pass or blocking road and making you wait until it opens again.
    • Rubber road borders
      In red-pink color. I think the idea was to make some places not damage your car.

    🔍Details

    Since nearly all roads had borders, that was the main difficulty to slow down or quickly steer to not hit borders and take damage. Hitting a border stopped cars immediately in place (bad but easy to implement). This required cars to be steerable even without moving and around the edge not center.
    I was detecting collisions (and areas) by reading a pixel from image. Hitting other car was possible and funny (it gained speed).

  • 1993-96 Oldest projects

    1993-96 Oldest projects

    ⏱️Overview

    Here is a collection of my oldest programs and games. Spanning from about 1993 to 1996.
    I did them in Turbo Pascal 7.0 in elementary school.
    Simple graphical demo programs and games limited by 1990s hardware.

    📜Old

    Left column has screens from the earliest programs in EGA 640×350, 16 colors.
    They had also only PC speaker sounds. Except music score? player (with editor) which I made later.
    Like most of my early drawing on screen, everything was blinking awfully, not having V-Sync.

    The Military and Sea animations (left bottom) were the biggest of my programs at the time (435 and 223 lines). But not complicated at all, only using for loops and few procedures for shortcuts.

    💡New

    Middle and right has screens from VGA 320×200, 256 colors, the favorite mode 13h. Which I learned from a new book.
    Later I also was using 10 or 22 kHz, 8bit sounds (another book). I gathered and extracted them from wherever I could (i.e. other games, programs). Some sounds I recorded on my analog microphone.

    There was a cool program for editing and playing animations on 8×8 matrix of LEDs, saving and loading them in files.

    I created my first music tracker (way before SXIV). It could only play 1 pattern and there weren’t even real notes, just all letters from alphabet changing frequency improperly. It had 4 channels with oscilloscope view and was fun.

    🕹️Games

    I made many small games at the time. Most were for 2 players on keyboard.

    • Space games (3 on top right).
      Top view, 2D, having cyclic borders, i.e. when you fly over bottom, you appear on top, same for left and right.
      Those were pretty funny games. Only Mars shooter was funnier, newer and same style.
      The fist one though was too complicated as there were only 8 directions of movement and too many weird weapons, all having own keys to use.
      The later 2 were cool and just used 4 keys to move and 2 to shoot with some ammunition buffer that slowly auto refilled.
    • Frogs game
      Front (side) view, 2D, with gravity.
      Using just integer values multiplied by 1024 for more precision (so fixed point).
      Game’s idea came from my colleague. Flies appear over time and move randomly. You control a frog, jump and stick out a short tongue to catch them, until time ends. The longer you press the higher you jump, this was bit tricky to code back then. Tongue goes fast and back slower, then has some idle time.
      The second version was already great, it had up to 2000 particles from splashes and 3 types of flies.
      Ah and those pink particles were puke ?, happening when frog got a wet fly, falling slowly after being splashed. It was a lot of fun and laughing. Even more so with dying flies having sounds from e.g. Dune 2 dying troopers or Cannon Fodder ?.
      Then I already was using assembler for double buffered drawing and V-Sync. It was nice and smooth.
    • 2 Planes
      Game featured 2D map of a big size (max. what 640kB allowed, I think 750×750). Scenery was created with simple drawing code for grass, trees, water etc.
      It had 2 views, 1 for each player. Map was moving, the plane was always in center.
      It was quite simple, had keys to turn, faster, slower and shoot. Weapon heated up so it had to cool down to again shoot faster. Planes were leaving smoke pixels with more damage.
      In the middle there was a green (rectangle) radar with fading dots where the planes are.
      Ah and lastly you could blow up few buildings on ground just for fun.

    ⏳Next

    What came next were bigger games (just more content), but in the same VGA mode. Sadly I stick to it for too long, not having either fast code (DOS4GW was out of reach) or hardware. I didn’t move to bigger resolutions until I left DOS.

  • 1992 The beginning 📜

    1992 The beginning 📜

    ⏱️Overview

    So, this is the beginning. In the beginning was the Word, and the Word had 2 bytes.

    This was my first computer, an Amstrad produced IBM compatible PC XT, PC 1640. It fits well because it had a 8086 processor, which was 16 bit, so had just 2 byte words.

    Some more pages about the PC here: 1, 2, 3.

    📜History

    It ran at 8 MHz with 640kB memory, and already featured a 20 MB hard drive (very loud), besides the 360 KB 5¼-inch floppy drive.
    I had a monochrome CRT for a while. Then got a color display with 640 x 350 pixels and 16 colors (EGA mode). Sadly the first was junk I couldn’t get rid of, since it had the power supply inside.

    I got it when I was 10 years old. After probably a year of using DOS 3.2, Norton Commander and playing very old games (were mostly just bad ports from Amiga as I see now) I wanted to create some of my own.

    ✍️Motivation

    Then luckily after hearing that, my cousin brought me Turbo Pascal 6.0, one book for it, and that’s how it started. I was tinkering with the included BGI demo a lot. It was very big, had 1425 lines of code. Which was so inconvenient to browse, when only 21 lines of code were visible at once (80×25 characters on screen). Still, this and the book examples, were my only sources for most programs at start.

    I created few graphical demos and other small programs. And at the age of 12 I have already made a game. It was very simple as I didn’t even know loops, but it worked and had 3 levels. Shortly after I made many more. This is covered in the next post.

    📷Pictures

    Here is the picture of my first keyboard. It didn’t yet have the extra part with arrows. Which basically duplicates numpad keys (with NumLock off). I got used to it and I prefer that. You have more keys in 1 place, so less moving around, and can have 4 fingers on all arrows. This explains why I tend to remove that part it in my new keyboards.

    Next, a picture with my first siskette (a system diskette💾 for short).