Join us on Discord!
You can help CodeWalrus stay online by donating here.

Will there ever be a Gameboy emulator for the TI-84 Plus CE

Started by _____123_______, January 24, 2017, 05:08:53 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

_____123_______

_

Dream of Omnimaga

Heya and welcome here. :)

Calc84maniac used to work on one but he chose to no longer post any update on any forum since the last two years so it might be difficult to know how much it progressed, if it progressed recently at all.

Otherwise if someone decides to work on another GB emulator for the CE, be warned that it will be a very long and difficult project requiring a lot of C programming skills. It's easier on the CE, but it's still an emulator and requires a lot of optimizing. This is why no one else has bothered trying, so far.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

TheMachine02

Quote from: DJ Omnimaga on January 24, 2017, 05:13:49 PM
Heya and welcome here. :)
a lot of C programming skills.

*asm skill

I guess the porting of TI-Boy to CE is hard because lack of app on CE. The method used on 84CSE, 84SE can't be directly used. And given it is a particulary hard task, I doubt it will be done in one day..

MateoConLechuga

Quote from: whevesy on January 24, 2017, 05:08:53 PM
Is it harder to program to the Plus CE because its been done with many other calculators I dont understand why its been taking so long?
Why haven't you written it yet? Come on, if you want it so bad write it yourself. ;)

kotu

i echo what mateoconlechuga just said, why dont you do it
  • Calculators owned: TI 84+CE-T
  • Consoles, mobile devices and vintage computers owned: Sega Master System, Sony PlayStation 3
SUBSCRIBE TO THE FUTURERAVE.UK MAILING LIST
http://futurerave.uk

Dream of Omnimaga

Quote from: TheMachine02 on January 24, 2017, 05:56:32 PM
Quote from: DJ Omnimaga on January 24, 2017, 05:13:49 PM
Heya and welcome here. :)
a lot of C programming skills.

*asm skill

I guess the porting of TI-Boy to CE is hard because lack of app on CE. The method used on 84CSE, 84SE can't be directly used. And given it is a particulary hard task, I doubt it will be done in one day..
Wouldn't C be fast enough for such emulator on the CE? Also the app issue isn't a problem if you can manage to read multiple 8xv files at the same time (with all games being split into 64 KB appvars)
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

gameblabla

Quote from: DJ Omnimaga on January 24, 2017, 06:11:16 PM
Wouldn't C be fast enough for such emulator on the CE? Also the app issue isn't a problem if you can manage to read multiple 8xv files at the same time (with all games being split into 64 KB appvars)
The problem with C isn't the speed, it's the RAM.
A few days ago, i was attempting to port a very stripped version of my Vectrex emulator to the CE.
The executable itself was 36ko (which is huge) and when i ran my stripped down PC version on my pc, it would require at least 2MB of RAM.
When i tried to run it on CEmu, it would just flat out crash upon booting because it would overflow the memory.

For this reason, making an emulator in C is almost impossible unless it's a very underpowered console such as the CHIP8.
  • Calculators owned: None (used to own an Nspire and TI-89)

Dream of Omnimaga

#7
So you mean that C code is much larger than straight assembly? I thought that the file size was at least somewhat comparable, at least on the CE.


That said I am surprised that RAM is such a serious issue @gameblabla . If an ASM Game Boy emulator could run fine with only 48 KB of RAM, then why can't a C Game Boy emulator run fine with 256 KB of RAM? I mean, there's no way a C GB emulator will be 5.3 times larger than its ASM counterpart (even Axe Parser executables aren't more than twice the size of their ASM counterparts).



http://www.ticalc.org/archives/files/fileinfo/419/41990.html
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

gameblabla

It must be carefully implemented to emulate the gameboy's z80 code as close to metal as possible or else it will simply end up
too big and fail rly hard lel.
This was possible before because it was using an actual z80 processor and the only real issue he had was to emulate was the graphic chip and some
hardware-specific crap.

Now we've got the CE with its 24-bits addressing mode, which means it's not fully compatible with the z80.
If it was simple to program it, he would have done it a while ago but the thing is we're still waiting for it and it seems like calc84maniac has dropped out
the surface of earth.

Also, there isn't 256ko of free RAM, only like 180Kb.
  • Calculators owned: None (used to own an Nspire and TI-89)

Dream of Omnimaga

Quote from: gameblabla on January 24, 2017, 07:45:15 PM
It must be carefully implemented to emulate the gameboy's z80 code as close to metal as possible or else it will simply end up
too big and fail rly hard lel.
This was possible before because it was using an actual z80 processor and the only real issue he had was to emulate was the graphic chip and some
hardware-specific crap.

Now we've got the CE with its 24-bits addressing mode, which means it's not fully compatible with the z80.
If it was simple to program it, he would have done it a while ago but the thing is we're still waiting for it and it seems like calc84maniac has dropped out
the surface of earth.

Also, there isn't 256ko of free RAM, only like 180Kb.
There is defitively 256 KB of RAM. If WikiTI says so then they are 100% right: http://wikiti.brandonw.net/index.php?title=Category:84PCE:General_Hardware_Information

That's unless 76 of it is used at any time even during ASM/C program execution. As for the CE being an ez80, I am fairly sure that it supports z80 mode, but I doubt it's viable for C anyway.

In any case, if MateoC says a GB emulator is more than possible on the CE then he must be right. He's MateoC, after all. But yeah as you said it's not simple to code and it wasn't simple on z80 calcs either, because it took until 2009 before someone do it and so far, only 1 person made z80 calculator GB emulators, so now that he essentially quit most of the calc community, we would need to wait until someone who has similar skills at coding on old-school platforms to join the TI community.

Also you can't just code on an old-school platform like you code on a modern computer and expect things to work.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

TheMachine02

The ez80 is a fully ccompatible z80 chip, and there is 256Kb of RAM (but using it all is a bit tricky). Anyway, it is doable. Futhermore, I doubt that memory consumption on PC would be close to memory consuption on CE because different target that all  :P The PC will most likely keep more thing in cache than the CE.

Dream of Omnimaga

What makes it difficult to use the entire 256 KB of RAM? Are some RAM areas protected due to some TI restrictions or something?
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

TheMachine02

What is difficult is it is user RAM and that some place is used by the OS. To use the full 256Kb range you need to backup RAM to flash, use it for your program and restore it afterward. 'Safe' area is about 70Kb and user RAM could be allocated for about ~150Kb. Still you have to get account of the copy of the program in RAM and the stack which eat some memory too.

Dream of Omnimaga

Ah right. I am fairly sure that some ASM games do that, though (copying OS-used RAM to flash), but it's kinda risky if the user pulls a battery in the middle of execution or something. That said, I am fairly sure that even 128 KB of RAM alone would be enough to get a GB emulator to work on the CE if your nickname is calc84maniac.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Sorunome

Quote from: DJ Omnimaga on January 24, 2017, 10:10:45 PM
Ah right. I am fairly sure that some ASM games do that, though (copying OS-used RAM to flash), but it's kinda risky if the user pulls a battery in the middle of execution or something. That said, I am fairly sure that even 128 KB of RAM alone would be enough to get a GB emulator to work on the CE if your nickname is calc84maniac.
Flash access itself is only allowed by the TIOS or, well, by abusing bugs. The only way i can think of to copy os ram to flash is by creating an appvar and archive that one.
However, as far as I know what's done way more frequently is to just move the tios ram around, so that you have larger continuus blocks of ram (i actually do that in reuben3).
Both methods obviously result in not being able to use a lot of the system routines correctly.

EDIT: if a user pulls a battery in the middle of executing an app or a program the TIOS will trigger a ram-clear anyways
  • Calculators owned: Too many (why are you even reading this?)
  • Consoles, mobile devices and vintage computers owned: Gamebuino!
This is a signature.
And now......give me an internet!

To be or not to be.........is that even a question? Who gets to decide this anyways?

Powered by EzPortal