int log_filesys = 0;
#if TRACING_ENABLED
+#if 0
+#define TRACE(x) if (log_filesys > 0 && (unit->volflags & MYVOLUMEINFO_CDFS)) { write_log x; }
+#else
#define TRACE(x) if (log_filesys > 0) { write_log x; }
+#endif
+#define TRACEI(x) if (log_filesys > 0) { write_log x; }
#define TRACE2(x) if (log_filesys >= 2) { write_log x; }
#define TRACE3(x) if (log_filesys >= 3) { write_log x; }
#define DUMPLOCK(u,x) dumplock(u,x)
/* Still in use */
return;
- TRACE2((_T("Recycling; cache size %d, total_locked %d\n"),
+ TRACE3((_T("Recycling; cache size %d, total_locked %d\n"),
unit->aino_cache_size, unit->total_locked_ainos));
if (unit->aino_cache_size > 5000 + unit->total_locked_ainos) {
/* Reap a few. */
put_byte (unit->volume + 44, 0);
if (!uinfo->wasisempty && !uinfo->unknown_media) {
+ int isvirtual = unit->volflags & (MYVOLUMEINFO_ARCHIVE | MYVOLUMEINFO_CDFS);
/* Set volume if non-empty */
set_volume_name (unit, ctime);
- fsdb_clean_dir (&unit->rootnode);
+ if (!isvirtual)
+ fsdb_clean_dir (&unit->rootnode);
}
put_long (unit->volume + 8, unit->port);
} else if (unit->volflags & MYVOLUMEINFO_CDFS) {
struct isofs_info ii;
ret = isofs_mediainfo (unit->ui.cdfs_superblock, &ii) ? 0 : 1;
- fsu.fsu_blocks = ii.blocks;
- fsu.fsu_bavail = 0;
- blocksize = ii.blocksize;
- nr = unit->unit - cd_unit_offset;
+ if (!ret) {
+ if (ii.media) {
+ fsu.fsu_blocks = ii.blocks;
+ fsu.fsu_bavail = 0;
+ blocksize = ii.blocksize;
+ nr = unit->unit - cd_unit_offset;
+ } else {
+ ret = ERROR_NO_DISK;
+ }
+ }
} else {
ret = get_fs_usage (unit->ui.rootdir, 0, &fsu);
if (ret)
base->locked_children++;
unit->total_locked_ainos++;
}
- TRACE2((_T("Populating directory, child %p, locked_children %d\n"),
+ TRACE3((_T("Populating directory, child %p, locked_children %d\n"),
base->child, base->locked_children));
for (;;) {
uae_u64 uniq = 0;
uaecptr start = resaddr;
uaecptr residents, tmp;
- TRACE ((_T("filesystem: diagentry called\n")));
+ TRACEI ((_T("filesystem: diagentry called\n")));
filesys_configdev = m68k_areg (regs, 3);
init_filesys_diagentry ();
{
uaecptr loop;
- TRACE ((_T("Installing filesystem\n")));
+ TRACEI ((_T("Installing filesystem\n")));
uae_sem_init (&singlethread_int_sem, 0, 1);
uae_sem_init (&test_sem, 0, 1);
#define fp_round_to_minus_infinity(x) fp_floor(x)
#define fp_round_to_plus_infinity(x) fp_ceil(x)
-#define fp_round_to_zero(x) ((int)(x))
+#define fp_round_to_zero(x) ((x) >= 0.0 ? floor(x) : ceil(x))
#define fp_round_to_nearest(x) ((int)((x) + 0.5))
STATIC_INLINE tointtype toint (fptype src, fptype minval, fptype maxval)
__asm {
fld LDPTR src
- frndint
- fstp LDPTR tmp_fp
+ frndint
+ fstp LDPTR tmp_fp
}
regs.fp[reg] = tmp_fp;
}
regs.fp[reg] = sinh (src);
break;
case 0x03: /* FINTRZ */
- regs.fp[reg] = fp_round_to_zero(src);
+ regs.fp[reg] = fp_round_to_zero (src);
break;
case 0x04: /* FSQRT */
case 0x41:
match = 0;
if (dlen > 0 && (!sbi->s_hide || (!(de->flags[-sbi->s_high_sierra] & 1))) && (sbi->s_showassoc || (!(de->flags[-sbi->s_high_sierra] & 4)))) {
if (jname)
- match = _tcsicmp(jname, nameu);
+ match = _tcsicmp(jname, nameu) == 0;
else
match = isofs_cmp(name, dpnt, dlen) == 0;
}
* (c) 1995 Bernd Schmidt
*/
-#define DEBUG_STUPID 0
+#define DEBUG_STUPID 1
#include "sysconfig.h"
#include "sysdeps.h"
}
masktexture_w = dinfo.Width;
masktexture_h = dinfo.Height;
- if (0 && txdesc.Width == masktexture_w && txdesc.Height == masktexture_h && psEnabled) {
+#if 0
+ if (txdesc.Width == masktexture_w && txdesc.Height == masktexture_h && psEnabled) {
// texture size == image size, no need to tile it (Wrap sampler does the rest)
if (masktexture_w < window_w || masktexture_h < window_h) {
maskwidth = window_w;
tx = NULL;
}
} else {
- maskwidth = window_w;
- maskheight = window_h;
+#endif
+ // both must be divisible by mask size
+ maskwidth = ((window_w + masktexture_w - 1) / masktexture_w) * masktexture_w;
+ maskheight = ((window_h + masktexture_h - 1) / masktexture_h) * masktexture_h;
+#if 0
}
+#endif
if (tx) {
masktexture = createtext (maskwidth, maskheight, D3DFMT_X8R8G8B8);
if (FAILED (hr)) {
masktexture_w = maskdesc.Width;
masktexture_h = maskdesc.Height;
}
- write_log (_T("%s: mask %d*%d (%d*%d) ('%s') texture allocated\n"), D3DHEAD, masktexture_w, masktexture_h, txdesc.Width, txdesc.Height, filename);
+ write_log (_T("%s: mask %d*%d (%d*%d) %d*%d ('%s') texture allocated\n"), D3DHEAD, masktexture_w, masktexture_h, txdesc.Width, txdesc.Height, maskdesc.Width, maskdesc.Height, filename);
maskmult_x = (float)window_w / masktexture_w;
maskmult_y = (float)window_h / masktexture_h;
#define LANG_DLL 1
//#define WINUAEBETA _T("")
-#define WINUAEBETA _T("22")
-#define WINUAEDATE MAKEBD(2012, 10, 28)
+#define WINUAEBETA _T("23")
+#define WINUAEDATE MAKEBD(2012, 10, 31)
#define WINUAEEXTRA _T("")
//#define WINUAEEXTRA _T("AmiKit Preview")
#define WINUAEREV _T("")
bool original;
};
-static struct hfdlg_vals empty_hfdlg = { _T(""), _T(""), _T(""), 32, 2, 1, 0, 512, 1, 0, 0, 0, 1, 0, 1 };
+static struct hfdlg_vals empty_hfdlg = { _T(""), _T(""), _T(""), 32, 2, 1, 0, 0, 512, 1, 0, 0, 0, 1, 0, 1 };
static struct hfdlg_vals current_hfdlg;
static int archivehd;
break;
case IDC_FILESYS_SELECTOR:
DiskSelection (hDlg, IDC_PATH_FILESYS, 12, &workprefs, 0);
+ GetDlgItemText (hDlg, IDC_PATH_FILESYS, current_hfdlg.fsfilename, sizeof current_hfdlg.fsfilename / sizeof (TCHAR));
break;
case IDOK:
if (_tcslen (current_hfdlg.filename) == 0) {
- restore only single input target to default.
+Beta 23:
+
+- CDFS: Joliet CDs didn't work and caused crashes. Directory listing worked but it was only possible to open non-existing files :)
+- CDFS: ACTION_DISK_INFO never returned no disk status.
+- Filesystem path selection and default RDB settings broke in b22.
+- FPU FINTRZ didn't work correctly if input value was outside of signed 32-bit range. (Bug since the beginning?)
+
Beta 22:
- "Generic" Amiga model incorrectly enabled A3000 DMAC emulation which caused most programs that require UAE Boot ROM in