What's new (2019)

Oh oh oh

December 24th, 2019

Hey, merry Christmas everybody! I wish I've had the time to come up with a Christmas-themed program for your antique DOS machine, but I really ran out of time. I'm not even sure I'll be able to complete the current project before the end of the year. Poor planning. That sucks. Well, at least, you can play Sexy Smart Slide and enjoy the bonus puzzle if you haven't seen it already.

Space port special

December 17th, 2019

If I've seen the Star Wars special? What's so special about Star Wars anymore? It's everywhere like my wife's guests during holiday season. But enough talk about my sweetheart's space invaders and more babbling about Taito's Space Invaders! Hop to the review section to grab this instant classic QBASIC port!

Everything's terrible

December 6th, 2019

The house is a mess. On the plus side, I took some time to rework the menu tokenizer I used for MineSweeper Duo and packed it up for you enjoyment (or not, I mean, it's a very niche kinda tool.) I also added another utility to the download section so you can create fields (I touched a bit on that in the menu tutorial, it's a way to wire program variables to user interfaces, like the INI system in Cody McCloud.) Now if you'll excuse me, I have some crying in the corner to do.

No, it's not slang for jerking off...


November 11th, 2019

Just uploaded a review for Outbreak, the game that inspired the creation of Cody McCloud (still unfinished, I know - it requires much more time than I can give right now.) Mike Hawk over. Up, up and AWOL!

Still alive (bis 2)

November 8th, 2019

I'm currently busy emptying the house (although I still have no date set for the various stuff that needs to be done) and my main setup is now in a box... somewhere... I'll try to write a quick fix soon, maybe another review (there's a couple of games I could cover) or a quick list of simple algorithms for collision detection and extra tips on the topic. That's it for now, have a wondefufulufulufluflufufufulufu...


...fle day! Or something.

Another review

October 23rd, 2019

Back in my days, when you had nothing to write on your webpage, you'd just post the dancing baby meme... which reminds me: I've spent two hours in a mall with a relative who wanted to buy a new fridge but had no idea which one he should pick. He just had no idea, kept comparing each model, pondering stuff and whatnots... and it got me thinking (as I sometime do.)

When's the last time your fridge broke? We reached such a level of comfort in our lives and expertize with those things that it's now impossible to come up with any new feature that would actually benefit the basic use of the product in question (I mean, how many different ways can you freeze a loaf of bread?) This would explain why everything (from your toothbrush to your washing machine) is now wifi-connected. I know it sounds stupid, but hear me out.

The next major step in "intelligent" kitchen appliances will likely be a warm voice showering you with compliments specifically crafted to prevent buyer's remorse. Or even better: the fridge will be connected to Facebook, notice when you've split up with your girlfriend and start comforting you with kind words and empty platitudes (such as "you're way too good for her anyway" or "plenty of fishes in the sea") as it forces feed you salted caramel ice cream... meanwhile, your workout bench (connected to your fridge via Bluetooth) will start arguing over your recent calories intake and order you to "put your fat ass on it and sweat some pounds away" instead...

As "intelligent" machines will endlessly argue with one another about your life decisions (or lack thereof,) your role as a human being will be to crawl back into bed and cry yourself to sleep, regretting the recent purchase of that damn wifi-ready intelligent mattress who's been hitting on you since Laura left.

Madmix (the game) is available in the review section and has no on-line component.


October 6th, 2019

Why don't you buy a house, Mike? It's gonna fun Mike! Oh, I AM having fun; just not the programming-stupid-games-with-an-outdated-language-for-a-niche-audience kind of fun, mind you, but I'm still having fun... I haven't had the chance to touch on the game for the past three to four weeks, and had it sitting on my hard drive, sad, untouched and unloved like a Hemingway character. Since I have no idea when I'll be able to complete it, here's what's "done" so far (there are plenty of graphics to be done, more levels to add, new backgrounds to draw, and some things to clean up here and there.) Check it out, it's in the game category.

Still alive (bis)

September 30th, 2019

Just rewrote the specs for TGA BMP, should be far easier to read and much more informative. I hate these kinds of updates at least as much as feeling something sticky on my fingers and having no idea where it came from finding dumb excuses to justify the lack of progress on my dumb game.

Still alive

September 24th, 2019

Just rewrote the specs for TGA, should be far easier to read and much more informative. I hate these kinds of updates at least as much as feeling something sticky on my fingers and having no idea where it came from.

Everything's falling into place

September 16th, 2019

And I'm not just talking about the house improvement stuff I already touched a word on recently! Today I'll be reviewing "Bricko!," a puzzle game written by Davey W. Taylor way back in 1999. Go check it out, it's still a lot of fun!

And that's it. If you ever need me, I'll be... surprised.

Sorry, nothing.

September 12th, 2019

The next game is going fine, the engine is done and I don't think I'll have to come back to it. Now for the bad news, I have a ton of graphics to scribble and this is going to take a while (I'd like to work a bit with palette cycling, but I have no dedicated tool to do that and it is overly time-consumming.) I also would like to bundle the game with a level editor, which I don't have (right now, levels are generated via script files.)

Life is also super exciting at the moment with major home improvement in the foreseeable future, which will also slow my programming schedule down a notch.

EDIT: here's a screenshot of the Kaboom-inspired bonus stage.

Small update

September 1st, 2019

Did you know that this day in 1939, Germany invaded Poland, starting World War II? Also, in 2019, Mike Hawk finally got to redo the footer and modified the layout of the site a tiny little bit. I know it might seem unimportant, but that's one small step for Mike Hawk and I don't know how to end this sentence.

Keyboard and tools

August 31st, 2019

Just uploaded a new version of DAT Manager, which now supports masks for all operations (so it's possible to add multiple files with the same extension instead of having to make a list or write them manually via the command line.) Also, the Joystick and Mouse article now includes info on Keyboard handling techniques. And while I'm at it, here's a screenshot of what I'm working on. I'm busy with other things right now, so I don't know when this one will be done.

Useful old code

August 23rd, 2019

I don't have anything cool to show yet, so I looked for things I could upload instead. I've been using CALL INTERRUPX like a cheap hooker for a while now and tha.t instruction is unfortunately not available in QBASIC 1.1 (the free home version of QuickBASIC.) Freeloaders attempting to run code that uses INTERRUPX in QBASIC 1.1 are out of luck... that is, unless they copy and paste the custom-made CALL INTERRUPTX code written by Hans Lunsing in 1992 (so that's one file you may download.) I also really like the DIR$ function that came with PDS 7.1 (the super expensive professional QuickBASIC,) which Dave Cleary backported to QuickBASIC 4.5 in 1991. If you're a true sicko like I am, you can also run it under QBASIC 1.1 thanks to the custom CALL INTERRUPTX instruction. Because why not.

Some QB history

August 18th, 2019

Just a quick head up. Work on my next game just started. In other news, it seems that the very first QuickBASIC 1.00 (released in 1985) has been retrieved recently (it's pretty much a rebranded BASCOM.) JohnLemon647 posted on Pete's QB Site forums two links (WinWorld and PCjs) if you want to download it. You can get more info about QB's crazy timeline over there. Now if you'll excuse me, I have to go, the rug let itself go on the dog again.

Trust the plan

August 14th, 2019

I plan to take a dump in your garden and drop two more games by the end of the year, I'll start working on the next project soon. Meanwhile, because I hate to update this thing without providing anything new, I updated the Joystick article to include mouse support (the title was changed to Joysticks and Mouse, and will probably include Keyboard later on.) I thought I had something else to say, but I can't remember what. Hopefuly it has nothing to do with another ebola outbreak. Not that I would know.

I know what you're thinking.

August 8th, 2019

Stop it. Stop. It's disgusting and you should be ashamed of yourself. What you should really be pondering right now is "Mike, are you happy to see me or is that a joystick in your pocket?" Why yes, I am happy to see you, that bulge is indeed a joystick and neither of these facts have anything to do with my throbbing erection. Let me explain...

Recently, I went through some archives and found a link you should consider visiting if you're serious about QuickBASIC programming: Ethan Winer's website (this page more specifically.) What you'll find there is a free copy of the Ethan's book "BASIC Techniques and Utilities," (published in 1991 by PC Magazine Press.) The book covers in details how the compiler translates QB code to assembly (among other things) and explains how the source should be written to obtain smaller, faster binaries. A link to the free stuff is available there (along with plenty of documents and programs equally valuable.)

The invigorating excitation this book provided really motivated me to play with my joystick so much it now has issues centering itself. I truly realized how much when I began implementing Joystick/Gamepad support in QuickBASIC games and after seeing how large the deadzone was, I decided to look further into the problem and see if those effects can be dealt with in software.

Head to the article section to read more about it! No, not that kind of head. I said stop. You're making kitty scared.


August 3rd, 2019

I was sorting some old files and found a demo of a QuickBASIC RPG by Alphx Software called Syraphage (I don't know it it was ever finished.) When terminating the program, some debug text shows up followed by: "This build is dedicated to the memory of Milo Sedlacek (aka Gradius)." I've been using Milo's code for keyboard input since way back when so it got me intrigued. After a quick search, I stumbled across a video showing some of his games and the archive of a "mourning page" dedicated to his memory.

I know he passed away some twenty years ago, but damn does that feel weird.

Small update

August 1st, 2019

Fixed a small annoying bug with the dropdown menu on this site; I also noticed I forgot to put back the button to District and the other banners back on the page. I'll have to figure a place for them. In the meantime, do not confuse "meantime" and "clobbering time." It's not the same thing at all... and by all means, don't be mean. All that.

New Game: Minesweeper Duo

July 31st, 2019

Tight deadline? Ah! Nothing's too tight for Mike Hawk! Now I must admit it felt like completing a school assignment overnight, but I don't care: it's finally over! Now I only have to brace for the C- that's coming my way.

If you have just tuned in, the title is self-explanatory: it's Minesweeper with two game modes (solo and versus.) The gameplay is decent on low-end computers but you may need some patience when switching menus. You can download Minesweeper Duo in the games section.

Don't mine me

July 28th, 2019

[Ethereal echoing]: "I'll be uploading the next game by the end of the month, the end of the month, the end of the month..." When's the end of the month happening this year again? Asking for a friend. Minesweeper Duo is coming along just fine, so I'm not worried about the end of the month. I mean, I'm sure I'll be able to complete it before my self-imposed deadline [anxious laughter.]

Is Mike Hawk hard at work or hardly working? Will he pull it out in time? To be continued...

Short break

July 12th, 2019

Imagine that: 6 months of uninterrupted weekly (or at least biweekly) updates. I can't believe I've been keeping this up for so long. All that to say I'm taking a short break but I'll be (hopefully) uploading the next game by the end of the month. I'm also adding ZIP file specifications to the collection. Because why not.

New Game: Stunt Chopper

July 4th, 2019

Happy 4th of July everybody! As you all know, the 4th of July commemorates the not-so-mysterious disappearance of Natasha Stravinsky after her husband threw her in the Bermuda triangle for attempting to create a hamster/chipotle hybrid during WWII to defeat the Puerto Rican gang Sharks. Or something. So, get the BBQ ready, eat tons of hamburgers, launch some fireworks and start a devastating forest fire! Don't disappoint me (and I mean it in a James Bond villain kind of way, so you know it's serious.)

By the way, I uploaded another small game. It's nothing to write home about, so I write about it here instead. It's called Stunt Chopper, and it's very primitive. I'm still busy with another game which should be slightly more polished (a recreation of Minesweeper Flags, the two-player version from MSN Messenger.)

Be creative

June 29th, 2019

I just uploaded the official file specifications for Creative Lab's VOC audio format. For whatever reason, no one seems to have that. In fact, most of the sources I've read are based on he-said-she-said (looking at you, Wikipedia.) So there you have it. Impress your friends, be popular, learn how to use a format no one uses since the mid 90s and even Audacity has no idea what it is!

I'm forgetful sometimes

June 22th, 2019

Working on my next project. This time, I'll be using EMS (Expanded Memory) to store more data, which is something I've never done before, so please be gentle Senpai.

From what I gathered, it's like allocating memory in RAM, except you have to allocate memory by chunks of 16k called "pages." To get contiguous storage room, mutliple pages must be reserved within the same block. So, say you want 64k of contiguous memory, you'd have to reserve one block of 4 pages. To access that memory, there's a "page frame" which points to the currently used block. It seems to be like Mode-Y, where multiple planes share the same address and you have to select the plane you want to work with first... or I might be completely wrong, like that time I tried to bake waffles but ended up sharing a cell with a gorilla in San Diego's zoo.

Ah ah. Fun times.

EDIT: Added EMS 4.0 specifications to the "specifications" menu, it's very technical and boring. If you suffer from insomnia, you should tell your doctor about it.

Colorful info

June 9th, 2019

Just to let you know I updated the palette article to add a few cool tricks I didn't get around to explain the first time. Before I go, I'd like you to think about how noisy dog heaven must be. Just think about it.

Getting to know you

June 4th, 2019

And when I say YOU, you must understand the webpage. Well, YOU must understand the webpage. Not YOU, the webpage, must understand the webpage. It's hard enough for me, so don't make it more confusing than it needs to be. What is this? QuickBASIC history? Well yes, also. But not here, there. Over the about page. It's new, go click on it. But first, find it. It's in the menu, somewhere. God this is baffling. Take it away, Julie Andrews!

But first, I recently learned some trivia in regard to QBASIC 1.1; Thanks to The Easter Egg Archive: credits can be revealed by holding both left and right SHIT+CTRL+ALT during startup. Also, I've been looking for EDIT.COM (the text editor for DOS) and realized it was in fact the QBASIC IDE, only loaded via QBASIC.EXE /EDITOR. You learn something new every day I guess. Now take it away, Julie Andrews. For real this time.


May 25th, 2019

I've been using iframe for HTML design thinking it would make things easier for me (which, in the whole scheme of things, is true) but it's also a mess for visitors, neocities preview system, and it's a pain when I want to post a link to a specific page... after decades of not really understanding the hate against iframes, I've finally come to the realization that they are as convenient as they are annoying. I'll try and update the site to use another technique instead. Heated reaction from javascript haters in three... two... one...

Also, have a happy 25th of may everyone! (No, I don't think this date has any special meaning, but still, have a nice day.)

EDIT: Damn, I just looked it up out of curiosity and learned that on may 25th 1720, the ship "Le Grand St Antoine" reached Marseille, bringing Europe's last major plague outbreak, which killed around 100,000... so ignore what I said and have a rotten day... or don't. See if I care (oh boy, what have I got myself into?)

EDIT: Okay, new system working.

New Game: Panda Blast!

May 24th, 2019

Remember that top-secret project (codename "top-secret project")? Well, it's "done". Technically, the bare minimum for it to be a game is there, and it works. There's a win condition, a lose condition, a beginning and an end, even a dash of sparkly things and a small menu to top it all. But it's just so bare bone it hurts. It all started as a small tech demo that would take at most a week to code, and it's been two months of unplanned rewritings.

I still want to work on this thing (because it lacks a few key features in my opinion), while I also think it should be about time I'm done with it. You know what? I think I'll release it as is, no matter how lazy it looks. Go to "Panda Blast!" in the download section to see what it's all about.

SPOILER: Yes, it's exactly what it sounds like.

You should call more often

May 8th, 2019

Hello! This is Mike's mom. He won't be able to play today because he's still working on his dumb game. To prove he's not spending his days masturbating to cat pictures and memes (although he does), he's written a small article covering color palette in VGA. He also would like to modify the organization of files on his web blog page thingy and this could break some links (hopefully not for too long). Don't forget to wash your hands when you're done, eat your veggies, put a sweater on you're making me cold, and other stuff my mom would say. Ta-ta.

Contain your joy!

April 23rd, 2019

Working on the next project is taking so much time it's ridiculous. It is such a small game too. I'm not sure what went wrong. Was it my procrastination? My lack of planning? My two-week vacation to a secret sex-dungeon (and crack-den by night) in Baltimore? Anyway, to not completely leave this place unattended, I wrote another small thing talking about resources container and my unadulterated love for them (not even kidding, I love this shit!) The article covers four different file formats that were designed back when developers would create their own engine instead of licensing Unreal, Unity, GameMaker or RenderWare. I gotta stop talking about that, it's getting so much on my nerves it makes my second navel ooze pomegranate juice again. Don't you hate it when that happens? What do you mean you never get upset about game engines?

Mode-Y again

April 13th, 2019

I've got a few minutes before the next mud wrestling match video is done downloading, so I added a custom POINT replacement function for Mode-Y. I thought it might be useful. Also, we need to have a talk about that insensitive joke from last time. Let's make it clear: moles are the most valuable assets to any modern society and I feel like an apology is needed... don't force it, take your time. Now if you'll excuse me, I have... things... to do.


April 6th, 2019

First off, I'm very disappointed that the Ponzi scheme seminar I attended to was actually a scam. I'm shocked. Second, I threw together a bunch of information on Mode-Y and how to do basic stuff with it (like setting pixels, flipping pages, clearing pages, and copying pages). It's in the article subsection. Third, I've been drawing sprites for my top-secret project (its working title is "top-secret project"). Fourth, the manager said you couldn't have a "small" coffee, all we have is "Tall", "Grande", and "Venti" you hipster fuck. Also, this is an abortion clinic, not a Starbuck.

Wait, no, it's actually a webpage dedicated to QuickBASIC. I can be so forgetful sometimes.

Some tools

March 31st, 2019

Just uploaded two small tools: DAT Manager allows you to edit and create DAT files (these contain resources such as graphics and sound; I've been using this format in the Jaw remake and Sexy Smart Slide). The second tool converts PCX, BMP and TGA files to raw pixel buffers where pixels are spread across four planes, which is pretty much a requirement to use Mode-Y (I still want to write something that would feature this). And as always, the source is included. Now, if you'll excuse me, I have a Ponzi scheme seminar to attend to (I'm really looking forward to those billion Dogecoins I've been promized). Wush me lick!

I'm having fun

March 5th, 2019

In late January, I said I'd learn about a mysterious undocumented Mode 13, and you could tell I had no fucking idea what it was all about (since I thought it only allowed for 128 colors - not sure where I got that from). The thing in question is Mode-Y (it's like Mode-X, but in 320x200), an unchained Mode 13 (which means planes) that unlocks all 256K of video memory available on VGA cards. And that's freaking cool! I'm not sure what I'll do next, but right now, I'm having fun.

I'm also probably going to change a few things and expand upon the Writing Menus "article" because I think the wrap up was a tad lazy. On the other hand, I'm concerned that the new code is going to be way too complex to chew at once. We'll see about that.

Writing Menus

February 27th, 2019

"Hey kid... kid! Hey, wanna write a menu? Come on kid, no one will know, it's gonna be fun, you'll see." Little did Timmy know he was just accosted by an idle programmer. Parent! Talk to your kids about programmers, before a programmer does it!

I wrote a thing with tons of little bits of code, it's in the "Articles" section: Writing Menus - have fun! But no too much. Just have a healthy, moderate amount of fun. I really don't want someone to call the cops on me. Thanks.

New Game: Sexy Smart Slide

February 14th, 2019

I've made a slide puzzle that is a slide puzzle. It's boring. But it features some nice-looking people in glorious 160 colors. Maybe you should check it out... that is, if you like boring slide puzzle in 160-color.

Slide puzzle

January 30th, 2019

Valentine's day is in a couple of weeks and I got just the right thing up my sleeve; it starts with "slide" and ends with "puzzle" (and somewhere in between, I also want to add the words "sexy" and "smart"). It's just as naughty as it sounds and you'll get to peek under the hood to see that sexy, sexy source code!

In other news, I just realized I had skipped a few pages in Michael Abrash's Graphics Programming Black Book when I stumbled upon undocumented mode 13 that allows double buffering in 128 colors without allocating extra memory... maybe I got this wrong, but since I rarely use more than 128 colors, I gotta try this out some days.

Also in other news (notice the segue), Neocities Districts added this page to their directory, thanks a bunch guys!

Some documents

January 5th, 2019

Just added a new section to the sidebar: "Specifications". Right now, it contains four file specifications (for BMP, GIF, PCX and TGA). GIF and PCX are officials, TGA was found on Paul Bourke's webpage, I'm not sure where BMP is coming from. They could probably be reformated for convenience's sake, but I don't think it's necessary.