Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
c2105bfe1f
10 changed files with 40 additions and 40 deletions
|
@ -8,11 +8,18 @@ https://github.com/AppleWin/AppleWin/issues/new
|
|||
|
||||
Tom Charlesworth
|
||||
|
||||
1.29.16.0 - 1 Nov 2020
|
||||
----------------------
|
||||
. [Bug #851] RGB support: AppleColor card (-rgb-card-type apple) is now an alias for Video7's RGB-SL7 card (-rgb-card-type sl7).
|
||||
. [Bug #850] RGB support: removed the preconditions for AN3 setting the RGB video mode flags.
|
||||
- IOUDIS soft-switch is for //c only, so removed support for //e.
|
||||
|
||||
|
||||
1.29.15.0 - 25 Oct 2020
|
||||
-----------------------
|
||||
. [Change #764] Fully support the RGB cards, and introduce a new 'Color (RGB Card/Monitor)' dedicated video mode.
|
||||
- [PR #837] Support for 'Le Chat Mauve' Eve and Féline RGB cards.
|
||||
- [PR #826] Support for Video7's SL7 RGB card.
|
||||
- [PR #826] Support for Video7's RGB-SL7 card.
|
||||
- New command line switch to select RGB card type: -rgb-card-type: apple (default), sl7, eve, feline
|
||||
- New command line switches for SL7: -rgb-card-foreground <color> & -rgb-card-background <color>
|
||||
- NB. The previous 'Color (RGB Monitor)' has now been renamed to 'Color (Composite Idealized)'.
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
follows:
|
||||
</p>
|
||||
-conf <pathname><br>
|
||||
Use an INI file for configuration instead of the Registry.<br><br>
|
||||
Use an INI file for configuration instead of the Registry.<br>
|
||||
Use this switch if you want to have multiple copies of AppleWin with different configurations, or don't want to use the Registry.<br><br>
|
||||
-current-dir <path><br>
|
||||
This is guaranteed to be processed after all the image loading switches (eg. -d1, -h1, etc).<br>
|
||||
Use this switch if you have a mix of (eg) -d1 and -h1 loading images from different folders, and you want to guarantee the current dir.<br><br>
|
||||
|
@ -141,10 +142,10 @@
|
|||
</ul>
|
||||
-rgb-card-type <apple|sl7|eve|feline><br>
|
||||
<ul>
|
||||
<li><i>apple</i> is the Extended 80-Column Text/AppleColor Adaptor Card (default).</li>
|
||||
<li><i>apple</i> is Apple's Extended 80-Column Text/AppleColor Adaptor Card (default).</li>
|
||||
<li><i>sl7</i> is Video-7's RGB-SL7 card.</li>
|
||||
<ul>
|
||||
<li>NB. This card supports an extra foreground/background hi-res mode that can be triggered by AN3 switching, resulting in corrupt color graphics!
|
||||
<li>NB. Both these apple/sl7 cards support an extra foreground/background hi-res mode that can be triggered by AN3 switching, resulting in corrupt color graphics! See <a href="Troubleshooting.html">troubleshooting</a>.
|
||||
</ul>
|
||||
<li><i>eve/feline</i> are Le Chat Mauve variants.</li>
|
||||
</ul>
|
||||
|
@ -153,7 +154,7 @@
|
|||
-rgb-card-background <n><br>
|
||||
Where n is [0..15]. Defaults are foreground=15(White) and background=0(Black).<br>
|
||||
The only supported DIPSW colors are: Black=0, Blue=6, Orange=9, Green=12, White=15<br>
|
||||
NB. Only supported by '-rgb-card-type sl7'.<br>
|
||||
NB. Only supported by '-rgb-card-type <apple|sl7>'.<br>
|
||||
Use in conjunction with the 'Color (RGB Card/Monitor)' video mode.<br><br>
|
||||
-rgb-card-invert-bit7<br>
|
||||
Force the RGB card to invert bit7 in MIX mode. Enables the correct rendering for Dragon Wars.<br>
|
||||
|
|
|
@ -55,9 +55,8 @@
|
|||
Color (RGB Card/Monitor) and title compatibility issues:
|
||||
<ul>
|
||||
<li>Dragon Wars: double hi-res bit7 needs inverting, so use the -rgb-card-invert-bit7 command line switch.</li>
|
||||
<li>Prince of Persia: the hi-res graphics will switch to B&W hi-res during the title sequence.</li>
|
||||
<li>Renegade: switches to 160x192 mode at the title screen and B&W hi-res during game play.</li>
|
||||
<li>Video7's RGB-SL7 card: corruption for titles/demos that accidentally switch to foreground/background hi-res mode, eg. French Touch DIGIDREAM demo.</li>
|
||||
<li>Renegade: switches to 160x192 mode at the title screen and then B&W (at the title screen) after game play.</li>
|
||||
<li>Apple's AppleColor card or Video7's RGB-SL7 card: corruption for titles/demos that accidentally switch to foreground/background hi-res mode, eg. French Touch DIGIDREAM demo.</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -87,6 +87,10 @@
|
|||
These PC function keys correspond to buttons on the <a href="toolbar.html">toolbar</a>.</p>
|
||||
<p><span style="font-weight: bold;">Function Key F2 + Ctrl:</span><br>
|
||||
This PC function key combo acts like Ctrl+Reset (instead of power-cycle).</p>
|
||||
<p><span style="font-weight: bold;">Function Key F3 + Ctrl:</span><br>
|
||||
This PC function key combo displays the context menu for Drive-1 (then use the cursors to select the item).</p>
|
||||
<p><span style="font-weight: bold;">Function Key F4 + Ctrl:</span><br>
|
||||
This PC function key combo displays the context menu for Drive-2 (then use the cursors to select the item).</p>
|
||||
<p><span style="font-weight: bold;">Function Key F6 + Ctrl:</span><br>
|
||||
This PC function key combo toggles between 1x and 2x window sizes.</p>
|
||||
<p><span style="font-weight: bold;">Function Key F9:</span><br>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#define APPLEWIN_VERSION 1,29,15,0
|
||||
#define APPLEWIN_VERSION 1,29,16,0
|
||||
|
||||
#define xstr(a) str(a)
|
||||
#define str(a) #a
|
||||
|
|
|
@ -1840,7 +1840,7 @@ static bool ProcessCmdLine(LPSTR lpCmdLine)
|
|||
lpCmdLine = GetCurrArg(lpNextArg);
|
||||
lpNextArg = GetNextArg(lpNextArg);
|
||||
|
||||
if (strcmp(lpCmdLine, "apple") == 0)
|
||||
if (strcmp(lpCmdLine, "apple") == 0) // Just an alias for SL7
|
||||
g_cmdLine.rgbCard = RGB_Videocard_e::Apple;
|
||||
else if (strcmp(lpCmdLine, "sl7") == 0)
|
||||
g_cmdLine.rgbCard = RGB_Videocard_e::Video7_SL7;
|
||||
|
|
|
@ -405,7 +405,7 @@ void CPropertySheetHelper::RestoreCurrentConfig(void)
|
|||
GetCardMgr().Insert(SLOT5, m_ConfigOld.m_Slot[SLOT5]);
|
||||
HD_SetEnabled(m_ConfigOld.m_bEnableHDD);
|
||||
sg_PropertySheet.SetTheFreezesF8Rom(m_ConfigOld.m_bEnableTheFreezesF8Rom);
|
||||
SetVideoRefreshRate(m_ConfigOld.m_videoRefreshRate);
|
||||
m_ConfigNew.m_videoRefreshRate = m_ConfigOld.m_videoRefreshRate; // Not SetVideoRefreshRate(), as this re-inits much Video/NTSC state!
|
||||
}
|
||||
|
||||
bool CPropertySheetHelper::IsOkToSaveLoadState(HWND hWnd, const bool bConfigChanged)
|
||||
|
|
|
@ -94,8 +94,8 @@ MEMORY MANAGEMENT SOFT SWITCHES
|
|||
$C009 W ALTZPON Enable aux memory from $0000-$01FF & avl BSR
|
||||
$C00A W SLOTC3ROMOFF Enable main ROM from $C300-$C3FF
|
||||
$C00B W SLOTC3ROMON Enable slot ROM from $C300-$C3FF
|
||||
$C07E W IOUDIS [Enhanced //e] On: disable IOU access for addresses $C058 to $C05F; enable access to DHIRES switch
|
||||
$C07F W IOUDIS [Enhanced //e] Off: enable IOU access for addresses $C058 to $C05F; disable access to DHIRES switch
|
||||
$C07E W IOUDIS [//c] On: disable IOU access for addresses $C058 to $C05F; enable access to DHIRES switch
|
||||
$C07F W IOUDIS [//c] Off: enable IOU access for addresses $C058 to $C05F; disable access to DHIRES switch
|
||||
|
||||
VIDEO SOFT SWITCHES
|
||||
$C00C W 80COLOFF Turn off 80 column display
|
||||
|
@ -130,8 +130,8 @@ SOFT SWITCH STATUS FLAGS
|
|||
$C01D R7 HIRES 1=high resolution graphics 0=low resolution
|
||||
$C01E R7 ALTCHARSET 1=alt character set on 0=alt char set off
|
||||
$C01F R7 80COL 1=80 col display on 0=80 col display off
|
||||
$C07E R7 RDIOUDIS [Enhanced //e] 1=IOUDIS off 0=IOUDIS on
|
||||
$C07F R7 RDDHIRES [Enhanced //e] 1=DHIRES on 0=DHIRES off
|
||||
$C07E R7 RDIOUDIS [//c] 1=IOUDIS off 0=IOUDIS on
|
||||
$C07F R7 RDDHIRES [Enhanced //e? or //c] 1=DHIRES on 0=DHIRES off
|
||||
*/
|
||||
|
||||
|
||||
|
@ -596,7 +596,7 @@ static BYTE __stdcall IORead_C07x(WORD pc, WORD addr, BYTE bWrite, BYTE d, ULONG
|
|||
case 0xB: return IO_Null(pc, addr, bWrite, d, nExecutedCycles);
|
||||
case 0xC: return IO_Null(pc, addr, bWrite, d, nExecutedCycles);
|
||||
case 0xD: return IO_Null(pc, addr, bWrite, d, nExecutedCycles);
|
||||
case 0xE: return IsEnhancedIIE() ? MemReadFloatingBus(SW_IOUDIS ? true : false, nExecutedCycles) // GH#636
|
||||
case 0xE: return IS_APPLE2C() ? MemReadFloatingBus(SW_IOUDIS ? true : false, nExecutedCycles) // GH#636
|
||||
: IO_Null(pc, addr, bWrite, d, nExecutedCycles);
|
||||
case 0xF: return IsEnhancedIIEorIIC() ? MemReadFloatingBus(VideoGetSWDHIRES(), nExecutedCycles) // GH#636
|
||||
: IO_Null(pc, addr, bWrite, d, nExecutedCycles);
|
||||
|
@ -632,12 +632,12 @@ static BYTE __stdcall IOWrite_C07x(WORD pc, WORD addr, BYTE bWrite, BYTE d, ULON
|
|||
case 0xB: return IO_Null(pc, addr, bWrite, d, nExecutedCycles);
|
||||
case 0xC: return IO_Null(pc, addr, bWrite, d, nExecutedCycles);
|
||||
case 0xD: return IO_Null(pc, addr, bWrite, d, nExecutedCycles);
|
||||
case 0xE: if (IsEnhancedIIE())
|
||||
case 0xE: if (IS_APPLE2C())
|
||||
SetMemMode(memmode & ~MF_IOUDIS); // disable IOU access for addresses $C058 to $C05F; enable access to DHIRES switch
|
||||
else
|
||||
return IO_Null(pc, addr, bWrite, d, nExecutedCycles);
|
||||
break;
|
||||
case 0xF: if (IsEnhancedIIE())
|
||||
case 0xF: if (IS_APPLE2C())
|
||||
SetMemMode(memmode | MF_IOUDIS); // enable IOU access for addresses $C058 to $C05F; disable access to DHIRES switch
|
||||
else
|
||||
return IO_Null(pc, addr, bWrite, d, nExecutedCycles);
|
||||
|
@ -846,7 +846,8 @@ static BYTE __stdcall IO_Cxxx(WORD programcounter, WORD address, BYTE write, BYT
|
|||
}
|
||||
}
|
||||
|
||||
if (g_NoSlotClock && IsPotentialNoSlotClockAccess(address))
|
||||
// NSC only for //e at internal C3/C8 ROMs, as II/II+ has no internal ROM here! (GH#827)
|
||||
if (!IS_APPLE2 && g_NoSlotClock && IsPotentialNoSlotClockAccess(address))
|
||||
{
|
||||
if (!write)
|
||||
{
|
||||
|
|
|
@ -1097,7 +1097,9 @@ void UpdateText80ColorCell(int x, int y, uint16_t addr, bgra_t* pVideoAddress, u
|
|||
UpdateDuochromeCell(2, 7, pVideoAddress, bits, 15, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateDuochromeCell(2, 7, pVideoAddress, bits, g_nRegularTextFG, g_nRegularTextBG);
|
||||
}
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
@ -1210,11 +1212,9 @@ void VideoSwitchVideocardPalette(RGB_Videocard_e videocard, VideoType_e type)
|
|||
|
||||
//===========================================================================
|
||||
|
||||
|
||||
static UINT g_rgbFlags = 0;
|
||||
static UINT g_rgbMode = 0;
|
||||
static WORD g_rgbPrevAN3Addr = 0;
|
||||
static bool g_rgbSet80COL = false;
|
||||
static bool g_rgbInvertBit7 = false;
|
||||
|
||||
// Video7 RGB card:
|
||||
|
@ -1223,13 +1223,6 @@ static bool g_rgbInvertBit7 = false;
|
|||
// . NB. There's a final 5th AN3 transition to set DHGR mode
|
||||
void RGB_SetVideoMode(WORD address)
|
||||
{
|
||||
|
||||
if ((address & ~1) == 0x0C) // 0x0C or 0x0D? (80COL)
|
||||
{
|
||||
g_rgbSet80COL = true;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((address & ~1) != 0x5E) // 0x5E or 0x5F? (DHIRES)
|
||||
return;
|
||||
|
||||
|
@ -1246,16 +1239,11 @@ void RGB_SetVideoMode(WORD address)
|
|||
// In Prince of Persia, in the game demo, the RGB card switches to BW DHIRES after the HGR animation with Jaffar.
|
||||
// It's actually the same on real hardware (tested on IIc RGB adapter).
|
||||
|
||||
if (address == 0x5F)
|
||||
if (address == 0x5F && g_rgbPrevAN3Addr == 0x5E)
|
||||
{
|
||||
if ((g_rgbPrevAN3Addr == 0x5E) && g_rgbSet80COL)
|
||||
{
|
||||
g_rgbFlags = (g_rgbFlags << 1) & 3;
|
||||
g_rgbFlags |= ((g_uVideoMode & VF_80COL) ? 0 : 1); // clock in !80COL
|
||||
g_rgbMode = g_rgbFlags; // latch F2,F1
|
||||
}
|
||||
|
||||
g_rgbSet80COL = false;
|
||||
g_rgbFlags = (g_rgbFlags << 1) & 3;
|
||||
g_rgbFlags |= ((g_uVideoMode & VF_80COL) ? 0 : 1); // clock in !80COL
|
||||
g_rgbMode = g_rgbFlags; // latch F2,F1
|
||||
}
|
||||
|
||||
g_rgbPrevAN3Addr = address;
|
||||
|
@ -1318,7 +1306,7 @@ void RGB_SaveSnapshot(YamlSaveHelper& yamlSaveHelper)
|
|||
yamlSaveHelper.SaveHexUint8(SS_YAML_KEY_RGB_FLAGS, g_rgbFlags);
|
||||
yamlSaveHelper.SaveHexUint8(SS_YAML_KEY_RGB_MODE, g_rgbMode);
|
||||
yamlSaveHelper.SaveHexUint8(SS_YAML_KEY_RGB_PREVIOUS_AN3, g_rgbPrevAN3Addr);
|
||||
yamlSaveHelper.SaveBool(SS_YAML_KEY_RGB_80COL_CHANGED, g_rgbSet80COL);
|
||||
yamlSaveHelper.SaveBool(SS_YAML_KEY_RGB_80COL_CHANGED, false); // unused (todo: remove next time the parent card's version changes)
|
||||
yamlSaveHelper.SaveBool(SS_YAML_KEY_RGB_INVERT_BIT7, g_rgbInvertBit7);
|
||||
}
|
||||
|
||||
|
@ -1333,7 +1321,7 @@ void RGB_LoadSnapshot(YamlLoadHelper& yamlLoadHelper, UINT cardVersion)
|
|||
|
||||
if (cardVersion >= 3)
|
||||
{
|
||||
g_rgbSet80COL = yamlLoadHelper.LoadBool(SS_YAML_KEY_RGB_80COL_CHANGED);
|
||||
yamlLoadHelper.LoadBool(SS_YAML_KEY_RGB_80COL_CHANGED); // Obsolete (so just consume)
|
||||
g_rgbInvertBit7 = yamlLoadHelper.LoadBool(SS_YAML_KEY_RGB_INVERT_BIT7);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
enum RGB_Videocard_e
|
||||
{
|
||||
Apple,
|
||||
Video7_SL7,
|
||||
Apple = Video7_SL7, // Apple's Extended 80-Column Text/AppleColor Adaptor Card is an alias for Video7's RGB-SL7
|
||||
LeChatMauve_EVE,
|
||||
LeChatMauve_Feline
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue