Yanese 0.01

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Yanese 0.01
by on (#117547)
As someone of you know i have been writing my emulator by years and i tought "why not no make it public?"
So i'm here with Yanese wich stands for "Yet Another NES Emulator".
I would like to thanks all that answered my noobs questions and specially "Disch" that was very patient with me and my questions.

It's not the best emulator, but give it a try.

http://www.yanese.com

Edit: i edit it cos "com.ar" domain names are not free any more in my country, so im using the host address instead.
Re: Yanese 0.01
by on (#117552)
looks at the project page
Could you add BNROM (#34)? It's just like AOROM except without the one-screen mirroring. Deadly Towers uses it, as does one of my own projects.
Re: Yanese 0.01
by on (#117560)
Looks pretty good, except for the wrong duty cycles, and the palette.
Also key configuration screen swaps B and A.

But other than that, it seems to be a very good emulator. Runs my Chu Chu Rocket game without problems.
Re: Yanese 0.01
by on (#117656)
Thanks for testing my emu!!

Quote:
Could you add BNROM (#34)? It's just like AOROM except without the one-screen mirroring. Deadly Towers uses it, as does one of my own projects.


I will add the mapper!!

Quote:
Looks pretty good, except for the wrong duty cycles, and the palette.
Also key configuration screen swaps B and A.


The pallete use static colors and it's an old one. Duty Cycles... i have to fix that.
Thanks for reporting me the bug.

Bye the way: versión 0.03 available.
Re: Yanese 0.01
by on (#117678)
Duty cycles are still wrong.
00 seems to be fine at 1/8, but 01, 10, and 11 are still way off.

Also, the resize command is not working properly, it is resizing the entire window (client and nonclient area) to what the size of the client area should be, so the image is slightly shrunken at 1x zoom.
Re: Yanese 0.01
by on (#117684)
Quote:
the resize command is not working properly, it is resizing the entire window (client and nonclient area) to what the size of the client area should be, so the image is slightly shrunken at 1x zoom.

Have to fix that...
Quote:
Duty cycles are still wrong.
00 seems to be fine at 1/8, but 01, 10, and 11 are still way off.


I never understood well how this duty cycles Works. If you or somebody want to explain me it will preciated.
Re: Yanese 0.01
by on (#117686)
Each pulse channel has a period divider that emits a clock pulse every 2*(p + 1) CPU cycles. This clock pulse causes a 3-bit phase counter to decrement. Decoding logic turns the phase into a 1-bit signal that tells whether to pass the channel's current volume (if true) or 0 (if false) to the DAC.

Duty 00: 0 true, 1-7 false
Duty 01: 0-1 true, 2-7 false
Duty 10: 0-3 true, 4-7 false
Duty 11: 2-7 true, 0-1 false

The resulting waveforms look like this:
Code:
Duty 00
_               _               _
 |_____________| |_____________| |
0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

Duty 01
_             ___             ___
 |___________|   |___________|   |
0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

Duty 10
_         _______         _______
 |_______|       |_______|       |
0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

Duty 11
  ___________     ___________
_|           |___|           |___|
0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

Writes to $4003 or $4007 clear this phase value.
Re: Yanese 0.01
by on (#117693)
Thanks very much for the explication tepples!!.
1X Window Works now.

Versión 0.06 available.
Re: Yanese 0.01
by on (#117727)
Works very well! Although, I think the sound when the enemies are killed in Mega Man 2 is slightly off but I could be wrong. Also the window title of version 0.06 still says "Yanese 0.05". Great little emu though! Have you considered adding save/load state support? That would be a huge feature, and it's fairly simple to add.
Re: Yanese 0.01
by on (#117786)
Thank you for testing it.
Quote:
I think the sound when the enemies are killed in Mega Man 2 is slightly off but I could be wrong

The Apu is still buggy, have to fix it.
Quote:
Have you considered adding save/load state support? That would be a huge feature, and it's fairly simple to add.

That's is in "to do" list... :)
Re: Yanese 0.01
by on (#117813)
Today I tried it on an Ubuntu netbook in Wine. It ran at full speed at 1x but slowed down a lot when I set Window to 2x. The explosions in Thwaite looked a little flat due to not enough contrast in the ramp from $16 through $38. I could not drag and drop a ROM into the window to load it and run it. Nor could I load a ROM from the command line (yanese.exe roms\thwaite.nes or yanese.exe roms/thwaite.nes). Action 53 (BNROM oversize) caused the emulator to crash with an invalid page fault; I can provide a register and stack dump if you want.
Re: Yanese 0.01
by on (#117818)
Quote:
I could not drag and drop a ROM into the window to load it and run it

That feature is still not implemented.
Quote:
Nor could I load a ROM from the command line

I have just implemented that.
Quote:
Action 53 (BNROM oversize) caused the emulator to crash with an invalid page fault

I tested the rom and that's right, i will fix that bug in the future.
Yanese v00.7 avialable.
Re: Yanese 0.01
by on (#118043)
tepples wrote:
Duty 00: 0 true, 1-7 false
Duty 01: 0-1 true, 2-7 false
Duty 10: 0-3 true, 4-7 false
Duty 11: 2-7 true, 0-1 false


News to me. Actually, it should be 0=negative (or zero for unsigned samples) 1=positive. From the wiki:
Code:
Duty Cycle Sequences
Duty    Waveform sequence
0   0 1 0 0 0 0 0 0 (12.5%) _-_______
1   0 1 1 0 0 0 0 0 (25%) _--_____
2   0 1 1 1 1 0 0 0 (50%) _----____
3   1 0 0 1 1 1 1 1 (25% negated) -__-----
Re: Yanese 0.01
by on (#118118)
Quote:
Action 53 (BNROM oversize) caused the emulator to crash

Fixed, thanks tepples.
Quote:
Have you considered adding save/load state support? That would be a huge feature, and it's fairly simple to add.

I added "quick save states". :)

More mappers too...
Version 0.09 avilable.
Re: Yanese 0.01
by on (#119171)
Hello Anes, I recently came across Yanese on EmuCR and as always I want to try out new emulators. And it's already pretty good !
Though I don't know why but Direct3D performance was less than stellar while DirectDraw behaved much smoothlier (is that even a word ?).
(I used the x64 version of Yanese v011)

I wish you the best in developing this emulator and updating it, and I'll be sure to check it out again later when it has improved ~ :3
Re: Yanese 0.01
by on (#119233)
eleriaqueen wrote:
Hello Anes, I recently came across Yanese on EmuCR and as always I want to try out new emulators. And it's already pretty good !
Though I don't know why but Direct3D performance was less than stellar while DirectDraw behaved much smoothlier (is that even a word ?).
(I used the x64 version of Yanese v011)

I wish you the best in developing this emulator and updating it, and I'll be sure to check it out again later when it has improved ~ :3


Thanks for testing it!!
Yes, i have to fix Direct3d. DirectDraw is smother becouse it uses triple buffering. I have to implement that in Direct3d.
Re: Yanese 0.01
by on (#119250)
eleriaqueen wrote:
Hello Anes, I recently came across Yanese on EmuCR and as always I want to try out new emulators. And it's already pretty good !
Though I don't know why but Direct3D performance was less than stellar while DirectDraw behaved much smoothlier (is that even a word ?).
(I used the x64 version of Yanese v011)

I wish you the best in developing this emulator and updating it, and I'll be sure to check it out again later when it has improved ~ :3


Smoother ;).
Re: Yanese 0.01
by on (#119251)
The good

- Runs at a comparible speed to WedNESday with similar features.

The bad

- Like all NES emulators, is massively inferior to WedNESday :twisted: (just kidding)
- Accessing windows task manager caused the application to crash.
- Regardless of rendering mode it stutters like mad when SMB scrolls. Lack of VSYNC? Or some kind of slowdown, I don't know. See below.

viewtopic.php?f=3&t=9262

Check the above post to enable windowed VSYNC with Direct3D9.
Re: Yanese 0.01
by on (#119283)
WedNESday wrote:
The good

- Runs at a comparible speed to WedNESday with similar features.

The bad

- Like all NES emulators, is massively inferior to WedNESday :twisted: (just kidding)
- Accessing windows task manager caused the application to crash.
- Regardless of rendering mode it stutters like mad when SMB scrolls. Lack of VSYNC? Or some kind of slowdown, I don't know. See below.

viewtopic.php?f=3&t=9262

Check the above post to enable windowed VSYNC with Direct3D9.


- Thank you for remember me the thing in Windows Task manager. It's directdraw i will fix it.
- I already posted a topic about Vsync, but i will check the one you passed me.