Jump to content

easmith

Members
  • Posts

    642
  • Joined

  • Last visited

Posts posted by easmith

  1. On 3/31/2024 at 5:43 PM, Yurkie said:

    @Thomas Jentzschand @easmithcould this awesome game and its 2 holiday hacks be made into a game selectable rom?

    That is really beyond my level of expertise. Each rom is 32 K .  If the games were all the same except for the colors and graphics it might be easy just to have some if-thens handle things , but the game logic is different between the versions in enough places to make this not a solution. Not to mention the extra bytes needed for the menu with a game that is close to maxed out on space as it is .   I think it is awesome that you like the games, but I think the different versions will have to remain as separate files .   

    ES

     

  2. 1 hour ago, splendidnut said:

    Now all you need to do is eliminate the sprite flicker: split your kernel in two (top and bottom) and add some mid-screen repositioning code.

    I actually just looked at the kernel code  . It has been 2 and a half years since I have revisited the game. There might be some solutions to these issues yet . I will see what I can do

     

    • Like 3
  3. there are a few sacrifices that would require. The ball would have to be white and the shadow would take on the player colors when on same line.  There also would be some “dead space “ during the repositioning routine in the net area where the ball and shadow would be lost to view . 

     

    But yes the sprite flicker is not ideal . but it is much less noticeable than net and sideline/ baseline flicker was .

  4. Once again I have returned to this old game , still not satisfied with the graphics , specifically the flickering court / net.

    Incarnation 1 had a flickering court. Incarnation 2 had a flickering net with the intent to have the net a different color than the court lines.

     

    This time I just made the net and the lines white with no flicker.  It is better in my opinion .    Should have just done this the first time....

     

    Again , the game is difficult to master but with practice you can beat the AI opponent.  Very hard with keyboard .  The main difference between other tennis games is that you can control the direction and speed of your shot.  Hold button for hard hit , and move joystick in the direction you want the ball to go as you are making contact with the ball.    Here again are  controls:

     

    *****************************************************************************

     

    1 vs 1 Pro Tennis

    1 Player or 2 Players

    Switches: Difficulty switches: Not used

    TV Type : Not used

    Reset resets to Title Screen

    Holding down select will cycle through game options only in Title Screen.

     

    Game 1: 1 Player grass court

    Game 2 : 1 Player clay court

    Game 3 : 2 Player grass court

    Game 4 : 2 Player clay court

    P0 controls BLUE player in all games On grass court, ball occasionally takes erratic bounce Press Button to start Game CONTROLS. SERVE: -- Press button to serve ball. You also control when the AI ( black shirt player)  serves by pressing button.
    When serving at bottom there are 2 serves:


    1. Push joystick toward center line to serve down middle. Needs to be pressed at moment of contact with ball not just when pressing button.
    2. Button only , or button plus toward sideline will put serve regular


    When serving at top there are 3 serves:
    1. Push joystick toward center line to serve down middle. Needs to be pressed at moment of contact with ball not just when pressing button.
    2. Button only will serve regular
    3. Push joystick toward sideline to serve wide . This option can result in an ACE, but can also result in a FAULT. This is the only serve that can fault.
    Double fault will result in point for opponent
    AFTER SERVE -- To hit ball, you just need to move player to contact the ball IF the button is pressed at the moment of / immediately after contact , you will hit a fast shot . * Can only hit fast shot off bounce ( not while ball is in air unless lob shot ) IF the button is not pressed at the moment of contact , you will hit a slow shot.

    Immediately AFTER contact ( within 4 frames so does not have to be before since this will cause player to change direction) , joystick movement will control placement of shot : SO if you are bottom player no movement will place ball in middle of opposite court . up right will place ball at back right of opposite court right / down right will place ball at lower right of opposite court left/ down left will place ball at lower left of opposing court etc .

     

    Pressing up will back the opponent up to baseline since your shot will go to baseline . Pressing down will do a lob shot which can go over opponent. If button is pressed, this will prevent the player from inadvertently moving up or down while attempting the lob. Controls are opposite if you are top player.

     

    There are 3 sets . First player to win 6 games wins the set. Do not have to win by 2 games.

    First player to win 2 out of 3 sets wins the match.

     

    Tips:

    1. Try to hit fast shot into corners near baseline when opponent is on opposite side.

    2. You can lob a shot  to get opponent   off the net.

    3. Approach the net when you are bottom player, as this can increase your chances of getting your shot by your opponent.

    4. Hit “through the ball” in the direction you want the ball to travel

    5. Set up winners by hitting to one side and then going back cross-court .

    6. Practice Makes Perfect

     

     

     

     

     

    protennis_24.bin

    • Like 6
  5.  2 line kernel is an easy solution, though you will lose a little detail  on your sprites  if they are small .

    Draw  the sprites on different lines right after the WSYNC in the horizontal blank period.   This should correct the shearing issue on the sprites. You can use the VDEL to line up the sprites .   

     

    Similar for updates of colors, PF , etc.  You want the object updated before it needs to be drawn .

     

    you also could do away with the arena counter and just update PFs every other line after one of the 2 line kernel WSYNCS.

    With a 2 line kernel you could put in an entire table for the arena and it will be half as many bytes using 2 LK

     

     

     

    • Like 2
  6. 7 minutes ago, Thomas Jentzsch said:

    While this works on modern hardware and maybe some older hardware, I had negative experiences when developing Thrust. The code is smart and effective and I had the same idea back then. But it is only smart if it works reliable. :) 

    I guess we will see :) .    If it crashes on newer Stella versions then I will have to change it , I will just need specific guidance on how to do so in each bank. I am happy to receive edits as needed but could probably not figure it out myself.    I know there is an issue with this code on Flashback Portable for the issues you mentioned I think, but I never was able to change the code as Kurt passed before he could respond to my question.

    Thanks again for the heads up and again I am open to getting new code if you are offering  !

     

  7. 48 minutes ago, Thomas Jentzsch said:

    Just move your initial startup JMP a few bytes, so that it doesn't touch the hotspots. And add the required hotspot access directly before the jump.

     

    E.g. 

    Startup  
      bit $fff4 
      jmp Init   

     

    Below is what I have as the code for the end of my banks .  Again, I have not thought about this in a few years , and was trying to modify code I got from NukeyShay ( see bottom of message) , but it works on Real Hardware so far as I can tell. But I am happy to modify it as needed.

     

    **************************************

     

    End of bank code:


    Bank 1  (0) : 

    Reset
         
         ORG $1FF2
         
        JMP CLEAN_START                         ; clean start is in bank 1            
        .byte 0,0,0,0,0,0,0
        
        .byte $F2,$1F,0,0

    Bank 2 :

          org $2F83             ; incoming from bank1 
           rorg $1F83
           
          jsr bank2logic             
           
           ldx $1FF4           ; back to bank 1

          ORG $2FF2
         RORG $1FF2
          JMP CLEAN_START
        .byte 0,0,0,0,0,0,0
        
        .byte $F2,$1F,0,0

    Bank 3

            org $3F93
           rorg $1F93
           
          jsr bank3logic
           
                  
           ldx $1FF4

        ORG $3FF2                     ; I do not have RORG here .  Problem?
        JMP CLEAN_START
        .byte 0,0,0,0,0,0,0
        
        .byte $F2,$1F,0,0

    Bank 4:
          org $4fA3
         rorg $1fA3
             
        jsr Bank4logic

           

           
        ldx $1FF4             
           

        ORG $4FF2
         RORG $1FF2
        JMP CLEAN_START
        .byte 0,0,0,0,0,0,0
        
        .byte $F2,$1F,0,0
     

    Similar for banks 5-8 

     

    **********************************************************

     

     

    FROM Kurt Howe :

     

     

    Same method...only you have to move the JMP instructions 2 bytes lower (in 16k standard banking, the hotspots are $FFF6 to $FFF9).

     

    This string should be the final 12 bytes in all banks to start from the first one.

        ORG $FFF4
        JMP Clean_Start
        .byte 0,0,0,0,0
        .word $FFF4
        .word 0

    The JMP instruction occupies $FFF4 to $FFF6 in memory, so the program counter trips the hotspot for the first bank when reading the address to jump to.

     

    Just like most banking schemes, the last "word" in each bank can point to BRK interrupts, if you choose.

     

     

     

  8. ok thanks.  I will ask about the cart build .

    I will have to go back and look at a few things and refresh my memory. I got the code for the startup vectors for 16k from Kurt Howe . I got  advice from him on modifying it for 32 K but was not sure I did it correctly. I asked for clarification but sadly he had passed away . But whatever I did worked (I think) . The other 2 games using same scheme are  Kung Fu Combat 2 and Dark Keep.  Physical carts for kung fu combat work fine on real hardware . 

     

    at any rate , I definitely want the games  to work on newer Stella versions. So I will just need someone to give me the  proper code for the end of the banks . 

  9. 5 hours ago, Thomas Jentzsch said:

    Has this been tested on real hardware? I noticed that the game is executing code within bankswitching hotspots. This might not work.

     

    I found out, because for the coming Stella 7.0, to prevent such potential coding errors, we added a check here. For hotspots random values are returned now. Which breaks the game.

    The game works on my harmony cart. Co designer Kevin Mosley made a couple of test carts that worked ok. But I certainly want to know about any issues that need to be corrected. I am using same scheme I have used for the other 32k games I made and these have had no issues.  

     

  10. 1 hour ago, Mockduck said:

    This game is sweet on the 2020 VCS. Currently Christmas themed which turned out great.

     

    Question: is there a way to select male or female in the VCS rom? 

     

    Also, is the xmas version something that needs to be patched back to normal or is it baked into the game?

    Hi, thanks for the kind words !

     

     

    The game version should automatically switch back to the regular version after the New Year .   

     

    I am actually not familiar with the new VCS .  That was all set up by Kevin  @KevinMos3, who I worked on the game with . Send him a personal message and I am sure he can help with the male/ female setting.

     

     

     

  11. 4 hours ago, zzip said:

    I bought Strike Zone Bowling on VCS and got the Fright Zone Halloween variant.   Will the Strike Zone version return as an update there?

    I was under the impression that it already was supposed to have switched back .   But that is not my show, that was all set up by Kevin.  

    I will find out what the deal is and get back to you .

     

    Thanks BTW !

  12. Welcome to the "Fright Zone"   !

     

    Enjoy this Halloween hack by Strike Zone co-programmer and graphics wiz  Kevin Mosley  @KevinMos3 .

     

    A few differences from regular Strike Zone:

     

    Game over screens:

      score < 200  screen is random

     score >= 200 haunted mansion .  ENTER the mansion by pressing UP ( after a short delay)

     

    Bowl Spin meter:  Changed to be a bit more intuitive to learn controls.   Only one side of meter shows:  right = right spin, left = left spin.

    otherwise same as far as timing / strength of spin.

    image.png.11c358aca6389108488c7b53bb50fe0f.png

    image.png.6a3225b6dad4510388dc40bc059f421a.png

     

     

     

     

     

     

     

    FrightZone_NTSC.bin FrightZone_PAL60.bin

    • Like 11
    • Thanks 4
×
×
  • Create New...