Source code including disassembly of the major MK3 hardware based Pump It Up games that were recompiled as 32-bit Linux executables.
This is a raw code drop with the workspace of this endeavour. I got permission to release it without any cleanup or warranty. You are on your own figuring things out from here.
Feel free to ask questions and discuss stuff in the issues section. Contributions are also welcome.
Some more information fromby the original author/developer:
http://swars.vexillium.org/ - the same method as detailed there was used. Basically, the (dos4gw 32 bit) executables were disassembled and all the protected mode shit was patched out (mainly port io and PIT stuff for timers) and then they were reassembled as 32 bit linux executables, adding some HLE for the IO, music and voodoo gpu shit and swapping all the graphic calls for proper opengl calls.
Instead of running on a timer, the IO now runs on the same thread as the main game thread, so if your machine/io/whatever cannot keep up with full speed for rendering and io it will slow down. The dos games poll the io on 240 hz, so if you cannot keep that rate it will be slower. For example, the decryption is also done in software which takes a bit of compute power. As far as I remember, for each bit to decrypt there is like 11 bits overhead in port io commands with the crypt "chip".
If I was to redo this stuff today I would probably do some things different and more optimized but on my mk9 everything was fine eventually so I gave up on improvements. This project took a long time to do and I don't think even I could do an additional game at this point. The games required a lot of assembly fixes (e.g. there was tons of null pointer crashes because 0 is a mapped address for the original games, which doesn't quite work on linux, so I had to dig through all their causes and properly fix em), the ancient calling convention method they use made it hard to just hook into regular C functions and I used multiple other tools to process the generated assembly).
This is like the 3rd iteration of trying this, I think i released a dosbox based version here at some point (1st iteration) and then a 2nd iteration based on windows XP ntvdm with dgvoodoo. The dosbox version was too slow from all the port io and there was no good way emulate the voodoo stuff. The ntvdm based version worked kind of ok, but needed a custom dgvoodoo and only ran on windows xp 32 bit... So eventually I tried this and, after years of work, eventually completed all of these games. But as of now this is also some years in the past, so I forgot most stuff I did