Jump to content

Andrew Davie

+AtariAge Subscriber
  • Posts

    5,982
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by Andrew Davie

  1. LOL!..."per scanline"? None! One call per frame is all the music/sound gets... can be a few scanlines in length if necessary. The snow effect costs 10 cycles per *frame*... total. There would be no saving removing this. The music (during gameplay) needs to be a 1 call per frame system I'm afraid. The current system does a reasonable job (turn on the music during the game)... but the new system doesn't need to run during gameplay; only on the title screen so there's plenty of cycles available there. Say, 10 per scanline...? Cheers A
  2. Technically, you should be able to. Practically, what's probably happening is that the push delay that happens before boulders can move, and the movement of the firefly, mean that at some point during the process the game determines that the boulder can't be pushed into an occupied spot. So it aborts. I think this should be fixed, so I have it chalked-in as a fix for the next release. Thanks for reporting it!
  3. Boulder Dash® uses 16K of RAM, but the Harmony cartridge only has 4K of RAM. Boulder Dash® should work with the Krokodile cartridge.
  4. I would love to use original music. However, it must be stock-standard '2600 with no hardware support. Can anyone help me with this? Cheers A
  5. For those who missed it, a playable demo of Boulder Dash® was released the weekend of 17 July 2011. See http://www.atariage.com/forums/topic/184812-boulder-dash-r-demo-release/ for the binary. There are going to be a number of bugs and questions. I propose to collate those here, and indicate what action is proposed for each. So, please feel free to report/comment on bugs and help make the next release that much better. Cheers A Known Issues ------------ 1. Why doesn't it work on my Harmony cart? Harmony only supports up to 4K of RAM with the 3E bank switching format. Boulder Dash® requires 16K of RAM. 2. Does it work on my Krokodile cart? It should, though there has been one report of issues related to end of life glitching and random crashing. This will be fixed, if confirmed. A Krokodile cartridge was extensively used to test during development, so any glitches are either last-minute or a problem with a specific Krokodile cartridge. 3. The music on the title screen isn't the Boulder Dash® music. True. I called for contributions for music a long time ago. If you would like to have your name as a contributor to Boulder Dash® 2600, I could use some help getting a good version of the music going. It must use stock-standard '2600 capabilities -- no additional hardware trickery. 4. It runs a little too fast. Probably because I'm a whiz player by now The game can actually do about 4x the speed you're seeing here. It's easy to limit; let's get some consensus. As you go through the levels, the game gets faster. 5. Could not push boulder into gap above firefly. This is kind of a bug. It's happening because you must push the boulder for a short time before it moves. But meanwhile the firefly is moving and at the point where you try to push it in, the firefly is in the way. So the pushing stops and resets the push delay. I will probably fix this for the next release. 6. Issues with firefly collision detection - sometimes you kill the firefly inexplicably. This is a definite bug. Intended fixes for next release: 1. Push boulder above firefly. 2. Improvement in firefly collision detection. 3. Minor reduction in game speed.
  6. The Atari 2600 Boulder Dash ® demo is now available. The binary is attached to the first post of this thread. If you find a bug, please report it here. But first, RTFM! Let me know how it works for you. Finally... it's done! Cheers A
  7. Although the demo contains the "hardest" two caves -- Funnel (O) and Apocalypse (M), all of the caves have been implemented. Here is a short video clip briefly showing each of the 16 caves... with a few bonus bugs The first 10 seconds of the video is corrupt because YouTube doesn't like my file format. But the rest is OK. I'm working on a few last-minute speed improvements, colour changes, and bug-fixes. Not long now...
  8. It's a fully functional, free, playable demo of two caves of Boulder Dash® -- released with permission from First Star Software. The demo has the two most difficult caves installed (in terms of difficulty in programming on the '2600). It is not a retail version. You don't pay anything. It's totally free. Two more sleeps! Cheers A
  9. Please contribute bug reports to http://www.atariage.com/forums/topic/184968-boulder-dashr-bug-reports/ Atari 2600 Boulder Dash ® Thank you for checking out our implementation of First Star Software's Boulder Dash ® on the Atari 2600. We are Andrew Davie and Thomas Jentzsch, joint programmers. Together, we have been working on-and-off on this game for about six years. The program is 32K in size, though it can nominally fit in 16K. This demo version includes the most challenging two levels of the original version, those that push the capabilities of our program to the limit. It demonstrates all of the 'creatures' and 'features' available in the original game. This includes butterflies, fireflies, an amoeba, magic walls and of course boulders and diamonds. We would like to acknowledge First Star Software's role in bringing this to you as a free playable version. Throughout, we have had contact and support from First Star Software, Inc. in our efforts to develop this game. Boulder Dash ® is their intellectual property, and it is with gratitude that we acknowledge their generosity in allowing this version to be distributed to the Atari community free of charge. Please respect their ownership of the Boulder Dash ® property. Andrew Davie -- andrew@taswegian.com Thomas Jentzsch -- July 2011 ================================================================================ ======== Controls ======== Special Switches ================ ABORT GAME Hold down RESET and SELECT switches (Stella: F1+F2) at the same time. SUICIDE Sometimes you get stuck, or make a mistake, and want to re-start the cave. Except for waiting until the time runs out the only way you can do this is by suicide. Hold down RESET switch (Stella: F2) to kill Rockford. NTSC/PAL TV Right difficulty (Stella: F7/F8) switches between NTSC and PAL versions. There are trade-offs between each. The NTSC version has nicer colours. The PAL version has more processing time. So, you might say the NTSC version looks better and the PAL version is faster. Thomas and I have different preferred versions. They both play OK. MUSIC Left difficulty (F5/F6) toggles the music on/off during game=play. The original did not have music, so this option is off by default. Moving Rockford =============== Joystick UP, DOWN, LEFT, RIGHT move Rockford BUTTON + Joystick GRAB/SNATCH in the direction of the joystick. You can grab diamonds and snatch out soil without moving to the square by holding the button and then pressing the direction. Rockford will not move while the button is pressed. Looking Around ============== You can look around the cave without moving Rockford by holding down the SELECT switch (Stella: F1 key) and using the joystick. The background colour will change to a dark cyan when you are looking around. The cave timer still counts down during look-around. To quit from the look-around mode, release the SELECT switch. The view will scroll back to the location of Rockford. You may move immediately, even when Rockford is not visible on=screen. After Dying ----------- BUTTON press the joystick button to continue -------------------------------------------------------------------------------- =========== THE DISPLAY =========== The top line has three display types, as described below. -------------------------------------------------------------------------------- DISPLAY TYPE 1: Player/Lives/Level The display/scoring area shows this display when first starting, or resuming after death. This display shows the player number, life counter, and cave level. A. PLAYER NUMBER ================ When first starting a cave, the display shows the player number (top left). This version of Boulder Dash ® only allows for a single player so this is always "P1". B. LIFE COUNTER =============== The number of lives is displayed top-middle, alongside Rockford's head. You start with three lives, and you lose a life every time you... a) Have a boulder or diamond fall on you b) Touch a butterfly c) Touch a firefly d) Are too close to an exploding firefly or butterfly. e) Commit suicide (pressing RESET) f) Run out of time for completing the cave If you lose a life while the time is still running, Rockford explodes and dies, and the cave continues. Press the joystick button to continue. C. CAVE LEVEL ============= The top-right of the display shows the cave letter followed by the level number. Cave letters range from A to P inclusive. These correspond exactly to the original Boulder Dash ® levels, with the exception of a small reduction of the number of butterflies in level M. This demo version contains two caves ("Funnel", "Apocalypse"). Level number ranges from 1 to 5. On completion of all caves, the level number is incremented and the caves are repeated. -------------------------------------------------------------------------------- DISPLAY TYPE 2: The score. The score is displayed center top of screen, as a 6-digit number. You earn points every time you collect a diamond, based on your current cave and level. You earn bonus points if you have time remaining at the completion of a cave level. The score is briefly displayed every time you earn points. -------------------------------------------------------------------------------- DISPLAY TYPE 3: The diamond counter, and the remaining time counter. A. DIAMOND COUNTER ================== The diamond counter is shown top-left of screen and has two modes. 1. When shown alongside a diamond shape with a "-" inside it, the number indicates the number of diamonds you must collect before the exit door will open. 2. When shown alongside a diamond shape with a "+" inside it, the number indicates the number of diamonds, MORE than the required number of diamonds for the level, that you have collected. B. TIME FOR COMPLETION OF LEVEL =============================== The time for level completion is shown at top-right of screen, and counts down to 0. You must complete the cave (collect all the diamonds and reach the exit door) before this timer runs out. For the last 10 seconds of time, a sound with increasing pitch will play. If you do not complete the cave in time, you will lose a life. The speed of the timer count-down is based on the level. -------------------------------------------------------------------------------- ========= GAME PLAY ========= Snatch/Grab ----------- Rockford can collect diamonds (or dig dirt) in adjacent squares through the use of button + joystick direction. When this combination is used, the square in the given direction (if it's a diamond or dirt) is 'grabbed' by Rockford. Pushing Boulders ---------------- If a boulder is in your way, you can push it to the left or right by placing Rockford alongside it and moving towards the boulder. When the boulder moves, Rockford moves to the square where the boulder was. You can also push boulders without moving to their square; hold the joystick button down as you are pushing, and the boulder will be pushed without moving Rockford. You can only push boulders if there is a gap for them to move to. Bonus Life ---------- Every 500 points you get a bonus life. The bonus life is shown by a pattern of coloured dots in the background (cosmic ark star effect, for those who want to know how it's done). The effect stops after a few seconds. Running out of time ------------------- When less than 10 seconds remain on the time clock, an ascending tone is played every second. You better hurry! Collecting Diamonds ------------------- The aim of the game is to collect the number of diamonds shown in the diamond counter. You collect diamonds by walking over them (if they are stationary), or by grabbing them using snatch/grab. When you have collected sufficient diamonds (the diamond counter reaches 0), then the background will briefly flash white and the exit door will open. The exit doorstarts flashing when you can go through it. -------------------------------------------------------------------------------- ======================= CREDITS & LEGAL NOTCES ======================= Boulder Dash® is a registered trademark of First Star Software, Inc. The name and likeness of Rockford are trademarks of First Star Software, Inc. Copyright © 1984-2011 First Star Software, Inc. All rights reserved. Boulder Dash ® was created by Peter Liepa with Chris Gray. BoulderDash100.bin
  10. Not on any system I've tried. Stella starts up immediately and loads a ROM very quickly. Pressing Escape brings you back to the ROM launcher, where selecting another ROM again is very quick. I can start and stop several ROMs per second. I don't know how much faster it needs to be than that. OK, I'm a stella fan so don't get me wrong. But for me, at least... the most up to date version of stella takes 2-3 seconds to exit. It's incredibly slow. It makes using it as a development emulator a bit frustrating. As such, it would be much nicer if stella was started on the command-line by passing it a ROM file, that the escape key would exit... NOT go to the rom launcher. Sytem: Linux Ubuntu 11.04
  11. Just saw this. With the benefit of a bit of time behind me, and feeling like clearing the air... Firstly, the fun bit was done. It was a bit of a holy grail challenge, showing it could be done. The result is fantastic. With Thomas's help, all the original levels got to the stage where they were working and playable. The remaining things to do were mostly just spit and polish. Title screen. Good sound. Intermissions. a minor physics priority issue. But, you put spit and polish on something if you want to sell it. So, why didn't I? Because it's copyrighted property. The IP is not mine to sell. So, a deal needs to be done with the owners of the copyright. However, going down that path it turns out that my cut would, for various reasons, be roughly bugger all. And, having done at least 80% of the work to make it happen... I'd rather see an unrelased but emotionally pleasing game, than feel like all my hard work was being effectively given away for next to nothing. Why would I do that? Given I'd still have to put a whole lot of extra effort into doing that aforementioned spit and polish... I ask myself... isn't the easiest thing to do just abandon the project and not feel like I've been taken advantage of? I am not saying any proposed "deal" was unreasonable. The copyright owners were very reasonable in their approach and negotiations. They were pleasant to negotiate with, and respected my work. However, I AM saying that such a "deal" was so laughably unattractive in terms of the take-home for me... as to be not worth even considering. It's all rather complex, but let's say I would not be happy with any party getting a larger cut than myself... and actually nearly all interested parties would be getting a larger cut than myself. So it didn't happen. I still play with it a bit. Every now and then I pick it up and do a bit of programming. Lovely engine, beautiful abstraction from the hardware to (effectively) a character-mapped display system. Amazing that it does what it does, even to me. Cheers A
  12. I received a copy of this in the mail a couple of weeks back. I would just like to comment on the quality of the manufacture, and thank the people who have gone to such great lengths to make this available to all. It may not be a fabulous game, but it's there. The job done on bringing it to a complete product was truly excellent. I was quite touched when mine arrived in the mail. I'd recommend this for any NES collector.
  13. Eh? Not so! Each scanline has 76 cycles, full-stop. Currently the scanlines have a single colour load/store, followed by 6 sprite load/stores and finally a branch. These take 76 cycles. Removing a FRAME isn't going to make any difference/saving to the cost of each scanline. Go back to the source code, trace a single scanline. Count the cycles. Now, where are you going to get any cycles back from that scanline? Because you need a cycle or two to have a non-hardwired colour. OR, you need self-modifying code or clever bankswitching. Or some other code rewrite. CHeers A
  14. Well, those equates are just for convenience in reading the code. They're two-byte pointers to the location of the sprite data. So yes, you could add a .S7, and have the two-byte value pointing to the location of the colour data. Well the REAL question is; how are you going to find the cycles to do the colour load? The (.S7),y load would take 5 cycles. This is adding 3 cycles to each line (as the immediate colour load currently used is 2 cycles long). The cycles-per-line is already at 76 cycles, so you're over-budget. The real problem is... how do you find additional time on each scanline to change to a variable colour? My initial thoughts are you either use clever bank-switching so you can change the (),y addressing to abs,y (saving 1 cycle each?) OR you use some sort of self-modifying code so that the colour values are pre-written to the code before execution. Either way, fun and games. Cheers A
  15. Stella is GPL'd. I wonder what the rules are porting it to iPhone, putting around it a wrapper which serves ads and allows bin downloads, and getting income from the ads served and claiming the rest was free. Seems to be unreasonably profiting from the (free) work of others, to me.
  16. Yes, but to me that is all the difference in the world. It's close, but it looks noisy, with odd colours all throughout the image. I've seen exactly this sort of thing before when I was originally playing with dithering. I think the dithering method used causes effects which are quite noticeably bad. I do want to see your technique work better than Chronocolour... but I don't think it's quite there yet. One thing I do like is your use of different non-black background colours. I assume you're incorporating that into your distance algorithm. It's something I played with but only for fun, not something useful. By the way, Boulder Dash (2600) uses tri-colour line triplets (without rolling) to get multi-colour background graphics. That works pretty well, too. The neat thing about that system is that it doesn't stick with RGB; any three colours are suitable to produce other-colour combinations. Check out the youtube videos atari 2600 boulder dash if you're interested. Cheers A
  17. Nice to see you rising to a challenge OK, take the mario.bin as we've both done that one. Attached is a chronocolour one from wayback. Now look at the colouration subtlety around (say) the chin. The ear. In the new one there is no chin. No neck. Maybe an ear...? Look at the colouration of the face, detail around the eye. Look at the shading around the shoes. In the original, they look 3D. In the new version they look very flat-shaded. I think the custom palette is a great idea/challenge. I just don't think you're doing the dithering right. I spent a lot of time finding a good method, and I think that's the crucial step that your system is falling down on. Maybe. That's the item I think you were missing, but you say you are dithering. If that's the case, something is going very wrong. In any case, I think of the two marios, the original is way better. Maybe that's just me Keep up the good work! It's great fun to play and try to get the best images possible. Cheers A mario2.bin
  18. Enjoying watching your work on this topic. I especially like the concept of a separate palette for each line. BUT... I've had a look at the gallery and I think that there's an important part of the original system that you're overlooking. Basically, I THINK that I can produce an "original" chronocart which will look way better than any of these samples. Could you send me one or two of the images you used, so that I can compare like with like? I'll post my results on this thread. Thanks A
  19. http://www.atariage.com/forums/topic/22242-build-your-own-greeting-cart-can-you-type-make/
  20. Pretty much put any image you want on a cartridge as a 48 x 128 pixel Chronocolour image by following simple instructions to adjust the image to the right size and format, plonk it in a directory and type "make". Out comes a runnable binary. It's available on AtariAge somewhere or other.
  21. At my workplace we had a visit from a local politician -- in fact the premier of our state. That's a bit like a governor, for you USA-people. Top honcho. Anwyay, as I have an interesting display of old stuff at my desk, and I'm an incredibly interesting person... he stopped and we had a bit of a chat. He was interested in my old ZX-81 on display (a vintage computer from the UK), and he mentioned that he had an Atari at his home. "A 2600?", I asked, and he said "Yep!". So, I got to thinking that a neato present (and a bit of boot licking; we need his support) would be to do a BYO picture cart for him, with his face on it. And that's what I've done. Al's burning the binary, so I'll send that to him soon. Just wondering if anyone else knows of "high profile" 2600 owners? Also, how many people even KNOW about the BYO picture cart thing I did back in 2003 or so? Cheers A
  22. Yes, but it's the 70,000 people (0.001% of world population), who would kill you for it, that you have to be worried about. Cheers A
  23. C64 games were tested for bugs/crashes but not often for complete walkthroughs. Nintendo required a video tape of complete gameplay so you wouldn't have seen this sort of bug on a NES. Probably a bit of temporary commenting-out was left in accidentally, or perhaps even it never worked in the first place and I just forgot to test it. The linkages of the map were screwy in an attempt to 'hide' the pieces... at the time I thought I was being clever by allowing you to go E, but then to return you had to go SW. Now it just sounds borked. Clearly I screwed up in the final version, so sue me!
×
×
  • Create New...