How does one run Atari Falcon060 prods on Hatari?
category: general [glöplog]
I've generally had no problem running the low-end Falcon030 prods on Hatari, but I just wasn't able to get the high-end prods running at all.
I'm using a base Atari STE config for Hatari (listed at the bottom of this post) which I then patch with command-line parameters to turn it into a Falcon system, and these settings for Falcon030 demos:
So I try "Derealization" by DHS with the following config, and while it doesn't say there's not enough memory anymore, the screen remains black for (I think) too long:
And "Starstruck" by TBL just bombs out after a while.
What am I doing wrong?
I'm using a base Atari STE config for Hatari (listed at the bottom of this post) which I then patch with command-line parameters to turn it into a Falcon system, and these settings for Falcon030 demos:
Code:
--machine falcon
--tos "C:\hatari\(rom)\tos404.img"
--cpulevel 3
--memsize 14
So I try "Derealization" by DHS with the following config, and while it doesn't say there's not enough memory anymore, the screen remains black for (I think) too long:
Code:
--machine falcon
--tos "C:\hatari\(rom)\tos404.img"
--cpulevel 6
--memsize 14
--addr24 0
--ttram 1024
And "Starstruck" by TBL just bombs out after a while.
What am I doing wrong?
Code:
[Log]
sLogFileName = stderr
sTraceFileName = stderr
nTextLogLevel = 3
nAlertDlgLogLevel = 1
bConfirmQuit = TRUE
bNatFeats = FALSE
bConsoleWindow = FALSE
[Debugger]
nNumberBase = 10
nSymbolLines = -1
nMemdumpLines = -1
nDisasmLines = -1
nBacktraceLines = 0
nExceptionDebugMask = 515
nDisasmOptions = 15
bDisasmUAE = TRUE
bSymbolsAutoLoad = TRUE
bMatchAllSymbols = FALSE
[Screen]
nMonitorType = 1
nFrameSkips = 5
bFullScreen = TRUE
bKeepResolution = TRUE
bResizable = TRUE
bAllowOverscan = TRUE
nSpec512Threshold = 1
nForceBpp = 0
bAspectCorrect = TRUE
bUseExtVdiResolutions = FALSE
nVdiWidth = 640
nVdiHeight = 480
nVdiColors = 2
bMouseWarp = TRUE
bShowStatusbar = FALSE
bShowDriveLed = FALSE
bCrop = FALSE
bForceMax = FALSE
nMaxWidth = 832
nMaxHeight = 588
nZoomFactor = 1
bUseSdlRenderer = TRUE
bUseVsync = FALSE
[Joystick0]
nJoystickMode = 0
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = -1
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Right Ctrl
[Joystick1]
nJoystickMode = 2
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = 0
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Left Ctrl
[Joystick2]
nJoystickMode = 0
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = -1
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Right Ctrl
[Joystick3]
nJoystickMode = 0
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = -1
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Right Ctrl
[Joystick4]
nJoystickMode = 0
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = -1
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Right Ctrl
[Joystick5]
nJoystickMode = 0
bEnableAutoFire = FALSE
bEnableJumpOnFire2 = FALSE
nJoyId = -1
kUp = Up
kDown = Down
kLeft = Left
kRight = Right
kFire = Right Ctrl
[Keyboard]
bDisableKeyRepeat = FALSE
nKeymapType = 0
nCountryCode = -1
nKbdLayout = -1
nLanguage = -1
szMappingFileName =
[KeyShortcutsWithMod]
kOptions = O
kFullScreen = F
kBorders = B
kMouseMode = M
kColdReset = C
kWarmReset = R
kScreenShot = G
kBossKey = I
kCursorEmu = J
kFastForward = X
kRecAnim = A
kRecSound = Y
kSound = S
kPause =
kDebugger = Pause
kQuit = Q
kLoadMem = L
kSaveMem = K
kInsertDiskA = D
kSwitchJoy0 = F1
kSwitchJoy1 = F2
kSwitchPadA = F3
kSwitchPadB = F4
[KeyShortcutsWithoutMod]
kOptions = F12
kFullScreen = F11
kBorders =
kMouseMode =
kColdReset =
kWarmReset =
kScreenShot =
kBossKey =
kCursorEmu =
kFastForward =
kRecAnim =
kRecSound =
kSound =
kPause = Pause
kDebugger =
kQuit =
kLoadMem =
kSaveMem =
kInsertDiskA =
kSwitchJoy0 =
kSwitchJoy1 =
kSwitchPadA =
kSwitchPadB =
[Sound]
bEnableMicrophone = TRUE
bEnableSound = TRUE
bEnableSoundSync = FALSE
nPlaybackFreq = 44100
nSdlAudioBufferSize = 0
szYMCaptureFileName = C:\Users\aaron\Downloads\output.wav
YmVolumeMixing = 2
[Memory]
nMemorySize = 8192
nTTRamSize = 0
bAutoSave = FALSE
szMemoryCaptureFileName = C:\Users\aaron\AppData\Local\Hatari\hatari.sav
szAutoSaveFileName = C:\Users\aaron\AppData\Local\Hatari\auto.sav
[Floppy]
bAutoInsertDiskB = FALSE
FastFloppy = FALSE
EnableDriveA = TRUE
DriveA_NumberOfHeads = 2
EnableDriveB = TRUE
DriveB_NumberOfHeads = 2
nWriteProtection = 0
szDiskAZipPath =
szDiskAFileName =
szDiskBZipPath =
szDiskBFileName =
szDiskImageDirectory = C:\Users\aaron\Documents
[HardDisk]
nGemdosDrive = 0
bBootFromHardDisk = TRUE
bUseHardDiskDirectory = FALSE
szHardDiskDirectory =
nGemdosCase = 0
nWriteProtection = 0
bFilenameConversion = FALSE
bGemdosHostTime = FALSE
[ACSI]
bUseDevice0 = FALSE
sDeviceFile0 = C:\ADLaunch Software\Hatari
nBlockSize0 = 512
bUseDevice1 = FALSE
sDeviceFile1 = C:\ADLaunch Software\Hatari
nBlockSize1 = 512
bUseDevice2 = FALSE
sDeviceFile2 = C:\ADLaunch Software\Hatari
nBlockSize2 = 512
bUseDevice3 = FALSE
sDeviceFile3 = C:\ADLaunch Software\Hatari
nBlockSize3 = 512
bUseDevice4 = FALSE
sDeviceFile4 = C:\ADLaunch Software\Hatari
nBlockSize4 = 512
bUseDevice5 = FALSE
sDeviceFile5 = C:\ADLaunch Software\Hatari
nBlockSize5 = 512
bUseDevice6 = FALSE
sDeviceFile6 = C:\ADLaunch Software\Hatari
nBlockSize6 = 512
bUseDevice7 = FALSE
sDeviceFile7 = C:\ADLaunch Software\Hatari
nBlockSize7 = 512
[SCSI]
bUseDevice0 = FALSE
sDeviceFile0 = C:\ADLaunch Software\Hatari
nBlockSize0 = 512
bUseDevice1 = FALSE
sDeviceFile1 = C:\ADLaunch Software\Hatari
nBlockSize1 = 512
bUseDevice2 = FALSE
sDeviceFile2 = C:\ADLaunch Software\Hatari
nBlockSize2 = 512
bUseDevice3 = FALSE
sDeviceFile3 = C:\ADLaunch Software\Hatari
nBlockSize3 = 512
bUseDevice4 = FALSE
sDeviceFile4 = C:\ADLaunch Software\Hatari
nBlockSize4 = 512
bUseDevice5 = FALSE
sDeviceFile5 = C:\ADLaunch Software\Hatari
nBlockSize5 = 512
bUseDevice6 = FALSE
sDeviceFile6 = C:\ADLaunch Software\Hatari
nBlockSize6 = 512
bUseDevice7 = FALSE
sDeviceFile7 = C:\ADLaunch Software\Hatari
nBlockSize7 = 512
[IDE]
bUseDevice0 = FALSE
nByteSwap0 = 2
sDeviceFile0 = C:\ADLaunch Software\Hatari
nBlockSize0 = 512
nDeviceType0 = 0
bUseDevice1 = FALSE
nByteSwap1 = 2
sDeviceFile1 = C:\ADLaunch Software\Hatari
nBlockSize1 = 512
nDeviceType1 = 0
[ROM]
szTosImageFileName = C:\ADLaunch Software\Hatari\(rom)\tos206uk.img
bPatchTos = TRUE
szCartridgeImageFileName =
[LILO]
Args = root=/dev/ram video=atafb:vga16 load_ramdisk=1
Kernel = C:\ADLaunch Software\Hatari\vmlinuz
Symbols =
Ramdisk = C:\ADLaunch Software\Hatari\initrd
HaltOnReboot = TRUE
KernelToFastRam = TRUE
RamdiskToFastRam = TRUE
[RS232]
bEnableRS232 = FALSE
szOutFileName = C:\ADLaunch Software\Hatari\/dev/modem
szInFileName = C:\ADLaunch Software\Hatari\/dev/modem
bEnableSccB = FALSE
sSccBOutFileName = C:\ADLaunch Software\Hatari\/dev/modem
[Printer]
bEnablePrinting = FALSE
szPrintToFileName = C:\Users\aaron\AppData\Local\Hatari\hatari.prn
[Midi]
bEnableMidi = FALSE
sMidiInFileName = C:\ADLaunch Software\Hatari\/dev/snd/midiC1D0
sMidiOutFileName = C:\ADLaunch Software\Hatari\/dev/snd/midiC1D0
sMidiInPortName = Off
sMidiOutPortName = Off
[System]
nCpuLevel = 0
nCpuFreq = 8
bCompatibleCpu = TRUE
nModelType = 2
bBlitter = FALSE
nDSPType = 0
nVMEType = 1
bPatchTimerD = FALSE
bFastBoot = TRUE
bFastForward = FALSE
bAddressSpace24 = TRUE
bCycleExactCpu = TRUE
n_FPUType = 0
bSoftFloatFPU = FALSE
bMMU = FALSE
VideoTiming = 3
[Video]
AviRecordVcodec = 2
AviRecordFps = 0
AviRecordFile = C:\ADLaunch Software\Hatari\hatari.avi
You at least need to enable FPU for 060-stuff
I forgot about the FPU, but yes, I added that and the Starstruck demo ran straight off! :)
Derealization still has a blank screen at the beginning, though: maybe a long precalc?
These are the parameters I'm using now:
Derealization still has a blank screen at the beginning, though: maybe a long precalc?
These are the parameters I'm using now:
Code:
--cpulevel 6
--fpu 68881
--addr24 0
--ttram 1024
For 68060 you should use --fpu internal
Yes, silly me.
But I'm still not getting any joy on the other demos, maybe Falcon-specific settings?
But I'm still not getting any joy on the other demos, maybe Falcon-specific settings?
hatari --machine falcon --addr24 0 --dsp emu --cpulevel 6 --cpuclock 32 --fpu internal --cpu-exact 1 --compatible 1 --timer-d 0 --memsize 14 --ttram 128 --window --frameskips 10 --drive-led false --monitor vga --avi-vcodec png --png-level 2 --sound 49170 --fast-boot 1 --tos /path/404.img --gemdos-drive c --harddrive /path/Falcon060
Then you need an FPU emulator in case the demo is using more complex FPU instructions that's not included in the 060. This is included by default in the CT60 firmware, but not in Hatari.
https://tho-otto.de/download/fpsp.zip
Finally, the emulated machine will not be as fast as a real Falcon 060 (it only emulates 32 MHz), video tricks doesn't work in Hatari at all (HBL stuff in particular) and if you want DSP as well it will require a very strong CPU-core to handle the emulation.
When I did our latest demo I disabled DSP in Hatari and ran a simple PCM stream instead, the M1 core (which is still quite quick) couldn't do it. Naturally the released Falcon binary uses the DSP :)
Then you need an FPU emulator in case the demo is using more complex FPU instructions that's not included in the 060. This is included by default in the CT60 firmware, but not in Hatari.
https://tho-otto.de/download/fpsp.zip
Finally, the emulated machine will not be as fast as a real Falcon 060 (it only emulates 32 MHz), video tricks doesn't work in Hatari at all (HBL stuff in particular) and if you want DSP as well it will require a very strong CPU-core to handle the emulation.
When I did our latest demo I disabled DSP in Hatari and ran a simple PCM stream instead, the M1 core (which is still quite quick) couldn't do it. Naturally the released Falcon binary uses the DSP :)
Evil, I tried your config with the Derealization demo, still no joy. The green window with "DEREAL" appeared and then went black, but nothing after that. Either it's a long precalc or I'm still doing something wrong.
I got Starstruck to run earlier, but I thought it took ages to precalc and when it did run it was rather sluggish. I did find out how to boost the speed with --cpuclock, which helped.
I should explore more Falcon060 demos, some might work. I have a Ryzen 5 system (5600 I believe) and so should be able to handle most of those demos.
I got Starstruck to run earlier, but I thought it took ages to precalc and when it did run it was rather sluggish. I did find out how to boost the speed with --cpuclock, which helped.
I should explore more Falcon060 demos, some might work. I have a Ryzen 5 system (5600 I believe) and so should be able to handle most of those demos.
ryzen 5 5600 is slower than m1 for most purposes...
I've gotten a few more demos to work, but some of them have an ugly white border all around the screen, like "Hmmm" and "Zero Three Zero".
The white border is no big deal, it's probably by design, I doubt it's an emulation issue. I've seen the same thing in at least one Amiga demo, too.
Quote:
Evil, I tried your config with the Derealization demo, still no joy. The green window with "DEREAL" appeared and then went black, but nothing after that. Either it's a long precalc or I'm still doing something wrong.
I just tested Derealization with that config, it starts no problem. Did you really install the FPU emulator?
Big problem with my M1 host machine performance though :) I need to shut off DSP (=no sound) to get things to move OK, but then it's not too far from a Falcon 060, I think the slower processor emulation is partly offset by faster memory access.
Even with DSP off I experienced performance issues with my hackintosh machine. Not exactly modern by todays standards (Intel 9600k at 4 GHz), but the M1 really ran circles around it. Same Hatari release, same Hatari config, same Falcon demo: https://www.youtube.com/watch?v=J0lVi8DCt9g
I'm sure your 5600 is quicker than the 9600k, question is by how much :)
Anyway, Hatari Falcon emulation is not mature enough to run many demos properly, and development has mostly stalled. It's ST(e) emulation is magnificent though.
Quote:
I just tested Derealization with that config, it starts no problem. Did you really install the FPU emulator?
I have to admit, I didn't know how to. There were no instructions, from what I could see. (blush)
Quote:
I have to admit, I didn't know how to. There were no instructions, from what I could see. (blush)
1. Make a folder called auto in the harddrive root
2. Copy fpsp060.prg into the auto folder
Installed.
Evil, that did the trick! The demo ran perfectly after that! All I used were these:
And I added the AUTO folder with that one file you mentioned, and that was it! It ran very well!
Code:
--machine falcon
--tos "C:\hatari\(rom)\tos404.img"
--cpulevel 6
--fpu internal
--addr24 0
--ttram 1024
And I added the AUTO folder with that one file you mentioned, and that was it! It ran very well!
If that's the only config you gave, it will run the 060 at 16 MHz and as I understand it without proper cache emulation so it slows down more. I also think it will run with 1 MB ST-RAM? The demo won't work with that I'm sure. So perhaps you have additional settings from a config file.
Anyway if you're happy, that's good.
Anyway if you're happy, that's good.
Quote:
If that's the only config you gave, it will run the 060 at 16 MHz and as I understand it without proper cache emulation so it slows down more. I also think it will run with 1 MB ST-RAM? The demo won't work with that I'm sure. So perhaps you have additional settings from a config file.
Anyway if you're happy, that's good.
Well, I tend to use a base config for Amiga demos and patch it as necessary for each prod, and since in this case it is an Atari STE config, I just adapt it to Falcon that way.
Another thing I tend to do with the higher end systems is just to set a massive amount of memory as default and hope the prod works.
What bothers me is the --cpuclock variable. Unless I get it set to the right value (8, 16 or 32) I just get a whole lot of stutter in the emulation, where some parts stutter and others don't. I used to get the same issue with Amiga demos in WinUAE, I hated having to go through demos each time until the stutter was gone, and in a lot of cases, the demos ran at much slower speeds than I'm sure they were capable of.
Quote:
and as I understand it without proper cache emulation so it slows down more
Which parameter(s) do I need to run the demo with proper cache emulation?
Quote:
Which parameter(s) do I need to run the demo with proper cache emulation?
That would be --compatible 1 but this is also the setting that's taxing the host processor a lot. Have fun :)
Yeah, I've gotten a few more demos to work (sort of) since I knew about the "fpsp.zip" package!
Yeah, it's such a shame, there's so much potential there, and the relative rarity of real Falcon hardware which means such a tiny library of prods to begin with when compared to the juggernaut that is Amiga AGA, and I bet many Silly Venture patrons who see Falcon demos are crying out for a Toni Wilen-like saviour for their emulation needs :(
Quote:
Anyway, Hatari Falcon emulation is not mature enough to run many demos properly, and development has mostly stalled.
Yeah, it's such a shame, there's so much potential there, and the relative rarity of real Falcon hardware which means such a tiny library of prods to begin with when compared to the juggernaut that is Amiga AGA, and I bet many Silly Venture patrons who see Falcon demos are crying out for a Toni Wilen-like saviour for their emulation needs :(