-
Content Count
1,152 -
Joined
-
Last visited
-
Days Won
1
Posts posted by mksmith
-
-
Looks great metalbabble - will have a game of this soon!
-
1
-
-
Thanks to @cimmerian showing me the debugger I've investigated the cause of not working on release hardware (massive frame overrun when starting). I've provided him with a new build to test and will release it once he gives me the go ahead.
So initialising DPC+ ram, tiles, player and beams all at once appeared to be the issue. So what I've done is add an initialisation routine with runs for 100 frames (leaves a bit of room if required). During this I set everything up a frame at a time (the DPC+ ram clear takes about 16 frames to process for example - each row of tiles on the map). I've done a similar thing when destroying tiles after the secondary beam finishes. Anyway during this period the player now flashes identifying the game is about to start so it all fits together nicely.
-
1
-
-
Hey guys - all controls are with the joystick only - so no fire button (I've actually yet to play with a joystick myself - just the keys).
Jumping is essentially automatic:
- you jump off the edge and depending on whats in front of you, you will jump across and hang or drop and hang
- you can climb down backwards into a hanging position then move left/right to jump across (again depending on whats in front of you).
- there is a short jump (between 1 tile gap) and a longer jump (between 2 tile gap).
Hopefully that helps. I'll add this to the top.
-
1
-
A new release is now available in the first post. Spent the whole day cleaning up, reviewing and optimising code which has reduced frame overruns to none (hopefully!!).
-
2
-
-
@metalbabble - thanks getting there hopefully soon!
-
@NostAlgae37 - thanks! Would love a bit of variation if I can just not sure how that could work.
@cimmerian - wow that would be great! I'll PM you.
-
[ON HOLD]
So DionoiD has now released his WIP of Tower of Rubble and his take is amazing to say the least! Great visuals, music and game play really makes it a fantastic Atari 2600 conversion. So for now I'm going to leave this to one side - I might pick up the game to maybe do something different down the track. I'm also making the source code available if anyone wants to make use of anything.
Tower of Rubble
How long can you survive on the lethal TOWER OF RUBBLE as it crumbles and rebuilds itself around you?
This is my first Atari 2600 game written batari Basic and DPC+ as a way of learning to code the Atari which I have recently returned to after a very long hiatus. I started coding just before Christmas so about 4 weeks worth of work so far.
How to play
Control the player with the joystick only (no fire button) moving left and right to run across the tiles and pushing up and down to climb. Learning to jump is key to surviving the tower and is essentially automatic:
- you jump off the edge and depending on whats in front of you, you will jump across and hang or drop and hang
- you can climb down backwards into a hanging position then move left/right to jump across (again depending on whats in front of you).
- there is a short jump (between 1 tile gap) and a long jump (between 2 tile gap).
Currently a basic mechanics of the game is complete and the following is essentially complete:
- the player can run, jump, climb and hang around
- the main beam drops tiles randomly
- another beam destroys tiles and sends them crumbling into the water (moving from the outside-in)
- some basic sounds (walk, jump, death)
- pause game with Color/B&W button (press fire to continue)
- game currently ends and pauses for a period of time before returning to title screen (you can restart directly after a short pause here by pressing fire)
There is still a number of things to finalise:
- test on real hardware (Harmony cart on it's way)
- balancing - game runs quite quickly ATM
- add some variation to the tiles (currently causing a few frame issues so not sure I will be able to do it)
- sound and music - always an issue for me but we'll see how I go!
- horizontal beam - will need to look at drawing this with the background (I believe?) - have about 900 bytes available in the bank I'm using for the beams.
- other beams - there are a couple of other beams which I need to investigate which drop and clear tiles slightly differently
- game over notification - still deciding on whether to add this as it will explain your death (would love to overlay but doesn't appear possible)
- any remaining bugs
- would love a 2 player version - I've partially coded it so this may be possible - not sure how may frames might be left though
Any feedback would be very much appreciated.
Real Hardware
17/01 - Currently it appears the game doesn't work on real hardware when launching off the title-screen (frame overrun) - will investigate.
18/01 - A build has been tested by @cimmerian which has fixed the launching issue but I still have a minor overrun with the crumbling beam to sort through
21/01 - This build should now run on hardware without any frame overruns [TBC]
Downloads
20190121 - all frame overruns should now be removed (Stella is showing no overruns) as I've fully split the game initialisation (start) and beam completion (ie. main beam - adding tile, crumbling beam - removing columns) over multiple frames. This should set me up for adding the next horizontal beam (fingers crossed).
Older builds
20190117 - this release includes some sounds (Walk, Jump and Death), a number of optimisations to provide better/faster access to the ram bank, reduced cross-bank access (found 1 or 2 not required) and cleaned up a lot of no longer used code. The game runs a lot smoother and seems to have removed most/all frame overuns (finger crossed).
20190115 - Initial WIP release
-
3
-
I would love some sort of ability to write to the screen. Change of level, game over messages etc would be awesome!
-
Thanks guys - yeah using VbB so will check out bookmarks. Would be great to have that ability though.
@Lillapojkenpåön - I've got a bit of a process built now (see here) but would love to see any other examples of the sprite/color stuff. bB has some interesting things you can do but also what you have to work around. The biggie for me now is the 256b limit for data tables and whether there is a way to work around that - otherwise there is a bit of if then checking to work out the data pointers. I did find a macro can give a bit of flexibility around setting stuff from pointers:
macro SetPlayer0Frame rem {1}=datapointer {2}=frame rem set data pointer asm LDX #<{1} STX temp5 end rem set frame player0pointerlo = temp5+({2}*Height) asm LDA #((>{1}) & $0f) | (((>{1}) / 2) & $70) STA player0pointerhi end end macro SetPlayer1To9Frame rem {1}=datapointer {2}=spritenumber {3}=frame rem set datapointer asm LDX #<{1} STX temp5 end rem load sprite pointer asm LDA #<(playerpointers+({2}*2)) STA DF0LOW LDA #(>(playerpointers+({2}*2))) & $0F STA DF0HI end rem set frame DF0WRITE = temp5+({3}*Height) asm LDA #((>{1}) & $0f) | (((>{1}) / 2) & $70) STA DF0WRITE end end -
Hi,
I'm working on my DPC+ game and it's all starting to get a bit large to easily edit. Can you separate each bank's code into it's own files and merge it back together on compile? I've looked at include, includesfile and inline and these don't appear to work in this situation. Any suggestions?
Thanks!
-
Nice!
-
Thanks guys - yeah looking to overlay the game over messages on the existing screen as it seemed to be an easier way to do what I wanted.
Guess i'll try using sprites to do what I need.
Thanks again!
-
Nice! Has a really good feel to it and the graphics are really well done!
Will look forward to how this progresses!
-
1
-
-
Hi,
Not sure if this is possible but can you use this to overlay an existing screen? For example show a game over message?
Update: after adding in a titlescreen for my game it was a really easy process - had to shrink down some stuff in size to fit in most of what I wanted. After looking over the code I believe I might be able to grab parts of it to help add a game over message - will check that out tomorrow.
-
HI,
I'm currently working on a platform game for DPC+ and have a lot of animation for the player - this is exactly what i'm looking for to create a animation engine to go with it.
One question - how can I change the pointer to another set of animations ie. moving, jumping, falling etc. I've played around with diming a variable and referencing a starting animation and then changing that variable to another animation in data but it doesn't change - i'm assuming the compiler maybe hard-coding this into the asm which would in some ways make an animation engine reasonably difficult.
Anyone who better understands pointers have any ideas? In the end I could load up all animation into one only data reference I guess...
Update: Maybe some further info here as well - maybe not possible to have separate animations
http://atariage.com/forums/topic/256849-re-use-player-sprites-without-duplication-dpc
Thanks!
-
Great thanks Random Terrain!
-
Hi everyone,
Interested in doing some programming for the 2600 - would this be considered the recommended version of batariBasic to use?
I've been trying to get some understanding of assembly but I've got a lot more experience with over the years with Basic (Amos, BlitzBasic, Monkey, Vb.Net etc). Wanting to see if I can get my idea started.
Thanks.
-
Hi,
Moving onto my next change (previous issue here: http://atariage.com/forums/topic/285092-light-sixer-left-joystick-issue/)- the Zener Diode protection.
Looking through the Service Guide Atari offered a direct replacement part CA018263 replacing C236 and C237. Now looking through the forums it is suggested to solder directly onto Pin 6 of the joystick and the opposite side to the nearest ground plane. This is obviously using potentially newer components (as noted at Console 5):
https://console5.com/store/atari-2600-total-refresh-kit-new-capacitors.html
Can someone please help confirm the actual parts no's and required configuration to make sure I get this one right?
Thanks!
-
Update: Finally sorted!
Removed and cleaned Joy 1 pins etc, re-attached and we are now working again!
Hooray! Now onto the next thing of installing the Static Modification Zener Diodes and trying to clean up the output which is has some blueish lines down the screen. Would prefer not to mod this one but one thing at a time!
Thanks for the help above too!
-
1
-
-
Finally got a chance to spend some time on this. So i've replaced the 4050 with a new one (and socketed it) and still no change.
I've now plugged in an open joystick in and tested continuity directly off the joystick connection pads to the RIOT and 4050.
With the RIOT both the direction pin and direction pressed respond on ground? correctly (pins 8-15).
With the 4050 I did discover that Joy2 responds on pin 7 and pin 8 ground when button pressed whist Joy1 responds on pin 9 but not pin 8 ground here (is that correct??)
Thinking I have a short or faulty capacitor somewhere? l think i'll remove the joystick port and/or start replacing parts.
-
Thanks SignGuy81 will try that next. Just rebuilt 2 joysticks and both definitely work in the right port.
-
It sounds more like to me that you have a problem with the joystick connector possibly a pin isn't making connection, makes sense seeing as the plug popped out and you had to push it back in something going on with the connection. Do an ohms check from the outside to the inside of the unit on the connector pins you will probably find one open. I would start with pin 8 which is ground so if you don't have that then direction or fire will not work.
Hi,
I've done a continuity check on all pins from the connector to the board - everything is still connected correctly, also no bent or misaligned pins. I've also followed each (specified) pin on the board down to the Riot and 4050 [Pin 8] and that gave me continuity. When I do an Oms (resistance??) check it eventually settles down to 000.1 on my multimeter.
Have yet to change-out the 4050 IC. Would any have any further suggestions I could try?
Thanks.
-
Thanks
It sounds more like to me that you have a problem with the joystick connector possibly a pin isn't making connection, makes sense seeing as the plug popped out and you had to push it back in something going on with the connection. Do an ohms check from the outside to the inside of the unit on the connector pins you will probably find one open. I would start with pin 8 which is ground so if you don't have that then direction or fire will not work.
Thanks will check that out!
-
Hi everyone,
Recently picked up an Atari 2600 light sixer. Had a few issues to solve (power jack, reset switch and cleanup of some heavy prior soldering on other switches) but eventually also found a faulty RIOT chip so replaced that and everything was working great. As I was about to finalise my testing the left joystick partially popped out and I pushed it back-in. Now the left joystick (and button) does not respond at all but the right joystick (and button) is totally fine.
I've tested the RIOT and TIA in my Vadar and everything is all good. I also replaced C236 (220pf 50v capacitor) based on some discussion here http://atariage.com/forums/topic/269595-right-joystick-port-always-firing-light-sixer/ and still no go. Others have mentioned replacing the 4050 IC (http://atariage.com/forums/topic/173081-light-sixer-issues/?p=2146573) but wanted to see if anyone had any thoughts before I proceed (newish to multimeters thus haven't yet tested things like continuity but there appears to be 5v on some of the pins I did in a quick check).
Kicking myself but I guess it would have happened eventually.
Thanks!

Batari Basic and the Standard Kernel Sprite Bank
in batari Basic
Posted · Edited by mksmith
Hi EvoMikeUk,
This might be of assistance to you:
http://atariage.com/forums/topic/229564-demonstration-of-reusing-sprite-data-inside-larger-sprite
I've used a similar process for my Tower of Rubble conversion (though for DPC+ which is slightly different in how you access the player pointers) - I've got 60 frames for the player.