From 2bd77cd98fff84755fb86023d1593b85bf76441c Mon Sep 17 00:00:00 2001 From: Steffen Schuemann Date: Sat, 5 Oct 2024 08:27:57 +0200 Subject: [PATCH] wip property rework --- src/emulation/chip8generic.cpp | 22 +++++++++++----------- src/emulation/chip8strict.cpp | 2 +- src/emulation/cosmacvip.cpp | 20 ++++++++++---------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/emulation/chip8generic.cpp b/src/emulation/chip8generic.cpp index 3ce8e5f..69b698d 100644 --- a/src/emulation/chip8generic.cpp +++ b/src/emulation/chip8generic.cpp @@ -209,28 +209,28 @@ Chip8GenericSetupInfo genericPresets[] = { "CHIP-8", "The classic CHIP-8 for the COSMAC VIP by Joseph Weisbecker, 1977", ".ch8", - .supportedChip8Variants = {chip8::Variant::CHIP_8}, + chip8::Variant::CHIP_8, {.behaviorBase = Chip8GenericOptions::eCHIP8, .optExtendedVBlank = true} }, { "CHIP-10", "128x64 CHIP-8 from #VIPER-V1-I7 and #IpsoFacto-I10, by Ben H. Hutchinson, Jr., 1979", ".ch10", - .supportedChip8Variants = {chip8::Variant::CHIP_10}, + chip8::Variant::CHIP_10, {.behaviorBase = Chip8GenericOptions::eCHIP10, .optAllowHires = true, .optOnlyHires = true, .optExtendedVBlank = true} }, { "CHIP-8E", "CHIP-8 rewritten and extended by Gilles Detillieux, from #VIPER-V2-8+9", ".c8e", - .supportedChip8Variants = {chip8::Variant::CHIP_8E}, + chip8::Variant::CHIP_8E, {.behaviorBase = Chip8GenericOptions::eCHIP8E, .optExtendedVBlank = true} }, { "CHIP-8X", "An official update to CHIP-8 by RCA, requiring the color extension VP-590 and the simple sound board VP-595, 1980", ".c8x", - .supportedChip8Variants = {chip8::Variant::CHIP_8X}, + chip8::Variant::CHIP_8X, {.behaviorBase = Chip8GenericOptions::eCHIP8X, .startAddress = 768, .optExtendedVBlank = true, .instructionsPerFrame = 18, .palette = {"#000080","#000000","#008000","#800000","#181818","#FF0000","#0000FF","#FF00FF","#00FF00","#FFFF00","#00FFFF","#FFFFFF","#000000","#000000","#000000","#000000"} } @@ -239,49 +239,49 @@ Chip8GenericSetupInfo genericPresets[] = { "CHIP-48", "The initial CHIP-8 port to the HP-48SX by Andreas Gustafsson, 1990", ".ch48;.c48", - .supportedChip8Variants = {chip8::Variant::CHIP_48}, + chip8::Variant::CHIP_48, {.behaviorBase = Chip8GenericOptions::eCHIP48, .optJustShiftVx = true, .optDontResetVf = true, .optLoadStoreIncIByX = true, .optJump0Bxnn = true, .instructionsPerFrame = 15, .frameRate = 64} }, { "SCHIP-1.0", "SUPER-CHIP v1.0 expansion of CHIP-48 for the HP-48SX with 128x64 hires mode by Erik Bryntse, 1991", ".sc10", - .supportedChip8Variants = {chip8::Variant::SCHIP_1_0}, + chip8::Variant::SCHIP_1_0, {.behaviorBase = Chip8GenericOptions::eSCHIP10, .optJustShiftVx = true, .optDontResetVf = true, .optLoadStoreIncIByX = true, .optLoresDxy0Is8x16 = true, .optSCLoresDrawing = true, .optJump0Bxnn = true, .optAllowHires = true, .instructionsPerFrame = 30, .frameRate = 64} }, { "SCHIP-1.1", "SUPER-CHIP v1.1 expansion of CHIP-48 for the HP-48SX with 128x64 hires mode by Erik Bryntse, 1991", ".sc8;.sc11", - .supportedChip8Variants = {chip8::Variant::SCHIP_1_1}, + chip8::Variant::SCHIP_1_1, {.behaviorBase = Chip8GenericOptions::eSCHIP11, .optJustShiftVx = true, .optDontResetVf = true, .optLoadStoreDontIncI = true, .optLoresDxy0Is8x16 = true, .optSC11Collision = true, .optSCLoresDrawing = true, .optHalfPixelScroll = true, .optJump0Bxnn = true, .optAllowHires = true, .instructionsPerFrame = 30, .frameRate = 64} }, { "SCHIPC", "SUPER-CHIP compatibility fix for the HP-48SX by Chromatophore, 2017", ".scc", - .supportedChip8Variants = {chip8::Variant::SCHIPC}, + chip8::Variant::SCHIPC, {.behaviorBase = Chip8GenericOptions::eSCHPC, .optDontResetVf = true, .optLoresDxy0Is16x16 = true, .optModeChangeClear = true, .optAllowHires = true, .instructionsPerFrame = 30, .frameRate = 64} }, { "SCHIP-MODERN", "Modern SUPER-CHIP interpretation as done in Octo by John Earnest, 2014", ".scm", - .supportedChip8Variants = {chip8::Variant::SCHIP_MODERN}, + chip8::Variant::SCHIP_MODERN, {.behaviorBase = Chip8GenericOptions::eSCHIP_MODERN, .optJustShiftVx = true, .optDontResetVf = true, .optLoadStoreDontIncI = true, .optInstantDxyn = true, .optLoresDxy0Is16x16 = true, .optModeChangeClear = true, .optJump0Bxnn = true, .optAllowHires = true, .instructionsPerFrame = 30, .frameRate = 64} }, { "MEGACHIP", "MegaChip as specified by Martijn Wanting, Revival-Studios, 2007", ".mc8", - .supportedChip8Variants = {chip8::Variant::MEGA_CHIP}, + chip8::Variant::MEGA_CHIP, {.behaviorBase = Chip8GenericOptions::eMEGACHIP, .ramSize = 0x1000000, .optJustShiftVx = true, .optDontResetVf = true, .optLoadStoreDontIncI = true, .optLoresDxy0Is8x16 = true, .optSC11Collision = true, .optModeChangeClear = true, .optJump0Bxnn = true, .optAllowHires = true, .instructionsPerFrame = 3000, .frameRate = 50} }, { "XO-CHIP", "A modern extension to SUPER-CHIP supporting colors and actual sound first implemented in Octo by John Earnest, 2014", "xo8", - .supportedChip8Variants = {chip8::Variant::XO_CHIP}, + chip8::Variant::XO_CHIP, {.behaviorBase = Chip8GenericOptions::eXOCHIP, .ramSize = 0x10000, .optDontResetVf = true, .optWrapSprites = true, .optInstantDxyn = true, .optLoresDxy0Is16x16 = true, .optModeChangeClear = true, .optAllowHires = true, .optAllowColors = true, .optHas16BitAddr = true, .optXOChipSound = true, .instructionsPerFrame = 1000} } /*{Opts::eCHIP10, R"({"optAllowHires":true,"optOnlyHires":true})"}, diff --git a/src/emulation/chip8strict.cpp b/src/emulation/chip8strict.cpp index a022cab..af77e82 100644 --- a/src/emulation/chip8strict.cpp +++ b/src/emulation/chip8strict.cpp @@ -62,7 +62,7 @@ Chip8StrictSetupInfo strictPresets[] = { "chip-8", "The classic CHIP-8 that came from Joseph Weisbecker, 1977", ".ch8;.c8vip", - .supportedChip8Variants = {chip8::Variant::CHIP_8 | chip8::Variant::CHIP_8_COSMAC_VIP}, + chip8::Variant::CHIP_8 | chip8::Variant::CHIP_8_COSMAC_VIP, { .clockFrequency = 1760640, .ramSize = 4096, .cleanRam = true, .traceLog = false} } }; diff --git a/src/emulation/cosmacvip.cpp b/src/emulation/cosmacvip.cpp index a320414..5f2bf0e 100644 --- a/src/emulation/cosmacvip.cpp +++ b/src/emulation/cosmacvip.cpp @@ -119,70 +119,70 @@ static CosmacVipSetupInfo vipPresets[] = { "NONE", "Raw COSMAC VIP without any CHIP-8 preloaded", ".bin;.hex;.ram;.raw", - .supportedChip8Variants = {chip8::Variant::NONE}, + chip8::Variant::NONE, { .cpuType = "CDP1802", .clockFrequency = 1760640, .ramSize = 4096, .cleanRam = false, .traceLog = false, .videoType = VVT_CDP1861, .audioType = VAT_CA555_BUZZER, .keyboard = VIPK_HEX, .romName = "COSMAC-VIP", .interpreter = VC8I_NONE, .startAddress = 0} }, { "CHIP-8", "The classic CHIP-8 that came from Joseph Weisbecker, 1977", ".ch8;.c8vip;.hc8", - .supportedChip8Variants = {chip8::Variant::CHIP_8 | chip8::Variant::CHIP_8_COSMAC_VIP}, + chip8::Variant::CHIP_8 | chip8::Variant::CHIP_8_COSMAC_VIP, { .cpuType = "CDP1802", .clockFrequency = 1760640, .ramSize = 4096, .cleanRam = true, .traceLog = false, .videoType = VVT_CDP1861, .audioType = VAT_CA555_BUZZER, .keyboard = VIPK_HEX, .romName = "COSMAC-VIP", .interpreter = VC8I_CHIP8, .startAddress = 512} }, { "CHIP-10", "128x64 CHIP-8 with hardware modifications, from #VIPER-V1-I7 and #IpsoFacto-I10, by Ben H. Hutchinson, Jr., 1979", ".ch10;.c10", - .supportedChip8Variants = {chip8::Variant::CHIP_10}, + chip8::Variant::CHIP_10, { .cpuType = "CDP1802", .clockFrequency = 1760640, .ramSize = 4096, .cleanRam = true, .traceLog = false, .videoType = VVT_CDP1861, .audioType = VAT_CA555_BUZZER, .keyboard = VIPK_HEX, .romName = "COSMAC-VIP", .interpreter = VC8I_CHIP10, .startAddress = 512} }, { "CHIP-8 RB", "CHIP-8 modification with relative branching (BFnn, FBnn), from #VIPER-V2-I1, by Wayne Smith, 1979", ".c8rb", - .supportedChip8Variants = {chip8::Variant::CHIP_8_RB}, + chip8::Variant::CHIP_8_RB, { .cpuType = "CDP1802", .clockFrequency = 1760640, .ramSize = 4096, .cleanRam = true, .traceLog = false, .videoType = VVT_CDP1861, .audioType = VAT_CA555_BUZZER, .keyboard = VIPK_HEX, .romName = "COSMAC-VIP", .interpreter = VC8I_CHIP8RB, .startAddress = 512} }, { "CHIP-8 TPD", "CHIP-8 with two page display (64x64), from #VIPER-V1-I3, by Andy Modla and Jef Winsor, 1979", ".c8tpd;.c8h", - .supportedChip8Variants = {chip8::Variant::CHIP_8_TPD | chip8::Variant::CHIP_8_TDP_COSMAC_VIP}, + chip8::Variant::CHIP_8_TPD | chip8::Variant::CHIP_8_TDP_COSMAC_VIP, { .cpuType = "CDP1802", .clockFrequency = 1760640, .ramSize = 4096, .cleanRam = true, .traceLog = false, .videoType = VVT_CDP1861, .audioType = VAT_CA555_BUZZER, .keyboard = VIPK_HEX, .romName = "COSMAC-VIP", .interpreter = VC8I_CHIP8TPD, .startAddress = 608} }, { "CHIP-8 FPD", "CHIP-8 with four page display (64x128), from #VIPER-V2-I6, by Tom Swan, 1980", ".c8fpd", - .supportedChip8Variants = {chip8::Variant::HI_RES_CHIP_8}, + chip8::Variant::HI_RES_CHIP_8, { .cpuType = "CDP1802", .clockFrequency = 1760640, .ramSize = 4096, .cleanRam = true, .traceLog = false, .videoType = VVT_CDP1861, .audioType = VAT_CA555_BUZZER, .keyboard = VIPK_HEX, .romName = "COSMAC-VIP", .interpreter = VC8I_CHIP8FPD, .startAddress = 580} }, { "CHIP-8X", "An official update to CHIP-8 by RCA, requiring the color extension VP-590 and the simple sound board VP-595, 1980", ".c8x", - .supportedChip8Variants = {chip8::Variant::CHIP_8X}, + chip8::Variant::CHIP_8X, { .cpuType = "CDP1802", .clockFrequency = 1789773, .ramSize = 4096, .cleanRam = true, .traceLog = false, .videoType = VVT_VP_590, .audioType = VAT_VP_595_SIMPLE_SB, .keyboard = VIPK_HEX, .romName = "COSMAC-VIP", .interpreter = VC8I_CHIP8X, .startAddress = 768} }, { "CHIP-8X TPD", "A modified version of CHIP-8X to use two page display (64x64), from #VIPER-V4-I3, by by Andy Modle and Jef Winsor", ".c8xtpd", - .supportedChip8Variants = {chip8::Variant::CHIP_8X_TPD}, + chip8::Variant::CHIP_8X_TPD, { .cpuType = "CDP1802", .clockFrequency = 1789773, .ramSize = 4096, .cleanRam = true, .traceLog = false, .videoType = VVT_VP_590, .audioType = VAT_VP_595_SIMPLE_SB, .keyboard = VIPK_HEX, .romName = "COSMAC-VIP", .interpreter = VC8I_CHIP8XTPD, .startAddress = 768} }, { "CHIP-8X FPD", "A modified version of CHIP-8X for the four page display mode (64x128), from #VIPER-V4-I3, by Tom Swan, sadly not actually working as described due to an implementation bug", ".c8xfpd", - .supportedChip8Variants = {chip8::Variant::HI_RES_CHIP_8X}, + chip8::Variant::HI_RES_CHIP_8X, { .cpuType = "CDP1802", .clockFrequency = 1789773, .ramSize = 4096, .cleanRam = true, .traceLog = false, .videoType = VVT_VP_590, .audioType = VAT_VP_595_SIMPLE_SB, .keyboard = VIPK_HEX, .romName = "COSMAC-VIP", .interpreter = VC8I_CHIP8XFPD, .startAddress = 768} }, { "CHIP-8E", "CHIP-8 rewritten and extended by Gilles Detillieux, from #VIPER-V2-8+9", ".c8e", - .supportedChip8Variants = {chip8::Variant::CHIP_8E}, + chip8::Variant::CHIP_8E, { .cpuType = "CDP1802", .clockFrequency = 1760640, .ramSize = 4096, .cleanRam = true, .traceLog = false, .videoType = VVT_CDP1861, .audioType = VAT_CA555_BUZZER, .keyboard = VIPK_HEX, .romName = "COSMAC-VIP", .interpreter = VC8I_CHIP8E, .startAddress = 512} } };