QSpice under Wine in Linux

There is a fix to WINE here:

Can anybody give it a try? I don’t have 32 bit library support in my Linux distribution so I don’t have a chance to build WINE with the patch.


This is interesting. Reading that thread, it may not be an ideal fix, and I have to imagine it introduces other issues, but it’s definitely progress. If anyone can try it out and comment back, I’d love to hear about their experience.

It seems that QUX.ede doesn’t need 32 bit library so I built a wine WoW64 and it works! Unfortunately I can’t use QSPICE64.exe nor QSPICE80.exe without 32 bit but at least the schematic works. Don’t try it so much and can’t tell anything more than ‘it works’ though.

Best wishes.


I am testing another way around the problem. I use the schematic editor of EAGLE 7 to draw the schematic and write a program to convert to QSpice. First attempts look good, but it is a lot of work. I’m afraid Team Engelhardt or Team Wine have solved the problem faster.


Looks like WINE has a way to go. The graphical objects are not dithered which means that they are likely rendered with Bresenham’s algorithm in the CPU. That severely limits the usefulness of viewing waveforms on WINE since even an integrated GPU is very, very many times faster than rendering with the CPU.



This is how it works under Linux with wine. Drawn as EAGLE schematic, converted to QSpice schematic, edited in QSpice, simulated in QSpice.

Yeah, below shows what it’s supposed to look like next to WINE’s rendering.


Nice progress. How responsive is the waveform viewer? There is a lot of data in those waveforms (they are uncompressed). If they are CPU-rendered, I would expect it to be slow.

edit: Wine does support GPU rendering. I’m curious if QSPICE is GPU or CPU rendered in this example.


Actually, if all the line widths are set to one pixel, the CPU with Bresenham competes very well in speed with DirectX and the GPU. But most people prefer linewidths wider than one pixel on a modern monitor.

Somewhere I have a line drawing benchmark tool that can be used for comparing CPU vs GPU for different line types if anyone is interested. I used it to architect QSPICE’s graphics.


Hello Jeff

At the moment I can say little about the waveform viewer, I just see that it displays something.

My focus at the moment is the schematic converter from EAGLE to QSpice, if that works I will see further.


Okay I got this. In Tom’s example it was quite smooth in both the processes of drawing schematic and wave viewing (after all the wave data file is only 43.5kB).

In one of the example circuits packed whith QSPICE, SMPS.qsch, I got a 126.5MB qraw data after simulation. And when open the qraw file, trace of V(out) came out immediately but it takes about 3 seconds to render the full range of I(L1) data!

Btw, how do I know if qraw data is rendered by GPU in WINE? I got a log file by WINEDEBUG=+wgl but it’s 20,000 lines and I have no idea where to go.

I’m glad you got it running. Were you using the Wine patch, or Tom’s schematic converter?

I don’t know much about how Wine works and how to check GPU vs CPU rendering, but based on the time required to render that waveform, I’m going to guess it was rendered using the CPU. QSPICE doesn’t compress the waveform data since it expects a GPU.

Hello Jeff

It can’t have been my program, that’s even more study than program. At the moment it knows only some components and structures and is only in my hand.

I think it is the task of the manufacturers of schematic editors to integrate a converter to QSpice in their programs.

I use extra the old EAGLE schematic editor, because the development of this program is finished. This way I don’t have to constantly re-develop behind changes.


Hi Tom,

That would certainly be interesting if it happens! It makes sense why you use EAGLE considering you don’t want to redevelop code every time a new version comes out. Thanks for your effort and experimentation.


This is just a test to see if it is possible to upload a PDF.

QEgleBeta.pdf (522.3 KB)

Hi Tom and others,

I have installed QSPICE on a Linux machine using WINE and using wincfg to set the Hide Windows Version option. It works, except the color issue. In the schematic editor I set all colors to white and background to black. I can see everything except the grid, but when I add a part everything except the part I am adding disappears while I place/move the new part. Once it is placed, everything appears again. I have to guess a bit where to place parts and wires, so it is very frustrating but allows me to test QSPICE. For the waveform viewer I set the background to a light yellow and axes/text to black. I can see everything except the grid (I can’t change the grid color for some reason). And it only displays the last plot variable that I select (if on the same plot pane). If I create multiple plot panes and put separate variables on each pane, then I see them.

So it is working, but very frustrating. This it is not a solution moving forward. I started looking at exporting the data to a file that I would then import into Octave, but have not gotten too far on it.

We need to push the WINE team to fix it at their end. :slight_smile:


Hello people.

The work on the converter is going on. You can see the current status in the notes. In a few days/weeks I might release a beta version. Then more people can work on extending the libraries.
QEagleAlpha.pdf (877.4 KB)

1 Like

As I pointing out in private communication, there exists a command line utility for extracting the waveform data. Documented in the Help: QSPICE™=>Waveform Viewer=>
QUX.exe -Export <expr1[,expr2[,…]]> [Npoints] [CSV|SPICE|ASCII].

Calling the solver itself, QSPICE64.exe or QSPICE80.exe, from the command line has always been supported.


1 Like

If you compile WINE with the patch mentioned in
then you solve the background color problem (please see graphs in my other comments in this thread). But there are still issues which keep it far from daily use. Here is what I found so far.

  • Schematic works (kind of) for small circuits. But it crashes frequently in a circuit consists of say tens of components, especially when you do the wiring.
  • I don’t have problem in wave viewing by now except that wine may not render the data by GPU. But that is not a big issue in my daily use, yet.
  • A very big problem is that, when you invoke the solver from QUX, the calculation finishes immediately as expected in background, but then it takes a VERY LONG time (several minutes in my case) to pop up the plot window.
    So here is my work flow now:
  • draw schematic in other tools (xschem, qucs, eagle, geda, kicad, LTspice, just mention a few) and generate the netlist
  • calculate in command line like wine QSPICE64.exe ***.cir
  • load wave viewer in command line like wine QUX.exe ***.qraw
    If you use xschem you can configure the flow to get some automation so you don’t have to key in the commands every time.
    The solver is really fast and the wave viewer fits my needs even in WINE. I don’t need to export to SPICE raw at all.

Here is finally an early beta version of the converter. There is still a lot missing, but you can already make tests with it. Since you can’t upload executables, I renamed it to “qeagle.h”. Before trying it out you have to rename it to “qeagle” without extend again. I hope it works on other computers too.
qeagle.h (130.6 KB)
Here is the basic library for EAGLE. It must also be renamed from “QSpice.h” to “QSpice.lbr” before use.
QSpice.h (41.3 KB)
Lastly, the notes describing how to use the program.
QEagleBeta.pdf (1.5 MB)

The program runs on Linux and is tested with Ubuntu 22.04. Windows users do not need the converter, because QSpice runs fine under Windows.

Have fun with it. Tom