Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - calc84maniac

Pages: [1] 2 3 ... 197
1
This is a known issue related to the LCD hardware in newer TI-84+ models. The issue is being tracked here: https://github.com/calc84maniac/tiboyse/issues/2

2
I made a new blog post about JIT design, for people interested in that kind of thing. Enjoy!

3
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

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.

4
Pokemon saves are larger because it uses a cartridge with more RAM. I'm not sure what the deal is with Link's Awakening, I've gotten a similar report before. I assume you're doing the in-game save properly with A+B+Start+Select? Also for informational purposes, what's the date/revision code on the back of the calculator?

5
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!

6
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.

7
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.

8
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.

9
General Calculator Help / Re: Making a game w/o OS?
« on: March 10, 2022, 07:07:44 pm »
Going back to the original questions: I think you may be under an incorrect impression that you'd need to do this. The system is not multi-threaded, aside from some OS interrupts which you can easily disable or replace with your own handler once your program is started. At that point there are no "resources" taken by the OS other than the memory it resides in, as long as you never call into it.

The only reason TI-Boy does anything to the OS in the first place is because I wanted to override the first 16KB of the memory map to match a Game Boy cartridge's memory layout as closely as possible, and that area of the address space is mapped to a fixed part of the Flash chip normally containing OS code. This isn't something that would be particularly helpful in most other scenarios, in my opinion, since you can freely map any Flash memory into other areas of the address space whenever you want.

10
I don't think the OS version would be the problem, in fact OS 2.43 is probably what I ran it on the most. Could you check the model information on the back of the two calculators (if I recall, it should end with a 4-digit date code and a revision letter) just in case there's been some hardware change I don't know about?

Also, in terms of the Zelda game itself, I assume you probably know how to save since you got it working on one calculator, but just in case, unless you get a game over you have to press A+B+Start+Select to save the game.

11
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!

12
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.

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...

13
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.

14
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!

I also made a performance comparison video of the opening cutscene of Pokémon Gold:

15
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 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.

Pages: [1] 2 3 ... 197