More MOD Player Stuff

I got the MOD player running at 3-4ms/f on the 486DX2 at 66mhz with a 4-channel MOD file playing at 22khz. Doing okay, but not perfect.

The vibrato effect (4xx) has been implemented. I had to write another program to generate the 2kb tables of precomputed fixed-point (1.15, don't ask) vibrato pitch shift values, and aside from the per-sample branch to check if the vibrato is active, it doesn't have performance overhead unless you're using it.

The vibrato was one of the more complicated effects, and I had been putting it off for a while. Now that it's out of the way, other effects are being added much faster.

The glissando effect (E3x) on the slide-to-note effect (3xy) is also in. This one is just a modification to some per-tick code, adding an extra branch, so performance impact is negligible when not in use.

Progress is poking along. I might get this working natively on my Linux machine just so I can get some compiler warnings. Apparently Watcom 10.0a doesn't warn when you pass a pointer into a function that's the wrong type. You can probably imagine how long that took to track down.

Also, it'd be nice to have a native MOD player kicking around for other projects.

Posted: 2017-04-16


Video Capture Woes

I got a nice fancy VGA capture card with generally good reviews from Inogeni. The images that come through on the thing are crystal clear, and look totally amazing, but it only works (on my DOS machine) in the 640x480@60hz mode that Windows 3.11 gives me. In fact, it seems to have issues with most of the DOS VGA modes, which are all in the 70hz range and higher.

By this point I've been through quite a few capture devices and format converters trying to find something or some combination of them that supports 70hz VGA modes. So far the only working option I've found is using a VGA-to-S-Video converter, then capturing the (fuzzy, low-framerate) S-Video output.

If I ever stream development on this game I'll be doing it through fuzzy S-Video goggles, I guess.

Posted: 2017-04-15


Mode 13h is too Slow?

Jumping into graphics a bit early, I set up mode 13h and got the palette controls and vertical blank syncronization all hooked up. I set up a simple back buffer for the 320x200 pixel/byte display, and wrapped it all up in a simple double buffering setup. Then I ran into a problem.

Turns out, if you copy 64000 bytes from system memory to VRAM on a 486DX2, it takes about 7 milliseconds. To hit that 70fps goal, I have about 14 milliseconds to do everything for the entire frame. Game logic, sound mixing, rendering to the backbuffer, and then... this. This 7ms monstrosity of an operation just to copy the backbuffer to the front buffer. Even distilling it down to a simple "REP MOVSD" in assembly didn't save me any time.

pageflip.jpg

Then everyone told me I should be using Mode X instead of mode 13h. So I guess I'll be doing that once I get back to graphics.

Time to do some studying.

Posted: 2017-04-14


0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 [ 36 ] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

Previous | Next