joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.83k stars 383 forks source link

free disk space mac_arm64 vs. mac_x86 in dbase #3235

Open TomBoehm opened 2 years ago

TomBoehm commented 2 years ago

Code of Conduct & Contributing Guidelines

Have you checked that no other similar bug report(s) already exists?

What operating system(s) this bug have occurred on?

macOS Monterey, Version 12.1

What version(s) of DOSBox-X have this bug?

0.83.21_arm64 & 0.83.21_arm64_sdl

Describe the bug

dbase recognizes disk as full (0 Bytes free) while DIR sees the correct value.

both arm64 & arm64_sdl version see: with DIR: 19 Dir(s) 1,838,527,709,184 Bytes free but the dbase application claims "O Bytes free"

same app & same disk with the x86 version (on the sam M1 Mac): with DIR: 1,838,527,709,184 Bytes free (same as above) and dbase reports "2.013.265.920 Bytes free"

From macOS df reports available: 3590874272 (df -h 1.7Ti) and the Finder sais available: 1,84 TB

The mounted disk is on a SMB mount (mount F /Volumes/FIRMA/CTL7/ ) but same result when that folder resides on the internal/local disk.

Expected behavior

No response

Steps to reproduce the behaviour

since a dbase application is required - hard to reproduce, but I can provide the application for testing

Used configuration

[sdl]
fullscreen        = false
fulldouble        = false
fullresolution    = desktop
windowresolution  = original
windowposition    = 
display           = 0
output            = default
videodriver       = 
transparency      = 0
maximize          = false
autolock          = false
autolock_feedback = beep
middle_unlock     = manual
clip_mouse_button = right
clip_key_modifier = shift
clip_paste_bios   = default
clip_paste_speed  = 30
sensitivity       = 100
usesystemcursor   = false
mouse_emulation   = locked
mouse_wheel_key   = -1
waitonerror       = true
priority          = higher,normal
mapperfile        = mapper-dosbox-x.map
usescancodes      = auto
overscan          = 0
titlebar          = 
showbasic         = true
showdetails       = false
showmenu          = true

[log]
logfile     = 
debuggerrun = debugger

[dosbox]
language                  = 
title                     = 
fastbioslogo              = false
startbanner               = true
bannercolortheme          = default
dpi aware                 = auto
quit warning              = auto
working directory option  = autoprompt
working directory default = 
show advanced options     = false
resolve config path       = true
hostkey                   = mapper
mapper send key           = ctrlaltdel
ime                       = auto
synchronize time          = false
machine                   = svga_s3
captures                  = capture
autosave                  = 
saveslot                  = 1
savefile                  = 
saveremark                = true
forceloadstate            = false
a20                       = mask
memsize                   = 16
nocachedir                = false
freesizecap               = cap

[render]
frameskip      = 0
aspect         = false
char9          = true
euro           = -1
doublescan     = true
scaler         = normal2x forced
glshader       = none
pixelshader    = none
autofit        = true
monochrome_pal = green

[pc98]
pc-98 BIOS copyright string     = false
pc-98 fm board                  = auto
pc-98 enable 256-color          = true
pc-98 enable 16-color           = true
pc-98 enable grcg               = true
pc-98 enable egc                = true
pc-98 bus mouse                 = true
pc-98 force ibm keyboard layout = auto
pc-98 try font rom              = true
pc-98 anex86 font               = 

[dosv]
dosv             = off
getsysfont       = true
fontxsbcs        = 
fontxsbcs16      = 
fontxsbcs24      = 
fontxdbcs        = 
fontxdbcs14      = 
fontxdbcs24      = 
yen              = false
del              = true
fepcontrol       = both
vtext1           = svga
vtext2           = xga
use20pixelfont   = false
j3100            = off
j3100type        = default
j3100colorscroll = false

[video]
vmemsize                = -1
vmemsizekb              = 0
high intensity blinking = true

[vsync]
vsyncmode = off
vsyncrate = 75

[cpu]
core           = normal
fpu            = true
segment limits = true
cputype        = auto
cycles         = auto
cycleup        = 10
cycledown      = 20
turbo          = false
apmbios        = true
isapnpbios     = true

[keyboard]
aux                     = true
allow output port reset = true
controllertype          = auto
auxdevice               = intellimouse

[ttf]
font         = 
fontbold     = 
fontital     = 
fontboit     = 
colors       = 
outputswitch = auto
winperc      = 60
ptsize       = 0
lins         = 0
cols         = 0
righttoleft  = false
wp           = 
bold         = true
italic       = true
underline    = true
strikeout    = false
printfont    = true
autodbcs     = true
blinkc       = true
gbk          = false
chinasea     = false
dosvfunc     = false

[voodoo]
voodoo_card   = auto
voodoo_maxmem = true
glide         = false
lfb           = full_noaux
splash        = true

[mixer]
nosound         = false
sample accurate = false
swapstereo      = false
rate            = 44100
blocksize       = 1024
prebuffer       = 25

[midi]
mpu401          = intelligent
mpubase         = 0
mididevice      = default
midiconfig      = 
samplerate      = 44100
mpuirq          = -1
mt32.romdir     = 
mt32.model      = auto
fluid.driver    = default
fluid.soundfont = 

[sblaster]
sbtype                       = sb16
sbbase                       = 220
irq                          = 7
dma                          = 1
hdma                         = 5
enable speaker               = false
sbmixer                      = true
oplmode                      = auto
oplemu                       = default
oplrate                      = 44100
oplport                      = 
retrowave_bus                = serial
retrowave_port               = 
hardwarebase                 = 220
goldplay                     = true
blaster environment variable = true

[gus]
gus               = false
gusrate           = 44100
gusmemsize        = -1
gus master volume = 0.00
gusbase           = 240
gusirq            = 5
gusdma            = 3
gustype           = classic
ultradir          = C:\ULTRASND

[innova]
innova     = false
samplerate = 22050
sidbase    = 280
quality    = 0

[speaker]
pcspeaker    = true
pcrate       = 65536
tandy        = auto
tandyrate    = 44100
disney       = false
ps1audio     = off
ps1audiorate = 22050

[joystick]
joysticktype = auto
timed        = true
autofire     = false
swap34       = false
buttonwrap   = false

[mapper]
joy1deadzone0- = 0.60
joy1deadzone0+ = 0.60
joy1deadzone1- = 0.60
joy1deadzone1+ = 0.60
joy1deadzone2- = 0.60
joy1deadzone2+ = 0.60
joy1deadzone3- = 0.60
joy1deadzone3+ = 0.60
joy1deadzone4- = 0.60
joy1deadzone4+ = 0.60
joy1deadzone5- = 0.60
joy1deadzone5+ = 0.60
joy1deadzone6- = 0.60
joy1deadzone6+ = 0.60
joy1deadzone7- = 0.60
joy1deadzone7+ = 0.60
joy2deadzone0- = 0.60
joy2deadzone0+ = 0.60
joy2deadzone1- = 0.60
joy2deadzone1+ = 0.60
joy2deadzone2- = 0.60
joy2deadzone2+ = 0.60
joy2deadzone3- = 0.60
joy2deadzone3+ = 0.60
joy2deadzone4- = 0.60
joy2deadzone4+ = 0.60
joy2deadzone5- = 0.60
joy2deadzone5+ = 0.60
joy2deadzone6- = 0.60
joy2deadzone6+ = 0.60
joy2deadzone7- = 0.60
joy2deadzone7+ = 0.60

[serial]
serial1       = dummy
serial2       = dummy
serial3       = disabled
serial4       = disabled
serial5       = disabled
serial6       = disabled
serial7       = disabled
serial8       = disabled
serial9       = disabled
phonebookfile = phonebook-dosbox-x.txt

[parallel]
parallel1 = file file:~/Documents/CTL/Drucker/Print1.txt timeout:10 openwith:~/Documents/CTL/Drucker/lpt1.py
parallel2 = file file:~/Documents/CTL/Drucker/Print1.txt timeout:10 openwith:~/Documents/CTL/Drucker/lpt2.py
parallel3 = disabled
parallel4 = disabled
parallel5 = disabled
parallel6 = disabled
parallel7 = disabled
parallel8 = disabled
parallel9 = disabled
dongle    = false

[printer]
printer     = true
dpi         = 360
width       = 85
height      = 110
printoutput = png
multipage   = false
device      = -
docpath     = .
fontpath    = FONTS
openwith    = 
openerror   = 
printdbcs   = auto
shellhide   = false
timeout     = 0

[dos]
xms                             = true
xms handles                     = 0
shell configuration as commands = false
hma                             = true
hard drive data rate limit      = -1
floppy drive data rate limit    = -1
ansi.sys                        = true
log console                     = false
share                           = true
file access tries               = 0
network redirector              = true
minimum mcb free                = 0
ems                             = true
umb                             = true
quick reboot                    = false
ver                             = 
lfn                             = auto
fat32setversion                 = ask
shellhigh                       = auto
automount                       = true
automountall                    = false
mountwarning                    = true
autofixwarning                  = true
startcmd                        = false
starttranspath                  = true
startwait                       = true
startquiet                      = false
int33                           = false
keyboardlayout                  = gr
customcodepage                  = 
dbcs                            = true
dos clipboard device enable     = false
dos clipboard device name       = CLIP$
dos clipboard api               = true

[ipx]
ipx = false

[ne2000]
ne2000  = false
nicbase = 300
nicirq  = 3
macaddr = AC:DE:48:88:99:AA
backend = auto

[ethernet, pcap]
realnic = list
timeout = default

[ethernet, slirp]
ipv4_network    = 10.0.2.0
ipv4_netmask    = 255.255.255.0
ipv4_host       = 10.0.2.2
ipv4_nameserver = 10.0.2.3
ipv4_dhcp_start = 10.0.2.15

[ide, primary]
enable = true
pnp    = true

[ide, secondary]
enable = true
pnp    = true

[ide, tertiary]
enable = false
pnp    = true

[ide, quaternary]
enable = false
pnp    = true

[ide, quinternary]
enable = false
pnp    = true

[ide, sexternary]
enable = false
pnp    = true

[ide, septernary]
enable = false
pnp    = true

[ide, octernary]
enable = false
pnp    = true

[fdc, primary]
enable = false
pnp    = true
mode   = ps2

[4dos]
rem = This section is the 4DOS.INI file, if you use 4DOS as the command shell

[config]
rem         = This section is DOS's CONFIG.SYS file, not all CONFIG.SYS options supported
break       = off
numlock     = 
shell       = 
dos         = high, umb
fcbs        = 100
files       = 200
country     = 
lastdrive   = a
set path    = Z:\;Z:\SYSTEM;Z:\BIN;Z:\DOS;Z:\4DOS;Z:\DEBUG;Z:\TEXTUTIL
set prompt  = $P$G
set temp    = 
install     = 
installhigh = 
device      = 
devicehigh  = 

[autoexec]
mount F /Volumes/FIRMA/CTL7/
f:
ctl1.bat

Emulator log

No response

Additional context

No response

rderooy commented 2 years ago

When mounting the drive in dosbox-x use the -freesize option followed by the capacity.

 -freesize [size] Specify the free disk space of drive in MB (KB for floppies).

Basically DOS programs cannot handle the large capacity of modern disks, so dosbox-x limits the amount of disk space reported as free space. But even that may be to much for some applications, so you can limit it further with the -freesize option.

TomBoehm commented 2 years ago

thx rderooy.

we tested with:

[dosbox]
freesizecap               = fixed

[autoexec]
mount -freesize 50 F /Volumes/FIRMA/CTL7/
(mount -freesize 10 F /Volumes/FIRMA/CTL7/)

on both arm64 & arm64_sdl version: DIR => 52,428,800 Bytes free (DIR => 10,485,760 Bytes free) but within the dbase application "O Bytes free"

same config with the x86 version: DIR => 52,428,800 Bytes free dbase application: 52,428,800 Bytes free

rderooy commented 2 years ago

The DOSBox-X x86 version that worked was also the mac version?

If so, this indeed seems like a ARM specific bug.

TomBoehm commented 2 years ago

yes - both Mac Versions, x86 & arm64 - latest release tested on the same M1 MacMini

TomBoehm commented 2 years ago

For the time being we run this dbase application using DOSBox-X x86 version via Rosetta. But the app is terribly slow that way. Maybe you could give me a hint, what we could improve in the above configuration to get more speed?

rderooy commented 2 years ago

One thing you should probably do is to set:

hard drive data rate limit      = 0
floppy drive data rate limit    = 0

Unless your interested in emulating the speed of slow hdd/fdd's of back in the day...