Author Topic: Axe Emulator  (Read 5795 times)

0 Members and 1 Guest are viewing this topic.

Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4557
  • Rating: +716/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: Axe Emulator
« Reply #15 on: April 19, 2012, 02:27:48 pm »
Yeah, I noticed that the delay wasn't quite precise, but if you are adding that kind of delay, you should definitely make it possible to have a header that tells your programs to compile without restrictions o.o

Anywho, a few things I noticed: The compiled size is quite large compared to on calc (>400K, for the most part). Is there a way to reduce that? And is it simply because of a lot of header code or something? Also, about how easy is it to compile a source program in .8xp format to the computer executable? Is it a drag and drop kind of deal?

Offline jacobly

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 205
  • Rating: +161/-1
    • View Profile
Re: Axe Emulator
« Reply #16 on: April 19, 2012, 10:29:32 pm »
I would like to have customizable delays, but keep in mind that currently the only delays are in DispGraph variants and Pause, so all code between these instructions run at full speed.

The files are that size because they are each statically linked so that there are currently no dependencies to worry about.  However, note that compiling an empty Axe program results in an executable that is 421,390 bytes.  This means that the unique code produced in, for example, TheQuest.exe is approx. 10,240 bytes, whereas the calc executable is 10,465 bytes (10,240 bytes includes L1, 15 variables, and code alignment).

Currently, compiling is slightly involved, but I should be able to automate most of this when I get around to it (Honestly, the only difficulty I foresee is linking, but I can always just automatically run another executable).  Also, if you drag and drop a file onto the exe, I plan to have it just run the program directly (compiling to an executable will more than likely require the use of the command line).

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8206
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Axe Emulator
« Reply #17 on: April 19, 2012, 10:35:46 pm »
Wow, that is really amazing. I can imagine it being really useful for testing Axe programs :o




Offline Yeong

  • Not a bridge
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3739
  • Rating: +278/-12
  • Survivor of Apocalypse
    • View Profile
Re: Axe Emulator
« Reply #18 on: April 19, 2012, 10:51:10 pm »
O.o very nice!
Sig wipe!

Offline Scipi

  • Omni Kitten Meow~ =^ω^=
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1547
  • Rating: +192/-3
  • Meow :3
    • View Profile
    • ScipiSoftware
Re: Axe Emulator
« Reply #19 on: April 19, 2012, 11:25:53 pm »
Axe is finally coming to the computer! :D

I've been waiting for this. Now I might actually achieve learning it, lol :P

Imma Cat! =^_^= :3 (It's an emoticon now!)
Spoiler For Things I find interesting:
Spoiler For AI Programming:
Spoiler For Shameless advertising:

Spoiler For OldSig:





Spoiler For IMPORTANT NEWS!:
Late last night, Quebec was invaded by a group calling themselves, "Omnimaga". Not much is known about these mysterious people except that they all carried calculators of some kind and they all seemed to converge on one house in particular. Experts estimate that the combined power of their fabled calculators is greater than all the worlds super computers put together. The group seems to be holding out in the home of a certain DJ_O, who the Omnimagians claim to be their founder. Such power has put the world at a standstill with everyone waiting to see what the Omnimagians will do...

Wait... This just in, the Omnimagians have sent the UN a list of demands that must be met or else the world will be "submitted to the wrath of Netham45's Lobster Army". Such demands include >9001 crates of peanuts, sacrificial blue lobsters, and a wide assortment of cherry flavored items. With such computing power stored in the hands of such people, we can only hope these demands are met.

In the wake of these events, we can only ask, Why? Why do these people make these demands, what caused them to gather, and what are their future plans...

Offline alberthrocks

  • Moderator
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 876
  • Rating: +103/-10
    • View Profile
Re: Axe Emulator
« Reply #20 on: April 19, 2012, 11:40:42 pm »
Wow, this is seriously amazing stuff! :D Especially with leveraging SDL, using C, etc... you're crazy! :P

Not sure how hard it may be to extend this, since this *is* an emulator we're talking about. ;) I think if there was a way to add color but still have the program run normally on a calc... bah, I think I'd stick to writing a parser for Axe PC Edition.
Withgusto Networks Founder and Administrator
Main Server Status: http://withg.org/status/
Backup Server Status: Not available
Backup 2/MC Server Status: http://mc.withg.org/status/


Proud member of ClrHome!

Miss my old signature? Here it is!
Spoiler For Signature:
Alternate "New" IRC post notification bot (Newy) down? Go here to reset it! http://withg.org/albert/cpuhero/

Withgusto Networks Founder and Administrator
Main Server Status: http://withg.org/status/
Backup Server Status: Not available
Backup 2/MC Server Status: http://mc.withg.org/status/

Activity remains limited due to busyness from school et al. Sorry! :( Feel free to PM, email, or if you know me well enough, FB me if you have a question/concern. :)

Don't expect me to be online 24/7 until summer. Contact me via FB if you feel it's urgent.


Proud member of ClrHome!

Spoiler For "My Projects! :D":
Projects:

Computer/Web/IRC Projects:
C______c: 0% done (Doing planning and trying to not forget it :P)
A_____m: 40% done (Need to develop a sophisticated process queue, and a pretty web GUI)
AtomBot v3.0: 0% done (Planning stage, may do a litmus test of developer wants in the future)
IdeaFrenzy: 0% done (Planning and trying to not forget it :P)
wxWabbitemu: 40% done (NEED MOAR FEATURES :P)

Calculator Projects:
M__ C_____ (an A____ _____ clone): 0% done (Need to figure out physics and Axe)
C2I: 0% done (planning, checking the demand for it, and dreaming :P)

Offline DJ Omnimaga

  • Now active at https://codewalr.us
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55820
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Axe Emulator
« Reply #21 on: April 20, 2012, 09:37:27 pm »
As I said on IRC when I tested this before you posted about it, this seems very promising and it might be quite useful for those who want to test a game without the need of a ROM or if it's in its current form, provide a quick executable of your game for quick testing (or even with the game on ticalc?).

There are some things I wonder, though:

-How does grayscale and motion blur work compared to the calc?

-Also ashbad on SAX chatroom a few minutes ago was being curious about how does the emulator or parser operates with Axe code. To me it seems to require the source code, rather than the compiled executable, but he was wondering how do you emulate the TI-OS and if you were actually including TI-OS code in the emulator (which I doubt you would do, since I'm sure you know copyright stuff very well) to allow the emulator to run Axe programs exactly as they are on a real calc. I myself think it is possible to do an interpreter that would mimic the calc screen behavior to a certain extent like you did, although Ashbad didn't seem so well convinced. He basically found the idea of an Axe emulator useless, which I disagree with (again, maybe it's just that he just has strong biases against everything Axe-related). However I'm kinda curious too, since your emulator emulates Axe programs surpringsly well it seems. Could you give a bit more info about how it manages to run without emulating any part of the TI-OS? In any case, if everything was written on your own and you really use the axe source rather than compiled executables, then that's even more impressive to me, especially that now we can play Axe games without even compiling them.

-How does it work for Axe programs containing multiple files, such as pictures, sub-programs, etc? Are they detected?

-Will in the future it be possible to have a version containing only the emulator, where you can choose the axe project to run, like in any other emulator, for those who have many Axe programs and want to save space? Of course standalone executables are awesome too, since now we can pretty much turn our Axe games into computer games.

-Will the language be expanded in the future so if, for example, below the Axe source header we put something like ANOVA("RES":320x240:Full), your exe file uses 320x240 full screen resolution instead of 96x64 windowed and ANOVA("COLOR":256) if one wants Pt-On/Off/Change to display sprite data in 256 color mode instead of 2 (monochrome) and to allow Line/pxl commands to be useable with colors too That would basically allow someone to create actual computer games by using Axe language, so they don't have to learn a new language if they ever quit calc stuff but still want to make old skool 2D games like Mario on the computer. TokenIDE/SourceCoder could still be used to write programs for the time being, although if both won't let people create 8xp files larger than 24 KB or even 64 KB, that might be annoying.
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF


Bandcamp|Reverbnation|Facebook|Youtube|Twitter

Offline jacobly

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 205
  • Rating: +161/-1
    • View Profile
Re: Axe Emulator
« Reply #22 on: April 20, 2012, 10:12:30 pm »
-How does grayscale and motion blur work compared to the calc?
Because Axe uses high level commands for grayscale, I am able to just display it perfectly, without having to worry about dithering or blur.

-Also ashbad on SAX chatroom a few minutes ago was being curious about how does the emulator or parser operates with Axe code. To me it seems to require the source code, rather than the compiled executable, but he was wondering how do you emulate the TI-OS and if you were actually including TI-OS code in the emulator (which I doubt you would do, since I'm sure you know copyright stuff very well) to allow the emulator to run Axe programs exactly as they are on a real calc. I myself think it is possible to do an interpreter that would mimic the calc screen behavior to a certain extent like you did, although Ashbad didn't seem so well convinced. He basically found the idea of an Axe emulator useless, which I disagree with (again, maybe it's just that he just has strong biases against everything Axe-related). However I'm kinda curious too, since your emulator emulates Axe programs surpringsly well it seems. Could you give a bit more info about how it manages to run without emulating any part of the TI-OS? In any case, if everything was written on your own and you really use the axe source rather than compiled executables, then that's even more impressive to me, especially that now we can play Axe games without even compiling them.
The compiler program I wrote currently takes Axe source code and produces a computer executable.  This executable does not contain the original source, nor does it contain the executable that Axe would produce.  What it does contain, is native machine code compiled from the Axe source, and hand-written code for every Axe command that is currently supported (Also the calculator screen emulator).  The only thing that it has in common with TIOS is that it contains the data for TIOS's fonts and tokens (This data was created by hand).

-How does it work for Axe programs containing multiple files, such as pictures, sub-programs, etc? Are they detected?
I am already able to compile programs that use multiple program files.  I will definitely be able to support absorbing files, and I will probably be able to support reading and writing files.

-Will in the future it be possible to have a version containing only the emulator, where you can choose the axe project to run, like in any other emulator, for those who have many Axe programs and want to save space? Of course standalone executables are awesome too, since now we can pretty much turn our Axe games into computer games.
I plan to have a single executable.  By default, dragging & dropping an Axe program onto this file will just emulate that Axe program directly, without producing an executable.  However, using command line, I hope to allow you will be able to both produce small executables which require the Axe emulator executable in order to run, and larger stand-alone executables that run by themselves.

-Will the language be expanded in the future so if, for example, below the Axe source header we put something like ANOVA("RES":320x240:Full), your exe file uses 320x240 full screen resolution instead of 96x64 windowed and ANOVA("COLOR":256) if one wants Pt-On/Off/Change to display sprite data in 256 color mode instead of 2 (monochrome) and to allow Line/pxl commands to be useable with colors too That would basically allow someone to create actual computer games by using Axe language, so they don't have to learn a new language if they ever quit calc stuff but still want to make old skool 2D games like Mario on the computer. TokenIDE/SourceCoder could still be used to write programs for the time being, although if both won't let people create 8xp files larger than 24 KB or even 64 KB, that might be annoying.
I can't say for sure since I am currently focused on getting native Axe commands to work, but it is definitely possible.

Offline DJ Omnimaga

  • Now active at https://codewalr.us
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55820
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Axe Emulator
« Reply #23 on: April 20, 2012, 11:18:58 pm »
Oh, right, I forgot you don't even need to get around LCD limitations for the grayscale. That's even better then.

And I see. That means it isn't really an emulator, though, right? Since to be an emulator, your software would have to interpret the axe source or a file containing it in its original form without having to convert it first. It's still nice, though. :) I guess  it might be more of an Axe Parser for the computer or something, unless I have my definitions of emulator wrong.

Good to hear it will support programs with multiple files. I worried it might only work with a few select Axe programs since a few complex ones use sub-programs.

And nice to hear.

And yeah at first you should make sure as original Axe it works. Just for the future it would be nice if there was a way to support different resolutions, color depths and maybe different default sprite sizes (such as 16x16).

In any case, good luck :D
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF


Bandcamp|Reverbnation|Facebook|Youtube|Twitter

Offline aeTIos

  • Nonbinary computing specialist
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3913
  • Rating: +184/-32
    • View Profile
    • wank.party
Re: Axe Emulator
« Reply #24 on: April 21, 2012, 02:17:08 pm »
TL;DR.
j/k I would abide you if you added color and size :O
I'm not a nerd but I pretend:

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7917
  • Rating: +373/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: Axe Emulator
« Reply #25 on: April 21, 2012, 04:26:07 pm »
Maybe if you extend it also make sure that you tell how large the pixel size is :)

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Axe Emulator
« Reply #26 on: April 22, 2012, 02:23:24 am »
Wow, that is really amazing. I can imagine it being really useful for testing Axe programs :o
True. My Pokemon game takes more than one minute to compile, and when testing, I can lose half an hour of coding just with this.
Awesome tool :D
« Last Edit: April 22, 2012, 02:23:35 am by Hayleia »
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline DJ Omnimaga

  • Now active at https://codewalr.us
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55820
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Axe Emulator
« Reply #27 on: April 22, 2012, 09:20:36 am »
Maybe if you extend it also make sure that you tell how large the pixel size is :)
Do you mean resolution? ???

But yeah if this was extended for non-calc programming, the essential stuff that would have to be added is 16x16 Pt-On mode, 8, 16 or 24 bit color mode (preferably 8 for size reason) and custom resolutions, to allow at least SNES-like game making.
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF


Bandcamp|Reverbnation|Facebook|Youtube|Twitter

Offline jacobly

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 205
  • Rating: +161/-1
    • View Profile
Re: Axe Emulator
« Reply #28 on: April 25, 2012, 11:24:04 pm »
I finally got some more program working. :w00t:
« Last Edit: April 25, 2012, 11:25:20 pm by jacobly »

Offline jacobly

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 205
  • Rating: +161/-1
    • View Profile
Re: Axe Emulator
« Reply #29 on: April 28, 2012, 04:45:31 am »
Someone wondered if this was possible, and I was curious, so I tried it. :D Unfortunately, I don't think I will be able to this to an arbitrary program for a while.