Added Hercules InColor emulation. Patch from John Elliott.
This commit is contained in:
parent
673d785743
commit
467b742af5
8 changed files with 1117 additions and 57 deletions
102
src/Makefile.am
102
src/Makefile.am
|
|
@ -1,51 +1,51 @@
|
||||||
# Makefile.am for PCem
|
# Makefile.am for PCem
|
||||||
|
|
||||||
bin_PROGRAMS = pcem
|
bin_PROGRAMS = pcem
|
||||||
noinst_SCRIPTS = ../pcem
|
noinst_SCRIPTS = ../pcem
|
||||||
CLEANFILES = $(noinst_SCRIPTS)
|
CLEANFILES = $(noinst_SCRIPTS)
|
||||||
|
|
||||||
../pcem: pcem
|
../pcem: pcem
|
||||||
cp pcem ..
|
cp pcem ..
|
||||||
|
|
||||||
amrefresh:
|
amrefresh:
|
||||||
|
|
||||||
|
|
||||||
pcem_CFLAGS = $(allegro_CFLAGS)
|
pcem_CFLAGS = $(allegro_CFLAGS)
|
||||||
|
|
||||||
pcem_LDADD = $(allegro_LIBS) -lopenal -lalut
|
pcem_LDADD = $(allegro_LIBS) -lopenal -lalut
|
||||||
|
|
||||||
pcem_SOURCES = 386.c 386_dynarec.c 386_dynarec_ops.c 808x.c acer386sx.c ali1429.c allegro-gui.c \
|
pcem_SOURCES = 386.c 386_dynarec.c 386_dynarec_ops.c 808x.c acer386sx.c ali1429.c allegro-gui.c \
|
||||||
allegro-gui-configure.c allegro-gui-hdconf.c allegro-joystick.c allegro-keyboard.c allegro-main.c \
|
allegro-gui-configure.c allegro-gui-hdconf.c allegro-joystick.c allegro-keyboard.c allegro-main.c \
|
||||||
allegro-midi.c allegro-mouse.c allegro-video.c amstrad.c cdrom-ioctl-linux.c cdrom-iso.c cdrom-null.c \
|
allegro-midi.c allegro-mouse.c allegro-video.c amstrad.c cdrom-ioctl-linux.c cdrom-iso.c cdrom-null.c \
|
||||||
codegen.c codegen_ops.c codegen_timing_486.c codegen_timing_pentium.c compaq.c config.c cpu.c \
|
codegen.c codegen_ops.c codegen_timing_486.c codegen_timing_pentium.c compaq.c config.c cpu.c \
|
||||||
dac.c device.c disc.c disc_fdi.c disc_img.c disc_sector.c dma.c fdc.c fdc37c665.c fdd.c fdi2raw.c gameport.c \
|
dac.c device.c disc.c disc_fdi.c disc_img.c disc_sector.c dma.c fdc.c fdc37c665.c fdd.c fdi2raw.c gameport.c \
|
||||||
headland.c i430lx.c i430fx.c i430vx.c ide.c intel.c intel_flash.c io.c jim.c \
|
headland.c i430lx.c i430fx.c i430vx.c ide.c intel.c intel_flash.c io.c jim.c \
|
||||||
keyboard.c keyboard_amstrad.c keyboard_at.c keyboard_olim24.c keyboard_pcjr.c keyboard_xt.c \
|
keyboard.c keyboard_amstrad.c keyboard_at.c keyboard_olim24.c keyboard_pcjr.c keyboard_xt.c \
|
||||||
linux-time.c lpt.c mcr.c mem.c model.c mouse.c mouse_ps2.c mouse_serial.c neat.c nmi.c nvr.c \
|
linux-time.c lpt.c mcr.c mem.c model.c mouse.c mouse_ps2.c mouse_serial.c neat.c nmi.c nvr.c \
|
||||||
olivetti_m24.c opti.c pc.c pci.c pic.c piix.c pit.c ppi.c ps1.c rom.c serial.c sis496.c sound.c \
|
olivetti_m24.c opti.c pc.c pci.c pic.c piix.c pit.c ppi.c ps1.c rom.c serial.c sis496.c sound.c \
|
||||||
sound_ad1848.c sound_adlib.c sound_adlibgold.c sound_cms.c sound_emu8k.c sound_gus.c \
|
sound_ad1848.c sound_adlib.c sound_adlibgold.c sound_cms.c sound_emu8k.c sound_gus.c \
|
||||||
sound_mpu401_uart.c sound_opl.c sound_pas16.c sound_pssj.c sound_sb.c sound_sb_dsp.c sound_sn76489.c \
|
sound_mpu401_uart.c sound_opl.c sound_pas16.c sound_pssj.c sound_sb.c sound_sb_dsp.c sound_sn76489.c \
|
||||||
sound_speaker.c sound_ssi2001.c sound_wss.c soundopenal.c tandy_eeprom.c tandy_rom.c thread-pthread.c \
|
sound_speaker.c sound_ssi2001.c sound_wss.c soundopenal.c tandy_eeprom.c tandy_rom.c thread-pthread.c \
|
||||||
timer.c um8669f.c um8881f.c vid_ati_eeprom.c vid_ati_mach64.c vid_ati18800.c vid_ati28800.c \
|
timer.c um8669f.c um8881f.c vid_ati_eeprom.c vid_ati_mach64.c vid_ati18800.c vid_ati28800.c \
|
||||||
vid_ati68860_ramdac.c vid_cga.c vid_cl5429.c vid_ega.c vid_et4000.c vid_et4000w32.c vid_hercules.c \
|
vid_ati68860_ramdac.c vid_cga.c vid_cl5429.c vid_ega.c vid_et4000.c vid_et4000w32.c vid_hercules.c \
|
||||||
vid_icd2061.c vid_ics2595.c vid_mda.c vid_olivetti_m24.c vid_oti067.c vid_paradise.c vid_pc200.c \
|
vid_icd2061.c vid_ics2595.c vid_incolor.c vid_mda.c vid_olivetti_m24.c vid_oti067.c vid_paradise.c vid_pc200.c \
|
||||||
vid_pc1512.c vid_pc1640.c vid_pcjr.c vid_s3.c vid_s3_virge.c vid_sdac_ramdac.c \
|
vid_pc1512.c vid_pc1640.c vid_pcjr.c vid_s3.c vid_s3_virge.c vid_sdac_ramdac.c \
|
||||||
vid_stg_ramdac.c vid_svga.c vid_svga_render.c vid_tandy.c vid_tandysl.c vid_tgui9440.c \
|
vid_stg_ramdac.c vid_svga.c vid_svga_render.c vid_tandy.c vid_tandysl.c vid_tgui9440.c \
|
||||||
vid_tkd8001_ramdac.c vid_tvga.c vid_unk_ramdac.c vid_vga.c vid_voodoo.c video.c wd76c10.c \
|
vid_tkd8001_ramdac.c vid_tvga.c vid_unk_ramdac.c vid_vga.c vid_voodoo.c video.c wd76c10.c \
|
||||||
x86seg.c x87.c xtide.c sound_dbopl.cc sound_resid.cc dosbox/dbopl.cpp \
|
x86seg.c x87.c xtide.c sound_dbopl.cc sound_resid.cc dosbox/dbopl.cpp \
|
||||||
resid-fp/convolve.cc resid-fp/convolve-sse.cc resid-fp/envelope.cc \
|
resid-fp/convolve.cc resid-fp/convolve-sse.cc resid-fp/envelope.cc \
|
||||||
resid-fp/extfilt.cc resid-fp/filter.cc resid-fp/pot.cc resid-fp/sid.cc \
|
resid-fp/extfilt.cc resid-fp/filter.cc resid-fp/pot.cc resid-fp/sid.cc \
|
||||||
resid-fp/voice.cc resid-fp/wave6581_PS_.cc resid-fp/wave6581_PST.cc \
|
resid-fp/voice.cc resid-fp/wave6581_PS_.cc resid-fp/wave6581_PST.cc \
|
||||||
resid-fp/wave6581_P_T.cc resid-fp/wave6581__ST.cc resid-fp/wave8580_PS_.cc \
|
resid-fp/wave6581_P_T.cc resid-fp/wave6581__ST.cc resid-fp/wave8580_PS_.cc \
|
||||||
resid-fp/wave8580_PST.cc resid-fp/wave8580_P_T.cc resid-fp/wave8580__ST.cc \
|
resid-fp/wave8580_PST.cc resid-fp/wave8580_P_T.cc resid-fp/wave8580__ST.cc \
|
||||||
resid-fp/wave.cc
|
resid-fp/wave.cc
|
||||||
|
|
||||||
if CPU_I386
|
if CPU_I386
|
||||||
pcem_SOURCES += codegen_x86.c
|
pcem_SOURCES += codegen_x86.c
|
||||||
pcem_CFLAGS += -msse2
|
pcem_CFLAGS += -msse2
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if CPU_X86_64
|
if CPU_X86_64
|
||||||
pcem_SOURCES += codegen_x86-64.c
|
pcem_SOURCES += codegen_x86-64.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ OBJ = 386.o 386_dynarec.o 386_dynarec_ops.o 808x.o acer386sx.o ali1429.o amstrad
|
||||||
sound_sb.o sound_sb_dsp.o sound_sn76489.o sound_speaker.o sound_ssi2001.o sound_wss.o \
|
sound_sb.o sound_sb_dsp.o sound_sn76489.o sound_speaker.o sound_ssi2001.o sound_wss.o \
|
||||||
soundopenal.o tandy_eeprom.o tandy_rom.o timer.o um8881f.o um8669f.o vid_ati_eeprom.o vid_ati_mach64.o vid_ati18800.o \
|
soundopenal.o tandy_eeprom.o tandy_rom.o timer.o um8881f.o um8669f.o vid_ati_eeprom.o vid_ati_mach64.o vid_ati18800.o \
|
||||||
vid_ati28800.o vid_ati68860_ramdac.o vid_cga.o vid_cl5429.o vid_ega.o vid_et4000.o \
|
vid_ati28800.o vid_ati68860_ramdac.o vid_cga.o vid_cl5429.o vid_ega.o vid_et4000.o \
|
||||||
vid_et4000w32.o vid_et4000w32i.o vid_hercules.o vid_icd2061.o vid_ics2595.o vid_mda.o \
|
vid_et4000w32.o vid_et4000w32i.o vid_hercules.o vid_icd2061.o vid_ics2595.o vid_incolor.o vid_mda.o \
|
||||||
vid_olivetti_m24.o vid_oti067.o vid_paradise.o vid_pc1512.o vid_pc1640.o vid_pc200.o \
|
vid_olivetti_m24.o vid_oti067.o vid_paradise.o vid_pc1512.o vid_pc1640.o vid_pc200.o \
|
||||||
vid_pcjr.o vid_s3.o vid_s3_virge.o vid_sdac_ramdac.o vid_stg_ramdac.o vid_svga.o \
|
vid_pcjr.o vid_s3.o vid_s3_virge.o vid_sdac_ramdac.o vid_stg_ramdac.o vid_svga.o \
|
||||||
vid_svga_render.o vid_tandy.o vid_tandysl.o vid_tgui9440.o vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o \
|
vid_svga_render.o vid_tandy.o vid_tandysl.o vid_tgui9440.o vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o \
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ OBJ = 386.o 386_dynarec.o 386_dynarec_ops.o 808x.o acer386sx.o ali1429.o amstrad
|
||||||
sound_sb.o sound_sb_dsp.o sound_sn76489.o sound_speaker.o sound_ssi2001.o sound_wss.o \
|
sound_sb.o sound_sb_dsp.o sound_sn76489.o sound_speaker.o sound_ssi2001.o sound_wss.o \
|
||||||
soundopenal.o tandy_eeprom.o tandy_rom.o timer.o um8881f.o um8669f.o vid_ati_eeprom.o vid_ati_mach64.o vid_ati18800.o \
|
soundopenal.o tandy_eeprom.o tandy_rom.o timer.o um8881f.o um8669f.o vid_ati_eeprom.o vid_ati_mach64.o vid_ati18800.o \
|
||||||
vid_ati28800.o vid_ati68860_ramdac.o vid_cga.o vid_cl5429.o vid_ega.o vid_et4000.o \
|
vid_ati28800.o vid_ati68860_ramdac.o vid_cga.o vid_cl5429.o vid_ega.o vid_et4000.o \
|
||||||
vid_et4000w32.o vid_et4000w32i.o vid_hercules.o vid_icd2061.o vid_ics2595.o vid_mda.o \
|
vid_et4000w32.o vid_et4000w32i.o vid_hercules.o vid_icd2061.o vid_ics2595.o vid_incolor.o vid_mda.o \
|
||||||
vid_olivetti_m24.o vid_oti067.o vid_paradise.o vid_pc1512.o vid_pc1640.o vid_pc200.o \
|
vid_olivetti_m24.o vid_oti067.o vid_paradise.o vid_pc1512.o vid_pc1640.o vid_pc200.o \
|
||||||
vid_pcjr.o vid_s3.o vid_s3_virge.o vid_sdac_ramdac.o vid_stg_ramdac.o vid_svga.o \
|
vid_pcjr.o vid_s3.o vid_s3_virge.o vid_sdac_ramdac.o vid_stg_ramdac.o vid_svga.o \
|
||||||
vid_svga_render.o vid_tandy.o vid_tandysl.o vid_tgui9440.o vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o \
|
vid_svga_render.o vid_tandy.o vid_tandysl.o vid_tgui9440.o vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o \
|
||||||
|
|
|
||||||
|
|
@ -270,8 +270,8 @@ int disctime;
|
||||||
char discfns[2][256];
|
char discfns[2][256];
|
||||||
int driveempty[2];
|
int driveempty[2];
|
||||||
|
|
||||||
#define MDA ((gfxcard==GFX_MDA || gfxcard==GFX_HERCULES) && (romset<ROM_TANDY || romset>=ROM_IBMAT))
|
#define MDA ((gfxcard==GFX_MDA || gfxcard==GFX_HERCULES || gfxcard==GFX_INCOLOR) && (romset<ROM_TANDY || romset>=ROM_IBMAT))
|
||||||
#define VGA ((gfxcard>=GFX_TVGA || romset==ROM_ACER386) && romset!=ROM_PC1640 && romset!=ROM_PC1512 && romset!=ROM_TANDY && romset!=ROM_PC200)
|
#define VGA ((gfxcard>=GFX_TVGA || romset==ROM_ACER386) && gfxcard!=GFX_INCOLOR && romset!=ROM_PC1640 && romset!=ROM_PC1512 && romset!=ROM_TANDY && romset!=ROM_PC200)
|
||||||
#define PCJR (romset == ROM_IBMPCJR)
|
#define PCJR (romset == ROM_IBMPCJR)
|
||||||
#define AMIBIOS (romset==ROM_AMI386 || romset==ROM_AMI486 || romset == ROM_WIN486)
|
#define AMIBIOS (romset==ROM_AMI386 || romset==ROM_AMI486 || romset == ROM_WIN486)
|
||||||
|
|
||||||
|
|
@ -351,7 +351,7 @@ enum
|
||||||
GFX_VIRGEDX, /*S3 Virge/DX*/
|
GFX_VIRGEDX, /*S3 Virge/DX*/
|
||||||
GFX_PHOENIX_TRIO32, /*S3 732/Trio32 (Phoenix)*/
|
GFX_PHOENIX_TRIO32, /*S3 732/Trio32 (Phoenix)*/
|
||||||
GFX_PHOENIX_TRIO64, /*S3 764/Trio64 (Phoenix)*/
|
GFX_PHOENIX_TRIO64, /*S3 764/Trio64 (Phoenix)*/
|
||||||
|
GFX_INCOLOR, /* Hercules InColor */
|
||||||
GFX_MAX
|
GFX_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ void jim_init()
|
||||||
europc_rtc.dat[4]=1;
|
europc_rtc.dat[4]=1;
|
||||||
europc_rtc.dat[5]=0x88;
|
europc_rtc.dat[5]=0x88;
|
||||||
if (gfxcard==GFX_CGA) viddat=0x12;
|
if (gfxcard==GFX_CGA) viddat=0x12;
|
||||||
else if (gfxcard==GFX_MDA || gfxcard==GFX_HERCULES) viddat=3;
|
else if (gfxcard==GFX_MDA || gfxcard==GFX_HERCULES || gfxcard==GFX_INCOLOR) viddat=3;
|
||||||
else viddat=0x10;
|
else viddat=0x10;
|
||||||
europc_rtc.dat[0xB]=viddat;
|
europc_rtc.dat[0xB]=viddat;
|
||||||
europc_rtc.dat[0xD]=viddat; /*Checksum*/
|
europc_rtc.dat[0xD]=viddat; /*Checksum*/
|
||||||
|
|
|
||||||
1057
src/vid_incolor.c
Normal file
1057
src/vid_incolor.c
Normal file
File diff suppressed because it is too large
Load diff
1
src/vid_incolor.h
Normal file
1
src/vid_incolor.h
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
extern device_t incolor_device;
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
#include "vid_et4000.h"
|
#include "vid_et4000.h"
|
||||||
#include "vid_et4000w32.h"
|
#include "vid_et4000w32.h"
|
||||||
#include "vid_hercules.h"
|
#include "vid_hercules.h"
|
||||||
|
#include "vid_incolor.h"
|
||||||
#include "vid_mda.h"
|
#include "vid_mda.h"
|
||||||
#include "vid_olivetti_m24.h"
|
#include "vid_olivetti_m24.h"
|
||||||
#include "vid_oti067.h"
|
#include "vid_oti067.h"
|
||||||
|
|
@ -54,6 +55,7 @@ static VIDEO_CARD video_cards[] =
|
||||||
{"Diamond Stealth 3D 2000 (S3 ViRGE)", &s3_virge_device, GFX_VIRGE},
|
{"Diamond Stealth 3D 2000 (S3 ViRGE)", &s3_virge_device, GFX_VIRGE},
|
||||||
{"EGA", &ega_device, GFX_EGA},
|
{"EGA", &ega_device, GFX_EGA},
|
||||||
{"Hercules", &hercules_device, GFX_HERCULES},
|
{"Hercules", &hercules_device, GFX_HERCULES},
|
||||||
|
{"Hercules InColor", &incolor_device, GFX_INCOLOR},
|
||||||
{"MDA", &mda_device, GFX_MDA},
|
{"MDA", &mda_device, GFX_MDA},
|
||||||
{"Number Nine 9FX (S3 Trio64)", &s3_9fx_device, GFX_N9_9FX},
|
{"Number Nine 9FX (S3 Trio64)", &s3_9fx_device, GFX_N9_9FX},
|
||||||
{"OAK OTI-067", &oti067_device, GFX_OTI067},
|
{"OAK OTI-067", &oti067_device, GFX_OTI067},
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue