Version 0.7 (2019/3/2)
Pre-release
Pre-release
This version provides a huge number of bug fixes and usability improvements, but the most important improvement is performance.
The massive boost in performance has been achieved thanks to several major changes:
- The values for the sign, zero and parity flags are pre-calculated and cached
- The addressing states are pre-calculated and cached
- Destination and Source registers are pre-calculated, which makes many opcodes run faster as there's no need to check for the Direction condition
- When compiled in Release mode, opcodes are accessed through an array of delegates, instead of a series of Select/Case
- Registers are now a single structure that mimics a
union
in C/C++ - When in text mode, only the necessary (changed) portions of the screen will be updated
To obtain the best performance possible, set the emulator's CPU Clock to 44.7MHz and the Emulation Speed to 200%.
The necessary adjustments have been made in order to keep most programs from running absurdly fast, while maintaining the desired performance boost.
Here's a comparison of x8086NetEmu (Current) against Mike Chambers' fake86 (Saved):
If you think that's pathetic, check this comparison against release 0.1...
This release includes two versions:
- x8086NetEmu_Win32: Compiled for Windows and with sound support.
- x8086NetEmu_XP: Cross-platform version, compiled without sound support. Use with the latest version of mono. Refer to this post for more information.
Both versions include two executables:
- x8086NetEmuWinForms: This version will run under a WinForm form and will use GDI+ to render the text and graphics.
- x8086NetEmuConsole: This version uses the Windows console to render the text. You can improve the rendering by using an appropriate font for the console.