Jump to content

TheMole

Members
  • Posts

    1,107
  • 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,773 profile views

TheMole's Achievements

Stargunner

Stargunner (7/9)

1.5k

Reputation

  1. It's only tangentially related, and I'm sure a lot of you have seen this, but (around 10:30): I wasn't aware!
  2. 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).
  3. Very saddened to read this, he will be missed. My condolences.
  4. Excellent! Super smooth! Do I understand it correctly that the software sprites are scaled in real-time and rendered to the bitmap layer?
  5. 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.
  6. 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 }
  7. 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...
  8. I simple write a value to >a000 and read it back. If it has changed, the 32k expansion is not present. Seems to work well.
  9. Approach is the only one I had to purchase. Nimbus is free, I already had Century Old on my mac for some reason, and I found a free version of Rubicon somewhere which came with an appropriate license. But yeah, Approach was quite expensive for a font... Still struggling with one thing here: I found @OLD CS1's old style manual template, but if I check the dimensions in that file, I get something closer to 140mm in width instead of the 160mm I get from the box scans. Are the manuals not supposed to be roughly the same size?
  10. I used What The Font to find the closest matches. For the Texas Instruments logo font, I've ended up using a high resolution version of the current logo and fixing the font spacing to match the older style. The closest font I could find was Rubicon by AKTF, but the capital 'M' is way off. I did use that one for the "incorporated" part. The big "Applications Software" text is done with Approach Extra Black Italic, although the lower case 'a' is not 100% correct. The serif font for the small text is done with Century Old Style Regular. The capital 'J' is wrong... The sans serif header font is Nimbus Sans L in a variety of weights, sometimes italic. That one seems to be very close, but it's actually a modern-ish open source font, so can't be what they actually used back in the day As for spacing and kerning, it was all over the place. I just went in section by section and overlayed the font, played around with the spacing, size, etc... until I got as close to a perfect match as I could. For certain fonts I had to go in afterwards and manually adjust letter spacing...
  11. Still tweaking Ghostbusters a bit, so consider it in the "Release Candidate" stage. I'll do a post in the main forum when I'm comfortable calling it final, feel free to add that version to the Gameshelf once its released of you want!
  12. Okay, I replicated the box in GIMP. Man, those designers back in the day used a lot of ever-so-slightly-different fonts! I didn't manage to find 100% exact matches for each font, but I think I got pretty close. I probably should've done this in Inkscape instead of GIMP though... ah well... It's definitely high resolution enough to result in some nice prints. Again, big thanks Rick for scanning the original! I made a tan and a pure white version (not sure what color the boxes originally were). The .xcf file attached has both, as well as a "assembled" version of the original scans for those that are interested. box_full.xcf
  13. Thanks, Rick! This looks workable, I'll try to put something together and share back here. *edit* using the measuring tool in Gimp, I get a width of ~160mm, does that sound reasonable?
×
×
  • Create New...