Omnimaga
Omnimaga => Completed => Our Projects => TI-Boy SE - Game Boy Emulator For TI-83+SE/84 => Topic started by: calc84maniac on April 23, 2017, 06:04:11 pm
-
Hey, so some of you already knew this, but I'm working on a TI-Boy iteration for the TI-84+ CE. Still Game Boy only and no Game Boy Color, at least for now, but I'm bringing in automatic colorization like when you play GB games on a real GBC.
Thanks to the extra RAM in this system I'm able to get all fancy with dynamic recompilation for the CPU and use caches to speed up graphics rendering, so the end result is an emulator that can actually hit fullspeed and 60 frames per second for some games, and fullspeed with frameskip for others. Not to mention, unlike previous versions of TI-Boy I'm implementing accurate cycle timing in the emulation, which is dramatically improving ROM compatibility.
I can get into more of the specifics of how it works under the hood in future posts, if you want to hear it. This thread could become a sort of development blog, I suppose.
As for remaining emulation features, I do want to implement Real Time Clock emulation for cartridges that support it, as well as basic emulation for the link port hardware that prevents games from freezing when attempting to start a transfer. There's also a bug in partial-frame sprite rendering that I need to address, and probably other things I haven't thought of yet.
On the user interface side, I still need to put in support for saving the current configuration (e.g. frameskip and palette settings), either on a global or per-game basis. Save states would be nice too, but I'm not sure if they need to be in the initial release.
At any rate, I've put up a preview video that you can view in glorious 60FPS :)
-
Well this is very exciting :D
-
Amazing, I'm literally speechless !
Are you planning about a release ? (well, I'm gonna be honest I'm not really intersted by it because I don't have a 83/84 CE :p) but still if you're planning to do so, I guess I'll sell my TI84se xD
By the way, I'm curious, how do you make a rom compatible with the emulator ? Just as the ti84se way ?
-
Wow, this is looking amazing!
-
Ti-boy has always been a fascinating technical achievement to me. It should be a much more enjoyable experience with the increased power, resolution and color that the new model offes. I hope you'll continue to post about it here as you make progress. :)
*Edit* Just watched the video... Wow... Metroid runs super smoothly! :O There seems to be a diagonal line that crosses the screen every now and then. Any idea what's up with that? I know you said you aren't supporting Game boy Color yet, but what about DX games that run on both systems(the black cartridges). Will it be possible to have them in color? A few notable examples that come to mind are the Pokemon Gold and silver games, Zelda DX, and Dragon Warrior I&II.
-
Ti-boy has always been a fascinating technical achievement to me. It should be a much more enjoyable experience with the increased power, resolution and color that the new model offes. I hope you'll continue to post about it here as you make progress. :)
*Edit* Just watched the video... Wow... Metroid runs super smoothly! :O There seems to be a diagonal line that crosses the screen every now and then. Any idea what's up with that? I know you said you aren't supporting Game boy Color yet, but what about DX games that run on both systems(the black cartridges). Will it be possible to have them in color? A few notable examples that come to mind are the Pokemon Gold and silver games, Zelda DX, and Dragon Warrior I&II.
The diagonal line is an issue with TI's LCD setup, you'd see it with any CE game that does any kind of full-screen changes like scrolling. (Well, unless the game uses a recently-discovered method for having a column-major framebuffer, but that's not in the cards for TI-Boy for performance reasons.)
Those games you mentioned would be playable as they were on the GB, but not full-color like on the GBC (because they typically do make use of GBC-specific features). You'd still be able to select a color palette like with any other GB game, though.
-
That's strange about the diagonal line. It's not super noticeable, I just thought it was a bit odd. Too bad that the DX style games use GBC features when in full color. I didn't realize that. :(
-
So in the future would it be possible to be able to make GBC games compatible with the Ti-84 CE? Because if so that would be wonderful to able to play games like Metal Gear Solid Ghost Babel or even the rom hack Pokémon Prism.
-
So in the future would it be possible to be able to make GBC games compatible with the Ti-84 CE? Because if so that would be wonderful to able to play games like Metal Gear Solid Ghost Babel or even the rom hack Pokémon Prism.
Possible? Probably. It would likely have worse performance, though (which frameskip might be able to mitigate to some extent).
-
Do we have an update on when we could get a release?
-
I'll let @calc84maniac answer, but with projects like this, eta's tend to be either nonexistant or very flexible.
-
Wondering why there's been no sort of update on the projects progress in months. It has me concerned, and anxious for when some form of update is announced. And I can't wait to hear some form of news about this project!
-
any updates or news on progress? or even an alpha?
-
Most recently (within the last week or so) I've added support for save states. I've also been working on general bug fixes and performance improvements.
The major things remaining on my to-do list before the first release are:
- Real-Time Clock support (currently in progress)
- Saving emulator configuration (and maybe per-game config, but that could be postponed)
- Fixing automatic frameskip (which doesn't work properly when skipping multiple frames)
- Making sure the ROM splitting tool is usable
And whatever else comes up in the meantime, I suppose.
I might make another video soon that shows some of the emulator features like the save states and UI.
-
How's the progress on this? Asking cause school season's starting and i want something to do on my calculator that's not just Minesweeper to show off to my friends.
-
Just picked up a Ti-84 Plus CE for algebra 2 and have been having a blast with Oiram,Pacman,and the likes.Stumbled over this thread and I'm in awe at how smooth the emulator can run things compared to my sisters old Ti-84 SE version.Hope to see a release soon so I don't die of boredom in class! :w00t:
-
Waouh. Beautiful :o
I am waiting for your program with impatience ;D
-
It’s been a while since I’ve hear any information on this project. I was just wondering how progress is moving for the project, or if it’s moving at all.
-
Hello calc84maniac!
Do you have an estimated date on when ti boy will come out? My friend has pokemon yellow on his calculator and I kind of want to join him. Take your time on this project, but when do you think this will come out? ;D
Just picked up a Ti-84 Plus CE for algebra 2 and have been having a blast with Oiram,Pacman,and the likes.Stumbled over this thread and I'm in awe at how smooth the emulator can run things compared to my sisters old Ti-84 SE version.Hope to see a release soon so I don't die of boredom in class! :w00t:
Same here! My friend has Pokemon Yellow and he is having a lot of fun on it too. Maybe it will come out near Christmas and we concider it as a Christmas gift :3
Edit (Eeems): Merge double post
-
I've uploaded another TI-Boy CE preview, this time featuring Galaga! Also showing off some new features like display scaling, save states, and turbo mode.
I think I'm getting fairly close to a release, but I'll have to guesstimate Spring 2018 to be safe. :)
-
YOOOOOOOOOO That so cool :o I can't wait till spring (pffffffft 4get all those other holidays)
-
I've uploaded another TI-Boy CE preview, this time featuring Galaga! Also showing off some new features like display scaling, save states, and turbo mode.
I think I'm getting fairly close to a release, but I'll have to guesstimate Spring 2018 to be safe. :)
Awesome! I've been wondering what you've been up to. This is looking really good, can't wait for that release!
-
Looking great!
-
I can't wait! Spring is almost here! Hope it comes out soon!
-
The legend himself comes back to deliver. This looks pretty awesome. :D
coca cola is for plebs tho, dr pepper is the drink of the chosen
-
The legend himself comes back to deliver. This looks pretty awesome. :D
coca cola is for plebs tho, dr pepper is the drink of the chosen
Lol it's the sweet one :thumbsup:
-
That's great news! It is currently Spring of 2018 :3. I can't wait until it comes out! Keep up the good work! ;D
-
I whipped up a quick website for TI-Boy CE, nothing too special yet but it'll be nice to have when I release the emulator. I may eventually (after release) write a series of blog posts about TI-Boy's design, if anyone's interested.
Check out the site here! https://calc84maniac.github.io/tiboyce/ (https://calc84maniac.github.io/tiboyce/)
That's great news! It is currently Spring of 2018 :3. I can't wait until it comes out! Keep up the good work! ;D
It's not quite Spring yet, but soon... ;)
-
I whipped up a quick website for TI-Boy CE, nothing too special yet but it'll be nice to have when I release the emulator. I may eventually (after release) write a series of blog posts about TI-Boy's design, if anyone's interested.
I'd love to read about it.
It's not quite Spring yet, but soon... ;)
It's already 32°C over here. :P
-
It's not quite Spring yet, but soon... ;)
It's already 32°C over here. :P
-5°C here :(I whipped up a quick website for TI-Boy CE, nothing too special yet but it'll be nice to have when I release the emulator. I may eventually (after release) write a series of blog posts about TI-Boy's design, if anyone's interested.
Check out the site here! https://calc84maniac.github.io/tiboyce/ (https://calc84maniac.github.io/tiboyce/)
It looks like the license link in the sidebar is a dead link. You'll probably want to fix that.
I'd also suggest making the releases link take you directly to the github releases, instead of linking to a page that tells you to go to github.
-
It looks like the license link in the sidebar is a dead link. You'll probably want to fix that.
I'd also suggest making the releases link take you directly to the github releases, instead of linking to a page that tells you to go to github.
Eh, it's sort of intentional on both parts. The link will be undead once I push my master branch (technically there's nothing out under GPL yet, the website branch itself is MIT), and the releases page is actually a blog category so it'll have blog posts listed under it once I post them.
I guess I could remove the link but I'm lazy :P
-
I whipped up a quick website for TI-Boy CE, nothing too special yet but it'll be nice to have when I release the emulator. I may eventually (after release) write a series of blog posts about TI-Boy's design, if anyone's interested.
I think you should. I'm sure many (myself included) would find it an interesting read.
Check out the site here! https://calc84maniac.github.io/tiboyce/ (https://calc84maniac.github.io/tiboyce/)
Very nice!
That's great news! It is currently Spring of 2018 :3. I can't wait until it comes out! Keep up the good work! ;D
It's not quite Spring yet, but soon... ;)
-
YES!!!! IT'S FINALLY SPRING, which month are u planning to release. I'm gonna die of boredom over here at school after tests. :w00t:
-
I can't belive it! It's almost done! This could be one of the best things on the ti 84 plus ce calculator :thumbsup:
Which month do you think that it will be completed though?
-
Man, I really wish I had a color calculator.
-
I ended up taking a longer break from working on TI-Boy than expected, but upon continuing I found the motivation to add a feature I originally planned to defer to a future release: save file compression!
I also wrote a blog post with more juicy technical details: https://calc84maniac.github.io/tiboyce/progress/2018/05/18/progress-update-save-file-management.html (https://calc84maniac.github.io/tiboyce/progress/2018/05/18/progress-update-save-file-management.html)
-
It's been a long journey, but we're finally here. The first release!
You can download the release from GitHub (https://github.com/calc84maniac/tiboyce/releases).
And thanks to Adriweb, the ROM-to-AppVar converter can be used directly from your browser (https://calc84maniac.github.io/tiboyce/converter)!
I also uploaded a new video with footage from a few games:
Enjoy!
-
Awesome! Thanks for all the hard work @calc84maniac
-
Holy hell, that is awesome!
-
YAY :w00t: this is amazing thanks calc84maniac
-
I've released TI-Boy CE Alpha v0.1.1, which fixes an erratic crash along with some other minor bugfixes and improvements. I recommend updating to this version ASAP because the crash can affect any game.
Check it out here: https://calc84maniac.github.io/tiboyce/releases/2018/07/28/alpha-v0-1-1-released.html (https://calc84maniac.github.io/tiboyce/releases/2018/07/28/alpha-v0-1-1-released.html)
Hopefully this will fix the problems people have been having, but let me know if you see any more crashes with this version. :)
-
Congrats on the release!
-
I just uploaded the web version of a feature planned for the next TI-Boy CE release, which is a converter between save file formats for TI-Boy and standard Game Boy emulators.
It's still experimental, but if you want to try it out, it's available here: https://calc84maniac.github.io/tiboyce/saveconverter/ (https://calc84maniac.github.io/tiboyce/saveconverter/)
(Note that this is just for actual game cartridge saves, save states are so emulator-specific that it would be pointless to try to convert between those for any emulators.)
-
I've made another release of TI-Boy CE, which mainly has UI improvements and bug fixes. In addition to a restructured ROM list and save state hotkeys, there are various compatibility and performance improvements.
Check it out here: https://calc84maniac.github.io/tiboyce/releases/2019/02/16/alpha-v0-1-2-released.html (https://calc84maniac.github.io/tiboyce/releases/2019/02/16/alpha-v0-1-2-released.html)
-
Awesome, as always. :)
-
I just made a minor bugfix release to support the changed hardware in new calculator models (Revision M). If you have a new calculator and have been experiencing a hang when loading ROMs, please update to this version.
Edit: Made a fix to the bugfix thanks to jacobly, TI-Boy was behaving oddly when it was run after running the Python app. Please redownload if you've encountered this issue.
Check it out here: https://calc84maniac.github.io/tiboyce/releases/2019/08/24/alpha-v0-1-3-released.html (https://calc84maniac.github.io/tiboyce/releases/2019/08/24/alpha-v0-1-3-released.html)
-
Sorry, but this isn't an actual progress post (though there is unreleased stuff on the dev branch if anyone wants to build it themselves and widen the test coverage, wink wink).
What I'm actually posting about is that I made my first blog post (https://calc84maniac.github.io/tiboyce/design/2020/08/27/just-in-time-recompiling-the-game-boy-part-1-introduction.html) about the emulator design! It's just setting up the ideas for now, but hopefully I can provide some more in-depth brain dumps in the future.
As for actual emulator progress, I've been super distracted but there is stuff going on in the background, still on emulation accuracy/stability issues. Just extremely slowly. Hopefully I can pick up the pace properly someday soon.
-
Do you plan to add Wii and Wii U emulation to TI-Boy CE?
More seriously, I really need to give this a try at some point. I only tried the TI-84 Plus C Silver Edition version and the CE version looks blazing fast. Good job on this :)
-
When did you plan on adding GBA and GBC support?
-
When did you plan on adding GBA and GBC support?
https://github.com/calc84maniac/tiboyce/issues/54
Not sure GBA is in the plans, or even possible.
-
When did you plan on adding GBA and GBC support?
https://github.com/calc84maniac/tiboyce/issues/54
Not sure GBA is in the plans, or even possible.
But GBC should be possible with double buffering.
-
When did you plan on adding GBA and GBC support?
https://github.com/calc84maniac/tiboyce/issues/54
Not sure GBA is in the plans, or even possible.
But GBC should be possible with double buffering.
Yes, that's why the issue I linked is the issue for tracking development of that GBC support ;)
-
After two years of development, I've finally released TI-Boy CE Alpha v0.2.0! This brings many performance and accuracy improvements to Game Boy emulation, along with support for game-specific configs. Check it out here (https://calc84maniac.github.io/tiboyce/releases/2021/12/07/alpha-v0-2-0-released.html)!
I also made a performance comparison video of the opening cutscene of Pokémon Gold:
-
That is amazing :0
-
I should give this a try at some point. Does it run at full speed on older hardware revisions? :)
-
I should give this a try at some point. Does it run at full speed on older hardware revisions? :)
It runs about the same speed on all hardware revisions, because the only Flash-based execution is for things like the menu system and saving/loading. During actual emulation, the only Flash accesses are to the Game Boy ROM, and because the JIT basically caches Game Boy opcodes in RAM, that means mostly just the game's cartridge reads end up hitting Flash.
-
I've just made a small bugfix release, fixing an issue someone found which could cause auto save state loading to occasionally fail in games which use a clock (such as Pokémon Gold and Silver). More info on the release here (https://calc84maniac.github.io/tiboyce/releases/2021/12/09/alpha-v0-2-0a-released.html).
The funny thing is this bug seems to have existed since before even the first release, but I guess nobody discovered it because the games it affects had such poor performance! The bug was related to reading uninitialized SafeRAM, so I never encountered the issue myself due to generally not running any other programs in my test environment...
-
I made another bugfix release, addressing game freeze issues in some games like Donkey Kong Land. More info on the release here (https://calc84maniac.github.io/tiboyce/releases/2021/12/17/alpha-v0-2-0b-released.html).
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 progress!
Thank you for keeping us up to date!
-
Nintendo 64 emulation when... er I mean very good work. I must confess that I never actually tried TI-Boy CE, though, as the first versions came out when I was out of calc stuff almost entirely, but I'm glad to see those performances that were already very impressive become even more impressive with the new update. Keep up the good work. :)
-
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 (https://calc84maniac.github.io/tiboyce/releases/2022/03/20/alpha-v0-2-1-released.html).
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.
-
This app is by far the coolest thing about gaming on a TI calc that I've found. I'm curious to know how your progress on adding GBC support is coming and how realistic it is that you will be adding GBC support in the near future. One of the reasons I ask is because I modded Super Mario Land 2: 6 Golden Coins to include full color. Everything works fine when converting the rom to .b84 and it even boots up but I'm met with the message that Game Boy Color is not currently supported. Nonetheless I'm having a blast playing Link's Awakening and other classic GB games but full color would be really cool 8)
-
This app is by far the coolest thing about gaming on a TI calc that I've found. I'm curious to know how your progress on adding GBC support is coming and how realistic it is that you will be adding GBC support in the near future. One of the reasons I ask is because I modded Super Mario Land 2: 6 Golden Coins to include full color. Everything works fine when converting the rom to .b84 and it even boots up but I'm met with the message that Game Boy Color is not currently supported. Nonetheless I'm having a blast playing Link's Awakening and other classic GB games but full color would be really cool 8)
I recently (mostly) finished my emulator core rewrite, and I'm actually working on GBC support right now. So far I have a basic working GBC renderer, though I still need to properly implement it so the emulator can use either the original GB renderer or the GBC renderer (right now they're two different builds). Save states are totally broken, so I need to fix that as well.
I've successfully been able to boot some GBC games that don't use other new features like the double CPU speed or the DMA hardware, but I've still got a good bit of work to do on that front. There's also the color correction feature to implement, which I need to consider carefully because unlike GB colorization it has to work with dynamic palettes.
-
That's great news - looking forward to seeing the next evolution of TI-Boy!
-
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:
(https://i.imgur.com/jRxJAi4.gif)
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.
-
That's awesome! Amazing job @calc84maniac !
-
I've posted a new preview video, showing some gameplay of Super Mario Bros. Deluxe and Magi Nation:
As for my development progress, I've been continuing to test games and fix more bugs. There's still one major bug that's blocking release, however, which is causing multiple games to crash randomly. So far I've seen no full calculator crashes at least, but game crashes cause loss of progress since the last save, which is something I definitely want to fix. It's been difficult to replicate, unfortunately, so I'm not sure how long it'll take. Wish me luck!
-
Game Boy Color support is finally released! Check it out here (including a new video): https://calc84maniac.github.io/tiboyce/releases/2022/12/04/alpha-v0-3-0-released.html (https://calc84maniac.github.io/tiboyce/releases/2022/12/04/alpha-v0-3-0-released.html)
I think the bug I was tracking down was probably related to flash wait states on the calculator I was testing on, so I've increased them to the same as the C toolchain. Crossing my fingers that it's all fixed.
My next step is probably updating the GBC renderer to handle mid-frame palette changes, to fix colors in some games that get fancy and try to display more than 8 palettes in a frame.
-
I made a new blog post (https://calc84maniac.github.io/tiboyce/design/2022/12/22/just-in-time-recompiling-the-game-boy-part-2-recompiler-design.html) about JIT design, for people interested in that kind of thing. Enjoy!