Jump to content
IGNORED

Arkanoid 2600?


retrogoober

Recommended Posts

I'd like to play both of these Arkanoid clones; Pong games are my favourite :)

 

Eshu's port is looking awesome!

 

Loon also had an awesome build where I could percieve no flicker, but I play on a real TV and not LCD; I also don't fancy the Stella debugger (comes in handy when it's broken) so I'm never stepping through, searching hard for the flicker (kind of silly); I go by what I can actually see playing the game :)

 

The no flicker build was awesome, I hope Loon completes it when he is done with his current isometric game (also looking awesome) :)

 

How about a game where you escape from Paddle Hell instead? The bearded ladies from Beat 'em & Eat 'Em lob rocks and laser blasts. The object is to reach the top of the screen via the moving exit. Hearts give you bonus points. This is just a concept so no game over or more difficult levels :)

 

post-13304-0-73024300-1399485761_thumb.png

paddlehell.bin

  • Like 3
Link to comment
Share on other sites

 

How about a game where you escape from Paddle Hell instead? The bearded ladies from Beat 'em & Eat 'Em lob rocks and laser blasts. The object is to reach the top of the screen via the moving exit. Hearts give you bonus points. This is just a concept so no game over or more difficult levels :)

 

attachicon.gifpaddlehell.png

attachicon.gifpaddlehell.bin

Wow! :) This game is incredible and creative right now! I really like it - this is comming out first at my next Pong party - awesome, and more interesting than Arkanoid! :) You come up with some really really wild game ideas! :)

  • Like 2
Link to comment
Share on other sites

  • 2 months later...

This IS beautiful work, any updates?

 

 

Here's a sneak peak of something I've been working on - it's just a kernel test at the moment really - I ran into a couple of bugs in stella, so theres two binaries attached, one for stella and one for the real machine.....I'm due to work on the proper ball movement and bat collisions next, the ones in this version are not how I plan on implementing it, they are a bit buggy but I need to rework all the code for different speeds of the ball etc...

 

If anyone does have a chance to test it on real hardware - I need to make sure the paddle read is working ok, seems fine on my hardware, but my paddles are bit jittery anyway so it's hard to be sure - Omegamatrix mentioned issues with paddle reads and early hmove here: http://atariage.com/forums/topic/223653-maintaining-p0-horizontal-position-after-previous-resp0/

 

I'm not planning to do an exact clone of arkanoid as I prefer to do things in a way that suits the 2600 - the enemies won't go into the brick area or cross the same scanlines as I'm flicker averse, also multi-ball will only have two balls and a few other changes I'm sure....

 

The bricks are just a random mix of colours at the moment to test the kernel - it supports three different colour bricks per line with some limitations

 

Excuse the programmer graphics :)

 

The screenshot below is with Stella's NTSC ratio set all the way down at 81 - this is about the ratio I see on my screen.

 

attachicon.gifparanoid_0.01_stella.bin_1.png

 

Link to comment
Share on other sites

  • 8 months later...

I do want to get back to this at some point, as I think it's a realistic project for me to actually get done, but no sign of having the time to do so anytime soon :(

 

Anyway I did get a little further than the last .bin I posted, so guess I may as well post up the latest while I'm here.....

 

 

brk0h.bin

  • Like 3
Link to comment
Share on other sites

  • 4 years later...
  • 5 months later...

 We'll be playing Paranoid on tomorrow's (Sun Jun 14) ZeroPage Homebrew stream LIVE on Twitch at 11AM PT | 2PM ET | 6PM GMT! Hope everyone can watch!

 

Games:

  • Like 5
Link to comment
Share on other sites

3 hours ago, stephena said:

Odd that Stella doesn't automatically recognize this as a paddle game.  We will look into it; for now you'll have to turn on paddles manually.

Turning on paddles manually didn't work for me with Stella 6.1.1, either. It worked okay with Stella 5.0,2 on the same MacBook, however. 

Link to comment
Share on other sites

4 hours ago, Karl G said:

Turning on paddles manually didn't work for me with Stella 6.1.1, either. It worked okay with Stella 5.0,2 on the same MacBook, however. 

 

In case anyone wants to know, turning it on manually worked for me with 6.0.1.

Link to comment
Share on other sites

It works fine if you set paddles manually in current Stella (6.2).


Anyway, there's a bug that cause the paddle to jitter badly if you enable the developer options, and in particular "Drive unused TIA pins ..."

options.thumb.png.5ce066d2fb1660a175112a030b26812e.pngdeveloper.thumb.png.5a4afc7f0642e1d7afaef03a42dc29ce.png


This typically indicates a missing "#" in front of a constant in the source code, and it's the case here too:

In bank 1, address $f1d5 there's a "sbc $0f"* that was obviously intended to be "sbc #$0f". Changing the opcode at that address from $e5 to $e9 fixes the problems.

debug1.thumb.png.48e30f7b779659d06519d4bf89df7621.pngdebug2.thumb.png.a24b7f5c9c444d82a9ddbac82d730c0c.png

 

Note that the disassembly in the debugger actually shows "sbc $1f" at that line before the fix. I guess it has to do with the fact that $1f is a mirror of $0f (for read accesses).
@Thomas Jentzsch (I think this part of the stella code is your area), maybe it should show the actual value in this case, as there's no read register defined at that address?
 

Edited by alex_79
  • Like 2
Link to comment
Share on other sites

40 minutes ago, alex_79 said:

It works fine if you set paddles manually in current Stella (6.2).


Anyway, there's a bug that cause the paddle to jitter badly if you enable the developer options, and in particular "Drive unused TIA pins ..."

options.thumb.png.5ce066d2fb1660a175112a030b26812e.pngdeveloper.thumb.png.5a4afc7f0642e1d7afaef03a42dc29ce.png


This typically indicates a missing "#" in front of a constant in the source code, and it's the case here too:

In bank 1, address $f1d5 there's a "sbc $0f"* that was obviously intended to be "sbc #$0f". Changing the opcode at that address from $e5 to $e9 fixes the problems.

debug1.thumb.png.48e30f7b779659d06519d4bf89df7621.pngdebug2.thumb.png.a24b7f5c9c444d82a9ddbac82d730c0c.png

 

Note that the disassembly in the debugger actually shows "sbc $1f" at that line before the fix. I guess it has to do with the fact that $1f is a mirror of $0f (for read accesses).
@Thomas Jentzsch (I think this part of the stella code is your area), maybe it should show the actual value in this case, as there's no read register defined at that address?
 

Awesome thank you - I wonder if this is why it's quite so jittery on my real system, my problem is I can't get rid of my paddle jitter, so I assumed it was just that...

Link to comment
Share on other sites

58 minutes ago, alex_79 said:


@Thomas Jentzsch (I think this part of the stella code is your area), maybe it should show the actual value in this case, as there's no read register defined at that address?

Not sure what you mean. It shows $1f (which is a mirror of $0f, which is unused). What else should be displayed there?

Link to comment
Share on other sites

13 hours ago, Random Terrain said:

How do you start it? Nothing happens in Stella when pressing the space bar.

13 hours ago, ZeroPage Homebrew said:

Happened to me too. It's a paddle game, you'll have to click the mouse button.

Hm... by default "paddle 0 fire" is mapped to "space" too.

Link to comment
Share on other sites

20 hours ago, eshu said:

many years since I last signed in and progress is slow, but may as well post an update bin of wheree I'm at so far....

Definitely was worth waiting! :thumbsup:

 

What I am currently missing most is some feedback when you collect a power-up.

  • Like 1
Link to comment
Share on other sites

50 minutes ago, Thomas Jentzsch said:

Not sure what you mean. It shows $1f (which is a mirror of $0f, which is unused). What else should be displayed there?

I'm not sure either...?
I just found a bit odd at first to see "sbc $1f" on the disassembled line and "e5 0f" in the corresponding byte sequence.
Never had that feeling when a register name is shown instead of the address.
e.g "lda INPT0" might correspond to "a9 08" as well as "a9 18"

 

But it makes sense now that I thought a bit more about it, and I'm fine with the current behaviour.

 

Link to comment
Share on other sites

1 hour ago, eshu said:

Awesome thank you - I wonder if this is why it's quite so jittery on my real system, my problem is I can't get rid of my paddle jitter, so I assumed it was just that...

That sort of bug causes issues on real hardware only in rare cases, so the jittery paddle on your console is probably due to the controller itself.


The purpose of the Stella developer option that drive bits 0-5 randomly on TIA reads is to make that bug much more evident than it is on real hardware, so that it can be identified and corrected. Many original and homebrew games have those bugs and that's why the option defaults to "off" in "player" settings in Stella.

 

A great description of what's happening on real hardware can be found in this post by supercat, and in particular the last few paragraphs:

Quote

For a device to put data onto the data bus requires some moderately-beefy transistors. In designing the TIA, Atari only included output transistors for two of the data bus pins, D6 and D7. Consequently, when a read cycle is performed on the TIA, it's the only device that does anything with the data bus, and it only drives two of the bits. So what happens with the others? Nothing, at least not deliberately.

 

If a signal isn't driven high and it isn't driven low, what will happen to it is anyone's guess. It's possible to design a system so undriven signals will be weakly pulled high, or weakly pulled low, or weakly held in whatever state the seem to be in, but the 2600 doesn't do that. One might think of the state of an undriven wire as being like a feather sitting on the ground. If nothing disturbs it, it will remain wherever it happens to be. On the other hand, there's no particular assurance that nothing's going to disturb it.

 

In practice, undriven bits on the 2600 usually seem to keep the last state they were driven with. Many things can affect this, though, and good design must not rely upon such behavior. Otherwise, if using EPROMs, one may end up with things like games that work in with some brands of EPROM but not others, or even games that work the dark but not when the lights are on (light falling on an EPROM may slightly nudge undriven signals). Even if a game that relies upon such behavior seems to work today, there's no guarantee that it will work tomorrow.

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, alex_79 said:

I'm not sure either...?
I just found a bit odd at first to see "sbc $1f" on the disassembled line and "e5 0f" in the corresponding byte sequence.
Never had that feeling when a register name is shown instead of the address.
e.g "lda INPT0" might correspond to "a9 08" as well as "a9 18"

 

But it makes sense now that I thought a bit more about it, and I'm fine with the current behaviour.

Ah, now I got you. IMO its a bit odd and should better be fixed.

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