Jump to content

svenvandevelde

Members
  • Posts

    461
  • Joined

  • Last visited

  • Days Won

    17

Everything posted by svenvandevelde

  1. i need to explain this, it is a lot of work to write it all down, so if you need further ideas just ping me and we can setup a call on discord
  2. Check out my implementation that i do for the equinoxe game. It uses 16x16 tiles, but i make a 64x64 logical tile implementation out of it. Put a lot of work in that. I use the dynamically walking algorithm to randomly place tiles. The implementation uses 256 color tiles, but only uses about half of the palette of the vera. so yes, these tiles take a lot of memory, but my vera heap manager and the now ready lru_cache (least recently used cache) will allow me to dynamically "switch" tiles while scolling.
  3. Done more work on the engine ... so now the animations of the sprites can be dynamically loaded into vram and using a least recently used cache implementation, the images are placed with newer ones on the fly, when they are needed. In other words, this is a VERA VRAM resource management method ... Have a look at the below video. It has taken me a lot of work to make this ... https://screencast-o-matic.com/watch/c3QlFQVOoQS
  4. https://screencast-o-matic.com/watch/c3QlFQVOoQS
  5. Some further progress on my game Equinoxe. Now implemented a "Least Recently Used" cache and my VRAM heap manager, which allows me to dynamically copy in images into vram and replace images which are not used anymore ... https://screencast-o-matic.com/watch/c3QlFQVOoQS
  6. David has announced in his latest video that the CX16 is near production ready. May I ask, exactly where can we put our order for the CX16, when the CX16 goes for sale? On this WEB page? Where to look? Also, I want to make sure that there will be sufficient available orders to that i won't miss out on it. Sven
  7. For the real retro experience it should be text. Preferably in old C64 or C128 style. Perifractic made materials but not sure how much material was finished.
  8. Remember this? 20220816_202321.mp4
  9. I'm still around... just very busy at work at the moment and can't concentrate for now on the cx16.
  10. This is my sequential file read routine ... /** * @brief Load a file to banked ram located between address 0xA000 and 0xBFFF incrementing the banks. * * @param channel Input channel. * @param device Input device. * @param secondary Secondary channel. * @param filename Name of the file to be loaded. * @param bank The bank in banked ram to where the data of the file needs to be loaded. * @param sptr The pointer between 0xA000 and 0xBFFF in banked ram. * @return bram_ptr_t * - 0x0000: Something is wrong! Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf) * - other: OK! The last pointer between 0xA000 and 0xBFFF is returned. Note that the last pointer is indicating the first free byte. */ unsigned int load_file_bram(char channel, char device, char secondary, bram_bank_t dbank, bram_ptr_t dptr, size_t size) { #ifdef __FILE printf("load file, c=%u, d=%u, s=%u, b=%x, p=%p, si=%u", channel, device, secondary, dbank, dptr, size); #endif byte status = 0; char ch = 0; unsigned int read = 0; byte bank_old = bank_get_bram(); bank_set_bram(dbank); status = cbm_k_chkin(channel); status = cbm_k_readst(); if(status) return 0; byte* ptr = dptr; // gotoxy(0,10); // printf("load: ptr = %p, bank = %x", ptr, bank); while ((size && read < size) || !size) { ch = cbm_k_chrin(); // OK, character read and not end of input read++; // check if pointer is between bram boundaries if(ptr == 0xC000) { dbank++; // printf(", %x", (word)bank); bank_set_bram(dbank); // select the bank ptr = (byte*)0xA000; } // put the read character into the pointer location *ptr = ch; // increase the pointer ptr++; status = cbm_k_readst(); if(status) break; } #ifdef __FILE printf(", r=%u, status=%u\n", read, status); #endif bank_set_bram(bank_old); #ifdef __FILE // cbm_k_chkin(0); // while(!getin()); #endif return read; } Note that the routine and the description still requires some love from my side ... it's just a version at the moment to get my files loaded into bram in a sequential manner, in chunks as I use a bram heap manager that allocates blocks of memory for me.
  11. One thing to avoid though in C are pointers ...
  12. Very interesting. Didn't know you also develop in C for the X16. There are some very interesting language constructs that end up with blazing fast 8 bit assembler code ...
  13. Maybe log an issue on github for the emulator ... so this gets tracked.
  14. Actually, what you just highlighted seems like an interesting concept.
  15. I know this video however these days unity is the standard. And with unity one can just paste blocks like little bitmaps. But how would this be implemented using vera tiles? Including the steep edges and elevation. Million $ question ...
  16. Looked again closer to your video and you really made something very nice there @SlithyMatt! Well done! You will have a nice game created when finished.
  17. Thank you sir. Interesting concept using two layers. Would it also work with isomeric tiles that are 30⁰ over 30⁰ instead 45⁰ over 45⁰?
  18. Thank you Tom. Very interesting and fascinating how you modelled this so quickly. You know, racing destruction set of EA was a game which I admired greatly when I was young. And I still have not figured out how they did that game. How did they manage to create these tracks with such limited hardware. With elevations that went flat, up, steep up, down and steep down. And this with asphalt, ice and dirty roads. They even had tires and oil spills. Remember such a game on the cx16 with latest graphics. 16 years again it would be for me
  19. Thank you for this. Great achievement there. What I'm struggling with is how to create isomeric tiles from square 8x8 chairs. Is there somewhere an example of how to do this? How and which char patterns to create that can be combined to isomeric maps
×
×
  • Create New...

Important Information

Please review our Terms of Use