#8099 - Ninja - Wed Jul 02, 2003 1:35 am
It's not so much VisualBoy Advance, as version 1.5.1. It drives me nuts to tell the truth. I don't know if it's just my computer, or my code, or what. The code I write seems to work just fine on other versions of VBA, and it works on the other computer I tested it on as well. I am just curious if anyone else is experiencing problems such as I am having.
The first problem manifested itself when I was coding a class to hold my sprites, and set them up. The sprites would appear in the OAM Viewer, with all the correct attributes, but would NOT display on the screen. I would get a big bunch of black where a sprite should have been. VisualBoy Advance 1.4 had no problem with this. The sprites would appear where they were supposed to.
The second problem arose when I was testing my collision detection code. The game would slow down to a crawl, and my character would start skipping a whole bunch of tiles when the map was scrolling. I tried fixing my code for the longest time until I realized that it was the emulator slowing down. It would run just fine for the first little bit, then get gradually slower, until it was running at about 7fps. It wouldn't speed back up again. I tried it in VBA 1.4, and had no problems. I was able to walk as far as I wanted in one direction, and the scrolling would never be anything but smooth as silk.
Anyone else encounter either of these problems? For the time being, I have removed version 1.5.1 from my computer completely, and gone back to 1.4.
#8102 - jcpredator - Wed Jul 02, 2003 2:40 am
Yes I am having some weird problems using 1.5.1 VBA. I have yet to be able to display correctly drawn tiles even though my code is flawless and the conversion is correct, I made my own tool for this and it should work.
_________________
There is no spoon...
#8106 - tepples - Wed Jul 02, 2003 5:30 am
Quote: |
The sprites would appear in the OAM Viewer, with all the correct attributes, but would NOT display on the screen. |
I haven't had any problem running dumps of my carts in VBA 1.5.1. Did you write them to OAM with the correct palettes? Are you doing anything with sprite priority or layer blending effects? Have you tried to run your program on hardware?
Quote: |
The second problem arose when I was testing my collision detection code. The game would slow down to a crawl, and my character would start skipping a whole bunch of tiles when the map was scrolling. I tried fixing my code for the longest time until I realized that it was the emulator slowing down. It would run just fine for the first little bit, then get gradually slower, until it was running at about 7fps. It wouldn't speed back up again. I tried it in VBA 1.4, and had no problems. I was able to walk as far as I wanted in one direction, and the scrolling would never be anything but smooth as silk. |
You may be running into automatic frame skip.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#8109 - Ninja - Wed Jul 02, 2003 7:47 am
tepples wrote: |
I haven't had any problem running dumps of my carts in VBA 1.5.1. Did you write them to OAM with the correct palettes? Are you doing anything with sprite priority or layer blending effects? Have you tried to run your program on hardware? |
It's an intermittent problem on my computer. I have no way of knowing what it's going to do, or when. A very nice man has ran one of my programs on a real gba in this thread. This was one of the programs that was having difficulty displaying a sprite. I have removed it since then due to space constraints, but I just want to show that I DID test it.
And no, I haven't touched sprite priority or layer blending. Hell, I tried taking out backgrounds entirely when my sprites weren't showing up, and I still couldn't see them in anything but the OAM viewer. VBA 1.4 ran them just fine.
Quote: |
You may be running into automatic frame skip. |
I turned that off first thing.
#8114 - cappeca - Wed Jul 02, 2003 1:39 pm
Emulators are good, but not very trustful. I always test my game in VBA, Boycott and Mappy, and if I'm still in doubt, I flash it to the hardware. As of today, my game won't run in Boycott 0.2.8 (runs fine in 0.2.6), runs too fast in VBA, too slow in Mappy, and perfect on the GBA - which is the target anyway.
Cesar.
#8141 - Ninja - Wed Jul 02, 2003 8:29 pm
Understood. I just can't really afford a flash cart yet, although I would really like to have one. :) Thanks for confirming for me that I'm not going crazy though. ;)
#8142 - tepples - Wed Jul 02, 2003 8:42 pm
cappeca wrote: |
As of today, my game won't run in Boycott 0.2.8 (runs fine in 0.2.6), runs too fast in VBA |
Too fast in VBA means you're synchronizing to the CPU speed rather than to the vblank. Because VBA doesn't insert enough wait states, it emulates a GBA whose memory has been overclocked. Nevertheless, timed interrupts (such as from the GBA's timers or from the display controller) still occur at the correct rate. This is the only accuracy problem I've found with recent VBA.
And if you can't afford a flash cart yet, then buy yourself an MBV2 cable or build yourself an Xboo cable.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#8149 - cappeca - Thu Jul 03, 2003 3:39 am
Quote: |
Too fast in VBA means you're synchronizing to the CPU speed rather than to the vblank. Because VBA doesn't insert enough wait states, it emulates a GBA whose memory has been overclocked. Nevertheless, timed interrupts (such as from the GBA's timers or from the display controller) still occur at the correct rate. This is the only accuracy problem I've found with recent VBA.
|
I didn't know that about VBA, thanks! Curious thing is that I'm synchronizing it with timer interrupts.
#8166 - niltsair - Thu Jul 03, 2003 3:03 pm
Don't! ;-) I did the same for my first game. Everything was woking perfectly well, then i tried it on other emulator. Lo and behold, wasn't working so great :-P The timers are badly supported by emulator, they don't all have the same implementation for interrupt.
So, you should instead create a timer out of VBlank interupt. This will give you consistant speed accross all emulator, and the hardware.