mirror of
https://github.com/86Box/86Box.git
synced 2026-02-22 09:35:32 -07:00
Merge remote-tracking branch 'origin/master' into feature/recompiler_improvements
This commit is contained in:
@@ -36,7 +36,7 @@ if(MUNT_EXTERNAL)
|
||||
endif()
|
||||
|
||||
project(86Box
|
||||
VERSION 5.3
|
||||
VERSION 5.4
|
||||
DESCRIPTION "Emulator of x86-based systems"
|
||||
HOMEPAGE_URL "https://86box.net"
|
||||
LANGUAGES C CXX)
|
||||
|
||||
4
debian/changelog
vendored
4
debian/changelog
vendored
@@ -1,5 +1,5 @@
|
||||
86box (5.3) UNRELEASED; urgency=medium
|
||||
86box (5.4) UNRELEASED; urgency=medium
|
||||
|
||||
* Bump release.
|
||||
|
||||
-- Jasmine Iwanek <jriwanek@gmail.com> Tue, 02 Dec 2025 15:24:58 +0100
|
||||
-- Jasmine Iwanek <jriwanek@gmail.com> Tue, 23 Dec 2025 00:27:45 +0100
|
||||
|
||||
@@ -192,11 +192,7 @@ codegen_allocator_clean_blocks(UNUSED(struct mem_block_t *block))
|
||||
{
|
||||
#if defined __ARM_EABI__ || defined __aarch64__ || defined _M_ARM64
|
||||
while (1) {
|
||||
# ifndef _MSC_VER
|
||||
__clear_cache(&mem_block_alloc[block->offset], &mem_block_alloc[block->offset + MEM_BLOCK_SIZE]);
|
||||
# else
|
||||
FlushInstructionCache(GetCurrentProcess(), &mem_block_alloc[block->offset], MEM_BLOCK_SIZE);
|
||||
# endif
|
||||
if (block->next)
|
||||
block = &mem_blocks[block->next - 1];
|
||||
else
|
||||
|
||||
@@ -446,16 +446,14 @@ typedef struct {
|
||||
# define CPU_STATUS_MASK 0xffff0000
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# define COMPILE_TIME_ASSERT(expr) /*nada*/
|
||||
|
||||
#ifdef EXTREME_DEBUG
|
||||
# define COMPILE_TIME_ASSERT(expr) typedef char COMP_TIME_ASSERT[(expr) ? 1 : 0];
|
||||
#else
|
||||
# ifdef EXTREME_DEBUG
|
||||
# define COMPILE_TIME_ASSERT(expr) typedef char COMP_TIME_ASSERT[(expr) ? 1 : 0];
|
||||
# else
|
||||
# define COMPILE_TIME_ASSERT(expr) /*nada*/
|
||||
# endif
|
||||
# define COMPILE_TIME_ASSERT(expr) /*nada*/
|
||||
#endif
|
||||
|
||||
|
||||
COMPILE_TIME_ASSERT(sizeof(cpu_state_t) <= 128)
|
||||
|
||||
#define cpu_state_offset(MEMBER) ((uint8_t) ((uintptr_t) &cpu_state.MEMBER - (uintptr_t) &cpu_state - 128))
|
||||
|
||||
@@ -33,9 +33,6 @@
|
||||
#endif
|
||||
|
||||
#include "x87_timings.h"
|
||||
#ifdef _MSC_VER
|
||||
# include <intrin.h>
|
||||
#endif
|
||||
#include "x87_ops_conv.h"
|
||||
|
||||
#ifdef ENABLE_FPU_LOG
|
||||
@@ -390,8 +387,7 @@ x87_compare(double a, double b)
|
||||
if ((fpu_type < FPU_287XL) && !(cpu_state.npxc & 0x1000) && ((a == INFINITY) || (a == -INFINITY)) && ((b == INFINITY) || (b == -INFINITY)))
|
||||
eb = ea;
|
||||
|
||||
# if !defined(_MSC_VER) || defined(__clang__)
|
||||
/* Memory barrier, to force GCC to write to the input parameters
|
||||
/* Memory barrier, to force GCC to write to the input parameters
|
||||
* before the compare rather than after */
|
||||
__asm volatile(""
|
||||
:
|
||||
@@ -406,17 +402,7 @@ x87_compare(double a, double b)
|
||||
"fnstsw %0\n"
|
||||
: "=m"(result)
|
||||
: "m"(ea), "m"(eb));
|
||||
# else
|
||||
_ReadWriteBarrier();
|
||||
_asm
|
||||
{
|
||||
fld eb
|
||||
fld ea
|
||||
fclex
|
||||
fcompp
|
||||
fnstsw result
|
||||
}
|
||||
# endif
|
||||
|
||||
|
||||
return result & (FPU_SW_C0 | FPU_SW_C2 | FPU_SW_C3);
|
||||
#else
|
||||
@@ -451,7 +437,6 @@ x87_ucompare(double a, double b)
|
||||
#ifdef X87_INLINE_ASM
|
||||
uint32_t result;
|
||||
|
||||
# if !defined(_MSC_VER) || defined(__clang__)
|
||||
/* Memory barrier, to force GCC to write to the input parameters
|
||||
* before the compare rather than after */
|
||||
__asm volatile(""
|
||||
@@ -467,17 +452,6 @@ x87_ucompare(double a, double b)
|
||||
"fnstsw %0\n"
|
||||
: "=m"(result)
|
||||
: "m"(a), "m"(b));
|
||||
# else
|
||||
_ReadWriteBarrier();
|
||||
_asm
|
||||
{
|
||||
fld b
|
||||
fld a
|
||||
fclex
|
||||
fcompp
|
||||
fnstsw result
|
||||
}
|
||||
# endif
|
||||
|
||||
return result & (FPU_SW_C0 | FPU_SW_C2 | FPU_SW_C3);
|
||||
#else
|
||||
|
||||
@@ -33,7 +33,7 @@ typedef struct cart_t {
|
||||
uint32_t base;
|
||||
} cart_t;
|
||||
|
||||
char cart_fns[2][512];
|
||||
char cart_fns[2][MAX_IMAGE_PATH_LEN];
|
||||
char *cart_image_history[2][CART_IMAGE_HISTORY];
|
||||
|
||||
static cart_t carts[2];
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
pc_cassette_t *cassette;
|
||||
|
||||
char cassette_fname[512];
|
||||
char cassette_fname[MAX_IMAGE_PATH_LEN];
|
||||
char cassette_mode[512];
|
||||
char * cassette_image_history[CASSETTE_IMAGE_HISTORY];
|
||||
unsigned long cassette_pos;
|
||||
|
||||
@@ -104,7 +104,7 @@ static fdd_pending_op_t fdd_pending[FDD_NUM];
|
||||
/* BIOS boot status tracking */
|
||||
static bios_boot_status_t bios_boot_status = BIOS_BOOT_POST;
|
||||
|
||||
char floppyfns[FDD_NUM][512];
|
||||
char floppyfns[FDD_NUM][MAX_IMAGE_PATH_LEN];
|
||||
char *fdd_image_history[FDD_NUM][FLOPPY_IMAGE_HISTORY];
|
||||
|
||||
pc_timer_t fdd_poll_time[FDD_NUM];
|
||||
|
||||
@@ -385,7 +385,7 @@ fdd_audio_load_profiles(void)
|
||||
}
|
||||
|
||||
/* Load timing configurations */
|
||||
profile->total_tracks = ini_section_get_int(section, "total_tracks", 80);
|
||||
profile->total_tracks = ini_section_get_int(section, "total_tracks", 0);
|
||||
|
||||
audio_profile_count++;
|
||||
}
|
||||
@@ -553,7 +553,7 @@ load_profile_samples(int profile_id)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static drive_audio_samples_t *
|
||||
|
||||
@@ -18,11 +18,7 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <wchar.h>
|
||||
#ifndef _MSC_VER
|
||||
#include <unistd.h>
|
||||
#else
|
||||
#include <io.h>
|
||||
#endif
|
||||
#define HAVE_STDARG_H
|
||||
#include <86box/86box.h>
|
||||
#include <86box/timer.h>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/* Recently used images */
|
||||
#define MAX_PREV_IMAGES 10
|
||||
#define MAX_IMAGE_PATH_LEN 2048
|
||||
#define MAX_IMAGE_PATH_LEN 4096
|
||||
|
||||
/* Max UUID Length */
|
||||
#define MAX_UUID_LEN 64
|
||||
|
||||
@@ -21,7 +21,7 @@ extern "C" {
|
||||
|
||||
#define CART_IMAGE_HISTORY 10
|
||||
|
||||
extern char cart_fns[2][512];
|
||||
extern char cart_fns[2][MAX_IMAGE_PATH_LEN];
|
||||
extern char *cart_image_history[2][CART_IMAGE_HISTORY];
|
||||
|
||||
extern void cart_load(int drive, char *fn);
|
||||
|
||||
@@ -157,7 +157,7 @@ void pc_cas_advance(pc_cassette_t *cas);
|
||||
|
||||
extern pc_cassette_t *cassette;
|
||||
|
||||
extern char cassette_fname[512];
|
||||
extern char cassette_fname[MAX_IMAGE_PATH_LEN];
|
||||
extern char cassette_mode[512];
|
||||
extern char * cassette_image_history[CASSETTE_IMAGE_HISTORY];
|
||||
extern unsigned long cassette_pos;
|
||||
|
||||
@@ -323,8 +323,8 @@ typedef struct cdrom {
|
||||
|
||||
void *priv;
|
||||
|
||||
char image_path[1024];
|
||||
char prev_image_path[1280];
|
||||
char image_path[MAX_IMAGE_PATH_LEN];
|
||||
char prev_image_path[MAX_IMAGE_PATH_LEN + 256];
|
||||
|
||||
uint32_t sound_on;
|
||||
uint32_t cdrom_capacity;
|
||||
|
||||
@@ -96,7 +96,7 @@ typedef struct DRIVE {
|
||||
} DRIVE;
|
||||
|
||||
extern DRIVE drives[FDD_NUM];
|
||||
extern char floppyfns[FDD_NUM][512];
|
||||
extern char floppyfns[FDD_NUM][MAX_IMAGE_PATH_LEN];
|
||||
extern char *fdd_image_history[FDD_NUM][FLOPPY_IMAGE_HISTORY];
|
||||
extern pc_timer_t fdd_poll_time[FDD_NUM];
|
||||
extern int ui_writeprot[FDD_NUM];
|
||||
|
||||
@@ -161,7 +161,7 @@ typedef struct hard_disk_t {
|
||||
|
||||
void *priv;
|
||||
|
||||
char fn[1024]; /* Name of current image file */
|
||||
char fn[MAX_IMAGE_PATH_LEN]; /* Name of current image file */
|
||||
/* Differential VHD parent file */
|
||||
char vhd_parent[1280];
|
||||
|
||||
|
||||
@@ -113,8 +113,8 @@ typedef struct mo_drive_t {
|
||||
FILE *fp;
|
||||
void *priv;
|
||||
|
||||
char image_path[1024];
|
||||
char prev_image_path[1024];
|
||||
char image_path[MAX_IMAGE_PATH_LEN];
|
||||
char prev_image_path[MAX_IMAGE_PATH_LEN + 256];
|
||||
|
||||
char *image_history[MO_IMAGE_HISTORY];
|
||||
|
||||
|
||||
@@ -69,19 +69,10 @@ extern int strnicmp(const char *s1, const char *s2, size_t n);
|
||||
# define fseeko64 fseeko
|
||||
# define ftello64 ftello
|
||||
# define off64_t off_t
|
||||
#elif defined(_MSC_VER)
|
||||
// # define fopen64 fopen
|
||||
# define fseeko64 _fseeki64
|
||||
# define ftello64 _ftelli64
|
||||
# define off64_t off_t
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# define UNUSED(arg) arg
|
||||
#else
|
||||
/* A hack (GCC-specific?) to allow us to ignore unused parameters. */
|
||||
# define UNUSED(arg) __attribute__((unused)) arg
|
||||
#endif
|
||||
|
||||
/* Return the size (in wchar's) of a wchar_t array. */
|
||||
#define sizeof_w(x) (sizeof((x)) / sizeof(wchar_t))
|
||||
@@ -90,28 +81,23 @@ extern int strnicmp(const char *s1, const char *s2, size_t n);
|
||||
# include <atomic>
|
||||
# define atomic_flag_t std::atomic_flag
|
||||
# define atomic_bool_t std::atomic_bool
|
||||
|
||||
extern "C" {
|
||||
#else
|
||||
# include <stdatomic.h>
|
||||
# define atomic_flag_t atomic_flag
|
||||
# define atomic_bool_t atomic_bool
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
# define ssize_t intptr_t
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# define fallthrough do {} while (0) /* fallthrough */
|
||||
#if __has_attribute(fallthrough)
|
||||
# define fallthrough __attribute__((fallthrough))
|
||||
#else
|
||||
# if __has_attribute(fallthrough)
|
||||
# define fallthrough __attribute__((fallthrough))
|
||||
# else
|
||||
# if __has_attribute(__fallthrough__)
|
||||
# define fallthrough __attribute__((__fallthrough__))
|
||||
# endif
|
||||
# define fallthrough do {} while (0) /* fallthrough */
|
||||
# if __has_attribute(__fallthrough__)
|
||||
# define fallthrough __attribute__((__fallthrough__))
|
||||
# endif
|
||||
# define fallthrough do {} while (0) /* fallthrough */
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* Global variables residing in the platform module. */
|
||||
|
||||
@@ -16,18 +16,16 @@
|
||||
#define EMU_PLAT_FALLTHROUGH_H
|
||||
|
||||
#ifndef EMU_PLAT_H
|
||||
#ifdef _MSC_VER
|
||||
# define fallthrough do {} while (0) /* fallthrough */
|
||||
|
||||
#if __has_attribute(fallthrough)
|
||||
# define fallthrough __attribute__((fallthrough))
|
||||
#else
|
||||
# if __has_attribute(fallthrough)
|
||||
# define fallthrough __attribute__((fallthrough))
|
||||
# else
|
||||
# if __has_attribute(__fallthrough__)
|
||||
# define fallthrough __attribute__((__fallthrough__))
|
||||
# endif
|
||||
# define fallthrough do {} while (0) /* fallthrough */
|
||||
# if __has_attribute(__fallthrough__)
|
||||
# define fallthrough __attribute__((__fallthrough__))
|
||||
# endif
|
||||
# define fallthrough do {} while (0) /* fallthrough */
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif /*EMU_PLAT_FALLTHROUGH_H*/
|
||||
|
||||
@@ -19,12 +19,9 @@
|
||||
#define EMU_PLAT_UNUSED_H
|
||||
|
||||
#ifndef EMU_PLAT_H
|
||||
#ifdef _MSC_VER
|
||||
# define UNUSED(arg) arg
|
||||
#else
|
||||
/* A hack (GCC-specific?) to allow us to ignore unused parameters. */
|
||||
|
||||
# define UNUSED(arg) __attribute__((unused)) arg
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /*EMU_PLAT_UNUSED_H*/
|
||||
|
||||
@@ -91,8 +91,8 @@ typedef struct rdisk_drive_t {
|
||||
FILE *fp;
|
||||
void *priv;
|
||||
|
||||
char image_path[1024];
|
||||
char prev_image_path[1024];
|
||||
char image_path[MAX_IMAGE_PATH_LEN];
|
||||
char prev_image_path[MAX_IMAGE_PATH_LEN + 256];
|
||||
|
||||
char *image_history[RDISK_IMAGE_HISTORY];
|
||||
|
||||
|
||||
@@ -122,6 +122,9 @@ extern const device_t adlib_device;
|
||||
extern const device_t adlib_mca_device;
|
||||
extern const device_t adgold_device;
|
||||
|
||||
/* Analog Devices AD1816 */
|
||||
extern const device_t ad1816_device;
|
||||
|
||||
/* Aztech Sound Galaxy 16 */
|
||||
extern const device_t azt2316a_device;
|
||||
extern const device_t acermagic_s20_device;
|
||||
|
||||
@@ -8,11 +8,7 @@
|
||||
#ifndef VIDEO_VOODOO_CODEGEN_X86_64_H
|
||||
#define VIDEO_VOODOO_CODEGEN_X86_64_H
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# include <intrin.h>
|
||||
#else
|
||||
# include <xmmintrin.h>
|
||||
#endif
|
||||
#include <xmmintrin.h>
|
||||
|
||||
#define BLOCK_NUM 8
|
||||
#define BLOCK_MASK (BLOCK_NUM - 1)
|
||||
|
||||
@@ -8,11 +8,7 @@
|
||||
#ifndef VIDEO_VOODOO_CODEGEN_X86_H
|
||||
#define VIDEO_VOODOO_CODEGEN_X86_H
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# include <intrin.h>
|
||||
#else
|
||||
# include <xmmintrin.h>
|
||||
#endif
|
||||
#include <xmmintrin.h>
|
||||
|
||||
#define BLOCK_NUM 8
|
||||
#define BLOCK_MASK (BLOCK_NUM - 1)
|
||||
|
||||
@@ -33,9 +33,9 @@
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <86box/86box.h>
|
||||
#include <86box/timer.h>
|
||||
#include <86box/fdd.h>
|
||||
#include <86box/86box.h>
|
||||
#include <86box/device.h>
|
||||
#include <86box/fdc.h>
|
||||
#include <86box/fdc_ext.h>
|
||||
|
||||
@@ -52,9 +52,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <wchar.h>
|
||||
#include <time.h>
|
||||
#ifndef _MSC_VER
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include <stdbool.h>
|
||||
#define HAVE_STDARG_H
|
||||
#include <86box/86box.h>
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <wchar.h>
|
||||
#define HAVE_STDARG_H
|
||||
#include <86box/86box.h>
|
||||
#include <86box/scsi_device.h>
|
||||
#include <86box/cdrom.h>
|
||||
#include <86box/log.h>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -166,13 +166,13 @@ msgid "Generic RGBI color monitor"
|
||||
msgstr "Monitor a colores RGBI genérico"
|
||||
|
||||
msgid "&Amber monitor"
|
||||
msgstr "Monitor Ámb&ar"
|
||||
msgstr "Monitor ámb&ar"
|
||||
|
||||
msgid "&Green monitor"
|
||||
msgstr "Monitor &Verde"
|
||||
msgstr "Monitor &verde"
|
||||
|
||||
msgid "&White monitor"
|
||||
msgstr "Monitor &Blanco"
|
||||
msgstr "Monitor &blanco"
|
||||
|
||||
msgid "Grayscale &conversion type"
|
||||
msgstr "&Conversión a grises"
|
||||
@@ -283,10 +283,10 @@ msgid "Preferences"
|
||||
msgstr "Preferencias"
|
||||
|
||||
msgid "Sound Gain"
|
||||
msgstr "Ganancia de Sonido"
|
||||
msgstr "Ganancia de sonido"
|
||||
|
||||
msgid "New Image"
|
||||
msgstr "Nueva Imagen"
|
||||
msgstr "Nueva imagen"
|
||||
|
||||
msgid "Settings"
|
||||
msgstr "Configuraciones"
|
||||
@@ -754,10 +754,10 @@ msgid "Parallel ports:"
|
||||
msgstr "Puertos paralelos:"
|
||||
|
||||
msgid "Storage controllers"
|
||||
msgstr "Controladoras de Almacenamiento"
|
||||
msgstr "Controladoras de almacenamiento"
|
||||
|
||||
msgid "Hard disks"
|
||||
msgstr "Discos Duros"
|
||||
msgstr "Discos duros"
|
||||
|
||||
msgid "Disks:"
|
||||
msgstr "Discos:"
|
||||
@@ -991,7 +991,7 @@ msgid "Hardware not available"
|
||||
msgstr "Equipo no disponible"
|
||||
|
||||
msgid "Make sure %1 is installed and that you are on a %1-compatible network connection."
|
||||
msgstr "Asegúrate de que %1 está instalado y de que estás en una conexión de red compatible con %1."
|
||||
msgstr "Asegúree de que %1 está instalado y de que estás en una conexión de red compatible con %1."
|
||||
|
||||
msgid "Invalid configuration"
|
||||
msgstr "Configuración inválida"
|
||||
@@ -1018,7 +1018,7 @@ msgid "CD-ROM images"
|
||||
msgstr "Imágenes de CD-ROM"
|
||||
|
||||
msgid "%1 Device Configuration"
|
||||
msgstr "%1 configuración de dispositivo"
|
||||
msgstr "Configuración de dispositivo %1"
|
||||
|
||||
msgid "Monitor in sleep mode"
|
||||
msgstr "Monitor en modo ahorro"
|
||||
@@ -1192,7 +1192,7 @@ msgid "System location:"
|
||||
msgstr "Ubicación del sistema:"
|
||||
|
||||
msgid "System name and location"
|
||||
msgstr "Nombre y ubicaciónd el sistema"
|
||||
msgstr "Nombre y ubicación del sistema"
|
||||
|
||||
msgid "Enter the name of the system and choose the location"
|
||||
msgstr "Escribir el nombre del sistema y escoger la ubicación"
|
||||
@@ -1363,10 +1363,10 @@ msgid "Custom (large)…"
|
||||
msgstr "A medida (grande)…"
|
||||
|
||||
msgid "Add New Hard Disk"
|
||||
msgstr "Añadir Nuevo Disco Duro"
|
||||
msgstr "Añadir nuevo disco duro"
|
||||
|
||||
msgid "Add Existing Hard Disk"
|
||||
msgstr "Añadir Disco Duro Existente"
|
||||
msgstr "Añadir disco duro existente"
|
||||
|
||||
msgid "HDI disk images cannot be larger than 4 GB."
|
||||
msgstr "Las imágenes de disco HDI no pueden superar los 4 GB."
|
||||
@@ -1375,7 +1375,7 @@ msgid "Disk images cannot be larger than 127 GB."
|
||||
msgstr "Las imágenes de disco no pueden superar los 127 GB."
|
||||
|
||||
msgid "Hard disk images"
|
||||
msgstr "Imágenes de Disco Duro"
|
||||
msgstr "Imágenes de disco duro"
|
||||
|
||||
msgid "Unable to read file"
|
||||
msgstr "No se pudo leer el archivo"
|
||||
|
||||
@@ -19,7 +19,7 @@ msgid "&Keyboard requires capture"
|
||||
msgstr "C&apturer le clavier"
|
||||
|
||||
msgid "&Right CTRL is left ALT"
|
||||
msgstr "CTRL &Droite devient ALT Gauche"
|
||||
msgstr "CTRL &droite devient ALT gauche"
|
||||
|
||||
msgid "&Hard reset"
|
||||
msgstr "&Hard reset"
|
||||
@@ -28,7 +28,7 @@ msgid "&Ctrl+Alt+Del"
|
||||
msgstr "&Ctrl+Alt+Suppr"
|
||||
|
||||
msgid "Ctrl+Alt+&Esc"
|
||||
msgstr "Ctrl+Alt+&Esc"
|
||||
msgstr "Ctrl+A<+Échap"
|
||||
|
||||
msgid "&Pause"
|
||||
msgstr "&Pause"
|
||||
@@ -79,7 +79,7 @@ msgid "Force &4:3 display ratio"
|
||||
msgstr "Forcer le ratio &4:3"
|
||||
|
||||
msgid "&Window scale factor"
|
||||
msgstr "Facteur d'&Echelle"
|
||||
msgstr "Facteur d'éch&elle"
|
||||
|
||||
msgid "&0.5x"
|
||||
msgstr "&0.5x"
|
||||
@@ -112,7 +112,7 @@ msgid "&8x"
|
||||
msgstr "&8x"
|
||||
|
||||
msgid "Fi<er method"
|
||||
msgstr "Mét&hode de Filtre"
|
||||
msgstr "Mét&hode de filtre"
|
||||
|
||||
msgid "&Nearest"
|
||||
msgstr "&Plus proche"
|
||||
@@ -139,16 +139,16 @@ msgid "&Square pixels (Keep ratio)"
|
||||
msgstr "Pixels &carrés (Conserver le ratio)"
|
||||
|
||||
msgid "&Integer scale"
|
||||
msgstr "&Echelle entière"
|
||||
msgstr "Éch&elle entière"
|
||||
|
||||
msgid "4:&3 Integer scale"
|
||||
msgstr "Echelle entière 4:&3"
|
||||
msgstr "Échelle entière 4:&3"
|
||||
|
||||
msgid "EGA/(S)&VGA settings"
|
||||
msgstr "Réglages EGA/(S)&VGA"
|
||||
|
||||
msgid "&Inverted VGA monitor"
|
||||
msgstr "Moniteur VGA &Inversé"
|
||||
msgstr "Moniteur VGA &inversé"
|
||||
|
||||
msgid "VGA screen &type"
|
||||
msgstr "&Type d'écran VGA"
|
||||
@@ -160,22 +160,22 @@ msgid "RGB (no brown)"
|
||||
msgstr "RVB (sans brun)"
|
||||
|
||||
msgid "&RGB Grayscale"
|
||||
msgstr "Niveau de Gris &RVB"
|
||||
msgstr "Niveau de gris &RVB"
|
||||
|
||||
msgid "Generic RGBI color monitor"
|
||||
msgstr "Moniteur couleur RVB générique"
|
||||
|
||||
msgid "&Amber monitor"
|
||||
msgstr "Moniteur &Ambre"
|
||||
msgstr "Moniteur &ambre"
|
||||
|
||||
msgid "&Green monitor"
|
||||
msgstr "Moniteur &Vert"
|
||||
msgstr "Moniteur &vert"
|
||||
|
||||
msgid "&White monitor"
|
||||
msgstr "Moniteur &Blanc"
|
||||
msgstr "Moniteur &blanc"
|
||||
|
||||
msgid "Grayscale &conversion type"
|
||||
msgstr "Type de &conversion du niveau de Gris"
|
||||
msgstr "Type de &conversion du niveau de gris"
|
||||
|
||||
msgid "BT&601 (NTSC/PAL)"
|
||||
msgstr "BT&601 (NTSC/PAL)"
|
||||
@@ -220,7 +220,7 @@ msgid "Enable &Discord integration"
|
||||
msgstr "Activer l'intégration &Discord"
|
||||
|
||||
msgid "Sound &gain…"
|
||||
msgstr "&Gain Son…"
|
||||
msgstr "&Gain son…"
|
||||
|
||||
msgid "Begin trace"
|
||||
msgstr "Démarrer traces"
|
||||
@@ -235,16 +235,16 @@ msgid "&Documentation…"
|
||||
msgstr "&Documentation…"
|
||||
|
||||
msgid "&About 86Box…"
|
||||
msgstr "&A Propos de 86Box…"
|
||||
msgstr "À &propos de 86Box…"
|
||||
|
||||
msgid "&New image…"
|
||||
msgstr "&Nouvelle image…"
|
||||
|
||||
msgid "&Existing image…"
|
||||
msgstr "Image &Existante…"
|
||||
msgstr "Image &existante…"
|
||||
|
||||
msgid "Existing image (&Write-protected)…"
|
||||
msgstr "Image Existante (&Lecture seule)…"
|
||||
msgstr "Image existante (&Lecture seule)…"
|
||||
|
||||
msgid "&Record"
|
||||
msgstr "En®istrer"
|
||||
@@ -256,7 +256,7 @@ msgid "&Rewind to the beginning"
|
||||
msgstr "&Revenir au debut"
|
||||
|
||||
msgid "&Fast forward to the end"
|
||||
msgstr "Avance rapide jusqu'à la &Fin"
|
||||
msgstr "Avance rapide jusqu'à la &fin"
|
||||
|
||||
msgid "E&ject"
|
||||
msgstr "É&jecter"
|
||||
@@ -595,7 +595,7 @@ msgid "Type:"
|
||||
msgstr "Type :"
|
||||
|
||||
msgid "Image Format:"
|
||||
msgstr "Format Image :"
|
||||
msgstr "Format image :"
|
||||
|
||||
msgid "Block Size:"
|
||||
msgstr "Taille du bloc :"
|
||||
@@ -1300,7 +1300,7 @@ msgid "Warning"
|
||||
msgstr "Avertissement"
|
||||
|
||||
msgid "&Kill"
|
||||
msgstr "Fo&rcer Extinction"
|
||||
msgstr "Fo&rcer extinction"
|
||||
|
||||
msgid "Killing a virtual machine can cause data loss. Only do this if the 86Box process gets stuck.\n\nDo you really wish to kill the virtual machine \"%1\"?"
|
||||
msgstr "La fermeture forcée d'une machine virtuelle peut entraîner une perte de données. Ne procédez ainsi que si le processus 86Box est bloqué.\n\nVoulez-vous vraiment fermer la machine virtuelle « %1 » ?"
|
||||
@@ -1459,10 +1459,10 @@ msgid "Differencing VHD (.vhd)"
|
||||
msgstr "VHD différentiel (.vhd)"
|
||||
|
||||
msgid "Large blocks (2 MB)"
|
||||
msgstr "Grands Blocs (2 Mo)"
|
||||
msgstr "Grands blocs (2 Mo)"
|
||||
|
||||
msgid "Small blocks (512 KB)"
|
||||
msgstr "Petits Blocs (512 Ko)"
|
||||
msgstr "Petits blocs (512 Ko)"
|
||||
|
||||
msgid "VHD files"
|
||||
msgstr "Fichiers VHD"
|
||||
@@ -1624,10 +1624,10 @@ msgid "List of MCA devices:"
|
||||
msgstr "Liste des dispositifs MCA :"
|
||||
|
||||
msgid "&Tablet tool"
|
||||
msgstr "Outil Tablette"
|
||||
msgstr "Outil tablette"
|
||||
|
||||
msgid "About &Qt"
|
||||
msgstr "A propos de &Qt"
|
||||
msgstr "À propos de &Qt"
|
||||
|
||||
msgid "&MCA devices…"
|
||||
msgstr "Dispositifs MCA…"
|
||||
@@ -1684,7 +1684,7 @@ msgid "Use target framerate:"
|
||||
msgstr "Utiliser le taux de rafraîchissement cible :"
|
||||
|
||||
msgid " fps"
|
||||
msgstr " Images par seconde"
|
||||
msgstr " images par seconde"
|
||||
|
||||
msgid "VSync"
|
||||
msgstr "VSync"
|
||||
@@ -2707,7 +2707,7 @@ msgid "Ask for confirmation before saving settings"
|
||||
msgstr "Demander confirmation avant de sauvegarder les réglages"
|
||||
|
||||
msgid "Ask for confirmation before hard resetting"
|
||||
msgstr "Demander confirmation avant Hard Reset"
|
||||
msgstr "Demander confirmation avant hard reset"
|
||||
|
||||
msgid "Ask for confirmation before quitting"
|
||||
msgstr "Demander confirmation avant de quitter"
|
||||
@@ -2743,7 +2743,7 @@ msgid "Shader Manager"
|
||||
msgstr "Gestionnaire de shader"
|
||||
|
||||
msgid "Shader Configuration"
|
||||
msgstr "Configuration Shader"
|
||||
msgstr "Configuration du shader"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Ajouter"
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <cstdint>
|
||||
|
||||
extern "C" {
|
||||
#include <86box/86box.h>
|
||||
#include <86box/hdd.h>
|
||||
#include <86box/scsi.h>
|
||||
#include <86box/cdrom.h>
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
#include "qt_machinestatus.hpp"
|
||||
|
||||
extern "C" {
|
||||
#include <86box/86box.h>
|
||||
#include <86box/hdd.h>
|
||||
#include <86box/timer.h>
|
||||
#include <86box/86box.h>
|
||||
#include <86box/device.h>
|
||||
#include <86box/cartridge.h>
|
||||
#include <86box/cassette.h>
|
||||
|
||||
@@ -668,7 +668,7 @@ MediaMenu::updateImageHistory(int index, int slot, ui::MediaType type)
|
||||
else
|
||||
fi.setFile(fn);
|
||||
if (!fi.fileName().isEmpty() && (fn.left(5) == "wp://")) {
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : fn.right(fn.length() - 5);
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : "🔒 " + fn.right(fn.length() - 5);
|
||||
imageHistoryUpdatePos->setIcon(getIconWithIndicator(menu_icon, pixmap_size, QIcon::Normal, WriteProtected));
|
||||
} else {
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : fn;
|
||||
@@ -696,7 +696,7 @@ MediaMenu::updateImageHistory(int index, int slot, ui::MediaType type)
|
||||
else
|
||||
fi.setFile(fn);
|
||||
if (!fi.fileName().isEmpty() && (fn.left(5) == "wp://")) {
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : fn.right(fn.length() - 5);
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : "🔒 " + fn.right(fn.length() - 5);
|
||||
imageHistoryUpdatePos->setIcon(getIconWithIndicator(menu_icon, pixmap_size, QIcon::Normal, WriteProtected));
|
||||
} else {
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : fn;
|
||||
@@ -735,7 +735,7 @@ MediaMenu::updateImageHistory(int index, int slot, ui::MediaType type)
|
||||
else
|
||||
fi.setFile(fn);
|
||||
if (!fi.fileName().isEmpty() && (fn.left(5) == "wp://")) {
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : fn.right(fn.length() - 5);
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : "🔒 " + fn.right(fn.length() - 5);
|
||||
imageHistoryUpdatePos->setIcon(getIconWithIndicator(menu_icon, pixmap_size, QIcon::Normal, WriteProtected));
|
||||
} else {
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : fn;
|
||||
@@ -754,7 +754,7 @@ MediaMenu::updateImageHistory(int index, int slot, ui::MediaType type)
|
||||
else
|
||||
fi.setFile(fn);
|
||||
if (!fi.fileName().isEmpty() && (fn.left(5) == "wp://")) {
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : fn.right(fn.length() - 5);
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : "🔒 " + fn.right(fn.length() - 5);
|
||||
imageHistoryUpdatePos->setIcon(getIconWithIndicator(menu_icon, pixmap_size, QIcon::Normal, WriteProtected));
|
||||
} else {
|
||||
menu_item_name = fi.fileName().isEmpty() ? tr("Reload previous image") : fn;
|
||||
|
||||
@@ -19,9 +19,13 @@
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
|
||||
extern "C" {
|
||||
#include "86box/86box.h"
|
||||
#include "86box/hdd.h"
|
||||
#include "86box/scsi.h"
|
||||
#include "86box/cdrom.h"
|
||||
}
|
||||
|
||||
#include "qt_settings_bus_tracking.hpp"
|
||||
|
||||
SettingsBusTracking::SettingsBusTracking()
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "ui_qt_settingsotherremovable.h"
|
||||
|
||||
extern "C" {
|
||||
#include <86box/86box.h>
|
||||
#include <86box/timer.h>
|
||||
#include <86box/scsi_device.h>
|
||||
#include <86box/mo.h>
|
||||
|
||||
@@ -149,11 +149,11 @@ VMManagerDetails::VMManagerDetails(QWidget *parent)
|
||||
cadButton->setEnabled(false);
|
||||
cadButton->setToolTip(tr("Ctrl+Alt+Del"));
|
||||
|
||||
ui->toolButtonHolder->layout()->addWidget(configureButton);
|
||||
ui->toolButtonHolder->layout()->addWidget(startPauseButton);
|
||||
ui->toolButtonHolder->layout()->addWidget(resetButton);
|
||||
ui->toolButtonHolder->layout()->addWidget(stopButton);
|
||||
ui->toolButtonHolder->layout()->addWidget(startPauseButton);
|
||||
ui->toolButtonHolder->layout()->addWidget(cadButton);
|
||||
ui->toolButtonHolder->layout()->addWidget(configureButton);
|
||||
|
||||
ui->notesTextEdit->setEnabled(false);
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ add_library(snd OBJECT
|
||||
snd_ps1.c
|
||||
snd_adlib.c
|
||||
snd_adlibgold.c
|
||||
snd_ad1816.c
|
||||
snd_ad1848.c
|
||||
snd_audiopci.c
|
||||
snd_azt2316a.c
|
||||
|
||||
1000
src/sound/snd_ad1816.c
Normal file
1000
src/sound/snd_ad1816.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -137,6 +137,7 @@ static const SOUND_CARD sound_cards[] = {
|
||||
{ &adlib_device },
|
||||
/* ISA16 */
|
||||
{ &acermagic_s20_device },
|
||||
{ &ad1816_device },
|
||||
{ &azt2316a_device },
|
||||
{ &azt1605_device },
|
||||
{ &sb_goldfinch_device },
|
||||
|
||||
@@ -12,10 +12,10 @@
|
||||
# After a successful build, you can install the RPMs as follows:
|
||||
# sudo dnf install RPMS/$(uname -m)/86Box-3* RPMS/noarch/86Box-roms*
|
||||
|
||||
%global romver 5.3
|
||||
%global romver 5.4
|
||||
|
||||
Name: 86Box
|
||||
Version: 5.3
|
||||
Version: 5.4
|
||||
Release: 1%{?dist}
|
||||
Summary: Classic PC emulator
|
||||
License: GPLv2+
|
||||
@@ -121,5 +121,5 @@ popd
|
||||
%{_datadir}/%{name}/roms
|
||||
|
||||
%changelog
|
||||
* Sat Aug 31 Jasmine Iwanek <jriwanek[AT]gmail.com> 5.3-1
|
||||
* Sat Aug 31 Jasmine Iwanek <jriwanek[AT]gmail.com> 5.4-1
|
||||
- Bump release
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</categories>
|
||||
<launchable type="desktop-id">net.86box.86Box.desktop</launchable>
|
||||
<releases>
|
||||
<release version="5.3" date="2025-12-02"/>
|
||||
<release version="5.4" date="2025-12-23"/>
|
||||
</releases>
|
||||
<content_rating type="oars-1.1" />
|
||||
<description>
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <wchar.h>
|
||||
#define HAVE_STDARG_H
|
||||
#include <86box/86box.h>
|
||||
#include <86box/scsi_device.h>
|
||||
#include <86box/cdrom.h>
|
||||
#include <86box/log.h>
|
||||
|
||||
@@ -51,16 +51,10 @@ rdtsc(void)
|
||||
#if defined(__x86_64__)
|
||||
unsigned int hi;
|
||||
unsigned int lo;
|
||||
# ifdef _MSC_VER
|
||||
__asm {
|
||||
rdtsc
|
||||
mov hi, edx ; EDX:EAX is already standard return!!
|
||||
mov lo, eax
|
||||
}
|
||||
# else
|
||||
|
||||
__asm__ __volatile__("rdtsc"
|
||||
: "=a"(lo), "=d"(hi));
|
||||
# endif
|
||||
|
||||
return ((unsigned long long) lo) | (((unsigned long long) hi) << 32);
|
||||
#else
|
||||
return time(NULL);
|
||||
|
||||
@@ -91,7 +91,7 @@ svga_render_blank(svga_t *svga)
|
||||
line_width -= svga->x_add;
|
||||
}
|
||||
|
||||
if (((svga->hdisp + svga->scrollcache) > 0) && (line_width >= 0))
|
||||
if ((line_ptr != NULL) && ((svga->hdisp + svga->scrollcache) > 0) && (line_width >= 0))
|
||||
memset(line_ptr, 0, line_width);
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ svga_render_overscan_left(svga_t *svga)
|
||||
|
||||
uint32_t *line_ptr = svga->monitor->target_buffer->line[svga->displine + svga->y_add];
|
||||
|
||||
if (svga->x_add >= 0) for (int i = 0; i < svga->x_add; i++)
|
||||
if ((line_ptr != NULL) && (svga->x_add >= 0)) for (int i = 0; i < svga->x_add; i++)
|
||||
*line_ptr++ = svga->overscan_color;
|
||||
}
|
||||
|
||||
@@ -121,10 +121,15 @@ svga_render_overscan_right(svga_t *svga)
|
||||
if (svga->scrblank || (svga->hdisp <= 0))
|
||||
return;
|
||||
|
||||
uint32_t *line_ptr = &svga->monitor->target_buffer->line[svga->displine + svga->y_add][svga->x_add + svga->hdisp];
|
||||
uint32_t *line_ptr = svga->monitor->target_buffer->line[svga->displine + svga->y_add];
|
||||
right = overscan_x - svga->left_overscan;
|
||||
for (int i = 0; i < right; i++)
|
||||
*line_ptr++ = svga->overscan_color;
|
||||
|
||||
if (line_ptr != NULL) {
|
||||
line_ptr += svga->x_add + svga->hdisp;
|
||||
|
||||
for (int i = 0; i < right; i++)
|
||||
*line_ptr++ = svga->overscan_color;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "86box",
|
||||
"version-string": "5.3",
|
||||
"version-string": "5.4",
|
||||
"homepage": "https://86box.net/",
|
||||
"documentation": "https://86box.readthedocs.io/",
|
||||
"license": "GPL-2.0-or-later",
|
||||
|
||||
Reference in New Issue
Block a user