Jump to content

Johan Kårlin

  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Johan Kårlin

  1. At last, I can use an English phrase I learned here on the forums some time ago: I stand corrected : ).
  2. A16x16 sprite with 16 colors requires 128 bytes. Let say it is animated with 8 frames, that is just 1 KB. Code for displaying it and move it around will be less than 1 KB even if you include maybe a sine table for help when trying to imitate how a butterfly flies. In other words this can fit easily in a RAM bank and also in golden RAM (4 KB).
  3. An idea is to have some official quality mark that can be given to software that meet certain demands. Those games/programs that are acknowledged can then have a certain title screen or badge in common. Compare for example how all Apple Arcade games start with a very short animated logotype intro. After that they all look very different. This could also be very motivating for developers in our community to make finished and stable products.
  4. Sorry for my late answer. That is exactly right. When vblank is triggered the active and inactive buffer switch places. Then I update the inactive one. If scrolling for example to the right I use hardware scrolling for 15 pixels, then I update all tiles on the tilemap that can be seen when the buffer is active. Here I benefit from the higher processor speed compared to a C64 which gives me plenty of time to do this. 8 Mhz makes a huge difference compared to 1 Mhz … Am I making myself clear?
  5. It is indeed for r41. Good point, I have disabled the button.
  6. Version 1.1 is released. Now there are other cars on the roads. Avoid them or you will lose valuable time! Music is also added with the help of ZSound. Thanks to @ZeroByte for this excellent tool! As everyone can see the graphics are crappy (and the music is stolen from VGM Rips ...). If you are talented in making pixel art or music, maybe you are interested in helping me? I hope to make this a really good and polished game by the time the X16 is released : ).
  7. I prefer text and pictures, at least if the tutorials are quite specific, if their purpose are to show how to do certain things like how to use sd images or how to disassemble hardware. You easily end up skipping forward and backwards to find the interesting parts, then pausing and repeating to really get how things are done.
  8. If you are lucky a map size of 128x256 or 256x128 is enough. VERA supports it and it will fit into VRAM (64 KB). If you want a larger map I think you have to do what I have done in Rally Speedway, start with tiles, then define blocks of tiles of a certain size and finally define your game world with a map of blocks. Then while scrolling you constantly calculate which actual tiles should populate the actual VERA map. By doing this I have implemented virtual maps (or what to call them) consisting of 256x256 tiles. Pretty cool but the code is complicated as well as the workflow for creating graphics.
  9. While years are passing and we all wait and hope to see a finished product to a reasonable cost, what if it would be possible to optimize the emulator and see if it could be included with RetroPie? Together with a Raspberry Pi case with some cool X16 stickers and the already finished official keyboard this would at least be a solitary product. I totally understand if many people find this meaningless because so much is about real hardware but we would be better off than now when we only have the emulator. This would open the possibility to for example build an arcade tabletop machine with X16 games.
  10. Thanks! My starting point has been that the text layer is located att $0000 so this is most useful.
  11. I have finally started to upgrade my programs from r38 to r41. I am trying to find out exactly what the breaking changes are by browsing this thread and all the official documentation. I get that I cannot use zeropage 0 and 1 but then it is hard to see what has changed. Memory maps seem intact. Is there a short summary to find somewhere?
  12. I haven’t rewatched the videos, but as I remember it the plan was to use 65816, a 16 bit successor to 6502. The reason was that while 6502 might be more nostalgic the experience of programming it is rather tedious. Everything tends to be about handling low and high bytes .. But the 65816 were abandoned because of difficulties with the hardware implementation. If you search for ”65816” in the facebook group you can find discussions about this from around three years ago.
  13. If the blue car is to the right, of the yellow car, above it or something in between those two positions it is in the first quadrant. 1. Let dx = horizontal distance = x coordinate of blue car - x coordinate of yellow car dy = vertical distance = y coordinate of blue car - y coordinate of yellow car 2. a = angle = look up value in table by using |dx| and |dy|. 3. if dx < 0 then take 128 - a (blue car is in second or third quadrant). 4. if dy < 0 then take 256 (=0) - a (blue car is in fourth quadrant) This works as long the distance between the objects (in my case cars) are no more than 31 units horzontally and vertically in your "world" coordinate system. In other words, usable for bouncing effects.
  14. I struggled with this while making Rally Speedway 2020. I wanted the two cars to "bounce" away from each other when colliding. In order to do that I used the yellow car as reference point (origo in a coordinate system) and calculated what angle the blue car had in reference to the yellow using the horizontal and vertical distance. Because the cars are close to each other when colliding I simply used this precalculated atan2 table: ;Table for atan2 - which angle a vector (x,y) have in relation to origo. 256 = 360 degrees. Just for the first quadrant. _atantable: ;rows x = 0 to 31, columns y = 0 to 31 !byte -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 !byte 64,32,19,13,10, 8, 7, 6, 5, 5, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1 !byte 64,45,32,24,19,16,13,11,10, 9, 8, 7, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3 !byte 64,51,40,32,26,22,19,16,15,13,12,11,10, 9, 9, 8, 8, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4 !byte 64,54,45,38,32,27,24,21,19,17,16,14,13,12,11,11,10, 9, 9, 8, 8, 8, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5 !byte 64,56,48,42,37,32,28,25,23,21,19,17,16,15,14,13,12,12,11,10,10,10, 9, 9, 8, 8, 8, 7, 7, 7, 7, 7 !byte 64,57,51,45,40,36,32,29,26,24,22,20,19,18,16,16,15,14,13,12,12,11,11,10,10,10, 9, 9, 9, 8, 8, 8 !byte 64,58,53,48,43,39,35,32,29,27,25,23,22,20,19,18,17,16,15,14,14,13,13,12,12,11,11,10,10,10, 9, 9 !byte 64,59,54,49,45,41,38,35,32,30,27,26,24,22,21,20,19,18,17,16,16,15,14,14,13,13,12,12,11,11,11,10 !byte 64,59,55,51,47,43,40,37,34,32,30,28,26,25,23,22,21,20,19,18,17,16,16,15,15,14,14,13,13,12,12,12 !byte 64,60,56,52,48,45,42,39,37,34,32,30,28,27,25,24,23,22,21,20,19,18,17,17,16,16,15,14,14,14,13,13 !byte 64,60,57,53,50,47,44,41,38,36,34,32,30,29,27,26,25,23,22,21,20,20,19,18,18,17,16,16,15,15,14,14 !byte 64,61,57,54,51,48,45,42,40,38,36,34,32,30,29,27,26,25,24,23,22,21,20,20,19,18,18,17,16,16,16,15 !byte 64,61,58,55,52,49,46,44,42,39,37,35,34,32,30,29,28,27,25,24,23,23,22,21,20,20,19,18,18,17,17,16 !byte 64,61,58,55,53,50,48,45,43,41,39,37,35,34,32,31,29,28,27,26,25,24,23,22,22,21,20,19,19,18,18,17 !byte 64,61,59,56,53,51,48,46,44,42,40,38,37,35,33,32,31,29,28,27,26,25,24,24,23,22,21,21,20,19,19,18 !byte 64,61,59,56,54,52,49,47,45,43,41,39,38,36,35,33,32,31,30,29,27,27,26,25,24,23,22,22,21,21,20,19 !byte 64,62,59,57,55,52,50,48,46,44,42,41,39,37,36,35,33,32,31,30,29,28,27,26,25,24,24,23,22,22,21,20 !byte 64,62,59,57,55,53,51,49,47,45,43,42,40,39,37,36,34,33,32,31,30,29,28,27,26,25,25,24,23,23,22,21 !byte 64,62,60,58,56,54,52,50,48,46,44,43,41,40,38,37,35,34,33,32,31,30,29,28,27,26,26,25,24,24,23,22 !byte 64,62,60,58,56,54,52,50,48,47,45,44,42,41,39,38,37,35,34,33,32,31,30,29,28,27,27,26,25,25,24,23 !byte 64,62,60,58,56,54,53,51,49,48,46,44,43,41,40,39,37,36,35,34,33,32,31,30,29,28,28,27,26,26,25,24 !byte 64,62,60,58,57,55,53,51,50,48,47,45,44,42,41,40,38,37,36,35,34,33,32,31,30,29,29,28,27,26,26,25 !byte 64,62,60,59,57,55,54,52,50,49,47,46,44,43,42,40,39,38,37,36,35,34,33,32,31,30,30,29,28,27,27,26 !byte 64,62,61,59,57,56,54,52,51,49,48,46,45,44,42,41,40,39,38,37,36,35,34,33,32,31,30,30,29,28,27,27 !byte 64,62,61,59,58,56,54,53,51,50,48,47,46,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,30,29,28,28 !byte 64,62,61,59,58,56,55,53,52,50,49,48,46,45,44,43,42,40,39,38,37,36,35,34,34,33,32,31,30,30,29,28 !byte 64,62,61,59,58,57,55,54,52,51,50,48,47,46,45,43,42,41,40,39,38,37,36,35,34,34,33,32,31,31,30,29 !byte 64,63,61,60,58,57,55,54,53,51,50,49,48,46,45,44,43,42,41,40,39,38,37,36,35,34,34,33,32,31,31,30 !byte 64,63,61,60,58,57,56,54,53,52,50,49,48,47,46,45,43,42,41,40,39,38,38,37,36,35,34,33,33,32,31,31 !byte 64,63,61,60,59,57,56,55,53,52,51,50,48,47,46,45,44,43,42,41,40,39,38,37,37,36,35,34,33,33,32,31 !byte 64,63,61,60,59,57,56,55,54,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,36,35,34,33,33,32
  15. It all works perfectly fine now! I compiled the latest source code with VS2022, copied the latest rom.bin from the official emulator and used the -vsync none option. Thanks all for your help, it is much appreciated! And Stephen, Box16 seems absolutely great. There are debugging possibilites and other improvements that I have been dreaming about. Fantastic job. I will report if I find anything broken.
  16. Hm, things suddenly got both easier and more complicated. I wasn't aware about box16 but it seems lika a good or actually better alternative. So I downloaded and compiled it, no problem. I copied the r39 rom.bin to the ouput folder. It starts without F-Secure complaining about it, there is some information in a first window but then a completely white and blank window opens and nothing more happens. Some more questions if you have the paticence: 1. I have VS2022 so I upgraded the project. Maybe I have to install VS2019? 2. Should I compile the latest version of the source files or go for the latest release from last year? 3. Does rom.bin from the official release 39 of the emulator work? (It seems to work.) 4. If I get this working, is it compaitble with the official r39? After all, the reason for doing this is to upgrade my programs to work with this release.
  17. I tried to make a full scan, it didn't help. I think the next step will be to try to make my own build. Last resort, talk to the IT department. In that case I will hope for mercy because I have to be very creative to explain how this relates to my work ...
  18. For better or worse I am using my work computer to develop for the X16. It is the only computer I have. So far there have been no problems but now my antivirus program, F-Secure, blocks the new release of the emulator. It says it is an "unusual program". I have no problem with earlier versions or any other tool that I use which include VS Code and ACME. Unfortunately (I understand this is a good thing for security reasons) I cannot control F-Secure in any way. Is there something I can do to make the antivirus program accept it?
  19. My understanding of feature creep has always been very simple. It is the common experience of discovering that what you originally planned for is almost sufficient, there is just one thing missing. You add that and two days later you suddenly realize that there is just one more thing missing and so on. You want to draw the line the line but this one last thing is so valuable that you just must have it. And most of the time it is, I think we all are grateful for being able to use hexadecimal values in BASIC. Still you have to draw the line somewhere …
  20. After all, I can see your point. I am already a patreon but I think I will make an extra donation even if money isn’t the main issue right now. It is an encouragement and a way to let the project group know that we are many who support the project.
  21. The quote is from August last year. The latest update makes it clear that the project group have had a communication problem. And there is no project manager what it seems. If the group becomes stable and functional I wouldn’t hesitate to donate money. Stephen Horn is offering some help. It seems like a good idea to ask if he could assist Michael Steil. For now I am sort of waiting to see what happens.
  22. I am very happy for your commitment and will be glad to contribute! It is incredible that the community survives the long wait so well.
  23. Yes there are some developer tools that are more or less essential. You end upp making them yourselves or finding what someone else has already made. This is one example. I have made another tool - XPngConverter - for converting graphics, that's another. Good thing there's alternatives. A problem for all spare-time-developers is to really finish something. Perhaps can my contribution be making a (nearly) finished product which is quite polished. In this case I tried to succeed by keeping the list of features short.
  24. QBasic is still beyond the horizon but I have made some improvements in v 2.0.
  • Create New...

Important Information

Please review our Terms of Use