Jump to content

TheMole

Members
  • Posts

    1,113
  • Joined

  • Last visited

  • Days Won

    2

TheMole last won the day on March 17

TheMole had the most liked content!

1 Follower

About TheMole

  • Birthday 09/11/1979

Profile Information

  • Gender
    Male
  • Location
    Belgium

Recent Profile Visitors

9,776 profile views

TheMole's Achievements

Stargunner

Stargunner (7/9)

1.5k

Reputation

  1. I have these two effects that I made back in the day for inclusion in the original demo:
  2. Car Wars is a rip-off of the Sega arcade original Head On, back in the day companies played quite fast and loose with IP rights and got away with things that wouldn't be conceivable today. I think the general concensus was that as long as you don't use any trademarks it was fine... I don't think TI themselves every paid any license fees for the "ports" they did, but companies like Atarisoft for instance definitely had licenses for the stuff they put out. I think TI just prefered to "draw inspiration" from others instead of paying for stuff...
  3. There's this as well, of course: https://forums.atariage.com/topic/365816-release-gif-99-viewer-for-v993858-systems-v105-by-opa/
  4. Yeah, and apparently there was an issue with Mess emulation leading to palette issues back then, I recorded that 10 years ago so that is likely fixed by now
  5. This is the only thing that I know of that does more than 80 columns or extra VRAM. Maybe some Geneve ports...
  6. I think that's a great idea, and would be happy to contribute whatever I can!
  7. It's only tangentially related, and I'm sure a lot of you have seen this, but (around 10:30): I wasn't aware!
  8. Only js99er has a full working F18A implementation right now, Classic99 will only support F18A 80 column stuff and the GPU, but none of the enhanced graphics modes (as far as I know).
  9. Very saddened to read this, he will be missed. My condolences.
  10. Excellent! Super smooth! Do I understand it correctly that the software sprites are scaled in real-time and rendered to the bitmap layer?
  11. No no, not at all... See the screenshots above (thanks retrodroid), it shows the difference in rendering between the tms9918a (left) and the F18A (right). If you happen to have the F18A, you get all of the fancy extras, but even on the tms9918a you will get the smooth scrolling and (mostly) multicolor sprites.
  12. Yes, there's a tiny GPU program that triggers every scanline and applies two sine waves: one for the bigger "wavy" effect, and once with a higher frequency for the smaller "shimmer" effect. C code looks like this: // Define VRAM memory locations we want to read/write volatile unsigned char* vdp_reg = (volatile unsigned char*)0x6000; #define scanline_cnt *((volatile unsigned char*)0x7000) // Sinus lookup table const char sintab[] = { 0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a, 0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c, 0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d, 0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f, 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0f, 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, 0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x0d, 0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, 0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a, 0x0a,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08, 0x08,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06, 0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04, 0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x02, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x01, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02, 0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03, 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05, 0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x07, 0x07,0x07,0x07,0x07,0x08,0x08 }; int _start() { __asm__("li r15, 0x47fe\n"); // Set stack pointer unsigned char cnt = 0; // Frame counter unsigned char offset; // Shimmer offset unsigned char scroll_pos = 0; while(1) { offset = sintab[(((scanline_cnt) + cnt) * 8) & 0xff] >> 3; // Calculate shimmer effect if (scanline_cnt & 0x01) // Apply positive or negative shimmer vdp_reg[27] = scroll_pos + offset; // depending on odd/even lines else vdp_reg[27] = scroll_pos - offset; vdp_reg[27] += (sintab[((scanline_cnt) + cnt) & 0xff] - 8) >> 1;// Apply wave effect on top if (scanline_cnt == 192) // Increase frame counter cnt++; __asm__("idle\n"); // Halt GPU (until next HBLANK interrupt) } return 0; // never reached }
  13. While I'm waiting on the final feedback on Ghostbusters, I picked up Alex Kidd again. Decided to add a bit of variety and, after ice levels, added support for that other platform game cliché: underwater levels . I need to rework the sprites a bit (the fish aren't supposed to be transparent, and I'm not 100% happy with Alex's animations yet), but I've been mostly focused on the swimming physics and integrating that in the rest of the game engine. I also optimized the 9918 version to support more enemies per level (it started skipping frames with the 12 enemies in this level), and we're back within the 1/60th of a second window now. I've also spent a lot of time working on the tools that allow me to more easily create levels, which are shaping up nicely. With a bit of luck, I can knock out a few levels over the next couple of weeks/months and have the game finished sometime this year. The title screen says 2015, which I guess is when I started working on this, so with a bit of luck I can avoid this thing being "under development" for a full decade...
×
×
  • Create New...