Search found 174 matches
- Sat Apr 10, 2010 11:05 am
- Forum: NESdev
- Topic: C/C++ NES programming
- Replies: 26
- Views: 17247
- Tue Mar 30, 2010 10:16 pm
- Forum: NESdev
- Topic: "Licensing" Advice
- Replies: 47
- Views: 12561
The general use of (L)GPL code with commercial games hit one of these four categories: GPL engine/code, proprietary data. -- Essentially what the old idTech engines do now. Proprietary engine and data, dynamically linked with LGPL support libraries. This is what Loki did to release games on linux us...
- Tue Mar 30, 2010 3:49 pm
- Forum: NESdev
- Topic: "Licensing" Advice
- Replies: 47
- Views: 12561
Remember that the license has absolutely nothing to do with what you yourself can do with the code. That said, the usual sort that'd try to exploit something commercially without asking are also the sort that you probably don't have the time, resources, or ability to bring to task for it -- hong kon...
- Sat Mar 27, 2010 12:00 pm
- Forum: SNESdev
- Topic: make_sram for SNES PowerPak
- Replies: 18
- Views: 13539
- Thu Mar 25, 2010 11:43 am
- Forum: NES Music
- Topic: Pitch Slide and Arpeggio Combined
- Replies: 11
- Views: 5222
Yes. You store the current portamento offset, and add speed to it every frame (or every N frames, etc). A speed of 1, added every frame, will smoothly (or as smoothly as is possible) slide up one semitone in just over 4 seconds (256 steps between semitones, 1 step per frame, 60 Hz). If you want mult...
- Thu Mar 25, 2010 10:33 am
- Forum: NES Music
- Topic: Pitch Slide and Arpeggio Combined
- Replies: 11
- Views: 5222
In a bit more detail... With no pitch bending, notes are pretty easily specified as a number of semitones above some base. A number of games use the MIDI note range, which is 128 tones, ranging from C-1 to somewhere around C10. The usable range on the NES is a little smaller than that, ranging from ...
- Wed Mar 24, 2010 4:57 pm
- Forum: NES Music
- Topic: Pitch Slide and Arpeggio Combined
- Replies: 11
- Views: 5222
One way to do it is to treat your notes as 8.8 fixed point, whole choosing a semitone, fraction the distance to the next, and instead of a table, just doing the lerp math. Yeah, the multiply sucks donkey balls as far as cycles go, but it can be done without huge tables, and IIRC you can shortcut a b...
- Tue Mar 23, 2010 11:23 am
- Forum: General Stuff
- Topic: It Might Be NES
- Replies: 17
- Views: 7945
- Sat Mar 20, 2010 12:24 pm
- Forum: NESdev
- Topic: Ack - another tile data compressor
- Replies: 45
- Views: 12081
- Fri Mar 19, 2010 4:52 pm
- Forum: NESdev
- Topic: Ack - another tile data compressor
- Replies: 45
- Views: 12081
After looking at it, albeit briefly, a couple things come to mind: Column transposing is going to be rather slow, or need an excessively large LUT. It's probably better for the group header to have the bits stored chunky rather than planar, as it cuts down on the amount of RMW rotates needed. The co...
- Mon Mar 15, 2010 12:31 pm
- Forum: NESemdev
- Topic: VeriNES (FPGA-based NES) Updates
- Replies: 13
- Views: 11503
- Wed Mar 10, 2010 2:57 pm
- Forum: NESemdev
- Topic: APU DMC ($4011 Direct Load vs. Delta-counter) Question
- Replies: 13
- Views: 5506
The serial bug is actually trivial to do with a real 6502. The DMC dma just pulls RDY down for 4 cycles, and does it's write on the 4th. The CPU ignores RDY for writes, for reads, it holds the address lines stable, and pauses internal operations (this'd be for adding wait states, for instance) If DM...
- Wed Mar 10, 2010 2:10 am
- Forum: NESdev
- Topic: Doing a better game engine - some thoughts on ice blocks
- Replies: 32
- Views: 9946
Coming from the old school PC gamedev side of things, free info is for whatever use someone can make of it. For ice, it's been done a number of ways. The usual NES approach has been something like what you described, where jumping could kill your forward momentum, landing while moving would keep you...
- Tue Mar 09, 2010 1:04 pm
- Forum: NESemdev
- Topic: APU DMC ($4011 Direct Load vs. Delta-counter) Question
- Replies: 13
- Views: 5506
Or it's just a synchronous up/down counter with an asynch load. I'd guess it's something like this: module dmc_counter(clk, ena, dir, load, d, q); input clk, ena, dir, load; input [7:0] d; output reg [7:0] q; always @(posedge clk) if (load) q <= d; else if (ena) else if (dir) q <= q + 1'b1; else q <...
- Fri Feb 26, 2010 2:04 pm
- Forum: General Stuff
- Topic: Pay for credit cards??
- Replies: 12
- Views: 3729