Search found 25 matches

by TRAC
Fri Sep 08, 2006 12:36 pm
Forum: Development
Topic: Another LUT->bit transformation request x.x
Replies: 15
Views: 11742

...I should add that if you encode speeds in a few bits of a lookup table you already have, then you have already paid for the cache miss. That might make it preferable to TRAC's method (I don't know). Even if that is possible, you may very well end up slowing down the use of the piggybacked LUT, w...
by TRAC
Wed Oct 12, 2005 12:18 am
Forum: Development
Topic: SPC700
Replies: 41
Views: 41208

IIRC, DAA/DAS on x86 can have a 'double carry/borrow' into the high nybble for invalid values, and the 6502-family and SPC700 do not have that issue. Because of this, for accurate outputs of SPC700 DAA/DAS, x86 DAA/DAS is useless. Also, because of the differences in results, the flags are not the sa...
by TRAC
Fri Jul 15, 2005 4:58 am
Forum: Development
Topic: SPC700
Replies: 41
Views: 41208

Overload, re: your SPC flag test program... I was trying to debug why it was freezing on SNEeSe, obviously a SNEeSe problem since it works MOST of the time on the real hardware, when I noticed a shortcoming in the test source. Sometimes, the test program seems to freeze on my SNES + copier. Most of ...
by TRAC
Tue Jun 28, 2005 2:13 pm
Forum: Development
Topic: SPC700
Replies: 41
Views: 41208

Just committed fixes to DAA and DAS opcodes to SNEeSe CVS, as well as BRK and RETI support. (which I suspect may be broken...) Also committed changes to DIV to use anomie's algorithm. DAA and DAS can both alter their behavior based on the H flag. I used a modified version of anomie's APU test progra...
by TRAC
Mon Jun 27, 2005 2:08 pm
Forum: Development
Topic: SPC700
Replies: 41
Views: 41208

How does the break flag affect xcn? I don't quite follow. The 'effect' was that if break flag is set before the test, then the test would fail, even if the test would pass if break flag was clear prior. Nothing in the XCN test (or any other) affects the break flag (on the stack or otherwise). That ...
by TRAC
Tue Jun 21, 2005 6:10 pm
Forum: Development
Topic: SPC700
Replies: 41
Views: 41208

Very good work, interesting test and interesting results. Unfortunately, the test has a shortcoming, which can be revealed by adding the bytes $0D $AE $08 $10 $2D $8E (push psw, pop a, or a,#$10, push a, pop psw) before the spc_xcn_test label and extending the test size appropriately ($7D). Combined...
by TRAC
Mon Jun 13, 2005 2:10 am
Forum: Development
Topic: Latch timing
Replies: 192
Views: 126774

anomie wrote:You're right, of the MOV ops, only MOV (X)+,A and MOV dd,ds don't read the dest. BTW, i don't seem to have a listing for a MOV (X), (Y) opcode. And MOVW d,YA only reads the low byte of dest.
Yeah, my bad. :oops: I've been going at this code too long, there is no MOV (X),(Y).
by TRAC
Tue Jun 07, 2005 9:18 am
Forum: Development
Topic: Latch timing
Replies: 192
Views: 126774

(edited for clarity) anomie, (re: SPC700) you mentioned that ADDW/SUBW set H flag on high byte; is Z flag set on high byte only also, or on the full result? Also, is Z flag set on the high byte only or the full result for INCW/DECW? Regarding registers FD-FF (timer counters) being reset on 'write'; ...
by TRAC
Tue Mar 15, 2005 6:57 am
Forum: Development
Topic: Latch timing
Replies: 192
Views: 126774

They agree, except for two things. For invalid headers, snes9x uses ~0x7FF, while SNEeSe uses ~0xFFF. And in the Method 2 and 3 filters, snes9x at one point uses "- (prev1 >> 1)" while SNEeSe uses "+ (-last2 >> 1)". Any comments? SNEeSe is incorrect on the invalid headers, will ...
by TRAC
Sun Mar 13, 2005 12:03 pm
Forum: Development
Topic: Latch timing
Replies: 192
Views: 126774

More SPC700 info tonight. On reset, the SPC700 side of the IO registers ($00f4-7) does get reset. I set things up with ldx #$0200 stx $2142 stz $2141 lda #$cc sta $2140 stp And on reset $2140-1 were displaying $bbaa rather than what my code at $0200 would do. I recently did some tests that verified...
by TRAC
Wed Mar 09, 2005 1:36 am
Forum: Development
Topic: Latch timing
Replies: 192
Views: 126774

Yes, that's exactly what I was trying to say. I'm going to copy that ;) Hurrah! Also, about the 4-bit counter - do we know if it wraps around, or saturates? They wrap. This has been verified, then? Well, the 5A22's IRQ timer actually treats all dots on the scanline as 4 master cycles no matter what...
by TRAC
Tue Mar 08, 2005 8:57 am
Forum: Development
Topic: Latch timing
Replies: 192
Views: 126774

anomie wrote:
TRAC wrote:Have attempts been made to set IRQs for H=340? I can't seem to remember... :oops:
No IRQ will trigger for H=340.
Then.. one would expect that, while the latches report normal-length dots for the 'short' line on odd NI frames, the 5A22 still treats them as long dots?
by TRAC
Tue Mar 08, 2005 6:27 am
Forum: Development
Topic: Latch timing
Replies: 192
Views: 126774

-- edited many times - hopefully not again [8-May-2005 - 0252 - 0500 GMT] We can only examine the top level directly. If the middle level is cleared on disable or on enable, there's no observable difference if it doesn't increment while disabled. I suspect the bottom level runs constantly, and that ...
by TRAC
Tue Mar 08, 2005 3:40 am
Forum: Development
Topic: Latch timing
Replies: 192
Views: 126774

Combine this with the fact that estimates for the 'worst case' bandwidth requirements by the SDSP would require considerably more bandwidth than 1.024MB/s, upwards to twice that, and you start suspecting that another solution needs to be found. i'm not familiar with these estimates... For a given a...
by TRAC
Mon Mar 07, 2005 3:50 pm
Forum: Development
Topic: Latch timing
Replies: 192
Views: 126774

A few opcodes at least are fairly obvious, for example it seems that it needs an IO cycle to do the +X in "d+X", but no IO cycle between the reads and writes in something like "ASL d". Branches take 2 extra cycles when successful (i'd guess it always does the equivalent of 65816...
by TRAC
Mon Mar 07, 2005 1:30 pm
Forum: Development
Topic: Latch timing
Replies: 192
Views: 126774

Oh, and note that an IRQ set for (153,240) will not trigger on the short frame in non-interlace mode. And for some reason, an IRQ set for dot 153 on the last scanline of the frame (261, or 262 for interlace mode long frames) will not trigger. Perhaps the IRQ H-counter does not suffer from the 'mani...
by TRAC
Thu Dec 16, 2004 3:29 pm
Forum: Development
Topic: Frame length
Replies: 15
Views: 10514

The dev forum has been dead for a while. I wouldn't say tolerate, I'd say thanks for bringing it back to life! Indeed, Nach. Hurrah for byuusan, who is willing to ask questions, accept new information, and provide excuses for much info to be gathered and verified. Now if only I'd get around to veri...
by TRAC
Tue Dec 14, 2004 5:33 am
Forum: Development
Topic: Frame length
Replies: 15
Views: 10514

On an NTSC SNES, we normally have scanlines 0-261, each with 340 dots but dots $143 and $147 are 1.5 times as long as the rest, for a total of 1364 (341 'dots') per scanline. Except line 240 ($f0) every other SNES-frame, which has $143 and $147 the normal length. Does this have any relation to $213...
by TRAC
Thu Nov 25, 2004 5:46 pm
Forum: Development
Topic: Perfecting 65816 master cycle timing
Replies: 42
Views: 28364

I know it's one pixel out, but I assume that can occur when the cycle is not exact to the pixel (at least, I hope!). Yeah, it happens. Just keep in mind that the smallest discrete unit of measurement of CPU timing is half a dot (difference between slow and fast bus cycle length), so your results co...
by TRAC
Tue Nov 16, 2004 8:52 am
Forum: Development
Topic: Perfecting 65816 master cycle timing
Replies: 42
Views: 28364

I wasn't :O The 65816 pdf states that interrupts use: Opcode fetch (who knows what address this should be 6/8 cycles) IO (always 6 cycles) Stack write * 3/4 (unless your stack is at $2100, probably always SlowROM) Vector fetch * 2 (always SlowROM) Actually, hardware interrupts have 2 IO and soft in...
by TRAC
Tue Nov 16, 2004 4:54 am
Forum: Development
Topic: Perfecting 65816 master cycle timing
Replies: 42
Views: 28364

It is just an example instruction, and it's been more-or-less been followed through by example the later test byuu did. For each of the Fetch-decode-execute stages, the evaluated address (PBR/DBR:AAH:AAL) the data is fetched/stored to, dictates the number of machine cycles (either 6,8 or 12; depend...
by TRAC
Mon Nov 15, 2004 5:28 pm
Forum: Development
Topic: Frame length
Replies: 15
Views: 10514

It's not that weird, check out some of the later NES timing docs and you'll find it has the same quirk (except it always acts like interlace is off - because it doesn't support interlace, of course).

-TRAC
by TRAC
Mon Nov 15, 2004 4:48 am
Forum: Development
Topic: Frame length
Replies: 15
Views: 10514

Frame length

Compared to what I've seen for the Genesis, Gameboy, and Wonderswan Color, yes. I admit I haven't really looked at any other systems in much detail... The Genesis, for example, has one 68k official PDF, and two or three snippets of info from various hackers, which are pasted together in different o...
by TRAC
Sun Nov 14, 2004 5:59 pm
Forum: Development
Topic: Perfecting 65816 master cycle timing
Replies: 42
Views: 28364

Notes (*doh*)

I was meaning to make more notes, and I forgot to even make these x.x There's a * (system base timing) and ** (PPU timing) that were to be referring to notes, and those notes are here. I meant to do more, but I'm TIRED. :( *'There are 341 dots per line, and 262 lines per frame.' Exceptions are descr...
by TRAC
Sun Nov 14, 2004 5:33 pm
Forum: Development
Topic: Perfecting 65816 master cycle timing
Replies: 42
Views: 28364

Greetings, everyone. :) Nach suggested I visit here, and I'm quite glad that I did. As much as I might appreciate the praise by evilant, it appears I have a bit of a task ahead of me, in attempting to clean up as much of the misinformation that remains. :cry: I tried to go through the thread and men...