@crunklord420 I can't get this thing to run properly for some reason for Windows vmware (Linux vmware works fine). It isn't an HPET issue as i suspected since you seem to use g_ticks updated by the ISR this time, and I tried replacing it with GetTSC/cnts.time_stamp_freq to no avail, so I'm not sure what's exactly happening here. I get 300+ fps (which is good) but the game seems to fail to keep track of time and everything is in slow motion. (ps the libcyberchud binary i build keeps faulting for some reason even though I buit it just as outlined in the readme)
@qint oh the libcyberchud, not the linux binary. I don't know man. Make sure you upload the data.wad along with your lib, if there's any difference between builds (there shouldn't be), the data.wad will have the wrong memory addresses.
@qint maybe, but also not really. I think I may have forgot to adjust the LVL_CNT define somewhere because I renamed the maps for this new release. There's no actual multiple levels, just cruft.
@crunklord420 ok, seems like the interrupt takeover (or PIT?) WAS the issue, I removed everything that fiddles with the interrupt, and removed g_ticks++ in the IRQ with just returning __builtin_ia32_rdtsc() (~15 cycles, didn't make any difference since time_diff seemed to always be upscaled to milliseconds) and completely commented out the sound subsystem, and everything seems to run smoothly on Windows vmware.
i attached the git diff in case you need it, overall i can only guess either the takeover of IRQ_TIMER (0x20) by my_irq_isr causing issues, or the PIT frequency isn't being handled properly (not too likely).