Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Jestin

  1. Take to the Skies! (demo) View File This is an in-development game that I have been creating. It's main purpose is to aid in a set of tools I've been developing for creating VERA graphics resources (https://github.com/jestin/gimp-vera-tileset-plugin and https://github.com/jestin/tmx2vera), however the project has recently started to take on a life of its own. This is a very incomplete game (only one partially complete level, and no real goals), but should give a feel for how the graphics and game play will be. When more features are added to the game, I'll update this demo. Submitter Jestin Submitted 07/22/22 Category Games  
  2. Version 0.0.1


    This is an in-development game that I have been creating. It's main purpose is to aid in a set of tools I've been developing for creating VERA graphics resources (https://github.com/jestin/gimp-vera-tileset-plugin and https://github.com/jestin/tmx2vera), however the project has recently started to take on a life of its own. This is a very incomplete game (only one partially complete level, and no real goals), but should give a feel for how the graphics and game play will be. When more features are added to the game, I'll update this demo. This requires emulator version 41.
  3. https://github.com/jestin/asmM6502.vim I forked this project from repo that had a single commit 17 years ago, and was only just a mirror of a wiki post. I added 65C02 support a couple years ago, and today I decided to dive in and add a few more things. I don't know who else is doing 6502 assembly coding in Vim, but if you are, this should make it look a bit nicer.
  4. @ZeroByte I think you are correct. The problem was that the emulator was loading an older build artifact from my project repo rather than the fresh one that was put on the card image. Thanks for clearing that up and helping me figure that out. This sort of begs the question, what is the correct use of `-prg` and `-sdcard` together? I thought the point of `-sdcard` was to run using a card image as the filesystem. It never occurred to me that the host filesystem played any part once that was specified.
  5. I am having trouble loading an application with `-prg` when also using `-sdcard`. I captured two gifs to help show what I'm seeing. One was captured with `x16emu -sdcard card.img -prg AIRSHIP.PRG -scale 2 -joy1 -debug -gif with_prg.gif`, and the other with `x16emu -sdcard card.img -scale 2 -joy1 -debug -gif without_prg.gif`. This is with the same `card.img` file, so the only difference is whether I am using `-prg` or if I am using `LOAD` once the emulator is running. I should note how the first thing my application does it attempt to load additional resources from files on the SD card, however it should disable both layers before doing so (the "Loading..." text is made from hardware sprites). The case using `-prg` never actual runs, and is somehow loading up the incorrect player sprite as well. I suspect the loading of additional resources is the culprit. That all said, loading manually with `LOAD` still works fine.
  6. I created a pair of tools that I've been using to create and edit tile sets, tile maps, and bitmaps for the Commander X16 (or anything else that uses the VERA). The purpose of these tools is to allow you to use GIMP and Tiled for creating your graphics. The first tool is a GIMP export plugin that can output VERA compatible tile sets and bitmaps. This eliminates the need for post processing like is needed when exporting a raw indexed file that the GIMP does out of the box. It can also go a step further by generating a Tiled tile set file (*.tsx) that can be used to draw tile maps. Best of all, the plugin supports non-interactive mode, meaning it can be called from a command line or makefile, treating your GIMP project file (*xcf) as a source for your resources. https://github.com/jestin/gimp-vera-tileset-plugin The second tool is a command line converter from Tiled's tile map file format (*.tmx) to a VERA compatible tile map file. This is also intended to be called from a makefile, so you can just edit your maps in Tiled and rebuild. I've figured out a simple way to use Tiled's automapping feature in combination with a command line argument in my converter to generate collision maps based on the layers you export. These collision maps wouldn't load into the VERA, but rather the Commander X16's main memory, and you'd have to write the code to make use of them in your game. However, once all that is complete, collisions (as well as map interactions) become a by product of your map design. https://github.com/jestin/tmx2vera I've created a quick demonstration video of these tools, so you can get a feel for what they offer: To keep it short, I didn't go into collision maps, but I'll likely create a follow up video to cover that topic in depth.
  7. Oh yeah, I can really see the difference. One of these is running from the filesystem, the other from an SD card image. Definitely going to have to pre-load some loading screens into banked ram.
  8. Nice work! I've been wondering for a while how badly I've been abusing the ability to load content quickly on the emulator, afraid that the load times would be too disruptive on actual hardware. I still don't know what the actual time difference will be, but this update at least makes it clear that calling LOAD isn't free. I'll have to make sure to turn my layers off as I'm loading the maps and tiles, but I suspected I'd have to do that eventually.
  9. Wow! Looks great! Quick note to those who using the kernal `joystick_get` routine. It looks like both `JOY` BASIC command and the kernal `joystick_get` have changed. Previously the `A` register was used to pass the joystick number, 0 through 3. Now 0 means the new keyboard joystick, and 1 though 4 are for actual joysticks (SNES controllers). Tripped me up until I diff'd the docs. Other than that, my programs all ran perfectly! Excellent work, everyone!
  10. I for one appreciate the open communication and honesty in this update. It's disappointing to hear the about the problems, but I'm very thankful that there are backup plans being worked on. I wish I had the expertise to lend a hand, but I can clearly see that all the easily solvable problems have already been addressed, and all that remains are the parts beyond my own capabilities. This update was literally published while I was in the middle of developing my own X16 game, so I obviously want to see the project become a success. Great work so far!
  11. Wow. This is very noble of you, and I for one am grateful that this community has someone like you in it. It's impressive that you can will projects like the Commander X16 into existence fueled on enthusiasm alone. That said, I was also hoping you would be making a reasonable amount of profit for your efforts. Frankly, you deserve it, but there's another reason as well. Not to get into a macro-economical debate, but one of the benefits of capitalism is that it's supposed to put resources into the hands of those who have proven to best utilize them. You, sir, are one of those people. I feel the retro community would be better off with a wealthier 8-bit Guy who has more resources and more financial motivation to continue taking on inspiring projects.
  12. Thank you, @Perifractic,for this update and clarification. Posts like this give us all insight into just how difficult it is to bring a new product to market, and how much effort and thought the Commander X16 team has already put into the project. I think I speak for everyone in this forum when I say that we appreciate your contributions.
  13. For me, the Commander X16 has always been about education. You can look at it and see how it works. The parts are not abstract concepts implemented inside an FPGA. They are physical chips with datasheets connected by higher level block and circuit diagrams. I want the Commander X16 to be my 6 year old daughter's first computer. I've never given her a tablet or a video game console. I want her to understand what a computer is. I want her to see a computer with all its parts exposed. A kit will give her this. An FPGA will not.
  14. Welcome! You sound similar to myself, in terms of experience. I too, was too young to be involved with C64s and other 8-bit machines, and have always felt like there's several layers of abstraction between the coding I've done and the actual hardware. If you don't mind me asking, where is the "Land of Chocolate". Sounds like a nice vacation idea.
  15. Nice work! I spent the last 30 minutes "just seeing what this looks like". Nothing speaks better of a game than people getting sucked into playing it without intending to.
  16. Does anyone know when all the buttons on the SNES controller are supported? Looking at the documentation and the ROM code, I get conflicting information. First, there's the documentation for the JOY BASIC command. It tells me that only a single byte is returned as a bitmask for the pressed buttons. Since the SNES controller has 12 buttons, it appears that X, A, R, and L are unsupported. However, if I look at the ROM code, I find this documentation on the joystick_get subroutine which is used by the JOY BASIC command: This says that the A, X, L, and R buttons are returned, just in a second byte returned in the X register. A quick test with the emulator shows that you can call joystick_get directly and receive the additional buttons in the X register, so I know for a fact the full controller is supported from assembly. However, with even more investigation, I see that the joystick_from_ps2 kernal subroutine has no support whatsoever for the A, X, L, and R buttons of the SNES controller. It appears that if using a keyboard as a joystick, no buttons map to the additional buttons of the SNES controller. So far, my conclusions are: the full SNES controller is supported from assembly using the joystick_get kernal routine the X, A, L, and R buttons are not supported by BASIC's JOY command the X, A, L, and R buttons are not supported when using a keyboard as a joystick Can anyone here confirm or contradict these conclusions? Sorry for continuing an old thread, but I thought this might be appropriate here for anyone searching the site about joysticks and gamepads.
  17. Jestin


    I think Wikipedia has a photo of that (look at the background): https://en.wikipedia.org/wiki/Bil_Herd#/media/File:Bil_Herd.jpg
  18. I recommend this approach, especially if you ever plan on developing with others. Choose whichever editor you like (I use vim, so am obviously deeply offended by the mention of emacs here), but keeping the building separate from your editor is the key to working well with others. Makefiles are tried and true, and you can find editor plugins to run them for you, if that's what you want. This way you can switch out your editor easily if it doesn't suit you, but your build system remains the same.
  19. Both videos are great! I'm looking forward to the follow up CC65 videos. I've been learning 6502 by doing a project with acme, but I feel like I'm outgrowing it. Meanwhile, cc65 (or really ca65) feels very intimidating since I've never defined segments before. With acme, I just have a big `main.asm` where I import other files in the order I want them assembled. It's very peasant-level, but it's been working so far. I'd love to hear you explain how you structure your binaries, rather than just trying to divine it by looking at the XCI engine source code. Keep up the great work!
  20. Welcome! I don't think you'll find anyone here who will laugh at a MiniPet laptop. You will, however, find people asking for photos and details when it's done!
  21. This more or less sums up my real reason for being here. I want my kids to learn to code, and as stated previously, kids NEED graphics to get them interested. Meanwhile, the reason modern languages need the layers of dependencies and libraries is because the operating system and hardware have gotten so complicated. Placing a pixel on a screen isn't actually a thing that is allowed. Instead, you need to use a graphics library in conjunction with a windowing toolkit that runs on your window system which calls the OS to communicate with the graphics hardware's pipeline to put that pixel on the screen. It's really not the fault of modern languages; the computer is too complicated. When teaching kids graphics on a modern computer, you have to just hand wave a mountain of boilerplate code and ask them to just trust you that it is needed. You can't provide them with an explanation why it's needed because the explanation is simply too much for a beginner to take in. I'm probably among some of the younger members of this forum (got my first computer in 1997, running Windows 3.1), and I dealt with a lot of this hand waving. It was extremely frustrating, and I don't want my kids to deal with it. I'd like to show them how to put a pixel on the screen, and when they ask how it works, I want to be able to explain it in less than a minute. The Commander X16 will give me that, whereas a modern computers won't...no matter which language I use.
  22. @SerErris I had the same sticker shock. Since @Perifractic has stated that only a small amount goes to the the x16 team, it makes me question whether I will bother with this keyboard at all. Ideally, I'd prefer a set of keycaps that I can put on the keyboard of my choosing. I own several mechanical keyboards, but only one has hit even the $100 mark. Unless this keyboard is really something special, I'd feel like I'm paying $200 for a set of keycaps.
    I was just googling the z-machine file format standard when I stopped and thought "maybe I'm not the first person to think of this". Super excited to see this already here!
  23. The first is what's really required to do the second. Other than gVim, vim can only specify codes for terminal colors, so your palette within vim is completely dependent on the terminal it's running in. There are some vim plugins out there (mostly syntax highlighters that attempt to do the same thing with CSS hex codes) that do a best guess approximation for the terminal. When looking into it a few weeks ago, this seemed like the best option. I just haven't had the time to dive into it yet.
  24. It was a fun exercise. If I have time, I'd like to expand it in two ways: Add code to do a "best guess" approximation of colors from the palette. Right now it's just my own fiddling with terminal colors Add a command to set the colors from one of XCI's palette files Full link: https://github.com/jestin/vim-xci
  • Create New...

Important Information

Please review our Terms of Use