Category: Featured⭐️

  • 2002-03 Tracker SXIV 🎶

    2002-03 Tracker SXIV 🎶

    ⏱️Overview

    This is the music tracker program I wrote around 2002-2003, in Delphi 5.

    It was 800×600 on a 17″ CRT back then, so already 4 screens fit now.

    ✍️Motivation

    I was having fun with Scream Tracker on DOS before, so it felt best for creating music and using only keyboard for that.

    I called my program simply the same way, but started with version 6 and increased until 14. Then shorted it to just S and used Roman numerals XIV.

    This was such an awesome program to use and look at. Mainly because keyboard shortcuts were customized to what I wanted, and also I implemented many quite useful operations in it, e.g. in patterns editor.

    🔍Implementation

    It was using GLScene package for Delphi and my colored bitmap fonts from another program (it was the predecessor to Crystal Font), hence so varying and colorful texts everywhere.

    By default I also used colored image backgrounds, since pages felt really empty. It even had animated text transitions for title pages text and a toggleable fire animation in corner 🔥.

    But it was complete garbage at the way sound creation was done. It simply relied on a system timer event and triggered sound playing from DirectSound buffers. I know, nobody does that for music. I didn’t know any other way to code this then.

    Timer was more or less stable, but I had to render very little while playing, mostly empty screen and 1 bottom line of info.

    🎵Music

    I made about 5 songs with it, more here. Also used it for percussion patterns when we were both playing electric guitars.

    Later I was checking out Renoise, but eventually my interest faded away from creating music.

    Recently I found Furnace tracker (for chiptune music) to be very cool and FOSS, sources here.

    📷Gallery

  • 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.

    📜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.

    📷Gallery

    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.

  • 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).

    ✍️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.

    📷Gallery

    Full gallery with more below:

  • 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 git and github, now codeberg, I have repositories for 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.