It is currently Sat Nov 18, 2017 7:47 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 27 posts ]  Go to page Previous  1, 2
Author Message
 Post subject:
PostPosted: Mon Mar 05, 2012 2:21 pm 
Offline
User avatar

Joined: Wed Dec 22, 2010 9:14 am
Posts: 29
Location: Germany
infiniteneslives wrote:
Also as far as the game goes I wanted to say it looks really good and clean I like the graphics and artwork. I also like the mechanics and physics of the game especially those tornadoes! It was also a nice touch to have the background move up and down when they jump and land it has a nice way of giving the illusion of jumping. Great job!


Thanks a lot! :D

infiniteneslives wrote:
This is what it looks like everytime I die on FCEUX and the NES as well. It's not an issue of things being saved after power down, it's an issue of not being able to get them to save in the first place. When I play the non-battery version it works fine on both the NES and FCEUX. I'm Thinking it might be an issue of the RAM initialization data. Nestopia assumes one thing and FCEUX and I initialize differently?!


It works with the newer FCEUX 2.1.5 - also with the older FCEUXDSP. But not with 2.1.4a for some strange reason. I couldn't find a detailed changelog for 2.1.4a>2.1.5 so I did a lot of testing. I looked inside the hex editor of FCEUX 2.1.4a during runtime and saw that the PRGRAM location is changing the bytes in a constant interval (but only if you do something inside the endless loop, e.g. loading a byte into the accumulator). I wonder why. It does the same when PRGRAM bit is not set, so I assume it just ignores the wram bit at byte 6 for the NROM mapper while the new version accepts it? But what is the PRGRAM location used for if there is no PRGRAM? I didn't found any info on this.
For example, taking this very simple example:

Code:
  .db "NES", $1A
  .db $01, $01, %00000010
  .db $00, $00, $00
  .db $00, $00, $00
  .db $00, $00, $00

  .org $C000

NMI:
  RTI
RESET:
  SEI
  CLD
  LDX #$FF
  TXS

PPUWarmup1:
  LDA $2002
  BPL PPUWarmup1
PPUWarmup2:
  LDA $2002
  BPL PPUWarmup2
 
  LDA #$50
  STA $6000
  STA $7000

FOREVER:
  LDA #$01
  JMP FOREVER

  .org $FFFA
  .dw NMI, RESET, 0

  .base $0000
  .dsb $2000, $00


In this simple case all bytes in PRGRAM switches repeatedly from value $01 to value $C0. In version 2.1.5 it saves $50 in $6000 but not in $7000 (so i would assume that it does only reserve 4kb). My game needs only a couple of bytes in $6000 so that's the reason why it works with 2.1.5. In FCEUXDSP and Nintendulator this works as expected.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 05, 2012 2:45 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19226
Location: NE Indiana, USA (NTSC)
I'm guessing that because most mapper 0 boards didn't have PRG RAM at $6000-$7FFF, the emulator should emulate open bus at $6000-$7FFF. Family BASIC is a mapper 0 game with PRG RAM there, but its PRG RAM is smaller than 8 KiB, so that might be what you're seeing. If you want to force a particular PRG RAM size, use an NES 2.0 header.

Anyway, you can't count on an emulator or even the actual hardware to initialize RAM to $00, $FF, or any other known value when creating the .sav file. You have to detect whether the RAM has already been "formatted", such as by putting "POGO" in some known location. Actual NES and Super NES games with battery-backed RAM tend to have either a menu (e.g. The Legend of Zelda or Super Mario World) or a hidden button combination (e.g. Super Mario Kart) to erase all data, and they also have a checksum mechanism to verify data.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 05, 2012 3:49 pm 
Offline
User avatar

Joined: Wed Dec 22, 2010 9:14 am
Posts: 29
Location: Germany
tepples wrote:
Anyway, you can't count on an emulator or even the actual hardware to initialize RAM to $00, $FF, or any other known value when creating the .sav file. You have to detect whether the RAM has already been "formatted", such as by putting "POGO" in some known location. Actual NES and Super NES games with battery-backed RAM tend to have either a menu (e.g. The Legend of Zelda or Super Mario World) or a hidden button combination (e.g. Super Mario Kart) to erase all data, and they also have a checksum mechanism to verify data.


Yes I already had implemented that (only in the battery-version) by using "CAT" string before the highscore. However I did this check only at startup (clear whole RAM if there is no "CAT" and keep it, if there is) - not during the game (like in this case where the data should be drawn).


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 13, 2012 6:15 pm 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1919
Location: WhereverIparkIt, USA
Good news. Something dawned on me today about my hardware setup. I had my prg-data buffer direction wrong because I wasn't considering when the wram was addressed. So all reads from wram came back open bus even though you were able to write to it.

Fixed up my code and everything worked great! Things looked proper when playing the first power up and everything saved after power down as well.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 15, 2012 7:18 am 
Offline
User avatar

Joined: Wed Dec 22, 2010 9:14 am
Posts: 29
Location: Germany
infiniteneslives wrote:
Good news. Something dawned on me today about my hardware setup. I had my prg-data buffer direction wrong because I wasn't considering when the wram was addressed. So all reads from wram came back open bus even though you were able to write to it.

Fixed up my code and everything worked great! Things looked proper when playing the first power up and everything saved after power down as well.


Congratulation on that :) To bad, that some emulators (notably FCEUX) don't allow PRGRAM with mapper 0. Is there any reason why they don't allow it even if the PRGRAM bit is set?

So everything works perfectly on the real NES? I'm very happy about that :) I was a bit worried about the scrolling....


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 15, 2012 8:29 am 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1919
Location: WhereverIparkIt, USA
Yggi wrote:
So everything works perfectly on the real NES? I'm very happy about that :) I was a bit worried about the scrolling....


Yeah it works great. It actually looks and sounds a lot better than in emulators too. I saw some people make comments about something wrong with the sound and I agreed with them when I played in an emulator. But when I played on the NES nothing seemed wrong and the music seemed fitting to me at least.

As you would expect the colors looked better as well.

The scrolling seemed jittery at times on the emu (maybe just my computer) but it was nice and smooth on the NES.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 15, 2012 11:19 am 
Offline
User avatar

Joined: Wed Dec 22, 2010 9:14 am
Posts: 29
Location: Germany
infiniteneslives wrote:
Yggi wrote:
So everything works perfectly on the real NES? I'm very happy about that :) I was a bit worried about the scrolling....


Yeah it works great. It actually looks and sounds a lot better than in emulators too. I saw some people make comments about something wrong with the sound and I agreed with them when I played in an emulator. But when I played on the NES nothing seemed wrong and the music seemed fitting to me at least.

As you would expect the colors looked better as well.

The scrolling seemed jittery at times on the emu (maybe just my computer) but it was nice and smooth on the NES.


That are awesome news :D
Now I really can't wait to test it myself on real hardware.

About the music, I'm really glad. 'm actually using Celius' (ntsc) notes table. But that should be pretty accurate since i guess a lot of people (including metalslime from nerdy nights sound where i got it) use it.


Top
 Profile  
 
 Post subject:
PostPosted: Sat May 19, 2012 6:11 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19226
Location: NE Indiana, USA (NTSC)
Today I beat 33000 for the first time while playing Pogo Cats in Action 53 in in FCE Ultra GX on a homebrewed Wii console. Does it go to 65535, 99999, or what?


Top
 Profile  
 
 Post subject:
PostPosted: Mon May 21, 2012 1:48 pm 
Offline
User avatar

Joined: Wed Dec 22, 2010 9:14 am
Posts: 29
Location: Germany
tepples wrote:
Today I beat 33000 for the first time while playing Pogo Cats in Action 53 in in FCE Ultra GX on a homebrewed Wii console. Does it go to 65535, 99999, or what?


It supposed to go to 9'999'999'999 (and then keeping this maximum), but unfortunately the current version has a bug (which was introduced after some quick changes I needed to make), which caused the game to hang when the points where in the near of the max. :oops:
But it was easy to fix. I will upload the new version(s) and update the first post.
However, I doubt that somebody will reach it without cheating (i guess it would take days to reach it)


Top
 Profile  
 
 Post subject:
PostPosted: Mon May 21, 2012 2:47 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19226
Location: NE Indiana, USA (NTSC)
Yggi wrote:
However, I doubt that somebody will reach [scores in the billions] without cheating (i guess it would take days to reach it)

Yeah, that was another problem my cousin noticed. It didn't get any harder over time, unlike MineShaft which scrolls faster.


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 22, 2012 8:59 am 
Offline
User avatar

Joined: Wed Dec 22, 2010 9:14 am
Posts: 29
Location: Germany
tepples wrote:
Yggi wrote:
However, I doubt that somebody will reach [scores in the billions] without cheating (i guess it would take days to reach it)

Yeah, that was another problem my cousin noticed. It didn't get any harder over time, unlike MineShaft which scrolls faster.


I agree, that the game should had atleast a increassing difficulty (maybe by decreasing distance tolerance to next platforms would have been a good idea). I should have done more with the game, even include more 'levels' with themes with their own theme-related difficulty (like winter/ice world with slipping, desert world with constant winds and water world with a higher jump acceleration).
Now that I'm thinking about it... The level-switch could have been done fluently by slowly increasing the distance to the 'background ground' until only the moon would have been visible. Then uploading the nametable of the next theme and slowly scrolling back to the optimal position each time the player is falling. :D
But anyway, I consider this game as finished now... I'm already working on a bigger and more interesting game :)


Top
 Profile  
 
 Post subject: Re:
PostPosted: Thu Jan 28, 2016 7:55 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19226
Location: NE Indiana, USA (NTSC)
Yggi wrote:
But anyway, I consider this game as finished now

Source release plz? Because today in #nesdev, fys, DarkAries, and darryl.revok decided they want Arkanoid controller support in Pogo Cats. I have the controller, the PowerPak, and a test ROM incorporating an Arkanoid controller driver.


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 1 guest


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