Jump to content
IGNORED

"Harpy's Curse" - A MetroidVania for the 7800 (Beta version now available!)


Revontuli

Recommended Posts

I'll see about posting a ROM (or at least have a semi-open beta testing phase) after the Portland Expo next weekend, where it's making it's public debut. 

 

There will undoubtedly be some things I want to fix after PRGE, and the game is complicated enough I want to make sure a lot of the big things (like password system and saving) are solid.  

 

I'm trying to be a little more mindful of what builds are actually downloadable.  If one is not careful, you'll find that that streamers invariably pick the *one* version where the game has an embarassing bug, and that build is in the wild and immortalized on youtube now! 😝  The first build I've upload of a game is usually the one that's downloaded the most (or very high in the running) so I want to make it as polished as I can, with the knowledge and expectation that folks will find bugs and glitches.  Hopefully enough of them that I can fix before making a physical cartridge!

 

Link to comment
Share on other sites

On 10/5/2022 at 4:40 AM, Revontuli said:

Maybe something with the driving controller, or at least the paddles.

If you are looking to experiment with controllers, we can support direct input games (ie, light gun, mouse, analog joytick) in Argon. We did that for planetary defense (Atari 800) where we map touch or smart pen input on the mobile device to a virtual koala pad for the game (video of that on our social media). If you don't want to implement light gun support, we can simply give you the events as an X/Y coordinate and trigger 0/1 values in an agreed upon memory location.

 

  • Thanks 1
Link to comment
Share on other sites

14 hours ago, Revontuli said:

I'll see about posting a ROM (or at least have a semi-open beta testing phase) after the Portland Expo next weekend, where it's making it's public debut. 

 

There will undoubtedly be some things I want to fix after PRGE, and the game is complicated enough I want to make sure a lot of the big things (like password system and saving) are solid.  

 

I'm trying to be a little more mindful of what builds are actually downloadable.  If one is not careful, you'll find that that streamers invariably pick the *one* version where the game has an embarassing bug, and that build is in the wild and immortalized on youtube now! 😝  The first build I've upload of a game is usually the one that's downloaded the most (or very high in the running) so I want to make it as polished as I can, with the knowledge and expectation that folks will find bugs and glitches.  Hopefully enough of them that I can fix before making a physical cartridge!

 

YEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS!!!!!!!!!!!!!!!!!!!!!!!

(Sorry, My 14 year old mind is about to explode)

Link to comment
Share on other sites

23 hours ago, Revontuli said:

I've also been experimenting/learning POKEY audio within 7800Basic.  I did a quick little conversion of my arrangement of Tamlin for the TIA into a straight square-wave rendition in POKEY:

 

Tamlin with the TIA:

 

 

Tamlin with the POKEY:

 

 

I'll assert the TIA rendition still has a bit more character, but that's till not totally fair to the Pokey chip - I'm still messing with the timing and not really using new any frills or features beyond increased resolution/better tuning.


I'm treating channels more as spaces where I'd stick any treble notes that I can, instead of as "tracks" per se, similar to how the 7800Basic TIA Tracker works.  That approach made the TIA music somewhat tolerable to listen to, as while I usually had one channel for sfx and another for music, the priority system effectively gave me an extra channel.  The music is almost always playing, while sfx only happen in individual events, and can "drown out" or cut off a wayward note without too much issue.

 

I will admit I might need help - I'm about as good a musician as the TIA is an audio chip :)  I'm having fun seeing how far I can get arranging various works of music for the POKEY, but I also know there are folks here who are far, far better acquainted with the chip.

 

The samples above I made using the built in psound function and my own cobbled together system - I used an echo (or "shower quality") type effect when making notes with the TIA, and wanted to see how it carried over to the POKEY.  For the record, though, I also got the 7800 POKEY engine properly intergrated into my 7800Basic build of Harpy's Curse, which would probably be the route to go if I get a composer to help: 

 

 

I also have an entire 16K of RAM (and 16K bank of ROM) that I've kept ununsed with the anticipation of storing/managing music, so we'll see how this develops.  Any advice would be welcome for a poor scrub like me who's still pretty new at chiptunes :)

 

 

 

This reminds me of an item on my to do list:  Write a beginners tutorial on POKEY music using the 7800 POKEY engine.  For now, I will only cover the basics (like frequency, distortion, and a brief overview of the AUDCTL register).

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

20 hours ago, Synthpopalooza said:

This reminds me of an item on my to do list:  Write a beginners tutorial on POKEY music using the 7800 POKEY engine.  For now, I will only cover the basics (like frequency, distortion, and a brief overview of the AUDCTL register).

I got relatively far with the documentation and looking at the demo music files (I got the Popeye arcade theme handily playing along for a while :) ) - I was coming into the system thinking like a TIA coder, so I wanted to try things like echo and decay (which has been the only way I've been able to make the TIA sound halfway decent).  I also found your note table which has been a huge help. 

 

A lot of my trouble has risen out of transitioning from a simple system I had near-complete control over (TIA/7800Basic) to a more sophisticated one that has a nice interface but hides/takes care of a lot of stuff for me (POKEY/Music Engine).  I thnk some "features" I want to play with require a lot of micromanaging the engine (reasonably) takes care of for me, and I also will allow that there's probably an easier method to get the sound I want without ripping apart various ASM routines.  It's always a trade-off, and I'm learning quite a bit about music theory and audio engineering despite myself!

 

I've a few others things I'm still figuring out, like how CHANNMDETABL works, and generally how all the parameters work together, but-

 

TL;DR I appreciate the work and contributions you've done already, and a tutorial would be most welcome! 

  • Like 1
Link to comment
Share on other sites

2 hours ago, Synthpopalooza said:

CHANNMDETABL is easy ... that controls the setting in AUDCTL for each tune.  There are bits in AUDCTL which control everything from clocks (i.e. pitching different channels up or down into different ranges) to filtering fx, and a lot more. 

That makes sense, and also explains why I didn't make much progress back when I thought it only referred to either channels or waveforms by themselves 😅  

 

Given the research dive, new documents I've found, and the fact that I've gotten the rest of the game to a good playable point, I'm prioritizing sound & music, so I'll likely going back and playing with the 7800 engine again in earnest (not just making sure I can get it installed and running).  I've a Dragonfly cart with a Pokey-compatible chip that will be about as close as I can get to a proper hardware test short of burning a final ROM, so we'll see how much further I get.

Link to comment
Share on other sites

To start with, I'd begin with AUDCTL=$00 (default setting) and the $Ax and $Cx distortions (using $Cx for bass) and $8x for percussion.  Once you've gotten comfortable with that, you can experiment with the other AUDCTL bits ... The 15khz bit, and the 1.79mhz bits, then after that the 16-bit settings.  I'll gladly answer any questions you might have.

 

The filter bits and the 9-bit poly are a bit more advanced ... And then, two-tone mode SKCTL=$8B is really advanced experimental stuff that I still haven't complefely catalogued yet.

Edited by Synthpopalooza
  • Thanks 1
Link to comment
Share on other sites

On 10/10/2022 at 9:24 PM, Synthpopalooza said:

CHANNMDETABL is easy ... that controls the setting in AUDCTL for each tune.  There are bits in AUDCTL which control everything from clocks (i.e. pitching different channels up or down into different ranges) to filtering fx, and a lot more. 

CHANNMDETABL?? Is this POKEY?

Is there a register in POKEY I don't know about???

Link to comment
Share on other sites

  • 1 month later...

Many thanks to those who played the game at PRGE!

 

Today's task was getting my map script to output a full-res map complete with each section color:

HarpyMapOutput.png.cca40fe27b37f6c955b004b7cc78b54f.png

I still need to have the map include the enemy graphics (which have their own color scheme per section) - while this all might be useful for a spoilery map/poster, it's also useful for me to see how I'm using color in the "big picture" as I make revisions to the map layout.

 

The overall game is roughly complete.  At least, the first draft is - myself and one tester have both managed to play through the entire thing.  I'm now in the long process of fixing up misplace blocks, tweaking colors, finalizing menus, etc. etc.


4 keys, 4 item/ability pickups, 4 life extensions, 5 bosses all to be found in the maze. 
Current screen count is a little over 500, but I've enough ROM space left that I'm considering adding a "second quest"

Ending sequence is largely done (maybe), and I'm working on an intro sequence for the attract mode right now.

 

It feels like it's close to a quiet beta release (I want to see how folks respond to the level design), but of course there are a hundred little things to fix before I feel comfortable letting folks get their hands on it.


I have a soundtrack worked out, and even "sketched" with the TIA. While I plan on POKEY, my skills are such that it doesn't sound that much better right now, and that will need some work.  The POKEY tests are more in tune and have better resolution, but given that I initially arranged my test pieces for TIA and haven't taken advantage of the extra channels yet, the added complexity is not quite worth it yet, IMHO.


I'll likely release the initial beta with TIA sound (more compatible with more sd carts and emulators anyway), and work on the POKEY elements as I get feedback on other elements of the game.

 

I'll try to have something more concrete soon, watch this space!!

  • Like 10
Link to comment
Share on other sites

Super excited to try this out. I think your other 3 7800 games all sound great with TIA sound. I have always been a fan of games that lean into the unique aesthetic potential of a console; ie. specific color palette capabilities, scrolling options, sounds, etc so I really think that if you can make a game sound good on TIA that POKEY audio isn't super necessary unless it really is adding to the depth of the overall soundscape. I think Combat uses POKEY audio well to get more layers into the sound; the bullet sounds and other noises are actually TIA while the music is POKEY. I know it is a pretty revered game and having the audio match the 8bit and 5200 versions is cool, but I don't think Ballblazer needs POKEY sound and I doubt that Lucasarts would have gone with that option if the game had been developed for the 7800 first rather than being ported to it later with an already completed audio track for the POKEY chip done.

Edited by Lord_of_Sipan
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

On 11/19/2022 at 5:09 AM, Revontuli said:

Many thanks to those who played the game at PRGE!

 

Today's task was getting my map script to output a full-res map complete with each section color:

HarpyMapOutput.png.cca40fe27b37f6c955b004b7cc78b54f.png

I still need to have the map include the enemy graphics (which have their own color scheme per section) - while this all might be useful for a spoilery map/poster, it's also useful for me to see how I'm using color in the "big picture" as I make revisions to the map layout.

 

The overall game is roughly complete.  At least, the first draft is - myself and one tester have both managed to play through the entire thing.  I'm now in the long process of fixing up misplace blocks, tweaking colors, finalizing menus, etc. etc.


4 keys, 4 item/ability pickups, 4 life extensions, 5 bosses all to be found in the maze. 
Current screen count is a little over 500, but I've enough ROM space left that I'm considering adding a "second quest"

Ending sequence is largely done (maybe), and I'm working on an intro sequence for the attract mode right now.

 

It feels like it's close to a quiet beta release (I want to see how folks respond to the level design), but of course there are a hundred little things to fix before I feel comfortable letting folks get their hands on it.


I have a soundtrack worked out, and even "sketched" with the TIA. While I plan on POKEY, my skills are such that it doesn't sound that much better right now, and that will need some work.  The POKEY tests are more in tune and have better resolution, but given that I initially arranged my test pieces for TIA and haven't taken advantage of the extra channels yet, the added complexity is not quite worth it yet, IMHO.


I'll likely release the initial beta with TIA sound (more compatible with more sd carts and emulators anyway), and work on the POKEY elements as I get feedback on other elements of the game.

 

I'll try to have something more concrete soon, watch this space!!

I know I've said this a million times, but OMG I AM EXCITED! Can't wait to try this out!

 

A metroid-vania for the 7800 would be freaking awesome!

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

On 11/19/2022 at 8:02 PM, Lord_of_Sipan said:

Super excited to try this out. I think your other 3 7800 games all sound great with TIA sound. I have always been a fan of games that lean into the unique aesthetic potential of a console; ie. specific color palette capabilities, scrolling options, sounds, etc so I really think that if you can make a game sound good on TIA that POKEY audio isn't super necessary unless it really is adding to the depth of the overall soundscape. I think Combat uses POKEY audio well to get more layers into the sound; the bullet sounds and other noises are actually TIA while the music is POKEY. I know it is a pretty revered game and having the audio match the 8bit and 5200 versions is cool, but I don't think Ballblazer needs POKEY sound and I doubt that Lucasarts would have gone with that option if the game had been developed for the 7800 first rather than being ported to it later with an already completed audio track for the POKEY chip done.

I agree. 

 

However, the POKEY really helped with Ballblazer. I don't think it would sound nearly as good without it and it would make the already-rare-origonal-pokey even rarer.
 

 

Edit: I need to stop overposting, so I'm going to "reply" to the comment below.

I'm very excited for your beta version! Can't wait to check it out!

Edited by Ecernosoft
Link to comment
Share on other sites

A quick post to reassure folks I'm still working on a beta version - it's just that there's a ton of little things (and one or two kinda big things) I'm trying to take care of.  My normal schedule should clear up soon as the holidays start, and I intend to get something for folks to play & test before the new year (and hopefully well before that).

 

Just so there's some new material to tease, here's a screenshot of the attract mode "intro":

image.png.aebe3c5c1b06d76b24bf706a9bbf22a6.png

  • Like 7
Link to comment
Share on other sites

Beta is close...I've cleaning up the starts and ends of the features I want.  Got past a little bit of coding/design block to get the last little bits in.  I added in a pretty nasty enemy type I'll only use sparingly, and have almost finished adding in the secrets I want for this early public release.  I'll do another minor pass on the level design to fix/clean some stuff up.  TIA arrangements are close to done - TIA music is rarely great but you can get it so it doesn't grate, so to speak 😅  

 

Intro and Ending sequence are there, although currently squeezed a bit by their designated bank running low on space.  I might design more elaborate sequences once I have a better idea of the final ROM usage (if/when I bring in POKEY, bug testing, etc.) *and* as an incentive for folks to try newer versions instead of taking this one and running :)

 

I'll be testing on my Concerto and DragonFly - I know the 128KROM/16KRAM layout can cause some issues on some things - I'm not really using the extra RAM or POKEY yet, so I'll see how that goes (and dive into the forums to see about header stuff if it isn't), and I should play through things to test performance on physical hardware, which I haven't done in far too long.

image.png.8c679125fc7abc4cf7b6a89986381cd8.png

I'm looking forward to seeing how folks play this one!

 

EDIT:  Current ROM Usage (UI/Intro/Outro/Anything with text is in Bank 7)

   4425 bytes of ROM space left in the main area of bank 1.
   2553 bytes of ROM space left in the main area of bank 2.
   6217 bytes of ROM space left in the main area of bank 3.
             4096 bytes of ROM space left in DMA hole 0.
   2215 bytes of ROM space left in the main area of bank 4.
             4096 bytes of ROM space left in DMA hole 0.
   4078 bytes of ROM space left in the main area of bank 5.
   16383 bytes of ROM space left in the main area of bank 6.
   446 bytes of ROM space left in the main area of bank 7.
             0 bytes of ROM space left in DMA hole 0.
     148 bytes of ROM used by the song 'captainokane'
     304 bytes of ROM used by the song 'tamlin'
     32 bytes of ROM used by the song 'winfanfare'
     395 bytes of ROM used by the song 'gnoss4'
     126 bytes of ROM used by the song 'ogive4'
     88 bytes of ROM used by the song 'vexations'
     155 bytes of ROM used by the song 'gym1'
   pokeysound assembly:  326  bytes

 3472 bytes of ROM space left in the main area of bank 8.
     $18e0 to $1fff used as zone memory, allowing 14 display objects per zone.
     876 bytes left in the 7800basic reserved area.

 

Edited by Revontuli
  • Like 5
Link to comment
Share on other sites

I know I keep teasing a release - it's just that I know the first version will usually be the most downloaded (or at least in the top few), regardless of how many bugs it might have or how much future versions fix and improve features...

 

I'm currently aiming to try and get the TIA tracks finalized today, but I ran the game through a number of emulators.

 

99% of the time I use BupSystem, since I can just double click and run a build.  I know it's not 100% accurate, but it's great (and the most convenient) for testing most of the time.

 

A7800 is my "this is not physical hardware, but the next best thing" benchmark, and it seems to run OK.  I used it to test my SaveKey stuff, and I'll need to do that, but I feel safer testing on hardware at this point, so I might jump straight to that to test saving.

 

JS7800 seems to run the game fine, as long as I turn off vertical synch (and it runs horribly if vsync is on)

 

My go-to for hardware testing is my Concerto, which seems to run things ok.  I need to run through a full game again on this one first.

 

I finally tested the game on my DragonFly - it seems to play well - although hearts dropped by enemies show up as black - I might update my firmware and see if that works.  Oddly, I've had more trouble running my *other* games on the DragonFly, but I haven't really run that SD Cart through the battery of tests that I should.  I know it's probably fine, but I'm always a little wary of subjecting my old 7800 (which buzzes if a stray piece of dust lands on it :P ) to the pass-through power the DragonFly needs.  If/when I go full POKEY, the DragonFly will be my go-to, of course.

 

I prioritize compatibility for a future cartridge, so if a particular emulator *isn't* working but the hardware *is*, my instinct is to spend time on fixing other things first.  There are several ways to play a 7800 game nowadays, and I *do* want to sell at least a *few* carts :)

 

Let's see how the next few days go - as I release the game, I'm sure folks will have a different experience than I do once it's out of the gate.  

 

To add visuals to my wall of text, here's another snippet from the map, showing parts of three vertical levels:

image.thumb.png.722c1af67aca10a032038810699f29a0.png

Edited by Revontuli
  • Like 10
Link to comment
Share on other sites

It'll be nice playing something new where the creator is concerned with quality and compatibility. I know I shouldn't say this but I'm tired of games that are running version 24 that still doesn't work on most emulators and multicarts and have multiple threads.

 

Games like this is why I lurk around these parts and it becomes discouraging when they get buried by frivolous topics. 

  • Like 4
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Revontuli said:

I know I keep teasing a release - it's just that I know the first version will usually be the most downloaded (or at least in the top few), regardless of how many bugs it might have or how much future versions fix and improve features...

 

My recommendation is: don't feel pressured to release.

  • Like 6
  • Thanks 1
Link to comment
Share on other sites

40 minutes ago, Pat Brady said:
2 hours ago, Revontuli said:

I know I keep teasing a release - it's just that I know the first version will usually be the most downloaded (or at least in the top few), regardless of how many bugs it might have or how much future versions fix and improve features...

 

My recommendation is: don't feel pressured to release.

 

Agreed with that recommendation, but also, one way to catch some bugs with an initial release before offering it for download is to let @ZeroPage Homebrew have a first look at it on the show, then release if there are no obvious bugs, or correct what may be found on the show before offering your first downloadable version.

  • Like 6
Link to comment
Share on other sites

17 hours ago, Pat Brady said:

 

My recommendation is: don't feel pressured to release.

I agree. Although I am beyond excited, I won’t mind a delay.


can’t be more right about the below:

11 hours ago, SlidellMan said:

Wow, this is shaping up to be one of the 7800's best games.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

On 12/1/2022 at 3:18 PM, Karl G said:

one way to catch some bugs with an initial release before offering it for download is to let @ZeroPage Homebrew have a first look at it on the show,

ZPH has been a huge help - if you want to see the game in action you can check out the recent episode where I'm interviewed!  They go through my released games for the Atari systems, and end with a preview of Harpy's Curse!  

 

From what I saw from ZPH playing it, the game shouldn't "blow up on the runway," but I'm going to be testing the game with one or two more guinea pigs good friends before posting it here.  I've gotten a lot of the little things under control, but there are a few things I probably won't have finalized just yet.  I want a little more decor on the title screen, the TIA music can always use more refinement (and you can always turn it off!), and the stuff I really want to test are not just bugs but level design and difficulty.  There will be some "bonus" features I'm not adding in yet since 1) even bonus features are a lot of work to add in a late-stage codebase and 2) extra features can provide a little more incentive to try new, updated versions as they are released.  

 

Thank y'all for your interest (and patience) - I want to make a good, polished game but I also want to see it played, so I'll keep folks up to date and try to get something released soon!

  • Like 7
  • Thanks 1
Link to comment
Share on other sites

Very close now - I have a "every feature I want in a quiet public beta, with the other features I'll tease for a physical cart" build of Harpy's Curse I'm playing to test performance and stability on hardware via Concerto:

HarpysCurseCRT.thumb.png.162e0872e463e7621af65ea3c1c41533.png

While I'll probably be revising the graphics until the chips are being burned, I have at least a decent first or second draft of most things.  One friend is already figuring out speedrunning routes...

 

There's one particular bug involving what I think is a phantom enemy collision - the type of thing that can be hard to reproduce, but can be very frustrating for players.  I'll see how this week goes and if I can hunt down those last few known bugs (even though I'm sure y'all will find more!)

 

 

  • Like 4
  • Thanks 1
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...