Game release, Uwol - Quest For Money

Announce (tech) demos or games releases

Moderator: Mask of Destiny

Shiru
Very interested
Posts: 786
Joined: Sat Apr 07, 2007 3:11 am
Location: Russia, Moscow
Contact:

Game release, Uwol - Quest For Money

Post by Shiru » Thu Mar 04, 2010 12:18 pm

I'm glad to present to you new freeware homebrew game for Sega Genesis/Mega Drive.

Here is the game, and source code (in C).



Now the long making of story, if you care.

The original game was made for ZX Spectrum by Mojon Twins, homebrew game developers team from Spain, and released in 2009. It is a little nice old-style arcade game about jumping around and collecting coins, and I've liked it much. Unusual thing about all the Mojon Twins games is that they are made in C (for the platforms with Z80 @ ~3.5 MHz). After I've looked into sources, I've got idea to try to port the game to SMD using the original sources. I've asked Na_th_an from Mojon Twins for permission, he said they don't mind, as long as they are credited, and the game is open source.

I've wanted to make not just exact port of the game, which is makes not much sense, but to improve some details, as long as they will not take too much time.

The project has been started February 18, and pre-release version was finished March 3. This includes few days of fulltime (>8hrs) work on the project. Most part of the time took graphics works, then code, and least part of the time (about 3 days) took sound part.

Code. The original code was modified, both in porting process, and also in order to improve the playability. The most difficult parts were tweaking all the parameters to slowdown the movements (the original runs at ~35 frames per second, SMD version at 50 frames per second) without breaking the gameplay, reworking player-background collisions to make player bounding box smaller (very important to make jumps in tight places easier). Most boring thing was conversion of the levels data - in the original they are stored as assembly listing with lot of db's with binary numbers, arranged as C structure (so you can just set structure pointer to the address, and get all the data in comfortable way, as the structure fields). I've had to manually edit all >1500 lines of the data to convert it into BIN macro (making conversion script should've took about the same time), and load the data into RAM array of structures at start-up. All the levels were tested to be possible to beat, few changes were made to compensate changes in the gameplay.

Everything was done using emulators - mostly Gens32, also Gens KMod, Regen, Megasys, Kega Fusion. No tests on the real hardware were made until almost finished version. The only test on the hardware was done by HardWareMan March 3, it ran without any problems for first attempt.

Music. When I've started to think about the music, I've got problems with .NET on my PC, so WYZ Tracker (the tool where the original music was made) refused to work, though it worked before. All attempts to fix the problem wasn't successful, so I had to think up another solution, rather than recreating the music by hand. Possible solutions were to reverse-engineer the original sound format (using Z80 player source code), and make player or converter; or make AY registers dump of the original music, and then convert it into FM somehow. Accidentally I've figured out that the WYZ tracker stores it's data in GZip'ed XML files, so the solution was to make custom tool to convert the original data (notes only) into TFM Music Maker v1.4 format. Making of the tool took a single day, and manual editing of converted music took another day.

Sound. I've felt really lazy about recreating all the effects by hand, so I've decided to convert the original effects. I've also felt lazy about reverse-engineering the original effects data, so I've modified original driver to play all the effects one by one, ran it in Z80Stealth emulator, and dumped AY-3-8910 registers output into PSG file. Then I've made custom tool which converted the PSG file to VGM with SN76489 data. This file was slightly edited using Mod2PSG2 v2.04, and then used together with my old PSG effects system. I've also added few new effects, these were created manually in Mod2PSG2.

Graphics. I've choose 256x224 resolution, because the original game runs in 256x192 and has large black borders on the sides. For all the graphics works I've used Graphics Gale Free Edition and GIMP. I've made completely new sprites, new title and end screens (using cover art, with heavy manual edit after conversion), and recolored tiles from ZX Spectrum version. Probably the most difficult thing was to choose palettes configuration, to get colorful picture with single palette settings for all the levels. I've managed to fit all the sprites into single 16-color palette, this allowed to use three other 16-color palettes for the background tiles.

The original game stores all the screens, except for the piramide and levels itself, as packed fullscreen pictures. I've decided to do the same, with another packer however. After a few experiments I've choose Team Bomba's BitBuster, which gave best compress ratio (other options were Hrust and mic's Sixpack). Depacker is in pure C code, I've ported it to SMD using original source code few years ago. It depacks whole picture into 32K RAM buffer, and then the picture transferred to VRAM through DMA. It is not effective in speed and memory terms at all, but it is easy to do and works good enough. I've also packed sprites and tiles graphics, though it was not really necessary. Without it the game size was just above 64K, and I've thought it would be nice to fit into 64K.

How to compile the sources. You'll need Windows NT, 2K, XP or greater (9x has not support for some features for .bat), and installed Stef's Devkit. Set correct paths to the devkit components in genbuild.bat and makefile.gen (e:\gendev by default). Run makeres.bat to prepare all resources, then run genbuild.bat.


Update for v1.1. March 14 I've got report from Txai that level 9-9 is unbeatable. It was a major bug, because instead of the level there was indeed garbage in the game (my mistake, introduced in porting process). And because I've had to release fixed version, I've decided to make some other minor improvements as well. Here is list of the changes:

- Level 9-9 now works
- Level 8-6 now much easier
- Arrows above the exit blocks added
- Pause added
- Start button now works everywhere
- BitBuster replaced with aPLib (SyX version), because it is faster, smaller, and also compressed the graphics better
- One word corrected at the credits screen


Update for v1.2. In Semptemer 2011 I got a report that there are minor graphical artifacts in the game due to late CRAM writes. I also found a bug later, sprites weren't cleared at soft reset and remained above the title screen. This version fixes these two problems.
Last edited by Shiru on Tue Nov 22, 2011 9:05 pm, edited 2 times in total.

TmEE co.(TM)
Very interested
Posts: 2388
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) » Thu Mar 04, 2010 12:49 pm

I tried it briefly in emulator and I loved the music and GFX. I was not sure what did I have to do after collecting all the coins though, ghost started chasing me when time ran out and then I died.
I've not yet ran it on my MD2+32X+MCD2 setup.

Anyway, AWESOME work :D

I wish MD sees more games (I am in the middle of making some, but I feel unmotivated......), I hope this inspires other people to do some lovely things :)
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

Shiru
Very interested
Posts: 786
Joined: Sat Apr 07, 2007 3:11 am
Location: Russia, Moscow
Contact:

Post by Shiru » Thu Mar 04, 2010 3:06 pm

I think, I had to make some sort of manual, because this moment is not clear indeed. After collecting all the coins on the level, one or two arrows will appear on the ground. You should stand above one of the arrows and press down (not necessary to stay on the ground, though, you can do it in mid-air too). Doing this you choose your way through the piramide. The goal of the game is to collect 256 coins. You can't do it in one play (10 levels), so you should complete the game few times, choosing different routes through piramide (when you enter already visited level, it has no coins).

Yes, I really hope too that this project will inspire other people to do something, this is also particular reason why I've wrote down the making of game.

Shiru
Very interested
Posts: 786
Joined: Sat Apr 07, 2007 3:11 am
Location: Russia, Moscow
Contact:

Post by Shiru » Fri Mar 05, 2010 7:15 am

I have to ask for a favor from everyone who have accounts on retrogaming-related forums: please spread the word about the release. I've gave up on promotion, I wasn't able to register anywhere I've tried - 'your email is banned', completely unreadable captchas (tens of unsuccessful attemps!), 'wait for admin decision', etc. Thanks in advance.

Eke
Very interested
Posts: 859
Joined: Wed Feb 28, 2007 2:57 pm
Contact:

Post by Eke » Fri Mar 05, 2010 7:37 am

Very polished game, I like it :)

Also, the fact you needed less than 1 month to port it, considering the amount of work, is quite impressive...

SyX
Interested
Posts: 13
Joined: Fri Mar 05, 2010 1:14 pm

Post by SyX » Sat Mar 06, 2010 8:02 pm

I love the arcade feeling of this game!!! :D

And i can see perfectly all your dedication to improve and polish the graphics and the music of this port.

Great Work!!! :D

Christuserloeser
Very interested
Posts: 145
Joined: Sun Jan 28, 2007 2:01 am
Location: DCEvolution.net
Contact:

Post by Christuserloeser » Wed Mar 10, 2010 7:27 am

This game is awesome :!:
http://www.DCEvolution.net - Gigabytes of free Dreamcast software for you

Image

Stef
Very interested
Posts: 3003
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef » Thu Mar 11, 2010 12:21 pm

Dead link ?

Shiru
Very interested
Posts: 786
Joined: Sat Apr 07, 2007 3:11 am
Location: Russia, Moscow
Contact:

Post by Shiru » Thu Mar 11, 2010 12:44 pm

Links are working (just tested), maybe some problems on untergrund FTP.

sheath
Very interested
Posts: 141
Joined: Wed Aug 15, 2007 1:44 pm
Location: Texas
Contact:

Post by sheath » Thu Mar 11, 2010 7:16 pm

Very good! I'll spend some more time playing it today, but I love this style of game. Joust is one of my all time favorites.

Hosted here:
http://www.gamepilgrimage.com/sites/def ... _money.zip

Promoted here:
http://s4.zetaboards.com/Whip_Ass_Gamin ... ost8003197

I also thought http://www.emuasylum.com would probably host it too, so I emailed them about it.

Shiru
Very interested
Posts: 786
Joined: Sat Apr 07, 2007 3:11 am
Location: Russia, Moscow
Contact:

Post by Shiru » Fri Mar 12, 2010 3:54 pm

I've been asked for manual, so I've made one and added to the same zip. Currently it has English and Russian language translations, if you want other language to be added, please send me translation.

eteream
Very interested
Posts: 81
Joined: Tue Dec 22, 2009 2:13 pm

Post by eteream » Sat Mar 13, 2010 2:48 pm

That rocks! how to do a great game with near to nothing in-game graphics.

I feel a strange feeling when it says "press button" but start button don't work... for several games is only used is in title screen.

Stef
Very interested
Posts: 3003
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef » Sat Mar 13, 2010 5:20 pm

Very nice quality game :) Lovely gameplay, congrats !

Txai
Newbie
Posts: 2
Joined: Sun Mar 14, 2010 1:40 pm

Post by Txai » Sun Mar 14, 2010 2:25 pm

Can't beat Level 9-9. The character keeps falling to the pit as there is no platform to stand on. Here is a screenshot for reference.

Shiru
Very interested
Posts: 786
Joined: Sat Apr 07, 2007 3:11 am
Location: Russia, Moscow
Contact:

Post by Shiru » Sun Mar 14, 2010 2:44 pm

This is a bug, not actual level. I'll check this.

Post Reply