Search found 1538 matches

by 93143
Thu Jun 30, 2022 12:37 pm
Forum: SNESdev
Topic: Using window/shape mask directly on the background colour . . .
Replies: 51
Views: 1096

Re: Using window/shape mask directly on the background colour . . .

Is that not just a BG layer with solid-coloured tiles, animated via tilemap updates? Kinda like the Jurassic Park raycaster, but without Mode 7?
by 93143
Tue Jun 28, 2022 6:07 pm
Forum: SNESdev
Topic: Does Jurassic Park use pseudo high-res mode?
Replies: 82
Views: 2238

Re: Does Jurassic Park use pseudo high-res mode?

It uses it during races (at least, I don't know what else this effect could be). You can often see it by looking at constant-coloured areas of the track, or the sky; it shows up as a regular spot pattern that doesn't move with the camera. I think there's actually a hack to remove it... You can see i...
by 93143
Tue Jun 28, 2022 3:26 pm
Forum: SNESdev
Topic: Does Jurassic Park use pseudo high-res mode?
Replies: 82
Views: 2238

Re: Does Jurassic Park use pseudo high-res mode?

-Early 3D consoles like PS1 and Nintendo 64 may rely on composite for fog effects. What games did that on Nintendo 64? One thing the Nintendo 64 was famously good at was hardware Z-fogging. Not to mention alpha blending, which I believe was free on the RDP, and is the only thing I can really see so...
by 93143
Fri Jun 10, 2022 2:05 am
Forum: SNESdev
Topic: stretching the Super FX
Replies: 28
Views: 1803

Re: stretching the Super FX

I don't think a patent will be all that useful in finding a definitive answer to this question. The data in patents tends to be slightly incorrect on purpose, if I recall correctly, providing just enough descriptive detail to protect the actual idea while being confusing enough to prevent theft of t...
by 93143
Wed Jun 08, 2022 8:51 pm
Forum: SNESdev
Topic: Extending hardware 16/8 division to more bits?
Replies: 18
Views: 1037

Re: Extending hardware 16/8 division to more bits?

Well, yeah, but I mean without that. Using an inverse table would allow the multiplication routines to do the job, but that eats 128 KB for the table and isn't bit-accurate. Or 256 KB, and then you're dealing with a 32x16 multiplication. I haven't looked through the code in detail yet, but it does a...
by 93143
Wed Jun 08, 2022 7:54 pm
Forum: SNESdev
Topic: Extending hardware 16/8 division to more bits?
Replies: 18
Views: 1037

Re: Extending hardware 16/8 division to more bits?

Did you write the unsigned 16x16 multiplication routine too? It's nearly identical to the one I just wrote. It was slightly faster than mine (leaving aside procedural stuff like rep / sep and jsr / rts ), but I took an optimization idea from it , and now I think mine is slightly faster. Also, I'd be...
by 93143
Wed Jun 08, 2022 4:59 pm
Forum: SNESdev
Topic: discarded low bit of high byte of multiplier in 16-bit multiply
Replies: 27
Views: 1357

Re: discarded low bit of high byte of multiplier in 16-bit multiply

One more tweak, based on the code here . (In fact the two methods are almost identical - I swear I didn't know that page existed...) This routine now takes 71 or 73 fast cycles and 17 slow cycles, totaling 562 or 574 master cycles. ldx x0 ; 2 fast, 1 slow - pick up low byte of multiplicand x stx $42...
by 93143
Tue Jun 07, 2022 8:06 pm
Forum: SNESdev
Topic: What's more processor intensive (if that's the correct terminology) . . .
Replies: 11
Views: 628

Re: What's more processor intensive (if that's the correct terminology) . . .

Since this effect is pretty static, you could probably hardcode the frame deltas and unroll the loop (using two instances to allow double buffering of the HDMA table). If the scroll speed is constant and the pattern can be allowed to loop at 256 pixels, I believe you could do a separate scroll value...
by 93143
Tue Jun 07, 2022 4:21 pm
Forum: SNESdev
Topic: What's more processor intensive (if that's the correct terminology) . . .
Replies: 11
Views: 628

Re: What's more processor intensive (if that's the correct terminology) . . .

Linescroll via palette swap would be quite limiting, particularly in Mode 0. You'd be stuck with snapping to whatever granularity you can map 3 colours to (meaning there are only 3 possible scroll positions), and you'd need to reserve a palette for each scroll speed. It might work okay with 4bpp gra...
by 93143
Mon Jun 06, 2022 8:33 pm
Forum: SNESdev
Topic: discarded low bit of high byte of multiplier in 16-bit multiply
Replies: 27
Views: 1357

Re: discarded low bit of high byte of multiplier in 16-bit multiply

Snes9x made it through all cases with a pass. I think that confirms it's logically correct. I stopped the SNES hardware test, but I think a few hours is probably far more than enough to confirm there isn't a timing issue. Excellent. I've had it running on my SNES for a while now, and it still looks...
by 93143
Mon Jun 06, 2022 12:38 am
Forum: SNESdev
Topic: discarded low bit of high byte of multiplier in 16-bit multiply
Replies: 27
Views: 1357

Re: discarded low bit of high byte of multiplier in 16-bit multiply

I wrote it assuming that the 8 cycles I needed to wait for the result are CPU cycles, of whatever length they end up being. If you have to wait 64 master cycles, the low*high read is too soon and could fail for large inputs, but I'm pretty sure that's not the case. Other than that, there might just ...
by 93143
Sun Jun 05, 2022 11:25 pm
Forum: SNESdev
Topic: discarded low bit of high byte of multiplier in 16-bit multiply
Replies: 27
Views: 1357

Re: discarded low bit of high byte of multiplier in 16-bit multiply

I put it in a Mode 7 demo I'm working on, and it seems to be working perfectly. (Running it on my SNES right now, as FastROM.) Awesome. Thanks for writing this, I was actually just about to need to write basically the same thing myself, and this has been very convenient timing for me. :) Well, that...
by 93143
Sun Jun 05, 2022 5:27 pm
Forum: SNESdev
Topic: discarded low bit of high byte of multiplier in 16-bit multiply
Replies: 27
Views: 1357

Re: discarded low bit of high byte of multiplier in 16-bit multiply

I made a couple of optimizations. It's now 73 or 75 fast cycles and 18 slow cycles, for a total of 91 or 93 cycles total, or 582 to 594 master cycles: ldx x0 ; 2 fast, 1 slow - pick up low byte of multiplicand x stx $4202 ; 4 fast - write low byte of x to non-triggering multiplicand input ldy y0 ; 2...
by 93143
Sat Jun 04, 2022 9:11 pm
Forum: SNESdev
Topic: discarded low bit of high byte of multiplier in 16-bit multiply
Replies: 27
Views: 1357

Re: discarded low bit of high byte of multiplier in 16-bit multiply

For those wondering, the inc just before the end was the small fix. Or, to be more precise, the clc after it. The inc was already there, but I was in a hurry and for some reason assumed it would clear carry. It doesn't, so you have to do it manually. Would it be okay to put this code on the wiki ? ...