|
Joined: Jun 2008
Posts: 205
Senior Member
|
Senior Member
Joined: Jun 2008
Posts: 205 |
ok I'll look into it, if Kale does not beat me. it's strange though, since we have some vertical mosaic support, but it seems to be not enough Sim Earth was one of those bastard edge cases. It's the reason we ever even found out about the per-BG mosaic counters. Specifically, it was TRAC who was responsible for figuring that part out.
|
|
|
|
Joined: May 2009
Posts: 26
Member
|
Member
Joined: May 2009
Posts: 26 |
The latest SVN causes a bug in Super Mario World. There is a slight flickering at the top of the screen while playing and after receiving a dialogue box in game the HUD disappears. Thanks.
|
|
|
|
Joined: Aug 2009
Posts: 1,251 Likes: 171
Very Senior Member
|
OP
Very Senior Member
Joined: Aug 2009
Posts: 1,251 Likes: 171 |
Did the SNES get changed to a 21.whatever MHz clock? If not, Kale, then you're stealing way too many cycles 8 master cycles is ~1 cycle at 2.68 MHz, or 1.33 cycles of what I thought MESS ran the CPU as (3.57 Mhz-ish) I'm running it at 21.whatever Then, I take the single opcodes clocks and multiply by 6. I'm sure that there are bugs in here (and I'm yet to implement cycle steal for the work RAM too), it's just sketchy atm. Plus probably we now have the probably obvious PPU timing bugs that I've said when modified the driver to run always at 512 H pixels ... EDIT: Mario Paint now gets at the aforementioned point at V=239 (BSNES is V=229) ... we are (obviously) stealing too many cycles.
Last edited by Kale; 04/07/10 01:49 PM.
|
|
|
|
Joined: Jan 2006
Posts: 3,691
Very Senior Member
|
Very Senior Member
Joined: Jan 2006
Posts: 3,691 |
small note: S-DD1 stopped to work in rev 7652 due to the changes in snes_dma (i.e. moving some variables to the state class instead of directly accessing RAM) Since I was not able to find the exact piece of code which was causing the regression, and I'm busy as hell at work, I simply reverted the function to read from snes_ram (+ a bunch of cosmetic changes). This should not introduce new regressions, but if there are any, please simply choose which snes_dma causes less damage and use that version. I hope to have some more time in the next days to find the proper solution... EDIT: ok, I'm dumb... the problems were caused by these lines: if ((offset >= 0x4300 && offset < 0x4380) ||
(offset >= 0x4800 && offset < 0x4808))
{
sdd1_mmio_write(space, (UINT32)offset, data);
return;
}
i.e. DMA addresses use sdd1_write instead of writing to the state variables... I'm going to fix this later tonight when I'm at home (hopefully)...
|
|
|
|
Joined: Aug 2009
Posts: 1,251 Likes: 171
Very Senior Member
|
OP
Very Senior Member
Joined: Aug 2009
Posts: 1,251 Likes: 171 |
Ok, I've reverted some code for now. There are still some video timing glitches, but at least they are more bearable now. I bet that something is F up somewhere, the fact that the G65816 cycle count doesn't work properly in the debugger doesn't help either. Any hints are appreciated now.
|
|
|
|
Joined: Apr 2004
Posts: 1,563 Likes: 12
Very Senior Member
|
Very Senior Member
Joined: Apr 2004
Posts: 1,563 Likes: 12 |
Reads done by the debugger are probably screwing up your cycle counts? I've had similar debugger side effects in the past where debugger reads caused irq flags to be cleared for instance.
|
|
|
|
Joined: Aug 2009
Posts: 1,251 Likes: 171
Very Senior Member
|
OP
Very Senior Member
Joined: Aug 2009
Posts: 1,251 Likes: 171 |
Uhm, for now I'm testing without the debugger, but that could be an issue as well ...
|
|
|
|
Joined: Jan 2006
Posts: 3,691
Very Senior Member
|
Very Senior Member
Joined: Jan 2006
Posts: 3,691 |
the s-dd1 vs. dma fight ended up with a draw this time, and we now have state variable properly used without screwing up completely s-dd1 games.
in any case, good work with the cycle stealing, Kale. I tried once to do the same but I thought it was cpu_eat_cycle the function to use...
|
|
|
|
Joined: Aug 2009
Posts: 1,251 Likes: 171
Very Senior Member
|
OP
Very Senior Member
Joined: Aug 2009
Posts: 1,251 Likes: 171 |
Yeah, doesn't make much sense ... but anyway, my basic goal is now reached, a.k.a. discover for good what are the "false positive games", there are two/three crashes that I would like to check (Kishin Douji Zenki 3 - Tenchi Meidou (J), Sound Novel Tsukuru,Super Tetris 2 & Bombliss Genteiban (J) ... )
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
There's some way to detect if an access is from the debugger and handle it differently. AFAIK mess/machine/apple2.c does it to protect the read-to-trigger softswitches.
|
|
|
Forums9
Topics9,320
Posts121,944
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|