Dwedit's Board

Enjoy the board

You are not logged in.

Announcement

Welcome, fellow visitors from other websites!
Whenever you download a file, I'd appreciate it if you posted a nice "Thank You" message, then tell me which site you came from. Thanks.
- Dwedit

#1 2017-02-20 9:44:36 pm

DeGamer
Slime
Slime
Registered: 2017-02-20
Posts: 8

A few PocketNES questions

Hello.

I recently came across my GBA, which I haven't used in years, along with my flash cart for it. It seems to work well still. I remember using some emulators such as  PocketNES back in 2005 or so. I figured I 'd put it to use since I sometimes have long commutes to and from work. I have an Nvidia Shield which is amazing for emulation, but it's too large to put in my pocket. It's a bit cumbersome to carry around and I'd hate to drop it and damage it. The GBA fits perfectly in my pocket so I wanted to start using that again. You must have a big soft spot for the NES and GBA to still continue working on it after all this time. I'm glad as the NES was my first home console and I still like playing games form it. So thank you :)

I remember that I had a copy of pocketnes in my email saved. I think it was version 0.998 or something along those lines. It seems to have been made by a different author. Are you the original author? Or did you pick up where the original left off?

I just tried the old version I had save and the most recent version of yours I could find (it has a date of 2013_07_01 as opposed to a version number) and I see some major improvements in terms of accuracy. The sound was the first thing I noticed. One thing I'm glad now works is the exit feature which allows me to select something else on the flash cart. Thanks a bunch for that. ;)

I saw a topic from another forum that mentions "PocketNES supports compressed 256k games". Is that through link transfer or multiboot? How does one go about doing that? I don't see an option in the menu for link transfer or multiboot and there is a topic here that mention that link transfer is no longer available. Or am I missing something?

And lastly, can pocketnes display games in the same manner as the GBA classic nes series games are displayed?

Offline

#2 2017-02-21 7:44:27 am

Dwedit
Princess Lapis of Sorcerland (Administrator)
From: Chicago
Registered: 2004-12-12
Posts: 913
Website

Re: A few PocketNES questions

Hello and welcome.

The emulator was originally made by Loopy, then Flubba took it over and added features like more mappers, then I took it over and eventually rewrote big parts.  Glad that you noticed the changes.  Especially compare Battletoads between the old and new versions, it's so much slower and the graphics look awful.
I think the new sound engine turned out really well.  The Game boy and GBA have a hardware limitation that prevent you from changing the volume of a square channel without resetting the wave phase.  I'm using a trick where you use the GBA's timers to synchronize writes to the sound registers.  This avoids the phase reset artifacts that make everything sound ugly and metallic and gave a 60Hz buzz.

As for Compressed 256K games, that means that you can compress your NES ROMS (roms above 256k in size can't be compressed) before putting them on a GBA cartridge.  This doesn't matter much for SD cards with their huge storage spaces, but it matters a lot more for the old 256MBit flash cartridges (32MB).  See "NesPack", from the downloads page.

The compressed ROM feature was originally made for Multiboot mode.  But multiboot mode wasn't just for multiboot through a link cable, for a while, it was the only way that the GBA Movie Player could load roms.  The GBA Movie Player was a popular and cheap flash cartridge at the time it came out, much cheaper than the competition, so I supported that thing heavily.

But now the emulator is no longer designed to run from RAM, instead it runs from the cartridge.  This frees up the RAM for other tasks, such as compressed roms, and more features for the emulator.  But it also means that it no longer has Multiboot support.

There is an earlier version of the emulator with Multiboot support for games up to 256K in size.  It doesn't have all the cool rewritten features that the modern emulator has though.

I don't know how the GBA classic nes series displays the games, so I can't really answer that last question.


"We are merely sprites that dance at the beck and call of our button pressing overlord."

Offline

#3 2017-02-22 8:09:25 am

DeGamer
Slime
Slime
Registered: 2017-02-20
Posts: 8

Re: A few PocketNES questions

Dwedit wrote:

Hello and welcome.

The emulator was originally made by Loopy, then Flubba took it over and added features like more mappers, then I took it over and eventually rewrote big parts. Glad that you noticed the changes.  Especially compare Battletoads between the old and new versions, it's so much slower and the graphics look awful.
I think the new sound engine turned out really well.  The Game boy and GBA have a hardware limitation that prevent you from changing the volume of a square channel without resetting the wave phase.  I'm using a trick where you use the GBA's timers to synchronize writes to the sound registers.  This avoids the phase reset artifacts that make everything sound ugly and metallic and gave a 60Hz buzz.

Ah yes, those names sound familiar. Well you definitely have made it better. I didn't think that there would have been such noticeable changes form the older versions to now. But they are noticeable.  Thanks :)


Dwedit wrote:

As for Compressed 256K games, that means that you can compress your NES ROMS (roms above 256k in size can't be compressed) before putting them on a GBA cartridge.  This doesn't matter much for SD cards with their huge storage spaces, but it matters a lot more for the old 256MBit flash cartridges (32MB).  See "NesPack", from the downloads page.

The compressed ROM feature was originally made for Multiboot mode.  But multiboot mode wasn't just for multiboot through a link cable, for a while, it was the only way that the GBA Movie Player could load roms.  The GBA Movie Player was a popular and cheap flash cartridge at the time it came out, much cheaper than the competition, so I supported that thing heavily.

I see. I was thinking the compression was for link transfers, but I get it now. :D And yes, it's more useful for older flash carts without an SD card. I have a X-Rom 512Mbit cart. It was the one with the largest capacity that I could find at the time long before carts with micro SD support were around. It was expensive, but I thought it was worth it.


Dwedit wrote:

But now the emulator is no longer designed to run from RAM, instead it runs from the cartridge.  This frees up the RAM for other tasks, such as compressed roms, and more features for the emulator.  But it also means that it no longer has Multiboot support.

Back then I thought it ran from the cart until the cart until one day I saw it running without a cart. I also didn't think that the emulator itself was also running from RAM, just the games being fully loaded into the GBAs memory while the emulator was being read form the cart. I know RAM is very limited in the GBA, but how much space would the current version of PocketNES take up? And would it still be able to load even the smallest of games or no games at all if it is running from RAM?


Dwedit wrote:

There is an earlier version of the emulator with Multiboot support for games up to 256K in size.  It doesn't have all the cool rewritten features that the modern emulator has though.

I'd like to try that one. Which is the most recent version that has that feature? My flash cart has more than enough space where I can put both the current and older version on it.


Dwedit wrote:

I don't know how the GBA classic nes series displays the games, so I can't really answer that last question.

I remember reading an article (can't remember where it was) that stated that the Classic NES series of games are displayed by omitting every third or fourth line horizontally to fit on the screen. Or something along those lines. I'll test that myself later today by taking a screen shot of an NES games running and removing those lines myself to see if the match up with the Classic NES series version.


Thanks :cool:

Offline

#4 2017-02-23 11:18:48 pm

DeGamer
Slime
Slime
Registered: 2017-02-20
Posts: 8

Re: A few PocketNES questions

Dwedit wrote:

I don't know how the GBA classic nes series displays the games, so I can't really answer that last question.

As I mentioned in my last message, I would look into this. I took a screen capture of Super Mario Bros both on an NES and GBA emulator to make a comparison.

As you already know the display resolution for the NES is 256x240 and the GBA is 240x160. To fit the NES' display width of 256 into the GBA's display width of 240, the GBA version trims the first 8 and last 8 lines (8 lines on the left and another 8 on the right). That means only 16 lines of the NES width are not shown on the GBA. That was easy to figure out.

The tricky part was trying to see how they managed to fit the NES' display height of 240 into the GBA's display height of 160. On paper, doing such a thing makes it sounds like the end result will look terribly squished. The first thing I noticed was that it trims the first 16 lines at the top and the last 11 at the bottom from the displays height. After that, it starts displaying from the 17th line at the top and then it omits the 18th line and every 4th line after that.

After editing the NES screen capture with that method, it turned out to be an exact duplicate of the GBA image, except for 2 things. First, 6 characters in the font (the numbers "1", "2" & "5", the letters "I" & "P", and the "x" multiplier for coins) have been edited in the GBA version to display better since since parts of them were cut off. They apparently forgot to edit the copyright character as the bottom portion of the C is missing. Second, Mario's sprite is different!

And lastly the colors are brighter on the GBA vs the NES, but I think that is due to the GBA being brighter in general as well as the different emulators.

Last edited by DeGamer (2017-02-23 11:25:04 pm)


Attachments:
png SMB Comparison.png, Size: 22.91 KiB, Downloads: 27

Offline

#5 2017-02-24 7:22:24 am

Dwedit
Princess Lapis of Sorcerland (Administrator)
From: Chicago
Registered: 2004-12-12
Posts: 913
Website

Re: A few PocketNES questions

For the backgrounds, you are able to turn off flicker, and use L+Select to adjust the scanline jitter.  But flicker does makes it look much better.
For the sprites, it just uses the GBA's sprite scaler hardware.

Just checked out the game, the scaling looks exactly the same as what PocketNES is doing.  Same flicker and everything.


"We are merely sprites that dance at the beck and call of our button pressing overlord."

Offline

#6 2017-02-25 5:56:55 pm

DeGamer
Slime
Slime
Registered: 2017-02-20
Posts: 8

Re: A few PocketNES questions

I knew you could turn off the flicker, but I wasn't aware that you could adjust the scanline jitter with the L+Select buttons. With certain adjustments everything looks the same as the Classic NES series except some of the sprites. In the case of SMB Mario's sprite doesn't quite look the same but it's alright. I'm happy that such adjustments can be made with everything else :)

Is there any way to play multiplayer games with the current version of PocketNES?

Offline

#7 2017-02-25 7:40:21 pm

Dwedit
Princess Lapis of Sorcerland (Administrator)
From: Chicago
Registered: 2004-12-12
Posts: 913
Website

Re: A few PocketNES questions

You can change the controls to link mode, that has nothing to do with the link transfer feature.  But then you need a second copy of the game running on the other console.

Also, link mode has pretty much never been changed or modified since it was originally written, and I've seen it fail before.


"We are merely sprites that dance at the beck and call of our button pressing overlord."

Offline

#8 2017-02-27 7:15:42 am

DeGamer
Slime
Slime
Registered: 2017-02-20
Posts: 8

Re: A few PocketNES questions

Dwedit wrote:

You can change the controls to link mode, that has nothing to do with the link transfer feature.  But then you need a second copy of the game running on the other console.

Also, link mode has pretty much never been changed or modified since it was originally written, and I've seen it fail before.

Ah that's right, thanks for the reminder. I've only used that feature to change controls between 1st and 2nd player before. I forgot about the link mode. Well I just tried it with Ice Climber and it worked fine. But then I tried it with Clu Clu Land and after a couple of minutes it froze. Both GBAs had to be restarted.

Also, you mentioned that there's an earlier version of the PocketNES with Multiboot support for games up to 256K in size.  Do you have a link for it?

And since PocketNES now runs from the cartridge, do you have any potential plans to make any future updates to it such as an "Insert Coin" button for the VS. games or Famicom Disk support?

Offline

#9 2017-02-27 8:07:29 am

Dwedit
Princess Lapis of Sorcerland (Administrator)
From: Chicago
Registered: 2004-12-12
Posts: 913
Website

Re: A few PocketNES questions

Try hitting start, that's the insert coin button, then Select as the start button.

edit:
I would need to somehow cut 13K of code and data out of PocketNES to make a modernized 256k Multiboot-capable version of the emulator.

Last edited by Dwedit (2017-02-27 11:57:25 am)


"We are merely sprites that dance at the beck and call of our button pressing overlord."

Offline

#10 2017-03-02 7:14:36 am

DeGamer
Slime
Slime
Registered: 2017-02-20
Posts: 8

Re: A few PocketNES questions

Dwedit wrote:

Try hitting start, that's the insert coin button, then Select as the start button.

Sweet! I didn't see any mention of a coin button in the menus so I thought it wouldn't work like FDS games. I'll be sure to try it now :)


Dwedit wrote:

edit:
I would need to somehow cut 13K of code and data out of PocketNES to make a modernized 256k Multiboot-capable version of the emulator.

You mentioned in another thread that you could make a new build of the current version of PocketNES, but for multiboot and stick that inside a regular build, so it can load that copy into RAM when it does Link Transfer or Go Multiboot. I think that would be the best route since the current version runs very well and that way you can leave it "intact". Would removing the cheat finder and/or auto-fire buttons suffice for that 13K on the second copy? I wouldn't mind a version like that as long as it has multiboot and/or link transfer.

The external 256 KB of memory is the reason why games can't be over that size, correct?

Offline

#11 2017-03-02 7:47:12 am

Dwedit
Princess Lapis of Sorcerland (Administrator)
From: Chicago
Registered: 2004-12-12
Posts: 913
Website

Re: A few PocketNES questions

There's a total of 384KB of RAM in the GBA.
32K of fast ram, 96K of video ram, and 256K of EWRAM.
So in multiboot mode (running entirely from RAM), the emulator needs to juggle its own code and data along with the ROM, and fit everything into the 384K of memory.  It's a miracle that it can even run 256K sized roms in the first place.
Games need to be compressed to fit the emulator + game into the max 256K size of a binary, but after that they can be decompressed as needed.

Also, I'm actively working on a modernized multiboot mode version of PocketNES.
Among other extreme size optimizations, I'm working on making it unload the code for the mappers that aren't used.
Things fit very tightly right now.  I got Tiny Toon Adventures (256K, MMC3) working in multiboot mode, and only have about 700 bytes free.  And this was with a build that only supports mapper 4.  I think I can get the other mappers in there too.


"We are merely sprites that dance at the beck and call of our button pressing overlord."

Offline

#12 2017-03-04 8:57:09 pm

DeGamer
Slime
Slime
Registered: 2017-02-20
Posts: 8

Re: A few PocketNES questions

Dwedit wrote:

There's a total of 384KB of RAM in the GBA.
32K of fast ram, 96K of video ram, and 256K of EWRAM.
So in multiboot mode (running entirely from RAM), the emulator needs to juggle its own code and data along with the ROM, and fit everything into the 384K of memory.  It's a miracle that it can even run 256K sized roms in the first place.
Games need to be compressed to fit the emulator + game into the max 256K size of a binary, but after that they can be decompressed as needed.


Also, I'm actively working on a modernized multiboot mode version of PocketNES.
Among other extreme size optimizations, I'm working on making it unload the code for the mappers that aren't used.
Things fit very tightly right now.  I got Tiny Toon Adventures (256K, MMC3) working in multiboot mode, and only have about 700 bytes free.  And this was with a build that only supports mapper 4.  I think I can get the other mappers in there too.

I didn't think it was possible either to fit all that on such a tight squeeze considering the largest NES game through multiboot that Nintendo put out was 192KB (the NES version of Yoshi's Cookie on Nintendo Puzzle Collection for the Gamecube can be sent to the GBA and is 192KB. That's the largest multiboot NESemu+ROM I've seen on a retail game.)  Too bad the GBA RAM isn't expandable like the N64.

Oh man. Looks like you've outdone Nintendo if you managed to get a 256KB game in there :D Was that using nespack.exe or was the ROM zipped?

Offline

#13 2019-05-15 10:15:07 pm

Charly9631
Slime
Slime
Registered: 2019-05-15
Posts: 2

Re: A few PocketNES questions

Hello, I have a question regarding to the menu opened on a GBA emulator:

I added 150 NES games in the PocketNES Menu Maker (from A to Z) and I also numbered the ROM for them as well. The problem is that when I load the PocketNESMenu in a GBA emulator, it only shows up to 145 games instead of 150 (changing the order would show up to 146 games for some reasons). Any idea what caused the other 4-5 games to disappear from the menu screen? Thanks in advance

Offline

#14 2019-05-16 7:43:14 am

Dwedit
Princess Lapis of Sorcerland (Administrator)
From: Chicago
Registered: 2004-12-12
Posts: 913
Website

Re: A few PocketNES questions

Maybe you exceeded the 32MB size limit.


"We are merely sprites that dance at the beck and call of our button pressing overlord."

Offline

#15 2019-05-18 7:52:08 am

Charly9631
Slime
Slime
Registered: 2019-05-15
Posts: 2

Re: A few PocketNES questions

Hi
Thanks for the response. Yeah indeed the file was over 32 MB (in fact it was 32.9 MB). After replacing some bigger games to smaller ones, it actually works! Thanks for the help. :D

Offline

Quick reply

Write your message and submit

Board footer

Powered by FluxBB