It is currently Sun Oct 22, 2017 5:58 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 29 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: Sayoonara 2001.3/2001.4
PostPosted: Fri Mar 04, 2005 2:29 pm 
When running Chris Covell's demo "Sayoonara!" on most recent emulators I see there are glitches in it. Some background areas are in gray where it should supposedly be black. What this originates in is the handling of $2001.3 and $2001.4. I'm still unsure of what the PPU exactly does when they're manipulated during midframe (beside from stoping the data fetching when both are cleared).

If I remember correctly some of you tested this demo on the real hardware, do any of you remember if those glitches were there as well?


Top
  
 
 Post subject:
PostPosted: Fri Mar 04, 2005 3:13 pm 
Offline
User avatar

Joined: Wed Nov 10, 2004 6:47 pm
Posts: 1845
I get the grey patches in my emu as well (as least I think they're the same ones you're talking about... my emu shows it very similar to how Nintendulator does).

Oddly enough... it doesn't play any sound in my emu... o_O


Top
 Profile  
 
 Post subject:
PostPosted: Fri Mar 04, 2005 3:33 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 10:59 pm
Posts: 1390
Actually, those spots are SUPPOSED to be gray - older emulators would display them in black instead.

_________________
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Mar 04, 2005 3:44 pm 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3064
Location: Brazil
Quite strange that "buggy" situations mean the "accurate"... :D

_________________
Zepper
RockNES developer


Top
 Profile  
 
 Post subject:
PostPosted: Fri Mar 04, 2005 3:56 pm 
Offline
User avatar

Joined: Wed Nov 10, 2004 6:47 pm
Posts: 1845
I looked at the sound problem... I can't understand how emus are playing sound for the demo.

It seems to write 0 to $4015 -- then write to each channel's length reg ($4003,4007,400B,400F) -- then write $0F to $4015.

It never writes to the length reg for any channels unless it writes $00 to $4015 first. I'm under the impression that this method will NOT work.. since the length counter is always zero unless the channel's $4015 bit has been flipped on. (ie: writing to the length reg will not reload the length counter unless the channel's $4015 bit is on)

How does this demo operate on the real system? Anyone know?


Top
 Profile  
 
 Post subject:
PostPosted: Sun Mar 06, 2005 5:41 am 
Hi, Chris C here...

About the grey parts -- those are supposed to be there. Sayoonara changes the palette two different times mid-screen, once after the gold lightsource logo, and again after the "sayoonara" logo. Since writing to the palette mid-screen causes the PPU to display the contents of the palette registers, I set the greyscale bit on, as well as all 3 emphasis bits. This changes the colours to various levels of grey (and the 3 emphasis bits will darken the grey) so the palette writing is less noticeable on the real hardware.

About what the music code does, I can't say since it's just ripped code. :(

And I did test this on real NES hardware using my devcart (I also did most of the testing on my DrPCJr). It worked OK, but Kevin H. tried it on his CopyNES and said there was some sprite glitching... I don't remember any, but this was a long time ago anyway...

Bye for now :)


Top
  
 
 Post subject:
PostPosted: Sun Mar 06, 2005 6:49 am 
Offline
User avatar

Joined: Mon Sep 27, 2004 8:33 am
Posts: 3715
Location: Central Texas, USA
Did the music play at all? I disassembled a short segment of code around the only two occurrences of $15 $40 (i.e. $4015), and it seemed that it would always leave the length counters at zero, resulting in silence.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Mar 06, 2005 12:03 pm 
Offline
User avatar

Joined: Wed Nov 10, 2004 6:47 pm
Posts: 1845
I just tried Ferrari Grand Prix Challenge (the game the music was ripped from?) in my emu and the music played fine... but I get complete silence in Sayoonara!.

Maybe the writing to $4015 with channel bits off only clears the length counter and doesn't prevent it from reloading? All the docs say it does though.


*shrugs*


Top
 Profile  
 
 Post subject:
PostPosted: Sun Mar 06, 2005 10:57 pm 
Offline

Joined: Mon Sep 27, 2004 11:51 pm
Posts: 101
According to the NESdev wikki, RAM is mosty set to $ff on init. Sayoonara's sound will play on my emulator if I set RAM to $00 on init, but if I set it to $ff it will not.

_________________
http://hydesprojects.cjb.net/


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 07, 2005 11:26 am 
Offline
User avatar

Joined: Wed Nov 10, 2004 6:47 pm
Posts: 1845
AAhhh... yeah that explains it. I wipe system memory with $FF on startup (This seems right to me, since using $FF solves a quirk in Final Fantasy related to random encounters).


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 07, 2005 11:38 am 
Offline

Joined: Mon Sep 27, 2004 11:51 pm
Posts: 101
http://nesdev.com/wiki/?page=Power-Up+State

_________________
http://hydesprojects.cjb.net/


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 07, 2005 5:48 pm 
Offline
User avatar

Joined: Mon Sep 27, 2004 8:33 am
Posts: 3715
Location: Central Texas, USA
In my very simple NES emulator, if I set memory to $ff then Super Mario Bros. always starts on the negative world (it works if I clear it all to 0). Is this a well-known issue?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 07, 2005 6:09 pm 
Offline
User avatar

Joined: Thu Nov 11, 2004 5:30 am
Posts: 121
Location: San Francisco, CA
For me, clearing RAM to FFh doesn't affect SMB adversely.

_________________
...patience...


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 07, 2005 7:40 pm 
Offline
Formerly Fx3
User avatar

Joined: Fri Nov 12, 2004 4:59 pm
Posts: 3064
Location: Brazil
I already had noticed this SMB side-effect on RAM $FF filling, but I didn't try again on my newst emu though... :|

_________________
Zepper
RockNES developer


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 07, 2005 11:01 pm 
Offline

Joined: Mon Sep 27, 2004 11:51 pm
Posts: 101
blargg wrote:
In my very simple NES emulator, if I set memory to $ff then Super Mario Bros. always starts on the negative world (it works if I clear it all to 0). Is this a well-known issue?


It's a bad ROM. Here:

http://nesdev.com/cgi-bin/wwwthreads/showpost.pl?Board=nesdev&Number=1669&page=5&view=collapsed&mode=threaded&sb=5#Post1669

_________________
http://hydesprojects.cjb.net/


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 29 posts ]  Go to page 1, 2  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group