Previous Thread
Next Thread
Print Thread
Page 93 of 120 1 2 91 92 93 94 95 119 120
Joined: Jun 2008
Posts: 205
B
Senior Member
Offline
Senior Member
B
Joined: Jun 2008
Posts: 205
Quote
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.

byuu #60928 04/07/10 10:04 AM
Joined: May 2009
Posts: 26
R
Member
Offline
Member
R
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.
[Linked Image from ]

[Linked Image from ]

Joined: Aug 2009
Posts: 1,251
Likes: 171
Kale Offline OP
Very Senior Member
OP Offline
Very Senior Member
Joined: Aug 2009
Posts: 1,251
Likes: 171
Originally Posted by Heretical_One
Did the SNES get changed to a 21.whatever MHz clock?

If not, Kale, then you're stealing way too many cycles smile

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 smile 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.
Kale #60930 04/07/10 03:42 PM
Joined: Jan 2006
Posts: 3,691
Very Senior Member
Offline
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:

Code
		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
Kale Offline OP
Very Senior Member
OP Offline
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.

Kale #60932 04/07/10 05:11 PM
Joined: Apr 2004
Posts: 1,563
Likes: 12
J
Very Senior Member
Offline
Very Senior Member
J
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.

judge #60933 04/07/10 05:51 PM
Joined: Aug 2009
Posts: 1,251
Likes: 171
Kale Offline OP
Very Senior Member
OP Offline
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 ...

judge #60934 04/07/10 05:57 PM
Joined: Jan 2006
Posts: 3,691
Very Senior Member
Offline
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
Kale Offline OP
Very Senior Member
OP Offline
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) ... )

Kale #60938 04/07/10 06:44 PM
Joined: Mar 2001
Posts: 17,217
Likes: 234
R
Very Senior Member
Offline
Very Senior Member
R
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.

Page 93 of 120 1 2 91 92 93 94 95 119 120

Link Copied to Clipboard
Who's Online Now
2 members (Olivier Galibert, nerd4gw), 262 guests, and 5 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,320
Posts121,944
Members5,074
Most Online1,283
Dec 21st, 2022
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Forum hosted by www.retrogamesformac.com