Showing posts with label devkitSMS. Show all posts
Showing posts with label devkitSMS. Show all posts

Wednesday, June 07, 2017

Some more news from 2016-2017

Another year has passed and here's my timely post. I bet some of you thought I would forget, right? ;)

Well, during the past months I've mostly been busy nurturing my SEGA Master System / Game Gear development kit and libraries, devkitSMS/SMSlib, and the time spent on that is bearing fruits. For example, the 2017 SMS Power! Coding Competition winning entry is a game developed by a fellow forum user eruiz00 using it - the game is called Astro Force, it's a vertical shoot-em-up, and it's a great game! It has many levels, lots of enemies, bosses, music and SFXs. The author is also distributing the game C source code, so if you feel inclined to see how he did it, you can see that for yourself.

Here are some screenshots, and the ROM (with the sources) can be downloaded from this page.

Astro Force - SEGA Master System homebrew game by eruiz00

The game is also using my SN76489 audio library, PSGlib, as does another great homebrew that won the second place in the very same aforementioned competition: a team of seriously talented guys (Psidum, Calindro, RushJet1 and Sim1) made a 25 fps FMV (full motion video) of the famous B&W video "Bad Apple" at full SMS resolution, 256x192 pixels. You can check out the video and audio at this YouTube recording. It's worth every second, it's just amazing what they achieved.

Besides the 8-bit world, there are some other news. The most important one for me is that we finally released Waimanu Grinding Blocks Adventure (for the Gameboy Advance) on a physical cartridge (!!!). This became possible thanks to our publisher, Piko Interactive. You can read all the details (and find out how to get a copy of it!) on Disjointed Studio's blog post. We're so excited and we can't wait to hold a copy of that in our hands!

Waimanu GBA boxes stacked up - picture by @thebitstation

Speaking about Disjointed Studio, we're finally approaching the beta phase of our new game Weka Invaders... well, unfortunately I can't tell yet how soon it will be released.

Finally, it's true I'm posting on this blog very infrequently. Nowadays I'm (slightly) more active on Twitter, so you can follow me @i_am_sverx for news between my blog posts.

See you!

Wednesday, June 08, 2016

Past Year's News

Ahoy!
 well, what should I say? I didn't post anything in a while - so let's recap what has happened since May 2015, which is a whopping 13 months ago. Sit down and relax... well, I promise it won't take too long anyway.

First and foremost, last November we Disjointed Studio guys released our first SEGA Master System game. It's called Waimanu: Scary Monsters Saga (as our habit goes, the subtitle initials match with those of the console the game will be running on). You can download it here for free, and play it on your console using a flashcart/adapter such as the Master EverDrive, or on an emulator (MEKA and Emulicious are the ones I suggest).
Here are two screenshots for your viewing pleasure:

WaimanuSMS - title and menu screen

WaimanuSMS  - in game (area 1)


This is the first (and so far the only) game I've ever written completely in assembly... Zilog Z80 assembly specifically. I had fun doing it... well, sort of.

Following the release of WaimanuSMS, the well known British magazine Retro*GAMER featured an interview with yet another Homebrew Hero, as they dub it, and he was nobody else than... yours truly :-)
You can read my ramblings in the 151st issue, if you can still find it. And I have to admit I'd been waiting for this to happen for quite a long time... I had purposely taken the picture that appears in the article when I was in Portland, OR (known for its breweries too)... and that was in July 2013. Oh, well... I can't really complain.

All this apart, I also have spent much of my time during the last 13 months to enhance my SEGA Master System development kit and library, devkitSMS/SMSlib, which has recently reached what I would call a mature stage.
Speaking of this, another thing that made me very proud happened a while ago, at the end of October 2015: the homebrew rockstars known as The Mojon Twins released their first SEGA Master System game, and they made it using my devkit. The game is called Moggy Master and it's a simple 1-or-2-player game they did to test the kit and the library, according to their blog post. They hope to code and release more games for the SMS in the future, and I hope so too. Also, we worked together to create a library for the SEGA SG-1000, the Master System forerunner, and we called that SGlib. It's now a part of the devkit.

Finally, last March, during the SMSPower! 2016 Coding Competition, two more games based on my devkit and libraries were finally released along with two projects I've been working on myself. These games are haroldoop's DataStorm, a port of an Atari 2600 shoot 'em up called Turmoil, and Pedro76 and Nivarel's Master of the Labyrinth, a dungeon crawler. The first of my own projects is MARKanoIIId, an Arkanoid clone, which is still simply a hypnotic interactive demo and not yet a full game. It features two great tunes by Tomy, a Finnish musician and PSG essayer, and sleek graphics by Kagesan, a German homebrewer who also won this year's competition with his marvelous Bara Burū.

The other project is Disjointed Studio's new effort (and a very early beta back then), which goes under the working title of Weka Invaders. Waimanu is once again defending the Earth from the next wave of alien invasion, but this time he happens to be carrying a huge weapon on his shoulders. We're actively working on this project in these very days... unfortunately, I still can't reveal any planned release date.

Well, I think that's it. I should promise it won't take me another year for the next post but... well, you already know how lazy I am, right?

Wednesday, May 13, 2015

Putting some more fuel into SMS homebrew

Here I am again... well, almost another year has passed since my last words here. "Doesn't time fly when you're enjoying yourself?"[*]

I spent most of my time these last months writing code and building tools aimed to the homebrew on the SEGA Master System (SMS for short) and SEGA Game Gear.
Writing homebrew games/programs on SMS still means writing ASM code almost from scratch every time.
Yes, of course you can reuse some of the code you've already written, but still there isn't a big deal of shared ready-to-use code, snippets apart. Even if it features background music and sound effects support, the previously only existing audio library (the very good Mod2PSG2, which plays music written on the tracker with the same name) unfortunately never provided a way to export sound effects from its tracker, thus forcing developers to build their sound effects with hex editors.

So I wrote PSGlib, and the tools to convert VGM files into tunes and sound effects that the homebrewer wants to use in their program. VGM files can be produced by some well know trackers such as DefleMask and the very same Mod2PSG2 tracker too. After you convert and compress them into the PSG format, everything you have to do is just to start them (music and SFX) at the right time. Now the majority of SMS homebrew arising these days uses it, the complete list is here.

This happened mostly in 2014, still. And even if writing Z80 ASM code can be very entertaining (seriously!), I decided to try to build a development kit to write SMS homebrew in C.
Of course, first I needed a compiler. SDCC turned out to be the choice. It's a free open source optimizing C compiler that also targets the Zilog Z80 processor, among many others. So the core component I needed was already available.
Since the processor is only one of many components of the SMS, I needed to write code and tools to make it possible to use the SMS as the target, and to write a library on top of that development kit to enable programmers to use the underlying hardware straight from their C programs.

So last January devkitSMS (the kit) and SMSlib (the library) were born.
The library includes functions to handle the display hardware features, such as hardware scrolling for example, background and sprites, and supports software sprite clipping based on a user defined window. It has functions to handle colors and palettes, tiles and tilemaps, both normal keypad and Genesis/MegaDrive 3/6 buttons pad, the pause key and it also has ROM mappers support.
PSGlib then also incarnated as a additional C library, so that it also can be used with the devkit.

And that's pretty much it.