Search found 14 matches

by jolly_codger
Sat Jul 12, 2008 7:04 am
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

Holy poons! Very fantastic work Neviksti (and Andreas Naive). Doubtful I'll be of any practical help - won't work on this till much later. IIRC: (1) = ..? This one throws out zero bytes really fast (2) = 2/4-bpp SNES bitmaps The one that recalls to memory from FEOEZ: (2) 13 C0 89 80 00 00 00 00 --> ...
by jolly_codger
Thu Jul 10, 2008 10:39 am
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

There's some odd things happening. Began running a PROB checker and this came up. output_7030_an1.bin bitplane 5: [00] 5A -> 5A [0,-,*] [00] 5A -> 25 [1,L,*] [01] 25 -> 5A [0,L,-] ERROR = 1D [14] 5A -> 25 [0] Real pattern: [00] 5A -> 5A [00] 5A -> 25 [01] 25 -> 5A [??] 5A -> 25 [??] 25 -> 25 -------...
by jolly_codger
Wed Jul 09, 2008 6:34 pm
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

What if the MPS interval < LPS interval some time before the span collapse? Then we'd have to exchange the two comparison codes (maybe this can never happen though).

(Update read)
Oops. Never mind. :)
by jolly_codger
Mon Jul 07, 2008 2:33 pm
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

Those are some quality finds! :) Chose to not store a MPS variable (default 0 always). 8 PROB vars (one per bitplane). Updated per bit discarder. Which gets: (LASTMPS ~ last bits output) // bit 9,13 if( bits_correct==8 || bits_correct==12 ) { if( BIT(LASTMPS,7) == 1 ) mps_flip = true; } // bit 10,14...
by jolly_codger
Mon Jun 30, 2008 12:37 pm
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

Here's some twisted logic. Bits 17-18. bits_correct = # bits output so far LASTMPS ~ last output data MPS_INDEX ~ CONTEXT_INDEX (same functionality) // Before hit,miss predictor if( bits_correct==16 ) { // MPS <--> LPS //if( BIT(PREDICT,15) == 0 ) if( BIT(LASTMPS,15) == 1 ) { MPS_INDEX[ CONTEXT_MPS ...
by jolly_codger
Sat Jun 28, 2008 5:32 am
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

Bit 20 complete mess. (: surprisingly works. Bit 21 Testing only when the above 2 bits predicted a hit, then the PROB floats between 0x25 and 0x11. Unless someone makes 'big boss evil' logic to make it work, this path ends here. (yay!) Final 'brute force' version (1-20) http://www.mediafire.com/?ngb...
by jolly_codger
Fri Jun 27, 2008 3:47 pm
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

'Trying' to get bit 20 to print out using brute force (barmy crazy hard). If it works, history implies bits 21-23 should be cakewalk (ideally). Not surprisingly, the logic is getting _more_ convoluted. So this probably isn't going to hold out much longer - which probably messes up my current theory ...
by jolly_codger
Fri Jun 27, 2008 6:29 am
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

//Bit 18 (#2) if( ((PREDICT>>0)&1) == 1 ) { if( ((PREDICT>>7)&1) == 1 ) { if( ((PREDICT>>8)&1) == 1 && ((PREDICT>>16)&1) == 0 ) PROB = 0x11; else PROB = 0x25; } else { if( ((PREDICT>>8)&1) == 0 ) PROB = 0x25; else PROB = 0x5A; } if( ((PREDICT>>15)&1) == 1 ) { if( ((P...
by jolly_codger
Thu Jun 26, 2008 5:01 am
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

Thanks for the tips! // bit 14 ~ bit 10 if( ((PREDICT>>0)&1) == 1 ) { PROB = 0x25; if( ((PREDICT>>7)&1) == 0 ) MPS = 1; } } else PROB = 0x5A; // bit 15 ~ bit 11 if( ((PREDICT>>1)&1) == 1 && ((PREDICT>>0)&1) == 1 ) { PROB = 0x25; if( ((PREDICT>>7)&1) == 0 ) MPS = 1; } else...
by jolly_codger
Wed Jun 25, 2008 2:07 pm
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

EDIT: Here's bit 11 (hmm...) if( ((PREDICT>>1)&1) == 1 && ((PREDICT>>0)&1) == 1 ) { PROB = 0x25; if( ((PREDICT>>7)&1) == 0 ) { MPS = 1; } } else { PROB = 0x5A; } EDIT: Here's bit 12 (huh!) if( ((PREDICT>>2)&1) == 1 && ((PREDICT>>1)&1) == 1 && ((PREDICT>>0)...
by jolly_codger
Tue Jun 24, 2008 6:04 pm
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

Tried the LOW/HIGH intervals. Get 8-bits with neviksti's PROB/2 method. Also tried using the 'LOW=0' method. Which gets 8-bits over here (maybe doing it wrong). I guess there's some stuff I don't get about arithmetic coding. Don't want to slow down anyone's progress with stupid questions though. xx(...
by jolly_codger
Mon Jun 09, 2008 4:26 pm
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

Seiko Epson (JP,08-29-1997): http://www.freepatentsonline.com/6055273.html (Text) http://www.mediafire.com/?9mud9vxrjjl (PDF) This talks about an adaptive RLE method. Bitplane splicing. Fundamentally simple idea. There's some minor quirks that differ from ABS. Currently still reading it. Might be wo...
by jolly_codger
Fri Jun 06, 2008 9:31 am
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

Could be coincidental. This 'pseudo-pattern' caught my eye.

http://www.mediafire.com/?l39ddrmhtye
by jolly_codger
Wed Jun 04, 2008 10:52 am
Forum: SNESdev
Topic: SPC7110 Reverse Engineering Project
Replies: 314
Views: 133979

I've never understood if the base codestream uses some type of ABS coding. Alignment 1 seems to emit zeros faster than alignments 2/0 (startup overhead or per-bitplane stuff?) A2 has 4-bpp graphics and (iirc) 2-bpp graphics also. A1 has ??? A0 has nametable data ($400+$2 sized amounts). Non two-powe...