Hi all, while I previously intended to move on to doing a new emulator of TI calculators to Prizm, the most interesting part of the project for me was the high level emulation (HLE) component of it (no ROM). With NESizm about to be released at v1.0, and since Tari has already made a lot of headway on HLE already, I don't have as much interest in it at the moment. Though I may circle back.

For the moment, I am porting Oiram by Mateo to Prizm as a fun little exercise. I really like that Oiram has a lot of custom levels made for it and a lot of community support from the CE users so I thought it would be nice to make that available to Prizm users as well. I've already implemented a software stack that implements the CE C toolkit into the Prizm SDK, and Oiram runs fairly decently with some errors on my window simulator.

Code for this is in a github fork here.

The Prizm version will deal with .8xv files directly. You'll be able to play all of the CE game packs made by the community with the Prizm version.

Next steps are to:

1) Get it running on the calculator itself. This probably will mostly deal with Little Endian <-> Big Endian conversion issues in the data.
2) Implement a more robust back buffer (ideally I use the VRAM as a 320x240 backbuffer and do my own DMA blitting from there at the correct screen pitch)
3) Add small adjustments to the UI to fit within the smaller vertical space. The Prizm has 224 vertical lines to work with rather than 240.
4) CG-10 support

I will have to make some timing changes eventually once it's closer to being done. Is there someone here who has both a Oiram loaded 84 CE and a newer Prizm (ideally a CG-50) that can help me compare timings so I keep the original experience intact.
Hi, I have never installed it on CE but have ti and casio calculators (fx-cg 20 x2 plus one fx-cg 50 and one french version of ti 83 premium ce equivalent to ti 84pce) and possibly an American version of it in storage if you need me to test something - not sure if I will be at home starting second half of August yet. Let me know
Hey that's pretty awesome. Nice work Smile

Amazonka, I just got this playable on Prizm, though I had to slow it down quite a bit, so it will have no problem playing on either calculator I think. There are still some bad application quirks, like using VARS to exit and then not being able to restart the game until you restart the calculator, but everything appears to work. Here's the .g3a so far:


What I really need is A) to know if something is clearly broken or badly mistimed and (B) what are the most important things to fix with the port. This can only be done by comparing to the CE version directly, which I can't do without a CE.
Sorry I forgot to mention, that g3a requires the appvars that come with the CE version of oiram to be included in the Prizm’s root file directory.
That's pretty amazing, great job!
I wonder how much of a standalone "ce lib" you can do so that other CE programs could be more or less "easily" be rebuilt to the Prizm?

Anyway, yes, custom levels are very popular for Oiram - so much that TI-Planet has a dedicated downloads category for it with has no less than 80 level packs so far!
Fantastic job, and also great approach (reimplementing parts of the CE toolchain runtime), which should prove useful for other programs as well, though I don't know either how many.
This is a really neat project, keep up the good work!

I'd certainly be interested in porting my programs to the Prizm (despite not actually owning one) if the CE libraries were available on it.
I've managed to switch to a 320x240 backbuffer using the VRAM address space, though I'm considering switching that to the "saved VRAM" space. It then uses DMA to blit it direct to screen and circumvents the BDisp_* syscalls. The offensive thing about this approach is it means I can't use GetKey(),as that pushes the VRAM contents to the screen.

So I'm considering going with a wrapped GetKey specifically for the CE libs that re-resolves the screen in VRAM to appear the same as the DMA'd blit and using the Saved VRAM area as mentioned. Or the app just won't be a "good" citizen but will respond to the MENU key correctly anyway.

@commandblockguy The only issue I've come across that will make that pretty difficult is that CE C treats a long as 24 bits. Any code that relies on this behavior (especially in terms of serialized ordering, etc) has to be rewritten so it depends on the code. So far in Oiram it's only seemed like the warp pipes relied on it.
Ok, I think this is done. I'll do an official release on github if someone here can test it? I've zipped it up along with the other files (from the CE version) that need to be copied to the calculator root to play it here.

Everything appears to work, including all the user generated levels, just copy the same old .8xv files to the Prizm. The only major change I've done is I've included more rows so the gameplay area of the screen is a lot larger:

Thank you for this amazing port.
I noticed some little issues on my calculator. When I run to the left as big Mario and jump he ducks automatically which is a bit annoying. Another thing I noticed is that piranha plants spit out their fireballs to quickly and if you stand on a pipe the piranha plant still comes out. Also I think it would be cool if you could remap your controls like in Nesizm and have a pause function.
Everything else seems to work fine. Great job! Smile
Thank you very much for this great attempt at preserving Oiram CE and its numerous levels.
It looks very nice, and the bigger game frame is great

But when really trying to play you have to hold several keys, especially to fly, and something seems wrong with the controls in this case.

On the ground :
- hold [down]
- without releasing it, hold [ALPHA]
- without releasing anything, hold [left] (you may slightly move your finger on the directional pad to the left)
Mario jumps before going left, although you didn't press [SHIFT].
This doesn't happen when going right, nor on the CE.

On the ground :
- hold [up]
- without releasing it, hold [ALPHA]
- without releasing anything, hold [right] (you may slightly move your finger on the directional pad to the right)
Mario jumps before going right, although you didn't press [SHIFT].
This doesn't happen when going left, nor on the CE.

Since when playing you often simultaneously hold 2 arrows, on purpose or not, controlling flying Mario is very hard.

Yeah I will look into adding custom controls and pause. I have noticed the annoying duck while running thing to the left. I think it is a quirk of the Prizm keyboard and these specific keys.

In regards to the Piranha plant I believe that's the Oiram design so I don't want to mess with it.


I wasn't able reproduce the specific jumping issue you laid out above, so it may be a Graph 90 problem? Regardless, I am going to move the keys around (putting duck on a key on the left side) to compensate and let you reconfigure keys either way as mentioned above.
Ok I did that. Can either of you check this version when you get a chance? You'll need to delete your OiramSV.8xv file off your calculator first, as it contains invalid save data due to the newly configurable keys.

By default the new keys are:
Shift - Jump
Optn - Run OR Attack
Down - Duck/Warp

I didn't have any problems with duck after moving the keys from Alpha.
Thanks, no more issue with [OPTN] instead of [ALPHA], good guess. Smile

Except that I find it quite difficult to use the horizontally adjacent [SHIFT] + [OPTN] to take off and fly.
Vertically adjacent keys were much easier.
I'm holding the calculator while playing and so am using a single finger, my thumb, for the jump/run controls.
Also there are much more adjacent keys around [OPTN], and it's much less confortable...

I think it's highly important for the game success to come with good default controls, whether you play with the calculator in hands or on the table.
And I've got a suggestion for this. If we can't use [ALPHA] (I did try to set it back and my jumping issue came back), just move [OPTN] to [F1].
With [F1]+[SHIFT] the feeling is now quite similar to what it initially was with [ALPHA]+[SHIFT].
They're both in the top-left corner, with fewer adjacent keys, very confortable.

Also I've got a question : when I reconfigure keys, I'm being asked for new left/right/down keys.
No intention to do that, but then why am I not being asked for a new up key ? To climb beanstalks, to enter upside down pipes...

Thank you for this new version.
Here are some little issues I noticed with this version:

Controls: You can't pickup a koopa shell if you have attack AND run on the same key. Tail Attacks and Fireballs work on the same key.

Pause function: When you pause the game the pause text is not white but in the current backgroundcolor of the level. After you unpause the game every text which refreshes will also be in the backgroundcolor of the level.

Bowser: When he gets to the edge of the screen he glitches out.

Everything else seems to work fine.
Ok I think this may be close to the final version. It has: fixed Bowser rendering when off side of screen, fixed Pause text rendering, better error messaging if .8xv files are missing.

Honestly, I tried the F1-SHIFT config you recommended to me and really disliked it :-/ I think this is just subjective, as I had no problem with flying with the default config. But that's why the controls are easily reconfigurable! I am going to go with SHIFT-OPTN because that's the default for both Prizoop and NESizm and I haven't had any complaints.

There is no UP because it is not used. Oiram uses "JUMP" to go up stalks and it automatically pulls you up warp pipes you jump up into.

ATTACK is actually what is used for shell pickup in the first place in Oiram! Just have to keep your distance, etc. This is actually similar to the original SMB3 design. Thanks for the other issues, I fixed them in .g3a zipped up above.
Thanks for the update - works great but i did (accidentally) reconfigured default buttons so don’t know what they were and how they work. Could you tell me how to reset or what defaults were please. Apologies for the delay with my feedback - i will cover it in different topic regarding recharging batteries/wireless charging mod once i figured out the cause of my issues - I’m not hundred percent certain yet if my issue was possibly faulty mini Usb cable (my only cable right now but after a few attempts it finally worked) or the mod itself (sorry for off topic)
You just need to look at the readme of the Oiram Github page for the default keys: https://github.com/tswilliamson/oiram
thank you - got it
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
Page 1 of 2
» All times are GMT - 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