Jump to content

SmittyB

+AtariAge Subscriber
  • Posts

    861
  • Joined

  • Last visited

Everything posted by SmittyB

  1. Seems like the only downside compared to the Dragonfly is that I'll have to go back to using the original power supply. This is all very exciting!
  2. Congratulations. A well deserved nomination.
  3. I'm thrilled to say that Plumb Luck DX has been nominated for the best 7800 WIP port in the 5th Annual Atari Homebrew Awards! Thank you to the nomination committee for the honour, and thank you to everyone who has played Plumb Luck whether it's to your taste or not. Remember to have your say and vote for your favourites before it's too late!
  4. Watched last night's show during work and I'm excited to see more Lynx stuff as somebody who's never used one. As for the controller I've always hated the SMS pad for the reasons shown. My suggestion for a cheap alternative would be the Konix Speedking (AKA Epyx 500XJ) as the 2 button version with a metal autofire switch on top is designed for the SMS and it would keep the Epyx connection. Not sure how practical it would be for long streams given its unusual shape, though I've not had problems using mine for hours.
  5. @Karl G check out this demo I put together to show the sort of thing you're looking for. It's doing it with tiles rather than sprites, but ultimately to the 7800 it's all the same thing so it doesn't matter. https://forums.atariage.com/topic/295423-animated-chars-with-characterset-from-memory/?do=findComment&comment=4339782
  6. Thank you for those kind words. I know it's been quite a few years at this point but I do still hope to complete this one day; I just hope when that happens you'll find it a satisfying experience.
  7. Thought I'd better post the current build before the end of the year. I haven't worked on this much recently but compared to the previous build there are now 95 levels and a set of sound effects provided by the AtariVox to make up for the current lack of TIA effects. Play on JS7800 PlumbLuckDX_221228_1854.a78
  8. The expansion port on the first batch of 7800's was added with the idea that it could be used to integrate a keyboard or I/O with a laserdisc player with the 7800 acting as a remote controller. As it quickly became apparent these add-ons wouldn't happen the port was removed. A lot of people have asked about using the expansion port over the years but it was never intended to do much and so can't do data transfer in any significant volume so any kind of storage would have to happen over the cartridge port anyway. The next problem is that few people have 7800s, fewer still have both a 7800 and working laserdisc player, and the final nail in the coffin is that there are absolutely zero laserdisc pressing plants left in the world so even if you could theoretically create all the hardware and software you'd have no way of actually putting it on disc so it's a moot point. Even shifting sideways to a more common medium like tape is just not worth the cost and hassle when compared to the modern cartridge formats we have access to.
  9. 60FPS is definitely not the limit as anyone with a 144hz monitor can tell you. I believe the actual upper limit of human perception is around 1000FPS but only under specific conditions. Sure there are diminishing returns past a certain point, but as we've not reached that point consistently it's still the case the bigger numbers are better.
  10. Wireless radio frequency? What a time to be alive 😁
  11. Based on UK law the name 1942 is too generic to be protected, however the combination of name and font will be. The use of the 633 Squadron theme is probably more problematic, but given other games have used it (almost certainly without permission) I doubt anyone would really care. All that being said I'll throw my hat into the ring with an alternative name with a British spin - "1941: Battle over Medway". One could argue the P-38 is just a badly drawn Mosquito 🤫)
  12. I'm not able to look at the code at the moment but that sort of thing is usually where you have whitespace in front of your label names so 7800basic thinks it's a command, or where you're using different casing when typing up the commands (I often mistakenly capitalise the first letter and have to go back and change it).
  13. I've had a quick look in your source and the problem with the 3 static shots is that their locations in memory aren't contiguous so that when you loop through them as an array it's actually writing to 1 bullet location and 3 unused spots in memory. I modified their locations quickly and it appears to fix that problem. dim pBullet1_x = $22A0 dim pBullet2_x = $22A1 dim pBullet3_x = $22A2 dim pBullet4_x = $22A3 dim pBullet1_y = $22E0 dim pBullet2_y = $22E1 dim pBullet3_y = $22E2 dim pBullet4_y = $22E3
  14. Thanks very much. I do intend to finish this one day with everything I've learnt in the past 8 years of 7800 development even if it means tearing up a lot of what I've done previously.
  15. The biggest improvement I can see is in how you're reducing your random values to the range of 1-7. Instead of running through each of those checks you can store your random value to a temp variable, then use a bitwise AND of 7 to cut it down to a range of 0-7, and then check that if it's zero you can try randomising it again or set it to something specific. Once that's done, store it back to your array and then move on to the next one. Doing the above then let's you easily loop through all of your lanes by incrementing which index in the array you're storing to when you get a valid random value. Thirdly, I'm not sure how good 7800basic is at 'remembering' which array entry you're working with, so essentially every time you mention an array entry it has to reload memory. You can avoid that by reading the array once into a temp variable and working with that. Lastly, this is the sort of thing that assembly would be really good at optimising if you want to give it a go.
  16. New build. Changes include - Progress is correctly saved at the end of each level instead of just when getting a high score. Added a transition from the game screen to the high score screen. Pressing RESET goes to the high score screen from the game screen. Colours are corrected for PAL consoles. Level count has increased to 66. Up / Down skip 10 levels at a time in stage select mode. If you complete a level you must play the next one. (Prevents players replaying easy levels to build score). To do- Add / improve sound effects. Add AtariVox speech. Add more levels. Play on JS7800 PlumbLuckDX_220919_1425.a78
  17. There is no separate 'direct mode' on the 7800. Each object is either direct or indirect based on its display list entry and the difference is that a 'direct' object's graphics pointers are the address of the graphics data, and for an 'indirect' object the pointer is to a list of offsets (essentially a tile map) from the address set by 'CHARBASE' with which to get the graphics data. Nearly every 7800 game will use a combination of direct and indirect objects to draw the screen at various points.
  18. I don't think it was worth necrobumping a 17 year old thread to ask a question that could have been answered by first looking in the stickied homebrews and hacks thread which you posted in recently, and any separate question you might have should be in its own thread if it's significant enough to warrant it.
  19. That reader utility is such a good idea. I might have to copy it for future projects as a debug / cheating tool.
  20. The direct / indirect bit on a DLL entry doesn't affect the number of colours available to an object.
  21. Thanks. I actually have a spare colour available for the background but I decided to stick to 2 because I don't want it to be distractingly busy. Being able to use extra RAM to get around limitations like the tile limit and lack of transparency definitely allows it to look much better than it otherwise could.
  22. The post you quoted has all the information.
  23. I don't know much about the Lynx and it's not easy to compare them due to different design methodologies (with the Lynx having more in common with the Amiga), but as far as I know the Lynx is the more capable machine by far.
  24. It's been a while but here's a new build that as far as I can tell is working nicely. I had to go back and check what I previous posted to remind me of what I've changed. A reminder of the controls: Either fire button at the title screen to go to the game screen in stage-select mode. Left and right to select a stage in stage-select mode. Arrows indicate that you can select the next or previous stages, Xs indicate you cannot. Either fire button to select a stage and start the timer. Select console button to quit the stage (your high score will be registered if you got one). When playing a stage the left button places a tile, the right button speeds up the timer / slime. On the high-score entry screen up and down change the current initial, left and right select which initial to enter, fire buttons confirm high-score entry. Changes include - Added title screen music High score screen High score and progress saving Title screen transitions to the high score screen when idle You now have to complete a stage before being able to select the next one Icons on the sides indicate whether you can select next / previous stage Updated font graphics Updated Cursor graphics Updated title screen graphics slightly Fixed 1-frame flicker when tiles are updated in RAM General stability improvements Have just now changed the background colour hues to be random rather than fixed combinations (may go back to fixed values depending on feedback) The to-do list is currently - Save progress even if a high score hasn't been reached (though of that while typing this up) Add a fade transition from the main screen to the high score screen Add the ability to view high scores without getting a high score first or restarting Add PAL colours Add more maps Tweak map tile requirements Tweak scoring PlumbLuckDX_220811_2219.a78
  25. Without knowing the context of the rest of your code I think you want something closer to the below - for i=1 to 12 temp1 = cards[i] rem plotchars textdata palette_# x y [number_of_chars | extrawide] plotchars i 0 8 i 2 plotchars '=' 0 16 i plotchars temp1 0 20 i 3 next Generally you can't use an array in functions like that in 7800basic just because of the extra complexity required to interpret it in the background so we need to store the result into a temp variable before we read it. Next with the plotchars statements I've set the x positions to 8, 16, and 20 because assuming you're using 320a mode with 8 pixel wide characters each should character should be offset by 4 (as the positioning is still based on the 160 modes). the '=' sign is a string literal so we don't need to specify the length, but for the two numbers we need to define how many characters should be printed (I've assumed 2 and 3 respectively). Lastly it's important to understand that when we're specifying variables like 'i' or 'temp1' we're talking about the graphics data at that offset so if i=0 then that'll be whatever graphics data is first in your character set. For this reason I personally like to start with 0-9 then A-Z in all of my text so that there's a direct conversion.
×
×
  • Create New...