libretro / hatari

New rebasing of Hatari based on Mercurial upstream. Tries to be a shallow fork for easy upstreaming later on.
25 stars 41 forks source link

[WIP] (Core) Hatari IPF Support #80

Open pkos opened 2 years ago

pkos commented 2 years ago

Everything needed to compile Hatari with IPF support.

Related Issues:

https://github.com/libretro/hatari/issues/4

pkos commented 2 years ago

The Makefile.libretro should be properly modified to merge what is new and what was working in a previous build.

inactive123 commented 2 years ago

Hi, so is everything required to be changed in the Makefile addressed by this PR? If not, it's best you do this.

pkos commented 2 years ago

Hi, so is everything required to be changed in the Makefile addressed by this PR? If not, it's best you do this.

Yes sir, hopefully I can do this. I've asked @crystalct for help.

crystalct commented 2 years ago

i'll take a look at it

crystalct commented 2 years ago

I think you have to rewrite this PR because Makefile.libretro was a bit "raped". Start from current and clean Makefile.libretro and add only the part concerning the IPF support.

crystalct commented 2 years ago

@twinaphex and @pkos this is my clean version of IPF support: commit IPF It works on PS3 usage: make -f Makefile.libretro platform=ps3 capsimg=1 capssrc=PATH_TO_CAPS_SRC caps src folder structure is taken from official release: kryoflux.com

.
.
12  /dev_hdd0/ROMS/hatari/Action Service (F) (1989) (Atari ST) (Infogrames - Cobrasoft).ipf
RetroConf:'/dev_hdd0/game/RETROARCH/USRDIR/system/hatari.cfg'
Hatari v1.8.0, compiled on:  Apr  7 2022, 12:48:36
IPF : IPF_Init
IPF : capsimage library version release=5 revision=1
Configured max Hatari resolution = 832x520, optimal for ST = 832x588
IPF : IPF_Insert drive=0 buf=3021efa0 size=521027 imageid=0 type=IPF
Type: 1
Release: 1
Revision: 0
Min Cylinder: 0
Max Cylinder: 83
Min Head: 0
Max Head: 1
Creation Date: 2020/03/14 14:33:19.563
Platforms: Atari ST
Inserted disk '/dev_hdd0/ROMS/hatari/Action Service (F) (1989) (Atari ST) (Infogrames - Cobrasoft).ipf' to drive A:.
Building CPU table for configuration: 68000 (compatible mode)
.
.
Typhor commented 2 years ago

A huge thanks for your great work so far. I am a bit of a noob, but as far as I understood, with the acceptance of your commit, this was merged into master and with right parameters and folders, it should be possible to compile master with IPF-support now, right?

I understand that the compiled file cannot be shared from the libretro project due to third party rights on IPF components.

Therefore it would be so great if you could give instructions for noobs how to compile libretro hatari with IPF-support now, because seems not that trivial. I was following your instructions and commits for some time, already before the acceptance and was not able to compile so far on a windows machine and also on a linux vm. The farthest I got on Linux (compiling for Win-Libretro) but at first there was "winsock2.h" not found, I just removed the include but now i get a mkdir error and I am completely lost:

i@i-VirtualBox:~/hatari$ make -f Makefile.libretro platform=win capssrc=CAPSImg cc -DGIT_VERSION=\"" 1ebf0a04"\" -funroll-loops -ffast-math -fomit-frame-pointer -O3 -fsigned-char -DLIBRETRO -fno-builtin -DLSB_FIRST -DALIGN_DWORD -DWIN32PORT -DWIN32 -I./src -I./src/uae-cpu -I./src/falcon -I./src/includes -I./src/debug -I./src -I./libretro -I./libretro/libretro-common/include -I./libretro/libretro-common/include/compat/zlib -I./libretro/include -I./libretro/utils -I./libretro/uae-cpu-pregen -c -o src/gemdos.o src/gemdos.c src/gemdos.c: In function ‘GemDOS_MkDir’: src/gemdos.c:153:26: error: too few arguments to function ‘mkdir’ 153 | #define mkdir(name,mode) mkdir(name)

Those were my steps:

If you could provide a "Dummies walkthrough for compiling Libretro Hatari with IPF-support" (no matter if on Win or Linux) that would be really awesome!

pkos commented 2 years ago

Noted, I'll review the compile.

Sent from Yahoo Mail on Android

On Sat, Jun 18, 2022 at 1:34 AM, @.***> wrote:

A huge thanks for your great work so far. I am a bit of a noob, but as far as I understood, with the acceptance of your commit, this was merged into master and with right parameters and folders, it should be possible to compile master with IPF-support now, right?

I understand that the compiled file cannot be shared from the libretro project due to third party rights on IPF components.

Therefore it would be so great if you could give instructions for noobs how to compile libretro hatari with IPF-support now, because seems not that trivial. I was following your instructions and commits for some time, already before the acceptance and was not able to compile so far on a windows machine and also on a linux vm. The farthest I got on Linux (compiling for Win-Libretro) but at first there was "winsock2.h" not found, I just removed the include but now i get a mkdir error and I am completely lost:

@.***:~/hatari$ make -f Makefile.libretro platform=win capssrc=CAPSImg cc -DGIT_VERSION="" 1ebf0a0"" -funroll-loops -ffast-math -fomit-frame-pointer -O3 -fsigned-char -DLIBRETRO -fno-builtin -DLSB_FIRST -DALIGN_DWORD -DWIN32PORT -DWIN32 -I./src -I./src/uae-cpu -I./src/falcon -I./src/includes -I./src/debug -I./src -I./libretro -I./libretro/libretro-common/include -I./libretro/libretro-common/include/compat/zlib -I./libretro/include -I./libretro/utils -I./libretro/uae-cpu-pregen -c -o src/gemdos.o src/gemdos.c src/gemdos.c: In function ‘GemDOS_MkDir’: src/gemdos.c:153:26: error: too few arguments to function ‘mkdir’ 153 | #define mkdir(name,mode) mkdir(name)

Those were my steps:

If you could provide a "Dummies walkthrough for compiling Libretro Hatari with IPF-support" (no matter if on Win or Linux) that would be really awesome!

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

crystalct commented 2 years ago

If your target is a windows retroarch then follow this: https://emulation.gametechwiki.com/index.php/Building_RetroArch Choose if you want a 64bit or 32bit versione and try to compile just a core, not all retroarch. When you gain a working dll core (putting your compiled core inside a retroarch installation) then you can try a step over.... Hatari with IPF.

Typhor commented 2 years ago

Thanks for the guideline and the quick responses, I sucessfully managed to build hatari on windows with the regular "./libretro-build.sh hatari". But as soon as I changed the make command in /rules.d/core-rules.sh to:

include_core_hatari() {
register_module core "hatari" -theos_ios -ngc -ps3 -psp1 -qnx -wii
}
libretro_hatari_name="Hatari"
libretro_hatari_git_url="https://github.com/libretro/hatari.git"
libretro_hatari_build_makefile="Makefile.libretro capsimg=1 capssrc=CAPSImg"

Compiling failed with following error, the same error that also came with manually running make in the hatari directory (with parameters)

CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:10:1: note: in expansion of macro 'ExtSub'
   10 | ExtSub SDWORD __cdecl CAPSInit();
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:11:1: note: in expansion of macro 'ExtSub'
   11 | ExtSub SDWORD __cdecl CAPSExit();
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:12:1: note: in expansion of macro 'ExtSub'
   12 | ExtSub SDWORD __cdecl CAPSAddImage();
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:13:1: note: in expansion of macro 'ExtSub'
   13 | ExtSub SDWORD __cdecl CAPSRemImage(SDWORD id);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:14:1: note: in expansion of macro 'ExtSub'
   14 | ExtSub SDWORD __cdecl CAPSLockImage(SDWORD id, PCHAR name);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:15:1: note: in expansion of macro 'ExtSub'
   15 | ExtSub SDWORD __cdecl CAPSLockImageMemory(SDWORD id, PUBYTE buffer, UDWORD length, UDWORD flag);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:16:1: note: in expansion of macro 'ExtSub'
   16 | ExtSub SDWORD __cdecl CAPSUnlockImage(SDWORD id);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:17:1: note: in expansion of macro 'ExtSub'
   17 | ExtSub SDWORD __cdecl CAPSLoadImage(SDWORD id, UDWORD flag);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:18:1: note: in expansion of macro 'ExtSub'
   18 | ExtSub SDWORD __cdecl CAPSGetImageInfo(PCAPSIMAGEINFO pi, SDWORD id);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:19:1: note: in expansion of macro 'ExtSub'
   19 | ExtSub SDWORD __cdecl CAPSLockTrack(PVOID ptrackinfo, SDWORD id, UDWORD cylinder, UDWORD head, UDWORD flag);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:20:1: note: in expansion of macro 'ExtSub'
   20 | ExtSub SDWORD __cdecl CAPSUnlockTrack(SDWORD id, UDWORD cylinder, UDWORD head);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:21:1: note: in expansion of macro 'ExtSub'
   21 | ExtSub SDWORD __cdecl CAPSUnlockAllTracks(SDWORD id);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:22:1: note: in expansion of macro 'ExtSub'
   22 | ExtSub PCHAR  __cdecl CAPSGetPlatformName(UDWORD pid);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:23:1: note: in expansion of macro 'ExtSub'
   23 | ExtSub SDWORD __cdecl CAPSGetVersionInfo(PVOID pversioninfo, UDWORD flag);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:24:1: note: in expansion of macro 'ExtSub'
   24 | ExtSub UDWORD __cdecl CAPSFdcGetInfo(SDWORD iid, PCAPSFDC pc, SDWORD ext);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:25:1: note: in expansion of macro 'ExtSub'
   25 | ExtSub SDWORD __cdecl CAPSFdcInit(PCAPSFDC pc);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:26:1: note: in expansion of macro 'ExtSub'
   26 | ExtSub void   __cdecl CAPSFdcReset(PCAPSFDC pc);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:27:1: note: in expansion of macro 'ExtSub'
   27 | ExtSub void   __cdecl CAPSFdcEmulate(PCAPSFDC pc, UDWORD cyclecnt);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:28:1: note: in expansion of macro 'ExtSub'
   28 | ExtSub UDWORD __cdecl CAPSFdcRead(PCAPSFDC pc, UDWORD address);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:29:1: note: in expansion of macro 'ExtSub'
   29 | ExtSub void   __cdecl CAPSFdcWrite(PCAPSFDC pc, UDWORD address, UDWORD data);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:30:1: note: in expansion of macro 'ExtSub'
   30 | ExtSub SDWORD __cdecl CAPSFdcInvalidateTrack(PCAPSFDC pc, SDWORD drive);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:31:1: note: in expansion of macro 'ExtSub'
   31 | ExtSub SDWORD __cdecl CAPSFormatDataToMFM(PVOID pformattrack, UDWORD flag);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:32:1: note: in expansion of macro 'ExtSub'
   32 | ExtSub SDWORD __cdecl CAPSGetInfo(PVOID pinfo, SDWORD id, UDWORD cylinder, UDWORD head, UDWORD inftype, UDWORD infid);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:33:1: note: in expansion of macro 'ExtSub'
   33 | ExtSub SDWORD __cdecl CAPSSetRevolution(SDWORD id, UDWORD value);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:34:1: note: in expansion of macro 'ExtSub'
   34 | ExtSub SDWORD __cdecl CAPSGetImageType(PCHAR name);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:35:1: note: in expansion of macro 'ExtSub'
   35 | ExtSub SDWORD __cdecl CAPSGetImageTypeMemory(PUBYTE buffer, UDWORD length);
      | ^~~~~~
CAPSImg/LibIPF/ComLib.h:18:23: error: expected identifier or '(' before string constant
   18 | #define ExtSub extern "C" DllSub
      |                       ^~~
CAPSImg/LibIPF/CapsLib.h:36:1: note: in expansion of macro 'ExtSub'
   36 | ExtSub SDWORD __cdecl CAPSGetDebugRequest();
      | ^~~~~~
libretro/utils/zlib/inffast.c:324:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
  324 | }
      | ^
make: *** [Makefile.libretro:242: src/uae-cpu/newcpu.o] Error 1
make: *** Waiting for unfinished jobs....
libretro/gui-retro/dlgFileSelect.c: In function 'SDLGui_FileSelect':
libretro/gui-retro/dlgFileSelect.c:565:43: warning: implicit declaration of function 'scandir' [-Wimplicit-function-declaration]
  565 |                                 entries = scandir(path, &files, 0, alphasort);
      |                                           ^~~~~~~
libretro/utils/zlib/trees.c: In function '_tr_init':
libretro/utils/zlib/trees.c:410:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
  410 | }
      | ^
libretro/utils/zlib/trees.c: In function '_tr_stored_block':
libretro/utils/zlib/trees.c:883:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
  883 | }
      | ^
libretro/utils/zlib/trees.c: In function '_tr_align':
libretro/utils/zlib/trees.c:919:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
  919 | }
      | ^
libretro/utils/zlib/trees.c: In function '_tr_flush_block':
libretro/utils/zlib/trees.c:1020:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 1020 | }
      | ^
libretro/utils/zlib/trees.c: In function '_tr_tally':
libretro/utils/zlib/trees.c:1071:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 1071 | }
      | ^
libretro/utils/zlib/trees.c: At top level:
libretro/utils/zlib/trees.c:1244:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 1244 | }
      | ^

I took the ipf source direct from your Link ([Source code] https://www.kryoflux.com/download/spsdeclib_5.1_source.zip) (v5.1), for Windows, Mac OS X and Linux builds) and took the content of "capsimg_source_windows.zip" in the referenced folder from parameters. I also tried the Linux zip(within the source) and even other zips from kryoflux but every one of them failed. What am I doing wrong here?

crystalct commented 2 years ago

Ok for windows isn't so easy....... use sources from capsimg_binary

inside ComLib.h change

#define ExtSub extern "C" DllSub
#define ExtVar extern "C" DllVar

to

#ifdef __cplusplus
#define ExtSub extern "C" DllSub
#define ExtVar extern "C" DllVar
#else
#define ExtSub DllSub
#define ExtVar DllVar   
#endif

inside CommonTypes.h change

#ifndef COMMONTYPES_H
#define COMMONTYPES_H

typedef void *PVOID;
typedef char *PCHAR;

to

#ifndef COMMONTYPES_H
#define COMMONTYPES_H

#include <stdint.h>
typedef uint8_t  CapsUByte;
typedef int32_t  CapsLong;
typedef uint32_t CapsULong;

typedef void *PVOID;
typedef char *PCHAR;

and inside Makefile.libretro change

ifeq ($(capsimg), 1)
PLATFLAGS += -DHAVE_CAPSIMAGE -DCAPSIMAGE_VERSION=5 -I$(capssrc)/LibIPF/ -I$(capssrc)/Core/ -I$(capssrc)/
endif

to

ifeq ($(capsimg), 1)
PLATFLAGS += -DHAVE_CAPSIMAGE -DCAPSIMAGE_VERSION=5 -I$(capssrc)/LibIPF/ -I$(capssrc)/Core/ -I$(capssrc)/ $(capssrc)/CAPSImg.dll
endif

Finally: make -f Makefile.libretro capssrc=./src/capsimg_binary capsimg=1

Typhor commented 2 years ago

Thank you so much, with your modifications, it actually compiled and I got the dll. Unfortunately, when I start the core I get an error

[ERROR] opening the Libretro-Core failed "Z:\...\hatari_libretro.dll"
[ERROR] Error(s): unknown error 193

I allready updated MSVC for 64 bit and x86 but it seems that there is another dependency missing. Do you have any guess what it could be? The error appears when directly loading the core, or trying to open file with the core.

pkos commented 2 years ago

Thank you so much, with your modifications, it actually compiled and I got the dll. Unfortunately, when I start the core I get an error

[ERROR] opening the Libretro-Core failed "Z:\...\hatari_libretro.dll"
[ERROR] Error(s): unknown error 193

I allready updated MSVC for 64 bit and x86 but it seems that there is another dependency missing. Do you have any guess what it could be? The error appears when directly loading the core, or trying to open file with the core.

Check this configuration, it was last know working.

[Floppy] bAutoInsertDiskB = TRUE nWriteProtection = 0 szDiskAFileName = E:\RetroArch\ROMS\Systems\Atari - ST\Games\10th Frame (Europe).ipf szDiskBFileName = szDiskImageDirectory = E:\RetroArch\ROMS\Systems\Atari - ST\Games szDiskAZipPath = szDiskBZipPath = FastFloppy = FALSE EnableDriveA = TRUE DriveA_NumberOfHeads = 2 EnableDriveB = TRUE DriveB_NumberOfHeads = 2

[HardDisk] bBootFromHardDisk = FALSE bUseHardDiskDirectory = FALSE szHardDiskDirectory = E:\RetroArch bUseHardDiskImage = FALSE szHardDiskImage = E:\RetroArch\hdisk nHardDiskDrive = 0 nGemdosCase = 0 nWriteProtection = 0 bUseIdeMasterHardDiskImage = FALSE bUseIdeSlaveHardDiskImage = FALSE szIdeMasterHardDiskImage = E:\RetroArch szIdeSlaveHardDiskImage = E:\RetroArch

[Memory] bAutoSave = FALSE nMemorySize = 1 szAutoSaveFileName = E:\RetroArch\System\hatari\auto.sav szMemoryCaptureFileName = E:\RetroArch\System\hatari\hatari.sav

[Midi] bEnableMidi = FALSE sMidiInFileName = E:\RetroArch\System\hatari\dev\snd\midiC1D0 sMidiOutFileName = E:\RetroArch\System\hatari\dev\snd\midiC1D0

[Printer] bEnablePrinting = FALSE szPrintToFileName = E:\RetroArch\System\hatari\hatari-printer.txt

[ROM] szCartridgeImageFileName = szTosImageFileName = E:\RetroArch\system\tos.img bPatchTos = TRUE

[RS232] bEnableRS232 = FALSE szOutFileName = E:\RetroArch\System\hatari\dev\modem szInFileName = E:\RetroArch\System\hatari\dev\modem

[Screen] bAllowOverscan = TRUE bFullScreen = TRUE bUseExtVdiResolutions = FALSE nForceBpp = 16 nSpec512Threshold = 16 nFrameSkips = 0 nMonitorType = 1 nVdiColors = 0 nVdiWidth = 640 nVdiHeight = 480 bShowStatusbar = FALSE bShowDriveLed = FALSE bAspectCorrect = TRUE nMaxWidth = 832 nMaxHeight = 520 bKeepResolution = TRUE bKeepResolutionST = FALSE bCrop = FALSE bForceMax = FALSE

[Sound] bEnableSound = TRUE szYMCaptureFileName = E:\RetroArch\hatari.wav nPlaybackFreq = 44100 bEnableMicrophone = TRUE bEnableSoundSync = FALSE nSdlAudioBufferSize = 0 YmVolumeMixing = 2

[System] bBlitter = FALSE bCompatibleCpu = FALSE bFastForward = FALSE bPatchTimerD = TRUE bRealTimeClock = TRUE nCpuFreq = 8 nCpuLevel = 0 nDSPType = 0 nMachineType = 0 bFastBoot = TRUE

[Log] sLogFileName = E:\RetroArch\System\hatari\1log.txt sTraceFileName = E:\RetroArch\System\hatari\1trace.txt nTextLogLevel = 1 nAlertDlgLogLevel = 1 bConfirmQuit = FALSE nExceptionDebugMask = 259 bNatFeats = FALSE bConsoleWindow = FALSE

[Debugger] nNumberBase = 10 nDisasmLines = 8 nMemdumpLines = 8 nDisasmOptions = 15 bDisasmUAE = FALSE [Joystick0] nJoystickMode = 0 bEnableAutoFire = FALSE bEnableJumpOnFire2 = FALSE nJoyId = 1 nKeyCodeUp = 273 nKeyCodeDown = 274 nKeyCodeLeft = 276 nKeyCodeRight = 275 nKeyCodeFire = 305

[Joystick1] nJoystickMode = 1 bEnableAutoFire = FALSE bEnableJumpOnFire2 = FALSE nJoyId = 0 nKeyCodeUp = 273 nKeyCodeDown = 274 nKeyCodeLeft = 276 nKeyCodeRight = 275 nKeyCodeFire = 305

[Joystick2] nJoystickMode = 0 bEnableAutoFire = FALSE bEnableJumpOnFire2 = FALSE nJoyId = 2 nKeyCodeUp = 273 nKeyCodeDown = 274 nKeyCodeLeft = 276 nKeyCodeRight = 275 nKeyCodeFire = 305

[Joystick3] nJoystickMode = 0 bEnableAutoFire = FALSE bEnableJumpOnFire2 = FALSE nJoyId = 3 nKeyCodeUp = 273 nKeyCodeDown = 274 nKeyCodeLeft = 276 nKeyCodeRight = 275 nKeyCodeFire = 305

[Joystick4] nJoystickMode = 0 bEnableAutoFire = FALSE bEnableJumpOnFire2 = FALSE nJoyId = 4 nKeyCodeUp = 273 nKeyCodeDown = 274 nKeyCodeLeft = 276 nKeyCodeRight = 275 nKeyCodeFire = 305

[Joystick5] nJoystickMode = 0 bEnableAutoFire = FALSE bEnableJumpOnFire2 = FALSE nJoyId = 5 nKeyCodeUp = 273 nKeyCodeDown = 274 nKeyCodeLeft = 276 nKeyCodeRight = 275 nKeyCodeFire = 305

[Keyboard] bDisableKeyRepeat = FALSE nKeymapType = 0 szMappingFileName =

[ShortcutsWithModifiers] keyOptions = 111 keyFullScreen = 102 keyMouseMode = 109 keyColdReset = 99 keyWarmReset = 114 keyScreenShot = 103 keyBossKey = 105 keyCursorEmu = 106 keyFastForward = 120 keyRecAnim = 97 keyRecSound = 121 keySound = 115 keyPause = 0 keyDebugger = 19 keyQuit = 113 keyLoadMem = 108 keySaveMem = 107 keyInsertDiskA = 100 keySwitchJoy0 = 282 keySwitchJoy1 = 283 keySwitchPadA = 284 keySwitchPadB = 285

[ShortcutsWithoutModifiers] keyOptions = 293 keyFullScreen = 292 keyMouseMode = 0 keyColdReset = 0 keyWarmReset = 0 keyScreenShot = 0 keyBossKey = 0 keyCursorEmu = 0 keyFastForward = 0 keyRecAnim = 0 keyRecSound = 0 keySound = 0 keyPause = 19 keyDebugger = 0 keyQuit = 0 keyLoadMem = 0 keySaveMem = 0 keyInsertDiskA = 0 keySwitchJoy0 = 0 keySwitchJoy1 = 0 keySwitchPadA = 0 keySwitchPadB = 0

[Video] AviRecordVcodec = 1 AviRecordFps = 0 AviRecordFile = E:\RetroArch\hatari.avi

pkos commented 2 years ago

capsimg.zip

You can try the DLL I compiled long ago. I'm really sorry but within days I'm moving and everything is either packed or stored.

pkos commented 1 year ago

Ok, I'll give that a try and send up a draft.

Sent from Yahoo Mail on Android

On Mon, Apr 4, 2022 at 2:12 AM, @.***> wrote:

I think you have to rewrite this PR because Makefile.libretro was a bit "raped". Start from current and clean Makefile.libretro and add only the part concerning the IPF support.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>