Jump to content
IGNORED

Arkanoid 2600?


retrogoober
 Share

Recommended Posts

I started a mock-up of BRIK that could probably be finished into an actual game. Might be a little tweaking involved to support paddles. I posted the source:

http://atariage.com/forums/topic/216654-batari-brik-mockup/

 

post-13304-0-47658100-1379353716_thumb.png
UPDATE: Personally I'd encourage paddle games that aren't "paddle" games. There's great untapped potential in the fact that 4 players can play. What about a 4 player Telengard/RPG type game? Or, maybe 4 player Spy vs. Spy? 4-player Smash Bros using the guy from Adventure?
  • Like 1
Link to comment
Share on other sites

Most people skip because reading the paddle takes away precious kernel time (minimum 8 out of just 76 cycles ). So when you add paddle support, the game will have to look less impressive. And most people will not know why and probably blame the developer.

 

Here is the minimum code. You have to make sure that the *address* of e.g. paddle1 is an 1 byte opcode, e.g. $ea (nop) or $d8 (cld).



  MAC READ_PADDLE_1
        lda INPT0 ; 3 
        bmi .save+1 ; 2/3
.save 
        sty paddle1 ; 3/2
  ENDM
Edited by Thomas Jentzsch
  • Like 1
Link to comment
Share on other sites

hehe, and that is already quite smart :)

In that example you can also see that you have to reserve Y

 

In most kernal situations an index register is in use anyway so there's not really great inconvenience.

 

I think the game can be done, probably fairly easily insofar as the graphical representation of what's needed. Of course there'd be flicker at times given that there can be 2 aliens, 3 balls and pickup objects on the screen at once but it shouldn't be anything the 2600 can't handle.

Link to comment
Share on other sites

Driving controllers are somewhat a rarity, probably 75% or more of owners would have paddles but less than 20% owners would have driving controllers.

 

Processing requirements should be much less for driving controllers. Probably 2-4 samples per frame equally spaced then process them during VBlank might be the ideal.

 

Realistically this game should have a joystick option although IMO stick suck for such games. Actually, supporting all 3 control types shouldn't add greatly to the size. Processing requirement for joysticks is minimal, it can all be done in VBlank.

Link to comment
Share on other sites

Not sure. Trakball is like a mouse turned upside down, in Atari implementation both use the Reed Code with 2 bits per axis for the movement.

 

Driving controller is the same except only 1 axis - I think it only uses 2 bits, someone else should be able to indicate if that's the case.

 

An Amiga or ST mouse mode would be possible too - but unsure if the movement is the same as a driving controller or if different calibration would be needed. The old mice had much lower DPI than modern ones, I suspect the driving controller was even less again.

Link to comment
Share on other sites

Both, DC and digital mouse/Trakball are using a two bit code per axis.

The main difference is, that the DC has a very low resolution, just 32 changes on a full 360° rotation. So usually it cannot replace a paddle. The Trakball is much, much more sensitive (comparable to a paddle) and therefore has to be sampled about as frequent as a paddle. Instead of only once per frame for the DC.

I have done Missile Command Trakball hacks which support three different 2 bit codes (CX22, CX80/Atari ST mouse, Amiga mouse). So they all work the same, just with a different 2 bit encoding sequence

Edited by Thomas Jentzsch
Link to comment
Share on other sites

I wish there was a really decent breakout game with multiple levels and gameplay variety with full paddle support. Atari 2600 is a natural place for such games. The original Breakout games are... shallow. I would like to have that homebrew game: Belinoid with paddle support. If its kernel allows for that... Hopefully, one day...

Link to comment
Share on other sites

Most people skip because reading the paddle takes away precious kernel time (minimum 8 out of just 76 cycles ). So when you add paddle support, the game will have to look less impressive. And most people will not know why and probably blame the developer.

 

Here is the minimum code. You have to make sure that the *address* of e.g. paddle1 is an 1 byte opcode, e.g. $ea (nop) or $d8 (cld).

  MAC READ_PADDLE_1
        lda INPT0 ; 3
        bmi .save+1 ; 2/3
.save
sty paddle1 ; 3/2
  ENDM

 

While not much of a savings, if you're using DPC+ you can get the kernel requirement down to 7 cycles. No ARM usage required.

; prep datastream to hold paddle readings
    lda #<PaddleReadings
    sta DF0LOW
    lda #>PaddleReadings
    sta DF0HI

; in Kernel loop
    lda INPT0 ; 3
    sta DF0WRITE; 4 save paddle readings

; in overscan evaluate the saved readings
    lda #<PaddleReadings
    sta DF0LOW
    lda #>PaddleReadings
    sta DF0HI
    ldy #255
PaddleLoop:
    iny
    lda #<DF0DATA ; fast fetch mode is turned on to save 2 cycles per trip through PaddleLoop
    bpl PaddleLoop
; Y has paddle position

; Display Data
PaddleReadings: ds 200 ; adjust size based on how many readings of INPT0 your kernel will do
  • Like 1
Link to comment
Share on other sites

Would anyone have ten kittens if the Arkanoid clone was sideways? I remember the BRiX game using up quite a few resources just to get those nice vertical lines between bricks..

I wouldn't publish an Arkanoid game if it was rendered sideways.

 

Edit: Nor would I play it.

 

..Al

  • Like 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.

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...
 Share

  • Recently Browsing   0 members

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