Jump to content

SpiceWare

+AtariAge Subscriber
  • Content Count

    16,912
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by SpiceWare


  1. There's 2 builds of RetroArch for the Mac, one that supports OpenGL and another that supports Metal. I'd initially installed the Metal version on my Mac Pro.

     

    There's 2 versions of the Playstation Emulator: Beetle PSX, and Beetle PSX HW. The first is software rendering only. The HW version supports rendering via software, OpenGL, and Vulkan, but not Metal.


    So I installed the OpenGL version of RetroArch. It just quits without a crash screen as soon as I try to launch a game. I turned on the logging feature, but nothing ends up in the log to provide a clue as to what's wrong.

     

    I also tried both versions on my Mac mini - neither runs on it.

     

    I think I'll put this on the back burner for now, and periodically check in to see if they get it working.


  2. Was trying out RetroArch on my Mac and while it was a bit confusing to get going, it has an interesting feature that improves the appearance of 3D games.

     

    Internal GPU Resolution 1x:

     

    2038668126_ScreenShot2020-05-24at3_49_21PM.thumb.png.47dd14afdcff21c88181b028d2d27d70.png

     

    Internal GPU Resolution 2x:

     

    1530172775_ScreenShot2020-05-24at3_49_39PM.thumb.png.038149188abe34cea05855333e872251.png

     

     

    Internal GPU Resolution 4x:

     

    1795809043_ScreenShot2020-05-24at3_49_56PM.thumb.png.29ba1c370f54e153052975841314c08c.png

     

    It looks awesome, and even has options for 8x and 16x, but once I get to 4x it's slow and stuttering because it's falling back to software rendering on my Mac.

     

    781800610_ScreenShot2020-05-24at3_05_23PM.thumb.png.13624035a2542054df1da8c83b280eca.png

     

    Anybody have any experience with this?  I'd like to get figured out before I next replay the Spyro the Dragon trilogy.

     

     

    • Like 1

  3. 1 hour ago, bluswimmer said:

    If I'm shooting downwards, I can't move to the left diagonally up or down. Same thing with shooting down left diagonally. If I shoot down right, I can't move to the left at all.

     

    Just confirmed that this works OK for me in Stella using both analog sticks on a PS3 controller

     

    Are you by chance playing it via keyboard? If so you could be hitting a rollover limit.

    • Like 1

  4. 7 minutes ago, sramirez2008 said:

    Ohh, I missed this thread. Thank you Darrell.

     

    It's one of the reasons I bought a 7800, been bummed out that it was never released.

     

     

    Quote

    I don’t normally play via emulation, but after watching Willie’s “Arcade USA” video, I did the same with our PS4 controllers and Stella. My younger son really got into playing Robotron this way.👍

     

     

    Hadn't seen that one, will check it out after work.

    • Like 2

  5. 57 minutes ago, Redmiller said:

    Thanks for the link, Loved reading about it all.

     

    You're welcome!  I've been following it since it started. Have posted a few things like Pac-Man appearances in Newhart (which I've been rewatching):

     


     

     


  6. Aha!

     

    I just noticed the "Net Metering Credit" in the first image used -503 instead of the expected -665, and the "Remaining Bank" in the second image never had a value before but is now 162.

     

    So it looks like I won't ever end up with $0 or negative bill, but did build up a credit.


  7. If you want to animate the Mad Bomber then search for this section of code:

     

    ;   select which Mad Bomber Image will be shown
    
    ;   no animation
        lda #0
    ;   end no animation    
    
    ;   slower animation
    ;    lda frameCount
    ;    and #%00100000
    ;   end slower animation
       
    ;   faster animation
    ;    lda frameCount
    ;    and #%00010000
    ;    asl
    ;   end faster animation    

     

     

    Comment out the lda #0, and uncomment out one of the following sections of code, such as this:

    ;   select which Mad Bomber Image will be shown
    
    ;   no animation
    ;    lda #0
    ;   end no animation    
    
    ;   slower animation
        lda frameCount
        and #%00100000
    ;   end slower animation
       
    ;   faster animation
    ;    lda frameCount
    ;    and #%00010000
    ;    asl
    ;   end faster animation   

     

     

    After doing so the images will alternate between A and B versions.  Frown:

     

    kaboom_deluxe_4.png.d5ac6c5a80c193339a44ed583d7cd0c4.png  kaboom_deluxe_5.png.0a548d30e35f49497e22fe1d3aa3b8c0.png

     

    Smile:

     

    kaboom_deluxe_2.png.d71eeddc1e7a850a55d6cef04d9e7e83.png  kaboom_deluxe_3.png.d49debe66fa76d2eb6f8a20cbb6f34c0.png

     

    Surprise:

     

    kaboom_deluxe_6.png.37463e5a42a6d3700ddb889d84f8cce3.png  kaboom_deluxe_7.png.79e3208b4adf8e9920fd8bdb9858f5aa.png

     

    ROM

    kaboom_deluxe_20200517_animated.bin

     

     

     

     

    • Like 3
    • Thanks 1
    • Haha 1

  8. Done with the changes to use distinct Mad Bomber images and improve the city skyline. Also made a minor tweak to the buckets to add the missing water pixel.

     

    This reply contains my final set of changes for Kaboom! Deluxe!. While I'm not using it, it is set up to support animation - I'll explain how to enable that in the next reply.

     

    Summary of changes:

    • Added sunset city skyline.
    • Updated Activision logo to the rainbow variant.
    • Added game variations 3-8, Pitch and Catch where the other player controls the Mad Bomber. Mad Bomber moves slowest in 3, fastest in 8. Game play for variations 1 and 2 is the same as in the original Kaboom!
    • Paddle position indicator for Mad Bomber player.
    • Paddle button to start new game.

     

    Skyline & Rainbow logo:

    kaboom_deluxe.thumb.png.5e37d4a09af97c990898f4a28f04be5a.png

     

    In games 3+ a paddle position indicator will show up behind the score:

     

    kaboom_deluxe_1.thumb.png.12469a3436ebc6876152330defb73b81.png

     

    NTSC

    kaboom_deluxe_20200517_NTSC.bin

     

    PAL

    kaboom_deluxe_20200517_PAL.bin

     

    PAL60

    kaboom_deluxe_20200517_PAL60.bin

     

    Source

    kaboom_deluxe.asm

    • Like 3
    • Thanks 3

  9. Made some progress - after removing that checkForLowerMouth logic to manipulate the Mad Bomber's face I was able to lower the building tops past the Mad Bomber's Mouth:

     

    kaboom_deluxe_4.thumb.png.5d71e8a8e0487fde159948409cad88d3.png

     

    I then cloned the Mad Bomber kernel 2 times and updated each one to draw one of the other images. Smile:

    kaboom_deluxe_6.thumb.png.05f43e86c5b080e509b38c48a4e2f46a.png

     

    Surprised:

    kaboom_deluxe_5.thumb.png.c26fc9ee600d2bd9f69e374c149076b2.png

     

     

    I have not yet added the extra scanline after the score, so to test the new Mad Bomber kernels I've been commenting/uncommenting JMP statements:

    ;   jmp MadBomberFrowning
       jmp MadBomberSmiling
    ;   jmp MadBomberSurprised

     

    That issue with the bombs shifting as they pass the water buckets returned, same as seen before in Reply 18. Possibly that'll clear up on its own once I add the extra scanline after the score and write the new logic to select which Mad Bomber image to draw.

    • Like 1

  10. I suspect not, it would require 3 updates:

     

        lda #brick_color
        sta COLUPF             
        lda brickpattern, y
        sta PF2
        ...
        lda #black
        sta COLUPF


    because the playfield is used to hide the HMOVE bars:

     

    kaboom_deluxe_3.thumb.png.e670a825b9c7a2011ea8e6bf6ffb47e0.png

     

    Crackpots doesn't have to read 2 paddles during the kernel, so had the time to do it.

     

    Adding the 2nd paddle reading already made it tight by the buckets, so bricks definitely couldn't be drawn in the area where the buckets and splashes get drawn.


  11. Did some preliminary research last night. I was originally looking to reuse that variable bomberExpressionState to control which of the 3 images were shown, and have it populated before the screen starts to be drawn.  Turned out tempCharHolder, used during the score display, is the exact same byte of RAM so the test values I was putting in bomberExpressionState were getting overwritten.

     

    All the other RAM is spoken for, but due to how the memory mapping for the cartridge ROM works in the 2600 I can use the upper 3 bits of a digit pointer for the score to hold it - I explain how that works here.  Conveniently the BIT instruction makes it easy to check the uppermost 2 bits, allowing me to do this in the amount of time left that's left on the scanline just before the one that starts drawing the buildings and MadBomber:

       bit tempWhichMadBomber     ; 3 63
       bmi MadbomberSurprised     ; 2 65 (3 66)
       bvs MadBomberSmiling       ; 2 67 (3 68)
       jmp MadBomberFrowning      ; 3 70

     

    10 hours ago, TIX said:

    Hey @SpiceWare I'm not familiar with the technical terminology.. so if there is a possibility to animate the whole sprite let me know  :)

     

    Hmm - there's not enough time to do that with how the screen is currently drawn, but I could insert an extra scanline between the score and skyline*. Doing so would allow me to use those 3 bits to select from 8 different images for the Mad Bomber.

     

    * would also need to remove one from after the Activision logo to keep the scanline count at 262.


  12. The RAM's used up so using a Graphic Pointer would be tricky, but the ROM's now 4K with plenty of room left. As such the Mad Bomber kernel could be set up to use 3 different routines that are hard coded to using one of these for the graphics:

    • lda MadBomberFrown,x
    • lda MadBomberSurprise,x
    • lda MadBomberSmile,x

     

    I'll take a look at making that change later this week as that should let me make the buildings look better. They're a bit squished compared to CrackPot because I couldn't update the building graphics on the scanline with the Mad Bomber frown/surprise/smile logic.

     

     

      

    kaboom_deluxe_20200413_NTSC.thumb.png.ea79951ed15f9742d3364356fae059d7.png  

     

     

    1037384683_Crackpots(1983)(Activision).thumb.png.1a35bb11ebadcaaef939c1e2b9f19769.png

    • Like 3

  13. 23 hours ago, KevinMos3 said:

    I tried your sprites, but wasn't sure how to make the switch from smile to frown work with them.

     

    Usually we'd use a couple bytes of RAM for a graphic pointer, which requires using Y for the loop, and have 3 separate graphic images. 

      lda (MadBomberGfxPtr),y
      sta GRP1

     

    RAM usage is tight, as was the 2K ROM, so Larry Kaplan hard coded the routine to use a single graphic image (lda MadBomber,x) and changed the graphics on the fly when X = 22.

    DrawMadBomber
       lda MadBomberColors,x      ; 4
       eor colorEOR               ; 3
       and hueMask                ; 3
       sta WSYNC                  ; 3
    ;--------------------------------------
       sta COLUP1                 ; 3 = @03
       lda MadBomber,x            ; 4
       cpx #22                    ; 2         are we drawing Bomber's upper mouth
       bne .checkForLowerMouth    ; 2�        if not check lower mouth
       lda #%01101100             ; 2         Mad Bomber frown graphic
    .checkForLowerMouth
       bcs .drawMadBomber         ; 2�
       lda #%01101100             ; 2         Mad Bomber surprise graphic
       bit bomberExpressionState  ; 3
       bmi .drawMadBomber         ; 2�
       lda #%01010100             ; 2         Mad Bomber smile graphic
    .drawMadBomber
       sta GRP1                   ; 3
       dey                        ; 2
       dex                        ; 2
       cpx #21                    ; 2
       bcs DrawMadBomber          ; 2�
    .colorMadBomberLoop
       lda MadBomberColors,x      ; 4
       eor colorEOR               ; 3
       and hueMask                ; 3
       cpx #3                     ; 2
       bne .colorMadBomber        ; 2�+1
       lda backgroundColor        ; 3
       sta WSYNC                  ; 3

     

    • Like 1

  14. I don't recall what direction is holding, but if you save the value of SCHWA from one frame you can easily compare it using EOR.

     

        lda SWCHA
        eor SAVED_SWCHA
        beq no_change
    
    ; handle change here, any bit in the accumulator that's a 1 is a joystick direction that's not the same as the prior frame
    
    no_change:
        lda SWCHA
        sta SAVED_SWCHA

     

    • Like 2
×
×
  • Create New...