mirror of
https://github.com/libretro/NP2kai.git
synced 2024-10-06 22:33:28 +00:00
Merge NP21/W rev.48,49
This commit is contained in:
parent
24bc441181
commit
98841f9009
@ -1,6 +1,6 @@
|
||||
Neko Project II 0.86 kai rev.17
|
||||
Neko Project II 0.86 kai rev.18
|
||||
===
|
||||
Nov 29, 2018
|
||||
Dec 10, 2018
|
||||
|
||||
Build SDL2 port
|
||||
---
|
||||
@ -601,6 +601,8 @@ WAB Type normally uses 'PC-9821Xe10,Xa7e,Xb10 built-in'.
|
||||
|
||||
Release
|
||||
---
|
||||
* Dec 10, 2018 (rev.18)
|
||||
- Merge NP21/W 0.86 rev.48,49
|
||||
* Nov 29, 2018
|
||||
- Add MIDI support
|
||||
* Nov 25, 2018
|
||||
|
@ -379,6 +379,7 @@ void bios_initialize(void) {
|
||||
mem[ITF_ADRS + 5924] = 0x90;
|
||||
}
|
||||
#endif
|
||||
np2cfg.memchkmx = 0; // 無効化 (obsolete)
|
||||
if(np2cfg.memchkmx){ // メモリカウント最大値変更
|
||||
mem[ITF_ADRS + 6057] = mem[ITF_ADRS + 6061] = (UINT8)np2max((int)np2cfg.memchkmx-14, 1); // XXX: 場所決め打ち
|
||||
}else{
|
||||
@ -603,7 +604,7 @@ UINT MEMCALL biosfunc(UINT32 adrs) {
|
||||
// 高速メモリチェック
|
||||
if (CPU_ITFBANK && adrs == 0xf9724) {
|
||||
UINT16 subvalue = LOADINTELWORD((mem + ITF_ADRS + 5886)) / 128;
|
||||
UINT16 memaddr = cpu_codefetch_w(CPU_EIP);
|
||||
UINT16 memaddr = MEMP_READ16(CPU_EIP);
|
||||
UINT16 counter = MEMR_READ16(CPU_SS, CPU_EBP + 6);
|
||||
if(subvalue == 0) subvalue = 1;
|
||||
if(counter >= subvalue){
|
||||
|
@ -961,9 +961,9 @@ void bios0x18(void) {
|
||||
#if defined(BIOS_IO_EMULATION) && defined(CPUCORE_IA32)
|
||||
// np21w ver0.86 rev47 BIOS I/O emulation
|
||||
if (CPU_STAT_PM && CPU_STAT_VM86) {
|
||||
biosioemu_push8(0x43, 0x3a);
|
||||
biosioemu_push8(0x43, 0x32);
|
||||
biosioemu_push8(0x43, 0x16);
|
||||
biosioemu_enq8(0x43, 0x3a);
|
||||
biosioemu_enq8(0x43, 0x32);
|
||||
biosioemu_enq8(0x43, 0x16);
|
||||
ZeroMemory(mem + 0x00502, 0x20);
|
||||
ZeroMemory(mem + 0x00528, 0x13);
|
||||
SETBIOSMEM16(MEMW_KB_SHIFT_TBL, 0x0e00);
|
||||
|
@ -28,7 +28,7 @@ void bios0x1c(void) {
|
||||
SETBIOSMEM16(0x0001c, CPU_BX);
|
||||
SETBIOSMEM16(0x0001e, CPU_ES);
|
||||
SETBIOSMEM16(0x0058a, CPU_CX);
|
||||
#if defined(BIOS_IO_EMULATION)
|
||||
#if defined(BIOS_IO_EMULATION) && defined(CPUCORE_IA32)
|
||||
if (CPU_STAT_PM && CPU_STAT_VM86) {
|
||||
biosioemu_enq8(0x77, 0x36);
|
||||
} else
|
||||
@ -39,7 +39,7 @@ void bios0x1c(void) {
|
||||
/*FALLTHROUGH*/
|
||||
|
||||
case 0x03: // continue interval timer
|
||||
#if defined(BIOS_IO_EMULATION)
|
||||
#if defined(BIOS_IO_EMULATION) && defined(CPUCORE_IA32)
|
||||
if (CPU_STAT_PM && CPU_STAT_VM86) {
|
||||
biosioemu_enq8(0x71, 0x00);
|
||||
if (pccore.cpumode & CPUMODE_8MHZ) {
|
||||
|
@ -342,6 +342,7 @@ void gpibio_reset(const NP2CFG *pConfig) {
|
||||
if (fh != FILEH_INVALID) {
|
||||
// GP-IB BIOS
|
||||
if (file_read(fh, mem + 0x0d4000, 0x2000) == 0x2000) {
|
||||
CPU_RAM_D000 &= ~(0x3 << 4);
|
||||
TRACEOUT(("load gpib.rom"));
|
||||
}else{
|
||||
//CopyMemory(mem + 0x0d4000, gpibbios, sizeof(gpibbios));
|
||||
|
@ -1891,6 +1891,7 @@ void ideio_reset(const NP2CFG *pConfig) {
|
||||
CopyMemory(mem + 0xd8000, idebios, sizeof(idebios));
|
||||
TRACEOUT(("use simulate ide.rom"));
|
||||
}
|
||||
CPU_RAM_D000 &= ~(0x3 << 8);
|
||||
|
||||
//if(ideio.bios==IDETC_NOBIOS){
|
||||
// UINT16 param_2[] = {0x0598, 0x05b1, 0x058c, 0x058e};
|
||||
|
@ -44,7 +44,9 @@ static const OEMCHAR *str_cl_gd54xx_type[] = {
|
||||
OEMTEXT("PC-9821Xe10,Xa7e,Xb10 built-in"),
|
||||
OEMTEXT("PC-9821Cb2 built-in"),
|
||||
OEMTEXT("PC-9821Cx2 built-in"),
|
||||
#ifdef SUPPORT_PCI
|
||||
OEMTEXT("PC-9821 PCI CL-GD5446 built-in"),
|
||||
#endif
|
||||
OEMTEXT("MELCO WAB-S"),
|
||||
OEMTEXT("MELCO WSN-A2F"),
|
||||
OEMTEXT("MELCO WSN-A4F"),
|
||||
@ -52,9 +54,14 @@ static const OEMCHAR *str_cl_gd54xx_type[] = {
|
||||
OEMTEXT("I-O DATA GA-98NBII"),
|
||||
OEMTEXT("I-O DATA GA-98NBIV"),
|
||||
OEMTEXT("PC-9801-96(PC-9801B3-E02)"),
|
||||
#ifdef SUPPORT_PCI
|
||||
OEMTEXT("Auto Select(Xe10, GA-98NBI/C), PCI"),
|
||||
OEMTEXT("Auto Select(Xe10, GA-98NBII), PCI"),
|
||||
OEMTEXT("Auto Select(Xe10, GA-98NBIV), PCI"),
|
||||
OEMTEXT("Auto Select(Xe10, WAB-S), PCI"),
|
||||
OEMTEXT("Auto Select(Xe10, WSN-A2F), PCI"),
|
||||
OEMTEXT("Auto Select(Xe10, WSN-A4F), PCI"),
|
||||
#endif
|
||||
OEMTEXT("Auto Select(Xe10, WAB-S)"),
|
||||
OEMTEXT("Auto Select(Xe10, WSN-A2F)"),
|
||||
OEMTEXT("Auto Select(Xe10, WSN-A4F)"),
|
||||
@ -142,6 +149,7 @@ const TABLISTS *tl;
|
||||
case CIRRUS_98ID_Cx2:
|
||||
type = 6;
|
||||
break;
|
||||
#ifdef SUPPORT_PCI
|
||||
case CIRRUS_98ID_PCI:
|
||||
type = 7;
|
||||
break;
|
||||
@ -166,24 +174,65 @@ const TABLISTS *tl;
|
||||
case CIRRUS_98ID_96:
|
||||
type = 14;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE_WA_PCI:
|
||||
case CIRRUS_98ID_AUTO_XE_G1_PCI:
|
||||
type = 15;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE_WS_PCI:
|
||||
case CIRRUS_98ID_AUTO_XE_G2_PCI:
|
||||
type = 16;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE_W4_PCI:
|
||||
case CIRRUS_98ID_AUTO_XE_G4_PCI:
|
||||
type = 17;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WABS:
|
||||
case CIRRUS_98ID_AUTO_XE_WA_PCI:
|
||||
type = 18;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN2:
|
||||
case CIRRUS_98ID_AUTO_XE_WS_PCI:
|
||||
type = 19;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN4:
|
||||
case CIRRUS_98ID_AUTO_XE_W4_PCI:
|
||||
type = 20;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WABS:
|
||||
type = 21;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN2:
|
||||
type = 22;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN4:
|
||||
type = 23;
|
||||
break;
|
||||
#else
|
||||
case CIRRUS_98ID_WAB:
|
||||
type = 7;
|
||||
break;
|
||||
case CIRRUS_98ID_WSN_A2F:
|
||||
type = 8;
|
||||
break;
|
||||
case CIRRUS_98ID_WSN:
|
||||
type = 9;
|
||||
break;
|
||||
case CIRRUS_98ID_GA98NBIC:
|
||||
type = 10;
|
||||
break;
|
||||
case CIRRUS_98ID_GA98NBII:
|
||||
type = 11;
|
||||
break;
|
||||
case CIRRUS_98ID_GA98NBIV:
|
||||
type = 12;
|
||||
break;
|
||||
case CIRRUS_98ID_96:
|
||||
type = 13;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WABS:
|
||||
type = 14;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN2:
|
||||
type = 15;
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN4:
|
||||
type = 16;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
menudlg_appends(res_wab0, NELEMENTS(res_wab0));
|
||||
@ -257,6 +306,7 @@ static void dlgupdate(void) {
|
||||
case 6:
|
||||
type = CIRRUS_98ID_Cx2;
|
||||
break;
|
||||
#ifdef SUPPORT_PCI
|
||||
case 7:
|
||||
type = CIRRUS_98ID_PCI;
|
||||
break;
|
||||
@ -282,23 +332,64 @@ static void dlgupdate(void) {
|
||||
type = CIRRUS_98ID_96;
|
||||
break;
|
||||
case 15:
|
||||
type = CIRRUS_98ID_AUTO_XE_WA_PCI;
|
||||
type = CIRRUS_98ID_AUTO_XE_G1_PCI;
|
||||
break;
|
||||
case 16:
|
||||
type = CIRRUS_98ID_AUTO_XE_WS_PCI;
|
||||
type = CIRRUS_98ID_AUTO_XE_G2_PCI;
|
||||
break;
|
||||
case 17:
|
||||
type = CIRRUS_98ID_AUTO_XE_W4_PCI;
|
||||
type = CIRRUS_98ID_AUTO_XE_G4_PCI;
|
||||
break;
|
||||
case 18:
|
||||
type = CIRRUS_98ID_AUTO_XE10_WABS;
|
||||
type = CIRRUS_98ID_AUTO_XE_WA_PCI;
|
||||
break;
|
||||
case 19:
|
||||
type = CIRRUS_98ID_AUTO_XE10_WSN2;
|
||||
type = CIRRUS_98ID_AUTO_XE_WS_PCI;
|
||||
break;
|
||||
case 20:
|
||||
type = CIRRUS_98ID_AUTO_XE_W4_PCI;
|
||||
break;
|
||||
case 21:
|
||||
type = CIRRUS_98ID_AUTO_XE10_WABS;
|
||||
break;
|
||||
case 22:
|
||||
type = CIRRUS_98ID_AUTO_XE10_WSN2;
|
||||
break;
|
||||
case 23:
|
||||
type = CIRRUS_98ID_AUTO_XE10_WSN4;
|
||||
break;
|
||||
#else
|
||||
case 7:
|
||||
type = CIRRUS_98ID_WAB;
|
||||
break;
|
||||
case 8:
|
||||
type = CIRRUS_98ID_WSN_A2F;
|
||||
break;
|
||||
case 9:
|
||||
type = CIRRUS_98ID_WSN;
|
||||
break;
|
||||
case 10:
|
||||
type = CIRRUS_98ID_GA98NBIC;
|
||||
break;
|
||||
case 11:
|
||||
type = CIRRUS_98ID_GA98NBII;
|
||||
break;
|
||||
case 12:
|
||||
type = CIRRUS_98ID_GA98NBIV;
|
||||
break;
|
||||
case 13:
|
||||
type = CIRRUS_98ID_96;
|
||||
break;
|
||||
case 14:
|
||||
type = CIRRUS_98ID_AUTO_XE10_WABS;
|
||||
break;
|
||||
case 15:
|
||||
type = CIRRUS_98ID_AUTO_XE10_WSN2;
|
||||
break;
|
||||
case 16:
|
||||
type = CIRRUS_98ID_AUTO_XE10_WSN4;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
if (np2cfg.gd5430type != (UINT16)type) {
|
||||
np2cfg.gd5430type = (UINT16)val;
|
||||
|
@ -214,7 +214,7 @@ void newdisk_nhd_ex_CHS(const OEMCHAR *fname, UINT32 C, UINT16 H, UINT16 S, UINT
|
||||
|
||||
hddsize = (FILELEN)C * H * S * SS / 1024 / 1024;
|
||||
|
||||
if ((fname == NULL) || (hddsize < 5) || (hddsize > NHD_MAXSIZE2)) {
|
||||
if ((fname == NULL) || (hddsize < 1) || (hddsize > NHD_MAXSIZE2)) {
|
||||
goto ndnhd_err;
|
||||
}
|
||||
fh = file_create(fname);
|
||||
@ -385,7 +385,7 @@ void newdisk_vpcvhd_ex_CHS(const OEMCHAR *fname, UINT32 C, UINT16 H, UINT16 S, U
|
||||
|
||||
hddsize = (UINT32)((FILELEN)C * H * S * SS / 1024 / 1024);
|
||||
|
||||
if ((fname == NULL) || (hddsize < 5) || (hddsize > NHD_MAXSIZE2)) {
|
||||
if ((fname == NULL) || (hddsize < 1) || (hddsize > NHD_MAXSIZE2)) {
|
||||
goto vpcvhd_err;
|
||||
}
|
||||
fh = file_create(fname);
|
||||
|
@ -133,7 +133,7 @@ BOOL memdbg32_paint(CMNVRAM *vram, CMNPALCNV cnv, BOOL redraw) {
|
||||
FillMemory(use, 256, MEMDBG32_PALREAL);
|
||||
FillMemory(use + (0xfa0000 >> 12), (0x60000 >> 12), MEMDBG32_PALREAL);
|
||||
if ((CPU_STAT_PM) && (pccore.extmem)) {
|
||||
FillMemory(use + 256, 256 * pccore.extmem, MEMDBG32_PALPM);
|
||||
FillMemory(use + 256, np2min(256 * pccore.extmem, sizeof(use) - 256), MEMDBG32_PALPM);
|
||||
}
|
||||
}
|
||||
for (i=0; i<32; i++) {
|
||||
|
@ -11,6 +11,9 @@
|
||||
#if defined(SUPPORT_IDEIO)
|
||||
#include "ideio.h"
|
||||
#endif
|
||||
#if defined(SUPPORT_GPIB)
|
||||
#include "gpibio.h"
|
||||
#endif
|
||||
|
||||
static const OEMCHAR str_comma[] = OEMTEXT(", ");
|
||||
static const OEMCHAR str_2halfMHz[] = OEMTEXT("2.5MHz");
|
||||
@ -257,6 +260,10 @@ static void info_sound(OEMCHAR *str, int maxlen, const NP2INFOEX *ex)
|
||||
lpBoard = OEMTEXT("PC-9801-86 + Mate-X PCM");
|
||||
break;
|
||||
|
||||
case SOUNDID_PC_9801_86_118:
|
||||
lpBoard = OEMTEXT("PC-9801-86 + PC-9801-118");
|
||||
break;
|
||||
|
||||
case SOUNDID_MATE_X_PCM:
|
||||
lpBoard = OEMTEXT("Mate-X PCM");
|
||||
break;
|
||||
@ -354,6 +361,14 @@ static void info_bios(OEMCHAR *str, int maxlen, const NP2INFOEX *ex) {
|
||||
}
|
||||
milstr_ncat(str, pcidev.biosname, maxlen);
|
||||
}
|
||||
#endif
|
||||
#if defined(SUPPORT_GPIB)
|
||||
if (gpib.enable) {
|
||||
if (str[0]) {
|
||||
milstr_ncat(str, str_comma, maxlen);
|
||||
}
|
||||
milstr_ncat(str, OEMTEXT("gpib.rom"), maxlen);
|
||||
}
|
||||
#endif
|
||||
if (str[0] == '\0') {
|
||||
milstr_ncat(str, str_notexist, maxlen);
|
||||
|
457
i286c/cpumem.c
457
i286c/cpumem.c
@ -446,24 +446,53 @@ REG8 MEMCALL memp_read8(UINT32 address) {
|
||||
}
|
||||
else {
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2cfg.usegd5430 && cirrusvga_opaque){
|
||||
if(np2clvga.VRAMWindowAddr){
|
||||
if(np2clvga.VRAMWindowAddr <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE){
|
||||
return cirrus_linear_readb(cirrusvga_opaque, address);
|
||||
}else if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT) return 0;
|
||||
return cirrus_linear_readb(cirrusvga_opaque, address);
|
||||
}
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH + BBLTWINDOW_SIZE){
|
||||
return cirrus_linear_bitblt_readb(cirrusvga_opaque, address);
|
||||
}
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
if(np2clvga.pciLFB_Addr && (address & np2clvga.pciLFB_Mask) == np2clvga.pciLFB_Addr){
|
||||
UINT32 addrofs = address - np2clvga.pciLFB_Addr;
|
||||
if(addrofs < 0x1000000){
|
||||
return cirrus_linear_readb(cirrusvga_opaque, address);
|
||||
}else if( addrofs < 0x1000000 + 0x400000){
|
||||
return cirrus_linear_bitblt_readb(cirrusvga_opaque, address);
|
||||
}else{
|
||||
return 0xff;
|
||||
}
|
||||
}else if(np2clvga.pciMMIO_Addr && (address & np2clvga.pciMMIO_Mask) == np2clvga.pciMMIO_Addr){
|
||||
if(np2clvga.gd54xxtype==CIRRUS_98ID_PCI || ((np2clvga.pciMMIO_Addr & 0xfff00000) != 0xf00000 || !(gdc.analog & ((1 << GDCANALOG_256) | (1 << GDCANALOG_256E)))))
|
||||
return cirrus_mmio_read[0](cirrusvga_opaque, address);
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr2 && np2clvga.VRAMWindowAddr2 <= address && address < np2clvga.VRAMWindowAddr2 + 0x10000){
|
||||
return CIRRUS_VRAMWND2_FUNC_rb(cirrusvga_opaque, address);
|
||||
if(np2clvga.gd54xxtype!=CIRRUS_98ID_PCI){
|
||||
if(vramWndAddr){
|
||||
if(vramWndAddr <= address){
|
||||
if(address < vramWndAddr + VRAMWINDOW_SIZE){
|
||||
return cirrus_linear_readb(cirrusvga_opaque, address);
|
||||
}else if(address < vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address >= vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT)
|
||||
return cirrus_linear_readb(cirrusvga_opaque, address);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(vramWndAddr3){
|
||||
UINT32 addr3 = address;
|
||||
if(vramWndAddr3 <= addr3 && addr3 < vramWndAddr3 + VRA3WINDOW_SIZEX && !(gdc.analog & ((1 << GDCANALOG_256) | (1 << GDCANALOG_256E)))){
|
||||
return CIRRUS_VRAMWND3_FUNC_rb(cirrusvga_opaque, addr3);
|
||||
}
|
||||
}
|
||||
if(vramWndAddr2 && (vramWndAddr2 != 0xE0000 || !(gdc.analog & ((1 << GDCANALOG_16) | (1 << GDCANALOG_256) | (1 << GDCANALOG_256E))))){
|
||||
UINT32 addr2 = address;
|
||||
if((vramWndAddr2 & 0xfff00000UL) == 0){
|
||||
UINT32 addrtmp = addr2 & 0xfff80000UL;
|
||||
if(addrtmp == 0xfff80000UL || addrtmp == 0x00f80000UL){
|
||||
// XXX: 0xFFFA0000 - 0xFFFFFFFF or 0xFA0000 - 0xFFFFFF
|
||||
addr2 = addr2 & 0xfffff;
|
||||
}
|
||||
}
|
||||
if((addr2 & CIRRUS_VRAMWINDOW2MASK) == vramWndAddr2){
|
||||
return CIRRUS_VRAMWND2_FUNC_rb(cirrusvga_opaque, addr2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -506,24 +535,53 @@ REG16 MEMCALL memp_read16(UINT32 address) {
|
||||
}
|
||||
else if ((address + 1) & 0x7fff) { // non 32kb boundary
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2cfg.usegd5430 && cirrusvga_opaque){
|
||||
if(np2clvga.VRAMWindowAddr){
|
||||
if(np2clvga.VRAMWindowAddr <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE){
|
||||
return cirrus_linear_readw(cirrusvga_opaque, address);
|
||||
}else if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT) return 0;
|
||||
return cirrus_linear_readw(cirrusvga_opaque, address);
|
||||
}
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH + BBLTWINDOW_SIZE){
|
||||
return cirrus_linear_bitblt_readw(cirrusvga_opaque, address);
|
||||
}
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
if(np2clvga.pciLFB_Addr && (address & np2clvga.pciLFB_Mask) == np2clvga.pciLFB_Addr){
|
||||
UINT32 addrofs = address - np2clvga.pciLFB_Addr;
|
||||
if(addrofs < 0x1000000){
|
||||
return cirrus_linear_readw(cirrusvga_opaque, address);
|
||||
}else if( addrofs < 0x1000000 + 0x400000){
|
||||
return cirrus_linear_bitblt_readw(cirrusvga_opaque, address);
|
||||
}else{
|
||||
return 0xffff;
|
||||
}
|
||||
}else if(np2clvga.pciMMIO_Addr && (address & np2clvga.pciMMIO_Mask) == np2clvga.pciMMIO_Addr){
|
||||
if(np2clvga.gd54xxtype==CIRRUS_98ID_PCI || ((np2clvga.pciMMIO_Addr & 0xfff00000) != 0xf00000 || !(gdc.analog & ((1 << GDCANALOG_256) | (1 << GDCANALOG_256E)))))
|
||||
return cirrus_mmio_read[1](cirrusvga_opaque, address);
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr2 && np2clvga.VRAMWindowAddr2 <= address && address < np2clvga.VRAMWindowAddr2 + 0x10000){
|
||||
return CIRRUS_VRAMWND2_FUNC_rw(cirrusvga_opaque, address);
|
||||
if(np2clvga.gd54xxtype!=CIRRUS_98ID_PCI){
|
||||
if(vramWndAddr){
|
||||
if(vramWndAddr <= address){
|
||||
if(address < vramWndAddr + VRAMWINDOW_SIZE){
|
||||
return cirrus_linear_readw(cirrusvga_opaque, address);
|
||||
}else if(address < vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address >= vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT)
|
||||
return cirrus_linear_readw(cirrusvga_opaque, address);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(vramWndAddr3){
|
||||
UINT32 addr3 = address;
|
||||
if(vramWndAddr3 <= addr3 && addr3 < vramWndAddr3 + VRA3WINDOW_SIZEX && !(gdc.analog & ((1 << GDCANALOG_256) | (1 << GDCANALOG_256E)))){
|
||||
return CIRRUS_VRAMWND3_FUNC_rw(cirrusvga_opaque, addr3);
|
||||
}
|
||||
}
|
||||
if(vramWndAddr2 && (vramWndAddr2 != 0xE0000 || !(gdc.analog & ((1 << GDCANALOG_16) | (1 << GDCANALOG_256) | (1 << GDCANALOG_256E))))){
|
||||
UINT32 addr2 = address;
|
||||
if((vramWndAddr2 & 0xfff00000UL) == 0){
|
||||
UINT32 addrtmp = addr2 & 0xfff80000UL;
|
||||
if(addrtmp == 0xfff80000UL || addrtmp == 0x00f80000UL){
|
||||
// XXX: 0xFFFA0000 - 0xFFFFFFFF or 0xFA0000 - 0xFFFFFF
|
||||
addr2 = addr2 & 0xfffff;
|
||||
}
|
||||
}
|
||||
if((addr2 & CIRRUS_VRAMWINDOW2MASK) == vramWndAddr2){
|
||||
return CIRRUS_VRAMWND2_FUNC_rw(cirrusvga_opaque, addr2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -567,35 +625,66 @@ UINT32 MEMCALL memp_read32(UINT32 address) {
|
||||
UINT32 pos;
|
||||
UINT32 ret;
|
||||
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2cfg.usegd5430 && cirrusvga_opaque){
|
||||
if(np2clvga.VRAMWindowAddr){
|
||||
if(np2clvga.VRAMWindowAddr <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE){
|
||||
return cirrus_linear_readl(cirrusvga_opaque, address);
|
||||
}else if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT) return 0;
|
||||
return cirrus_linear_readl(cirrusvga_opaque, address);
|
||||
}
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH + BBLTWINDOW_SIZE){
|
||||
return cirrus_linear_bitblt_readl(cirrusvga_opaque, address);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr2 && np2clvga.VRAMWindowAddr2 <= address && address < np2clvga.VRAMWindowAddr2 + 0x10000){
|
||||
return CIRRUS_VRAMWND2_FUNC_rl(cirrusvga_opaque, address);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (address < (I286_MEMREADMAX - 3)) {
|
||||
return(LOADINTELDWORD(mem + address));
|
||||
}
|
||||
else if (address >= USE_HIMEM) {
|
||||
pos = address & CPU_ADRSMASK;
|
||||
if ((pos >= USE_HIMEM) && ((pos + 3) < CPU_EXTLIMIT16)) {
|
||||
return(LOADINTELDWORD(CPU_EXTMEMBASE + pos));
|
||||
else{
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
if(np2clvga.pciLFB_Addr && (address & np2clvga.pciLFB_Mask) == np2clvga.pciLFB_Addr){
|
||||
UINT32 addrofs = address - np2clvga.pciLFB_Addr;
|
||||
if(addrofs < 0x1000000){
|
||||
return cirrus_linear_readl(cirrusvga_opaque, address);
|
||||
}else if( addrofs < 0x1000000 + 0x400000){
|
||||
return cirrus_linear_bitblt_readl(cirrusvga_opaque, address);
|
||||
}else{
|
||||
return 0xffffffff;
|
||||
}
|
||||
}else if(np2clvga.pciMMIO_Addr && (address & np2clvga.pciMMIO_Mask) == np2clvga.pciMMIO_Addr){
|
||||
if(np2clvga.gd54xxtype==CIRRUS_98ID_PCI || ((np2clvga.pciMMIO_Addr & 0xfff00000) != 0xf00000 || !(gdc.analog & ((1 << GDCANALOG_256) | (1 << GDCANALOG_256E)))))
|
||||
return cirrus_mmio_read[2](cirrusvga_opaque, address);
|
||||
}
|
||||
if(np2clvga.gd54xxtype!=CIRRUS_98ID_PCI){
|
||||
if(vramWndAddr){
|
||||
if(vramWndAddr <= address){
|
||||
if(address < vramWndAddr + VRAMWINDOW_SIZE){
|
||||
return cirrus_linear_readl(cirrusvga_opaque, address);
|
||||
}else if(address < vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address >= vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT)
|
||||
return cirrus_linear_readl(cirrusvga_opaque, address);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(vramWndAddr3){
|
||||
UINT32 addr3 = address;
|
||||
if(vramWndAddr3 <= addr3 && addr3 < vramWndAddr3 + VRA3WINDOW_SIZEX && !(gdc.analog & ((1 << GDCANALOG_256) | (1 << GDCANALOG_256E)))){
|
||||
return CIRRUS_VRAMWND3_FUNC_rl(cirrusvga_opaque, addr3);
|
||||
}
|
||||
}
|
||||
if(vramWndAddr2 && (vramWndAddr2 != 0xE0000 || !(gdc.analog & ((1 << GDCANALOG_16) | (1 << GDCANALOG_256) | (1 << GDCANALOG_256E))))){
|
||||
UINT32 addr2 = address;
|
||||
if((vramWndAddr2 & 0xfff00000UL) == 0){
|
||||
UINT32 addrtmp = addr2 & 0xfff80000UL;
|
||||
if(addrtmp == 0xfff80000UL || addrtmp == 0x00f80000UL){
|
||||
// XXX: 0xFFFA0000 - 0xFFFFFFFF or 0xFA0000 - 0xFFFFFF
|
||||
addr2 = addr2 & 0xfffff;
|
||||
}
|
||||
}
|
||||
if((addr2 & CIRRUS_VRAMWINDOW2MASK) == vramWndAddr2){
|
||||
return CIRRUS_VRAMWND2_FUNC_rl(cirrusvga_opaque, addr2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (address >= USE_HIMEM) {
|
||||
pos = address & CPU_ADRSMASK;
|
||||
if ((pos >= USE_HIMEM) && ((pos + 3) < CPU_EXTLIMIT16)) {
|
||||
return(LOADINTELDWORD(CPU_EXTMEMBASE + pos));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!(address & 1)) {
|
||||
@ -617,28 +706,64 @@ void MEMCALL memp_write8(UINT32 address, REG8 value) {
|
||||
}
|
||||
else {
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2cfg.usegd5430 && cirrusvga_opaque){
|
||||
if(np2clvga.VRAMWindowAddr){
|
||||
if(np2clvga.VRAMWindowAddr <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE){
|
||||
g_cirrus_linear_write[0](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}else if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT);
|
||||
g_cirrus_linear_write[0](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
if(np2clvga.pciLFB_Addr && (address & np2clvga.pciLFB_Mask) == np2clvga.pciLFB_Addr){
|
||||
UINT32 addrofs = address - np2clvga.pciLFB_Addr;
|
||||
if(addrofs < 0x1000000){
|
||||
cirrus_linear_writeb(cirrusvga_opaque, address, value);
|
||||
}else if( addrofs < 0x1000000 + 0x400000){
|
||||
cirrus_linear_bitblt_writeb(cirrusvga_opaque, address, value);
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH + BBLTWINDOW_SIZE){
|
||||
cirrus_linear_bitblt_writeb(cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr2 && np2clvga.VRAMWindowAddr2 <= address && address < np2clvga.VRAMWindowAddr2 + 0x10000){
|
||||
CIRRUS_VRAMWND2_FUNC_wb(cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}else if(np2clvga.pciMMIO_Addr && (address & np2clvga.pciMMIO_Mask) == np2clvga.pciMMIO_Addr){
|
||||
cirrus_mmio_write[0](cirrusvga_opaque, address, value);
|
||||
if(np2clvga.gd54xxtype==CIRRUS_98ID_PCI)
|
||||
return;
|
||||
}
|
||||
//if(TEST_START_ADDR < address && address <= TEST_END_ADDR){
|
||||
// printf("%d: %d\n", address, value);
|
||||
//}
|
||||
if(np2clvga.gd54xxtype!=CIRRUS_98ID_PCI){
|
||||
if(vramWndAddr){
|
||||
if(vramWndAddr <= address){
|
||||
if(address < vramWndAddr + VRAMWINDOW_SIZE){
|
||||
g_cirrus_linear_write[0](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}else if(address < vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address >= vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT){
|
||||
g_cirrus_linear_write[0](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(vramWndAddr3){
|
||||
UINT32 addr3 = address;
|
||||
if(vramWndAddr3 <= addr3 && addr3 < vramWndAddr3 + VRA3WINDOW_SIZEX){
|
||||
CIRRUS_VRAMWND3_FUNC_wb(cirrusvga_opaque, addr3, value);
|
||||
TRACEOUT(("mem (write8): %x", address));
|
||||
//if(!(gdc.analog & ((1 << GDCANALOG_256) | (1 << GDCANALOG_256E))))
|
||||
// return;
|
||||
}
|
||||
}
|
||||
if(vramWndAddr2 && (vramWndAddr2 != 0xE0000 || !(gdc.analog & ((1 << GDCANALOG_16) | (1 << GDCANALOG_256) | (1 << GDCANALOG_256E))))){
|
||||
UINT32 addr2 = address;
|
||||
if((vramWndAddr2 & 0xfff00000UL) == 0){
|
||||
UINT32 addrtmp = addr2 & 0xfff80000UL;
|
||||
if(addrtmp == 0xfff80000UL || addrtmp == 0x00f80000UL){
|
||||
// XXX: 0xFFFA0000 - 0xFFFFFFFF or 0xFA0000 - 0xFFFFFF
|
||||
addr2 = addr2 & 0xfffff;
|
||||
}
|
||||
}
|
||||
if((addr2 & CIRRUS_VRAMWINDOW2MASK) == vramWndAddr2){
|
||||
CIRRUS_VRAMWND2_FUNC_wb(cirrusvga_opaque, addr2, value);
|
||||
//if((vramWndAddr2 != 0xE0000 || !(gdc.analog & ((1 << GDCANALOG_16) | (1 << GDCANALOG_256) | (1 << GDCANALOG_256E)))) && !(gdc.display & (1 << GDCDISP_31)))
|
||||
// return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -684,28 +809,64 @@ void MEMCALL memp_write16(UINT32 address, REG16 value) {
|
||||
}
|
||||
else if ((address + 1) & 0x7fff) { // non 32kb boundary
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2cfg.usegd5430 && cirrusvga_opaque){
|
||||
if(np2clvga.VRAMWindowAddr){
|
||||
if(np2clvga.VRAMWindowAddr <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE){
|
||||
g_cirrus_linear_write[1](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}else if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT);
|
||||
g_cirrus_linear_write[1](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
if(np2clvga.pciLFB_Addr && (address & np2clvga.pciLFB_Mask) == np2clvga.pciLFB_Addr){
|
||||
UINT32 addrofs = address - np2clvga.pciLFB_Addr;
|
||||
if(addrofs < 0x1000000){
|
||||
cirrus_linear_writew(cirrusvga_opaque, address, value);
|
||||
}else if( addrofs < 0x1000000 + 0x400000){
|
||||
cirrus_linear_bitblt_writew(cirrusvga_opaque, address, value);
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH + BBLTWINDOW_SIZE){
|
||||
cirrus_linear_bitblt_writew(cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr2 && np2clvga.VRAMWindowAddr2 <= address && address < np2clvga.VRAMWindowAddr2 + 0x10000){
|
||||
CIRRUS_VRAMWND2_FUNC_ww(cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}else if(np2clvga.pciMMIO_Addr && (address & np2clvga.pciMMIO_Mask) == np2clvga.pciMMIO_Addr){
|
||||
cirrus_mmio_write[1](cirrusvga_opaque, address, value);
|
||||
if(np2clvga.gd54xxtype==CIRRUS_98ID_PCI)
|
||||
return;
|
||||
}
|
||||
//if(TEST_START_ADDR < address && address <= TEST_END_ADDR){
|
||||
// printf("%d: %d\n", address, value);
|
||||
//}
|
||||
if(np2clvga.gd54xxtype!=CIRRUS_98ID_PCI){
|
||||
if(vramWndAddr){
|
||||
if(vramWndAddr <= address){
|
||||
if(address < vramWndAddr + VRAMWINDOW_SIZE){
|
||||
g_cirrus_linear_write[1](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}else if(address < vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address >= vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT){
|
||||
g_cirrus_linear_write[1](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(vramWndAddr3){
|
||||
UINT32 addr3 = address;
|
||||
if(vramWndAddr3 <= addr3 && addr3 < vramWndAddr3 + VRA3WINDOW_SIZEX){
|
||||
CIRRUS_VRAMWND3_FUNC_ww(cirrusvga_opaque, addr3, value);
|
||||
TRACEOUT(("mem (write16): %x", address));
|
||||
//if(!(gdc.analog & ((1 << GDCANALOG_256) | (1 << GDCANALOG_256E))))
|
||||
// return;
|
||||
}
|
||||
}
|
||||
if(vramWndAddr2 && (vramWndAddr2 != 0xE0000 || !(gdc.analog & ((1 << GDCANALOG_16) | (1 << GDCANALOG_256) | (1 << GDCANALOG_256E))))){
|
||||
UINT32 addr2 = address;
|
||||
if((vramWndAddr2 & 0xfff00000UL) == 0){
|
||||
UINT32 addrtmp = addr2 & 0xfff80000UL;
|
||||
if(addrtmp == 0xfff80000UL || addrtmp == 0x00f80000UL){
|
||||
// XXX: 0xFFFA0000 - 0xFFFFFFFF or 0xFA0000 - 0xFFFFFF
|
||||
addr2 = addr2 & 0xfffff;
|
||||
}
|
||||
}
|
||||
if((addr2 & CIRRUS_VRAMWINDOW2MASK) == vramWndAddr2){
|
||||
CIRRUS_VRAMWND2_FUNC_ww(cirrusvga_opaque, addr2, value);
|
||||
//if((vramWndAddr2 != 0xE0000 || !(gdc.analog & ((1 << GDCANALOG_16) | (1 << GDCANALOG_256) | (1 << GDCANALOG_256E)))) && !(gdc.display & (1 << GDCDISP_31)))
|
||||
// return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -768,41 +929,79 @@ void MEMCALL memp_write32(UINT32 address, UINT32 value) {
|
||||
|
||||
UINT32 pos;
|
||||
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2cfg.usegd5430 && cirrusvga_opaque){
|
||||
if(np2clvga.VRAMWindowAddr){
|
||||
if(np2clvga.VRAMWindowAddr <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE){
|
||||
g_cirrus_linear_write[2](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}else if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address < np2clvga.VRAMWindowAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT);
|
||||
g_cirrus_linear_write[2](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH <= address){
|
||||
if(address < np2clvga.VRAMWindowAddr + BBLTWINDOW_ADSH + BBLTWINDOW_SIZE){
|
||||
cirrus_linear_bitblt_writel(cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(np2clvga.VRAMWindowAddr2 && np2clvga.VRAMWindowAddr2 <= address && address < np2clvga.VRAMWindowAddr2 + 0x10000){
|
||||
CIRRUS_VRAMWND2_FUNC_wl(cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (address < (I286_MEMWRITEMAX - 3)) {
|
||||
STOREINTELDWORD(mem + address, value);
|
||||
return;
|
||||
}
|
||||
else if (address >= USE_HIMEM) {
|
||||
pos = address & CPU_ADRSMASK;
|
||||
if ((pos >= USE_HIMEM) && ((pos + 3) < CPU_EXTLIMIT16)) {
|
||||
STOREINTELDWORD(CPU_EXTMEMBASE + pos, value);
|
||||
return;
|
||||
else{
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
if(np2clvga.pciLFB_Addr && (address & np2clvga.pciLFB_Mask) == np2clvga.pciLFB_Addr){
|
||||
UINT32 addrofs = address - np2clvga.pciLFB_Addr;
|
||||
if(addrofs < 0x1000000){
|
||||
cirrus_linear_writel(cirrusvga_opaque, address, value);
|
||||
}else if( addrofs < 0x1000000 + 0x400000){
|
||||
cirrus_linear_bitblt_writel(cirrusvga_opaque, address, value);
|
||||
}
|
||||
return;
|
||||
}else if(np2clvga.pciMMIO_Addr && (address & np2clvga.pciMMIO_Mask) == np2clvga.pciMMIO_Addr){
|
||||
cirrus_mmio_write[2](cirrusvga_opaque, address, value);
|
||||
if(np2clvga.gd54xxtype==CIRRUS_98ID_PCI)
|
||||
return;
|
||||
}
|
||||
//if(TEST_START_ADDR < address && address <= TEST_END_ADDR){
|
||||
// printf("%d: %d\n", address, value);
|
||||
//}
|
||||
if(np2clvga.gd54xxtype!=CIRRUS_98ID_PCI){
|
||||
if(vramWndAddr){
|
||||
if(vramWndAddr <= address){
|
||||
if(address < vramWndAddr + VRAMWINDOW_SIZE){
|
||||
g_cirrus_linear_write[2](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}else if(address < vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SIZE){
|
||||
if(address >= vramWndAddr + VRAMWINDOW_SIZE + EXT_WINDOW_SHFT){
|
||||
g_cirrus_linear_write[2](cirrusvga_opaque, address, value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(vramWndAddr3){
|
||||
UINT32 addr3 = address;
|
||||
if(vramWndAddr3 <= addr3 && addr3 < vramWndAddr3 + VRA3WINDOW_SIZEX){
|
||||
CIRRUS_VRAMWND3_FUNC_wl(cirrusvga_opaque, addr3, value);
|
||||
TRACEOUT(("mem (write32): %x", address));
|
||||
//if(!(gdc.analog & ((1 << GDCANALOG_256) | (1 << GDCANALOG_256E))))
|
||||
// return;
|
||||
}
|
||||
}
|
||||
if(vramWndAddr2 && (vramWndAddr2 != 0xE0000 || !(gdc.analog & ((1 << GDCANALOG_16) | (1 << GDCANALOG_256) | (1 << GDCANALOG_256E))))){
|
||||
UINT32 addr2 = address;
|
||||
if((vramWndAddr2 & 0xfff00000UL) == 0){
|
||||
UINT32 addrtmp = addr2 & 0xfff80000UL;
|
||||
if(addrtmp == 0xfff80000UL || addrtmp == 0x00f80000UL){
|
||||
// XXX: 0xFFFA0000 - 0xFFFFFFFF or 0xFA0000 - 0xFFFFFF
|
||||
addr2 = addr2 & 0xfffff;
|
||||
}
|
||||
}
|
||||
if((addr2 & CIRRUS_VRAMWINDOW2MASK) == vramWndAddr2){
|
||||
CIRRUS_VRAMWND2_FUNC_wl(cirrusvga_opaque, addr2, value);
|
||||
//if((vramWndAddr2 != 0xE0000 || !(gdc.analog & ((1 << GDCANALOG_16) | (1 << GDCANALOG_256) | (1 << GDCANALOG_256E)))) && !(gdc.display & (1 << GDCDISP_31)))
|
||||
// return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (address >= USE_HIMEM) {
|
||||
pos = address & CPU_ADRSMASK;
|
||||
if ((pos >= USE_HIMEM) && ((pos + 3) < CPU_EXTLIMIT16)) {
|
||||
STOREINTELDWORD(CPU_EXTMEMBASE + pos, value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!(address & 1)) {
|
||||
|
@ -82,6 +82,8 @@ void MEMCALL memr_writes(UINT seg, UINT off, const void *dat, UINT leng);
|
||||
|
||||
#define MEMP_READ8(addr) \
|
||||
memp_read8((addr))
|
||||
#define MEMP_READ16(addr) \
|
||||
memp_read16((addr))
|
||||
#define MEMP_WRITE8(addr, dat) \
|
||||
memp_write8((addr), (dat))
|
||||
|
||||
|
@ -475,7 +475,7 @@ REG8 MEMCALL memp_read8(UINT32 address) {
|
||||
}
|
||||
else {
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2clvga.enabled && cirrusvga_opaque){
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
@ -580,7 +580,7 @@ REG16 MEMCALL memp_read16(UINT32 address) {
|
||||
else {
|
||||
if ((address + 1) & 0x7fff) { // non 32kb boundary
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2clvga.enabled && cirrusvga_opaque){
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
@ -691,7 +691,7 @@ UINT32 MEMCALL memp_read32(UINT32 address) {
|
||||
else{
|
||||
if ((address + 1) & 0x7fff) { // non 32kb boundary
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2clvga.enabled && cirrusvga_opaque){
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
@ -953,7 +953,7 @@ void MEMCALL memp_write8(UINT32 address, REG8 value) {
|
||||
}
|
||||
else {
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2clvga.enabled && cirrusvga_opaque){
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
@ -1066,7 +1066,7 @@ void MEMCALL memp_write16(UINT32 address, REG16 value) {
|
||||
else{
|
||||
if ((address + 1) & 0x7fff) { // non 32kb boundary
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2clvga.enabled && cirrusvga_opaque){
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
@ -1202,7 +1202,7 @@ void MEMCALL memp_write32(UINT32 address, UINT32 value) {
|
||||
else{
|
||||
if ((address + 1) & 0x7fff) { // non 32kb boundary
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
if(np2clvga.enabled && cirrusvga_opaque){
|
||||
if(np2clvga.enabled && cirrusvga_opaque && (cirrusvga_wab_46e8 & 0x08)){
|
||||
UINT32 vramWndAddr = np2clvga.VRAMWindowAddr;
|
||||
UINT32 vramWndAddr2 = np2clvga.VRAMWindowAddr2;
|
||||
UINT32 vramWndAddr3 = np2clvga.VRAMWindowAddr3;
|
||||
|
@ -83,16 +83,47 @@ ia32_init(void)
|
||||
void
|
||||
ia32_setextsize(UINT32 size)
|
||||
{
|
||||
//#if defined(SUPPORT_LARGE_MEMORY)&&defined(_WIN32) && !defined(MEMTRACE) && !defined(MEMCHECK)
|
||||
// static int vallocflag = 0;
|
||||
// static int vallocsize = 0;
|
||||
// static LPVOID memblock = NULL;
|
||||
//#endif
|
||||
|
||||
if (CPU_EXTMEMSIZE != size) {
|
||||
UINT8 *extmem;
|
||||
extmem = CPU_EXTMEM;
|
||||
if (extmem != NULL) {
|
||||
_MFREE(extmem);
|
||||
//#if defined(SUPPORT_LARGE_MEMORY) && defined(_WIN32) && !defined(MEMTRACE) && !defined(MEMCHECK)
|
||||
// if(vallocflag){
|
||||
// VirtualFree((LPVOID)extmem, vallocsize, MEM_DECOMMIT);
|
||||
// VirtualFree(memblock, 0, MEM_RELEASE);
|
||||
// vallocflag = 0;
|
||||
// }else
|
||||
//#endif
|
||||
{
|
||||
_MFREE(extmem);
|
||||
}
|
||||
extmem = NULL;
|
||||
}
|
||||
if (size != 0) {
|
||||
extmem = (UINT8 *)_MALLOC(size + 16, "EXTMEM");
|
||||
//#if defined(SUPPORT_LARGE_MEMORY) && defined(_WIN32) && !defined(MEMTRACE) && !defined(MEMCHECK)
|
||||
// if(size > (255 << 20)){
|
||||
// HANDLE hp = OpenProcess(PROCESS_ALL_ACCESS, TRUE, GetCurrentProcessId());
|
||||
// vallocsize = size + 16;
|
||||
// SetProcessWorkingSetSize(hp, vallocsize + 50*1024*1024, vallocsize + 50*1024*1024);
|
||||
// CloseHandle(hp);
|
||||
// memblock = VirtualAlloc(NULL, vallocsize, MEM_RESERVE, PAGE_READWRITE);
|
||||
// extmem = (UINT8 *)VirtualAlloc(memblock, vallocsize, MEM_COMMIT, PAGE_READWRITE);
|
||||
// if(!extmem){
|
||||
// extmem = (UINT8 *)_MALLOC(size + 16, "EXTMEM");
|
||||
// }else{
|
||||
// vallocflag = 1;
|
||||
// }
|
||||
// }else
|
||||
//#endif
|
||||
{
|
||||
extmem = (UINT8 *)_MALLOC(size + 16, "EXTMEM");
|
||||
}
|
||||
}
|
||||
if (extmem != NULL) {
|
||||
ZeroMemory(extmem, size + 16);
|
||||
|
@ -48,7 +48,7 @@ void emsio_reset(const NP2CFG *pConfig) {
|
||||
|
||||
ZeroMemory(&emsio, sizeof(emsio));
|
||||
#if 1 || !defined(CPUCORE_IA32)
|
||||
emsio.maxmem = pccore.extmem;
|
||||
emsio.maxmem = (pccore.extmem > 255 ? 255 : pccore.extmem); // XXX: 256MB以上のときどうなる?
|
||||
#endif
|
||||
emsio.addr[0] = 0xc0000;
|
||||
emsio.addr[1] = 0xc4000;
|
||||
|
2
np2ver.h
2
np2ver.h
@ -3,7 +3,7 @@
|
||||
* @brief The version
|
||||
*/
|
||||
|
||||
#define NP2VER_CORE "ver.0.86 kai rev.17"
|
||||
#define NP2VER_CORE "ver.0.86 kai rev.18"
|
||||
|
||||
// #define NP2VER_WIN9X
|
||||
// #define NP2VER_MACOSX
|
||||
|
5
pccore.c
5
pccore.c
@ -146,7 +146,7 @@ const OEMCHAR np2version[] = OEMTEXT(NP2VER_CORE);
|
||||
#endif
|
||||
#endif
|
||||
#if defined(SUPPORT_CL_GD5430)
|
||||
0, 0x5B, 0, CIRRUS_MELCOWAB_OFS_DEFAULT,
|
||||
0, 0x5B, 0, CIRRUS_MELCOWAB_OFS_DEFAULT, 0,
|
||||
#endif
|
||||
#if defined(SUPPORT_GPIB)
|
||||
0, 12, 1, 0, 0,
|
||||
@ -166,6 +166,7 @@ const OEMCHAR np2version[] = OEMTEXT(NP2VER_CORE);
|
||||
#if defined(SUPPORT_FAST_MEMORYCHECK)
|
||||
1,
|
||||
#endif
|
||||
0,
|
||||
};
|
||||
|
||||
PCCORE pccore = { PCBASECLOCK25, PCBASEMULTIPLE,
|
||||
@ -637,7 +638,7 @@ void pccore_reset(void) {
|
||||
#endif
|
||||
|
||||
epson = (pccore.model & PCMODEL_EPSON) ? TRUE : FALSE;
|
||||
if (epson) {
|
||||
if (epson || np2cfg.useram_d) {
|
||||
/* enable RAM (D0000-DFFFF) */
|
||||
CPU_RAM_D000 = 0xffff;
|
||||
}
|
||||
|
3
pccore.h
3
pccore.h
@ -224,6 +224,7 @@ struct tagNP2Config
|
||||
UINT16 gd5430type;
|
||||
UINT8 gd5430fakecur;
|
||||
UINT8 gd5430melofs;
|
||||
UINT8 ga98nb_bigscrn_ex;
|
||||
#endif
|
||||
#if defined(SUPPORT_GPIB)
|
||||
UINT8 usegpib; // GPIB使用
|
||||
@ -270,6 +271,8 @@ struct tagNP2Config
|
||||
#if defined(SUPPORT_FAST_MEMORYCHECK)
|
||||
UINT8 memcheckspeed; // メモリチェック速度
|
||||
#endif
|
||||
|
||||
UINT8 useram_d; // EPSONでなくてもD0000h-DFFFFhをRAMに(ただしIDE BIOS D8000h-DBFFFhは駄目)
|
||||
};
|
||||
typedef struct tagNP2Config NP2CFG; /*!< The define of config */
|
||||
|
||||
|
@ -31,8 +31,8 @@ SOURCES_C += $(wildcard $(NP2_PATH)/i286c/*.c) \
|
||||
$(NP2_PATH)/sdl2/unix/main.c
|
||||
|
||||
OBJECTS = $(SOURCES_CXX:.cpp=.o) $(SOURCES_C:.c=.o)
|
||||
CXXFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16
|
||||
CFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16
|
||||
CXXFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_FMGEN -DSUPPORT_GPIB -DSUPPORT_FAST_MEMORYCHECK
|
||||
CFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_FMGEN -DSUPPORT_GPIB -DSUPPORT_FAST_MEMORYCHECK
|
||||
LDFLAGS += $(fpic) -lm -lpthread $(SDL_LIBS) -lSDL2_ttf -lSDL2_mixer
|
||||
|
||||
ifeq ($(SUPPORT_NET), 1)
|
||||
|
@ -31,8 +31,8 @@ SOURCES_C += $(wildcard $(NP2_PATH)/i286c/*.c) \
|
||||
$(NP2_PATH)/sdl2/unix/main.c
|
||||
|
||||
OBJECTS = $(SOURCES_CXX:.cpp=.o) $(SOURCES_C:.c=.o)
|
||||
CXXFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_NVL_IMAGES
|
||||
CFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_NVL_IMAGES
|
||||
CXXFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_NVL_IMAGES -DSUPPORT_FMGEN -DSUPPORT_GPIB -DSUPPORT_FAST_MEMORYCHECK
|
||||
CFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_NVL_IMAGES -DSUPPORT_FMGEN -DSUPPORT_GPIB -DSUPPORT_FAST_MEMORYCHECK
|
||||
LDFLAGS += $(fpic) -lm -lpthread $(SDL_LIBS) -lSDL2_ttf -lSDL2_mixer -ldl
|
||||
|
||||
ifeq ($(SUPPORT_NET), 1)
|
||||
|
@ -32,8 +32,8 @@ SOURCES_C += $(wildcard $(NP2_PATH)/i286c/*.c) \
|
||||
$(NP2_PATH)/sdl2/win32/main.c
|
||||
|
||||
OBJECTS = $(SOURCES_CXX:.cpp=.o) $(SOURCES_C:.c=.o)
|
||||
CXXFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_NVL_IMAGES
|
||||
CFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_NVL_IMAGES
|
||||
CXXFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_NVL_IMAGES -DSUPPORT_FMGEN -DSUPPORT_GPIB -DSUPPORT_FAST_MEMORYCHECK
|
||||
CFLAGS += $(fpic) $(INCFLAGS) $(COMMONFLAGS) -DNP2_SDL2 -DUSE_SDLAUDIO -DUSE_SDLMIXER -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_NVL_IMAGES -DSUPPORT_FMGEN -DSUPPORT_GPIB -DSUPPORT_FAST_MEMORYCHECK
|
||||
LDFLAGS += $(fpic) -lm $(SDL_LIBS) -lSDL2_ttf -lSDL2_mixer
|
||||
|
||||
ifeq ($(SUPPORT_NET), 1)
|
||||
|
@ -395,7 +395,7 @@ midireset(CMMIDI midi)
|
||||
work[1] = 0x7b;
|
||||
work[2] = 0x00;
|
||||
for (work[0] = 0xb0; work[0] < 0xc0; work[0]++) {
|
||||
keydisp_midi(work);
|
||||
//keydisp_midi(work);
|
||||
(*midi->outfn)(midi, MIDIOUTS3(work), 3);
|
||||
}
|
||||
}
|
||||
@ -541,7 +541,7 @@ midiwrite(COMMNG self, UINT8 data)
|
||||
mch->prog = midi->buffer[1];
|
||||
break;
|
||||
}
|
||||
keydisp_midi(midi->buffer);
|
||||
//keydisp_midi(midi->buffer);
|
||||
(*midi->outfn)(midi, MIDIOUTS2(midi->buffer), 2);
|
||||
midi->midictrl = MIDICTRL_READY;
|
||||
return 2;
|
||||
@ -573,7 +573,7 @@ midiwrite(COMMNG self, UINT8 data)
|
||||
mch->bend = LOADINTELWORD(midi->buffer + 1);
|
||||
break;
|
||||
}
|
||||
keydisp_midi(midi->buffer);
|
||||
//keydisp_midi(midi->buffer);
|
||||
(*midi->outfn)(midi, MIDIOUTS3(midi->buffer), 3);
|
||||
midi->midictrl = MIDICTRL_READY;
|
||||
return 3;
|
||||
|
@ -665,6 +665,8 @@ static const INITBL iniitem[] = {
|
||||
{"USE_CLGD", INITYPE_BOOL, &np2cfg.usegd5430, 0},
|
||||
{"CLGDTYPE", INITYPE_UINT16, &np2cfg.gd5430type, 0},
|
||||
{"CLGDFCUR", INITYPE_BOOL, &np2cfg.gd5430fakecur, 0},
|
||||
{"GDMELOFS", INITYPE_UINT8, &np2cfg.gd5430melofs, 0},
|
||||
{"GANBBSEX", INITYPE_BOOL, &np2cfg.ga98nb_bigscrn_ex, 0},
|
||||
#endif
|
||||
{"TIMERFIX", INITYPE_BOOL, &np2cfg.timerfix, 0},
|
||||
|
||||
@ -685,6 +687,10 @@ static const INITBL iniitem[] = {
|
||||
{"cpu_bran", INIRO_STR, np2cfg.cpu_brandstring_o, 63},
|
||||
|
||||
{"FPU_TYPE", INITYPE_UINT8, &np2cfg.fpu_type, 0},
|
||||
#if defined(SUPPORT_FAST_MEMORYCHECK)
|
||||
{"memckspd", INITYPE_UINT8, &np2cfg.memcheckspeed, 0},
|
||||
#endif
|
||||
{"USERAM_D", INITYPE_BOOL, &np2cfg.useram_d, 0},
|
||||
|
||||
{"keyboard", INITYPE_KB, &np2oscfg.KEYBOARD, 0},
|
||||
#if !defined(__LIBRETRO__)
|
||||
|
@ -847,7 +847,7 @@ void retro_set_environment(retro_environment_t cb)
|
||||
{ "np2kai_BEEP_vol" , "Volume Beep; 3|0|1|2" },
|
||||
#if defined(SUPPORT_WAB)
|
||||
{ "np2kai_CLGD_en" , "Enable WAB (Restart App); OFF|ON" },
|
||||
{ "np2kai_CLGD_type" , "WAB Type; PC-9821Xe10,Xa7e,Xb10 built-in|PC-9821Bp,Bs,Be,Bf built-in|PC-9821Xe built-in|PC-9821Cb built-in|PC-9821Cf built-in|PC-9821Cb2 built-in|PC-9821Cx2 built-in|PC-9821 PCI CL-GD5446 built-in|MELCO WAB-S|MELCO WSN-A2F|MELCO WSN-A4F|I-O DATA GA-98NBI/C|I-O DATA GA-98NBII|I-O DATA GA-98NBIV|PC-9801-96(PC-9801B3-E02)|Auto Select(Xe10, WAB-S), PCI|Auto Select(Xe10, WSN-A2F), PCI|Auto Select(Xe10, WSN-A4F), PCI|Auto Select(Xe10, WAB-S)|Auto Select(Xe10, WSN-A2F)|Auto Select(Xe10, WSN-A4F)" },
|
||||
{ "np2kai_CLGD_type" , "WAB Type; PC-9821Xe10,Xa7e,Xb10 built-in|PC-9821Bp,Bs,Be,Bf built-in|PC-9821Xe built-in|PC-9821Cb built-in|PC-9821Cf built-in|PC-9821Cb2 built-in|PC-9821Cx2 built-in|PC-9821 PCI CL-GD5446 built-in|MELCO WAB-S|MELCO WSN-A2F|MELCO WSN-A4F|I-O DATA GA-98NBI/C|I-O DATA GA-98NBII|I-O DATA GA-98NBIV|PC-9801-96(PC-9801B3-E02)|Auto Select(Xe10, GA-98NBI/C), PCI|Auto Select(Xe10, GA-98NBII), PCI|Auto Select(Xe10, GA-98NBIV), PCI|Auto Select(Xe10, WAB-S), PCI|Auto Select(Xe10, WSN-A2F), PCI|Auto Select(Xe10, WSN-A4F), PCI|Auto Select(Xe10, WAB-S)|Auto Select(Xe10, WSN-A2F)|Auto Select(Xe10, WSN-A4F)" },
|
||||
{ "np2kai_CLGD_fc" , "Use Fake Hardware Cursor; OFF|ON" },
|
||||
#endif /* defined(SUPPORT_WAB) */
|
||||
#if defined(SUPPORT_PCI)
|
||||
@ -1195,6 +1195,12 @@ static void update_variables(void)
|
||||
np2cfg.gd5430type = CIRRUS_98ID_GA98NBIV;
|
||||
else if (strcmp(var.value, "PC-9801-96(PC-9801B3-E02)") == 0)
|
||||
np2cfg.gd5430type = CIRRUS_98ID_96;
|
||||
else if (strcmp(var.value, "Auto Select(Xe10, GA-98NBI/C), PCI") == 0)
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE_G1_PCI;
|
||||
else if (strcmp(var.value, "Auto Select(Xe10, GA-98NBII), PCI") == 0)
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE_G2_PCI;
|
||||
else if (strcmp(var.value, "Auto Select(Xe10, GA-98NBIV), PCI") == 0)
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE_G4_PCI;
|
||||
else if (strcmp(var.value, "Auto Select(Xe10, WAB-S), PCI") == 0)
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE_WA_PCI;
|
||||
else if (strcmp(var.value, "Auto Select(Xe10, WSN-A2F), PCI") == 0)
|
||||
|
@ -281,6 +281,11 @@ void fmboard_bind(void) {
|
||||
board86_bind();
|
||||
break;
|
||||
|
||||
case SOUNDID_PC_9801_86_118:
|
||||
board118_bind();
|
||||
board86_bind();
|
||||
break;
|
||||
|
||||
case SOUNDID_MATE_X_PCM:
|
||||
board118_bind();
|
||||
break;
|
||||
|
@ -834,6 +834,9 @@ static UINT GetSoundFlags(SOUNDID nSoundID)
|
||||
return FLAG_OPNA1 | FLAG_PCM86 | FLAG_CS4231;
|
||||
break;
|
||||
|
||||
case SOUNDID_PC_9801_86_118:
|
||||
return FLAG_OPNA1 | FLAG_OPNA2 | FLAG_PCM86 | FLAG_CS4231;
|
||||
|
||||
case SOUNDID_MATE_X_PCM:
|
||||
return FLAG_OPNA1 | FLAG_CS4231;
|
||||
|
||||
|
1027
wab/cirrus_vga.c
1027
wab/cirrus_vga.c
File diff suppressed because it is too large
Load Diff
@ -53,6 +53,9 @@
|
||||
#define CIRRUS_98ID_GA98NBIV 0x202
|
||||
#define CIRRUS_98ID_GA98NBMASK 0xfffc
|
||||
#define CIRRUS_98ID_AUTOMSK 0xFFF0
|
||||
#define CIRRUS_98ID_AUTO_XE_G1_PCI 0xFFF7
|
||||
#define CIRRUS_98ID_AUTO_XE_G2_PCI 0xFFF8
|
||||
#define CIRRUS_98ID_AUTO_XE_G4_PCI 0xFFF9
|
||||
#define CIRRUS_98ID_AUTO_XE_WA_PCI 0xFFFA
|
||||
#define CIRRUS_98ID_AUTO_XE_W4_PCI 0xFFFB
|
||||
#define CIRRUS_98ID_AUTO_XE_WS_PCI 0xFFFC
|
||||
@ -112,6 +115,8 @@ extern CPUWriteMemoryFunc *g_cirrus_linear_write[3];
|
||||
|
||||
extern int pcidev_cirrus_deviceid;
|
||||
|
||||
extern int cirrusvga_wab_46e8;
|
||||
|
||||
void cirrus_linear_mem_writeb(void *opaque, target_phys_addr_t addr, uint32_t_ val);
|
||||
void cirrus_linear_mem_writew(void *opaque, target_phys_addr_t addr, uint32_t_ val);
|
||||
void cirrus_linear_mem_writel(void *opaque, target_phys_addr_t addr, uint32_t_ val);
|
||||
|
44
wab/wab.c
44
wab/wab.c
@ -39,10 +39,6 @@
|
||||
#include "xnp2.h"
|
||||
#endif
|
||||
|
||||
// XXX: 1280x1024以上にならないので差し当たってはこれで十分
|
||||
#define WAB_MAX_WIDTH 1280
|
||||
#define WAB_MAX_HEIGHT 1024
|
||||
|
||||
#if !defined(_countof)
|
||||
#define _countof(a) (sizeof(a)/sizeof(a[0]))
|
||||
#endif
|
||||
@ -72,9 +68,11 @@ static int ga_lastwabheight = 480;
|
||||
static int ga_reqChangeWindowSize = 0;
|
||||
static int ga_reqChangeWindowSize_w = 0;
|
||||
static int ga_reqChangeWindowSize_h = 0;
|
||||
//
|
||||
//int np2wab.relaystateint = 0;
|
||||
//int np2wab.relaystateext = 0;
|
||||
|
||||
static int ga_lastscalemode = 0;
|
||||
static int ga_lastrealwidth = 0;
|
||||
static int ga_lastrealheight = 0;
|
||||
static int ga_screenupdated = 0;
|
||||
|
||||
/**
|
||||
* 設定
|
||||
@ -173,11 +171,19 @@ void np2wab_setScreenSize(int width, int height)
|
||||
np2wab.wndHeight = ga_lastwabheight = height;
|
||||
if(np2wab.relay & 0x3){
|
||||
if(width < 32 || height < 32){
|
||||
#if !defined(NP2_X11) && !defined(NP2_SDL2) && !defined(__LIBRETRO__)
|
||||
scrnmng_setsize(0, 0, 640, 480);
|
||||
#else
|
||||
scrnmng_setwidth(0, 640);
|
||||
scrnmng_setheight(0, 480);
|
||||
#endif
|
||||
}else{
|
||||
#if !defined(NP2_X11) && !defined(NP2_SDL2) && !defined(__LIBRETRO__)
|
||||
scrnmng_setsize(0, 0, width, height);
|
||||
#else
|
||||
scrnmng_setwidth(0, width);
|
||||
scrnmng_setheight(0, height);
|
||||
#endif
|
||||
}
|
||||
scrnmng_updatefsres(); // フルスクリーン解像度更新
|
||||
#if !defined(NP2_X11) && !defined(NP2_SDL2) && !defined(__LIBRETRO__)
|
||||
@ -196,6 +202,8 @@ void np2wab_setScreenSizeMT(int width, int height)
|
||||
if(!ga_threadmode){
|
||||
// マルチスレッドモードでなければ直接呼び出し
|
||||
np2wab_setScreenSize(width, height);
|
||||
ga_lastrealwidth = width;
|
||||
ga_lastrealheight = height;
|
||||
}else{
|
||||
// マルチスレッドモードなら画面サイズ変更要求を出す
|
||||
ga_reqChangeWindowSize_w = width;
|
||||
@ -368,10 +376,6 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){
|
||||
/**
|
||||
* ウィンドウアクセラレータ画面転送
|
||||
*/
|
||||
static int ga_lastscalemode = 0;
|
||||
static int ga_lastrealwidth = 0;
|
||||
static int ga_lastrealheight = 0;
|
||||
static int ga_screenupdated = 0;
|
||||
#if defined(NP2_X11) || defined(NP2_SDL2) || defined(__LIBRETRO__)
|
||||
void np2wab_drawWABWindow(void)
|
||||
#else
|
||||
@ -383,10 +387,10 @@ void np2wab_drawWABWindow(HDC hdc)
|
||||
int srcheight = np2wab.realHeight;
|
||||
if(ga_lastrealwidth != srcwidth || ga_lastrealheight != srcheight){
|
||||
// 解像度が変わっていたらウィンドウサイズも変える
|
||||
np2wab.paletteChanged = 1;
|
||||
np2wab_setScreenSizeMT(srcwidth, srcheight);
|
||||
ga_lastrealwidth = srcwidth;
|
||||
ga_lastrealheight = srcheight;
|
||||
if(!ga_reqChangeWindowSize){
|
||||
np2wab.paletteChanged = 1;
|
||||
np2wab_setScreenSizeMT(srcwidth, srcheight);
|
||||
}
|
||||
if(!np2wabwnd.ready) return;
|
||||
}
|
||||
if(np2wabwnd.multiwindow){ // 別窓モード判定
|
||||
@ -481,8 +485,10 @@ void np2wab_drawframe()
|
||||
if(np2wabwnd.hWndWAB!=NULL){
|
||||
if(ga_reqChangeWindowSize){
|
||||
// 画面サイズ変更要求が来ていたら画面サイズを変える
|
||||
ga_reqChangeWindowSize = 0;
|
||||
np2wab_setScreenSize(ga_reqChangeWindowSize_w, ga_reqChangeWindowSize_h);
|
||||
ga_lastrealwidth = ga_reqChangeWindowSize_w;
|
||||
ga_lastrealheight = ga_reqChangeWindowSize_h;
|
||||
ga_reqChangeWindowSize = 0;
|
||||
np2wabwnd.ready = 1;
|
||||
}
|
||||
if(np2wabwnd.ready && (np2wab.relay&0x3)!=0){
|
||||
@ -621,6 +627,8 @@ void np2wab_reset(const NP2CFG *pConfig)
|
||||
ga_screenupdated = 0;
|
||||
np2wab.lastWidth = 0;
|
||||
np2wab.lastHeight = 0;
|
||||
np2wab.realWidth = 0;
|
||||
np2wab.realHeight = 0;
|
||||
np2wab.relaystateint = 0;
|
||||
np2wab_setRelayState(np2wab.relaystateint|np2wab.relaystateext);
|
||||
|
||||
@ -754,8 +762,12 @@ void np2wab_setRelayState(REG8 state)
|
||||
// 統合モードなら画面を戻す
|
||||
np2wab.lastWidth = 0;
|
||||
np2wab.lastHeight = 0;
|
||||
#if !defined(NP2_X11) && !defined(NP2_SDL2) && !defined(__LIBRETRO__)
|
||||
scrnmng_setsize(dsync.scrnxpos, 0, dsync.scrnxmax, dsync.scrnymax);// XXX: 画面サイズを乗っ取る前に戻す
|
||||
#else
|
||||
scrnmng_setwidth(dsync.scrnxpos, dsync.scrnxmax); // XXX: 画面幅を乗っ取る前に戻す
|
||||
scrnmng_setheight(0, dsync.scrnymax); // XXX: 画面高さを乗っ取る前に戻す
|
||||
#endif
|
||||
scrnmng_updatefsres(); // フルスクリーン解像度更新
|
||||
#if !defined(NP2_X11) && !defined(NP2_SDL2) && !defined(__LIBRETRO__)
|
||||
mousemng_updateclip(); // マウスキャプチャのクリップ範囲を修正
|
||||
|
@ -11,6 +11,10 @@
|
||||
#include <gtk/gtk.h>
|
||||
#endif
|
||||
|
||||
// XXX: 1600x1024以上にならないので差し当たってはこれで十分
|
||||
#define WAB_MAX_WIDTH 1600
|
||||
#define WAB_MAX_HEIGHT 1024
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
@ -79,6 +79,10 @@ BOOL SndOptMixerPage::OnInitDialog()
|
||||
m_master.SetStaticId(IDC_VOLMASTERSTR);
|
||||
m_master.SetRange(0, 100);
|
||||
m_master.SetPos(np2cfg.vol_master);
|
||||
if(!np2oscfg.usemastervolume){
|
||||
m_master.SetPos(100);
|
||||
m_master.EnableWindow(FALSE);
|
||||
}
|
||||
|
||||
m_fm.SubclassDlgItem(IDC_VOLFM, this);
|
||||
m_fm.SetStaticId(IDC_VOLFMSTR);
|
||||
@ -120,12 +124,14 @@ void SndOptMixerPage::OnOK()
|
||||
{
|
||||
bool bUpdated = false;
|
||||
|
||||
const UINT8 cMaster = static_cast<UINT8>(m_master.GetPos());
|
||||
if (np2cfg.vol_master != cMaster)
|
||||
{
|
||||
np2cfg.vol_master = cMaster;
|
||||
soundmng_setvolume(cMaster);
|
||||
bUpdated = true;
|
||||
if(np2oscfg.usemastervolume){
|
||||
const UINT8 cMaster = static_cast<UINT8>(m_master.GetPos());
|
||||
if (np2cfg.vol_master != cMaster)
|
||||
{
|
||||
np2cfg.vol_master = cMaster;
|
||||
soundmng_setvolume(cMaster);
|
||||
bUpdated = true;
|
||||
}
|
||||
}
|
||||
|
||||
const UINT8 cFM = static_cast<UINT8>(m_fm.GetPos());
|
||||
|
@ -218,7 +218,9 @@ static const CComboData::Entry s_type[] =
|
||||
{MAKEINTRESOURCE(IDS_GD5430_XE10), CIRRUS_98ID_Xe10},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_CB2), CIRRUS_98ID_Cb2},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_CX2), CIRRUS_98ID_Cx2},
|
||||
#ifdef SUPPORT_PCI
|
||||
{MAKEINTRESOURCE(IDS_GD5430_PCI), CIRRUS_98ID_PCI},
|
||||
#endif
|
||||
{MAKEINTRESOURCE(IDS_GD5430_WAB), CIRRUS_98ID_WAB},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_WSN_A2F), CIRRUS_98ID_WSN_A2F},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_WSN), CIRRUS_98ID_WSN},
|
||||
@ -226,9 +228,14 @@ static const CComboData::Entry s_type[] =
|
||||
{MAKEINTRESOURCE(IDS_GD5430_GA98NBII), CIRRUS_98ID_GA98NBII},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_GA98NBIV), CIRRUS_98ID_GA98NBIV},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_96), CIRRUS_98ID_96},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_AUTO_XE_G1_PCI), CIRRUS_98ID_AUTO_XE_G1_PCI},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_AUTO_XE_G2_PCI), CIRRUS_98ID_AUTO_XE_G2_PCI},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_AUTO_XE_G4_PCI), CIRRUS_98ID_AUTO_XE_G4_PCI},
|
||||
#ifdef SUPPORT_PCI
|
||||
{MAKEINTRESOURCE(IDS_GD5430_AUTO_XE_WA_PCI), CIRRUS_98ID_AUTO_XE_WA_PCI},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_AUTO_XE_WS_PCI), CIRRUS_98ID_AUTO_XE_WS_PCI},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_AUTO_XE_W4_PCI), CIRRUS_98ID_AUTO_XE_W4_PCI},
|
||||
#endif
|
||||
{MAKEINTRESOURCE(IDS_GD5430_AUTO_XE10_WABS), CIRRUS_98ID_AUTO_XE10_WABS},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_AUTO_XE10_WSN2), CIRRUS_98ID_AUTO_XE10_WSN2},
|
||||
{MAKEINTRESOURCE(IDS_GD5430_AUTO_XE10_WSN4), CIRRUS_98ID_AUTO_XE10_WSN4},
|
||||
|
@ -470,7 +470,11 @@ static const PFTBL s_IniItems[] =
|
||||
|
||||
PFEXT("DIPswtch", PFTYPE_BIN, np2cfg.dipsw, 3),
|
||||
PFEXT("MEMswtch", PFTYPE_BIN, np2cfg.memsw, 8),
|
||||
PFMAX("ExMemory", PFTYPE_UINT8, &np2cfg.EXTMEM, 244),
|
||||
#if defined(SUPPORT_LARGE_MEMORY)
|
||||
PFMAX("ExMemory", PFTYPE_UINT16, &np2cfg.EXTMEM, MEMORY_MAXSIZE),
|
||||
#else
|
||||
PFMAX("ExMemory", PFTYPE_UINT8, &np2cfg.EXTMEM, MEMORY_MAXSIZE),
|
||||
#endif
|
||||
PFVAL("ITF_WORK", PFTYPE_BOOL, &np2cfg.ITF_WORK),
|
||||
|
||||
PFVAL("USE_BIOS", PFTYPE_BOOL, &np2cfg.usebios), // 実機BIOS使用
|
||||
@ -609,6 +613,8 @@ static const PFTBL s_IniItems[] =
|
||||
PFVAL("USEGD5430", PFTYPE_BOOL, &np2cfg.usegd5430),
|
||||
PFVAL("GD5430TYPE",PFTYPE_UINT16, &np2cfg.gd5430type),
|
||||
PFVAL("GD5430FCUR",PFTYPE_BOOL, &np2cfg.gd5430fakecur),
|
||||
PFVAL("GDMELOFS", PFTYPE_UINT8, &np2cfg.gd5430melofs),
|
||||
PFVAL("GANBBSEX", PFTYPE_BOOL, &np2cfg.ga98nb_bigscrn_ex),
|
||||
#endif
|
||||
#if defined(SUPPORT_GPIB)
|
||||
PFVAL("USE_GPIB", PFTYPE_BOOL, &np2cfg.usegpib),
|
||||
@ -649,7 +655,13 @@ static const PFTBL s_IniItems[] =
|
||||
PFVAL("cpu_fecx", PFTYPE_HEX32, &np2cfg.cpu_feature_ecx),
|
||||
|
||||
PFMAX("FPU_TYPE", PFTYPE_UINT8, &np2cfg.fpu_type, 0), // FPU種類
|
||||
|
||||
|
||||
#if defined(SUPPORT_FAST_MEMORYCHECK)
|
||||
PFVAL("memckspd", PFTYPE_UINT8, &np2cfg.memcheckspeed),
|
||||
#endif
|
||||
|
||||
PFMAX("USERAM_D", PFTYPE_BOOL, &np2cfg.useram_d, 0), // EPSONでなくてもD0000h-DFFFFhをRAMに(ただしIDE BIOS D8000h-DBFFFhは駄目)
|
||||
|
||||
|
||||
// OS依存?
|
||||
PFVAL("keyboard", PFRO_KB, &np2oscfg.KEYBOARD),
|
||||
@ -702,6 +714,7 @@ static const PFTBL s_IniItems[] =
|
||||
PFVAL("toolwind", PFTYPE_BOOL, &np2oscfg.toolwin),
|
||||
PFVAL("keydispl", PFTYPE_BOOL, &np2oscfg.keydisp),
|
||||
PFVAL("skbdwind", PFTYPE_BOOL, &np2oscfg.skbdwin),
|
||||
PFVAL("I286SAVE", PFRO_BOOL, &np2oscfg.I286SAVE),
|
||||
PFVAL("jast_snd", PFTYPE_BOOL, &np2oscfg.jastsnd),
|
||||
PFVAL("useromeo", PFTYPE_BOOL, &np2oscfg.useromeo),
|
||||
PFVAL("thickfrm", PFTYPE_BOOL, &np2oscfg.thickframe),
|
||||
@ -712,7 +725,7 @@ static const PFTBL s_IniItems[] =
|
||||
PFVAL("fscrnmod", PFTYPE_HEX8, &np2oscfg.fscrnmod),
|
||||
|
||||
#if defined(SUPPORT_SCRN_DIRECT3D)
|
||||
PFVAL("D3D_IMODE", PFTYPE_UINT8, &np2oscfg.d3d_imode),
|
||||
PFVAL("D3D_IMODE", PFTYPE_UINT8, &np2oscfg.d3d_imode), // Direct3D 拡大縮小補間モード
|
||||
#endif
|
||||
|
||||
PFVAL("snddev_t", PFTYPE_UINT8, &np2oscfg.cSoundDeviceType),
|
||||
@ -723,7 +736,7 @@ static const PFTBL s_IniItems[] =
|
||||
#endif // defined(SUPPORT_VSTi)
|
||||
|
||||
PFVAL("EMUDDRAW", PFTYPE_BOOL, &np2oscfg.emuddraw), // 最近はEMULATIONONLYにした方速かったりする(特にピクセル操作する場合とか)
|
||||
PFVAL("DRAWTYPE", PFTYPE_UINT8, &np2oscfg.drawtype),
|
||||
PFVAL("DRAWTYPE", PFTYPE_UINT8, &np2oscfg.drawtype), // 画面レンダラ (0: DirectDraw, 1: reserved(DirecrDraw), 2: Direct3D)
|
||||
|
||||
PFVAL("DRAGDROP", PFRO_BOOL, &np2oscfg.dragdrop), // ドラッグアンドドロップサポート
|
||||
PFVAL("MAKELHDD", PFRO_BOOL, &np2oscfg.makelhdd), // 巨大HDDイメージ作成サポート
|
||||
@ -739,12 +752,11 @@ static const PFTBL s_IniItems[] =
|
||||
PFVAL("SCRN_MUL", PFTYPE_UINT8, &np2oscfg.scrn_mul), // 画面表示倍率(8が等倍)
|
||||
|
||||
PFVAL("MOUSE_NC", PFTYPE_BOOL, &np2oscfg.mouse_nc), // マウスキャプチャ無しコントロール
|
||||
|
||||
PFVAL("CPUSTABF", PFTYPE_UINT16, &np2oscfg.cpustabf), // クロック安定器適用限界時間(フレーム)
|
||||
|
||||
PFVAL("READONLY", PFRO_BOOL, &np2oscfg.readonly), // 変更を設定ファイルに書き込まない
|
||||
|
||||
PFVAL("I286SAVE", PFRO_BOOL, &np2oscfg.I286SAVE)
|
||||
PFVAL("TICKMODE", PFRO_UINT8, &np2oscfg.tickmode), // Tickカウンタのモードを強制的に設定する
|
||||
PFVAL("USEWHEEL", PFRO_BOOL, &np2oscfg.usewheel), // マウスホイールによる音量・マウス速度設定を使用する
|
||||
PFVAL("USE_MVOL", PFRO_BOOL, &np2oscfg.usemastervolume), // マスタボリューム設定を使用する
|
||||
};
|
||||
|
||||
//! .ini 拡張子
|
||||
|
@ -286,8 +286,8 @@ void xmenu_initialize(HMENU hMenu)
|
||||
EnableMenuItem(hMenu, IDM_WABOPT, MF_BYCOMMAND|MFS_GRAYED);
|
||||
#endif
|
||||
|
||||
#ifndef SUPPORT_PHYSICAL_CDDRV
|
||||
EnableMenuItem(hMenu, IDM_WABOPT, MF_BYCOMMAND|MFS_GRAYED);
|
||||
#ifndef SUPPORT_PCI
|
||||
EnableMenuItem(hMenu, IDM_PCIOPT, MF_BYCOMMAND|MFS_GRAYED);
|
||||
#endif
|
||||
|
||||
if (np2oscfg.I286SAVE)
|
||||
@ -459,4 +459,22 @@ void xmenu_update(HMENU hMenu)
|
||||
#if defined(SUPPORT_FAST_MEMORYCHECK)
|
||||
CheckMenuItem(hMenu, IDM_FASTMEMCHK, MF_BYCOMMAND | MFCHECK(np2cfg.memcheckspeed != 1));
|
||||
#endif
|
||||
|
||||
#if !defined(USE_FPU)
|
||||
EnableMenuItem(hMenu, IDM_FPU80, MF_GRAYED);
|
||||
EnableMenuItem(hMenu, IDM_FPU64, MF_GRAYED);
|
||||
EnableMenuItem(hMenu, IDM_FPU64INT, MF_GRAYED);
|
||||
#endif
|
||||
#if !defined(SUPPORT_NET)
|
||||
EnableMenuItem(hMenu, IDM_NETOPT, MF_GRAYED);
|
||||
#endif
|
||||
#if !defined(SUPPORT_WAB)
|
||||
EnableMenuItem(hMenu, IDM_WABOPT, MF_GRAYED);
|
||||
#endif
|
||||
#if !defined(SUPPORT_PCI)
|
||||
EnableMenuItem(hMenu, IDM_PCIOPT, MF_GRAYED);
|
||||
#endif
|
||||
#if !defined(SUPPORT_HOSTDRV)
|
||||
EnableMenuItem(hMenu, IDM_HOSTDRVOPT, MF_GRAYED);
|
||||
#endif
|
||||
}
|
||||
|
119
win9x/np2.cpp
119
win9x/np2.cpp
@ -96,6 +96,8 @@
|
||||
#include "Dbt.h"
|
||||
#endif
|
||||
|
||||
#include <process.h>
|
||||
|
||||
#ifdef BETA_RELEASE
|
||||
#define OPENING_WAIT 1500
|
||||
#endif
|
||||
@ -146,7 +148,7 @@ static TCHAR szClassName[] = _T("NP2-MainWindow");
|
||||
0, 0, 1, 0, 1, 1,
|
||||
0, 0,
|
||||
0, 8,
|
||||
0, 0, 0, TCMODE_DEFAULT, 0
|
||||
0, 0, 0, TCMODE_DEFAULT, 0, 1
|
||||
};
|
||||
|
||||
OEMCHAR fddfolder[MAX_PATH];
|
||||
@ -188,20 +190,75 @@ static int WM_QueryCancelAutoPlay;
|
||||
|
||||
// システムキーフック用
|
||||
#ifdef HOOK_SYSKEY
|
||||
static HANDLE np2_hThreadKeyHook = NULL; // キーフック用スレッド
|
||||
static int np2_hThreadKeyHookexit = 0; // スレッド終了フラグ
|
||||
static HWND np2_hThreadKeyHookhWnd = 0;
|
||||
LRESULT CALLBACK LowLevelKeyboardProc(INT nCode, WPARAM wParam, LPARAM lParam);
|
||||
HHOOK hHook = NULL;
|
||||
static void start_hook_systemey()
|
||||
LRESULT CALLBACK np2_ThreadFuncKeyHook_WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){
|
||||
switch(msg){
|
||||
case WM_CLOSE:
|
||||
if(!np2_hThreadKeyHookexit) return 0;
|
||||
break;
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
return 0;
|
||||
}
|
||||
return DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
}
|
||||
static unsigned int __stdcall np2_ThreadFuncKeyHook(LPVOID vdParam)
|
||||
{
|
||||
MSG msg;
|
||||
LPCTSTR wndclassname = _T("NP2 Key Hook");
|
||||
|
||||
WNDCLASSEX wcex ={sizeof(WNDCLASSEX), CS_HREDRAW | CS_VREDRAW, np2_ThreadFuncKeyHook_WndProc, 0, 0, g_hInstance, NULL, NULL, (HBRUSH)(COLOR_WINDOW), NULL, wndclassname, NULL};
|
||||
|
||||
if(!RegisterClassEx(&wcex)) return 0;
|
||||
|
||||
if(!(np2_hThreadKeyHookhWnd = CreateWindow(wndclassname, _T("NP2 Key Hook"), WS_POPUPWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, g_hInstance, NULL))) return 0;
|
||||
|
||||
ShowWindow( np2_hThreadKeyHookhWnd, SW_HIDE ); // 念のため
|
||||
|
||||
if(!hHook){
|
||||
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, g_hInstance, 0);
|
||||
}
|
||||
}
|
||||
static void stop_hook_systemey()
|
||||
{
|
||||
// メイン メッセージ ループ
|
||||
while( GetMessage(&msg, NULL, 0, 0) > 0 ) {
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
if(hHook){
|
||||
UnhookWindowsHookEx(hHook);
|
||||
hHook = NULL;
|
||||
}
|
||||
np2_hThreadKeyHookhWnd = NULL;
|
||||
np2_hThreadKeyHook = NULL;
|
||||
UnregisterClass(wndclassname, g_hInstance);
|
||||
return 0;
|
||||
}
|
||||
static void start_hook_systemkey()
|
||||
{
|
||||
unsigned int dwID;
|
||||
if(!np2_hThreadKeyHook){
|
||||
np2_hThreadKeyHook = (HANDLE)_beginthreadex(NULL, 0, np2_ThreadFuncKeyHook, NULL, 0, &dwID);
|
||||
}
|
||||
//if(!hHook){
|
||||
// hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, g_hInstance, 0);
|
||||
//}
|
||||
}
|
||||
static void stop_hook_systemkey()
|
||||
{
|
||||
if(np2_hThreadKeyHook && np2_hThreadKeyHookhWnd){
|
||||
np2_hThreadKeyHookexit = 1;
|
||||
SendMessage(np2_hThreadKeyHookhWnd , WM_CLOSE , 0 , 0);
|
||||
WaitForSingleObject(np2_hThreadKeyHook, INFINITE);
|
||||
np2_hThreadKeyHook = NULL;
|
||||
np2_hThreadKeyHookexit = 0;
|
||||
}
|
||||
//if(hHook){
|
||||
// UnhookWindowsHookEx(hHook);
|
||||
// hHook = NULL;
|
||||
//}
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -518,6 +575,7 @@ static void OpenSoundDevice(HWND hWnd)
|
||||
pSoundMng->SetPCMVolume(SOUND_PCMSEEK, np2cfg.MOTORVOL);
|
||||
pSoundMng->SetPCMVolume(SOUND_PCMSEEK1, np2cfg.MOTORVOL);
|
||||
pSoundMng->SetPCMVolume(SOUND_RELAY1, np2cfg.MOTORVOL);
|
||||
pSoundMng->SetMasterVolume(np2cfg.vol_master);
|
||||
}
|
||||
}
|
||||
|
||||
@ -663,7 +721,7 @@ static void OnCommand(HWND hWnd, WPARAM wParam)
|
||||
OpenSoundDevice(hWnd);
|
||||
}
|
||||
#ifdef HOOK_SYSKEY
|
||||
stop_hook_systemey();
|
||||
stop_hook_systemkey();
|
||||
#endif
|
||||
pccore_cfgupdate();
|
||||
pccore_reset();
|
||||
@ -672,7 +730,7 @@ static void OnCommand(HWND hWnd, WPARAM wParam)
|
||||
np2updatemenu();
|
||||
#endif
|
||||
#ifdef HOOK_SYSKEY
|
||||
start_hook_systemey();
|
||||
start_hook_systemkey();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
@ -1487,10 +1545,17 @@ static void OnCommand(HWND hWnd, WPARAM wParam)
|
||||
update |= SYS_UPDATECFG;
|
||||
break;
|
||||
|
||||
#ifdef HOOK_SYSKEY
|
||||
case IDM_SYSKHOOK:
|
||||
np2oscfg.syskhook = !np2oscfg.syskhook;
|
||||
if(np2oscfg.syskhook){
|
||||
start_hook_systemkey();
|
||||
}else{
|
||||
stop_hook_systemkey();
|
||||
}
|
||||
update |= SYS_UPDATECFG;
|
||||
break;
|
||||
#endif
|
||||
|
||||
case IDM_DISPCLOCK:
|
||||
np2oscfg.DISPCLK ^= 1;
|
||||
@ -1785,11 +1850,11 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
// Shiftキーが押下されていればリセット
|
||||
pccore_cfgupdate();
|
||||
#ifdef HOOK_SYSKEY
|
||||
stop_hook_systemey();
|
||||
stop_hook_systemkey();
|
||||
#endif
|
||||
pccore_reset();
|
||||
#ifdef HOOK_SYSKEY
|
||||
start_hook_systemey();
|
||||
start_hook_systemkey();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@ -2382,18 +2447,20 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
sysmng_updatecaption(SYS_UPDATECAPTION_MISC);
|
||||
tmrSysMngHide = SetTimer(hWnd, TMRSYSMNG_ID, 5000, SysMngHideTimerProc);
|
||||
}else{
|
||||
int cMaster = np2cfg.vol_master;
|
||||
cMaster += GET_WHEEL_DELTA_WPARAM(wParam) / WHEEL_DELTA * 5;
|
||||
if(cMaster < 0) cMaster = 0;
|
||||
if(cMaster > 100) cMaster = 100;
|
||||
if (np2cfg.vol_master != cMaster)
|
||||
{
|
||||
np2cfg.vol_master = cMaster;
|
||||
soundmng_setvolume(cMaster);
|
||||
if(np2oscfg.usemastervolume){
|
||||
int cMaster = np2cfg.vol_master;
|
||||
cMaster += GET_WHEEL_DELTA_WPARAM(wParam) / WHEEL_DELTA * 2;
|
||||
if(cMaster < 0) cMaster = 0;
|
||||
if(cMaster > 100) cMaster = 100;
|
||||
if (np2cfg.vol_master != cMaster)
|
||||
{
|
||||
np2cfg.vol_master = cMaster;
|
||||
soundmng_setvolume(cMaster);
|
||||
}
|
||||
sys_miscinfo.showvolume = 1;
|
||||
sysmng_updatecaption(SYS_UPDATECAPTION_MISC);
|
||||
tmrSysMngHide = SetTimer(hWnd, TMRSYSMNG_ID, 5000, SysMngHideTimerProc);
|
||||
}
|
||||
sys_miscinfo.showvolume = 1;
|
||||
sysmng_updatecaption(SYS_UPDATECAPTION_MISC);
|
||||
tmrSysMngHide = SetTimer(hWnd, TMRSYSMNG_ID, 5000, SysMngHideTimerProc);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -2439,11 +2506,11 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
case NP2CMD_RESET:
|
||||
pccore_cfgupdate();
|
||||
#ifdef HOOK_SYSKEY
|
||||
stop_hook_systemey();
|
||||
stop_hook_systemkey();
|
||||
#endif
|
||||
pccore_reset();
|
||||
#ifdef HOOK_SYSKEY
|
||||
start_hook_systemey();
|
||||
start_hook_systemkey();
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
@ -2828,7 +2895,7 @@ void loadNP2INI(const OEMCHAR *fname){
|
||||
#endif
|
||||
|
||||
#ifdef HOOK_SYSKEY
|
||||
stop_hook_systemey();
|
||||
stop_hook_systemkey();
|
||||
#endif
|
||||
|
||||
LPTSTR lpFilenameBuf = (LPTSTR)malloc((_tcslen(fname)+1)*sizeof(TCHAR));
|
||||
@ -3080,7 +3147,7 @@ void loadNP2INI(const OEMCHAR *fname){
|
||||
sysmng_updatecaption(SYS_UPDATECAPTION_ALL);
|
||||
|
||||
#ifdef HOOK_SYSKEY
|
||||
start_hook_systemey();
|
||||
start_hook_systemkey();
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -3394,7 +3461,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,
|
||||
sysmng_updatecaption(SYS_UPDATECAPTION_ALL);
|
||||
|
||||
#ifdef HOOK_SYSKEY
|
||||
start_hook_systemey();
|
||||
start_hook_systemkey();
|
||||
#endif
|
||||
|
||||
lateframecount = 0;
|
||||
@ -3485,7 +3552,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,
|
||||
}
|
||||
|
||||
#ifdef HOOK_SYSKEY
|
||||
stop_hook_systemey();
|
||||
stop_hook_systemkey();
|
||||
#endif
|
||||
|
||||
// 画面表示倍率を保存
|
||||
|
@ -110,6 +110,7 @@ typedef struct {
|
||||
UINT8 readonly; // No save changed settings
|
||||
UINT8 usewheel; // Use mouse wheel
|
||||
UINT8 tickmode; // Force Set Tick Counter Mode
|
||||
UINT8 usemastervolume; // Use MAster Volume
|
||||
} NP2OSCFG;
|
||||
|
||||
|
||||
|
@ -96,7 +96,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions);SUPPORT_KAI_IMAGES</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;SUPPORT_LARGE_HDD;SUPPORT_NET;SUPPORT_LGY98;SUPPORT_WAB;SUPPORT_CL_GD5430;SUPPORT_VPCVHD;SUPPORT_KAI_IMAGES;SUPPORT_NVL_IMAGES;SUPPORT_FMGEN;SUPPORT_SOUND_SB16;SUPPORT_GPIB;SUPPORT_SCRN_DIRECT3D;HOOK_SYSKEY;ALLOW_MULTIRUN;USE_MAME;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>.\;.\x86;..\;..\common;..\fdd;..\i286x;..\mem;..\io;..\cbus;..\network;..\vram;..\sound;..\generic;..\zlib;\VST_SDK</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@ -113,7 +113,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;SUPPORT_LARGE_HDD;SUPPORT_NET;SUPPORT_LGY98;SUPPORT_WAB;SUPPORT_CL_GD5430;SUPPORT_VPCVHD;SUPPORT_KAI_IMAGES;SUPPORT_NVL_IMAGES;SUPPORT_FMGEN;SUPPORT_SOUND_SB16;SUPPORT_GPIB;SUPPORT_SCRN_DIRECT3D;HOOK_SYSKEY;ALLOW_MULTIRUN;USE_MAME;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>.\;.\x64;..\;..\common;..\fdd;..\i286c;..\mem;..\io;..\cbus;..\network;..\vram;..\sound;..\generic;..\zlib;\VST_SDK</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@ -139,7 +139,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;SUPPORT_KAI_IMAGES;ALLOW_MULTIRUN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;SUPPORT_LARGE_HDD;SUPPORT_NET;SUPPORT_LGY98;SUPPORT_WAB;SUPPORT_CL_GD5430;SUPPORT_VPCVHD;SUPPORT_KAI_IMAGES;SUPPORT_NVL_IMAGES;SUPPORT_FMGEN;SUPPORT_SOUND_SB16;SUPPORT_GPIB;SUPPORT_SCRN_DIRECT3D;HOOK_SYSKEY;ALLOW_MULTIRUN;USE_MAME;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>.\;.\x86;..\;..\common;..\fdd;..\i286x;..\mem;..\io;..\cbus;..\network;..\vram;..\sound;..\generic;..\zlib;\VST_SDK</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@ -160,7 +160,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;SUPPORT_KAI_IMAGES;SUPPORT_WAB;SUPPORT_CL_GD5430;SUPPORT_NET;SUPPORT_LGY98;SUPPORT_VPCVHD;HOOK_SYSKEY;ALLOW_MULTIRUN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;SUPPORT_LARGE_HDD;SUPPORT_NET;SUPPORT_LGY98;SUPPORT_WAB;SUPPORT_CL_GD5430;SUPPORT_VPCVHD;SUPPORT_KAI_IMAGES;SUPPORT_NVL_IMAGES;SUPPORT_FMGEN;SUPPORT_SOUND_SB16;SUPPORT_GPIB;SUPPORT_SCRN_DIRECT3D;HOOK_SYSKEY;ALLOW_MULTIRUN;USE_MAME;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>.\;.\x64;..\;..\common;..\fdd;..\i286c;..\mem;..\io;..\cbus;..\network;..\vram;..\sound;..\generic;..\zlib;\VST_SDK</AdditionalIncludeDirectories>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
</ClCompile>
|
||||
@ -202,11 +202,14 @@
|
||||
<ClCompile Include="..\cbus\board26k.c" />
|
||||
<ClCompile Include="..\cbus\board86.c" />
|
||||
<ClCompile Include="..\cbus\boardpx.c" />
|
||||
<ClCompile Include="..\cbus\boardsb16.c" />
|
||||
<ClCompile Include="..\cbus\boardso.c" />
|
||||
<ClCompile Include="..\cbus\boardspb.c" />
|
||||
<ClCompile Include="..\cbus\boardx2.c" />
|
||||
<ClCompile Include="..\cbus\cbuscore.c" />
|
||||
<ClCompile Include="..\cbus\cs4231io.c" />
|
||||
<ClCompile Include="..\cbus\ct1741io.c" />
|
||||
<ClCompile Include="..\cbus\ct1745io.c" />
|
||||
<ClCompile Include="..\cbus\ideio.c" />
|
||||
<ClCompile Include="..\cbus\mpu98ii.c" />
|
||||
<ClCompile Include="..\cbus\pc9861k.c" />
|
||||
@ -257,6 +260,7 @@
|
||||
<ClCompile Include="..\fdd\sxsi.c" />
|
||||
<ClCompile Include="..\fdd\sxsicd.c" />
|
||||
<ClCompile Include="..\fdd\sxsihdd.c" />
|
||||
<ClCompile Include="..\fdd\sxsihdd_nvl.c" />
|
||||
<ClCompile Include="..\font\font.c" />
|
||||
<ClCompile Include="..\font\fontdata.c" />
|
||||
<ClCompile Include="..\font\fontfm7.c" />
|
||||
@ -596,11 +600,14 @@
|
||||
<ClInclude Include="..\cbus\board26k.h" />
|
||||
<ClInclude Include="..\cbus\board86.h" />
|
||||
<ClInclude Include="..\cbus\boardpx.h" />
|
||||
<ClInclude Include="..\cbus\boardsb16.h" />
|
||||
<ClInclude Include="..\cbus\boardso.h" />
|
||||
<ClInclude Include="..\cbus\boardspb.h" />
|
||||
<ClInclude Include="..\cbus\boardx2.h" />
|
||||
<ClInclude Include="..\cbus\cbuscore.h" />
|
||||
<ClInclude Include="..\cbus\cs4231io.h" />
|
||||
<ClInclude Include="..\cbus\ct1741io.h" />
|
||||
<ClInclude Include="..\cbus\ct1745io.h" />
|
||||
<ClInclude Include="..\cbus\ideio.h" />
|
||||
<ClInclude Include="..\cbus\mpu98ii.h" />
|
||||
<ClInclude Include="..\cbus\pc9861k.h" />
|
||||
@ -724,7 +731,24 @@
|
||||
<ClInclude Include="..\sound\beep.h" />
|
||||
<ClInclude Include="..\sound\cs4231.h" />
|
||||
<ClInclude Include="..\sound\fmboard.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_diag.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_file.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_fmgen.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_fmgeninl.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_fmgwrap.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_fmtimer.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_headers.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_misc.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_opm.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_opna.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_psg.h" />
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_types.h" />
|
||||
<ClInclude Include="..\sound\getsnd\getsnd.h" />
|
||||
<ClInclude Include="..\sound\mame\driver.h" />
|
||||
<ClInclude Include="..\sound\mame\fm.h" />
|
||||
<ClInclude Include="..\sound\mame\fmopl.h" />
|
||||
<ClInclude Include="..\sound\mame\ymdeltat.h" />
|
||||
<ClInclude Include="..\sound\mame\ymf262.h" />
|
||||
<ClInclude Include="..\sound\opl3.h" />
|
||||
<ClInclude Include="..\sound\oplgen.h" />
|
||||
<ClInclude Include="..\sound\oplgencfg.h" />
|
||||
|
@ -247,6 +247,12 @@
|
||||
<Filter Include="ソース ファイル\sound\mame">
|
||||
<UniqueIdentifier>{6733dfde-dbb2-424e-971c-aa456d15000c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ヘッダー ファイル\sound\fmgen">
|
||||
<UniqueIdentifier>{1fbae04d-6163-4fc0-99e3-af4a99fad012}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ヘッダー ファイル\sound\mame">
|
||||
<UniqueIdentifier>{69e55071-1b40-4cc2-928d-d45bc986a5af}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\calendar.c">
|
||||
@ -1182,6 +1188,18 @@
|
||||
<ClCompile Include="scrnmng_d3d.cpp">
|
||||
<Filter>ソース ファイル\win9x</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\fdd\sxsihdd_nvl.c">
|
||||
<Filter>ソース ファイル\fdd</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\cbus\boardsb16.c">
|
||||
<Filter>ソース ファイル\cbus</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\cbus\ct1741io.c">
|
||||
<Filter>ソース ファイル\cbus</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\cbus\ct1745io.c">
|
||||
<Filter>ソース ファイル\cbus</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\calendar.h">
|
||||
@ -2021,6 +2039,66 @@
|
||||
<ClInclude Include="scrnmng_d3d.h">
|
||||
<Filter>ヘッダー ファイル\win9x</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\mame\driver.h">
|
||||
<Filter>ヘッダー ファイル\sound\mame</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\mame\fm.h">
|
||||
<Filter>ヘッダー ファイル\sound\mame</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\mame\fmopl.h">
|
||||
<Filter>ヘッダー ファイル\sound\mame</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\mame\ymdeltat.h">
|
||||
<Filter>ヘッダー ファイル\sound\mame</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\mame\ymf262.h">
|
||||
<Filter>ヘッダー ファイル\sound\mame</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_diag.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_file.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_fmgen.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_fmgeninl.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_fmgwrap.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_fmtimer.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_headers.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_misc.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_opm.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_opna.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_psg.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\sound\fmgen\fmgen_types.h">
|
||||
<Filter>ヘッダー ファイル\sound\fmgen</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\cbus\boardsb16.h">
|
||||
<Filter>ヘッダー ファイル\cbus</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\cbus\ct1741io.h">
|
||||
<Filter>ヘッダー ファイル\cbus</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\cbus\ct1745io.h">
|
||||
<Filter>ヘッダー ファイル\cbus</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<NASM Include="..\i286x\cpumem.x86">
|
||||
|
@ -413,6 +413,9 @@
|
||||
#define IDS_GD5430_GA98NBIC 30620
|
||||
#define IDS_GD5430_GA98NBII 30621
|
||||
#define IDS_GD5430_GA98NBIV 30622
|
||||
#define IDS_GD5430_AUTO_XE_G1_PCI 30690
|
||||
#define IDS_GD5430_AUTO_XE_G2_PCI 30691
|
||||
#define IDS_GD5430_AUTO_XE_G4_PCI 30692
|
||||
#define IDS_GD5430_AUTO_XE_WA_PCI 30693
|
||||
#define IDS_GD5430_AUTO_XE_W4_PCI 30694
|
||||
#define IDS_GD5430_AUTO_XE_WS_PCI 30695
|
||||
@ -682,9 +685,6 @@
|
||||
#define IDM_MEM646 40669
|
||||
#define IDM_MEM1206 40670
|
||||
#define IDM_MEM2306 49671
|
||||
#define IDM_FPU80 49680
|
||||
#define IDM_FPU64 49681
|
||||
#define IDM_FPU64INT 49682
|
||||
#define IDM_MOUSE 40671
|
||||
#define IDM_SERIAL1 40672
|
||||
#define IDM_MPUPC98 40673
|
||||
@ -694,6 +694,9 @@
|
||||
#define IDM_WABOPT 40677
|
||||
#define IDM_HOSTDRVOPT 40678
|
||||
#define IDM_PCIOPT 40679
|
||||
#define IDM_FPU80 49680
|
||||
#define IDM_FPU64 49681
|
||||
#define IDM_FPU64INT 49682
|
||||
#define IDM_MOUSENC 40689
|
||||
#define IDM_MOUSERAW 40690
|
||||
#define IDM_MOUSE30X 40691
|
||||
|
@ -550,7 +550,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "LGY-98"
|
||||
FONT 9, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
CONTROL "Enabled",IDC_LGY98ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,40,10
|
||||
CONTROL "Enable",IDC_LGY98ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,40,10
|
||||
LTEXT "I/O port",IDC_STATIC,8,26,30,8
|
||||
COMBOBOX IDC_LGY98IO,40,24,40,52,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Interrupt",IDC_STATIC,104,26,30,8
|
||||
@ -573,7 +573,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "CL-GD5430"
|
||||
FONT 9, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
CONTROL "Enabled",IDC_GD5430ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,40,10
|
||||
CONTROL "Enable",IDC_GD5430ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,40,10
|
||||
LTEXT "Type",IDC_STATIC,8,26,30,8
|
||||
COMBOBOX IDC_GD5430TYPE,40,24,136,52,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
CONTROL "Use Fake Hardware Cursor",IDC_GD5430FAKECURSOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,44,100,10
|
||||
@ -616,7 +616,7 @@ CAPTION "Hostdrv Configure"
|
||||
CLASS "np2dialog"
|
||||
FONT 9, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
CONTROL "Enabled",IDC_HOSTDRVENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,140,10
|
||||
CONTROL "Enable",IDC_HOSTDRVENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,140,10
|
||||
LTEXT "Shared Directory",IDC_STATIC,8,23,76,8
|
||||
COMBOBOX IDC_HOSTDRVDIR,8,33,130,12, CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "Browse...",IDC_HOSTDRVBROWSE,140,32,44,14
|
||||
@ -633,7 +633,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "General"
|
||||
FONT 9, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
CONTROL "Enabled",IDC_PCIENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,140,10
|
||||
CONTROL "Enable",IDC_PCIENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,140,10
|
||||
LTEXT "PCMC Type",IDC_STATIC,8,26,30,8
|
||||
COMBOBOX IDC_PCIPCMCTYPE,40,24,136,52,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
CONTROL "Use BIOS32 (not recommended)",IDC_PCIBIOS32,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,44,140,10
|
||||
@ -1577,6 +1577,9 @@ BEGIN
|
||||
IDS_GD5430_GA98NBII "I-O DATA GA-98NBII"
|
||||
IDS_GD5430_GA98NBIV "I-O DATA GA-98NBIV"
|
||||
IDS_GD5430_96 "PC-9801-96(PC-9801B3-E02)"
|
||||
IDS_GD5430_AUTO_XE_G1_PCI "Auto Select(Xe10, GA-98NBI/C, PCI)"
|
||||
IDS_GD5430_AUTO_XE_G2_PCI "Auto Select(Xe10, GA-98NBII, PCI)"
|
||||
IDS_GD5430_AUTO_XE_G4_PCI "Auto Select(Xe10, GA-98NBIV, PCI)"
|
||||
IDS_GD5430_AUTO_XE_WA_PCI "Auto Select(Xe10, WAB-S, PCI)"
|
||||
IDS_GD5430_AUTO_XE_WS_PCI "Auto Select(Xe10, WSN-A2F, PCI)"
|
||||
IDS_GD5430_AUTO_XE_W4_PCI "Auto Select(Xe10, WSN-A4F, PCI)"
|
||||
|
@ -25,8 +25,8 @@ IDR_MANIFEST IRT_MANIFEST MOVEABLE PURE "..\\np2.mnf"
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 0,8,6,47
|
||||
PRODUCTVERSION 0,8,6,47
|
||||
FILEVERSION 0,8,6,48
|
||||
PRODUCTVERSION 0,8,6,48
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
@ -42,10 +42,10 @@ BEGIN
|
||||
BLOCK "040904e4"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "\0"
|
||||
VALUE "FileVersion", "0, 8, 6, 47\0"
|
||||
VALUE "FileVersion", "0, 8, 6, 48\0"
|
||||
VALUE "LegalCopyright", "Nekosan development team\0"
|
||||
|
||||
VALUE "ProductVersion", "0, 8, 6, 47\0"
|
||||
VALUE "ProductVersion", "0, 8, 6, 48\0"
|
||||
#ifdef _USRDLL
|
||||
VALUE "FileDescription", "PC-98x1series emulator resource file\0"
|
||||
VALUE "ProductName", "Neko Project II resource file\0"
|
||||
|
@ -543,7 +543,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "LGY-98"
|
||||
FONT 9, "MS Pゴシック", 0, 0, 0x0
|
||||
BEGIN
|
||||
CONTROL "Enabled",IDC_LGY98ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,40,10
|
||||
CONTROL "Enable",IDC_LGY98ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,40,10
|
||||
LTEXT "I/O port",IDC_STATIC,8,26,30,8
|
||||
COMBOBOX IDC_LGY98IO,40,24,40,52,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Interrupt",IDC_STATIC,104,26,30,8
|
||||
@ -566,7 +566,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "CL-GD54xx"
|
||||
FONT 9, "MS Pゴシック", 0, 0, 0x0
|
||||
BEGIN
|
||||
CONTROL "Enabled",IDC_GD5430ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,40,10
|
||||
CONTROL "Enable",IDC_GD5430ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,40,10
|
||||
LTEXT "Type",IDC_STATIC,8,26,30,8
|
||||
COMBOBOX IDC_GD5430TYPE,40,24,136,52,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
CONTROL "Use Fake Hardware Cursor",IDC_GD5430FAKECURSOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,44,100,10
|
||||
@ -609,7 +609,7 @@ CAPTION "Hostdrv Configure"
|
||||
CLASS "np2dialog"
|
||||
FONT 9, "MS Pゴシック", 0, 0, 0x0
|
||||
BEGIN
|
||||
CONTROL "Enabled",IDC_HOSTDRVENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,140,10
|
||||
CONTROL "Enable",IDC_HOSTDRVENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,140,10
|
||||
LTEXT "Shared Directory",IDC_STATIC,8,23,76,8
|
||||
COMBOBOX IDC_HOSTDRVDIR,8,33,130,12, CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "Browse...",IDC_HOSTDRVBROWSE,140,32,44,14
|
||||
@ -626,7 +626,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "General"
|
||||
FONT 9, "MS Pゴシック", 0, 0, 0x0
|
||||
BEGIN
|
||||
CONTROL "Enabled",IDC_PCIENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,140,10
|
||||
CONTROL "Enable",IDC_PCIENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,140,10
|
||||
LTEXT "PCMC Type",IDC_STATIC,8,26,30,8
|
||||
COMBOBOX IDC_PCIPCMCTYPE,40,24,136,52,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
CONTROL "Use BIOS32 (not recommended)",IDC_PCIBIOS32,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,44,140,10
|
||||
@ -1081,7 +1081,7 @@ BEGIN
|
||||
MENUITEM "&Mouse rapid", IDM_MSRAPID
|
||||
MENUITEM "&ITF work", IDM_ITFWORK
|
||||
// MENUITEM "Fix &MMTimer", IDM_TIMERFIX
|
||||
MENUITEM "&Skip over 16MB memcheck", IDM_SKIP16MEMCHK
|
||||
// MENUITEM "&Skip over 16MB memcheck", IDM_SKIP16MEMCHK
|
||||
MENUITEM "Fast m&emcheck", IDM_FASTMEMCHK
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Help...", IDM_HELP
|
||||
@ -1582,6 +1582,9 @@ BEGIN
|
||||
IDS_GD5430_GA98NBII "I-O DATA GA-98NBII"
|
||||
IDS_GD5430_GA98NBIV "I-O DATA GA-98NBIV"
|
||||
IDS_GD5430_96 "PC-9801-96(PC-9801B3-E02)"
|
||||
IDS_GD5430_AUTO_XE_G1_PCI "Auto Select(Xe10, GA-98NBI/C, PCI)"
|
||||
IDS_GD5430_AUTO_XE_G2_PCI "Auto Select(Xe10, GA-98NBII, PCI)"
|
||||
IDS_GD5430_AUTO_XE_G4_PCI "Auto Select(Xe10, GA-98NBIV, PCI)"
|
||||
IDS_GD5430_AUTO_XE_WA_PCI "Auto Select(Xe10, WAB-S, PCI)"
|
||||
IDS_GD5430_AUTO_XE_WS_PCI "Auto Select(Xe10, WSN-A2F, PCI)"
|
||||
IDS_GD5430_AUTO_XE_W4_PCI "Auto Select(Xe10, WSN-A4F, PCI)"
|
||||
|
@ -25,8 +25,8 @@ IDR_MANIFEST IRT_MANIFEST MOVEABLE PURE "..\\np2.mnf"
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 0,8,6,46
|
||||
PRODUCTVERSION 0,8,6,46
|
||||
FILEVERSION 0,8,6,48
|
||||
PRODUCTVERSION 0,8,6,48
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
@ -42,10 +42,10 @@ BEGIN
|
||||
BLOCK "041103a4"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "\0"
|
||||
VALUE "FileVersion", "0, 8, 6, 46\0"
|
||||
VALUE "FileVersion", "0, 8, 6, 48\0"
|
||||
VALUE "LegalCopyright", "ねこさん開発ちーむ\0"
|
||||
|
||||
VALUE "ProductVersion", "0, 8, 6, 46\0"
|
||||
VALUE "ProductVersion", "0, 8, 6, 48\0"
|
||||
#ifdef _USRDLL
|
||||
VALUE "FileDescription", "PC-98x1series emulator resource file\0"
|
||||
VALUE "ProductName", "Neko Project II resource file\0"
|
||||
|
Binary file not shown.
@ -1579,6 +1579,9 @@ BEGIN
|
||||
IDS_GD5430_GA98NBII "I-O DATA GA-98NBII"
|
||||
IDS_GD5430_GA98NBIV "I-O DATA GA-98NBIV"
|
||||
IDS_GD5430_96 "PC-9801-96(PC-9801B3-E02)"
|
||||
IDS_GD5430_AUTO_XE_G1_PCI "Ž©“®‘I‘ð(Xe10, GA-98NBI/C, PCI)"
|
||||
IDS_GD5430_AUTO_XE_G2_PCI "Ž©“®‘I‘ð(Xe10, GA-98NBII, PCI)"
|
||||
IDS_GD5430_AUTO_XE_G4_PCI "Ž©“®‘I‘ð(Xe10, GA-98NBIV, PCI)"
|
||||
IDS_GD5430_AUTO_XE_WA_PCI "Ž©“®‘I‘ð(Xe10, WAB-S, PCI)"
|
||||
IDS_GD5430_AUTO_XE_WS_PCI "Ž©“®‘I‘ð(Xe10, WSN-A2F, PCI)"
|
||||
IDS_GD5430_AUTO_XE_W4_PCI "Ž©“®‘I‘ð(Xe10, WSN-A4F, PCI)"
|
||||
|
@ -256,6 +256,19 @@ void scrnmng_setheight(int posy, int height) {
|
||||
}
|
||||
}
|
||||
|
||||
void scrnmng_setsize(int posx, int posy, int width, int height) {
|
||||
|
||||
#ifdef SUPPORT_SCRN_DIRECT3D
|
||||
if(scrnmng_current_drawtype==DRAWTYPE_INVALID) return;
|
||||
if(scrnmng_current_drawtype==DRAWTYPE_DIRECT3D){
|
||||
scrnmngD3D_setsize(posx, posy, width, height);
|
||||
}else
|
||||
#endif
|
||||
{
|
||||
scrnmngDD_setsize(posx, posy, width, height);
|
||||
}
|
||||
}
|
||||
|
||||
const SCRNSURF *scrnmng_surflock(void) {
|
||||
|
||||
#ifdef SUPPORT_SCRN_DIRECT3D
|
||||
|
@ -92,6 +92,7 @@ void scrnmng_destroy(void);
|
||||
void scrnmng_setwidth(int posx, int width);
|
||||
void scrnmng_setextend(int extend);
|
||||
void scrnmng_setheight(int posy, int height);
|
||||
void scrnmng_setsize(int posx, int posy, int width, int height);
|
||||
#define scrnmng_setbpp(commendablebpp)
|
||||
const SCRNSURF *scrnmng_surflock(void);
|
||||
void scrnmng_surfunlock(const SCRNSURF *surf);
|
||||
|
@ -788,9 +788,12 @@ BRESULT scrnmngD3D_create(UINT8 scrnmode) {
|
||||
height = np2oscfg.fscrn_cy;
|
||||
#ifdef SUPPORT_WAB
|
||||
if(!np2wabwnd.multiwindow && (np2wab.relay&0x3)){
|
||||
if(np2wab.realWidth>=640 && np2wab.realHeight>=400){
|
||||
width = np2wab.realWidth;
|
||||
height = np2wab.realHeight;
|
||||
if(scrnstat.width>=640 && scrnstat.height>=400){
|
||||
//if(np2wab.realWidth>=640 && np2wab.realHeight>=400){
|
||||
//width = np2wab.realWidth;
|
||||
//height = np2wab.realHeight;
|
||||
width = scrnstat.width;//np2wab.realWidth;
|
||||
height = scrnstat.height;//np2wab.realHeight;
|
||||
}else{
|
||||
width = 640;
|
||||
height = 480;
|
||||
@ -868,10 +871,11 @@ BRESULT scrnmngD3D_create(UINT8 scrnmode) {
|
||||
RECT crect;
|
||||
|
||||
#ifdef SUPPORT_WAB
|
||||
if(!np2wabwnd.multiwindow && (np2wab.relay&0x3)!=0 && np2wab.realWidth>=640 && np2wab.realHeight>=400){
|
||||
//if(!np2wabwnd.multiwindow && (np2wab.relay&0x3)!=0 && np2wab.realWidth>=640 && np2wab.realHeight>=400){
|
||||
if(!np2wabwnd.multiwindow && (np2wab.relay&0x3)!=0 && scrnstat.width>=640 && scrnstat.height>=400){
|
||||
// 実サイズに
|
||||
width = bufwidth = np2wab.realWidth;
|
||||
height = bufheight = np2wab.realHeight;
|
||||
width = bufwidth = scrnstat.width;//np2wab.realWidth;
|
||||
height = bufheight = scrnstat.height;//np2wab.realHeight;
|
||||
bufwidth++; // +1しないと駄目らしい
|
||||
bufheight++; // +1しないと駄目らしい
|
||||
}else{
|
||||
@ -1182,6 +1186,33 @@ void scrnmngD3D_setheight(int posy, int height) {
|
||||
}
|
||||
}
|
||||
|
||||
void scrnmngD3D_setsize(int posx, int posy, int width, int height) {
|
||||
|
||||
if(scrnstat.width != width || scrnstat.height != height){
|
||||
scrnstat.width = width;
|
||||
scrnstat.height = height;
|
||||
if(d3d.d3dbacksurf){
|
||||
if (d3d.scrnmode & SCRNMODE_FULLSCREEN) {
|
||||
renewalclientsize(TRUE);
|
||||
update_backbuffer2size();
|
||||
clearoutfullscreen();
|
||||
}else{
|
||||
DEVMODE devmode;
|
||||
if (EnumDisplaySettings(NULL, ENUM_REGISTRY_SETTINGS, &devmode)) {
|
||||
while (((width * scrnstat.multiple) >> 3) >= (int)devmode.dmPelsWidth-32){
|
||||
scrnstat.multiple--;
|
||||
if(scrnstat.multiple==1) break;
|
||||
}
|
||||
}
|
||||
d3d_enter_criticalsection();
|
||||
scrnmngD3D_destroy();
|
||||
scrnmngD3D_create(g_scrnmode);
|
||||
d3d_leave_criticalsection();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const SCRNSURF *scrnmngD3D_surflock(void) {
|
||||
|
||||
D3DLOCKED_RECT destrect;
|
||||
|
@ -11,6 +11,7 @@ void scrnmngD3D_destroy(void);
|
||||
void scrnmngD3D_setwidth(int posx, int width);
|
||||
void scrnmngD3D_setextend(int extend);
|
||||
void scrnmngD3D_setheight(int posy, int height);
|
||||
void scrnmngD3D_setsize(int posx, int posy, int width, int height);
|
||||
#define scrnmngD3D_setbpp(commendablebpp)
|
||||
const SCRNSURF *scrnmngD3D_surflock(void);
|
||||
void scrnmngD3D_surfunlock(const SCRNSURF *surf);
|
||||
|
@ -972,6 +972,13 @@ void scrnmngDD_setheight(int posy, int height) {
|
||||
renewalclientsize(TRUE);
|
||||
}
|
||||
|
||||
void scrnmngDD_setsize(int posx, int posy, int width, int height) {
|
||||
|
||||
scrnstat.width = width;
|
||||
scrnstat.height = height;
|
||||
renewalclientsize(TRUE);
|
||||
}
|
||||
|
||||
const SCRNSURF *scrnmngDD_surflock(void) {
|
||||
|
||||
DDSURFACEDESC destscrn;
|
||||
|
@ -9,6 +9,7 @@ void scrnmngDD_destroy(void);
|
||||
void scrnmngDD_setwidth(int posx, int width);
|
||||
void scrnmngDD_setextend(int extend);
|
||||
void scrnmngDD_setheight(int posy, int height);
|
||||
void scrnmngDD_setsize(int posx, int posy, int width, int height);
|
||||
#define scrnmngDD_setbpp(commendablebpp)
|
||||
const SCRNSURF *scrnmngDD_surflock(void);
|
||||
void scrnmngDD_surfunlock(const SCRNSURF *surf);
|
||||
|
@ -58,6 +58,7 @@ void CSoundMng::Initialize()
|
||||
::CoInitializeEx(NULL, COINIT_MULTITHREADED);
|
||||
#endif // defined(SUPPORT_ASIO) || defined(SUPPORT_WASAPI)
|
||||
|
||||
CSoundDeviceDSound3::s_mastervol_available = np2oscfg.usemastervolume ? true : false;
|
||||
CSoundDeviceDSound3::Initialize();
|
||||
#if defined(SUPPORT_WASAPI)
|
||||
CSoundDeviceWasapi::Initialize();
|
||||
|
@ -20,11 +20,15 @@
|
||||
#define DSBVOLUME_MIN (-10000) /*!< ヴォリューム最小値 */
|
||||
#endif
|
||||
|
||||
#define NP2VOLUME2DSDB(a) ((LONG)(10*log10((a)/100.0f)*100))
|
||||
#define NP2VOLUME2DSDB(a) ((LONG)(10*log((a)/100.0f)/log(2.0)*100))
|
||||
|
||||
//! デバイス リスト
|
||||
std::vector<DSound3Device> CSoundDeviceDSound3::sm_devices;
|
||||
|
||||
//! マスタボリューム使用可能?
|
||||
bool CSoundDeviceDSound3::s_mastervol_available = true;
|
||||
|
||||
|
||||
/**
|
||||
* @brief RIFF chunk
|
||||
*/
|
||||
@ -206,7 +210,7 @@ UINT CSoundDeviceDSound3::CreateStream(UINT nSamplingRate, UINT nChannels, UINT
|
||||
DSBUFFERDESC dsbdesc;
|
||||
ZeroMemory(&dsbdesc, sizeof(dsbdesc));
|
||||
dsbdesc.dwSize = sizeof(dsbdesc);
|
||||
dsbdesc.dwFlags = DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME |
|
||||
dsbdesc.dwFlags = DSBCAPS_CTRLPAN | (s_mastervol_available ? DSBCAPS_CTRLVOLUME : 0) |
|
||||
DSBCAPS_CTRLFREQUENCY | DSBCAPS_CTRLPOSITIONNOTIFY |
|
||||
DSBCAPS_STICKYFOCUS | DSBCAPS_GETCURRENTPOSITION2;
|
||||
dsbdesc.lpwfxFormat = reinterpret_cast<LPWAVEFORMATEX>(&pcmwf);
|
||||
@ -344,27 +348,33 @@ void CSoundDeviceDSound3::SetMasterVolume(int nVolume)
|
||||
{
|
||||
|
||||
m_mastervolume = nVolume;
|
||||
if (m_lpDSStream)
|
||||
{
|
||||
if(m_mastervolume == 0){
|
||||
m_lpDSStream->SetVolume(DSBVOLUME_MIN);
|
||||
}else{
|
||||
m_lpDSStream->SetVolume(NP2VOLUME2DSDB(m_mastervolume));
|
||||
if(s_mastervol_available){
|
||||
if (m_lpDSStream)
|
||||
{
|
||||
if(m_mastervolume == 0){
|
||||
m_lpDSStream->SetVolume(DSBVOLUME_MIN);
|
||||
}else if(m_mastervolume == 100){
|
||||
m_lpDSStream->SetVolume(DSBVOLUME_MAX);
|
||||
}else{
|
||||
m_lpDSStream->SetVolume(NP2VOLUME2DSDB(m_mastervolume));
|
||||
}
|
||||
}
|
||||
for( auto it = m_pcm.begin(); it != m_pcm.end() ; ++it ) {
|
||||
LPDIRECTSOUNDBUFFER lpDSBuffer = it->second;
|
||||
int volume = 100;
|
||||
if(it->first < PCMVOLUME_MAXCOUNT){
|
||||
volume = m_pcmvolume[it->first];
|
||||
}
|
||||
volume *= m_mastervolume;
|
||||
if(volume == 0){
|
||||
lpDSBuffer->SetVolume(DSBVOLUME_MIN);
|
||||
}else if(volume == 100){
|
||||
lpDSBuffer->SetVolume(DSBVOLUME_MAX);
|
||||
}else{
|
||||
lpDSBuffer->SetVolume(NP2VOLUME2DSDB(volume));
|
||||
}
|
||||
}
|
||||
}
|
||||
for( auto it = m_pcm.begin(); it != m_pcm.end() ; ++it ) {
|
||||
LPDIRECTSOUNDBUFFER lpDSBuffer = it->second;
|
||||
int volume = 100;
|
||||
if(it->first < PCMVOLUME_MAXCOUNT){
|
||||
volume = m_pcmvolume[it->first];
|
||||
}
|
||||
volume *= m_mastervolume;
|
||||
if(volume == 0){
|
||||
lpDSBuffer->SetVolume(DSBVOLUME_MIN);
|
||||
}else{
|
||||
lpDSBuffer->SetVolume(NP2VOLUME2DSDB(volume));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -550,7 +560,7 @@ LPDIRECTSOUNDBUFFER CSoundDeviceDSound3::CreateWaveBuffer(LPCTSTR lpFilename)
|
||||
DSBUFFERDESC dsbdesc;
|
||||
ZeroMemory(&dsbdesc, sizeof(dsbdesc));
|
||||
dsbdesc.dwSize = sizeof(dsbdesc);
|
||||
dsbdesc.dwFlags = DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLFREQUENCY | DSBCAPS_STATIC | DSBCAPS_STICKYFOCUS | DSBCAPS_GETCURRENTPOSITION2;
|
||||
dsbdesc.dwFlags = DSBCAPS_CTRLPAN | (s_mastervol_available ? DSBCAPS_CTRLVOLUME : 0) | DSBCAPS_CTRLFREQUENCY | DSBCAPS_STATIC | DSBCAPS_STICKYFOCUS | DSBCAPS_GETCURRENTPOSITION2;
|
||||
dsbdesc.dwBufferBytes = chunk.nSize;
|
||||
dsbdesc.lpwfxFormat = reinterpret_cast<LPWAVEFORMATEX>(&pcmwf);
|
||||
|
||||
@ -617,22 +627,26 @@ void CSoundDeviceDSound3::UnloadPCM(UINT nNum)
|
||||
*/
|
||||
void CSoundDeviceDSound3::SetPCMVolume(UINT nNum, int nVolume)
|
||||
{
|
||||
std::map<UINT, LPDIRECTSOUNDBUFFER>::iterator it = m_pcm.find(nNum);
|
||||
if (it != m_pcm.end())
|
||||
{
|
||||
LPDIRECTSOUNDBUFFER lpDSBuffer = it->second;
|
||||
int volume = nVolume;
|
||||
if(nNum < PCMVOLUME_MAXCOUNT){
|
||||
m_pcmvolume[nNum] = nVolume;
|
||||
}
|
||||
volume *= m_mastervolume;
|
||||
if(s_mastervol_available){
|
||||
std::map<UINT, LPDIRECTSOUNDBUFFER>::iterator it = m_pcm.find(nNum);
|
||||
if (it != m_pcm.end())
|
||||
{
|
||||
LPDIRECTSOUNDBUFFER lpDSBuffer = it->second;
|
||||
int volume = nVolume;
|
||||
if(nNum < PCMVOLUME_MAXCOUNT){
|
||||
m_pcmvolume[nNum] = nVolume;
|
||||
}
|
||||
volume *= m_mastervolume;
|
||||
|
||||
if(volume == 0){
|
||||
lpDSBuffer->SetVolume(DSBVOLUME_MIN);
|
||||
}else{
|
||||
lpDSBuffer->SetVolume(NP2VOLUME2DSDB(volume));
|
||||
if(volume == 0){
|
||||
lpDSBuffer->SetVolume(DSBVOLUME_MIN);
|
||||
}else if(volume == 100){
|
||||
lpDSBuffer->SetVolume(DSBVOLUME_MAX);
|
||||
}else{
|
||||
lpDSBuffer->SetVolume(NP2VOLUME2DSDB(volume));
|
||||
}
|
||||
//lpDSBuffer->SetVolume((((DSBVOLUME_MAX - DSBVOLUME_MIN) * nVolume) / 100) + DSBVOLUME_MIN);
|
||||
}
|
||||
//lpDSBuffer->SetVolume((((DSBVOLUME_MAX - DSBVOLUME_MIN) * nVolume) / 100) + DSBVOLUME_MIN);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,8 @@ struct DSound3Device
|
||||
class CSoundDeviceDSound3 : public CSoundDeviceBase, protected CThreadBase
|
||||
{
|
||||
public:
|
||||
static bool s_mastervol_available; //!< マスタボリューム使用可能?
|
||||
|
||||
static void Initialize();
|
||||
static void EnumerateDevices(std::vector<LPCTSTR>& devices);
|
||||
|
||||
|
@ -321,7 +321,7 @@ AM_CPPFLAGS= -I$(real_topsrcdir) \
|
||||
-I$(real_topsrcdir)/wab \
|
||||
$(GTK_CFLAGS) $(GDK_CFLAGS) $(GDK_PIXBUF_CFLAGS) $(SDL_CFLAGS) $(LIBUSB1_CFLAGS) \
|
||||
$(X11_CFLAGS) $(XEXT_CFLAGS) \
|
||||
-DNP2_X11 -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DSUPPORT_NET -DSUPPORT_LGY98 -DSUPPORT_WAB -DSUPPORT_CL_GD5430 -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_NVL_IMAGES
|
||||
-DNP2_X11 -DSUPPORT_LARGE_HDD -DSUPPORT_VPCVHD -DSUPPORT_KAI_IMAGES -DHOOK_SYSKEY -DALLOW_MULTIRUN -DSUPPORT_NET -DSUPPORT_LGY98 -DUSE_MAME -DSUPPORT_SOUND_SB16 -DSUPPORT_NVL_IMAGES -DSUPPORT_FMGEN -DSUPPORT_GPIB -DSUPPORT_FAST_MEMORYCHECK
|
||||
if BUILD_ALL
|
||||
AM_CPPFLAGS+= -DX11_BUILD_ALL
|
||||
endif
|
||||
@ -406,7 +406,7 @@ IA32_CPPFLAGS= -I$(real_topsrcdir)/i386c \
|
||||
-I$(real_topsrcdir)/i386c/ia32/instructions/sse \
|
||||
-I$(real_topsrcdir)/i386c/ia32/instructions/sse2 \
|
||||
-I$(real_topsrcdir)/i386c/ia32/instructions/sse3 \
|
||||
-DCPUCORE_IA32 -DUSE_FPU -DSUPPORT_FPU_DOSBOX -DSUPPORT_FPU_DOSBOX2 -DSUPPORT_FPU_SOFTFLOAT -DSUPPORT_LARGE_MEMORY -DSUPPORT_GPIB -DSUPPORT_PCI -DUSE_MMX -DUSE_3DNOW -DUSE_SSE -DUSE_SSE2 -DUSE_SSE3 -DUSE_TSC -DUSE_FASTPAGING -DUSE_VME -DBIOS_IO_EMULATION -DSUPPORT_FAST_MEMORYCHECK
|
||||
-DCPUCORE_IA32 -DUSE_FPU -DSUPPORT_FPU_DOSBOX -DSUPPORT_FPU_DOSBOX2 -DSUPPORT_FPU_SOFTFLOAT -DSUPPORT_LARGE_MEMORY -DSUPPORT_PCI -DUSE_MMX -DUSE_3DNOW -DUSE_SSE -DUSE_SSE2 -DUSE_SSE3 -DUSE_TSC -DUSE_FASTPAGING -DUSE_VME -DSUPPORT_WAB -DSUPPORT_CL_GD5430 -DBIOS_IO_EMULATION
|
||||
|
||||
if CPUCORE_IA32
|
||||
if BUILD_ALL
|
||||
|
@ -39,17 +39,24 @@ static const char *cl_gd54xx_type_str[] = {
|
||||
"PC-9821Xe10,Xa7e,Xb10 built-in",
|
||||
"PC-9821Cb2 built-in",
|
||||
"PC-9821Cx2 built-in",
|
||||
#ifdef SUPPORT_PCI
|
||||
"PC-9821 PCI CL-GD5446 built-in",
|
||||
#endif
|
||||
"MELCO WAB-S",
|
||||
"MELCO WSN-A2F",
|
||||
"MELCO WSN-A4F",
|
||||
"I-O DATA GA-98NBI/C",
|
||||
"I-O DATA GA-98NBII,IV",
|
||||
"I-O DATA GA-98NBII",
|
||||
"I-O DATA GA-98NBIV",
|
||||
"PC-9801-96(PC-9801B3-E02)",
|
||||
#ifdef SUPPORT_PCI
|
||||
"Auto Select(Xe10, GA-98NBI/C), PCI",
|
||||
"Auto Select(Xe10, GA-98NBII), PCI",
|
||||
"Auto Select(Xe10, GA-98NBIV), PCI",
|
||||
"Auto Select(Xe10, WAB-S), PCI",
|
||||
"Auto Select(Xe10, WSN-A2F), PCI",
|
||||
"Auto Select(Xe10, WSN-A4F), PCI",
|
||||
#endif
|
||||
"Auto Select(Xe10, WAB-S)",
|
||||
"Auto Select(Xe10, WSN-A2F)",
|
||||
"Auto Select(Xe10, WSN-A4F)",
|
||||
@ -165,6 +172,7 @@ ok_button_clicked(GtkButton *b, gpointer d)
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
#ifdef SUPPORT_PCI
|
||||
case 7:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_PCI) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_PCI;
|
||||
@ -214,41 +222,121 @@ ok_button_clicked(GtkButton *b, gpointer d)
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE_G1_PCI) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE_G1_PCI;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE_G2_PCI) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE_G2_PCI;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 17:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE_G4_PCI) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE_G4_PCI;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 18:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE_WA_PCI) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE_WA_PCI;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
case 19:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE_WS_PCI) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE_WS_PCI;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 17:
|
||||
case 20:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE_W4_PCI) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE_W4_PCI;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 18:
|
||||
case 21:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE10_WABS) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE10_WABS;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 19:
|
||||
case 22:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE10_WSN2) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE10_WSN2;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 20:
|
||||
case 23:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE10_WSN4) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE10_WSN4;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
#else
|
||||
case 7:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_WAB) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_WAB;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_WSN_A2F) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_WSN_A2F;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_WSN) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_WSN;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_GA98NBIC) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_GA98NBIC;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_GA98NBII) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_GA98NBII;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_GA98NBIV) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_GA98NBIV;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_96) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_96;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE10_WABS) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE10_WABS;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE10_WSN2) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE10_WSN2;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
if(np2cfg.gd5430type != CIRRUS_98ID_AUTO_XE10_WSN4) {
|
||||
np2cfg.gd5430type = CIRRUS_98ID_AUTO_XE10_WSN4;
|
||||
renewal = TRUE;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -368,6 +456,7 @@ create_cl_gd54xx_note(void)
|
||||
case CIRRUS_98ID_Cx2:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[6]);
|
||||
break;
|
||||
#ifdef SUPPORT_PCI
|
||||
case CIRRUS_98ID_PCI:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[7]);
|
||||
break;
|
||||
@ -392,24 +481,65 @@ create_cl_gd54xx_note(void)
|
||||
case CIRRUS_98ID_96:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[14]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE_WA_PCI:
|
||||
case CIRRUS_98ID_AUTO_XE_G1_PCI:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[15]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE_WS_PCI:
|
||||
case CIRRUS_98ID_AUTO_XE_G2_PCI:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[16]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE_W4_PCI:
|
||||
case CIRRUS_98ID_AUTO_XE_G4_PCI:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[17]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WABS:
|
||||
case CIRRUS_98ID_AUTO_XE_WA_PCI:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[18]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN2:
|
||||
case CIRRUS_98ID_AUTO_XE_WS_PCI:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[19]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN4:
|
||||
case CIRRUS_98ID_AUTO_XE_W4_PCI:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[20]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WABS:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[21]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN2:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[22]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN4:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[23]);
|
||||
break;
|
||||
#else
|
||||
case CIRRUS_98ID_WAB:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[7]);
|
||||
break;
|
||||
case CIRRUS_98ID_WSN_A2F:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[8]);
|
||||
break;
|
||||
case CIRRUS_98ID_WSN:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[9]);
|
||||
break;
|
||||
case CIRRUS_98ID_GA98NBIC:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[10]);
|
||||
break;
|
||||
case CIRRUS_98ID_GA98NBII:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[11]);
|
||||
break;
|
||||
case CIRRUS_98ID_GA98NBIV:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[12]);
|
||||
break;
|
||||
case CIRRUS_98ID_96:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[13]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WABS:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[14]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN2:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[15]);
|
||||
break;
|
||||
case CIRRUS_98ID_AUTO_XE10_WSN4:
|
||||
gtk_entry_set_text(GTK_ENTRY(cl_gd54xx_type_entry), cl_gd54xx_type_str[16]);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Use Fake Hardware Cursor */
|
||||
|
@ -663,6 +663,8 @@ static INITBL iniitem[] = {
|
||||
{"USE_CLGD", INITYPE_BOOL, &np2cfg.usegd5430, 0},
|
||||
{"CLGDTYPE", INITYPE_UINT16, &np2cfg.gd5430type, 0},
|
||||
{"CLGDFCUR", INITYPE_BOOL, &np2cfg.gd5430fakecur, 0},
|
||||
{"GDMELOFS", INITYPE_UINT8, &np2cfg.gd5430melofs, 0},
|
||||
{"GANBBSEX", INITYPE_BOOL, &np2cfg.ga98nb_bigscrn_ex, 0},
|
||||
#endif
|
||||
{"TIMERFIX", INITYPE_BOOL, &np2cfg.timerfix, 0},
|
||||
|
||||
@ -683,6 +685,10 @@ static INITBL iniitem[] = {
|
||||
{"cpu_bran", INIRO_STR, np2cfg.cpu_brandstring_o, 63},
|
||||
|
||||
{"FPU_TYPE", INITYPE_UINT8, &np2cfg.fpu_type, 0},
|
||||
#if defined(SUPPORT_FAST_MEMORYCHECK)
|
||||
{"memckspd", INITYPE_UINT8, &np2cfg.memcheckspeed, 0},
|
||||
#endif
|
||||
{"USERAM_D", INITYPE_BOOL, &np2cfg.useram_d, 0},
|
||||
|
||||
{"keyboard", INITYPE_KB, &np2oscfg.KEYBOARD, 0},
|
||||
{"F12_COPY", INITYPE_UINT8, &np2oscfg.F12KEY, 0},
|
||||
|
Loading…
Reference in New Issue
Block a user