Comments (6)
Technical notes:
- it does not occur on real hardware
- tested that all objects are parsed within the line time
- occurs regardless of
-d NOSOUND
- occurs even if
inzone
is only checked at the last state - changing the line at which DMA stats/finishes does not fix it
- blocking writes to OBJ RAM during DMA copying corrupts the sprite data even more
- shortening the VB-related signal sent to the CPU during DMA to the minimum necessary hangs up the game
The CPU writes to the OBJ LUT while DMA is still occuring, corrupting the data. Note how the CPU is waiting for vb_start_n to go down, but it does not check it again and seems to assume some time based on the CPU speed itself.
Using sim_inputs.hex.zip as the simulation inputs with the command jtsim -nosnd -inputs -video 2650 -w 2500 -dipsw ff5eff
reproduces the problem at frame 2560.
- Reducing the CPU speed to a cen below 18MHz fixes the problem. Checked that at 19.5MHz the problem persists
This seems to be caused by JTKCPU working much faster than the original CPU, by some 25% at least.
Fixed in 42649c6
from jtcores.
Just tested in the new build (1.2.24), First Boss seems stable! Unfortunately, it crops up with Evil Newt and Alien-Bat Ripley in the subsequent stage if you get hit…
from jtcores.
Blast. No easy victory. That didn't happen before, did it?
from jtcores.
Not to my knowledge (played that stage 3 times on previous build and didn’t see it); there’s also something a little off with scrolling on a crt; it’s as if there’s a 15% frameskip/slight judder happening, could possibly be related? I’ll open a separate issue with more info/relevant video captures; Aliens might be the only game I’ve spent more time playing in the arcade than Street Fighter II!
Edit: other than Evil Newt at level start, the sprite most affected seems to be the extra frame when Ripley gets hit; note she doesn’t actually hold a gun sprite when hit (even though it looks like she should).
from jtcores.
- DMA buffer clear time adjusted to match the original 341.3us, that seems to fix this issue, even with the CPU set to 24MHz
- Trying to match the time of the DMA operation after the buffer clear breaks many sprites, so this may require to match correctly the CPU speed to make it work perfectly.
However, some sprites blink a bit. I think the blinking is better than getting random sprites so I have pushed the new version to JTBIN.
from jtcores.
It looks like the status bit read by the CPU was inverted. Thus, the CPU was writting sprite data during blanking instead of during active video. Everything should work now well. I'm updating the files in a few minutes.
from jtcores.
Related Issues (20)
- shouse: add flip option HOT 1
- jtframe_hsize: center image horizontally HOT 2
- Toki: Top line flashing glitch.
- Namco cores removed HOT 1
- Toki won't work with 15khz intervideo arcade monitor HOT 5
- Parodius Da - Incorrect Button Mapping when using DB15 Joystick? HOT 2
- cps1, 3wonders: layer priority problem, Lou's gun shown out of frame HOT 3
- cps1/cps15: support for scene simulations
- aliens,s16,s16b,shouse,simson: DDR load on MiSTer HOT 3
- s18: identify missing sounds
- [Enhancement] Rastan Core: Support for Rainbow Islands? HOT 2
- Outrun doesn't play tune when.. HOT 2
- The Simpsons doesn't play The Simpson theme when... HOT 2
- s18: shdancer blank tile during magic
- s18: shdancer background not drawn completely HOT 1
- Time scanner set 2 HOT 1
- 1942: graphic bug with Boss (big airplane) HOT 4
- Workaround for MiSTer controller limitation: 3P/3K
- Music on radio screen of Out Run HOT 6
- sz and trojan: don't boot up(MiSTer)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jtcores.