Yeti3D
Moderator: BigEvilCorporation
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
Yeti3D
Here's yet another release of the GPL version of the Yeti3D engine for the 32X. My last version was merely okay on emulators, and lousy on real hardware. This version is awesome on emulators, and okay on real hardware.
The main "trick" for this version is to have the engine render at 160x112. I use the line table to double the height for free, and use the slave to double the pixel horizontally. The demo uses the interpolated setting, so every other pixel is a blend of the current and previous pixels. It doesn't take any longer than just doubling the pixels from my tests.
So this gives full-screen 3D at playable rates on real hardware, but really kicks ass on emulators.
download
The main "trick" for this version is to have the engine render at 160x112. I use the line table to double the height for free, and use the slave to double the pixel horizontally. The demo uses the interpolated setting, so every other pixel is a blend of the current and previous pixels. It doesn't take any longer than just doubling the pixels from my tests.
So this gives full-screen 3D at playable rates on real hardware, but really kicks ass on emulators.
download
-
- Very interested
- Posts: 2440
- Joined: Tue Dec 05, 2006 1:37 pm
- Location: Estonia, Rapla City
- Contact:
That was awesome
it needs music now
it needs music now
Mida sa loed ? Nagunii aru ei saa
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
-
- Very interested
- Posts: 256
- Joined: Tue Sep 11, 2007 9:10 pm
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
It would possible to make every other line blank at no cost. Making every other line half intensity would require using the CPU (slave or master) to draw every other line at half intensity.tomaitheous wrote:Very cool Would there be any possible way for the 'doubled' scanlines to show at half intensity? Give it a scanline effect?
The current line doubling just sets every other line offset to the same value as the line before. So line 0 is offset 256, line 1 is also 256, line 2 is 256+320, line 3 is also 256+320, etc. For a scanline effect, set line 0 to 256, line 1 to 256+112*320, line 2 to 256+320, line 3 to 256+112*320, etc.
Note that by doubling the lines for the main display, we now have enough vram for a full display. In 32K mode, you normally see 320x200 displays... there's only enough vram in 32K mode for 204 lines. Line doubling means we can go the full 224 height. If we had a status bar, we could line double the 3D part of the display, and single line the status bar. That's what I plan for the next update for Wolf32X.
-
- Interested
- Posts: 38
- Joined: Sun Jun 01, 2008 1:12 pm
- Location: Lyon, France
- Contact:
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
Yeti3D is thousands mode only. No 256 color modes. That's because it does lighting when rendering the polygons.TotOOntHeMooN wrote:Many systems got undocumented display resolutions.
There are no wide pixels display mode (160x224) for helping you ?
Else, by using 8bit screen mode and writing 16bit "double pixel" ?
And the 32X has no 160 wide modes. 320 wide is the ONLY mode there is. You can use the line table to narrow that a bit, but you're just leaving larger black bars on the sides when you do. So while I can use the line table for free vertical scaling, there's nothing to help that horizontally... other than the Slave CPU. The problem is that even if you do the horizontal scaling on the slave cpu, it still takes bus time which affects the master cpu. You either spend the time scaling it yourself, or waiting on the bus to be free while the other cpu scales it.
The other option is like the double pixel suggestion - just in thousands mode (word -> long). That requires altering all functions that draw to the display so they double the pixel and draw to a spot twice as far away. I might try that sometime.
-
- Interested
- Posts: 38
- Joined: Sun Jun 01, 2008 1:12 pm
- Location: Lyon, France
- Contact:
So how do you edit the "level" I figured out how to build it. It is a great port it runs and it seams to run fast (at least in kega fusion (i have no flash cart and no 32x))Also I could have swore you said you were gonna port the yeti 3d pro edition what is the difference between this one and the "pro" version?
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
See for yourself - here's an arc of the "double pixel" version of the Yeti3D demo (with music and sound). It's not any faster on the emulator that I can tell, but it may be faster on real hardware. Included is a binary and the source.TotOOntHeMooN wrote:I hope that can help to speed up a bit.
http://www.mediafire.com/download.php?a9y2dnhm3e9dfrc
You have to use the editor, make the level, save the data, then replace the data in src/maps/e1m1.c.sega16 wrote:So how do you edit the "level" I figured out how to build it.
Yeti3D-Pro is new and better, but consumes a lot more ram. That's why I haven't finished porting Pro yet. I have to get the ram usage back down again.Also I could have swore you said you were gonna port the yeti 3d pro edition what is the difference between this one and the "pro" version?
Features of Yeti3D-Pro:
Demo has multiple levels with more "stuff" and bad guys.
Objects and bad guys are 3D models.
Better rendering (supposedly) - supports curved surfaces.
More complete core, with more game logic and sound functions.
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
The pixels are just doubled, not blended. The other demo blends every other pixel for slightly more resolution. However, that does make it a bit "blurry". If you like the sharp look of doubled pixels, the other demo can be switched to doubled pixels by changing the lines in mars_flip() like this:sega16 wrote:Wow surprisingly the double pixel edition looks better in quality (less blurry).So did you just take out the blurring code or is it now rendering as a long and converting to a word.
Code: Select all
// double the frame buffer horizontally
//ScreenStretch(SRC_PTR, SRC_WIDTH, SRC_HEIGHT, 1); // stretch with interpolation
ScreenStretch(SRC_PTR, SRC_WIDTH, SRC_HEIGHT, 0); // stretch without interpolation
-
- Interested
- Posts: 38
- Joined: Sun Jun 01, 2008 1:12 pm
- Location: Lyon, France
- Contact:
Unfortunately, I can't test it on a real 32X and the emulator always display 60fps.Chilly Willy wrote:See for yourself - here's an arc of the "double pixel" version of the Yeti3D demo (with music and sound). It's not any faster on the emulator that I can tell, but it may be faster on real hardware.
So it's not possible to estimate the speed improvement.
May be ... Can you display a sort of "CPU usage" ?