Jump to content

Johan Kårlin

  • Posts

  • Joined

  • Last visited

  • Days Won


Johan Kårlin last won the day on December 1 2020

Johan Kårlin had the most liked content!


About Johan Kårlin

  • Birthday 08/09/1971

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Johan Kårlin's Achievements


Newbie (1/14)

  • Week One Done
  • One Month Later
  • One Year In Rare

Recent Badges



  1. I just found this thread when thinking about the exact question that started it almost a year ago. The FAQ still says that the YM2151 may not make it to the final product, but it is still there on he latest revision of the motherboard. I understand this as it is very unlikely that it will be removed. Or am I jumping to conclusions?
  2. Nice job! I am looking forward to see what will become of this!
  3. Easily done to miss things : ). Of course the other way is to just place the sprite outside screen boundaries, for example by setting the vertical position to 512. If you constantly calculate sprite positions it might feel more natural to only work with the position registers and never change the Z-depth, at least that is what I have found.
  4. You can actually disable sprites individually by setting the Z- depth to 0.
  5. I have found PyxelEdit very useful. You can draw you tiles and simultaneously arrange them in tilemaps to see how they work together. It have some bugs though. Tiled is the best program I know for drawing tilemaps. I have made an extension that exports the maps in the binary format that the X16 uses. I have made a small tool for converting tilemaps made with PyxelEdit as well but that is a separate program because PyxelEdit does not support extensions. You can find them under “Development Tools” in the download section.
  6. I have implemented this, but updating single columns and rows got unnecessary complicated. I ended up with a double buffered 32x32 tilemap (tiles 16x16). I scrolled 15 pixels and then updated the complete visible part of the tilemap. That made be spend about half of the available CPU cycles including all other code that was running each frame. A processor speed of 8 MHz makes a great difference compared to 1 MHz : ).
  7. I am happy to see an X16 version after all. It’s encouraging for all of us who are trying to develop programs for this platform as well. [emoji4]
  8. Oh, I just confused things, sorry.
  9. I do exactly this in my new game project where I use 64 Kb tilemaps. Just change the tilebase address for layer 0 in RAM address $9f2f and copy the character set to the new location.
  10. Really great that you are interested in contributing with some hardware expansions! Welcome!
  11. I remember starting out with VERA a long, long time ago (= more than a year). I tried to figure out what concepts like tiles and layers even meant. In those days there were no tutorials by Dusan, very few programs with source code to study, but luckily I had great help of Stephen’s legendary, unofficial documentation. This is the true story of how the West was won, or maybe not, but definitely a story of how a new interest in assembly programming was found. [emoji4]
  12. Whether sprite positions are signed or unsigned numbers is a matter of preference as I see it. A binary number does not know if it is negative or not, the interpretation is up to you. The problem with seeing it as a signed number is as you point out that after position 511 comes -512 but your sprite is still visible in the right part of the screen if your resolution is 640x480 which can be confusing. The advantage is that you can push the sprite over the top and left border by just setting the position to -1 which is more intuitive than setting it to 1023. When making scrolling games you constantly calculate sprite positions. I use 16 bits arithmetics. It works fine because the 6 most significant bits are just ignored by VERA. For example -1 = 65535 = %1111 1111 1111 1111 but it is also -1 if you just look at the 10 least significant bits. In the end I check if the calculated position is between -256 and 512 (requires only checking of the upper byte), if not I disable it. This is to avoid the risk of having sprites disappering to the right and suddenly turn up on the left and vice versa.
  13. There is actually nothing to wait for : ). Sprites can absolutely be displayed partially on the top or left edge of the screen. Positions are represented by 10 bits (= 0 - 1023) and wrap around which means that 1024 is the same as 0. Let's say you have a sprite that is 32 pixels wide. If you set the horizontal position to 1024 - 16 = 1008, the right half of it will be visible.
  14. Interesting, not least to see your VERA macros! But it still feels a bit awkward. I can end up having a numbers of flags for macros with several variables.
  15. It works but you must make sure all filenames are in capital letters. The file suffixes must also be whitelisted by the server. [mention]desertfish [/mention] ran into that problem when he tried to load image files with the suffix “KOA”. When he changed to “BIN” it worked.
  • Create New...

Important Information

Please review our Terms of Use