Shop OBEX P1 Docs P2 Docs Learn Events
PROJECT: Boulderdash — Parallax Forums

PROJECT: Boulderdash

Spork FrogSpork Frog Posts: 212
edited 2009-12-14 01:54 in Propeller 1
Well, with one project done it's time to start another.

This time I'm going to try and make a remake of the C64 Boulderdash. I figured it's time I made an arcade-style game for the forum users to enjoy.

Attatched is just a little tech demo of moving a character around with the gamepad. It uses the same graphic as the original C64 version.

For the video driver, I'm using a derivative of my own tile driver based on the ZX Spectrum driver once again. I'm using longs as the base tilemap, but I think I might change it back to words and double the VSCL ClocksPerPixel because it looks like everything is based on 2 pixel wide groups anyway.

Release history:
April 11 (0.01): Initial conception and base release
April 18 (0.02): Video driver complete

Post Edited (Spork Frog) : 4/19/2008 2:00:47 AM GMT
428 x 321 - 49K

Comments

  • BaggersBaggers Posts: 3,019
    edited 2008-04-12 10:00
    Spork, looks good so far [noparse]:)[/noparse]
    you picked a great classic game to port.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • Spork FrogSpork Frog Posts: 212
    edited 2008-04-14 02:03
    No real progress to show, but a lot of thinking about graphics stuff.

    I finally sat down and played the old C64 version of the game for a while, and I made some realizations about their graphics methods. Looks like it is truly all tile-based with the exception of the to stat bar, 16x16 pixel tiles (but with each pixel really being 2 pixels wide) and a common 4 color pallet for the whole screen playing field. Doesn't look like there are sprites directly, but the whole tile map moves around as a whole with smooth scrolling.

    SO.

    All I have to do is implement a 16x16 pix scrollable tile map with one pallet entry for the whole screen. Sounds simple enough to do, guess we'll find out.

    After that's done I can focus on the real challenge called the cell engine of the game.
  • AndreLAndreL Posts: 1,004
    edited 2008-04-17 07:53
    Spork,

    Post a couple screen shots, that's a good way to get people to download, also, helps get people excited!

    Andre'
  • Spork FrogSpork Frog Posts: 212
    edited 2008-04-19 01:59
    New release, v0.02

    I attatched a screenshot as well.

    The video driver is now finished- a 22x40 tile driver with smooth scrolling, still just in one cog. I'm really starting to enjoy video driver coding.

    Use the gamepad to scroll around.

    So much for the fun stuff, now to the real work -- the actual game engine.
  • Ym2413aYm2413a Posts: 630
    edited 2008-04-19 09:24
    Oh wow! This game looks awesome already. [noparse]:)[/noparse]

    Boulder Dash is an all time classic with many!!
    Good work Spork Frog. [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Share the knowledge: propeller.wikispaces.com
    Lets make some music: www.andrewarsenault.com/hss

  • HPGHPG Posts: 8
    edited 2009-11-29 15:48
    Here is a playable version. It runs on the demo board using the keyboard to control the movement, but it should run as well on the Hydra with the gamepad (the keyboard probably will not work on Hydra, but I can fix that later). I tried to use the same character codes and raw cave data format used in the C64 version, so you could import your favorite and/or custom caves.

    The video driver was modified to better match the 8x16 tiles used in the original Boulderdash I, and to display 20x12 tiles (20x14 in PAL mode) with a status line at the top. Oh, yes, it now supports PAL in addition to NTSC, check the main source file to see how to change TV modes (could someone check the NTSC mode?).

    The game right now executes a bit slower than the original, as the main game loop is a big case statement with many branches which leads to poor performance under interpreted spin. Splitting the case into sections helped noticeably, but not enough. I'll be concentrating in optimizing the code once the game fully engine is finished.

    Some things run in separate cogs, like the automatic scrolling and flashing character animations.

    No sound effects are implemented at this point. Is there a SID emulator (or any other good/simple synthesizer) somewhere for the propeller?

    Enjoy! smile.gif
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-11-29 17:06
    @Baggers

    It's legit.. Looks like he's posting a nearly finished Boulderdash in his first post..
    I've opened the .zip and found spin code as expected.. Nice work.

    Spork Frog is that you?

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-11-29 17:33
    Holy Blazes! This Boulderdash clone is SPOT-ON!

    Works perfectly in NTSC mode here. AWESOME WORK.

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • BaggersBaggers Posts: 3,019
    edited 2009-11-29 18:32
    HPG, I stand corrected, and offer, my depest appologies, with my work I have to be very cautious to what files I open etc. I'll remove my original comment.

    And have a looksy. Thanks OBC.

    As OBC says, it's SPOT-ON! well done HPG.

    btw, welcome to the forums! [noparse]:D[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • potatoheadpotatohead Posts: 10,261
    edited 2009-11-29 19:44
    This is excellent!!!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
  • Spork FrogSpork Frog Posts: 212
    edited 2009-11-29 21:30
    HPG,

    This is just downright awesome. I was having some troubles with the scrolling part of the code and never got around to writing the actual game logic out of frustration more than anything. I figured it would take a COG split.

    I did have to make a slight change, however. It seems like the NES pad does not like being read asynchronously; to make the code work on my Hydra I changed the gamepad driver so that it simply shifted in the data and returned the new data synchronously instead. If I didn't do this, the character moved randomly with no control. I'll try and post what I mean shortly, hopefully next weekend (I don't have my Hydra with me most of the time.)

    NTSC works fine for me as well.

    Thanks so much for posting this!
  • HPGHPG Posts: 8
    edited 2009-11-30 23:19
    Thanks 2 all, specially to Spork Frog for the base code and the video driver, which helped me understand how the video generation is done (better than the docs). I'm new to the Propeller (got my demo board about a month ago) and I'm very impressed with the capabilities of the chip.

    Here is a newer version of the game: this time the magic walls and amoebas work, so hopefully all the original BoulderDash-I caves can be played. Also, now difficulty level increases after finishing the last cave. Performance has been improved as well.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-12-01 01:16
    Nice!

    @Spork Frog:
    Could you detail the change you made to make the game controller work?

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • Spork FrogSpork Frog Posts: 212
    edited 2009-12-01 21:00
    @OBC:

    I attatched a very slightly modified gamepad driver; one should be able to replace the file included in the archives provided by HPG and it *should* just work. I also removed the keyboard driver completely first when I was trying to make it work on my Hydra, but I'm not sure if that's a necessary thing to do or not.

    EDIT: Just verified this. Drop in this version of the gamepad driver for Hydra support.

    Also, @HPG, real thanks goes to jlcebrian, whose ZX Spectrum video driver forms the skeleton of my own.

    Post Edited (Spork Frog) : 12/5/2009 5:11:30 PM GMT
  • HPGHPG Posts: 8
    edited 2009-12-06 09:49
    Here is an update: includes the gamepad fix, corrects a bug in amoeba handling that could crash cave M (sorry for that), adds intermission caves, title screen, etc.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-12-06 17:58
    How about adding Andy's midi driver (if you've got memory left!) and add some sound/music?

    Boulderdash midi
    www.bd-fans.com/Files/FanStuff/Music/BoulderDash_%28mid%29.zip

    Ariba's Midi Object
    http://forums.parallax.com/showthread.php?p=797590

    You'll need a shoehorn to get it in there, but would be very cool.

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-12-06 21:20
    If you are running this on a uController SpinStudio "Stacker" then adjust line 522 to read:

      if HWType == TYPE_HYDRA or HWType == TYPE_DEMO
    
    



    Hybrid users might find it handy as well. (After adjusting a few other things.)

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • potatoheadpotatohead Posts: 10,261
    edited 2009-12-07 21:39
    I thought this game effort warranted a good screen capture:

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
    720 x 540 - 495K
  • HPGHPG Posts: 8
    edited 2009-12-12 10:55
    I couldn't get the right sound effects from the Midi Object, and I couldn't wait for the SIDcog code to be released either, so... here is my attempt at a SID emulation. Don't expect HI-FI sound, and certainly don't connect the output to your mega-watt power amplifier yet lol.gif . Waveform generation was rather easy, but envelope generation was a nightmare (at least in a single-cog asm solution), since SID registers can be changed at any moment and the envelope has to track changes smoothly. It sounds a bit rough, but anyway here it is. Enjoy!

    @potatohead: is the image bending at the top in NTSC mode? I can't test NTSC here, so maybe I did something wrong with the timings. It looked right on the scope. Anybody else having a similar problem?
  • BaggersBaggers Posts: 3,019
    edited 2009-12-12 12:03
    HPG, works great, btw, when you get killed, what key do you press to start again? as the screen stays where you died, but the player doesn't come back, and the timer counts down to zero.

    Nice SID emu btw, they're getting like busses, none for ages, then 2 come along at once lol.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • HPGHPG Posts: 8
    edited 2009-12-12 17:17
    @Baggers: The Escape key should do the job (or the A button of the gamepad). Space (B button) pauses the game. There is also a "cheat" that allows you to jump to the next cave without finishing the current one: press LeftCtrl and LeftShift together (Start and Select in the gamepad).
  • BaggersBaggers Posts: 3,019
    edited 2009-12-12 21:27
    @HPG, Cool, thanks for the tip [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • potatoheadpotatohead Posts: 10,261
    edited 2009-12-12 21:59
    @HPG, yes it is, and I think there is a bit of a timing problem. I've got both NTSC and PAL capability for testing, if you want to make tweaks.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
  • HPGHPG Posts: 8
    edited 2009-12-13 15:53
    @potatohead: there was indeed a minor timing mismatch between visible and border lines. Here goes the fixed version. Thanks for posting the screenshot, I would have never noticed the problem otherwise!
  • potatoheadpotatohead Posts: 10,261
    edited 2009-12-13 20:59
    "looks right on the scope" Been there done that, LOL!!

    I'll update the screenie. I never clicked on the one you linked up. It's actually nice. Sorry to imply it wasn't based on the thumbnail.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
  • Ahle2Ahle2 Posts: 1,179
    edited 2009-12-14 01:54
    WOW.... this is amazing.. I used to LOOOVE this game on the C64.

    Keep up the good work.
Sign In or Register to comment.