NESICIDE

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

Post Reply
User avatar
Eugene.S
Posts: 317
Joined: Sat Apr 18, 2009 4:36 am
Location: UTC+3
Contact:

Re: NESICIDE

Post by Eugene.S »

I have two problems with 1.031
1) Very quick flickering in fullscreen mode, like:
Image
only much faster

2) emulator window hangs when i exit fullscreen-mode.
I need to kill the "nes-emulator" process in task manager.
I've Windows XP x64 and Intel <G41> GMA4500. Driver version = 6.14.10.5402 (23.02.2012)

But it works fine under Wine (Mint 9) on the same machine.
Drag
Posts: 1615
Joined: Mon Sep 27, 2004 2:57 pm
Contact:

Re: NESICIDE

Post by Drag »

I had similar flicker problems back when I used an Intel GMA chipset; the Intel GMA doesn't automatically clear the video memory when a new framebuffer is created. Thus, if the program doesn't initialize its framebuffer before it starts using it, you get flickering garbage as part as your double buffer. :P

So, fixing the flicker should hopefully be easy. The window hanging when you exit fullscreen, I have no idea.
User avatar
Eugene.S
Posts: 317
Joined: Sat Apr 18, 2009 4:36 am
Location: UTC+3
Contact:

Re: NESICIDE

Post by Eugene.S »

1.030 (and older) works fine.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: NESICIDE

Post by tepples »

Drag wrote:I had similar flicker problems back when I used an Intel GMA chipset; the Intel GMA doesn't automatically clear the video memory when a new framebuffer is created. Thus, if the program doesn't initialize its framebuffer before it starts using it, you get flickering garbage as part as your double buffer. :P
Early homebrew programs to manipulate the Game Boy border on the Nintendo DS had a similar problem. The DS hardware doesn't blank the 16 lines on the top and bottom and 8 pixels on the left and right of the GBA screen; that's the responsibility of the boot menu. So the firmware has to put the same border graphic in both of the frame buffers that the GBA-compatibility graphics core renders to.
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Re: NESICIDE

Post by cpow »

Version 1.032 (windows build only) is out.

ChangeLog:
1. Added suggested work-around for flickering border problem.
2. Added "mapper memory" inspector information for all supported mappers. Values displayed are values written to mapper registers.
3. Fixed four-screen mode. Rad Racer 2 now works properly.
4. Fixed Sunsoft 4 mapper mirroring modes.
Jsolo
Posts: 27
Joined: Mon Jun 27, 2011 4:14 am
Location: Lurker Cave

Re: NESICIDE

Post by Jsolo »

Did you break the Execution Visualizer some updates ago? It always shows "IN PROGRESS" regardless of being in a loop or not.
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Re: NESICIDE

Post by cpow »

Jsolo wrote:Did you break the Execution Visualizer some updates ago? It always shows "IN PROGRESS" regardless of being in a loop or not.
Can you provide a simple example? I took a look at it and the only odd thing I saw is that when I set a marked region while paused the marker shows as IN PROGRESS. But then when I run through it it goes to COMPLETE. Is it possible you're marking a region that can't ever get to its END mark?
Jsolo
Posts: 27
Joined: Mon Jun 27, 2011 4:14 am
Location: Lurker Cave

Re: NESICIDE

Post by Jsolo »

Well, I just created a new NROM asm template and...it works as expected.
It doesn't work for my project created with an older version, though. I tried recreating the project just now, but to no avail.
I'm trying to whip up a smaller example and report back.

Edit: On an unrelated note, the NROM template trashes the stack by doing

Code: Select all

mainLoop:
  jsr mainLoop
if I'm not mistaken.
Jsolo
Posts: 27
Joined: Mon Jun 27, 2011 4:14 am
Location: Lurker Cave

Re: NESICIDE

Post by Jsolo »

After some digging I believe it is related to one's mapper choice.
I converted the NROM example to UNROM like my project is. I also deleted all the graphics and nearly all code.
I then marked the code

Code: Select all

  lda #0
  sta $00
with the right click options "Set Visualization START/END Marker here" and compiled/ran the application. After pressing the Pause button, the execution visualizer still shows "IN PROGRESS" even though the PC points to the endless loop.

I prepared the project in question in the attachement.
Attachments
unrom_example.zip
(3.49 KiB) Downloaded 353 times
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Re: NESICIDE

Post by cpow »

Jsolo wrote:Well, I just created a new NROM asm template and...it works as expected.
It doesn't work for my project created with an older version, though. I tried recreating the project just now, but to no avail.
I'm trying to whip up a smaller example and report back.

Edit: On an unrelated note, the NROM template trashes the stack by doing

Code: Select all

mainLoop:
  jsr mainLoop
if I'm not mistaken.
Yes, it should be jmp. Guess my fingers got ahead of me there. It'll be fixed next release.
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Re: NESICIDE

Post by cpow »

Jsolo wrote: I prepared the project in question in the attachement.
Thanks. I'll take a look and release an update when I've figured it out.
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Re: NESICIDE

Post by cpow »

Version 1.033 (windows build only) is out.

ChangeLog:
1. Fixed JSR mainLoop issue in NROM Hello World template. [Thanks Jsolo].
2. Fixed Execution Visualizer [and Code/Data Logger] issues brought on by mapper improvements that changed some of the logging architecture.

Jsolo: Your UNROM test project was very helpful, thanks! I discovered there's no removal of or invalidation of markers that have become obfuscated by code changes. When I added a string of NOP instructions before 0E:001A-0E:001B and restarted NESICIDE the marked region showed back up. I haven't fixed this problem yet but at least I know what went wrong. :roll:

If you "Clear all markers" and re-apply the marker it should work.

Eugene.S: I still haven't figured out why the emulator locks up when you exit fullscreen. Kind of hard since it doesn't happen here. I'll PM you if I come up with a fix to try.
Jsolo
Posts: 27
Joined: Mon Jun 27, 2011 4:14 am
Location: Lurker Cave

Re: NESICIDE

Post by Jsolo »

It's working again, thanks a lot :)
Jsolo
Posts: 27
Joined: Mon Jun 27, 2011 4:14 am
Location: Lurker Cave

Re: NESICIDE

Post by Jsolo »

Here's another thing I've noted. The editor's line endings are inconsistent. Every time I open a file in Notepad++, for example, it places an empty line between consecutive lines of text. After inspecting it with "Show line endings" it is revealed that line endings actually are
CR CR LF, which is interpreted by notepad++ as

CR
CR LF,

so two line endings. Usually it detects windows line endings but fails to do so here. I'm not even sure CR CR LF is a valid line ending :)
I've attached an screenshot showing an example with line endings enabled.
Attachments
line_endings.png
line_endings.png (8.95 KiB) Viewed 8253 times
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Re: NESICIDE

Post by cpow »

Jsolo wrote: CR
CR LF,
That's really strange...what do you have set for End-of-Line style in Environment Settings->Code Editor->Whitespace. Do you have "Force consistent" set?
Post Reply