I made another bugfix release, addressing game freeze issues in some games like Donkey Kong Land. More info on the release here.

In the meantime, I've made some decent progress on my first step toward rewriting the emulator core to support a dynamic memory map, which will be essential for supporting both GB and GBC at the same time (and this rewrite also has a goal of improving the overall performance). Hopefully with the holidays coming up, I can get in some extra coding time, too!
Awesome work! This is looking incredible, and I can't wait for that GBC support to be released. Keep up the great work, and thanks for many class periods playing Donkey Kong Land 2.
I just made a new release which makes use of newly discovered LCD documentation to eliminate diagonal screen tearing in fullscreen mode! I'd definitely appreciate feedback on this release because it's a bit experimental. More info here.

This release also lays some important groundwork for future GBC rendering. Up until now I used 4 bits per pixel for fullscreen rendering so I could render two pixels at once in a single byte, but the GBC can display well more than 16 colors at once, so I'll need 8 bits per pixel for it. This means the framebuffers would have to be twice as large (and require twice as many writes to render to it), which would be bad for memory usage and performance.

With this change though, my framebuffers only need to be 160x240 pixels, so I can expand to 8 bits per pixel with no memory cost. Even for original Game Boy, this is an improvement just to get rid of special-casing for 4-bit or 8-bit rendering. With a 256-color palette, I was also able to greatly increase performance when rendering multiple sprite palette configurations in a single frame (which doesn't happen often, but it was a terrible edge case before).

With this release, hopefully I can go back to my emulator core rewrite for GBC support, which I stalled while working on these rendering updates.
Always good to see an update and getting rid of screen tearing, nice!

I'm pleased to see that there is actually a performance gain when switching to support a higher bpp to accommodate GBC Smile.
Yay, no more screen tearing! Always a pain while trying to play old zelda games... (lol like that would make a real difference)

Still, this is really cool. Does it affect the fps any?
darkwater4213 wrote:
Yay, no more screen tearing! Always a pain while trying to play old zelda games... (0x5 like that would make a real difference)

Still, this is really cool. Does it affect the fps any?

I believe it shouldn't really have any noticeable effect on the FPS (aside from the improvement I mentioned about sprite palettes, which I've only ever seen in the title screen of V-Rally Championship Edition). I'm still rendering the same number of pixel bytes per frame as before, they're just in a different format now. Though the emulator's size did shrink slightly since I was able to remove all the code for conditionally packing 4-bit pixels.

Edit: As for the performance on future GBC work, this is likely going to be a massive improvement for fullscreen rendering.

These are my current estimates for maximum theoretical render speed based on prototype GBC tilemap render code, including DMA cycle stealing (assuming background tilemap only, no sprites, no CPU emulation or anything else):

  • Original Game Boy, no scaling: 198 FPS
  • Original Game Boy, full screen with new hardware-based upscale: 135 FPS
  • Original Game Boy, full screen without hardware-based upscale: 135 FPS
  • Game Boy Color, no scaling: 120 FPS
  • Game Boy Color, full screen with new hardware-based upscale: 93 FPS
  • Game Boy Color, full screen without hardware-based upscale: 60 FPS

Yes, fullscreen would have literally more than halved the render speed without this upscaling trick. So, I'm feeling a lot better about potential GBC performance than I did before, though it likely will still require more frameskip on average due to other factors like having to emulate the CPU's double-speed mode.

Edit 2: It looks like I greatly overestimated the amount of time for DMA cycle stealing. Updated the numbers to be much more promising (but the point stands about full screen without hardware upscale being twice as slow).
I must confess that it took until yesterday before i finally try TI-Boy CE. I have now done so on my pre-A CE with Zelda and it ran quite smoothly. The interlacing is barely noticeable but I haven't tried scrolling games yet.
This is a great Game-boy emulator!
All the games I've tried work very good.

The only problem is the CE's lack of flash memory to store them on.
You need to carefully choose the best small sized games.

This is what I have on mine:
1 Burger Time with Pepper cheat - 64K
2 Kirby's Dream Land - 256K
3 Kirby's Pinball - 256K
4 Mario Land with Lives cheat - 64K
5 Q-bert - 64K (had to remap the buttons for easier diagonals)
6 Tetris - 32K

I also like that they all have some color and the save states.

Great work Calc84maniac !
One feature some people might want the addition of Game Genie codes.
I've been working hard on Game Boy Color support this year, and since I just made a GBC skin for unscaled mode (fullscreen mode doesn't work in CEmu) I figured I might as well record some gameplay!

Here's a bit of footage of me messing around in Metal Gear Solid: Ghost Babel:

I've still got a lot of testing to do (I've encountered several random game crashes when testing on a real calculator that I haven't tracked down) but overall it's coming along well!

The biggest existing issues I do not plan to address before the next release are:
  • Lack of support for mid-frame palette changes (which are used by some games to display more than the usual limit of 56 colors at a time)
  • Poor performance in some games (GBC can be very demanding, and I can focus more on optimizations after I have a working release)
  • Storage space limitations (this is the CE's fault more than mine, but many 4MB ROMs simply cannot be used)

I'm still not sure about the release timeline, but I'm going to keep working on it until I'm satisfied with its stability.
Amazing work man! The speed of this game is awesome too, really promising.

I can appreciate the crazy amount of work that's gone into this 😀
Congratulations, this is just awesome Smile
GAMEBOY COLOR?!? Boy oh boy, finally I'll be able to actually have a childhood, lol! The original gameboy emulator was just insane, but this is over board sick! Keep up the good work, at this rate, I might be expecting Gameboy Advance. Keeping fingers crossed!!!
Fantastic indeed Smile
That is super awesome Very Happy
ProgrammerBobSmith wrote:
GAMEBOY COLOR?!? Boy oh boy, finally I'll be able to actually have a childhood, 0x5! The original gameboy emulator was just insane, but this is over board sick! Keep up the good work, at this rate, I might be expecting Gameboy Advance. Keeping fingers crossed!!!
Yeah and Nintendo DS (not necessarily DSi) would be nice as well even if it runs at less than 120 FPS.

More seriously this is amazing progress. Emulation speed seems nice as well considering the platform's limitations. Smile
Dang, that's looking really impressive. I can't wait to see how this continues! And that skin is the icing on the cake, although I do wonder if it wouldn't be smart to avoid some modicum of copyright/trademark infringement by changing the text to "MATCH MAN COLOR" or GB BOY or similar.
I dont know how I missed this. It's great but I've been waiting for the gba although this is another step closer. Keep up the good work this is amazing.
Just to set things straight if anyone is expecting GBA emulation on the CE next -- don't get your hopes up, seriously. It's not going to happen as part of this project, or by me in general because I consider it outside of reasonable possibility. And I'm saying that as the creator of TI-Boy SE.

I'm not going to go too deep into the details again, but it mostly has to do with memory (the CE doesn't have enough RAM for all of the GBA's RAM plus a framebuffer, and I believe all GBA ROMs are at least 4MB which is larger than the CE's Archive storage). That, and the GBA has a 32-bit ARM processor that runs more instructions per second than the 8-bit eZ80 processor in the CE, factoring in memory speeds. That's not even accounting for the complex 2D video hardware that's difficult to replicate on the CE even outside of the context of emulation.

Now that being said, I will at least be supporting the GBA's backwards compatibility mode (aka the GBC hardware in the GBA) which unlocks features in a select few GBC games. This is no different in terms of emulation, aside from the game being able to tell which system it's running on. These games also use a different color palette to account for the difference in the GBA's screen contrast, so I'll be including both GBC and GBA color adjustment options to improve how the games look on the CE's screen (or if you want to see how bad most other GBC games looked on a GBA Razz )
calc84 was kind enough to let me get a build in advance for my pre-announce article on TI-Planet, so here's a quick demo showing how fast Pokémon Crystal runs!

Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
» Goto page Previous  1, 2, 3 ... 9, 10, 11, 12, 13  Next
» View previous topic :: View next topic  
Page 10 of 13
» All times are UTC - 5 Hours
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 vote in polls in this forum