English Amiga Board


Go Back   English Amiga Board > News

 
 
Thread Tools
Old 26 August 2023, 12:44   #161
NovaCoder
Registered User
 
NovaCoder's Avatar
 
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,400
Quote:
Originally Posted by derSammler View Post
"de" works fine in 0.74.014 RTG as well as in DOSBox for Windows. I'm not calling KEYB in DOSBox, but set the option in the config file.

All you need to do is to add and activate the German keyboard layout to Workbench (no need to install the WB itself in German, mine is not either), start DOSBox and press the key next to "L", which would be "Ö" on a German keyboard. DOSBox will freeze.
Nope, tried it and it works just fine for me (see attached screen shot), pressing the key next to 'L' works as expected

I'm running OS 3.9, maybe a different OS is causing the problem?

Tried it with 'keyboardlayout' set to both 'us' and 'gr' and neither caused a crash with the latest Aminet version 0.74.032.

Code:
# This is the configurationfile for DOSBox 0.74.
# Lines starting with a # are commentlines and are ignored by DOSBox.
# They are used to (briefly) document the effect of each option.

[sdl]
#       fullscreen: Start dosbox directly in fullscreen. (Press ALT-Enter to go back)
#         autolock: Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)
#      sensitivity: Mouse sensitivity.
#       mapperfile: File used to load/save the key/event mappings from. Resetmapper only works with the defaul value.
#     usescancodes: Avoid usage of symkeys, might not work on all operating systems.
#     closewb: Close the Workbench (if possible).

fullscreen=false
autolock=true
sensitivity=100
mapperfile=mapper-0.74.map
usescancodes=false
closewb=true

[dosbox]
# language: Select another language file.
#  machine: The type of machine tries to emulate.
#           Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
#  memsize: Amount of memory DOSBox has in megabytes.
#             This value is best left at its default to avoid problems with some games,
#             though few games might require a higher value.
#             There is generally no speed advantage when raising this value.

language=
machine=svga_s3
memsize=16

[render]
# frameskip: How many frames DOSBox skips before drawing one.

frameskip=0

[cpu]
#      core: CPU Core used in emulation.
#            Possible values: auto, normal, simple.
#   cputype: CPU Type used in emulation. auto is the fastest choice.
#            Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
#    cycles: Amount of instructions DOSBox tries to emulate each millisecond.
#            Setting this value too high results in sound dropouts and lags.
#            'fixed #number' will set a fixed amount of cycles.
#   cycleup: Amount of cycles to decrease/increase with keycombo.(CTRL-F11/CTRL-F12)
# cycledown: Setting it lower than 100 will be a percentage.

core=simple
cputype=auto
cycles=fixed 1156
cycleup=10
cycledown=20

[mixer]
#   nosound: Enable silent mode, sound is still emulated though.
#      rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
#            Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
#            Possible values: 1024, 2048, 4096, 8192, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.
# priority:  Mixer thread priority.

nosound=false
rate=11025
blocksize=2048
prebuffer=20
priority=1

[midi]
#     mpu401: Type of MPU-401 to emulate.
#             Possible values: intelligent, uart, none.
# mididevice: Device that will receive the MIDI data from MPU-401.
#             Possible values: default, camd, none.
# midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use.
#               See the README/Manual for more details.

mpu401=intelligent
mididevice=camd
midiconfig=

[sblaster]
#  sbtype: Type of Soundblaster to emulate. gb is Gameblaster.
#          Possible values: sb1, sb2, sbpro1, sbpro2, sb16, gb, none.
#  sbbase: The IO address of the soundblaster.
#          Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
#     irq: The IRQ number of the soundblaster.
#          Possible values: 7, 5, 3, 9, 10, 11, 12.
#     dma: The DMA number of the soundblaster.
#          Possible values: 1, 5, 0, 3, 6, 7.
#    hdma: The High DMA number of the soundblaster.
#          Possible values: 1, 5, 0, 3, 6, 7.
# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
#          Possible values: auto, cms, opl2, dualopl2, opl3, none.
#  oplemu: Provider for the OPL emulation. compat might provide better quality (see oplrate as well).
#          Possible values: default, compat, fast.
# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
#          Possible values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000.

sbtype=sb16
sbbase=220
irq=7
dma=1
hdma=5
sbmixer=false
oplmode=auto
oplemu=fast
oplrate=11025

[gus]
#      gus: Enable the Gravis Ultrasound emulation.
#  gusrate: Sample rate of Ultrasound emulation.
#           Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
#  gusbase: The IO base address of the Gravis Ultrasound.
#           Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
#   gusirq: The IRQ number of the Gravis Ultrasound.
#           Possible values: 5, 3, 7, 9, 10, 11, 12.
#   gusdma: The DMA channel of the Gravis Ultrasound.
#           Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
#           there should be a MIDI directory that contains
#           the patch files for GUS playback. Patch sets used
#           with Timidity should work fine.

gus=false
gusrate=8000
gusbase=240
gusirq=5
gusdma=3
ultradir=C:\ULTRASND

[speaker]
# pcspeaker: Enable PC-Speaker emulation.
#    pcrate: Sample rate of the PC-Speaker sound generation.
#            Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.
#     tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
#            Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
#            Possible values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716.

pcspeaker=false
pcrate=8000
tandy=off
tandyrate=8000

[joystick]
# joysticktype: Type of joystick to emulate: auto (default), none,
#               2axis (supports two joysticks),
#               4axis (supports one joystick, first joystick used),
#               4axis_2 (supports one joystick, second joystick used),
#               fcs (Thrustmaster), ch (CH Flightstick).
#               none disables joystick emulation.
#               auto chooses emulation depending on real joystick(s).
#               (Remember to reset dosbox's mapperfile if you saved it earlier)
#               Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
#        timed: enable timed intervals for axis. Experiment with this option, if your joystick drifts (away).
#     autofire: continuously fires as long as you keep the button pressed.
#       swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks.
#   buttonwrap: enable button wrapping at the number of emulated buttons.

joysticktype=auto
timed=false
autofire=false
swap34=false
buttonwrap=false

[serial]
# serial1: set type of device connected to com port.
#          Possible values: dummy, disabled.
# serial2: see serial1
#          Possible values: dummy, disabled.
# serial3: see serial1
#          Possible values: dummy, disabled.
# serial4: see serial1
#          Possible values: dummy, disabled.

serial1=disabled
serial2=disabled
serial3=disabled
serial4=disabled

[dos]
#            xms: Enable XMS support.
#            ems: Enable EMS support.
#            umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).

xms=true
ems=true
umb=true
keyboardlayout=gr
Attached Thumbnails
Click image for larger version

Name:	dosbox german.jpg
Views:	74
Size:	152.1 KB
ID:	80064  
NovaCoder is offline  
Old 26 August 2023, 12:59   #162
derSammler
Senior Member
 
Join Date: Jun 2001
Location: Germany
Posts: 1,648
As I wrote earlier, I'm running a fresh install of 3.1.4. If the port is OS-friendly, which I assume, it should work the same way as with OS 3.9.

Maybe it's not the character "ö" sent to DOSBox, but the scancode? Are the scancodes of a German keyboard different?

Also note this issue has been reported by others in this thread:
https://eab.abime.net/showpost.php?p...9&postcount=50 (OS 3.1)
https://eab.abime.net/showpost.php?p...5&postcount=78
https://eab.abime.net/showpost.php?p...&postcount=114

And yes, keyboardlayout is not related to the issue. But it also does not fix it when set to the "correct" layout.
derSammler is offline  
Old 26 August 2023, 13:07   #163
NovaCoder
Registered User
 
NovaCoder's Avatar
 
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,400
Check my configuration file posted above, scan codes are set to false.
NovaCoder is offline  
Old 26 August 2023, 13:11   #164
derSammler
Senior Member
 
Join Date: Jun 2001
Location: Germany
Posts: 1,648
I know, that was not the reason for my question.

I'm just trying to think what could cause the crash. Also, if I'm not mistaken, that option only controls the mapper, but at some layer in the code, it has to deal with scancodes anyway when processing the input, doesn't it?

Not sure if that helps finding the culprit, but the crash does not happen in the mapper. I can press "ö" or any other non-standard key there just fine. But the mapper has no name for the key(s) and just says "key unknown". Trying to assign anything to one of those unknown keys results in a freeze and a GURU.
derSammler is offline  
Old 04 September 2023, 13:35   #165
derSammler
Senior Member
 
Join Date: Jun 2001
Location: Germany
Posts: 1,648
I assume you were not able to find anything that could be the cause of the keyboard/freeze issue?

Also, I noticed that "vgaonly" does not work. It complains about not finding a suitable screen mode, even when fullscreen is set to false. Seems like some checks are in the wrong order. In windowed mode, there's no need to search for a suitable screen mode.

In fullscreen, I can have about 1250 cycles before it starts to struggle. This is with svga_s3. I would guess vgaonly could allow a few more cycles.
derSammler is offline  
Old 05 September 2023, 00:24   #166
NovaCoder
Registered User
 
NovaCoder's Avatar
 
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,400
Quote:
Originally Posted by derSammler View Post
I assume you were not able to find anything that could be the cause of the keyboard/freeze issue?
No sorry, I can't replicate this issue using OS 3.9 so I'm assuming it's a OS 3.1.4 introduced problem.


Quote:
Originally Posted by derSammler View Post
Also, I noticed that "vgaonly" does not work. It complains about not finding a suitable screen mode, even when fullscreen is set to false. Seems like some checks are in the wrong order. In windowed mode, there's no need to search for a suitable screen mode.
Are you even using my port? My current Aminet versions of dosbox AGA/RTG don't allow you to specify a monitor driver, they select one automatically. Maybe you are using someone else's port or one of my old ports?


Quote:
Originally Posted by derSammler View Post
In fullscreen, I can have about 1250 cycles before it starts to struggle. This is with svga_s3. I would guess vgaonly could allow a few more cycles.
The reason dosbox is so slow is because it's replicating an x86 instruction set using a huge case statement, actually rendering the display is taking very little effort, you can see this yourself by setting the frame skip which doesn't make it any faster.

A long time ago we tried to improve the core emulation speed with a JIT compiler but it proved too difficult and the dosbox community weren't too interested in helping, that's the only way to make this port faster.

Last edited by NovaCoder; 05 September 2023 at 02:48.
NovaCoder is offline  
Old 05 September 2023, 08:31   #167
derSammler
Senior Member
 
Join Date: Jun 2001
Location: Germany
Posts: 1,648
Quote:
No sorry, I can't replicate this issue using OS 3.9 so I'm assuming it's a OS 3.1.4 introduced problem.
It's not 3.1.4-related. I posted links already where other people here reported the issue also with 3.1. Non-english locale is the issue, not the OS version. All people with that issue are using a non-English keyboard.

Quote:
Are you even using my port? My current Aminet versions of dosbox AGA/RTG don't allow you to specify a monitor driver, they select one automatically. Maybe you are using someone else's port or one of my old ports?
"vgaonly" is a DosBox option in the config file. I'm not talking about the monitor driver. By default, your config has svga_s3 set.

As for speed, I'm not blaming you. It seems something in the design of DosBox makes it slow, but certainly not the interpreter approach. PC-Task 4 in the interpreter version has no issue performing like a 486 @ 33-40 MHz on Emu68, whereas DosBox only reaches AT speed (286, 6-8 MHz). I still want to be able to use it due to sound emulation, which PC-Task lacks.

Last edited by derSammler; 05 September 2023 at 10:41.
derSammler is offline  
Old 05 September 2023, 10:45   #168
NovaCoder
Registered User
 
NovaCoder's Avatar
 
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,400
Quote:
Originally Posted by derSammler View Post

As for speed, I'm not blaming you. It seems something in the design of DosBox makes it slow, but certainly not the interpreter approach. PC-Task 4 in the interpreter version has no issue performing like a 486 @ 33-40 MHz on Emu68, whereas DosBox only reaches AT speed (286, 6-8 MHz). I still want to be able to use it due to sound emulation, which PC-Task lacks.
That's because PC Task has a JIT compiler I believe.
NovaCoder is offline  
Old 05 September 2023, 10:50   #169
derSammler
Senior Member
 
Join Date: Jun 2001
Location: Germany
Posts: 1,648
You always only read half of my posts, do you?

PC-Task comes with both. As I wrote, I was refering to the non-jit interpreter version. The jit version can not be benchmarked, as its speed is all over the place.
derSammler is offline  
Old 08 September 2023, 15:15   #170
derSammler
Senior Member
 
Join Date: Jun 2001
Location: Germany
Posts: 1,648
As for "vgaonly", I sorted that. Seems like in your port, the option is just "vga".
derSammler is offline  
Old 18 September 2023, 12:12   #171
derSammler
Senior Member
 
Join Date: Jun 2001
Location: Germany
Posts: 1,648
After lots of testing, I think I found the root for the keyboard issue: the mapper file is *completely* ignored.

I noticed other strange behavior first, like that y and z are swapped when they shouldn't. So I edited the mapper-0.74.map and made key_y use 122 instead of 121 and key_z 121 instead of 122. But nothing changed, the keys were still swapped. Did the same using the included mapper and it worked. Well, almost. Despite clicking on "Save", the change was gone on next start. No changes were written to mapper-0.74.map (which, as just described, would not have worked anyway), and I can even delete the file completely without any feedback from DOSBox. The file is simply not used.

Conclusion: without the mapper file being used, one can never fully adapt the keyboard to a non-English one. The freeze when pressing e.g. the "Ö" key can most likely be solved if key_ö would be added to the mapper file. But that requires that it is actually used...
derSammler is offline  
Old 18 September 2023, 12:44   #172
NovaCoder
Registered User
 
NovaCoder's Avatar
 
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,400
Quote:
Originally Posted by derSammler View Post
After lots of testing, I think I found the root for the keyboard issue: the mapper file is *completely* ignored.

I noticed other strange behavior first, like that y and z are swapped when they shouldn't. So I edited the mapper-0.74.map and made key_y use 122 instead of 121 and key_z 121 instead of 122. But nothing changed, the keys were still swapped. Did the same using the included mapper and it worked. Well, almost. Despite clicking on "Save", the change was gone on next start. No changes were written to mapper-0.74.map (which, as just described, would not have worked anyway), and I can even delete the file completely without any feedback from DOSBox. The file is simply not used.

Conclusion: without the mapper file being used, one can never fully adapt the keyboard to a non-English one. The freeze when pressing e.g. the "Ö" key can most likely be solved if key_ö would be added to the mapper file. But that requires that it is actually used...
Okay good investigation, should be an easy enough fix to make it pick up the mapper file, it is presumably a file directory listing issue.

When I get the time I'll take a look at the code.
NovaCoder is offline  
Old 18 September 2023, 12:47   #173
derSammler
Senior Member
 
Join Date: Jun 2001
Location: Germany
Posts: 1,648
Let's hope it is an easy fix.
derSammler is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
[ongoing] DosBox AGA (v0.74) NovaCoder project.Amiga Game Factory 182 14 January 2022 03:26
DosBox v0.74 AGA 68k Port NovaCoder Amiga scene 20 07 June 2018 02:17
68k SoftCore development for DosBox AGA NovaCoder Coders. Asm / Hardware 0 18 February 2013 06:04
Can I use this for AGA/RTG switching? Smiley support.Hardware 18 21 November 2006 13:23
AGA/RTG switch on amigakit.com keropi Hardware pics 44 16 November 2006 00:10

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 07:43.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.11645 seconds with 14 queries