Search found 248 matches

by Bisqwit
Thu Feb 23, 2012 2:30 am
Forum: NESemdev
Topic: wrestling with SMB1 title screen
Replies: 11
Views: 4273

Re: square sweeps

i've never understood exactly how the square period stuff is modified by the sweeps. From my emulator: // Sweep tick (square waves only) if(HalfTick && c < 2 && count(ch.sweep_delay, ch.reg.SweepRate)) if(wl >= 8 && ch.reg.SweepEnable && ch.reg.SweepShift) { int s = ...
by Bisqwit
Fri Jan 27, 2012 5:28 am
Forum: NESemdev
Topic: NTSC color palette emulation, with the square wave modulator
Replies: 149
Views: 95800

Related link, interesting reading: http://hitmen.c02.at/temp/palstuff/
by Bisqwit
Tue Jan 10, 2012 12:50 am
Forum: NESemdev
Topic: Using TASes for emulator testing
Replies: 4
Views: 3031

In my emulator I got all SMB movies to sync without problems (with add/remove idle frames in the beginning). I update the controller data at the beginning of vertical blanking (scanline 241). With all NES movies, the controller data is updated regardless of whether the game polls the input 1, 2 or 0...
by Bisqwit
Mon Jan 09, 2012 11:57 pm
Forum: NESemdev
Topic: Using TASes for emulator testing
Replies: 4
Views: 3031

Dwedit wrote:I still don't understand why the FM2 format is so weird.
It was a design decision that the movie file format [of FCEUX] should be easily editable with a regular editor, without need for hex editing. Needs for copypasting and trimming arise every so often.

EDIT: nesmock now supports also fm2.
by Bisqwit
Mon Jan 09, 2012 11:49 pm
Forum: NESemdev
Topic: Using TASes for emulator testing
Replies: 4
Views: 3031

Using TASes for emulator testing

I wrote a new wiki article. http://wiki.nesdev.com/w/index.php/TAS As some people here might know, I'm a person who has had a part in introducing and promoting the TAS phenomenon in the world. Though I have officially stepped to the background from the scene, I still felt it natural to use TASes ext...
by Bisqwit
Wed Jan 04, 2012 2:57 am
Forum: NESemdev
Topic: Sound Emulation, Resources, Tips, Etc?
Replies: 16
Views: 13107

Basics

Here is my attempt at conveying the basics, beginning from fundamentals, in a short but organized manner. There are other tutorials, but I wanted to write one just for the exercise of it :-) In order to produce sound, you have to generate "PCM sound". "PCM sound" is a type of sig...
by Bisqwit
Tue Jan 03, 2012 2:03 am
Forum: NESdev
Topic: RLE tool for NES
Replies: 11
Views: 6631

LZMPi

I recently needed to compress something (though my need went away before I actually used the decompressor), and I stumbled upon LZMPi compress , an LZ variant. It was written for the Commodore 64, but I ported it for the NES. It needs 64 bytes of RAM for history buffer tables ($6C0..$6FF), 35 bytes ...
by Bisqwit
Sun Jan 01, 2012 4:24 pm
Forum: NESdev
Topic: Anybody ever thought about this trick?
Replies: 26
Views: 9967

The Mega Man series and Super Mario Bros. 2 USA (for Mario and Princess) used a sprite overlay trick to create characters of more than 3 colors. In case of Mega Man, the face is a distinct white-yellow sprite that is overlayed on the blue-cyan-black body, and in case of Mario and Princess, the eyes ...
by Bisqwit
Fri Dec 30, 2011 8:32 pm
Forum: NESdev
Topic: ethernet for the NES
Replies: 9
Views: 5754

So has anyone began the work at coding a PPP & TCP-IP stack on the NES? By now there should be plenty of example code to make the task easy. But there will certainly be some limitations; TCP does require some amounts of RAM. But if you overlook some compatibility issues, and e.g. assume that a p...
by Bisqwit
Fri Dec 30, 2011 5:54 pm
Forum: NESemdev
Topic: instruction usage list
Replies: 20
Views: 6462

Surprises: Super Mario Bros and Bionic Commando seem to love JSR without RTS. Now that I think of it, that's because of how SMB1 implements switch statements. Fairly common in NES games over all, from what I have seen. I have disassembled a few games, and I have found this paradigm in more than hal...
by Bisqwit
Fri Dec 30, 2011 5:03 pm
Forum: NESemdev
Topic: Deriving the address mode through the opcode
Replies: 10
Views: 5000

This is the table of opcodes that I used for creating the micro-op data for my emulator. It contains all opcodes supported by it, grouped by the mnemonic. (The combination of mnemonic and the addressing mode is used to select the list of micro-ops for the opcode.) I have intentionally laid out the t...
by Bisqwit
Fri Dec 30, 2011 4:34 pm
Forum: NESemdev
Topic: I created an emulator...
Replies: 18
Views: 17053

How did you generate the Base64 (err, Base256? =D) encoded strings? Another program, or by hand? Sorry about taking many days to notice your post. phpBB only sent me a notification of your first post, and I did not know about the second one. Or the third one. Answer: Another program. For each micro...
by Bisqwit
Fri Dec 30, 2011 4:25 pm
Forum: NESemdev
Topic: do you think its possible to get faster than NESticle?
Replies: 9
Views: 6226

JIT techniques could help a great deal with the CPU speed, but the PPU is a difficult problem to tackle, especially if you are aiming any kind of honorable level of accuracy. VGA can do smooth 4-way scrolling, but the addresses only wrap at segment boundary if I recall correctly, meaning that if you...
by Bisqwit
Thu Dec 08, 2011 2:17 pm
Forum: NESemdev
Topic: I created an emulator...
Replies: 18
Views: 17053

http://www.ioccc.org/ :P 2006 winner entries are finally available? Oh goodie! Thanks for telling. EDIT: Oh, and in all honesty, I was partially inspired by the 2005 winner that does a 6502 emulator (Commodore PET). But both algorithmically and structurally my emulator is very different. Mr. Sykes'...
by Bisqwit
Thu Dec 08, 2011 12:59 am
Forum: NESemdev
Topic: I created an emulator...
Replies: 18
Views: 17053

thefox wrote:Very cool, sir. BTW what TAS movies/games depend on the RAM initialization state?
I seem to remember that I could not get the Wizards & Warriors TAS to sync before I added the RAM initialization. It could have been caused by something else, but that's what I did that made the difference.