Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by SlithyMatt

  1. Thanks, John. This will be a long-term process, probably not being done until well after the the X16 ships, but I hope to have the first point-and-click adventure game that is available for it. If you ever wanted to try making a pixellated guinea pig, I'll be there for it!
  2. If anybody is interested in helping, I've set up a new Discord server to discuss game development: https://discord.gg/3B8n93 I most need help with designing 4bpp (16-color) bitmaps for the levels, and sprites for animation. If you are interested in doing some pixel art, come drop me a line.
  3. I've run into the same issue before. It appears that, at least with R37, that the kernal does not support saving from banked RAM. I have had to copy data to low RAM prior to saving, by reserving the space needed for the saved file. I have posted that as an issue on GitHub, and hopefully that gets addressed with the next release.
  4. I think the thing that perplexes me about it is why people want to do it with the X16 when there are other retro homebrew computers out there that primarily use a Z80. None of the legacy CP/M software is going to take advantage of the VERA, they are just going to be text mode, which can be accomplished with anything. This isn't the old days when you really only have one computer, like a C128 or Apple II, when it made sense to have an add on system to support non-native software.
  5. It's a bit hard to see at first, but the VERA doc does have it all documented. At boot, layer 1 is in text mode and layer 0 is not being used. So, you can peek at the layer 1 registers to see where the screen map and character set are, which thinking like tiles, are just a tile map and a tile set. So, if you do a PEEK($9F35) you will see the upper 8 bits of the 17-bit VRAM address of the beginning of the tile map, which by default is 0. There are no other bits for this address in the VERA I/O registers, which means that the tilemap has to be placed on 9-bit boundaries. So, by shifting 0 left by 9 bits, we still get zero, so we know that by doing a VPOKE 0,0,X will place the PETSCII character with the index value of X in the upper left corner. You can then set the background and foreground color of this character by pokeing the next VRAM address, $00001. Since it's by default white (1) on dark blue (6), we know the current value at that location is $61. Unless, of course, you haven't scrolled the startup logo past the top of the screen. At startup or reset, there is a magenta PETSCII triangle graphic character on a blue background, so at startup a VPEEK(0,1) will return $64 (or decimal 100) as magenta is color index 4. Things change a bit if you switch to 256-color text mode by doing a POKE $9F34,$68. Then the odd VRAM addresses in the tile map contain 8-bit color indices from the complete 256-color palette, and the background color is always black. If you wanted other backgrounds with 256 color PETSCII, then you need to start setting up layer 0 with a bitmap, tiles, or more text, and set the backgrounds of different areas of the screen to be whatever color you want, even on a pixel-by-pixel basis. I hope this isn't too much information, but I would recommend going through the VERA doc more carefully and trying out the different registers and seeing how they let you set up how VRAM is used and then start creating whatever you want on the screen.
  6. Have you considered doing a pull request to get this into the cc65 baseline?
  7. Just do a COLOR and whatever index you want to use from the 16-color palette (0-15). You can pass two arguments, and specify the background color. So COLOR 1,6 will get back the familiar white-on-dark-blue look. COLOR 15,11 will get you a trendy light-gray-on-dark-gray "dark mode" look. The only color you can't really use in mode $80 is black, unless you poke it into an index other than zero.
  8. If you are interested in doing pixel art, I am working on a project that needs a lot of pixel art, and you wouldn't have to be involved on the programming side. DM me if you want details.
  9. A quick update with some music by @m00dawg and speed control
  10. But what good is a retrocomputer without PCI Express and Thunderbolt?
  11. More progress, starting to get closer to real map mechanics, as shown in this demo:
  12. You know, I didn't notice until now that in my second program there were random PETSCII graphics characters in between the expected characters. It's like a weird Mandela Effect thing. They couldn't have been there before, could they? So this "Quote Mode" thing is weird. If I am programmatically printing something, why should it behave as if I am live typing into the BASIC shell? How would you just print out a quote character without triggering this behavior?
  13. The Monitor lets you do it, but that won't help you if you are running in a graphics mode.
  14. @StephenHorn I told you never to tell anybody about my special pills! Actually, I don't really spend a lot of time, just a few hours every night after I put the kids to bed. I am missing "Peak TV", for the most part.
  15. Hint, hint, @Michael Steil, that would be a great feature for the next/future version of the emulator.
  16. You need to compile using the Makefile, then it will be in the bin directory. Or, you can download a precompiled release
  17. Your assembler is not building the PRG properly. I would suggest using ca65 instead: https://github.com/cc65/cc65 PRG studio is specifically for creating programs for Commodore computers, and while the X16 has some similarity to the VIC-20 and the C64, it is not the same. The whole cc65 suite (including the ca65 assembler) has support specifically for the X16, and it is the assembler that the dev team actually uses to build the ROM. If you are building your program to be loaded at $0801, you don't need the ",8,1", it will be automatically loaded to the correct location. What you should see at $0801 is the tokenized BASIC for "800 SYS2061" and the executable machine code should start at $080d, with a JMP to your actual code starting at $0810. And like Stephen and I both said, using the built-in debugger is the way to go. Printing and peeking is a lot harder. Just run with -debug and hit F12. Then you should be able to see your code by typing in "d 810".
  18. Why are you trying to load this at $2C00? Have you tried running your code from $0801 instead? I'm not familiar with this assembler, so I don't know if you are doing the right SYS command to run this. Have you tried running in debug mode, with -debug? You can check to make sure your code is in memory where you are expecting it.
  19. Another demo update:
  20. Ok, it has something to do with the semicolon. If you omit the semicolon, you get newlines between each character, but the color keeps changing: If you put in the semicolon, all the characters are printed in a single line, and they are all red after the " 
  21. Very strange. Just trying to recreate from the interpreter shell doesn't work you can do a PRINT CHR$($22) and get a quote in the current color, do another color command, and it appears to take hold, as the next character you print comes out in the new color. So, this is something weird happening in the BASCI interpreter or the kernal that is glossed over when putting in commands through the shell, presumably do to something that happens when regenerating the READY prompt.
  22. I use an extremely cheap SNES-style USB gamepad with the emulator. It works quite well, even if the buttons on the controller are not very nice.
  23. I'm sure the younger grandkids can wait until the reduced-cost model comes out. Once they hit 6, they deserve a X16e.
  24. You can take a look at the code I wrote for XCI to playback PCM sound samples. That's the easiest way, as you can just download or make recorded sound effects and use Audacity to resample them to whatever rate you want to use. Now, this method will take by far the most amount of RAM, as you have to be able to load the entire sample from disk and play it back over time, but it gives you exactly what you want. You can see my code for playback on GitHub: https://github.com/SlithyMatt/x16-xci/blob/master/engine/sfx.asm And you can see how I download and convert free sound effects in this video:
  • Create New...

Important Information

Please review our Terms of Use