New game in progress: Q*Bert 2009

Discussion, Reviews & High-scores

Moderator: Moderators

User avatar
Mike
Herr VC
Posts: 4839
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

I've split the following discussion about Netbooks as cross-development Platform into an own thread in the Programming section.

Greetings,

Michael
User avatar
Ivanhoe76
Vic 20 Devotee
Posts: 200
Joined: Fri Sep 28, 2007 11:17 am
Location: Italy

Post by Ivanhoe76 »

Hey brighty, are we talking about this Atic Atac?Image... Don't tell it this way I could have an heart-attack!!! That was one of my favourite speccy game, even if i wasn't one who really loved that microcomp!!!
No one should tolerate death and violence because tolerance will generate habit.
brighty
Vic 20 Amateur
Posts: 45
Joined: Wed Jul 02, 2008 2:14 am

Post by brighty »

Progress update:

Slower than I'd have wished for, as work and home life have a habit of getting in the way of fun (i.e. this!) :)

However, some new stuff has been put in:
  • Several optimisation passes on sprite code. Can now display 6 sprites with acceptable speed. Need to get to 7 for this game though, so optimise again...
  • Joystick controls now wired in. You can move Q*Bert around.
  • Tile painting when Q*Bert lands on an unpainted tile.
  • Very preliminary scoring. There are bugs, but I wanted to make a start
  • Disks. Q*Bert can jump on a disk and float to the top tile. Disks will animate and follow later (when I get all the 7 sprites working)
  • Pyramid complete detection. Rudimentary, but working. (HINT: Press F7 to restart level)
  • Addition of PAUSE function (left shift or shift lock)
  • Changed cold start key to RUN/STOP
  • Reduced screen height to 27 lines from 28 to cater for NTSC displays
  • Sprite able to move behind playfield, this is a lot slower than moving above the playfield, but only Q*Bert needs to do this, and only when he falls off of the pyramid
  • Very buggy "fall off pyramid" routine (HINT: F7 resets level) ;)
I kept putting off posting up my progress, as there are always bits of code in progress that can (and will) crash the whole game, but I figured people may be interested to follow the development anyway, so here you go.

Oh some stuff that is not visible right now, but code is in the game:
  • Hi score table
  • Save hi score table to disk
  • Different colours for sprites, but the 8x8 cell induced bleed is currently *horrible* as I'm not double buffering the colour maps. I'll be playing with that in the near future.
On my priority list now:
  • Composite sprite (16w*32h sprite made of 2 sprites), need this for Coily
  • Optimise the sprite routines more
  • Sound effects. (Learn how to produce more than the simple stuff I have so far)
  • Try to transcribe the few jingles from the arcade Q*Bert to musical notes and then implement them on my sound player. (If anybody has a musical ear, I could sure use a hand with this! I have the WAV/MP3 samples from the original game).
  • Draw some more of the characters
  • Implement table based configurations for each level, controlling enemies, probabilities, bonuses, disk numbers etc.
So a bit to do then.... However, it all remains fantastic fun, so onwards....

I promise more frequent updates, if you can take the buggy beta code ;)

An updated binary PRG is available here
User avatar
Mike
Herr VC
Posts: 4839
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

brighty wrote:[*]Try to transcribe the few jingles from the arcade Q*Bert to musical notes and then implement them on my sound player. (If anybody has a musical ear, I could sure use a hand with this! I have the WAV/MP3 samples from the original game).
I'd surely like to take a shot at it. Would you care to provide a download link?

Greetings,

Michael
brighty
Vic 20 Amateur
Posts: 45
Joined: Wed Jul 02, 2008 2:14 am

Post by brighty »

brighty wrote:Joystick controls now wired in. You can move Q*Bert around.
Just a note, to move correctly, rotate your joystick 45degrees clockwise. I found this was WAY more responsive than using the diagonals....
brighty
Vic 20 Amateur
Posts: 45
Joined: Wed Jul 02, 2008 2:14 am

Post by brighty »

Mike wrote:I'd surely like to take a shot at it. Would you care to provide a download link?
Thanks Mike. Here are two to get started:

FX_34.WAV
FX_40.WAV

I need to convert the rest from MAME SAM format to WAV or MP3, I have the software, just got to sit down and do it :) I'll try to zip them up tomorrow and upload the rest.
User avatar
Mike
Herr VC
Posts: 4839
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

This is a first approximation to FX_40 ...:

Code: Select all

10 DIMA(5),B(5):FORT=0TO5:READA(T),B(T):NEXT
11 V=36864:POKEV+14,8
12 FORS=1TO41:READT:POKEV+10,A(T):POKEV+12,B(T):FORT=1TO50:NEXT:NEXT
20 DATA 0,0,164,210,174,215,183,219,195,225,210,232
30 DATA 1,0,4,0,2,0,3,0
31 DATA 1,0,4,0,2,0,3,0
32 DATA 1,1,0,0,0,0,0,0
33 DATA 5,5,0,0,0,0,1,0
34 DATA 1,1,1,1,1,1,1,1
35 DATA 0
... and here's my attempt at FX_34 (sans modulation):

Code: Select all

1 DIMA(6):FORT=0TO6:READA(T):NEXT
2 V=36864:POKEV+14,5
3 FORS=1TO25:READT:POKEV+12,A(T):FORT=1TO100:NEXT:NEXT
4 FORT=217TO187STEP-.5:POKEV+12,T:NEXT
5 FORT=187TO217STEP+.5:POKEV+12,T:NEXT
6 POKEV+12,0:END
10 DATA 0,187,191,198,204,207,217
20 DATA 3,2,3,2,0,2,1,2
21 DATA 4,3,4,3,3,3,3,3
22 DATA 2,3,5,3,5,6,0,6
23 DATA 0
brighty
Vic 20 Amateur
Posts: 45
Joined: Wed Jul 02, 2008 2:14 am

Post by brighty »

Mike, thanks for putting the time and effort into this, I've tried out your code and the resulting tunes are great!
Mike wrote:This is a first approximation to FX_40 ...:
So, from analysing your code, you have 5 "notes" for the Soprana and Bass voices, which are then referenced via the later data statements and played simultaneously via the two voices. Very neat and sounds great. I'll work on adding this data into my IRQ player tonight.
Mike wrote:... and here's my attempt at FX_34 (sans modulation):
If I've interpreted this one correctly, a single voice this time (Soprano), with notes referenced by the later data statements, finally ending with two loops calculating a rapidly decreasing and then increasing frequency to play throught the voice for the ending sound effect. Also, sounding amazingly close to the original.

Thanks again Mike. I'll see if I can post up a fresh download tonight with the sounds integrated. I'll also get the other tunes zipped up and uploaded, if there are any more. I have to check as there are over 40 sound effects, but few tunes.

What name would you like added to the in-game credits? :)
brighty
Vic 20 Amateur
Posts: 45
Joined: Wed Jul 02, 2008 2:14 am

Post by brighty »

I managed to convert the rest of the Q*Bert 'tunes' to WAV format and upload them.

For a zipped file, there are four WAVs in here

For the individual files:
FX_26.WAV
FX_27.WAV
FX_38.WAV
FX_39.WAV

Thanks again!
brighty
Vic 20 Amateur
Posts: 45
Joined: Wed Jul 02, 2008 2:14 am

Post by brighty »

Progress update:

I've spent a lot of time today shuffling memory layout around to expand from 128 user defined chars to 256. I was using 128 userdefs + 128 ROM, but I need more userdefs for the extra sprites. Got that working (well, you'll notice that the score isn't displaying at the moment, but I'll fix that tomorrow).

I now have 7 sprites on-screen at once. Speed is ok, but I'd like it to be a bit snappier, so I'm going to spend some more time optimising. The code will actually run 8 sprites simultaneously, which I've tested and it works, but too slow and I don't need that many for this game.

I've also added one of Mike's tunes to the startup sequence. It doesn't belong there in the original gameplay, but I wanted to hear how it sounded.

Revised PRG for messing about with is here

As before, there are lots of holes in the code currently, so don't be surprised if it crashes on occasion. It'll get better over time, I promise :)

Once again, a big thanks to Mike for encoding the music so far.

Update: Fixed the score display
User avatar
Mike
Herr VC
Posts: 4839
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

Hi,

here are the four other effects/tunes:

Code: Select all

FX_26:
10 V=36864:POKEV+14,8
11 FORU=100TO16STEP-4:RESTORE:FORS=1TO8:READA:POKEV+12,A:FORT=1TOU:NEXT:NEXT:NEXT
12 POKEV+12,0
13 DATA 210,198,217,204,221,212,234,191

FX_27:
10 V=36864:POKEV+14,8
11 A=234:POKEV+11,A:GOTO14
12 READA:POKEV+11,A:POKEV+10,A:FORT=1TO75:NEXT:POKEV+10,0
13 IFA=170THENPOKEV+11,0:END
14 POKEV+12,A:FORT=1TO75:NEXT:POKEV+12,0:GOTO12
15 DATA 231,228,225,221,217,212,207,201,195,187,179,170

FX_38:
10 V=36864:POKEV+14,8
11 FORS=1TO19:READA,B
12 POKEV+10,A:POKEV+12,A
13 FORT=1TOB*20:NEXT
14 POKEV+10,0:POKEV+12,0
15 FORT=1TOB*10:NEXT
16 NEXT
17 DATA 183,3,164,3,183,3,195,3
18 DATA 210,3,164,3,183,3,195,3
19 DATA 215,3,215,3,201,3,215,3
20 DATA 183,2,210,2,219,2,225,2
21 DATA 219,2,225,2,232,3

FX_39:
10 V=36864:POKEV+14,8
11 FORS=1TO30:READA:POKEV+10,A:POKEV+12,A:FORT=1TO100:NEXT:NEXT
12 DATA 201,0,201,210,207,0,207,215,210,0,219,0,183,0,219,0
13 DATA 201,0,201,210,207,0,207,215,210,0,201,0,228,0
The first two sound more like effects. With the other two jingles I concentrated on their melodic components; their modulation, and perhaps second voice are nearly impossible to extract.
brighty wrote:What name would you like added to the in-game credits? :)
If you're so kind, credit me as Mike.

Greetings,

Michael
User avatar
Mike
Herr VC
Posts: 4839
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

I've split the following discussion about the copy&paste feature of VICE into an own thread in the General Topics section.

Greetings,

Michael
brighty
Vic 20 Amateur
Posts: 45
Joined: Wed Jul 02, 2008 2:14 am

Post by brighty »

Update:

Making progress, slowly, but progress nonetheless

. Added title screen using arcade game screen as basis
. Added hiscore screen display
. Added attract mode, but very basic at the moment
. Added level intro, but very basic at the moment
. Q*Bert dies if in same cell as enemy. Not happy with this yet.
. Q*Bert dies if he falls of pyramid. Still basic.
. Game over if all lives lost.
. Detects completed pyramid, but just goes back to title screen at present
. Added excellent graphics from Seahn/STYLE
. WIP: disks follow Q*Bert to top of pyramid. Buggy right now.

There are bugs, some known, some unknown right now.

The updated binary is
here. It requires a 16K expansion at this time.

A screenshot of Seahn's great artwork:

Image
fgasking
Vic 20 Devotee
Posts: 227
Joined: Sun Feb 06, 2005 7:53 am

Post by fgasking »

Looking really fantastic, the titles and feel of the game is coming on really well :)
User avatar
nbla000
Salmon Run
Posts: 2582
Joined: Thu Oct 13, 2005 8:58 am
Location: Italy

Post by nbla000 »

Great job, very nice version, much more better then the original conversion !!!
Mega-Cart: the cartridge you plug in once and for all.
Post Reply