UniPCemu build 2021/06/09 16:29 is now live!


A smaller update this time, with some fixes and improvements on existing hardware.

UniPCemu:

  • Fixed half CPU clock DMA timing.
  • Improved CPU timeout time.
  • Serial modem: dialing the ; only results in staying in command mode and reporting the result OK.
  • Serial modem: ATH when not connected simply reports OK.
  • Improved modem SCP scripts to use a simple timeout on the initial request to make sure it receives it correctly.
  • Added a seperate function to initialize data for the next packet server stage.
  • Fixed the information stage of the packet server.
  • Made the login protocol of the packet server ignore the second input of CRLF and LFCR inputs.
  • Simply keep retrying to send if sending fails using the TCP modem or packet server connection.
  • Moved the Sound Blaster to IRQ 7.
  • Improved packet server detection of packet capture devices.
  • Made the ethernet card setting for the packet server use 0 for listing the network cards instead of 255, making it able to use the entire detected range of cards (including #255).
  • Improved error handling when opening a pcap capture device on non-Windows devices. Terminate the app in that case on all devices.
  • Improved description on the used device for the packet server.
  • Improved Windows pcap support to load dynamically instead of hardcoded in the executable.
  • Allow more than 255 network cards.
  • The packet server now properly responds to ARP responses for connected SLIP clients, allowing for users to have their own IP address instead of sharing the host IP address.
  • Fixed IP address check not to apply to non-IPv4 packets when using IPv4 packets.
  • Fixed packet server termination on disconnect to actually terminate the correct client ID.
  • Fixed packet server termination not to process invalid disconnecting of disconnected clients anymore.
  • Shortened BIOS ROM allocations to an unchanging size, depending on the object type.
  • Updated SDL2 to the latest version.
  • Soundfont synth: Improved active sense to use more simple locks.
  • Soundfont synth: Further protection of invalid active sense states and deadlocks.
  • Removed all PSP endianness defines now declared in the common emulator framework headers.
  • Improved directory listing to perform less checking if possible.
  • Improved directory listing to abort if nothing more can be parsed.
  • Optimized the music player to not reload the list when returning to the list from a played file.
  • Apply file filters to all available file browsers.
  • Optimized the TSC and APIC timing.
  • Reduced the 80386+ default IPS clock speed to 3 MIPS.
  • Added support in the Paging unit to translate addresses from memory without TLB or exception throwing, returning it as a valid/invalid translated address instead.
  • Always map to physical addresses when reading virtual memory without paging enabled.
  • Implemented a virtual memory viewer as an alternative to the physical memory viewer in the debugger.
  • Renamed the old memory viewer for physical to use said information in it's titles.
  • Fixed the debugger to properly terminate when shutting down the emulator.
  • Improved displayed colors for the memory viewer unmapped addresses in RAM and Paging.
  • MMU: Don't do any special handling for unmapped debugger memory viewer addresses.
  • Improved unmapped debugger physical memory table headers for active items to change color like the active item contents.
  • Improved unmapped physical memory headers and content colors.
  • Fixed previous IP debugger display when above the 64K range.
  • Leave the readonly setting unchanged when changing hard disks and floppy disks to a different disk image. Only clear it when only unmounting the disk image without a replacement disk image.
  • Cleaned up unused variables.
  • Combined the memory viewer privilege level selection and mode into a single input during the same step (Always square to open the memory viewer, normal input for an address, followed by one of the face buttons for the different modes).
  • Improved the debugger to show the descriptor cache contents for 286+ CPUs.
  • Reordered SS to display and log after CS, as both always should be valid.
  • Resetting the CPU lifts the halt state.

Common emulator framework:

  • Optimized sound buffering to become faster.
  • Optimized limit range checking.
  • Don't filter any samples in the sound module when not having any samples to filter.
  • Don't include wpcap.dll/Packet.dll in server winpcap builds anymore. These come from external locations (installed by the user).
  • Added support for more entries to be allocated in the memory manager.
  • Improved existing sound buffer filling to become idle again when not rendering any samples anymore.
  • Improved existing sound buffers becoming new again.
  • Improved new or reset sound buffers starting to reset the sound filters and channels for the new samples.
  • Fixed MinGW 64-bit sprintf define.
  • Removed the pcap library inclusion and dll files from the project.
  • Shortened memory allocation names.
  • Optimized memory allocations to use only 5% of it's originally used memory.
  • Made all SDL endianness changing on the PSP handled in the SDL_rest.h header.
  • Increased PSP timeout when terminating.
  • Simplified PSP exit callback handler.
  • Improved timer thread terminating response.
  • Improved thread terminating response when already terminated on SDL 1.2.
  • Improved main thread terminating when required.
  • Improved detection of the app actually shutting down with time limits.
  • Improved main PSP initialization code.
  • Made the PSP builds have complete control over the quit thread handling, implementing SDL_main manually instead of the library version.
  • Improved directory listing with seperated file detection.
  • Fixed the new file vs directory checking to be PSP-only.
  • Check for file before setting the result filename of directory list entries.
  • Made directory listing filter by file or directory available.
  • Emu Misc: don't apply file/directory filters to delete_file.
  • Made safe strcat more safe.
  • Improved safe strcat functionality.
  • Further optimized safe_strcat.
  • Fixed Windows MinGW subsystem to be properly compiled.

So, besides the small bugfixes, this means:

  • The emulator is now up to 75% faster (depending on the amount of MIDI channels rendering), becoming the same speed as older builds again.
  • The packet server can now use it's own IP addresses that aren't the same as it's host.
  • Winpcap is now dynamically linked, meaning that it's become an optional component. The DLL files for it aren't supplied anymore and the user has to install their own libraries on Windows (Winpcap, NPcap or compatible). This also fixes compatibility issues with different operating system versions on Windows. The emulator can be run without the library installed, as long as the network card functionality and packet server is disabled in the settings. Not having the library (properly) installed with the server enabled will cause it to log an error and terminate the application instead of causing Windows itself to give errors for library files and preventing the application to start up always without the libraries installed.
  • The debugger has a new memory viewer option with privilege level and paging options, with the memory display and selected address in different colors depending on readability at the specified privilege level (or existence of RAM in general for the physical memory viewer).
  • The PSP builds are now properly able to terminate when terminating the app instead of crashing or incorrectly terminating.
  • Operating systems inside the emulator will be able to detect the Sound Blaster IRQ better.
  • The Compaq Deskpro 386 and other architectures will be able to POST once again due to a CPU reset clearing halt state on the processor.
  • Read-only no longer is cleared when swapping disk images while not clearing the mounted image completely (choosing another disk image without unmounting it first).

Files

UniPCemu.apk 4 MB
Jun 09, 2021
UniPCemu_PSP.zip 1,011 kB
Jun 09, 2021
UniPCemu_win64.zip 1 MB
Jun 09, 2021
UniPCemu_win64server.zip 1 MB
Jun 09, 2021
UniPCemu_win32.zip 1 MB
Jun 09, 2021
UniPCemu_win32server.zip 1 MB
Jun 09, 2021

Get UniPCemu

Leave a comment

Log in with itch.io to leave a comment.