diff options
-rw-r--r-- | src/mame/drivers/specpls3.cpp | 5 | ||||
-rw-r--r-- | src/osd/modules/render/bgfx/chainmanager.cpp | 5 | ||||
-rw-r--r-- | src/osd/modules/render/drawbgfx.cpp | 12 |
3 files changed, 13 insertions, 9 deletions
diff --git a/src/mame/drivers/specpls3.cpp b/src/mame/drivers/specpls3.cpp index 8ba3b923c0a..08ee79c4ecd 100644 --- a/src/mame/drivers/specpls3.cpp +++ b/src/mame/drivers/specpls3.cpp @@ -371,10 +371,11 @@ static void specpls3_floppies(device_slot_interface &device) device.option_add("3ssdd", FLOPPY_3_SSDD); } -bool specpls3_state::is_contended(offs_t offset) { +bool specpls3_state::is_contended(offs_t offset) +{ u8 bank = m_bank_ram[3]->entry(); return spectrum_state::is_contended(offset) - || ((offset >= 0xc000 && offset <= 0xffff) && (bank & 4)); // Memory banks 4,5,6 and 7 are contended + || ((offset >= 0xc000 && offset <= 0xffff) && (bank & 4)); // Memory banks 4, 5, 6 and 7 are contended } /* F4 Character Displayer */ diff --git a/src/osd/modules/render/bgfx/chainmanager.cpp b/src/osd/modules/render/bgfx/chainmanager.cpp index b0a239756c6..afbb7a99500 100644 --- a/src/osd/modules/render/bgfx/chainmanager.cpp +++ b/src/osd/modules/render/bgfx/chainmanager.cpp @@ -468,7 +468,10 @@ uint32_t chain_manager::update_screen_textures(uint32_t view, render_primitive * if (texture == nullptr) { - bgfx_texture *texture = new bgfx_texture(full_name, dst_format, tex_width, tex_height, mem, BGFX_SAMPLER_U_CLAMP | BGFX_SAMPLER_V_CLAMP | BGFX_SAMPLER_MIN_POINT | BGFX_SAMPLER_MAG_POINT | BGFX_SAMPLER_MIP_POINT, pitch, prim.m_rowpixels, width_div_factor, width_mul_factor); + uint32_t flags = BGFX_SAMPLER_MIN_POINT | BGFX_SAMPLER_MAG_POINT | BGFX_SAMPLER_MIP_POINT; + if (!PRIMFLAG_GET_TEXWRAP(prim.m_flags)) + flags |= BGFX_SAMPLER_U_CLAMP | BGFX_SAMPLER_V_CLAMP; + bgfx_texture *texture = new bgfx_texture(full_name, dst_format, tex_width, tex_height, mem, flags, pitch, prim.m_rowpixels, width_div_factor, width_mul_factor); m_textures.add_provider(full_name, texture); if (prim.m_prim->texture.palette) diff --git a/src/osd/modules/render/drawbgfx.cpp b/src/osd/modules/render/drawbgfx.cpp index 7c509d0f441..07570882ec0 100644 --- a/src/osd/modules/render/drawbgfx.cpp +++ b/src/osd/modules/render/drawbgfx.cpp @@ -542,11 +542,11 @@ void renderer_bgfx::render_post_screen_quad(int view, render_primitive* prim, bg vertex(&vertices[4], x[2], y[2], 0, 0xffffffff, u[2], v[2]); vertex(&vertices[5], x[0], y[0], 0, 0xffffffff, u[0], v[0]); - uint32_t texture_flags = BGFX_SAMPLER_U_CLAMP | BGFX_SAMPLER_V_CLAMP; + uint32_t texture_flags = 0U; + if (!PRIMFLAG_GET_TEXWRAP(prim->flags)) + texture_flags |= BGFX_SAMPLER_U_CLAMP | BGFX_SAMPLER_V_CLAMP; if (video_config.filter == 0) - { texture_flags |= BGFX_SAMPLER_MIN_POINT | BGFX_SAMPLER_MAG_POINT | BGFX_SAMPLER_MIP_POINT; - } uint32_t blend = PRIMFLAG_GET_BLENDMODE(prim->flags); bgfx::setVertexBuffer(0,buffer); @@ -602,11 +602,11 @@ void renderer_bgfx::render_textured_quad(render_primitive* prim, bgfx::Transient vertex(&vertices[4], x[2], y[2], 0, rgba, u[2], v[2]); vertex(&vertices[5], x[0], y[0], 0, rgba, u[0], v[0]); - uint32_t texture_flags = BGFX_SAMPLER_U_CLAMP | BGFX_SAMPLER_V_CLAMP; + uint32_t texture_flags = 0U; + if (!PRIMFLAG_GET_TEXWRAP(prim->flags)) + texture_flags |= BGFX_SAMPLER_U_CLAMP | BGFX_SAMPLER_V_CLAMP; if (video_config.filter == 0) - { texture_flags |= BGFX_SAMPLER_MIN_POINT | BGFX_SAMPLER_MAG_POINT | BGFX_SAMPLER_MIP_POINT; - } const bool is_screen = PRIMFLAG_GET_SCREENTEX(prim->flags); uint16_t tex_width(prim->texture.width); |