d3d->texture2 = createtext(d3d, w, h, d3d->tformat);
if (!d3d->texture1 || !d3d->texture2)
return 0;
+ d3d->usetexture = d3d->texture1;
write_log (_T("%s: %d*%d main texture, depth %d\n"), D3DHEAD, w, h, d3d->t_depth);
if (d3d->psActive) {
for (int i = 0; i < MAX_SHADERS; i++) {
static void freetextures (struct d3dstruct *d3d)
{
+ d3d->usetexture = NULL;
if (d3d->texture2) {
d3d->texture2->Release();
d3d->texture2 = NULL;
return CompareString (LOCALE_INVARIANT, NORM_IGNORECASE, an1, -1, an2, -1) == CSTR_EQUAL;
}
-void to_lower (TCHAR *s, int len)
+void to_lower(TCHAR *s, int len)
{
- CharLowerBuff (s, len);
+ if (len < 0) {
+ len = _tcslen(s);
+ }
+ CharLowerBuff(s, len);
}
-void to_upper (TCHAR *s, int len)
+void to_upper(TCHAR *s, int len)
{
- CharUpperBuff (s, len);
+ if (len < 0) {
+ len = _tcslen(s);
+ }
+ CharUpperBuff(s, len);
}
\ No newline at end of file
#define LANG_DLL_FULL_VERSION_MATCH 1
#if WINUAEPUBLICBETA
-#define WINUAEBETA _T("Beta 32")
+#define WINUAEBETA _T("Beta 33")
#else
#define WINUAEBETA _T("")
#endif
-#define WINUAEDATE MAKEBD(2021, 9, 7)
+#define WINUAEDATE MAKEBD(2021, 9, 12)
//#define WINUAEEXTRA _T("AmiKit Preview")
//#define WINUAEEXTRA _T("Amiga Forever Edition")
+
+Beta 33:
+
+- DMACONR blitter busy bit state is 1 cycle later than copper waking up from blitter finished. (Circle Scroller / United Force)
+- Direct3D9 mode crash was possible when switching screen modes (b32).
+- Disassembler configuration (upper/lower case options, show calculated EA, show data pointed by EA, condition true/false), hex number prefix, min and max number of opcode/opwords. Currently only available via direct ini or registry editing, first enter debugger, then quit emulator to create default entries. Debugger sub section, debug_disasm_flags is bit mask, bits 0 to 4 are lower case bits (0=instruction name, 1=registers, 2=hex values, 3=instruction size), 4=show T/F, 5=show EA, 6=show EA contents, 7=show instruction opcode/opwords. Currently they only affect disassembler output. Defaults changed to lower case.
+- Don't log flood "DMAL error" messages if (totally unusable) programmed mode with HTOTAL smaller than last audio DMA slot.
+- DMAL (Serial DMA slot allocation information from Paula to Agnus) start cycle was not updated to match new custom chipset emulation.
+- Small audio period causing repeated samples is now fully accurate, including 1 extra cycle delay if DMA request includes pointer reset (sample restart).
+- Very strange programmed modes could have made it impossible to quit emulator normally.
+- Adjusted behavior of CPU reads from write-only custom registers (Bozebobs / Area08)
+- Fixed crash when loading some old A500 statefiles with CD32 CD incorrectly enabled.
+- Adjusted "Smooth Copper" hack to work with new custom chipset emulation (not fully correct yet).
+- Console log/debugger DPI adjustment.
+
Beta 32:
- HDIW blanking could get stuck in always-on state if VPOSW was written mid screen with out of range values. (Agony Psygnosis title screen become fully border color blanked if ECS)
newpos = 0;
if (newpos) {
RECT rc;
+ int dpi = getdpiforwindow(hwnd);
+ x = x * dpi / 96;
+ y = y * dpi / 96;
+ w = w * dpi / 96;
+ h = h * dpi / 96;
rc.left = x;
rc.top = y;
rc.right = x + w;
if (GetWindowRect (hwnd, &r)) {
r.bottom -= r.top;
r.right -= r.left;
+ int dpi = getdpiforwindow(hwnd);
+ r.left = r.left * 96 / dpi;
+ r.right = r.right * 96 / dpi;
+ r.top = r.top * 96 / dpi;
+ r.bottom = r.bottom * 96 / dpi;
regsetint (NULL, _T("LoggerPosX"), r.left);
regsetint (NULL, _T("LoggerPosY"), r.top);
regsetint (NULL, _T("LoggerPosW"), r.right);