Various improvements & Cleanups

Some ported from ANightly's work
This commit is contained in:
Jasmine Iwanek
2025-01-11 18:13:56 -05:00
parent 4ed7fec6a5
commit fabe71150c
29 changed files with 178 additions and 140 deletions

View File

@@ -57,7 +57,7 @@ add_library(dev OBJECT
mouse_microtouch_touchscreen.c
)
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT MSVC)
target_link_libraries(86Box atomic)
endif()

View File

@@ -282,8 +282,8 @@ static const device_config_t serial_passthrough_config[] = {
.type = CONFIG_SERPORT,
.default_string = "",
.file_filter = NULL,
.spinner = {},
.selection = {}
.spinner = { 0 },
.selection = { { 0 } }
},
#ifdef _WIN32
{
@@ -292,8 +292,8 @@ static const device_config_t serial_passthrough_config[] = {
.type = CONFIG_STRING,
.default_string = "\\\\.\\pipe\\86Box\\test",
.file_filter = NULL,
.spinner = {},
.selection = {}
.spinner = { 0 },
.selection = { { 0 } }
},
#endif
{

View File

@@ -104,8 +104,8 @@ struct unittester_state {
/* 0x04: Exit */
uint8_t exit_code;
};
static struct unittester_state unittester;
static const struct unittester_state unittester_defaults = {
static struct unittester_state unittester;
static struct unittester_state unittester_defaults = {
.trigger_port = 0x0080,
.iobase_port = 0xFFFF,
.fsm1 = UT_FSM1_WAIT_8,
@@ -589,7 +589,7 @@ unittester_trigger_write(UNUSED(uint16_t port), uint8_t val, UNUSED(void *priv))
static void *
unittester_init(UNUSED(const device_t *info))
{
unittester = (struct unittester_state) unittester_defaults;
unittester = unittester_defaults;
unittester_exit_enabled = !!device_get_config_int("exit_enabled");

View File

@@ -1114,7 +1114,7 @@ static const device_config_t wdxt150_config[] = {
.default_string = "",
.default_int = 0x0320,
.file_filter = "",
.spinner = { 0 }, /*W2*/
.spinner = { 0 },
.selection = {
{ .description = "320H", .value = 0x0320 },
{ .description = "324H", .value = 0x0324 },
@@ -1128,7 +1128,7 @@ static const device_config_t wdxt150_config[] = {
.default_string = "",
.default_int = 5,
.file_filter = "",
.spinner = { 0 }, /*W3*/
.spinner = { 0 },
.selection = {
{ .description = "IRQ 5", .value = 5 },
{ .description = "IRQ 4", .value = 4 },
@@ -1142,7 +1142,7 @@ static const device_config_t wdxt150_config[] = {
.default_string = "",
.default_int = 0xc8000,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.spinner = { 0 },
.selection = {
{ .description = "C800H", .value = 0xc8000 },
{ .description = "CA00H", .value = 0xca000 },
@@ -1156,7 +1156,7 @@ static const device_config_t wdxt150_config[] = {
.default_string = "rev_1",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.spinner = { 0 },
.bios = {
{ .name = "Revision 1.0", .internal_name = "rev_1", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 8192, .files = { WD_REV_1_BIOS_FILE, "" } },

View File

@@ -238,7 +238,7 @@ static const device_config_t xtide_config[] = {
.default_string = "xt",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.spinner = { 0 },
.bios = {
{ .name = "Regular XT", .internal_name = "xt", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 8192, .files = { ROM_PATH_XT, "" } },
@@ -260,7 +260,7 @@ static const device_config_t xtide_at_config[] = {
.default_string = "at",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.spinner = { 0 },
.bios = {
{ .name = "Regular AT", .internal_name = "at", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 8192, .files = { ROM_PATH_AT, "" } },

View File

@@ -20,7 +20,11 @@
#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>

View File

@@ -191,8 +191,13 @@ extern void pclog_ex(const char *fmt, va_list);
extern void fatal_ex(const char *fmt, va_list);
#endif
extern void pclog_toggle_suppr(void);
#ifdef _MSC_VER
extern void pclog(const char *fmt, ...);
extern void fatal(const char *fmt, ...);
#else
extern void pclog(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
extern void fatal(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
#endif
extern void set_screen_size(int x, int y);
extern void set_screen_size_monitor(int x, int y, int monitor_index);
extern void reset_screen_size(void);

View File

@@ -222,10 +222,6 @@ machine_at_ataripc4_init(const machine_t *model)
ret = bios_load_interleaved("roms/machines/ataripc4/AMI_PC4X_1.7_EVEN.BIN",
"roms/machines/ataripc4/AMI_PC4X_1.7_ODD.BIN",
#if 0
ret = bios_load_interleaved("roms/machines/ataripc4/ami_pc4x_1.7_even.bin",
"roms/machines/ataripc4/ami_pc4x_1.7_odd.bin",
#endif
0x000f0000, 65536, 0);
if (bios_only || !ret)

View File

@@ -252,7 +252,7 @@ static const device_config_t ps1_2011_config[] = {
.default_string = "english_us",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.spinner = { 0 },
.bios = {
{ .name = "English (US)", .internal_name = "english_us", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 262144, .files = { "roms/machines/ibmps1es/FC0000_US.BIN", "" } },

View File

@@ -41,7 +41,10 @@ pkg_check_modules(SLIRP REQUIRED IMPORTED_TARGET slirp)
target_link_libraries(86Box PkgConfig::SLIRP)
if(WIN32)
target_link_libraries(PkgConfig::SLIRP INTERFACE wsock32 ws2_32 iphlpapi iconv)
target_link_libraries(PkgConfig::SLIRP INTERFACE wsock32 ws2_32 iphlpapi)
if (NOT MSVC)
target_link_libraries(PkgConfig::SLIRP INTERFACE iconv)
endif()
if(STATIC_BUILD)
add_compile_definitions(LIBSLIRP_STATIC)
endif()

View File

@@ -28,6 +28,9 @@
#include <stdbool.h>
#include <string.h>
#include <stdio.h>
#ifdef _MVC_VER
#include <stddef.h>
#endif
#include <time.h>
#define HAVE_STDARG_H
#include <86box/86box.h>
@@ -531,14 +534,14 @@ rtl8139_write_buffer(RTL8139State *s, const void *buf, int size)
if (size > wrapped) {
dma_bm_write(s->RxBuf + s->RxBufAddr,
buf, size - wrapped, 1);
(uint8_t *) buf, size - wrapped, 1);
}
/* reset buffer pointer */
s->RxBufAddr = 0;
dma_bm_write(s->RxBuf + s->RxBufAddr,
buf + (size - wrapped), wrapped, 1);
(uint8_t *) buf + (size - wrapped), wrapped, 1);
s->RxBufAddr = wrapped;

View File

@@ -54,7 +54,9 @@
#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>

View File

@@ -230,7 +230,11 @@ static HarddiskDialog *callbackPtr = nullptr;
static MVHDGeom
create_drive_vhd_fixed(const QString &fileName, HarddiskDialog *p, uint16_t cyl, uint8_t heads, uint8_t spt)
{
MVHDGeom _86box_geometry = { .cyl = cyl, .heads = heads, .spt = spt };
MVHDGeom _86box_geometry = {
.cyl = cyl,
.heads = heads,
.spt = spt
};
MVHDGeom vhd_geometry;
adjust_86box_geometry_for_vhd(&_86box_geometry, &vhd_geometry);
@@ -256,7 +260,11 @@ create_drive_vhd_fixed(const QString &fileName, HarddiskDialog *p, uint16_t cyl,
static MVHDGeom
create_drive_vhd_dynamic(const QString &fileName, uint16_t cyl, uint8_t heads, uint8_t spt, int blocksize)
{
MVHDGeom _86box_geometry = { .cyl = cyl, .heads = heads, .spt = spt };
MVHDGeom _86box_geometry = {
.cyl = cyl,
.heads = heads,
.spt = spt
};
MVHDGeom vhd_geometry;
adjust_86box_geometry_for_vhd(&_86box_geometry, &vhd_geometry);
int vhd_error = 0;

View File

@@ -30,10 +30,11 @@
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
****************************************************************************/
#include "qt_vulkanrenderer.hpp"
#include <QCoreApplication>
#include <QFile>
#include "qt_vulkanrenderer.hpp"
#if QT_CONFIG(vulkan)
# include <QVulkanFunctions>
@@ -676,7 +677,7 @@ VulkanRenderer2::initResources()
v_texcoord = texcoord;
gl_Position = ubuf.mvp * position;
}
#endif
#endif /* 0 */
VkShaderModule vertShaderModule = createShader(QStringLiteral(":/texture_vert.spv"));
#if 0
#version 440
@@ -691,7 +692,7 @@ VulkanRenderer2::initResources()
{
fragColor = texture(tex, v_texcoord);
}
#endif
#endif /* 0 */
VkShaderModule fragShaderModule = createShader(QStringLiteral(":/texture_frag.spv"));
// Graphics pipeline
@@ -1009,4 +1010,4 @@ VulkanRenderer2::startNextFrame()
m_window->frameReady();
m_window->requestUpdate(); // render continuously, throttled by the presentation rate
}
#endif
#endif /* QT_CONFIG(vulkan) */

View File

@@ -31,6 +31,8 @@
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
****************************************************************************/
#ifndef VULKANRENDERER_HPP
#define VULKANRENDERER_HPP
#include <QVulkanWindow>
#include <QImage>
@@ -90,4 +92,6 @@ private:
QMatrix4x4 m_proj;
};
#endif
#endif // QT_CONFIG(vulkan)
#endif // VULKANRENDERER_HPP

View File

@@ -1,3 +1,35 @@
/****************************************************************************
**
** Copyright (C) 2022 Cacodemon345
** Copyright (C) 2017 The Qt Company Ltd.
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of The Qt Company Ltd nor the names of its
** contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
****************************************************************************/
#include "qt_vulkanwindowrenderer.hpp"
#include <QMessageBox>
@@ -697,7 +729,7 @@ public:
# if VK_HEADER_VERSION >= 135 && VK_HEADER_VERSION < 162
case VK_ERROR_INCOMPATIBLE_VERSION_KHR:
return "VK_ERROR_INCOMPATIBLE_VERSION_KHR";
# endif
# endif /* VK_HEADER_VERSION >= 135 && VK_HEADER_VERSION < 162 */
case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:
return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
case VK_ERROR_NOT_PERMITTED_EXT:
@@ -788,7 +820,7 @@ public:
m_devFuncs->vkDeviceWaitIdle(m_window->device());
}
};
# endif
# endif /* 0*/
VulkanWindowRenderer::VulkanWindowRenderer(QWidget *parent)
: QVulkanWindow(parent->windowHandle())
@@ -851,4 +883,4 @@ VulkanWindowRenderer::getBuffers()
{
return std::vector { std::make_tuple((uint8_t *) renderer->mappedPtr, &this->buf_usage[0]) };
}
#endif
#endif /* QT_CONFIG(vulkan) */

View File

@@ -35,6 +35,6 @@ private:
VulkanRenderer2 *renderer;
};
#endif
#endif // QT_CONFIG(vulkan)
#endif // VULKANWINDOWRENDERER_HPP

View File

@@ -56,14 +56,18 @@ std::unique_ptr<WindowsRawInputFilter>
WindowsRawInputFilter::Register(MainWindow *window)
{
RAWINPUTDEVICE rid[2] = {
{.usUsagePage = 0x01,
.usUsage = 0x06,
.dwFlags = RIDEV_NOHOTKEYS,
.hwndTarget = nullptr},
{ .usUsagePage = 0x01,
.usUsage = 0x02,
.dwFlags = 0,
.hwndTarget = nullptr}
{
.usUsagePage = 0x01,
.usUsage = 0x06,
.dwFlags = RIDEV_NOHOTKEYS,
.hwndTarget = nullptr
},
{
.usUsagePage = 0x01,
.usUsage = 0x02,
.dwFlags = 0,
.hwndTarget = nullptr
}
};
if (hook_enabled && (RegisterRawInputDevices(&(rid[1]), 1, sizeof(rid[0])) == FALSE))
@@ -89,14 +93,18 @@ WindowsRawInputFilter::WindowsRawInputFilter(MainWindow *window)
WindowsRawInputFilter::~WindowsRawInputFilter()
{
RAWINPUTDEVICE rid[2] = {
{.usUsagePage = 0x01,
.usUsage = 0x06,
.dwFlags = RIDEV_REMOVE,
.hwndTarget = NULL},
{ .usUsagePage = 0x01,
.usUsage = 0x02,
.dwFlags = RIDEV_REMOVE,
.hwndTarget = NULL}
{
.usUsagePage = 0x01,
.usUsage = 0x06,
.dwFlags = RIDEV_REMOVE,
.hwndTarget = NULL
},
{
.usUsagePage = 0x01,
.usUsage = 0x02,
.dwFlags = RIDEV_REMOVE,
.hwndTarget = NULL
}
};
if (hook_enabled)

View File

@@ -88,7 +88,7 @@ plat_serpt_set_params(void *priv)
const serial_passthrough_t *dev = (serial_passthrough_t *) priv;
if (dev->mode == SERPT_MODE_HOSTSER) {
DCB serialattr = {};
DCB serialattr = { 0 };
GetCommState((HANDLE) dev->master_fd, &serialattr);
#define BAUDRATE_RANGE(baud_rate, min, max) \
if (baud_rate >= min && baud_rate < max) { \

View File

@@ -1421,7 +1421,7 @@ static const device_config_t aha_154xcp_config[] = {
.default_string = "v1_02_en",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.spinner = { 0 },
.bios = {
{ .name = "Version 1.02 (English)", .internal_name = "v1_02_en", .bios_type = BIOS_NORMAL,
.files_no = 2, .local = 0, .size = 32768, .files = { "roms/scsi/adaptec/aha1542cp102.bin",

View File

@@ -841,7 +841,7 @@ static const device_config_t rt1000b_config[] = {
.default_string = "v8_10r",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.spinner = { 0 },
.bios = {
{ .name = "Version 8.10R", .internal_name = "v8_10r", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 8192, .files = { RT1000B_810R_ROM, "" } },

View File

@@ -330,8 +330,7 @@ static const device_config_t fluidsynth_config[] = {
.name = "output_gain",
.description = "Output Gain",
.type = CONFIG_SPINNER,
.spinner =
{
.spinner = {
.min = 0,
.max = 100
},
@@ -347,8 +346,7 @@ static const device_config_t fluidsynth_config[] = {
.name = "chorus_voices",
.description = "Chorus Voices",
.type = CONFIG_SPINNER,
.spinner =
{
.spinner = {
.min = 0,
.max = 99
},
@@ -358,8 +356,7 @@ static const device_config_t fluidsynth_config[] = {
.name = "chorus_level",
.description = "Chorus Level",
.type = CONFIG_SPINNER,
.spinner =
{
.spinner = {
.min = 0,
.max = 100
},
@@ -369,8 +366,7 @@ static const device_config_t fluidsynth_config[] = {
.name = "chorus_speed",
.description = "Chorus Speed",
.type = CONFIG_SPINNER,
.spinner =
{
.spinner = {
.min = 10,
.max = 500
},
@@ -380,8 +376,7 @@ static const device_config_t fluidsynth_config[] = {
.name = "chorus_depth",
.description = "Chorus Depth",
.type = CONFIG_SPINNER,
.spinner =
{
.spinner = {
.min = 0,
.max = 2560
},
@@ -391,8 +386,7 @@ static const device_config_t fluidsynth_config[] = {
.name = "chorus_waveform",
.description = "Chorus Waveform",
.type = CONFIG_SELECTION,
.selection =
{
.selection = {
{
.description = "Sine",
.value = 0
@@ -414,8 +408,7 @@ static const device_config_t fluidsynth_config[] = {
.name = "reverb_room_size",
.description = "Reverb Room Size",
.type = CONFIG_SPINNER,
.spinner =
{
.spinner = {
.min = 0,
.max = 100
},
@@ -425,8 +418,7 @@ static const device_config_t fluidsynth_config[] = {
.name = "reverb_damping",
.description = "Reverb Damping",
.type = CONFIG_SPINNER,
.spinner =
{
.spinner = {
.min = 0,
.max = 100
},
@@ -436,8 +428,7 @@ static const device_config_t fluidsynth_config[] = {
.name = "reverb_width",
.description = "Reverb Width",
.type = CONFIG_SPINNER,
.spinner =
{
.spinner = {
.min = 0,
.max = 1000
},
@@ -447,8 +438,7 @@ static const device_config_t fluidsynth_config[] = {
.name = "reverb_level",
.description = "Reverb Level",
.type = CONFIG_SPINNER,
.spinner =
{
.spinner = {
.min = 0,
.max = 100
},
@@ -458,8 +448,7 @@ static const device_config_t fluidsynth_config[] = {
.name = "interpolation",
.description = "Interpolation Method",
.type = CONFIG_SELECTION,
.selection =
{
.selection = {
{
.description = "None",
.value = 0

View File

@@ -24,7 +24,11 @@
#define RESID_BRANCH_HINTS true
// Compiler specifics.
#ifndef _MSC_VER
#define HAVE_BUILTIN_EXPECT true
#else
#define HAVE_BUILTIN_EXPECT false
#endif
// Branch prediction macros, lifted off the Linux kernel.
#if RESID_BRANCH_HINTS && HAVE_BUILTIN_EXPECT

View File

@@ -173,8 +173,8 @@ static const device_config_t opl2board_config[] = {
.type = CONFIG_SERPORT,
.default_string = "",
.file_filter = NULL,
.spinner = {},
.selection = {}
.spinner = { 0 },
.selection = { { 0 } }
},
{ .name = "", .description = "", .type = CONFIG_END }
};

View File

@@ -86,6 +86,7 @@
* Copyright 2008-2024 Sarah Walker.
* Copyright 2024 Miran Grca.
*/
#define _USE_MATH_DEFINES
#include <math.h>
#include <stdarg.h>
#include <stdint.h>

View File

@@ -548,17 +548,20 @@ et3000_available(void)
}
static const device_config_t et3000_config[] = {
{ .name = "memory",
.description = "Memory size",
.type = CONFIG_SELECTION,
.default_int = 512,
.selection = {
{ .description = "256 KB",
.value = 256 },
{ .description = "512 KB",
.value = 512 },
{ .description = "" } } },
// clang-format off
{
.name = "memory",
.description = "Memory size",
.type = CONFIG_SELECTION,
.default_int = 512,
.selection = {
{ .description = "256 KB", .value = 256 },
{ .description = "512 KB", .value = 512 },
{ .description = "" }
}
},
{ .type = CONFIG_END }
// clang-format on
};
const device_t et3000_isa_device = {

View File

@@ -972,7 +972,7 @@ static const device_config_t et4000_tc6058af_config[] = {
.default_string = "v1_10",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.spinner = { 0 },
.bios = {
{ .name = "Version 1.10", .internal_name = "v1_10", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 32768, .files = { TC6058AF_BIOS_ROM_PATH, "" } },
@@ -1019,7 +1019,7 @@ static const device_config_t et4000_bios_config[] = {
.default_string = "v8_01",
.default_int = 0,
.file_filter = "",
.spinner = { 0 }, /*W1*/
.spinner = { 0 },
.bios = {
{ .name = "Version 8.01", .internal_name = "v8_01", .bios_type = BIOS_NORMAL,
.files_no = 1, .local = 0, .size = 32768, .files = { BIOS_ROM_PATH, "" } },

View File

@@ -1701,52 +1701,37 @@ ht216_force_redraw(void *priv)
ht216->svga.fullchange = changeframecount;
}
// clang-format off
static const device_config_t v7_vga_1024i_config[] = {
{ .name = "memory",
.description = "Memory size",
.type = CONFIG_SELECTION,
.default_int = 512,
.selection = {
{ .description = "256 KB",
.value = 256 },
{ .description = "512 KB",
.value = 512 },
{ .description = "" } } },
{
.name = "memory",
.description = "Memory size",
.type = CONFIG_SELECTION,
.default_int = 512,
.selection = {
{ .description = "256 KB", .value = 256 },
{ .description = "512 KB", .value = 512 },
{ .description = "" }
}
},
{ .type = CONFIG_END }
};
// clang-format off
static const device_config_t ht216_32_standalone_config[] = {
{
.name = "monitor_type",
.name = "monitor_type",
.description = "Monitor type",
.type = CONFIG_SELECTION,
.type = CONFIG_SELECTION,
.default_int = 0x18,
.selection = {
{
.description = "Mono Interlaced",
.value = 0x00
},
{
.description = "Mono Non-Interlaced",
.value = 0x08
},
{
.description = "Color Interlaced",
.value = 0x10
},
{
.description = "Color Non-Interlaced",
.value = 0x18
},
{
.description = ""
}
.selection = {
{ .description = "Mono Interlaced", .value = 0x00 },
{ .description = "Mono Non-Interlaced", .value = 0x08 },
{ .description = "Color Interlaced", .value = 0x10 },
{ .description = "Color Non-Interlaced", .value = 0x18 },
{ .description = "" }
}
},
{
.type = CONFIG_END
}
{ .type = CONFIG_END }
};
// clang-format on

View File

@@ -6851,8 +6851,7 @@ static const device_config_t mystique_config[] = {
.name = "memory",
.description = "Memory size",
.type = CONFIG_SELECTION,
.selection =
{
.selection = {
{
.description = "2 MB",
.value = 2
@@ -6865,15 +6864,11 @@ static const device_config_t mystique_config[] = {
.description = "8 MB",
.value = 8
},
{
.description = ""
}
{ .description = "" }
},
.default_int = 8
},
{
.type = CONFIG_END
}
{ .type = CONFIG_END }
// clang-format on
};
@@ -6883,8 +6878,7 @@ static const device_config_t millennium_ii_config[] = {
.name = "memory",
.description = "Memory size",
.type = CONFIG_SELECTION,
.selection =
{
.selection = {
{
.description = "4 MB",
.value = 4
@@ -6897,15 +6891,11 @@ static const device_config_t millennium_ii_config[] = {
.description = "16 MB",
.value = 16
},
{
.description = ""
}
{ .description = "" }
},
.default_int = 8
},
{
.type = CONFIG_END
}
{ .type = CONFIG_END }
// clang-format on
};