VOGONS


x86EMU emulator releases

Topic actions

Reply 20 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

Btw the 64-bit fopen is used to access large disk images of 4GB and larger (also used by my sfdimg file format, to use 64-bit disk positioning. It supports up to 2TB disk images using 32-bit LBA). Although the LBA addressing is currently limited to 28-bits (LBA28 addressing of my ATA-1 hard disk controller emulation, so the current limit is about 126GB if I remember correctly(2^28 sectors using LBA addressing). On the PSP the memory stick (ms0:) can also be mounted directly (not supported on the PC yet).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 21 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

To start using the emulator, place the ROMs in the ROM directory (I'm using the Turbo XT BIOS as BIOSROM.bin, IBM VGA BIOS as OPTROM.1 and XT-IDE BIOS as OPTROM.2.

Create if needed and mount a hard disk image if you want hard disk emulation. Then:
Place the latest XT-IDE files in a floppy disk image, boot it using a MS-DOS floppy and run the XTIDECFG.EXE. Load the idext.bin image. Go to the configuration menu and select autodetect. Then go to the boot setting menu and set the default boot disk to 0(This will prevent it from trying to boot the hard disk, which isn't working atm). Go back to the main menu and select flashing the BIOS. Make sure that it's set to the correct chip (it's the chip listed in my earlier post, the numbers only (four numbers, NOT the mod version!). Set the Data Write Prevention option to Disabled to allow the ROM to be flashed and start the flashing. After flashing, it should request to reboot, press enter/escape to reboot. When the BIOS loads, it should leave the detected harddrives empty(So it will say something like this:
Master at 1F0:
Slave at 1F0*:
Master at 170: not found**
Slave at 170: not found**

* no not found when two harddisks mounted only.
** These are the CDROM drives. They report as not found when not inserted.
).

If no harddrives are mounted, the CDROM will be at the Primary ATA port(1F0) instead of the Secondary ATA(170).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 22 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

Btw I'm interested in those changes to get it running on Linux. I assume it can be added using some #ifdefs?
Can't you make some compatible Makefile.linux file (Just like I did with the Makefile.psp and Makefile.win)? Then I can add it to the project for linux compatibility. Atm you can build PSP builds by calling "make" or "make psp" and Windows builds by calling "make win". I can easily extend it with a Makefile.linux called with "make linux". For easy reference on how to do it, look at my Makefile.win (it's the most simple of the two).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 23 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

Something strange happens though: when I start a game like Commander Keen or Scandisk, the arrow keys and enter key doesn't work, but the numpad arrow keys and the numpad enter key does work instead? Can you see what's going wrong? The mapping is in emu/io/input.c. There's a big array (104 items) with the SDLK_xxx keys. Is there something wrong with it? Also, the emulator doesn't see the Lock keys(Scroll/Num/CapsLock). I don't see it updating the OSK LEDs?

Btw I might have called the keyboard based on it being typed 'blind', as it's called in my language, but I've just found out it's called 'touch typing' in English:s Glad I found out it's called differently in English. Yay Wikipedia:p

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 24 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

Btw here's a simple 4GB(actually 3805MB) bootable disk image made using the XTIDE BIOS and MS-DOS 6.22:

Filename
test.sfdimg.zip
File size
8.37 KiB
Downloads
86 downloads
File comment
Simple 3805MB disk image with MS-DOS 6.22 in 2 2GB partitions, bootable.
File license
Fair use/fair dealing exception
Last edited by superfury on 2015-09-07, 08:26. Edited 1 time in total.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 25 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest version:

Filename
x86EMU_20150907_1042.zip
File size
342.36 KiB
Downloads
80 downloads
File comment
x86EMU build 2015/09/07 10:42
File license
Fair use/fair dealing exception

- Added information text with file type and disk image size to the selection of disk images.
- Fixed 64-bit filesize being truncated to 32-bits. This caused disk images bigger than 4GB to use a wrong size (less than 4GB).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 26 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

Here's a newly createn 8GB(although paritioned as a total of1 4GB due to MS-DOS 6.22 fdisk limitations) hard disk image:

Filename
8GB.sdfimg.zip
File size
3.43 KiB
Downloads
77 downloads
File comment
8GB SFDIMG hard disk paritioned as 2GB and 1.66GB drives.
File license
Fair use/fair dealing exception

The same image, but with FDISK /MBR and SYS executed on the hard drive:

edit: attachment removed. MS-DOS is *NOT* freeware.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 27 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

When I'm trying to load Freedos (floppy disk version) I get "Freedos123" after which it does nothing. Anyone knows what's going wrong here?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 28 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest build:

Filename
x86EMU_20150908_1559.zip
File size
342.57 KiB
Downloads
73 downloads
File comment
x86EMU build 2015/09/08 15:59
File license
Fair use/fair dealing exception

- Fixed IDE/ATA hard disk emulation. It's now correctly reading and writing the hard disks.
- Optimized Superfury Dynamic Disk Image (SFDIMG files) hard disk image access.
- Moved BIOS hard disk image information up.
- Added support for .ima disk images.
- Added reboot requirements to changing mounted hard disk images.
- Fixed floppy disk geometries.
- Disabled unhandled port logging. Everything is working fine now.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 29 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

Just a fast little update:

Filename
x86EMU_20150908_1833.zip
File size
344.2 KiB
Downloads
78 downloads
File comment
x86EMU build 2015/09/08 18:33
File license
Fair use/fair dealing exception

- Added write disk vs read disk color indication LEDs (orange for writes, green for reads).
- Added ATA LED indicating disk access.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 30 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20150908_2130.zip
File size
342.72 KiB
Downloads
75 downloads
File comment
x86EMU build 2015/09/08 21:30
File license
Fair use/fair dealing exception

- Added locks to all output to text surfaces (making the application more robust in multithreading).
- Fixed keyboard. It was detecting it still was executing a command in some cases, when it's actually done already.
- Simplified text surfaces to fix bug displaying horizontal lines on the screen when not supposed to. Text surfaces are now redrawn completely when changed, instead of character changes only.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 31 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20150909_2018.zip
File size
344.37 KiB
Downloads
75 downloads
File comment
x86EMU build 2015/09/09 20:18
File license
Fair use/fair dealing exception

- Optimized dynamic image read/write of sectors.
- Optimized disk handler results.
- Optimized IDE/ATA hardware.

MS-DOS can now fully handle the mounted ATA hard disks (no errors anymore). Booting from a hard disk is still to be fixed (working on it). Windows 3.0 and MS-DOS now runs from hard disks (no corrupt/unfinished file writes anymore):D

Anyone knows why I'm getting a error 80h trying to boot the harddisk (timeout error?)? I'm using the Turbo XT BIOS v2.5 with XT-IDE BIOS set up for 8-bit ATA. All the harddisk operations are instant execution and finish(interrupt) atm (effectively no busy states since it finished immediately after sending the command byte or parameters/data(depending on the command)). So a timeout shouldn't occur booting the harddisk (everything finishes in 0 cycles after reading/writing/execution(misc. commands))?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 32 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

I've created a wiki with a manual on x86EMU:
https://bitbucket.org/superfury/x86emu/wiki

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 33 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20150910_1332.zip
File size
344.37 KiB
Downloads
74 downloads
File comment
x86EMU build 2015/09/10 13:32
File license
Fair use/fair dealing exception

- Applied changes to support linux (source code wise, currently untested on linux).
- Fixed some PSP vs linux bugs and 64-bit fopen. It should now work correctly.
- Increased responsiveness to input.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 34 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20150911_0013.zip
File size
344.17 KiB
Downloads
73 downloads
File comment
x86EMU build 2015/09/11 00:13
File license
Fair use/fair dealing exception

- Fixed hard disk booting by adding PPI I/O ports (port 0x62 and 0x63) emulation (tested with MS-DOS and Windows 3.0).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 35 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20150913_1940.zip
File size
345.32 KiB
Downloads
94 downloads
File comment
x86EMU build 2015/09/13 19:40
File license
Fair use/fair dealing exception

- Optimized various parts of the emulator (CPU&VGA).
- Fixed timing by increasing timing from microsecond to nanosecond range (allowing frequencies of the PIT higher than 1MHz).
- Added better support for linux builds.
- Added PPI hardware interface (simple buffers) for detecting floppy disk controller correctly.
- Added Lo-tech 2MB EMS Board emulation. The board currently implements 4MB EMS memory (256 16K blocks).
- Fixed port E9 hack logging an empty row with an empty buffer on program exit.
- Added ATA read verify sectors command. MS-DOS 5.0 can now correctly partition a hard disk.
- Fixed hard disk and floppy disk emulation. Now both hard disks and floppy disks can be booted correctly (it still requires you to initialise the MBR of an harddisk by calling "fdisk /MBR" or equivalent).
- Floppy disk drives are now correctly detected (2 floppy drives instead of previous 4/0 floppy drives).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 36 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20150917_2003.zip
File size
343.38 KiB
Downloads
77 downloads
File comment
x86EMU build 2015/09/17 20:03
File license
Fair use/fair dealing exception

- Added support for ATA long reads/write commands (only 512 bytes without error correction bytes).
- Optimized ATA read verify sectors command.
- Fixed and optimized ATA maximum cylinder count.
- Added support for the ATA current capacity words.
- Fixed CPU debugging Trap flag emulation.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 37 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20150921_2042.zip
File size
344.01 KiB
Downloads
79 downloads
File comment
x86EMU build 2015/09/21 20:42
File license
Fair use/fair dealing exception

- Started working on ATAPI emulation (currently CD-ROM drives are disabled in the ATA-controller).
- Moved softdebugger.txt to the wiki.
- Fixed harddisk creation/conversion when a reboot is required.
- Fixed disk generation in megabytes/gigabytes: Now powers of 1024 are used instead of 1000 (1024^2 bytes(1MiB) and 1024*3 bytes(1GiB)) instead of 1000000(1MB) and 1000000000(1GB).
- Reverted text surface generation to 8x8 font (to speedup rendering on slower PCs).
- Optimized adlib feedback lookup.
- Fixed harddisk read-only flags (<R> will now be displayed in the BIOS at the correct harddisk).
- Fixed all disk read-only defaults (Not read-only when a disk is mounted/changed, except for CD-ROM, which is always read-only).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 38 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20150927_1650.zip
File size
344.78 KiB
Downloads
83 downloads
File comment
x86EMU build 2015/09/27 16:50
File license
Fair use/fair dealing exception

- Improved keyboard input speed.
- PS/2 keyboard: Increased FIFO buffer to 32 bytes instead of 16 bytes to improve keyboard performance.
- Combined CPU thread with main thread for improved performance.
- Optimized text layer rendering.
- Optimized CPU ModR/M offset calculation.
- Updated high resolution timers to not waste unused time.
- ATA harddisk: Added flag for high-speed transfer (10MBs).
- Removed now unneeded locks and optimized the high resolution timers.
- Cleaned up initialisation checks.
- Minimized emulator BIOS "Normal Mode" timeout for VGA frames.
- Improved display rendering rate change detection.
- Improved multithread locking.
- Limited VGA thread locks to Input Status Register #1 and writes affecting display information (Totals, Retracing, Color depth etc.)
- Improved disk busy indicator updating.
- Improved VGA memory access time.

My 4.0GHz Intel i7 4790 currently gives 8086 MIPS ratings of up to 1.93 average with this build.

When set to Unlimited mode (locks to a high amount of IPS)
General Instructions: 1.58
Integer Instructions: 2.86
Memory to Memory: 2.00
Register to Register: 2.65
Register to Memory: 1.55
Performance Rating: 1.93

When set to Limited mode (locks to 333333IPS):
General Instructions: 0.88
Integer Instructions: 1.51
Memory to Memory: 1.04
Register to Register: 1.37
Register to Memory: 0.81
Performance Rating: 1.02

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 39 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20151017_2047.zip
File size
345.62 KiB
Downloads
73 downloads
File comment
x86EMU build 2015/10/17 20:47
File license
Fair use/fair dealing exception

- Fixed BIOS menu loading/closing.
- Fixed debugger.
- Fixed GPU crash without x/y resolution.
- Fixed PSP EBOOT title (PSP build only, still not working fully though).
- Converted speed limit to unlimited (currently 3000 Dosbox cycles) or as set (1+ cycles, can be set during runtime). Getting it equal to a 8086 is done using the same way the Dosbox cycles works (see any guide on getting Dosbox at the correct speed like using MIPS 1.10. Only this emulator it is set in the BIOS menu, category Advanced > CPU > CPU speed setting. Up/Down increases/decreases with 1 cycle, (PSP)L/R and (PC)Q/W increases/decreases with 1000 cycles. Left multiplies the increase/decrease with 10 (adding/substracting 10 or 10000 cycles) and Right multiplies the increase/decrease with 100(adding/substracting 100 or 100000 cycles).

One guide I'm using: http://www.dosbox.com/wiki/4.77_MHz

- CD-ROM emulation has been re-enabled. Commands other than read sectors or get volume size won't work yet.
- VGA ROM(OPTROM.1) is now optional. It will try to use the internal(Dosbox-based) ROM instead if not found. Other option ROMs still start from OPTROM.2+.
- Fixed CPU callbacks with a CALL wrapper. Also fixed correct flag handling in those cases (Real/V86 mode only).
- Improved CPU emulation speed by checking for shutdown periodically instead of every instruction.
- Implemented IDE NOP command.
- Implemented mandatory ATA(PI) commands. CD-ROM commands still only have two commands implemented (other SCSI mandatory commands are simply NOP commands atm).
- Fixed CPU/Timer multithreading locks.
- Fixed IDE ATAPI signature reporting.
- Fixed return from BIOS when the emulation is running. It won't hang for 999 times the total PC running time anymore.
- Fixed FPU instructions according to fake86.
- Fixed screen captures using the OSK.
- Fixed IRQ9 to IRQ2 redirection.
- Optimized VGA VRAM addressing.
- Changed MPU IRQ to 9 instead of 2.
- Fixed BIOS settings loading.

If anyone has anything to say about the emulator, I would be happy to hear if it's working or not. If it isn't working, please report where it goes wrong. If it's working, it would be nice hearing what works etc.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io