Homebrew Emulation GameYob, a gameboy emulator for DS

Deleted member 319809

MAH BOI/GURL
Member
Joined
Dec 22, 2012
Messages
900
Trophies
0
XP
461
Country
Canada
What do you think of using frameskip (4 frames skipped per 1 frame rendered) in fast-forwarding, given the following:
* It doesn't help Shantae at all, maybe 1 or 2 FPS.
* It gives Pokémon Yellow 272 FPS in the Pokémon list, an improvement of 20.
* In Shantae, frameskipped fast-forwarding creates epic graphical glitches.
* In Pokémon Yellow, it doesn't glitch at all it glitches when the screen moves haphazardly with a window enabled, like when using the move Gust.
 

Drenn

Well-Known Member
OP
Member
Joined
Feb 22, 2013
Messages
574
Trophies
0
XP
706
Country
Canada
What do you think of using frameskip (4 frames skipped per 1 frame rendered) in fast-forwarding, given the following:
* It doesn't help Shantae at all, maybe 1 or 2 FPS.
* It gives Pokémon Yellow 272 FPS in the Pokémon list, an improvement of 20.
* In Shantae, frameskipped fast-forwarding creates epic graphical glitches.
* In Pokémon Yellow, it doesn't glitch at all.
I don't really think it's worth the effort, or the possible choppiness. You can't disable hblank, or bad graphics glitches will occur in games using hblank effects; changes to tiles or tile maps can only be postponed until the next time a frame is rendered, so the amount of work done will ultimately be the same; speed can be increased by not doing calls to drawScanline or drawScreen, but believe it or not, those functions seem relatively lightweight. In fact I tried commenting them both out entirely, and still, Shantae's file select screen just barely runs at 60 fps (as opposed to 57 fps). I guess when it's already going at hundreds of frames per second, frameskip can help, but at that point it's probably fast enough already.

Edit: This will be a completely different story when I stop using the ds's tile-based hardware and start drawing everything onto a bitmap.
 

jose_exe

Active Member
Newcomer
Joined
Mar 26, 2009
Messages
25
Trophies
0
XP
522
Country
Mexico
Just tried the latest version

In PopnMusic AM, the background is now visible, but now i just noticed some sustained tones in low volume when a song is finished

In Beatmania GB, some of the sound is now fixed, the song "'disco' mirror ball" sounds weird for some reason
and in some songs it gets a sustained tone in low volume at the end too
[I just noticed in both Lameboy and Gameyob the song "'eurobeat' luv to me" gets the same sound glitch]

In Beatmania GB2, got no changes at all

In Beatmania GottaMix the sound improved a lot, but has some minor squeeks and the scoring sounds odd
Don't know if this is a glitch but in the song "Get Wild" some parts are in low volume [compared to Lameboy]

X ekkusu is fully working now!

Thank you very much!
 

marc_max

Well-Known Member
Member
Joined
Jun 19, 2008
Messages
1,041
Trophies
1
Age
38
Website
www.marcrobledo.com
XP
2,833
Country
I just came here to say that Gameyob is finally the best GB/C emu for DS! Shantae at full speed is something that not all GBC emulators achieved.

Thank you Drenn and Nebuleon for your amazing work :)
 

CoolAs

Well-Known Member
Newcomer
Joined
Oct 21, 2011
Messages
75
Trophies
0
XP
109
Country
There's clearly something different about my dsi, nifi-wise. I'll see if I can borrow another regular ds to test it. IR shouldn't be too difficult to do, in theory, since it's wireless communication. I didn't really feel like doing it since so few games use it, but I will try it at some point.
I've added nifi multiplayer support to my DS project MineDS and was going to see it I could help find your problem. However, I just tried Pokemon Yellow on 2 DS Lites with a (real) R4DS and a trade and battle worked perfectly (Dropbox latest build). However I can't figure out how to leave the trade/battle rooms, and the players don't move around with the player on the other GameYob. That however may be me not having any idea about how Pokemon Yellow works.
 

LWares87

Well-Known Member
Member
Joined
Oct 19, 2008
Messages
1,706
Trophies
0
Location
Colchester, England
XP
565
Country
United Kingdom
I've added nifi multiplayer support to my DS project MineDS and was going to see it I could help find your problem. However, I just tried Pokemon Yellow on 2 DS Lites with a (real) R4DS and a trade and battle worked perfectly (Dropbox latest build). However I can't figure out how to leave the trade/battle rooms, and the players don't move around with the player on the other GameYob. That however may be me not having any idea about how Pokemon Yellow works.
Bring up the menu and select reset. it's the same for pokemon red & blue, as well.
 

LWares87

Well-Known Member
Member
Joined
Oct 19, 2008
Messages
1,706
Trophies
0
Location
Colchester, England
XP
565
Country
United Kingdom
Or... You could just enter the emulator menu (by either touching the lower screen or pressing R), select reset and then just fast forward until you get past the title screen.
 

Drenn

Well-Known Member
OP
Member
Joined
Feb 22, 2013
Messages
574
Trophies
0
XP
706
Country
Canada
I've added nifi multiplayer support to my DS project MineDS and was going to see it I could help find your problem. However, I just tried Pokemon Yellow on 2 DS Lites with a (real) R4DS and a trade and battle worked perfectly (Dropbox latest build). However I can't figure out how to leave the trade/battle rooms, and the players don't move around with the player on the other GameYob. That however may be me not having any idea about how Pokemon Yellow works.
I just tried with 2 regular ds's, and while they don't stop transmitting randomly like my dsi does, they still have trouble getting through to each other. Usually there's at least one pokemon's stat, or name, that's messed up. So can you do me a favor... just now I've changed nifi's debug output to be a bit more useful. When the initiating ds says "Nifi timeout", that means it sent a byte to the other ds but didn't receive a response as it should have. After that it tries again. If it then says "No nifi response received", that's really bad, because it gives up and operates under the assumption that the byte "0xff" was received. So using the latest build, can you set "console output" to "debug", and let me know if you get any of those messages?

In other news, I've implemented mid-frame sprite changes. This fixes Donkey Kong Country's overworld, and also fixes invisible sprites in Harry Potter & Chamber of Secrets. For some reason I'm kind of obsessed with getting Harry Potter working properly. Probably just because Lameboy has so much trouble emulating it.
 

Deleted member 319809

MAH BOI/GURL
Member
Joined
Dec 22, 2012
Messages
900
Trophies
0
XP
461
Country
Canada
Maybe all of those mid-frame whatever changes are causing too much code to execute in the HBlank handler? You only have 96 dots worth of cycles to change the sprites, palettes and background/window offsets for the next line; that may be part of why you have to resort to forcing the next line to be modified.

Wild speculation.
 

Drenn

Well-Known Member
OP
Member
Joined
Feb 22, 2013
Messages
574
Trophies
0
XP
706
Country
Canada
Maybe all of those mid-frame whatever changes are causing too much code to execute in the HBlank handler? You only have 96 dots worth of cycles to change the sprites, palettes and background/window offsets for the next line; that may be part of why you have to resort to forcing the next line to be modified.

Wild speculation.
I tried commenting all but the essentials in the hblank function, but it still happened. I've noticed that it gets a lot worse when using fast forward, so... my current theory is the more that's going on in general, the more hblanks are missed.

Edit: I've found a slightly more elegant way of dealing with this which seems to give a 1 FPS increase. Instead of forcing everything to be done twice, the hblank handler checks if the last hblank was completed properly.
 

CoolAs

Well-Known Member
Newcomer
Joined
Oct 21, 2011
Messages
75
Trophies
0
XP
109
Country
I just tried with 2 regular ds's, and while they don't stop transmitting randomly like my dsi does, they still have trouble getting through to each other. Usually there's at least one pokemon's stat, or name, that's messed up. So can you do me a favor... just now I've changed nifi's debug output to be a bit more useful. When the initiating ds says "Nifi timeout", that means it sent a byte to the other ds but didn't receive a response as it should have. After that it tries again. If it then says "No nifi response received", that's really bad, because it gives up and operates under the assumption that the byte "0xff" was received. So using the latest build, can you set "console output" to "debug", and let me know if you get any of those messages?

In other news, I've implemented mid-frame sprite changes. This fixes Donkey Kong Country's overworld, and also fixes invisible sprites in Harry Potter & Chamber of Secrets. For some reason I'm kind of obsessed with getting Harry Potter working properly. Probably just because Lameboy has so much trouble emulating it.
Nifi timeout seems to happen every now and again during a transfer of data (6-ish times when going into the trade center).
There is a single Nifi timeout No NiFi response received (edit, typed wrong thing) after going into the the trade center, however it is at the end of the log and only once all the data has been transfered. No stats seem broken.
 

Kouen Hasuki

Coffee Addict
Member
Joined
Jan 9, 2013
Messages
1,387
Trophies
1
Age
40
Location
Behind you
XP
681
Country
Norway
I Did notice that on the very latest revision that MK4 is back to a solid color on the fight screens where as on yesterdays build it was only kinda obscured
 

Drenn

Well-Known Member
OP
Member
Joined
Feb 22, 2013
Messages
574
Trophies
0
XP
706
Country
Canada
Nifi timeout seems to happen every now and again during a transfer of data (6-ish times when going into the trade center).
There is a single Nifi timeout No NiFi response received (edit, typed wrong thing) after going into the the trade center, however it is at the end of the log and only once all the data has been transfered. No stats seem broken.
Hmm. If you don't have 6 pokemon, that 1 "no response received" could be part of an empty pokemon slot. But it only happened once, so you seem to be having more luck than I am! Last time I tried it happened at least a dozen times. The results were very weird.
When will be official a new stable version (may be 0.3)?
Only for know it.
Probably soon. There's been more than 110 commits since version 0.2... the changelog will be overflowing.
 

marc_max

Well-Known Member
Member
Joined
Jun 19, 2008
Messages
1,041
Trophies
1
Age
38
Website
www.marcrobledo.com
XP
2,833
Country
I have a suggestion for custom palettes for GB games.
gameyob.ini could have a similar structure to this:

[Palette:Gray]
bg=FFFFFF,AAAAAA,555555,000000
win=FFFFFF,AAAAAA,555555,000000
obj1=FFFFFF,AAAAAA,555555,000000
obj2=FFFFFF,AAAAAA,555555,000000

[Palette:DKLand 2-3]
bg=FFFFFF,8F8FDF,57578F,000000
win=FFB4B4,FF4747,800000,000000
obj1=FFC747,FFD700,973F00,4F0000
obj2=FFFFFF,5FBFFF,FF0000,0000FF

and then a palette selector at the options menu could do the rest :)
I can easily convert all DGBMax and Goomba palettes to this format.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: @realtimesave, Welcome back