Jump to content
IGNORED

Hunchy II


cd-w

Recommended Posts

A couple of possibilities:

-1- Allow the player to practice any level EXCEPT for some bonus reward levels.  Clearing a practice level returns to the main title screen.

-2- Allow the player to practice a level after losing all lives, with the proviso that clearing the level will not advance the player.

888934[/snapback]

 

I like the idea of a practice mode - it should be very easy to implement. I will try to put something like this in the next release.

 

You haven't seen my 1K Supercharger minigame (currently about about 1048 bytes including the 16 bytes of Supercharger headers, but I think I can save a few bytes).  The sound effects are really lame (well, what do you expect in about 16 bytes?) and the scoring consists entirely of changing colors (adding a numerical score readout would have been about 70 bytes I didn't have).  Play mechanic is functional, though, with many more on-screen objects than the 1980's cartridge version by Rob Fullup.  Wonder if I should bring it to the VGS next weekend?

888965[/snapback]

 

Post it in the Homebrew forum here - I'm sure we would all like to see it! After your nifty scrolling text demo, I am expecting something special :cool:

 

Chris

Link to comment
Share on other sites

Yay - Finished it!

 

Fun! The penultimate level was the hardest for me but, I finally figured out how to get that last bell. It was a lot more fun playing on an actual 2600, and I have to admit that I was using a 2nd gen SEGA Genesis controller.

 

20 some odd years earlier and you'd have a decent payday. :D

 

thanks,

 

- David

Link to comment
Share on other sites

Hi there!

 

Didn't someone predict that 2005 would be THE year for homebrews?

 

Well, at least I think it'll get better than 2003 (2 new games) and 2004 (3 new games). With "Go Fish!" and "Fall Down" already out of the door, we only need 2 more new releases within the second half of the year to top that ;)

 

Greetings,

Manuel

888944[/snapback]

 

There should be a minigame multicart coming out later this year, and your own "Crazy Balloon" game is just about finished. I don't have any plans for Hunchy II yet, but we will see how it works out.

 

Chris

Link to comment
Share on other sites

Yay - Finished it!

Fun! The penultimate level was the hardest for me but, I finally figured out how to get that last bell. It was a lot more fun playing on an actual 2600, and I have to admit that I was using a 2nd gen SEGA Genesis controller.

20 some odd years earlier and you'd have a decent payday.  :D

thanks,

- David

889309[/snapback]

 

Great - I'm glad you enjoyed it, and that it works on real hardware! There should be some more levels coming soon, though most will be easy levels at the beginning to allow less experienced players (i.e. my girlfriend) to make progress!

 

I always wanted to be a games programmer back in the day, but I never could get my head around assembly language then :(

 

Chris

Link to comment
Share on other sites

Yeah 2600 game programming was a goal of mine back then. Here's hoping I can get out a few of my own in the futre. :)

 

I'm glad you are adding in some easier levels, I adapted to the controls quickly, but I think my 9 year old daughter was a little frustrated on not being able to get through the first level even.

 

BTW on real hardware, the screen jumps when you die but seems quite stable during gameplay. I think I noticed a slowdown once, where all the screen objects went half speed for a short bit...

Link to comment
Share on other sites

Yeah 2600 game programming was a goal of mine back then.  Here's hoping I can get out a few of my own in the futre.  :)

 

I'm glad you are adding in some easier levels, I adapted to the controls quickly, but I think my 9 year old daughter was a little frustrated on not being able to get through the first level even.

 

BTW on real hardware, the screen jumps when you die but seems quite stable during gameplay. I think I noticed a slowdown once, where all the screen objects went half speed for a short bit...

889325[/snapback]

 

You should definitely have a shot at writing your own game - I get more fun out of it than actually playing the games - it is a lot like doing a very difficult crossword puzzle :twisted: Now that Batari Basic is available, the learning curve should be less steep.

 

Thanks for the bug report - the game is running very close to the limits, so I need to spend some more time optimising the code.

 

Chris

Link to comment
Share on other sites

  • 2 weeks later...

post-6563-1122220367_thumb.jpg

 

The latest version of Hunchy II should be attached to this post. The main changes this time are:

  • 16 levels (14 excluding title screen and final screen).
  • Fantastic sprite graphics by jussts.

I think this is basically it for the 4K version, apart from a scoring system which will be based on the time remaining upon completion of each level. For now you can still use SELECT (F1/F2) to move between levels, but I am planning to remove this in the final version. Please let me know if you find any bugs in this version. Also, let me know what you think of the difficulty curve and order of the levels in this version.

 

Thanks,

Chris

h2v04.zip

Edited by cd-w
Link to comment
Share on other sites

The latest version of Hunchy II should be attached to this post.

897518[/snapback]

 

Nice game, but the intonation on "The Teddybear Picnic" really bothers me.

 

Here are three better-in-tune versions. My music player uses the MSB of a byte to indicate whether to use AUDCx of 12 or 4.

 

First version (E major)

 byte $8C,$00,$1B,$00,$00,$00,$17,$00,$18,$00,$17,$00,$18,$00,$1B,$00,$00,$00,$17,$00,$18,$00,$00,$00,$17,$00,$1B,$00,$18,$00,$17,$00
 byte $18,$00,$00,$00,$17,$00,$1B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$00,$17,$00,$00,$00,$12,$00,$14,$00,$12,$00,$14,$00,$17,$00
 byte $00,$00,$12,$00,$14,$00,$00,$00,$12,$00,$17,$00,$14,$00,$12,$00,$14,$00,$00,$00,$12,$00,$17,$00,$00,$00,$00,$00,$00,$00,$00,$00
 byte $0F,$00,$0D,$00,$00,$00,$0F,$00,$0D,$00,$00,$00,$0F,$00,$12,$00,$11,$00,$0F,$00,$12,$00,$00,$00,$17,$00,$14,$00,$00,$00,$17,$00
 byte $14,$00,$00,$00,$17,$00,$1F,$00,$1B,$00,$17,$00,$1B,$00,$00,$00,$1F,$00,$1B,$00,$00,$00,$17,$00,$1F,$00,$00,$00,$17,$00,$8B,$00
 byte $1F,$00,$1B,$00,$1F,$00,$00,$00,$12,$00,$14,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$17,$00,$00,$00,$00,$00,$00,$00,$00,$00
 byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

 

If you want something lower pitched, you could try this one (D major an octave down)

 byte $9B,$00,$94,$00,$00,$00,$91,$00,$92,$00,$91,$00,$92,$00,$94,$00,$00,$00,$91,$00,$92,$00,$00,$00,$91,$00,$94,$00,$92,$00,$91,$00
 byte $92,$00,$00,$00,$91,$00,$94,$00,$00,$00,$00,$00,$00,$00,$00,$00,$97,$00,$91,$00,$00,$00,$8D,$00,$8F,$00,$8D,$00,$8F,$00,$91,$00
 byte $00,$00,$8D,$00,$8F,$00,$00,$00,$8D,$00,$91,$00,$8F,$00,$8D,$00,$8F,$00,$00,$00,$8D,$00,$91,$00,$00,$00,$00,$00,$00,$00,$00,$00
 byte $8B,$00,$1F,$00,$00,$00,$8B,$00,$1F,$00,$00,$00,$8B,$00,$8D,$00,$8C,$00,$8B,$00,$8D,$00,$00,$00,$91,$00,$8F,$00,$00,$00,$91,$00
 byte $8F,$00,$00,$00,$91,$00,$97,$00,$94,$00,$91,$00,$94,$00,$00,$00,$97,$00,$94,$00,$00,$00,$91,$00,$97,$00,$00,$00,$91,$00,$9A,$00
 byte $97,$00,$94,$00,$97,$00,$00,$00,$8D,$00,$8F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$91,$00,$00,$00,$00,$00,$00,$00,$00,$00
 byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

 

If you can't handle using two AUDCx values, this version has a couple of notes adjusted (E major, or A major, or whatever, depending upon AUDCx)

 byte $18,$00,$1B,$00,$00,$00,$17,$00,$18,$00,$17,$00,$18,$00,$1B,$00,$00,$00,$17,$00,$18,$00,$00,$00,$17,$00,$1B,$00,$18,$00,$17,$00
 byte $18,$00,$00,$00,$17,$00,$1B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$00,$17,$00,$00,$00,$12,$00,$14,$00,$12,$00,$14,$00,$17,$00
 byte $00,$00,$12,$00,$14,$00,$00,$00,$12,$00,$17,$00,$14,$00,$12,$00,$14,$00,$00,$00,$12,$00,$17,$00,$00,$00,$00,$00,$00,$00,$00,$00
 byte $0F,$00,$0D,$00,$00,$00,$0F,$00,$0D,$00,$00,$00,$0F,$00,$12,$00,$11,$00,$0F,$00,$12,$00,$00,$00,$17,$00,$14,$00,$00,$00,$17,$00
 byte $14,$00,$00,$00,$17,$00,$1F,$00,$1B,$00,$17,$00,$1B,$00,$00,$00,$1F,$00,$1B,$00,$00,$00,$17,$00,$1F,$00,$00,$00,$17,$00,$1B,$00
 byte $1F,$00,$1B,$00,$1F,$00,$00,$00,$12,$00,$14,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$17,$00,$00,$00,$00,$00,$00,$00,$00,$00
 byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

Link to comment
Share on other sites

Nice game, but the intonation on "The Teddybear Picnic" really bothers me.

 

Here are three better-in-tune versions.  My music player uses the MSB of a byte to indicate whether to use AUDCx of 12 or 4 ...

897955[/snapback]

 

Thanks - I am totally clueless when it comes to music :) I am using the following code to play the tunes which I assume is approximately what you had in mind:

 

     dec TIMER
     bpl EndMusic
     lda #4                  ; Delay Value
     sta TIMER      
     ldy #12                 ; AUDCx Value
     ldx POINTER            
     lda Music,X
     beq EndTune             ; Skip 0 Values
     bmi AltControl
     ldy #4                  ; Alternative AUDCx Value
AltControl
     sty AUDC0
     sta AUDF0
     lda #8                  ; Volume
     sta AUDV0      
EndTune
     inc POINTER
EndMusic

 

I think I like the lower pitched one best, but to be honest I am going off the tune itself rather quickly after listening to it for extended periods of time! I was using this tune as I think is from the original HunchBack game, but if anyone can come up with something better I would be very grateful! Unfortunately space is very limited in the code, and the limit is around 150 bytes for the music data.

 

Thanks,

Chris

Link to comment
Share on other sites

Thanks - I am totally clueless when it comes to music  :)  I am using the following code to play the tunes which I assume is approximately what you had in mind:

 

It does, though I forgot to mention you should skip every other byte. My music player is designed for two voices interleaved, so half the bytes are useless zeroes. I do think the lower-pitched one is best, but I wanted to give you choices since the higher-pitched one is closer to the tune you started with and I didn't know if you could handle using two different AUDCx values (which seems to have been no problem).

 

The one advantage I can see to using only one AUDCx value [as in the third tune I posted] is that you can use different AUDCx values to pitch the tune differently. For example, you could use a lower-pitched AUDCx to play the tune on level 0, and a higher-pitched one to play it on level 15 while also increasing the tempo. It might be nice also to have level 15 run a 'script' where Hunchy does something to free Esmerelda and then wanders off screen with her, timed to end when the music does. This wouldn't have to take much code if you (1) reuse the music, and (2) use a simple symmetric playfield kernel for the top of the screen (cutting the storage required for the screen itself). Hunchy wouldn't have to do much to free Esmerelda, but he could perhaps grab a bell which triggers an extensible bridge or something.

 

Also, btw, one thing I didn't do in the music I posted (so as to keep it simple) was code a duration in bits 5-6 of each note value. If you did that, you could eliminate a lot of the 'zero' bytes, thus saving code space.

 

BTW, for some reason the first level has 'screechy' sound effects on the emulator (haven't tried it on my real 7800) and all the other levels have really quiet sound effects except for the beep when grabbing a bell. Is that normal?

Link to comment
Share on other sites

post-6563-1122645071_thumb.jpg

 

OK, I have attached a new version of Hunchy 2 (ROM & Source Code) to this message. I think this is basically it for the 4K version, so I will be very grateful for any bug reports. The main changes this time are:

  • Scoring mechanism
  • Improved tune by supercat
  • Lots of bugfixes and tweaks

There are still a lot of features that haven't made it into the game, so I am planning an extended 8K version in the near future. The extended version will have a lot more levels and block types, and I will try to put in some more realistic physics. However, this version is fully playable, and I think it is my best 2600 effort yet.

 

Thanks,

Chris

h2v05.zip

Edited by cd-w
Link to comment
Share on other sites

Some of those levels get pretty fiendish... Claude Frollo himself wasn't this cruel! Hunchy 2 is definitely in the same vein as other British platformers like Jet Set Willy and Manic Miner, although this at least lets you advance a few levels before it puts you through the ringer.

 

Good game. The graphics aren't quite up to par with Miner 2049'er on the 2600, but the gameplay is a whole lot smoother, ultimately making it the better game. How many levels is this going to have? Also, how'd you add the ringing bells? The 2600 is only supposed to have two players, two missiles and a ball, yet so many games like this one seem to transcend those limitations.

 

JR

Link to comment
Share on other sites

Good game.  The graphics aren't quite up to par with Miner 2049'er on the 2600, but the gameplay is a whole lot smoother, ultimately making it the better game.  How many levels is this going to have?  Also, how'd you add the ringing bells?  The 2600 is only supposed to have two players, two missiles and a ball, yet so many games like this one seem to transcend those limitations.

901431[/snapback]

 

Examine the bells closely, and you'll notice that each scan line is either a 1-pixel blob, a 2-pixel blob, a 4-pixel blob, or an 8-pixel blob. And they all seem to be the same color as Hunchy. Hmm, I wonder why that might be?

Link to comment
Share on other sites

I can only assume that the player's missile is being used to draw all the bells. Funny that this can be done without flicker, although I assume this is because the system is being programmed in the traditional manner, scanline by scanline. Would that assumption be correct?

 

JR

Link to comment
Share on other sites

I can only assume that the player's missile is being used to draw all the bells.  Funny that this can be done without flicker, although I assume this is because the system is being programmed in the traditional manner, scanline by scanline.  Would that assumption be correct?

901443[/snapback]

 

The Atari 2600 has a playfield which repeats every half-scan-line and five sprites which repeat every scan line. There is not enough time to fully manipulate all of the objects on each and every scan line, but the key to making a good 2600 game is to figure out which objects need to be manipulated, and how, for the task at hand.

 

On the 2600, if a the right half of the playfield doesn't match the left half, in either repeated or reflected form, the processor has to update both halves of the playfield every scan line. If you look closely at the Hunchy screen, you'll notice that in each group of 16 scan lines, the playfield is blank in six. You'll further notice that not only do the missiles never appear on these scan lines, but their position within each group of 16 scan lines is fixed. Imposing these restrictions limits the amount of conditional logic the code has to perform.

Link to comment
Share on other sites

Damn... you really have to be resourceful to squeeze the most power out of the 2600, don't you? After using Batari BASIC, I was amazed at what the 2600 can do, but it seems that it takes real skill to make the most of the hardware if you're programming it in assembly language.

 

JR

Link to comment
Share on other sites

You really have to be resourceful to squeeze the most power out of the 2600, don't you?

901904[/snapback]

 

Indeed so. The 6507 on the 2600 has enough time to do quite a lot during a display kernel, but it can't do everything you might want. A big part of designing a good game is to figure out what limitations will be acceptable for a particular program, and what features one can gain in exchange for being willing to accept those limitations. Although it's neat to see what sort of playable game can be created within the basic object limitations embodied within bB, success on the 2600 generally requires trickery far beyond those.

Link to comment
Share on other sites

Hi there!

 

One question I'd like to ask, is wether "Hunchy II" also marks the end of the original "Hunchy" project?

 

Because, what I'd really love to see would be a full blown Hunchback port. Hunchy was a very promising start and I think it showed that in 4K one could do a marvellously faithful "Huchback 2600", very, very close to the original. (Dunno, I generally prefer seeing the "real thing" over getting just a "clone" ;) - wrong thread, but I feel the same about Arkanoid BTW :twisted: )

 

Greetings,

Manuel

Link to comment
Share on other sites

Some of those levels get pretty fiendish... Claude Frollo himself wasn't this cruel!  Hunchy 2 is definitely in the same vein as other British platformers like Jet Set Willy and Manic Miner, although this at least lets you advance a few levels before it puts you through the ringer.

 

Good game.  The graphics aren't quite up to par with Miner 2049'er on the 2600, but the gameplay is a whole lot smoother, ultimately making it the better game.  How many levels is this going to have?  Also, how'd you add the ringing bells?  The 2600 is only supposed to have two players, two missiles and a ball, yet so many games like this one seem to transcend those limitations.

901431[/snapback]

 

Thanks - I'm glad you like it! The inspiration for the game came primarily from Chucky Egg and Manic Miner. The game currently has 16 levels, but I am planning to move to 8K and add a whole lot more soon (perhaps as many as 64). The game screens are deliberately stored in memory, so this should allow a lot more flexibility than in the current release, such as moving blocks, disappearing blocks, different tile styles, and so on. As previously stated, the Bells are displayed using the M0 missile sprite.

 

Damn... you really have to be resourceful to squeeze the most power out of the 2600, don't you?  After using Batari BASIC, I was amazed at what the 2600 can do, but it seems that it takes real skill to make the most of the hardware if you're programming it in assembly language.

JR

901904[/snapback]

 

One of the most challenging (and interesting) aspects of 2600 programming is figuring out the best way to use the very limited resources available. This is true in both batari BASIC and assembly language - it is just that assembly gives you more flexibility in how you use the resources. That said, the missile trick in Hunchy 2 is not particularly complex. The technique has been used in many 2600 games, and I previously posted an example here. I think it is great that batari BASIC is introducing a lot of new people to 2600 programming, and I personally hope that it will be used as a stepping stone into full assembly programming for some.

 

Chris

Edited by cd-w
Link to comment
Share on other sites

Hi there!

One question I'd like to ask, is wether "Hunchy II" also marks the end of the original "Hunchy" project?

Because, what I'd really love to see would be a full blown Hunchback port. Hunchy was a very promising start and I think it showed that in 4K one could do a marvellously faithful "Huchback 2600", very, very close to the original. (Dunno, I generally prefer seeing the "real thing" over getting just a "clone" ;) - wrong thread, but I feel the same about Arkanoid BTW :twisted: )

Greetings,

Manuel

901965[/snapback]

 

Hi Manuel,

 

The original Hunchy that I wrote was my first real 2600 project and the code is a bit of a mess. To turn this into a real Hunchyback port will probably require a complete rewrite. I would like to go back and make a more faithful port, but I have got sidetracked with the platform-game idea for now. So the answer to your question is "maybe", but not right now :)

 

Thanks,

Chris

Link to comment
Share on other sites

Darn - I just noticed that the score between levels does not work on my Supercharger (the text is garbled) even though it works fine with the emulators. It could be that my hardware is broken (I recently plugged it into a 7800 by mistake), but I suspect that the timings are slightly out. Can anyone confirm that this happens for them also? Also, any suggestions for fixing this would be greatly appreciated. The source is included in the archive file. I was hoping that the 4K version was completed now :(

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...