Jump to content

Why do some versions of Flash Player 9 work on YouTube while other ver


larryb123456

Recommended Posts

GOM Player uses instructions that are not supported on K6-2 Processors. KernelEx will not help with this issue.

I wrote an Emulator for the problem Instructions. This allowed it to run but was way too slow.

I ended up using the Emulator log to manually Patch the GOM Player

On my AMD K6-3+ CPU GOM Player runs fine beside the internal codec and the useless redundant "screen ratio" setting. I am quite satisfied with picture quality and behaviour.

Link to comment
Share on other sites


I employ a historical PC with 550MHz AMD K6-3+ CPU and 512MB RAM running on Windows 98SE+KernelEx; it is optimized for historical games and made from finest DOS-age hardware, including 2 genuine ISA soundcards (SoundBlaster AWE64 Gold, Gravis UltraSound Classic) and a Riva TNT2 combined with Voodoo 1 3D graphics card in a DFI K6BV3+/66 mainboard. I can not upgrade to a higher CPU because I need this special mainboard to use historical ISA soundcards. Discarding them is like requesting musicians to throw away their stradivarius and replace them with some brand new carbon plastic violins mass produced by Yamaha or whatever.

I have several computers with that same motherboard.. I used to collect them on eBay :lol:

...and if you really want to bump up your hardware, there is always the SOYO P4 I845PE ISA. I have several of these boards, and I have never had a problem with any of them. Too bad SOYO no longer makes motherboards. :(

Was there really an ISA mainboard for higher CPUs than the DFI K6BV3+/66. I remember that the early predecessors had horrible flaws. The first DFI P5BV3+ mainboard specimen I bought had a defect, which made it impossible to read 1.44MB diskettes(720kB ones were barely readable), though I had to exchange the mainboard for an other specimen,but this one made a black screen and didn't boot at all as soon I had 3 or more PCI cards("Venus Virge"+ "Typhoon 3Dfx"+NCR810(?) SCSI) inserted together. (The 2 faulty mainboards had 2 SIMM + DIMM sockets and many ceramic capacitor solder pads were empty.) I had to exchange it again(got the money back) and bought at a different shop the one I used later. (It had only DIMM sockets and worked more or less ok.) But after installing an AMD K6-2 500AFX it tended to overheat, so I could only run it on 450MHz. Finally in a hot summer the electrolytic caps next to the CPU exploded, so I installed larger caps, built my power supply (Fortron 300W) into a different case with huge fan in the bottom. It also had the flaw that USB ports barely worked and made webcams crash or display pixel mess. I had to add a capacitor and resitor to each USB pin on the board to improve it, but it still didn't run too well. Eventually bought on eBay the DFI K6BV3+/66 that I use now with a AMD K6-3+/300 running well on 550MHz (with additional USB2.0 PCI card).

But these DFI boards generally had a BIOS(?) flaw that prevented PCI cards from preemtive multitasking, i.e. any card could block the PCI bus so long it wants without getting stopped by a timer, which e.g. made a lot of soundcard trouble in Linux. Also my GUS Classic soundcard slowed down certain games extremely and still can not play midi files in Windoze despite it works well in a DOS demo. (This may be also a timing bug in the driver that with modern CPUs feeds the soundcard too fast.)

- Are there similarly fast ISA mainboards without the infamous PCI bus preemption bug?

Link to comment
Share on other sites

GOM Player uses instructions that are not supported on K6-2 Processors. KernelEx will not help with this issue.

I wrote an Emulator for the problem Instructions. This allowed it to run but was way too slow.

I ended up using the Emulator log to manually Patch the GOM Player

On my AMD K6-3+ CPU GOM Player runs fine beside the internal codec and the useless redundant "screen ratio" setting. I am quite satisfied with picture quality and behaviour.

Not surprised. The K6-3+ obviously supports CMOV Instructions. This is similar to the differences between the Pentium II and Pentium III Processors.

Link to comment
Share on other sites

Yes, you explained that because the CMOV instructions were emulated, there was a significant performace penalty. That's fine, the applications I want to try this on are not real-time anyway (they're the mjpeg utilities, which run on my Pentium II but not my Pentium MMX, so I figure it must be the CMOV stuff that's the problem).

Joe.

I don't have the mjpeg utilities so I don't know if CMOV Instructions are the issue.

You would have to examine the Illegal Instruction Details to get the OP Codes of the failing Instructions.

I have two versions of my software.

1. The Patcher discussed in this Thread that Patches the three Instructions known to cause problems with Flash.

2. The Emulator I wrote to handle GOM. It emulates CMOV Instructions and one specific PREFETCH Instruction.

I don't know if either or both would handle the mjpeg utilities.

@rloew :

1. The SSE issue is the same, I want to prevent Flash Player 9.0.280.0 crashing FireFox.

2. OK, I've now retested the mjpeg utilities, and my suspicions about the CMOV instructions seem to be confirmed (opcodes 0F 4x xx looks like CMOV). Dumps for two of the utilities are as follows :

JPEG2YUV executed an invalid instruction in

module JPEG2YUV.EXE at 0177:00403144.

Registers:

EAX=00000000 CS=0177 EIP=00403144 EFLGS=00010202

EBX=00000002 SS=017f ESP=008cf450 EBP=008cf478

ECX=00000000 DS=017f ESI=009f0489 FS=0d0f

EDX=00000001 ES=017f EDI=008cf490 GS=0000

Bytes at CS:EIP:

0f 46 f2 89 34 24 e8 31 a1 02 00 8d 50 01 39 c6

Stack dump:

009f0489 0000005c 000003fe 0042f8e8 008cf8c4 00000000 00000000 008cf490 00000002 008cf890 008cf8a8 00402f82 00000002 008cf490 0042f8e8 008cf8c4

MPEG2ENC executed an invalid instruction in

module MPEG2ENC.EXE at 0177:004167f5.

Registers:

EAX=ffffff00 CS=0177 EIP=004167f5 EFLGS=00210292

EBX=000000ff SS=017f ESP=007af940 EBP=007af948

ECX=000000ff DS=017f ESI=007afc10 FS=2bf7

EDX=00474960 ES=017f EDI=00474960 GS=0000

Bytes at CS:EIP:

0f 4e c8 83 c2 02 40 66 89 0f 3d 00 02 00 00 75

Stack dump:

007afc10 007afa18 007af978 0040591a 007afc18 007afa18 007af994 78001385 007c0000 00000000 00000200 00000000 008d057c 007afc10 007af9e8 004026eb

@ CyberyogiCoWindler :

"A BIOS flaw (that prevented PCI cards from preemtive multitasking)" wouldn't affect Linux, AFAIK. Linux likes to handle all the hardware itself, so either it too has this limitation, or it's a hardware issue. Just my 2c, based on limited knowledge.

Joe.

Link to comment
Share on other sites

1. The SSE issue is the same, I want to prevent Flash Player 9.0.280.0 crashing FireFox.

This is still unresolved. When larryb123456 installs his Pentium III and retests the Flash Player, I will be ready for the next step.

2. OK, I've now retested the mjpeg utilities, and my suspicions about the CMOV instructions seem to be confirmed (opcodes 0F 4x xx looks like CMOV). Dumps for two of the utilities are as follows :

JPEG2YUV executed an invalid instruction in

module JPEG2YUV.EXE at 0177:00403144.

Registers:

EAX=00000000 CS=0177 EIP=00403144 EFLGS=00010202

EBX=00000002 SS=017f ESP=008cf450 EBP=008cf478

ECX=00000000 DS=017f ESI=009f0489 FS=0d0f

EDX=00000001 ES=017f EDI=008cf490 GS=0000

Bytes at CS:EIP:

0f 46 f2 89 34 24 e8 31 a1 02 00 8d 50 01 39 c6

Stack dump:

009f0489 0000005c 000003fe 0042f8e8 008cf8c4 00000000 00000000 008cf490 00000002 008cf890 008cf8a8 00402f82 00000002 008cf490 0042f8e8 008cf8c4

MPEG2ENC executed an invalid instruction in

module MPEG2ENC.EXE at 0177:004167f5.

Registers:

EAX=ffffff00 CS=0177 EIP=004167f5 EFLGS=00210292

EBX=000000ff SS=017f ESP=007af940 EBP=007af948

ECX=000000ff DS=017f ESI=007afc10 FS=2bf7

EDX=00474960 ES=017f EDI=00474960 GS=0000

Bytes at CS:EIP:

0f 4e c8 83 c2 02 40 66 89 0f 3d 00 02 00 00 75

Stack dump:

007afc10 007afa18 007af978 0040591a 007afc18 007afa18 007af994 78001385 007c0000 00000000 00000200 00000000 008d057c 007afc10 007af9e8 004026eb

My older P6CPU.VXD Emulator will handle these. Since it is not a Patcher, it will not affect any File Caches. I don't know if there are other instructions that would need emulating.

Link to comment
Share on other sites

Support for CMOV can be determined from the CPUID instruction results. Interesting enough, this AMD Application Note omits the K6-x+ and the even rarer K6-x-P.

The "+" versions of the K6-2 and K6-3 were designed as low power variants of the normal CPUs (with larger cache?) for uncooled industrial PCs, settopboxes, laptops, plasma TV sets or home organs with integrated PCs and such stuff. They were rated to run on lower voltage than the normal release, but by the employed material they could bear also the standard voltage without problem when cooled like the normal version. So they soon became cult as upgrade CPUs and due to their rarity the price skyrocketed. In 2006 I paid on eBay for my AMD K6-3+/400 1.6V still 45.63EUR, when normal Socket 7 CPUs were already tossed out for few EUR. This specimen runs well on 550MHz and stays quite cool (currently 41°C with my nearly silent fan and fairly small heatsink). So far I remember, it was the most advanced Socket 7 CPUs ever made. Even faster versions (official rating up to 600MHz?) were rumoured to exist, but almost no unmodified mainboard could run it properly.

I don't think that the "+" version had additional instructions, only a larger internal cache.

Link to comment
Share on other sites

I don't think that the "+" version had additional instructions, only a larger internal cache.

I know. Although I've never owned a K6-III+, I've been interested in it, way back when.

Then again, you failed to read the Application Note I've posted a link to properly: it contains a utility to chech that... :) here's the direct download link: cpuid_ex. So just download the .zip, extract the .exe, run it in a DOS Box, and we all shall know for sure! You're the only one around owning a K6-III+, so you're the only one who can do it and post the results here for all of us to know it. Just as an example, here're the results for my own Athlon XP-M 2800+ (overclocked, running @2333 MHz, and doing it at 42°C!):

N:\>cpuid_ex
features = 000017f7
CPU supports CPUID: y
CPU supports CPUID STD: y
CPU supports CPUID EXT: y
CPU supports TSC: y
CPU supports CMOV: y
CPU supports MMX: y
CPU supports 3DNOW: y
CPU supports 3DNOW_EXT: y
CPU supports AMD-K6-MTRR: n
CPU supports P6-MTRR: y
CPU supports SSE MMX: y
CPU supports SSE FPU: y

Link to comment
Share on other sites

I don't think that the "+" version had additional instructions, only a larger internal cache.

I know. Although I've never owned a K6-III+, I've been interested in it, way back when.

Then again, you failed to read the Application Note I've posted a link to properly: it contains a utility to chech that... :) here's the direct download link: cpuid_ex. So just download the .zip, extract the .exe, run it in a DOS Box, and we all shall know for sure! You're the only one around owning a K6-III+, so you're the only one who can do it and post the results here for all of us to know it.

Is my CPU really that exotic? I guess it is like the mythical DAF car that although it was not really fast, can run backwards as fast as forward.

Ok, here is the result of my K6-3+/400:

H:\myTemp>cpuid_ex
features = 000009b7
CPU supports CPUID: y
CPU supports CPUID STD: y
CPU supports CPUID EXT: y
CPU supports TSC: y
CPU supports CMOV: n
CPU supports MMX: y
CPU supports 3DNOW: y
CPU supports 3DNOW_EXT: y
CPU supports AMD-K6-MTRR: y
CPU supports P6-MTRR: n
CPU supports SSE MMX: n
CPU supports SSE FPU: n

I guess Transmeta Crusoe with its internal realtime cross-compiler in flash rom was the only even stranger CPU.

Nasty is only that similar flash rom controlled techniques are used nowadays in the HDCP copy protection, including fully automated firmware upgrades. Thus any BluRay manufacturer, hacker or evilminded government may easily destroy your entire HDCP capable hardware by sending through TV broadcast a malicious update that contains invalid decryption keys and blacklists all legal update sources. Because the stuff is fully "security by obscurity" and overwrites the flash rom in any connected HDCP capable hardware, it is the perfect method to destroy a nation's communication infra-structure once all people have upgraded their hardware to the allegedly so great and modern HDTV stuff. That's another reason why I don't trust in flash roms. That the whole crap is supported by mainboard chipsets and graphic cards and nowadays even regular Pentiums can update their microcode through a flash upgrade makes it even scarier.

Link to comment
Share on other sites

I don't think that the "+" version had additional instructions, only a larger internal cache.

I know. Although I've never owned a K6-III+, I've been interested in it, way back when.

Then again, you failed to read the Application Note I've posted a link to properly: it contains a utility to chech that... :) here's the direct download link: cpuid_ex. So just download the .zip, extract the .exe, run it in a DOS Box, and we all shall know for sure! You're the only one around owning a K6-III+, so you're the only one who can do it and post the results here for all of us to know it.

Is my CPU really that exotic? I guess it is like the mythical DAF car that although it was not really fast, can run backwards as fast as forward.

Ok, here is the result of my K6-3+/400:

H:\myTemp>cpuid_ex
features = 000009b7
CPU supports CPUID: y
CPU supports CPUID STD: y
CPU supports CPUID EXT: y
CPU supports TSC: y
CPU supports CMOV: n
CPU supports MMX: y
CPU supports 3DNOW: y
CPU supports 3DNOW_EXT: y
CPU supports AMD-K6-MTRR: y
CPU supports P6-MTRR: n
CPU supports SSE MMX: n
CPU supports SSE FPU: n

Here is the result, from running cpuid_ex, for my K6-2/550:

features = 000008b7

CPU supports CPUID: y

CPU supports CPUID STD: y

CPU supports CPUID EXT: y

CPU supports TSC: y

CPU supports CMOV: n

CPU supports MMX: y

CPU supports 3DNOW: y

CPU supports 3DNOW_EXT: n

CPU supports AMD-K6-MTRR: y

CPU supports P6-MTRR: n

CPU supports SSE MMX: n

CPU supports SSE FPU: n

Note the major difference between the K6-2 and K6-3 processors is that the K6-3 supports an extension of the 3DNow instruction set. (My understanding is that 3DNow provides some of the functionality of the SSE instruction set to the AMD K6 processors).

So, some programs which run successfully on the K6-3 may not run successfully on the K6-2 (like GOM Player?). And, programs which run successfully on the K6-2 or K6-3 (because of 3DNow) may not run successfully on the Pentium II (no SSE) (like some versions of Flash on YouTube?).

Link to comment
Share on other sites

Was there really an ISA mainboard for higher CPUs than the DFI K6BV3+/66.

The SOYO board that I referred you to will use up to a 3.06 GHz Pentium 4 with Hyper Threading :D Not to mention the fact that all of the drivers for this board also work with systems back to Windows 95 (with the one exception of USB 2.0).

There are a multiplicity of Pentium III boards that support ISA, including some from Intel. The MOBOT website has a very good search system, you can look around there.

- Are there similarly fast ISA mainboards without the infamous PCI bus preemption bug?

I must confess I am unfamiliar with this issue.. :unsure:

...my AMD K6-3+/400 1.6V ... runs well on 550MHz ... So far I remember, it was the most advanced Socket 7 CPUs ever made. Even faster versions (official rating up to 600MHz?) were rumoured to exist, but almost no unmodified mainboard could run it properly.

Somewhere around here I have an AMD K6-2 570MHz chip, AFAIK it was the highest rated one, and very rare. I never actually used it on a daily basis, only experimented with it a couple of times. It POSTed properly on a Shuttle HOT 591P motherboard, I remember there was an odd setting that I had to figure out, as it required a different frequency than a 550MHz chip.

Link to comment
Share on other sites

Was there really an ISA mainboard for higher CPUs than the DFI K6BV3+/66.

The SOYO board that I referred you to will use up to a 3.06 GHz Pentium 4 with Hyper Threading :D Not to mention the fact that all of the drivers for this board also work with systems back to Windows 95 (with the one exception of USB 2.0).

There are a multiplicity of Pentium III boards that support ISA, including some from Intel. The MOBOT website has a very good search system, you can look around there.

I remember that when I bought my K6-3+/400 CPU on eBay, it turned out that my half-toasted DFI P5BV3+ mainboard could not run it at all (black screen). Thats why I bought the K6BV3+/66 mainboard, which mainly had a stronger core voltage supply, but likely also BIOS changes to support K6-3+. I think I read already about the SOYO board, but I could not use it without severe metal work because as an ATX board it did not fit into my Highscreen Colani bigtower (that was an AT initially designed for a 486/50 mainboard that I fed with an AMD 486/100 CPU @ 150MHz and for this I had to heat (not cool) the I/O chip with a resistor to prevent page faults in cold state). I already had sawed out some sheetmetal to fit a modern power supply, because despite the initial one had the size of 3 stacked modern PSU, it delivered only 150W or so which made my first SCSI CD burner (and also the initial Quantum Bigfoot 5 1/4'' harddisk(?)) trip and write rubbish. But getting this long board inside (which additionally had less ISA slots) would have been mechanically too complicated to be worth the effort.

- Has anybody ever made an adapter (for PCI, PCI-X or even USB3.0?) to add ISA slots to a modern mainboard?

Regarding industrial and scientific PCs containing special or homebrew ISA cards (e.g. Biomuse EEG interface card) it makes sense that such stuff exists. Mechanically it could be e.g. a case with mini ATX board placed in a 5/14'' or power supply chute with adapter cable running down to an ISA-only special mainboard without CPU and RAM. But I expect it may cost a moon price due to low demand.

Link to comment
Share on other sites

...I think I read already about the SOYO board, but I could not use it without severe metal work because as an ATX board it did not fit into my Highscreen Colani bigtower (that was an AT initially designed for a 486/50 mainboard that I fed with an AMD 486/100 CPU @ 150MHz and for this I had to heat (not cool) the I/O chip with a resistor to prevent page faults in cold state). I already had sawed out some sheetmetal to fit a modern power supply, because despite the initial one had the size of 3 stacked modern PSU, it delivered only 150W or so which made my first SCSI CD burner (and also the initial Quantum Bigfoot 5 1/4'' harddisk(?)) trip and write rubbish. But getting this long board inside (which additionally had less ISA slots) would have been mechanically too complicated to be worth the effort...

Ah, trying to preserve an AT tower. I don't blame you, I had collected a bunch of nice AT towers for future use at one time myself. But even so, there is still hope. ;)

Take a look at the Gigabyte GA-6VA7+, also Here and Here. It's a Baby AT Pentium III board. I have yet to be able to get hold of one of these however, talk about rare!

Link to comment
Share on other sites

1. The SSE issue is the same, I want to prevent Flash Player 9.0.280.0 crashing FireFox.

This is still unresolved. When larryb123456 installs his Pentium III and retests the Flash Player, I will be ready for the next step.

Yes, it will be interesting to see the outcome of the P3 transplant. From what I've read, the P3 performance is similar to the P2 with the same clocking, so this will be a good indicator of patch (invalid instructions that don't throw an exception) vs. grunt (throughput) as responsible for the Flash artifacts. My bet is it's grunt that's lacking, which is the best-case outcome as far as the patch is concerned. In any case, Flash artifacts are of secondary importance to me, I just want to stop the lock-ups.

2. OK, I've now retested the mjpeg utilities, and my suspicions about the CMOV instructions seem to be confirmed (opcodes 0F 4x xx looks like CMOV). Dumps for two of the utilities are as follows :

JPEG2YUV executed an invalid instruction in

module JPEG2YUV.EXE at 0177:00403144.

Registers:

EAX=00000000 CS=0177 EIP=00403144 EFLGS=00010202

EBX=00000002 SS=017f ESP=008cf450 EBP=008cf478

ECX=00000000 DS=017f ESI=009f0489 FS=0d0f

EDX=00000001 ES=017f EDI=008cf490 GS=0000

Bytes at CS:EIP:

0f 46 f2 89 34 24 e8 31 a1 02 00 8d 50 01 39 c6

Stack dump:

009f0489 0000005c 000003fe 0042f8e8 008cf8c4 00000000 00000000 008cf490 00000002 008cf890 008cf8a8 00402f82 00000002 008cf490 0042f8e8 008cf8c4

MPEG2ENC executed an invalid instruction in

module MPEG2ENC.EXE at 0177:004167f5.

Registers:

EAX=ffffff00 CS=0177 EIP=004167f5 EFLGS=00210292

EBX=000000ff SS=017f ESP=007af940 EBP=007af948

ECX=000000ff DS=017f ESI=007afc10 FS=2bf7

EDX=00474960 ES=017f EDI=00474960 GS=0000

Bytes at CS:EIP:

0f 4e c8 83 c2 02 40 66 89 0f 3d 00 02 00 00 75

Stack dump:

007afc10 007afa18 007af978 0040591a 007afc18 007afa18 007af994 78001385 007c0000 00000000 00000200 00000000 008d057c 007afc10 007af9e8 004026eb

My older P6CPU.VXD Emulator will handle these. Since it is not a Patcher, it will not affect any File Caches. I don't know if there are other instructions that would need emulating.

Well, there's one way to find out if other instructions are required, and that's to try it (the patch). From what I've read, CMOV seems to be the main enhancement to the instruction set from P1-MMX to P2, although Linus says the CMOV instructions actually reduce performance in newer CPU's (so don't use them folks!).

Joe.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...