Jump to content

Photo

JetBall (Hypa Ball clone) (In Progress) XB256 Compiled


26 replies to this topic

#1 LASooner OFFLINE  

LASooner

    Moonsweeper

  • 284 posts

Posted Tue Apr 10, 2018 3:30 PM

Now that I'm wrapping up work on Night Stalker, it's time to start working on Something else to hold my interest. I've decided to try to recreate HypaBall from the Commodore 64. Kind of Pong meets rollerball with jetpacks

 

I've decided I like working my s**t out in public, so instead of sitting on it, I'm going to post as I develop it. Should be fun and infuriating to make. 

 

So  this is what I've got since Friday of last week.

 

 

 

As you can see I have player 1 movement and sprites defined

ball bounces properly off boundaries and teleports from left to right

Character color shifts to accommodate dark background 

 

Immediate tasks:

 

Be able to catch the ball and throw it in any direction. 
Pause movement for characters not on the side with the ball

Register goal and who scored it.

Get 2nd player functioning

Allow 2nd player to be CPU controlled

Register Foul for holding the ball too long

Penalty kick

Animate Crowd

Sprite Order rotation based on ball position and character priority

 

 

 

 

 

Here's the original C-64 inspiration

 

 

 



#2 InsaneMultitasker OFFLINE  

InsaneMultitasker

    River Patroller

  • 2,122 posts

Posted Tue Apr 10, 2018 3:54 PM

Quick, get this man a SID blaster card ;) 



#3 Retrospect OFFLINE  

Retrospect

    Stargunner

  • 1,016 posts
  • Location:Wakefield, England

Posted Tue Apr 10, 2018 5:53 PM

I tell you something, you certainly impress me.  This stuff is good.  I like it.  

 

I've noticed also you don't seem to take on easy tasks.  There's a lot of stuff going on , there on the screen.  Great job so far. I'll be following this.



#4 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 284 posts

Posted Tue Apr 10, 2018 6:32 PM

Quick, get this man a SID blaster card ;)

 

 

Yeah, I don't know how much of the song I'm going to be able to do

 

 

I tell you something, you certainly impress me.  This stuff is good.  I like it.  

 

I've noticed also you don't seem to take on easy tasks.  There's a lot of stuff going on , there on the screen.  Great job so far. I'll be following this.

 

 

Thanks, I just like seeing if it can be done with the tools Senior Falcon has given us.

 

I hope to take another shot at bomb squad when I feel up to it. But this was one of my favorite games I had on the C-64, and it's different enough from Night Stalker to challenge me in different ways. I'm still not sure if I'll have the match timed or first one to 20 wins. But I do like the idea of trying to make this 2 player or 1 player.



#5 OLD CS1 OFFLINE  

OLD CS1

    Quadrunner

  • 5,314 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Tue Apr 10, 2018 9:17 PM

Spoiler


#6 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 284 posts

Posted Tue Apr 10, 2018 10:06 PM

 

Spoiler

 

 

Awesome! Did you do some SID to midi to TI thing?

 

I'd also like to point out, this is a perfect example of why sometimes it's a good idea to let people know what you're working on


Edited by LASooner, Tue Apr 10, 2018 10:32 PM.


#7 OLD CS1 OFFLINE  

OLD CS1

    Quadrunner

  • 5,314 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Tue Apr 10, 2018 11:07 PM

This one will sound terrible when run in XB, but the Sound List Compiler might take care of it.  YMMV.  It should sound like this: Attached File  Hypa-Ball_Song2(TMS9919).mp3   287.35KB   16 downloads

 

Spoiler

 

 

 



 

Awesome! Did you do some SID to midi to TI thing?

 

I'd also like to point out, this is a perfect example of why sometimes it's a good idea to let people know what you're working on

 

I have been working on a siddump to sound list module for my sound list manipulation script. It is, shall we say, far from working properly and I have to de-mangle a lot by hand.  Some bits I just do by hand.



#8 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 284 posts

Posted Wed Apr 11, 2018 12:07 AM

It's better than what I got out converting a sid to a midi and a midi to soundlist, thanks for this!



#9 carlsson OFFLINE  

carlsson

    Metagalactic Mule

  • 7,119 posts
  • Location:Västerås, Sweden

Posted Wed Apr 11, 2018 2:00 AM

Looks great! It is one of the games I usually keep pushing about when people ask for ideas what to implement, as it is both fun to play and not already ported to every other system out there.



#10 OLD CS1 OFFLINE  

OLD CS1

    Quadrunner

  • 5,314 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Wed Apr 11, 2018 8:35 AM

It's better than what I got out converting a sid to a midi and a midi to soundlist, thanks for this!

 

You are welcome.  Yeah, sometimes conversions can be like dubbing from BetaMax to VHS to BluRay.

 

I gave CALL SOUND statements because of your programming framework, but I can give you the raw sound lists or VGM if that is more helpful.



#11 carlsson OFFLINE  

carlsson

    Metagalactic Mule

  • 7,119 posts
  • Location:Västerås, Sweden

Posted Wed Apr 11, 2018 9:03 AM

By the way, SID2MIDI can output data in a text format instead of MIDI data. I have found it quite usable together with e.g. IntyBASIC, though it takes a bit of hand work to get desired results. I don't know if you've tried that method or would have use of the text output when converting the data further to the CALL SOUND syntax.



#12 OLD CS1 OFFLINE  

OLD CS1

    Quadrunner

  • 5,314 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Wed Apr 11, 2018 12:09 PM

My script is trained on the output of siddump.  I have not tried SID2MIDI but I will check it out and see if the output is more manageable.  The biggest problem I run into is the waveform handling and low tones (aside from parsing problems, anyway.)  The SID is two octaves lower than the 9919 so some adjustments have to be made during conversion.  I can output as a binary which SoundListRipper can import, a VGM, or as BYTE statements.  SoundListRipper can create CALL SOUND statements.



#13 unhuman OFFLINE  

unhuman

    Stargunner

  • 1,206 posts
  • Location:Vienna, VA

Posted Thu Apr 12, 2018 2:49 PM

Sounds amazing!  A few things to note from my limited expertise with sound lists...  You have to be careful since you only have 4 channels to play with, so the sound list could conflict with sound effects.

 

The musical score that I'm using for my game has (at most) 3 notes that play simultaneously - but I wanted to have a note + the noise channel available for sound effects.  What I did was drop a 3rd node (actually, I averaged 2 of notes that were played together).  I'm no musician, but it sounds fine to me.  And, I have sound effects.   If you steal all your sound for in-game music, you'll have no effects. 

 

Also, make sure you read the documentation for the sound list thoroughly.  I noticed you had some repetitive portions of your music...  You can provide commands to loop duplicate pieces, which (maybe?) saves memory b/c the sound list handles that in an optimized fashion.



#14 OLD CS1 OFFLINE  

OLD CS1

    Quadrunner

  • 5,314 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Thu Apr 12, 2018 5:19 PM

The built-in ISR routine does not allow for loops, only jumps (and I believe that is undocumented.)  retroclouds' Spectra2 has a copy of the ISR routine, or similar anyway, that I have been tweaking to add new commands.

 

(Ultimately, I will be releasing a special player, but, you know, time.)



#15 OLD CS1 OFFLINE  

OLD CS1

    Quadrunner

  • 5,314 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Thu Apr 12, 2018 5:54 PM

Also, it looks like game-play is all sound effects, so the music can be set free on all four channels! :)

 

And in the original the crowd looks rather stoic.

 



#16 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 284 posts

Posted Thu Apr 12, 2018 7:09 PM

I notice having converted sid to midi and also in your conversions, many frequency changes are subtle enough they could be combined into a single line

 

For example

 

100 CALL SOUND(16,388,0,185,6)
110 CALL SOUND(16,384,0,185,6)
120 CALL SOUND(33,380,0,185,6)
130 CALL SOUND(16,377,0,185,6)
140 CALL SOUND(16,373,0,185,6)

 

Could be changed to this without much noticeable difference 

 

100 CALL SOUND(97,380,0,185,6)

 

It loses some of it's funkyness, but saves memory


Edited by LASooner, Thu Apr 12, 2018 7:09 PM.


#17 OLD CS1 OFFLINE  

OLD CS1

    Quadrunner

  • 5,314 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Thu Apr 12, 2018 7:41 PM

I work to be cycle-accurate :)  Yeah, some of the sweeps can be cut without losing too much fidelity.

 

Thinking about it, you could probably remove the second and fourth lines in a six-line sweep and retain the middle value, leaving a three-line sweep: origin, intermediate, destination.  I did that with PacLand with great results.


Edited by OLD CS1, Thu Apr 12, 2018 8:03 PM.


#18 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • 1,177 posts
  • Location:Lansing, NY, USA

Posted Thu Apr 12, 2018 8:20 PM

The built-in ISR routine does not allow for loops, only jumps (and I believe that is undocumented.)  retroclouds' Spectra2 has a copy of the ISR routine, or similar anyway, that I have been tweaking to add new commands.

 

(Ultimately, I will be releasing a special player, but, you know, time.)

The sound list players in XB256 and the compiler allow GOTO and also FOR/NEXT loops. 



#19 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • 1,177 posts
  • Location:Lansing, NY, USA

Posted Thu Apr 12, 2018 8:30 PM

Sounds amazing!  A few things to note from my limited expertise with sound lists...  You have to be careful since you only have 4 channels to play with, so the sound list could conflict with sound effects.

 

The musical score that I'm using for my game has (at most) 3 notes that play simultaneously - but I wanted to have a note + the noise channel available for sound effects.  What I did was drop a 3rd node (actually, I averaged 2 of notes that were played together).  I'm no musician, but it sounds fine to me.  And, I have sound effects.   If you steal all your sound for in-game music, you'll have no effects. 

 

This is exactly what the sound player for XB256 and the compiler does.  If the melody uses 3 notes and the sound effect uses noise plus one note then the 3rd note of the melody is used for the sound effect instead. When the sound effect is done then the melody goes back to using the 3rd note.  Also, the player is more capable than the built in player in ROM. It can use both GOTO and FOR/NEXT loops.

Dolcetto fixes the problem where the sound generators would occasionally not turn off.



#20 OLD CS1 OFFLINE  

OLD CS1

    Quadrunner

  • 5,314 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Thu Apr 12, 2018 8:43 PM

This is exactly what the sound player for XB256 and the compiler does.  If the melody uses 3 notes and the sound effect uses noise plus one note then the 3rd note of the melody is used for the sound effect instead. When the sound effect is done then the melody goes back to using the 3rd note.  Also, the player is more capable than the built in player in ROM. It can use both GOTO and FOR/NEXT loops.
Dolcetto fixes the problem where the sound generators would occasionally not turn off.

 
Are you also restoring the noise channel value for W3/P3 (-4/-8) noises based upon tone 3?



#21 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • 1,177 posts
  • Location:Lansing, NY, USA

Posted Thu Apr 12, 2018 9:13 PM

 
Are you also restoring the noise channel value for W3/P3 (-4/- 8) noises based upon tone 3?

I don't understand the question?



#22 OLD CS1 OFFLINE  

OLD CS1

    Quadrunner

  • 5,314 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Thu Apr 12, 2018 10:13 PM

I don't understand the question?

 

Both white noise and periodic noise have a mode in which the "frequency" is influenced by the setting of tone 3.  If tone 3 and the noise channel get used outside of a song which uses this mode, only restoring tone 3 can effect the intended sound of the song.



#23 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • 1,177 posts
  • Location:Lansing, NY, USA

Posted Fri Apr 13, 2018 6:02 AM

When you compile a sound list you can send an instruction to the sound list player telling it to use either player1 or player2. 

 

If you are using player1:

CALL SOUND(1000,220,0) will use generator 1

CALL SOUND(1000,220,0,330,0) will use generators 1 and 2

CALL SOUND(1000,220,0,330,0,440,0) will use generators 1, 2 and 3

 

If you are using player2

CALL SOUND(1000,220,0) will use generator 3

CALL SOUND(1000,220,0,330,0) will use generators 3 and 2

CALL SOUND(1000,220,0,330,0,440,0) will use generators 3,2 and 1

 

And of course, any noise will be using generator 4.

 

So if I understand the question, per the XB manual, a frequency of -4 and -8 is influenced by the frequency of tone 3

 

If using player1 the third frequency provided is what influences the noise generator.

 

If using player2 the first frequency provided is what influences the noise generator.

 

When the interrupt is processed, the sound list being played by player1 is dealt with first and then the sound list for player2 is handled.



#24 unhuman OFFLINE  

unhuman

    Stargunner

  • 1,206 posts
  • Location:Vienna, VA

Posted Fri Apr 13, 2018 1:09 PM

So, that sort of implies that sound effects should be rendered on player1 and music on player2?  That way effects override music?



#25 Asmusr OFFLINE  

Asmusr

    River Patroller

  • 2,783 posts
  • Location:Denmark

Posted Fri Apr 13, 2018 3:04 PM

The C64 music is great. I believe you could make a reasonably good approximation using periodic noise as the bass. Here are a few bars I tried to enter in MOD2PSG2.

Attached Files






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users