Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /storage/content/49/145849/famitracker.com/public_html/forum/classes/dbHandler.php on line 29 FamiTracker
Login:
Menu:
Post: Author:
FamiTracker > General > FamiTracker Talk > NSFPlay 2.3 beta Owner: rainwarrior New post
Page 1 of 2 Sort: Goto Page: [1] [2] Next >>
NSFPlay 2.3 beta Posted: 2013-07-16 09:14  (Last Edited: 2013-07-19 04:28) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#49438
This is my first release candidate beta for NSFPlay 2.3:
[url=https://dl.dropboxusercontent.com/u/883356/nsfplay23b5.zip]https://dl.dropboxusercontent.com/u/883356/nsfplay23b5.zip
Please try it out and let me know if you find any bugs/problems.

Changes since 2.2:

NSFPlay 2.3 BETA 5 - 7/18/2013
Emulation:
- All illegal 6502 opcodes are now emulated.
- Audio emulation is now driven by CPU clock cycles, increases timing accuracy.
- FDS emulation completely rewritten for better accuracy.
- N163 emulation completely rewritten for better accuracy.
- APU frame sequencer now correctly driven by $4017, supports 4 and 5 step modes, immediate reset, and IRQ flag.
- MMC5 frame sequencer now independant of APU frame sequencer.
- Time dilation now slows frame sequencer along with CPU rate.
- Replaced PREFER_PAL setting with REGION, containing more options including Dendy support.
- Swapped duty option for APU1.
- More effective implementation of DMC anti-click option.
- Removed useless "frequency limiter" APU option.
- Added optional mute for ultrasonic triangle.
- Fixed broken oversampling filter.
- Adjusted device volumes to match more careful measurements, all centred at 128 now.
Other:
- Better small icon.
- Thinner DPCM address display, does not get truncated.
- Using # instead of + for note names.
- Cosmetic fixes in settings dialog.
- Keyboard frequency display correction for APU/MMC5/VRC6 (were off by 1).
- Keyboard envelope display now shows L for loop.
- N163 waveform display now hides waveform when track is muted with a wave length >= 128.
- Expanded infobox info for NSFe.
- Fixed improper loading of UI DLL, prevents crash in same folder as Famitracker.
- UI DLL now reports version, preventing potential problems if mismatched.
- LOG_CPU option for dumping register writes to file.
- Fixed song wrap where NSFs do not start on song 1.
- Source code cleanup: removing unrelated Z80 emulation code.

Edit: beta 5

RE: NSFPlay 2.3 beta Posted: 2013-07-16 11:34 Reply | Quote
Im_a_Track_Man

Avatar

Member for: 4137 days
Location: Plantation, Florida
Status: Offline

#49440
[quote=rainwarrior]
e.
- Replaced PREFER_PAL setting with REGION, containing more options including Dendy support.
- Swapped duty option for APU1.
[/quote]

So much bootleg fun.

_______________________
[BURNING LOVE]
[url=http://www.youtube.com/user/ImATrackMan]YouTube
[url=https://twitter.com/ImATrackMan]Twitter (Stay off my lawn, kids)
Posted: 2013-07-16 17:34 Reply | Quote
Mr_Master



Member for: 3521 days
Status: Offline

#49446
It's nice, but I have a few questions:

-What's an illegal opcode?
-Why some entries from the FCM10 pack won't play in NSFPlay as opposed to other players (for instance, entries 09 and 17 from the cover section)?
-What's Dendy?
[color=#373737][Congrats on your 888th day here!]
Maybe that's a little off-topic, but I'll keep using this version for all NSFs I want to play. Thank you for this update!

Posted: 2013-07-16 17:54 Reply | Quote
poodlecock

Avatar

Member for: 3398 days
Location: !wow
Status: Offline

#49448
-Illegal opcodes are, uh, opcodes that are illegal. In other words, they are commands to the processor that aren't supposed to do anything but will often cause the processor to crash.
-I haven't listened to the FamiCompo Mini 10 pack yet, so I have no clue.
-Dendy is a Chinese NES clone.

_______________________
"im going to continue making this crazy stuff then after a while my style will be so sick that you will be like damn suuun that shit is so sick i dont even get it. i will be like bro its ok.. you dont have to." -omgdonut
Posted: 2013-07-16 18:08  (Last Edited: 2013-07-16 18:16) Reply | Quote
Mr_Master



Member for: 3521 days
Status: Offline

#49452
I'll go investigating so I can gather more info about those subjects. Thank you poodlecock.

EDIT: From what I gathered about illegal opcodes, those are instructions that are not documented oficially by the manufacturer and thus are not guaranteed to do anything useful, though they are used in special cases, but most of the time they would crash the CPU. So thank you again poodlecock for making me gain some interest in this.

Posted: 2013-07-16 18:21 Reply | Quote
jrlepage
Moderator

Avatar

Member for: 4983 days
Location: Canada
Status: Offline

#49455
Isn't Dendy the European Famiclone that was popular in countries like Poland?

Also, covers 9 and 17 don't play in NSFPlay because the use FDS+other expansions, which causes conflicts. Other NSF players will play the file because they aren't coded as thoroughly as NSFPlay.

_______________________
Follow me on [url=https://twitter.com/jrlepage2a03]Twitter.
I record (some) NSFs on hardware. Feel free to [url=http://www.famitracker.com/forum/posts.php?id=3633]request a hardware render.
Posted: 2013-07-16 18:28 Reply | Quote
Mr_Master



Member for: 3521 days
Status: Offline

#49457
About Dendy, I think. As I read, it was popular in Russia and other countries where the NES/Famicom wasn't sold.

And thank you for explaining about NSFPlay being unable to play those songs. Uh, and Nezplug++ would be okay to play those files? I have seen the emulation is pretty okay with that player.

Posted: 2013-07-16 18:41 Reply | Quote
B00daW

Avatar

Member for: 4986 days
Status: Offline

#49458
Illegal opcodes are undocumented functions of a processor. Most of them were not intended to be used.

http://www.oxyron.de/html/opcodes02.html

The Dendy is usually considered "The Russian Famiclone."

Poland is more known for using its Pegasus Famiclone.

Posted: 2013-07-16 18:52 Reply | Quote
Mr_Master



Member for: 3521 days
Status: Offline

#49461
That's what I missed, so thank you. Now I'll stop posting here since half the posts are mine and I don't want to spam.

I think I should actually learn a bit more about all these old consoles stuff.

Posted: 2013-07-16 18:58 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#49462
The illegal opcodes were expressly marked as "unused" by the 6502 designers. The ended up doing things because it was cheaper to leave them half-doing-stuff then it was to make them no-ops, in terms of circuit design.

Despite not being intended for use by the chip designers, their function is entirely known, and should be emulated because some perverts like to use them.

Cover 17 can be played by turning on the new "write protect" option in the FDS panel. It is malformed, but at least supportable in this way.

Cover 9 is certainly malformed. It has all expansions ticked for no reason, and is just a troll DPCM entry. I don't really care about supporting it, but I might take a look at what it's doing badly later.

For the record, when using FDS and multi expansions on NSFPlay, the expansion writes will automatically be blocked as long as you only write to the audio registers. Cover 17 makes writes in other places that have no functional purpose, which is why I added the additional write protect option. (BTW the write protect option will break regular FDS tunes which require the use of RAM there.) Also, it's only VRC6/VRC7/5B that have registers that overlap FDS RAM.

Posted: 2013-07-16 19:33 Reply | Quote
Im_a_Track_Man

Avatar

Member for: 4137 days
Location: Plantation, Florida
Status: Offline

#49464
[quote=rainwarrior]Also, it's only VRC6/VRC7/5B that have registers that overlap FDS RAM.[/quote]

Whoa, whoa... I knew about FDS and VRC6, but do all of these overlap with each other, as well?

_______________________
[BURNING LOVE]
[url=http://www.youtube.com/user/ImATrackMan]YouTube
[url=https://twitter.com/ImATrackMan]Twitter (Stay off my lawn, kids)
Posted: 2013-07-16 22:32 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#49474
There's a large degree of overlap between all the expansions because most registers are mirrored over large ranges of memory, not just the single lowest address that they're normally used via.

You can read about it here: [url=http://wiki.nesdev.com/w/index.php/NSF#Multi-chip_tunes]http://wiki.nesdev.com/w/index.php/NSF#Multi-chip_tunes

Posted: 2013-07-17 02:47 Reply | Quote
jrlepage
Moderator

Avatar

Member for: 4983 days
Location: Canada
Status: Offline

#49477
Shouldn't the multiplexer hiss be completely inaudible for <5 channel configurations?

Compare this recording I made of [url=http://www.mediafire.com/download/s0lyz0pb890al9k/entry41.flac]cover 41 with playback in NSFPlay 2.3b4 with serial multiplex mixing turned on. I can definitely hear a faint high-pitched tone, when I can't hear any such thing on my Famicom.


Also, I think the "Mute triangle at pitch 0" option is slightly misaligned compared to the rest of the checkboxes in that section (a few pixels too far to the right).

_______________________
Follow me on [url=https://twitter.com/jrlepage2a03]Twitter.
I record (some) NSFs on hardware. Feel free to [url=http://www.famitracker.com/forum/posts.php?id=3633]request a hardware render.
Posted: 2013-07-17 03:45  (Last Edited: 2013-07-17 03:49) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#49481
In an ideal world, yes, but there is an aliasing issue. The resampling filter currently is not able to attenuate it completely. However, I would rather leave it as is than have a special hack that automatically turns that feature off at <5 channels, for 3 reasons: 1. the emulation is more correct this way, aside from the aliased tone. (the aliased tone is one inaccuracy, turning off this way of mixing introduces different inaccuracies) 2. the resampling filter can eventually be improved. 3. nobody is going to use this option anyway, except as a curiosity.

As for UI nitpicks, I'm planning to completely replace the UI in the next version, so, unless it's a functionality issue, I'm not going to bother investing any unnecessary energy fighting with Microsoft's horrible dialog editor.

jrlepage I wanted to ask you, what is the actual volume difference between your 4-channel and 8-channel carts? Have you measured? In my tests, Erika's N163 is 29% louder than Rolling Thunder's. (I have set the default level at an average between the two.) I've attached an NSF you can use to test if you'd like. Compare the volume of the APU square (played first) with the full volume of the N163 square (played just after it). The APU square gives the recording a baseline you can measure against. (i.e. measure APU, then measure N163, divide the N163 value by the APU to get the relative volume, or just send me two recordings if you'd rather I do it).

Also you might want to warm up each cart by playing them for 5 minutes or so before trying the test. Temperature seems to affect the balance on my N163 carts a bit.

Edit: forgot to click upload.


Attachments:
n163_test.nsf (48 Kb)
Posted: 2013-07-17 14:47  (Last Edited: 2013-07-17 15:02) Reply | Quote
jrlepage
Moderator

Avatar

Member for: 4983 days
Location: Canada
Status: Offline

#49487
It's about 45ÂșC in my room right now, so I don't think a warmup is necessary at all. ( -n-)

I'll provide a recording for each of my N163 carts shortly.

EDIT: [url=http://www.mediafire.com/download/tsip335vftwoxoh/n163_test.rar]here we go.

_______________________
Follow me on [url=https://twitter.com/jrlepage2a03]Twitter.
I record (some) NSFs on hardware. Feel free to [url=http://www.famitracker.com/forum/posts.php?id=3633]request a hardware render.
Page 1 of 2 Sort: Goto Page: [1] [2] Next >>