What's new

What happened to Corn?

Status
Not open for further replies.

Jabo

Emulator Developer
Moderator
At different points during development zilmar and I talked about why Corn might be such a fast emulator, we wanted to apply some ideas to PJ. Some things we came up with were it's nice 32-bit core (formerly static), and it's graphics emulation.

PJ gets around the 32-bit core issue pretty nicely by optimizing most 64-bit operations into 32-bit ones, but not all of them, and there is still some fixups to be 64-bit (sign extension). I am rather certain 1964 has a full 32-bit core (hi schibo :)), you guys should check that out, I'd love to see some benchmarks perhaps on that <?>

In terms of why corn's graphics might be so fast, i'll simply say the graphics plugins in PJ try to be as accurate and compatible as possible, this leads to a lot of great graphics, but also is the cause of some performance loss (which varies per game a lot, some might do some bad stuff), it's a classic situation where accuracy costs performance, and it's already highly optimized ... i suppose there is always room for improvement tho, we'll have to wait and see :innocent:
 

pj64er

PJ64 Lubba
@Doom, read:

Rice said:
Jabo's DirectX plugins are the best, but for some games, it is running slow. You should be able to see it in the status bar. For such games, graphics plugins is using much higher CPU than emu core, for example the core is using ~20% CPU, and graphics is running ~75% of CPU. Then emu can not run at full speed no matter how fast the core can run, because graphics is slowing the whole thing down. PJ64 also has CPU usage displays, but Corn does not have a status bar.
 

The Khan Artist

Warrior for God
eat_sleep_play said:
Tried pj64 with the so called glide64 plugin , even slower and the fact that it was a glide plugin was supposed to increase the speed. Heck, Glide was supposed to be the fastest API on voodoo's.

Glide IS the fastest API on Voodoos. Glide3 is the fastest API ever, AFAIK. However, the current version of Glide64 is a BETA. I've been looking through the source, and I see lots of room for speed improvements. And the way Dave2001's been talking, I think we'll see a good many of them in the next version...
 

Remote

Active member
Moderator
The Khan Artist said:


Glide IS the fastest API on Voodoos. Glide3 is the fastest API ever, AFAIK. However, the current version of Glide64 is a BETA. I've been looking through the source, and I see lots of room for speed improvements. And the way Dave2001's been talking, I think we'll see a good many of them in the next version...

Do you have any facts what so ever to back that statement with? I also read a post where you or someone claimed that Glide was developed to be fast in contrary to other API's. In some aspects I guess that's true since it only has a couple of chips to work with in contrast to DirectX which has hundreds. And regarding Dave's progress we should all be amazed, it's been what? A couple of months and he's already covered a lot of terrain...:D
 

Dominator

Moderator
Let me throw in a couple infos ...

- Hack Corn? No way .. It is a bitch I won't lay down. So few comments in there. Reversers will surely understand.

- According to McLeod himself (a good source to me), Glide2x is faster than Glide3x ... Sorry guys. For once I thought that I'd try to add Glide3x support to SupraHLe but apparently, this should be useless, mainly when you know what McLeod is working at.

- Corn is fast .. very fast, but it is also skipping so many informations. Let me remind you that a VERY few games are correctly emulated with Corn. A pure Corn like or UltraHLE like emulator will most likely never emulate more than 50% of the unique N64 titles.
An intermediate solution seems better to me. Like PJ64 using some the UltraHLE "tricks" for instance (read Epsilon's comments about UHLE my SupraHLe ini tutorial for more infos). It could bring on speed and save compatiblity.
To a limited extent...
 

The Khan Artist

Warrior for God
Hey, I said as far as I know...

I've never actually run any benchmarks, I base my statement off of 1) the Glide3 programming manual (of course, I take this with a grain of salt) and 2) the tutorials and stuff I've read about Glide programming. Glide2 may be faster, I dunno, I've never studied it.
But my point is, from all I've read, it seems that Glide was designed to be a very thin API, with the emphasis on speed. To quote the Glide3 programming manual:

Why Glide?
Glide serves three primary purposes:

- It relieves programmers from hardware specific issues such as timing, maintaining register shadows, and working with hard-coded register constants and offsets.

- It defines an abstraction of the graphics hardware to facilitate ease of software porting.

- It acts as a delivery vehicle for sample source code providing in-depth hardware-specific optimizations for the graphics hardware.

By abstracting the low level details of interfacing with the graphics hardware into a set of C-callable functions, Glide allows developers to avoid working with hardware registers and memory directly, enabling faster development and lower probability of bugs. Glide also handles mundane and error prone chores such as initialization and shutdown.

Glide 2.x was designed for up to about 1 million triangles per second. Glide 3.0 is designed for the next order of magnitude: 1-10 million triangles per second. With the addition of vertex arrays, only one call need be made to draw a group of triangles. Tight inner loops, command packets, full triangle setup, and packed RGBA all contribute to being able to transfer and process millions of triangles per second.

Performance is one of Glide’s top priorities. When decisions are made, performance is always one of the criteria taken into account, and is always an important criteria. The goal for Glide is to do as little as possible - it is a very thin API layer above the hardware. One rule of thumb is that Glide should impose no more than 5% to 10% overhead on an application when compared to what the application could do if it wrote hardware registers directly.

Glide is but one part of the 3Dfx Interactive Software Developer’s Kit (SDK), which is designed to assist developers in creating tools and titles that are optimized for the graphics hardware. The SDK also includes the Texture Utility Software (TexUS™).

The Glide Utility Library contains utility routines that create fog tables, extensions that do significant pre-processing before calling Glide routines to access the graphics system, and obsolete routines that are provided for interim compatibility as Glide development continues.

So it can't do lots of fancy stuff (http://www.voodooextreme.com/glide3tutorial/html/tutorial01.htm), but what is does do, it's supposed to do quite fast.

And who is McLeod? I seem to remember reading a few posts by him somewhere, but I don't remember much...


Also, Dom, what happened to the SupraHLE page? (http://perso.infonie.fr/flying_angel/suprahle.htm). I get a 404...
 
Last edited:

Dominator

Moderator
The bummers currently hosting my website are definitly getting worst and worst. I am currently moving THE LAST RESORT and the SUPRAHLE HQ to a welknown network.

Problems shouldbe solved soon even tho' I still gotta fix all these html pages :/
 

bubblesnout

New member
Hey guys. Yeh im also really bummed about corn stopping production. i havent got the best pc and its the only emulator that will run mario 64 at full speed, and with fine graphics too. i absolutley love it except that the compatibility wasnt very good. All i want is to be able to play goldeneye 007 at full speed. i have tried almost every emulator out there and lots of different plugins. Does anyone have a solution to get 007 goldeneye running at a playable speed?
I have:
Pentium III 633 Mhz
156 MB RAM
16 mb video card (no idea what type. nothing special)
I dont really mind about good quality sound, i just want it to be playable and fast. someboddy help... *PLEASE!!*
I would be very grateful
 

vleespet

The decent one
1) Thanks for digging up this thread.
2) It's very offtopic too.
3) Answer to your question: Yep, it's possible. Use 1964 0.99 with Jabo's d3d6 1.5.1 (included in PJ64 service pack). You can also try Ultrahle 2064, which may be faster.

Edit: 4) Why did you dig this thread up when you also posted another one in the PJ64 board?
 
Last edited:
Status
Not open for further replies.

Top