Jump to content


Popular Content

Showing content with the highest reputation on 04/14/21 in all areas

  1. 3 points

    Version 1.0.0


    This weekend, I decided to play with X16 BASIC using the emulator and wound up making an X16 adaptation/extension of a short program for the Plus/4 that appeared in 'The Transactor' journal decades ago. The program uses three parameters: "S" (squiggles/spokes/segments), "W" (wave factor), and "A" (amplitude). Using X16 BASIC's extensions in terms of bitmap drawing commands, it outputs a neat design with lots of color and a surprising amount of visual variety. The original Plus/4 program just plotted in black and white and had some built in limitations (and at least two bugs), but I decided to extend the program, add a menu, and upload it after I added color and decided these were fairly cool looking results from such a short simple BASIC routine. It strikes me as a cool demo because with just three core parameters, you can get an astonishing range of outputs. Of course, like many graphics demos based on stacking transcendental functions, there are combos of inputs where the functions will sort of fall apart and produce something akin to a kiddo scribbling with crayons , but there are also weird "islands" in the domain of possible parameter combinations where order re-asserts itself, both in terms of what gets drawn and how the colors play out. There are 4 'modes' of operation you can pick from the menu. You can specify inputs for S, W and A manually; the program can run a sequence with fixed S and A while incrementing W; there is a mode that tries to picks random parameters within several domains where the program produces nice outputs; and there's one that just reads the inputs from some "presets" in DATA statements. (You can of course add your own 'best of' examples by adding data statements between lines 432 and 499). I always considered myself a passable BASIC programmer, but this weekend showed me I'm really sort of rusty so please go easy on me if I did something inefficiently or especially 'dumb' in my implementation. The main output routine is extremely crunched (sorry, not sorry) and I did some further things to optimize from the original program for purposes of getting a bit more performance out of the main routine. Although it absolutely crawled on the Plus4, I think its fairly impressive on the X16 especially if you look at the sheer amount of sines, cosines, multiplications, and variable fetches /updates that occur during an entire cycle through the primary output drawing loops. The X16's 40 column mode (SCREEN $00) was used to key this in and format it, so its probably best if listed/ displayed/reviewed in that mode, Tested on emulator r.38, and I don't see anything in the pending updates for the next emulator release that would break anything here. If there are questions about why/how I did something I'll be happy to answer. In fact, if there's any interest in a more detailed write-up of this short and fairly simple program (e.g., section by section, and line-by-line), I would be happy to give it a shot, especially if there are folks new to Commodore BASIC that might find it useful. It seems to me there are many highly advanced programmers for the X16 posting on this site who are using assembly, C, and even languages they are developing themselves. Its amazing! However, its surely the case that part of the mission of the X16 is to get some newbies involved, and from where I sit, that really does mean getting some more content up here written in BASIC. Keeping that in mind, I'll probably be diving back into more old issues of The Transactor to do more conversions for the X16 and will continue to upload as long as I'm still having fun with BASIC. Cheers.
  2. 1 point
    If you are having a hard time getting cc65 development for the X16 working on Windows, I go through the straightforward process of using Cygwin to provide a GNU environment without having to start up any VMs. Of course, however, I do this all within a Windows 10 VM running on Linux, including running the X16 emulator, thus: RETROCEPTION!
  3. 1 point
    010 turboloader 033 frogger 098 commandos 155 cybernoid 2 and then having to mess with this to get rid of the ?LOAD ERRORs:
  4. 1 point
    I've had this version of Flappy Bird done to this point for well over a year now. Due to life reasons, I had to drop out of the X16 scene for quite a while, but I've got the bug again, and decided to dust off this old code and finish this game for the X16. It was written for R31 so a _LOT_ changed since then, and it's been quite a headache refactoring all of the various bit shifts into the various VERA registers, but it's back to the point where it compiles and runs correctly, so I should be able to start making forward progress again, and if I stick to my guns and stick to writing sloppy non-project-worthy code, I should be able to have a playable version soon. However, if my TYPE-A self wins, I'm going to spend the next 2 weeks refactoring the code into modules and different C files, etc, and have lots of work done with no visible progress in the game. LOL. Anyway, I wanted to go ahead and put this back out into the community that I'm working on this, and I may even do a YT video going through the code, or at least a dev vlog or something.
  5. 1 point
    Update Looks like TYPE-A me has won out. I’ve ended up spending most of my time refactoring my code into a project and using better coding habits. I’ve almost gotten rid of all global variables that don’t absolutely need to be globals, and most modules are now moved into separate files such as bird.c/.h etc. The fact that it's been so long since writing the original code has ended up being a good lesson because it’s like I'm reading someone else’s code. There were plenty of What was I THINKING? moments. The plus side is: now that everything is properly contained within its own circle of functionality, it's much quicker and easier to make use of these things in the main program. For example, I was able to quickly re-task the scoreboard as a 2-byte hex debug output tool so I can see values during execution if I need to. I have made progress in the game though. The joystick works. I was able to get the title screen knocked out in very short (for me) time last night, now that my functions don’t use global variables. Most of that time was spent implementing the "banners" - the actual title screen game loop took less than 5 minutes. The cool thing was that I was able to make the banner's position controllable by the joystick, and the scoreboard showed the X/Y coords, so I used that to choose the spot on the screen I wanted, and then just wrote the value into my code. No need to change + build + run, then go - hmm - 2 pixels up? (change build run).. no - two more pixels. (etc.) I also stumbled upon a neat method to make sprite slots dynamic so I no longer have to think about which sprite is the bird or the scoreboard etc. Each object just uses the next available one in the order I render them. Thich let me do something cool - I made the bird leave trails of the last 6 renders by just altering which sprite it rendered to on each frame. That little 'demo' aside, the nice thing is I no longer need to keep track of which objects use which sprite slots, so it's faster and easier to add/remove things as I see fit in my main game code. I can put 8 scoreboards on the screen as debug outputs, showing various things if that's what I need to do, and I don't have to account for the sprite slots in my other objects. Once I get the basic flow through all of the game states running (which also means I need to draw a few more sprites), I’ll upload the alpha .PRG so folks can try it out while I implement sound and other polish I'm planning.
  6. 1 point
    This is more important than I thought. Apparently the jiffies clock is updated very late in the kernal IRQ handler. When I started working on input code on my Flappy Bird game, I noticed tearing at the top of the screen whenever I hit keys on the kbd. This means that waitvsync() isn’t even getting control back until AFTER vblank is done. Not a big deal for me as I already plan to switch over to using the raster IRQ anyway, but I thought it might be useful knowledge to share this.
  7. 1 point
    I thought this might come in handy for people using the Adobe software family when designing graphics for old ChickenLips. It's an Adobe Colour Table (.ACT) file containing the default 256 colour palette. I found it useful when designing tiles in Photoshop. Let me know if there are any errors in it! Have fun. cx16.ACT
  8. 1 point
    I was watching the 8-Bit guy video about Tandy 1000 and had an interesting thought. The thing that gave them an edge was their gaming-friendly hardware that was compatible with the non-proprietary stuff as well. Once VGA started to take over, they lost the edge and were just another PC clone. But what if they had innovated? What could they have done to stay on top? The 1988-ish analog to modern accelerated video would have been a tile engine. If they’d made something like VERA but with 512k VRAM and a DMA engine to pipe textures / use system RAM for the tile maps of the layers, they could have matched VGA and blown it out of the water. It could default to supporting CGA and even VGA but also provide multi-layer tile scrolling and a crapload of sprites. It was lack of sprites that really dictated a lot of how PC games were designed. Plus, it would’ve taken much less CPU horsepower to drive this than the equivalent in VGA where you have to push a whole screen full of pixels every single frame if you want arcade style games. If Tandy had made such a move, could that have kept them in a strong position? The 1000 had enough install base to cause game developers to support their hardware already so I imagine the games would’ve been made to support this beast.
  9. 1 point
    I wonder if, back then, we somehow knew that business was the niche where the personal computer could thrive? All I remember thinking was wishful: I hope IBM abandons the PC market for good. That sort of thing. Totally irrational. And then a few short years later I get a 386SX-16 for college. So much for Commodore. Back then and now, I feel that the TRS-80 Model III has the most professional look of perhaps any computer, with the CBM 8032 a close second.
  10. 1 point
    Voxel demo screen View File This is a simple voxel demo written in 65c02 assembly. It has been tested in the r38 emulator. Press W A S D to move around. Press SPACE to quit. Submitter DrTypo Submitted 04/11/21 Category Demos  
  11. 1 point
    I sold mine off over the years as well. Regret it now, but I also just don't have the space for it all. I didn't like CoCo's when the first came out, it wasn't until many years later that I rediscovered them. I wish I had given them more of a chance, they are indeed really nice systems. Yeah, prices these days are crazy.... was a time not long ago nobody wanted these old computers and they were dirt cheap, now they are in such high demand... Makes me wonder how many made it into trash bins... Kind of sad really. That's why I am excited about the X16, new "old" hardware!
  12. 1 point
    Here is the source code. voxel.zip contains the 65c02 assembly source code with the necessary data files (tables, heightmap). You can assemble it using the cc65 tools. There is a .bat file for Windows users to assemble the thing. simpleVoxel.zip is the tables generator. It computes the tables and displays a test render. You can't move around. This is a VS2017 C++ solution. It relies on the OneLoneCoder Pixel Game Engine to display the render. This game engine fits in a single header file. If you want to easily make games on a modern machine in C++ you should check it out! voxel.zip simpleVoxel.zip
  13. 1 point
    Read about it here. For someone looking to port Wolfenstein 3D, Doom, or Marathon (Duke Nukem 3D or Quake may still be bridges too fat) or create an original first-person 3D concept for the Commander X-16, this might be worth looking into, considering that it appears to have been made to run on the Apple II, Atari 800, BBC Micro, and Commodore 64. Considering that the X-16 runs at four to eight times the clock speed. Then again, I haven't taken the time to calculate the average percentage CPU overhead involved in bankswitching the High RAM for this sort of thing. I also don't know whether or not it makes use of the undocumented/illegal opcodes...
  14. 1 point
    That looks great! But can you call it Flappy Chickenlips. Kthxbai. Perifractic, X16 Visual Designer http://youtube.com/perifractic
  15. 1 point
    It's so cringey seeing people pile on top of David more under that comment saying, "Why did he delete comments? Too sensitive for criticism?" Not enough faces in the world to palm.
  • Create New...

Important Information

Please review our Terms of Use