summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2020-01-25 15:35:28 +0100
committer couriersud <couriersud@gmx.org>2020-01-25 15:35:28 +0100
commitea1897f605bd2f335df88842506c24581ce5b118 (patch)
tree4e8234d5787ef179729b8c6014427d1284dddb7c
parent42d351a4eb45e1e1b68edd1c905664c40178ad20 (diff)
segas16b: Added analog filters. [Couriersud]
Analog filters added to systems with YM2151 and UPD7759. Reviewers can use USE_NL define to produce unfiltered sound.
-rw-r--r--scripts/target/mame/arcade.lua2
-rw-r--r--scripts/target/mame/nl.lua32
-rw-r--r--src/emu/rendutil.h16
-rw-r--r--src/mame/audio/nl_segas16b.cpp172
-rw-r--r--src/mame/audio/nl_segas16b.h4
-rw-r--r--src/mame/drivers/segas16b.cpp32
-rw-r--r--src/mame/nl.lst144
-rw-r--r--src/osd/modules/render/drawogl.cpp22
8 files changed, 417 insertions, 7 deletions
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index 6846c62296a..5cbd4c667e5 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -3461,6 +3461,8 @@ files {
MAME_DIR .. "src/mame/drivers/segas16b.cpp",
MAME_DIR .. "src/mame/includes/segas16b.h",
MAME_DIR .. "src/mame/video/segas16b.cpp",
+ MAME_DIR .. "src/mame/audio/nl_segas16b.cpp",
+ MAME_DIR .. "src/mame/audio/nl_segas16b.h",
MAME_DIR .. "src/mame/drivers/segas18.cpp",
MAME_DIR .. "src/mame/includes/segas18.h",
MAME_DIR .. "src/mame/video/segas18.cpp",
diff --git a/scripts/target/mame/nl.lua b/scripts/target/mame/nl.lua
index c365f8e71a1..6c35044d10c 100644
--- a/scripts/target/mame/nl.lua
+++ b/scripts/target/mame/nl.lua
@@ -23,10 +23,11 @@ CPUS["M6803"] = true
CPUS["M6809"] = true
CPUS["MCS48"] = true
CPUS["I8085"] = true
---CPUS["MCS51"] = true
+CPUS["MCS51"] = true
--CPUS["M6800"] = true
--CPUS["M6809"] = true
--CPUS["M680X0"] = true
+CPUS["M680X0"] = true
--CPUS["TMS9900"] = true
--CPUS["COP400"] = true
CPUS["F8"] = true
@@ -43,11 +44,14 @@ SOUNDS["AY8910"] = true
SOUNDS["MSM5205"] = true
--SOUNDS["ASTROCADE"] = true
SOUNDS["TMS5220"] = true
---SOUNDS["OKIM6295"] = true
+SOUNDS["OKIM6295"] = true
+SOUNDS["UPD7759"] = true
--SOUNDS["HC55516"] = true
--SOUNDS["YM3812"] = true
--SOUNDS["CEM3394"] = true
--SOUNDS["VOTRAX"] = true
+SOUNDS["YM2151"] = true
+SOUNDS["YM2413"] = true
SOUNDS["BEEP"] = true
SOUNDS["VOLT_REG"] = true
SOUNDS["SPEAKER"] = true
@@ -81,6 +85,8 @@ MACHINES["6821PIA"] = true
MACHINES["I8255"] = true
MACHINES["WATCHDOG"] = true
MACHINES["EEPROMDEV"] = true
+MACHINES["UPD4701"] = true
+MACHINES["CXD1095"] = true
--MACHINES["TTL74148"] = true
--MACHINES["TTL74153"] = true
--MACHINES["TTL7474"] = true
@@ -212,6 +218,28 @@ files{
MAME_DIR .. "src/mame/machine/nl_palestra.cpp",
MAME_DIR .. "src/mame/machine/nl_palestra.h",
+ MAME_DIR .. "src/mame/drivers/segas16b.cpp",
+ MAME_DIR .. "src/mame/includes/segas16b.h",
+ MAME_DIR .. "src/mame/video/segas16b.cpp",
+ MAME_DIR .. "src/mame/audio/nl_segas16b.cpp",
+ MAME_DIR .. "src/mame/audio/nl_segas16b.h",
+ MAME_DIR .. "src/mame/machine/315_5195.cpp",
+ MAME_DIR .. "src/mame/machine/315_5195.h",
+ MAME_DIR .. "src/mame/machine/fd1089.cpp",
+ MAME_DIR .. "src/mame/machine/fd1089.h",
+ MAME_DIR .. "src/mame/machine/fd1094.cpp",
+ MAME_DIR .. "src/mame/machine/fd1094.h",
+ MAME_DIR .. "src/mame/machine/segaic16.cpp",
+ MAME_DIR .. "src/mame/machine/segaic16.h",
+ MAME_DIR .. "src/mame/video/sega16sp.cpp",
+ MAME_DIR .. "src/mame/video/sega16sp.h",
+ MAME_DIR .. "src/mame/machine/mc8123.cpp",
+ MAME_DIR .. "src/mame/machine/mc8123.h",
+ MAME_DIR .. "src/mame/video/segaic16.cpp",
+ MAME_DIR .. "src/mame/video/segaic16.h",
+ MAME_DIR .. "src/mame/video/segaic16_road.cpp",
+ MAME_DIR .. "src/mame/video/segaic16_road.h",
+
MAME_DIR .. "src/mame/drivers/testpat.cpp",
MAME_DIR .. "src/mame/machine/nl_tp1983.cpp",
MAME_DIR .. "src/mame/machine/nl_tp1983.h",
diff --git a/src/emu/rendutil.h b/src/emu/rendutil.h
index b5c06d6d0fc..8999d57c66a 100644
--- a/src/emu/rendutil.h
+++ b/src/emu/rendutil.h
@@ -185,6 +185,7 @@ static inline int orientation_add(int orientation1, int orientation2)
static inline float apply_brightness_contrast_gamma_fp(float srcval, float brightness, float contrast, float gamma)
{
+#if 0
/* first apply gamma */
srcval = pow(srcval, 1.0f / gamma);
@@ -197,6 +198,21 @@ static inline float apply_brightness_contrast_gamma_fp(float srcval, float brigh
if (srcval > 1.0f)
srcval = 1.0f;
return srcval;
+#else
+ /* contrast/brightness */
+ srcval = (srcval * contrast) + brightness - 1.0f;
+
+ /* clamp and return */
+ if (srcval < 0.0f)
+ srcval = 0.0f;
+ if (srcval > 1.0f)
+ srcval = 1.0f;
+
+ /* apply gamma */
+ srcval = std::pow(srcval, gamma);
+
+ return srcval;
+#endif
}
diff --git a/src/mame/audio/nl_segas16b.cpp b/src/mame/audio/nl_segas16b.cpp
new file mode 100644
index 00000000000..e4b82787441
--- /dev/null
+++ b/src/mame/audio/nl_segas16b.cpp
@@ -0,0 +1,172 @@
+// license:CC0
+// copyright-holders:Couriersud
+#include "netlist/devices/net_lib.h"
+
+#ifdef NLBASE_H_
+#error Somehow nl_base.h made it into the include chain.
+#endif
+
+NETLIST_START(segas16b_audio)
+ SOLVER(Solver, 48000)
+ //PARAM(Solver.DYNAMIC_TS, 1)
+
+ ANALOG_INPUT(VP5, 5)
+ ANALOG_INPUT(VP12, 12)
+
+ /* UPD7759 has resistor of 47K on reference pin
+ * ==> IREF ~30 uA
+ * According to datasheet maximum current sink
+ * is 34 * IREF.
+ *
+ * MAME must provide range of 0 to 1020 uA to the current sink.
+ *
+ */
+#if 0
+ CLOCK(T0, 10)
+ NET_C(GND, T0.GND)
+ NET_C(VP5, T0.VCC)
+ RES(T0R, RES_M(10000000))
+ NET_C(T0, T0R.1)
+
+ CS(T1, 0.0)
+ //PARAM(T1.FUNC, "0.001020 * (0.5 + 0.5 * sin(6280 * T))")
+ RES(T2, 1000)
+ NET_C(GND, T2.2, T1.2)
+ NET_C(T1.1, T2.1, T0R.2)
+#endif
+
+ CS(SPEECH, 0)
+ //PARAM(SPEECH.FUNC, "0.001020 * (0.5 + 0.5 * sin(6280 * T))")
+ NET_C(SPEECH.2, GND)
+
+ ANALOG_INPUT(CH1, 0)
+ ANALOG_INPUT(CH2, 0)
+
+#if 0
+ VS(CH1VS, 0)
+ PARAM(CH1VS.FUNC, "2.5 + 1.25 * sin(6280 * T)")
+ NET_C(CH1VS.2, GND)
+ ALIAS(CH2, CH1VS.1)
+#endif
+
+ /* The YM3012 uses only one dac for the two channels.
+ * Sample-and-hold is used to two toggle between the two channels.
+ * This is not emulated here since the YM2151 signals are provided
+ * externally.
+ *
+ * Therefore two RCOM resistors are used for now directly connected
+ * to the channels.
+ *
+ * The YM3012 datasheet gives a formula for digital to VOUT:
+ * VOUT = 0.5 VDD + 0.25 * VDD *(-1 + D9 + d8/2 .. + d0/512 + 1/1024)/pow(2,N)
+ * N= S2Q*4+S1Q*2+S0Q
+ * 3 bits ignored (I0,I1,I2)
+ * Serial data stream: I0,I1,I2,D0,..., D9,S0,S1,S2
+ *
+ * Basically output is between 0.25 * VDD and 0.75 * VDD.
+ * This needs to be done in MAME interface
+ */
+
+ TL084_DIP(D20)
+ LM324_DIP(XC20)
+
+ RES(RCOM1, 390)
+ RES(RCOM2, 390)
+
+ CAP(C21, CAP_U(2.2))
+ CAP(C22, CAP_U(2.2)) // Needs verification
+ CAP(C27, CAP_P(1500))
+ CAP(C28, CAP_P(1500))
+
+ // ------------------------------------
+ // YM2151/YM3012 inputs
+ // ------------------------------------
+
+ NET_C(CH1, RCOM1.1)
+ NET_C(RCOM1.2, C27.1, D20.5)
+ NET_C(D20.7, D20.6, C22.1)
+
+ NET_C(CH2, RCOM2.1)
+ NET_C(RCOM2.2, C28.1, D20.10)
+ NET_C(D20.8, D20.9, C21.1)
+
+ NET_C(GND, C27.2, C28.2)
+
+ // OPAMPS, no information on schematics, assume 12V since
+ // TL084 with 5V would be outside specifications
+ // No negative voltages found on schematics
+
+ NET_C(VP12, XC20.4, D20.4)
+ NET_C(GND, XC20.11, D20.11)
+
+ // ------------------------------------
+ // Speech inputs
+ // ------------------------------------
+
+ RES(R11, RES_K(1))
+ RES(R14, RES_K(5.6))
+ RES(R16, RES_K(6.8))
+ RES(R15, RES_K(12))
+ RES(R12, RES_K(1.3))
+ RES(R13, RES_K(6.2))
+ CAP(C25, CAP_U(0.0022))
+ CAP(C26, CAP_U(0.022))
+ CAP(C23, CAP_U(0.022))
+ CAP(C29, CAP_U(0.01))
+ CAP(C62, CAP_U(2.2))
+
+ NET_C(VP5, R11.1)
+ NET_C(SPEECH.1, R11.2, R14.1)
+ NET_C(R14.2, R16.1, C26.1, R15.1)
+ NET_C(R15.2, C25.1, XC20.5)
+ NET_C(XC20.7, XC20.6, C26.2, R12.1)
+
+ NET_C(R12.2, C23.1, R13.1)
+ NET_C(R13.2, C29.1, XC20.3)
+ NET_C(XC20.1, XC20.2, C23.2, C62.1)
+
+ NET_C(GND, R16.2, C25.2, C29.2)
+
+ // ------------------------------------
+ // Mixing and pre amplifier
+ // ------------------------------------
+
+ RES(R6, RES_K(10))
+ RES(R9, RES_K(47))
+ RES(R10, RES_K(47))
+ RES(R4, RES_K(10))
+ RES(R7, RES_K(47))
+ RES(R3, RES_K(10))
+ RES(R5, RES_K(10))
+ RES(VR1, RES_K(2)) // FIXME: Actually a potentiometer
+ CAP(C12, CAP_U(10))
+ CAP(C63, CAP_U(2.2))
+ CAP(C20, CAP_P(1000))
+ CAP(C19, CAP_U(47)) // FIXME: Needs verification
+ RES(AMP_IN, RES_K(100))
+
+ NET_C(C62.2, R6.1)
+ NET_C(C22.2, R9.1)
+ NET_C(C21.2, R10.1)
+ NET_C(R6.2, R9.2, R10.2, XC20.9, C20.1, R7.1) // FIXME: Schematics read "9" (XC20.9) - other AMP?
+ NET_C(R7.2, C20.2, C63.1, XC20.8) // FIXME: Schematics read "7" (XC20.7) - other AMP?
+
+ NET_C(VP5, R4.1)
+ NET_C(R4.2, C19.1, R5.1, XC20.10) // FIXME: Schematics read "8" (XC20.8) - other AMP?
+
+ NET_C(C63.2, R3.1)
+ NET_C(R3.2, VR1.1, C12.1)
+ NET_C(C12.2, AMP_IN.1)
+
+ NET_C(GND, VR1.2, C19.2, R5.2, AMP_IN.2)
+
+ // OUTPUT
+
+ ALIAS(OUT, AMP_IN.1)
+
+ // Not connected
+
+ NET_C(GND, XC20.13, XC20.12, D20.13, D20.12, D20.2, D20.3)
+ NET_C(GND, XC20.14, D20.14, D20.1)
+NETLIST_END()
+
diff --git a/src/mame/audio/nl_segas16b.h b/src/mame/audio/nl_segas16b.h
new file mode 100644
index 00000000000..a31546fb200
--- /dev/null
+++ b/src/mame/audio/nl_segas16b.h
@@ -0,0 +1,4 @@
+// license:CC0
+// copyright-holders:Couriersud
+
+NETLIST_EXTERNAL(segas16b_audio)
diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp
index 7a518ad90fc..7b2cc5a6a47 100644
--- a/src/mame/drivers/segas16b.cpp
+++ b/src/mame/drivers/segas16b.cpp
@@ -876,6 +876,13 @@ S11 S13 S15 S17 |EPR12194 - - - EPR12195 - -
#include "sound/okim6295.h"
#include "speaker.h"
+#define USE_NL (1)
+
+#if USE_NL
+#include "machine/netlist.h"
+#include "netlist/nl_setup.h"
+#include "audio/nl_segas16b.h"
+#endif
//**************************************************************************
// CONSTANTS
@@ -3933,12 +3940,37 @@ void segas16b_state::system16b(machine_config &config)
// sound hardware
SPEAKER(config, "mono").front_center();
+#if USE_NL
+ YM2151(config, m_ym2151, MASTER_CLOCK_8MHz/2)
+ .add_route(0, "netlist", 1.0, 0)
+ .add_route(1, "netlist", 1.0, 1);
+ UPD7759(config, m_upd7759);
+ m_upd7759->md_w(0);
+ m_upd7759->drq().set(FUNC(segas16b_state::upd7759_generate_nmi));
+ m_upd7759->add_route(0, "netlist", 1.0, 2);
+
+ NETLIST_SOUND(config, "netlist", 48000)
+ .set_source(netlist_segas16b_audio)
+ .add_route(ALL_OUTPUTS, "mono", 1.0);
+
+ // please refer to the netlist code for details about
+ // the multipliers and offsets.
+ NETLIST_STREAM_INPUT(config, "netlist:cin0", 0, "CH1.IN")
+ .set_mult_offset(0.5/32768.0, 2.5);
+ NETLIST_STREAM_INPUT(config, "netlist:cin1", 1, "CH2.IN")
+ .set_mult_offset(0.5/32768.0, 2.5);
+ NETLIST_STREAM_INPUT(config, "netlist:cin2", 2, "SPEECH.I")
+ .set_mult_offset(0.001020/32768.0/2.0, 0.001020/2.0);
+
+ NETLIST_STREAM_OUTPUT(config, "netlist:cout0", 0, "OUT").set_mult_offset(30000.0 / 0.2, 0.0);
+#else
YM2151(config, m_ym2151, MASTER_CLOCK_8MHz/2).add_route(ALL_OUTPUTS, "mono", 0.43);
UPD7759(config, m_upd7759);
m_upd7759->md_w(0);
m_upd7759->drq().set(FUNC(segas16b_state::upd7759_generate_nmi));
m_upd7759->add_route(ALL_OUTPUTS, "mono", 0.48);
+#endif
}
void segas16b_state::system16b_mc8123(machine_config &config)
diff --git a/src/mame/nl.lst b/src/mame/nl.lst
index 5520fe1e376..fe8a59900a2 100644
--- a/src/mame/nl.lst
+++ b/src/mame/nl.lst
@@ -290,6 +290,150 @@ popeyej
popeyejo
popeyehs
+@source:segas16b.cpp
+aceattac // (c) 1988 (FD1094)
+//afightere
+//afighterf
+//afighterg
+//afighterh
+aliensyn // (c) 1987 (Unprotected)
+aliensyn3 // (c) 1987 (FD1089A)
+aliensyn7 // (c) 1987 (MC-8123B)
+aliensynj // (c) 1987 (FD1089A)
+altbeast // (c) 1988 (8751)
+altbeast2 // (c) 1988 (MC-8123B)
+altbeast4 // (c) 1988 (MC-8123B)
+altbeast5 // (c) 1988 (FD1094)
+altbeast5d //
+altbeast6 // (c) 1988 (8751)
+altbeastj // (c) 1988 (8751)
+altbeastj1 // (c) 1988 (protected)
+altbeastj3 // (c) 1988 (FD1094)
+altbeastj3d //
+atomicp // (c) 1990 Philko - korean clone board
+aurail // (c) 1990 Sega / Westone
+aurail1 // (c) 1990 Sega / Westone (FD1089B)
+aurail1d //
+aurailj // (C) 1990 Sega / Westone (FD1089A)
+aurailjd //
+bayroute // (c) 1989 Sunsoft / Sega (FD1094)
+bayroute1 // (c) 1989 Sunsoft / Sega (Unprotected)
+bayrouted //
+bayroutej // (c) 1989 Sunsoft / Sega (FD1094)
+bayroutejd //
+bullet // (c) 1987 (FD1094)
+bulletd //
+cencourt // (c) 1988 (MC-8123B)
+cotton // (c) 1990 (FD1094)
+cottond //
+cottonj // (c) 1990 (FD1094)
+cottonja // (c) 1990 (FD1094)
+cottonjad //
+cottonjd //
+cottonu // (c) 1990 (FD1094)
+cottonud //
+ddux // (c) 1989 (FD1094)
+ddux1 // (c) 1989 (8751)
+dduxd //
+dduxj // (c) 1989 (FD1094)
+dduxjd //
+//defense // (c) 1987 (FD1094)
+dfjail //
+dunkshot // (c) 1986 (FD1089A)
+dunkshota // (c) 1986 (FD1089A)
+dunkshoto // (c) 1986 (FD1089A)
+eswat // (c) 1989 (FD1094)
+eswatd //
+eswatj // (c) 1989 (FD1094)
+eswatj1 // (c) 1989 (FD1094)
+eswatj1d //
+eswatjd //
+eswatu // (c) 1989 (FD1094)
+eswatud //
+exctleag // (c) 1988 (FD1094)
+exctleagd //
+fantzn2x // (c) 2008 Sega / M2
+fantzn2xp // (c) 2008 Sega / M2
+//fantzoneta // (c) 2008 Sega / M2 (bootleg conversion)
+fpoint // (c) 1989 (Japan, FD1094)
+fpoint1 // (c) 1989 (Japan, FD1094)
+fpoint1d //
+fpointbj // (c) 1989 (Datsu bootleg, Japan)
+fpointbl // (c) 1989 (Datsu bootleg)
+fpointbla //
+fpointd //
+goldnaxe // (c) 1989 (8751)
+goldnaxe1 // (c) 1989 (FD1094)
+goldnaxe1d //
+goldnaxe2 // (c) 1989 (8751)
+goldnaxe3 // (c) 1989 (FD1094)
+goldnaxe3d //
+goldnaxej // (c) 1989 (FD1094)
+goldnaxejd //
+goldnaxeu // (c) 1989 (FD1094)
+goldnaxeud //
+hwchamp // (c) 1987 (Unprotected)
+hwchampj // (c) 1987 (FD1094)
+hwchampjd //
+isgsm //
+lockonph //
+mvp // (c) 1989 (FD1094)
+mvpd //
+mvpj // (c) 1989 (FD1094)
+mvpjd //
+passsht // (c) 1988 (FD1094)
+passshta // (c) 1988 (FD1094)
+passshtad //
+passshtd //
+passshtj // (c) 1988 (FD1094)
+passshtjd //
+riotcity // (c) 1991 Sega / Westone (Unprotected)
+ryukyu // (c) 1990 (FD1094)
+ryukyua // (c) 1990 (FD1094)
+ryukyud //
+//sdib // (c) 1987 (FD1089A)
+//sdibl // (c) 1987 bootleg
+//sdibl2 // bootleg
+//sdibl3 // bootleg
+//sdibl4 // bootleg
+//sdibl5 // bootleg
+//sdibl6 // bootleg
+shinfz //
+//shinobi2 // (c) 1987 (FD1094)
+//shinobi2d //
+//shinobi3 // (c) 1987 (MC-8123B)
+//shinobi4 // (c) 1987 (MC-8123B)
+//shinobi5 // (c) 1987 (Unprotected)
+//shinobi6 // (c) 1987 (Unprotected)
+sjryuko // (c) 1988 White Board (FD1094)
+snapper // (c) 1990 Philko - korean clone board
+sonicbom // (c) 1987 (FD1094)
+sonicbomd //
+suprleag // (c) 1987 (FD1094)
+tetrbx //
+//tetris1 // (c) 1988 (FD1094) S16B
+//tetris1d //
+//tetris2 // (c) 1988 (FD1094) S16B
+//tetris2d //
+timescan // (c) 1987 (Unprotected)
+toryumon // (c) 1995 (Unprotected)
+tturf // (c) 1989 Sega / Sunsoft (8751)
+tturfu // (c) 1989 Sega / Sunsoft (8751)
+ultracin // (c) 1996 Sega (Unprotected)
+wb3 // (c) 1988 Sega / Westone (8751)
+wb32 // (c) 1988 Sega / Westone (FD1094)
+wb32d //
+wb33 // (c) 1988 Sega / Westone (FD1094)
+wb33d //
+wb34 // (c) 1988 Sega / Westone (FD1094)
+wb34d //
+wrestwar // (c) 1989 (8751)
+wrestwar1 // (c) 1989 (FD1094)
+wrestwar1d //
+wrestwar2 // (c) 1989 (FD1094)
+wrestwar2d //
+
+
@source:testpat.cpp
tp1983
tp1985
diff --git a/src/osd/modules/render/drawogl.cpp b/src/osd/modules/render/drawogl.cpp
index 6ee43cd57b7..b6b9a25c5ab 100644
--- a/src/osd/modules/render/drawogl.cpp
+++ b/src/osd/modules/render/drawogl.cpp
@@ -20,6 +20,7 @@
#include "osdcomm.h"
#include "emu.h"
#include "emuopts.h"
+#include "rendutil.h"
#ifdef OSD_MAC
#define GL_SILENCE_DEPRECATION (1)
@@ -135,7 +136,7 @@ typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuin
//============================================================
#define DEBUG_MODE_SCORES 0
-#define USE_WIN32_STYLE_LINES 0 // use the same method baseline does - yields somewhat nicer vectors but a little buggy
+#define USE_WIN32_STYLE_LINES 1 // use the same method baseline does - yields somewhat nicer vectors but a little buggy
//============================================================
// CONSTANTS
@@ -150,7 +151,8 @@ enum
TEXTURE_TYPE_SURFACE
};
-
+//#undef GL_TEXTURE_2D
+//#define GL_TEXTURE_2D GL_TEXTURE_2D_MULTISAMPLE
//============================================================
// MACROS
//============================================================
@@ -185,7 +187,7 @@ struct line_aa_step
float weight; // weight contribution
};
-#if 0
+#if 1
static const line_aa_step line_aa_1step[] =
{
{ 0.00f, 0.00f, 1.00f },
@@ -1123,11 +1125,21 @@ int renderer_ogl::draw(const int update)
GLsizei iScale = 1;
+#if 1
+ //glEnable(GL_FRAMEBUFFER_SRGB);
+ glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
+ glEnable(GL_LINE_SMOOTH);
+ //glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
+ //glEnable(GL_POLYGON_SMOOTH);
+ glEnable(GL_MULTISAMPLE_ARB);
+ glEnable(GL_MULTISAMPLE);
+#endif
/*
Mac hack: macOS version 10.15 and later flipped from assuming you don't support Retina to
assuming you do support Retina. SDL 2.0.11 is scheduled to fix this, but it's not out yet.
So we double-scale everything if you're on 10.15 or later and SDL is not at least version 2.0.11.
*/
+
#if defined(SDLMAME_MACOSX) || defined(OSD_MAC)
SDL_version sdlVers;
SDL_GetVersion(&sdlVers);
@@ -1263,10 +1275,10 @@ int renderer_ogl::draw(const int update)
pendingPrimitive=GL_NO_PRIMITIVE;
}
- set_blendmode(sdl, PRIMFLAG_GET_BLENDMODE(prim.flags));
+ //set_blendmode(sdl, PRIMFLAG_GET_BLENDMODE(prim.flags));
// compute the effective width based on the direction of the line
- effwidth = prim.width();
+ effwidth = prim.width;
if (effwidth < 0.5f)
effwidth = 0.5f;