Search found 27 matches

by Jsolo
Sat Nov 24, 2012 12:33 am
Forum: NES Graphics
Topic: C# woes
Replies: 22
Views: 10808

Re: C# woes

. If you draw all of your images to a tile sheet and use Graphics.DrawImage to draw your images, you cut way down on redundant housekeeping, but Graphics.DrawImage is designed with flexibility as a priority over speed. Surely you don't need optimized code that runs in 1ms instead of 5ms for an edit...
by Jsolo
Fri Nov 23, 2012 12:36 am
Forum: NES Graphics
Topic: C# woes
Replies: 22
Views: 10808

Re: C# woes

Note that rectangle copies aren't the slow part in anything what you're doing; SetPixel is the culprit as it checks the range of x and y every time and needs to compute the array index every time, too. Dwedit's code is a way to do it, although I prefer decoding individual tiles and storing them in a...
by Jsolo
Thu Nov 22, 2012 1:35 pm
Forum: NES Graphics
Topic: C# woes
Replies: 22
Views: 10808

Re: C# woes

How are you drawing the tiles? In my custom tool I can draw a whole screen of 240 16x16 metatiles many times per second without any slowdown at all, so it shouldn't take long to draw 50 metatiles. Have you tried profiling your code to find out where it's taking so long?
by Jsolo
Tue Nov 20, 2012 9:21 am
Forum: NESemdev
Topic: NESICIDE
Replies: 128
Views: 83287

Re: NESICIDE

Just a heads up, I'm still using NESICIDE, cpow!

So far there really has been only one thing that keeps bothering me.
Is there an option to sort the file listing in the project viewer by name?
by Jsolo
Tue Aug 14, 2012 11:36 am
Forum: SNESdev
Topic: SPC700 help
Replies: 35
Views: 9797

Re: SPC700 help

mov $f2, #$5c ; \ mov $f3, #$ff ; | mov $f2, #$4c ; | mov $f3, #$00 ; | mov $f2, #$5c ; | mov $f3, #$00 ;/ You're introducing a race condition here. DSP register writes don't have an immediate effect, but are read at some specific time in a 64 cycle window. The value of KOFF is read only ONCE durin...
by Jsolo
Sun Aug 05, 2012 12:14 pm
Forum: NESdev
Topic: Calculate nametable address
Replies: 5
Views: 2201

Re: Calculate nametable address

EDIT: I think there is a small mistake: ; ------------------------------------------------------------------------ ; Step 4: Calculate attribute table address. ; ------------------------------------------------------------------------ ; attrLo = X/4 tax lsr A lsr A sta attrLo tax should be txa Abso...
by Jsolo
Sun Aug 05, 2012 9:53 am
Forum: NESdev
Topic: Calculate nametable address
Replies: 5
Views: 2201

Re: Calculate nametable address

I believe this is nearly optimal in terms of speed, with the exception of a 60 byte lookup-table, of course. By knowing that X in 0..31 and Y in 0..29, you can slightly optimize the equation to nametableAddr = $2000 | y*32 | x, as X only occupies the lowest 5 bits of nametableAddrLo. Therefore, you ...
by Jsolo
Mon Jul 30, 2012 4:54 pm
Forum: SNESdev
Topic: SPC700 help
Replies: 35
Views: 9797

A channel that has KOFF=1 (and does not play any sound yet) is effectively muted and will be put into release state immediately after it has been turned on; try clearing the KOFF bit for channel 0 before toggling KON. Furthermore, you don't need to write 1 to KOFF at all; writing $FF to KOFF once at...
by Jsolo
Sat Jul 28, 2012 1:31 am
Forum: SNESdev
Topic: Mode3 problem with my lib
Replies: 2
Views: 1177

You're performing a DMA during VBlank that lasts until scanline 12; as your screen is enabled, any VRAM write is blocked by hardware on the pre render scanline.
If you want to transfer whole char- or tilemaps, you should do that during forced blank.
by Jsolo
Sat Jul 28, 2012 12:39 am
Forum: SNESdev
Topic: SNES 256 direct color mode 3 ?
Replies: 3
Views: 2070

It's still a tile mode. You upload 8 bitplanes for each tile; this tile data (also called character data) contains the highest bits of red, green, blue components. Map data is uploaded as for all other tile modes with the exception that one bit of the 3 bit palette index is appended to each color co...
by Jsolo
Tue Jul 17, 2012 4:27 am
Forum: SNESdev
Topic: PVSnesLib for Snes 20th birthday :D !
Replies: 24
Views: 12634

It seems sprites disappearing on the left side is a bug in the library, at least judging from the documentation. oamSet takes x coordinates in range 0..255, but their actual range is -255..255. The most significant (sign) bit lies in the upper 32 bytes of OAM. (Note that -256 doesn't work correctly ...
by Jsolo
Mon Jun 27, 2011 4:29 am
Forum: NESemdev
Topic: NESICIDE V1.000 release
Replies: 24
Views: 13024

Hi, long time lurker here. Last weekend I finally decided to give NES development a try. Some first impressions: - You should display an error message at startup when the wrong CA65 version is detected. - Check for empty paths in the build process. It caused me quite some headache, since the object ...