Hello everyone,
I am pleased to announce NEWAX version 0.9, with the following changes:
- Added /F switch (Force installation, bypasses the 4F07h working check — use with caution)
- Improved behavior of 4F07h handler: unknown or unmanaged calls are now transparently passed to the BIOS instead of returning a failure code
- NEWAX now attempts installation even on cards where 4F06h is absent — use with extreme caution, behaviour in this case is currently undocumented
The updated binary is attached to this post.
---
On the performance side, some precise measurements on a GT550Ti / Intel Core i3-4170T:
- 4F07h BL=00h (Set Display Start Address, no retrace wait) via VBIOS: 2197 PIT cycles
- 4F07h BL=00h via NEWAX (direct CRTC register writes): 0 PIT cycles
The VBIOS overhead is entirely eliminated for BL=00h. For BL=80h (set during retrace), both the VBIOS and NEWAX must wait for the retrace signal via port 3DAh/3BAh polling, so the timing difference in that case is negligible.
For applications that call 4F07h BL=00h continuously — scrolling, page flipping, animation without retrace sync — the improvement is a measurable real-world difference.
---
Looking ahead, before NEWAX moves to beta release the following work is planned:
1. A reliable Nvidia-specific detection method, independent of VBIOS signatures, to ensure /F is safe to use without risking interference on non-Nvidia hardware.
2. A systematic compatibility map across Nvidia cards, covering four categories:
- Cards with both 4F06h and 4F07h functional
- Cards with 4F06h functional but 4F07h broken (current primary target)
- Cards with neither 4F06h nor 4F07h functional
- In all cases: card model, tested software, and any issues observed
Once this map is complete and the results are consistent, NEWAX will move to beta.
If you have Nvidia hardware available for testing — especially older cards from the GeForce 6/7 era or earlier — your contribution would be very valuable at this stage.
Thank you as always.
Marco
@Falcosoft
Thank you for the suggestion and the kind words. The CRTCInfoBlock extension would indeed be very useful for CRT users, and restoring it is technically feasible in principle — intercept 4F02h with bit 11, pass the standard mode set to the BIOS, then program the CRTC registers from the block. The real obstacle is the pixel clock: without reprogramming the Nvidia PLL for the correct PixelClock value, the refresh rate cannot actually change. PLL programming on Nvidia is undocumented, generation-specific, and would require days of remote debugging via serial with Turbo Debugger on dedicated AGP hardware. The investment is too high relative to the benefit at this stage. It stays on the long-term list, but I would not want to promise something I cannot deliver in a reasonable timeframe.
P.S. Quick test report: FALSSANI.EXE on GT550Ti — without NEWAX, image corrupted above the 4MB boundary; with NEWAX loaded, image correct across the full VRAM range. The 4F06h fix is confirmed working on this card.
@EduBat
Try new version 0.8 or 0.9 (limit pages)