Jump to content
IGNORED

Classic99 Updates


Tursi

Recommended Posts

10 hours ago, matthew180 said:

Perhaps just moderation?  Just a thought. 🙂

Well, it's a case of returns. I can put in a few hours of work and get literal cheers, or I can put in a hundred hours of work and get told "but MAME is better". Sorry, no matter how many individual kudos I get (and I do appreciate), the fact is that message is published across the internet. There's even a published book that tells people to download my emulator to get ROMs for MAME. That is something I can never overcome. (Although Retroarch someday will probably overcome MAME, it's becoming dominant...) ;) 

 

There's not really much wrong with Classic99 as it stands. V4 was created to try and address the cross-platform requests and try a cleaner architecture based on experience. It works, the architecture is much nicer, but now that it's proven I don't feel too excited about putting myself back several years... Especially the debugger, the biggest strength of the tool, is much harder on a cross-platform approach. Programming Classic99 for Windows was my relaxation code, because Windows coding is notably simpler and more reliable than most other APIs. I won't fight you* on that point or even elaborate. I have decades of experience on several, professional and hobby. Only one I can't speak deeply to is Mac, but I didn't like what I saw.

 

As an aside, I looked at the Retroarch API. I don't really like it enough to embrace it either.

 

It's just burnout, really. Letting my brain work on something that isn't code is a good reset. I'll fix all my timing when I win the lotto!

 

(*you - being a general call out to the keyboard warrior who was reaching for the reply button the second they saw that ;) )

 

  • Like 3
Link to comment
Share on other sites

oh yes, classic99 is just fine as it stands. 

 

From my point of view there are only a few things missing in classic99:

  • More complete support of the F18a. In particular 30 rows mode and sprite support in these modes (would in particular help in stevie development).
  • Support for FGROM99 advanced modes
  • Source listing support in the debugger

I’m now using a combination of js99er and classic99 for development. Both great emulators with their own strengths.

 

We’re blessed to have such a wealth of really good emulators available in our TI community.

Thank you @Tursi @Asmusr @mizapf (and all other emulator developers) for your hard work on this.

  • Like 1
Link to comment
Share on other sites

Well I forget to mention , very often, the fact that 99 percent (pun not intended) of my games are written on Classic99.  Mame is fine and all but I guess it's what we're comfortable with?

Classic99 I am comfortable with.  It's like an easy-going long-term girlfriend.  Just so you know I appreciate the heck out of it but always forget to say it.  

  • Like 5
Link to comment
Share on other sites

32 minutes ago, Tursi said:

There's not really much wrong with Classic99 as it stands.

Anything wrong is probably limited to a typo or two in the manual that no one seems to read :)  

 

I generally have steered away from emulation/simulation because I prefer to use my real hardware for most of my programming and development*.  That said, Classic99 is what I consider the most user-friendly platform for running and debugging my TI code; if not for Classic99, many of my reverse-engineering efforts and how-does-this-work projects would have been non-starters.   I am certain that others have similar thoughts and experiences. 

 

*Programing on real hardware is my go-to for relaxation and a nice dose of nostalgia, though these days I have little time for either.

  • Like 3
Link to comment
Share on other sites

1 hour ago, retroclouds said:
  • More complete support of the F18a. In particular 30 rows mode and sprite support in these modes (would in particular help in stevie development).

(...)

 

We’re blessed to have such a wealth of really good emulators available in our TI community.

Thank you @Tursi @Asmusr @mizapf (and all other emulator developers) for your hard work on this.

I feel bad about the 30 row thing every time you mention your editor. ;) Eventually the guilt will build up enough to add it!!

 

And yeah, I'm pretty pleased to see the variety of strong emulators we have these days - even beyond those three. It means there's literally a way for someone to do everything they need to do. ;)

 

  • Like 4
Link to comment
Share on other sites

6 hours ago, Tursi said:

And yeah, I'm pretty pleased to see the variety of strong emulators we have these days - even beyond those three. It means there's literally a way for someone to do everything they need to do. ;)

Now that the general wishlist has been opened... I would love to see an emulator with IPC and/or Shared Memory .. right now I can send keyboard codes to Classic99 and other emulators, which is error-prone. I have no way of reading the screen to get a feedback. Reading access to the VDP RAM (and CPU RAM) would be great. 

 

This would also open the possibility to use the TI for AI experiments, let the PC learn to play some games. 

  • Like 2
Link to comment
Share on other sites

14 hours ago, SteveB said:

Now that the general wishlist has been opened... I would love to see an emulator with IPC and/or Shared Memory .. right now I can send keyboard codes to Classic99 and other emulators, which is error-prone. I have no way of reading the screen to get a feedback. Reading access to the VDP RAM (and CPU RAM) would be great. 

 

This would also open the possibility to use the TI for AI experiments, let the PC learn to play some games. 

Your wish is retroactively granted, sort of. ;)

 

First though - for sending commands to Classic99 I did notice you were using keystrokes. If you fill the clipboard and send a paste command instead, Classic99 will be able to spit out the keys much faster without dropping any. Here's the github for a tool that does just that specifically for your reference (I haven't tested it lately - fair warning - but I haven't changed that code either.) -- https://github.com/tursilion/classic99paste

 

For direct access to Classic99's memory I started an external debug system that runs through UDP packets many years ago. This is documented in debugger\dbghook.cpp (https://github.com/tursilion/classic99/blob/main/debugger/dbghook.cpp) - but it is not fully implemented. Only the CPU interface is implemented (though fully - so you /could/ talk to any hardware in the system through it - I used it to test external sound and vdp code). I would have to add an enable to it - I didn't like the idea of having an open socket in the shipping code (even if it did bind only to localhost). If that looks useful I could add the enable switch (probably command line) and push it out. I owe Rich an update for RXB anyway. ;)

 

 

 

Edited by Tursi
  • Like 4
Link to comment
Share on other sites

Thank you for the hint ... I am not sure if I will dive down the CPU/UDP way. I don't think I would be able to find my way to VDP RAM. I am more the kind of an application developer than a system developer. We will see .. 

 

My current approach works more or less with all emulators, as long you can identify the window to send the keys to. I will test in on @PeteE's BuLWiP emulator as soon as I get a pre-compiled version. I might test the option to use the clipboard, thank you for the hint.

 

Perhaps you re-consider the IPC / Shared-Memory thing one day when you are bored ... okay, unlikely.

Link to comment
Share on other sites

10 hours ago, SteveB said:

Thank you for the hint ... I am not sure if I will dive down the CPU/UDP way. I don't think I would be able to find my way to VDP RAM. I am more the kind of an application developer than a system developer. We will see .. 

 

Perhaps you re-consider the IPC / Shared-Memory thing one day when you are bored ... okay, unlikely.

How do you want to access the emulator's memory if networked is too much effort? You realize that shared memory is actually going to be more effort, right? In order to avoid race conditions, the emulator needs to control access to its resources. If you change things underneath it, you will experience strange, untraceable bugs.

 

That said, if that's all you want to do, you can open another processes' memory without any permissions from that app. Combine that with the map file, which I guess I could provide, and you can directly access the memory. ;)

 

  • Like 1
Link to comment
Share on other sites

That reminds me, there was this guy Rikkles in the RoA discord that made a customized version of classic99 that adds the shared memory feature so that Grid Cartographer could read the maps in Realms of Antiquity: https://github.com/hasseily/classic99

 

I saw it in the RoA discord: https://discord.com/channels/644060281923960864/827590732596117524/833964361520906260

 

Maybe that will work for you @SteveB

I presume it was created with Tursi's blessing

Link to comment
Share on other sites

14 hours ago, Tursi said:

You realize that shared memory is actually going to be more effort, right?

Actually not. I am blessed with naivety ... I I really knew what awaited me, I would not have started the most thrilling things in my life.

 

As this bears absolutely no urgency, we might share some ideas on one of the Saturday Pandemic-Calls, you also occasionally join... 

Link to comment
Share on other sites

I always tell my students about shared memory in multithreaded scenarios with a serious, concerned facial expression, and train them to feel uneasy whenever they hear about it. ;-)  "We could use shared memory for data exchange, but you know, well, ... no."

 

  • Like 1
Link to comment
Share on other sites

39 minutes ago, mizapf said:

I always tell my students about shared memory in multithreaded scenarios with a serious, concerned facial expression, and train them to feel uneasy whenever they hear about it. ;-)  "We could use shared memory for data exchange, but you know, well, ... no."

Just looking, not touching ... I just want to read what is on the screen ... if the compiler is ready or reported an error ... still no?

Link to comment
Share on other sites

3 hours ago, mizapf said:

I always tell my students about shared memory in multithreaded scenarios with a serious, concerned facial expression, and train them to feel uneasy whenever they hear about it. ;-)  "We could use shared memory for data exchange, but you know, well, ... no."

 

Would you ever suggest a cooperative approach to multi-threading with atomic operations on the shared resource that run to completion in ALL cases. (serious face here) 🤬

Not popular these days but it is an alternative solution to the problem.

Link to comment
Share on other sites

On 3/1/2023 at 11:13 AM, PeteE said:

That reminds me, there was this guy Rikkles in the RoA discord that made a customized version of classic99 that adds the shared memory feature so that Grid Cartographer could read the maps in Realms of Antiquity: https://github.com/hasseily/classic99

 

I saw it in the RoA discord: https://discord.com/channels/644060281923960864/827590732596117524/833964361520906260

 

Maybe that will work for you @SteveB

I presume it was created with Tursi's blessing

It was initially created with my blessing, then modified in ways beyond that agreement, so I stopping following it so I wouldn't get mad. ;)

 

  • Like 3
Link to comment
Share on other sites

20 minutes ago, Tursi said:

It was initially created with my blessing, then modified in ways beyond that agreement, so I stopping following it so I wouldn't get mad. ;)

Our current climate is such that anyone lobbing a C&D at someone for violating an agreement is considered the bag guy.  Sometimes I hate people.

Link to comment
Share on other sites

13 hours ago, OLD CS1 said:

Our current climate is such that anyone lobbing a C&D at someone for violating an agreement is considered the bag guy.  Sometimes I hate people.

Nah, it's fine. I decided that although it was more than I agreed with, it was supporting the RoA community, which I do agree with. So my best course of action was to look somewhere else. ;)

 

  • Like 4
Link to comment
Share on other sites

1 hour ago, Tursi said:

Nah, it's fine. I decided that although it was more than I agreed with, it was supporting the RoA community, which I do agree with. So my best course of action was to look somewhere else. ;)

You are a good man, Charlie Brown.

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

Classic99 399.064

 

Just a minor tweak to clear out the auto-detected ROM list before running a new search. The symptom was if you loaded a program with 2 or more ROMs, then loaded one with fewer, you might still see traces of the first program in memory.

 

You could also work around that with Cartridge->Eject. But this fixes it.

 

It might take a day for the webpage text to update as I don't do it by hand anymore, so just check that the downloaded version says 399.064.

 

https://harmlesslion.com/software/classic99

 

  • Like 9
  • Thanks 2
Link to comment
Share on other sites

  • 2 weeks later...

Hi:

I am late on this, but, just had to throw my 2 cents in.

To say that MAME is better than Classic99 is not entirely accurate, considering Classic99's strengths.

Classic99 is, by far, the easiest way for someone to jump in and really experience the TI 99/4A on their own system.  Just start it up, and boom! it works.

A determined user can, certainly, set up MAME, but, it takes far more of a learning curve, and, the effort required to obtain ROMs and such can be tricky.

As for downloading the program to obtain ROMs, that thought never crossed my mind.

But, I'm preaching to the choir here.

Just had to say that.

Thanks for all the work you put into Classic99!

  • Like 4
Link to comment
Share on other sites

3 hours ago, jenorton said:

Hi:

I am late on this, but, just had to throw my 2 cents in.

To say that MAME is better than Classic99 is not entirely accurate, considering Classic99's strengths.

Classic99 is, by far, the easiest way for someone to jump in and really experience the TI 99/4A on their own system.  Just start it up, and boom! it works.

A determined user can, certainly, set up MAME, but, it takes far more of a learning curve, and, the effort required to obtain ROMs and such can be tricky.

As for downloading the program to obtain ROMs, that thought never crossed my mind.

But, I'm preaching to the choir here.

Just had to say that.

Thanks for all the work you put into Classic99!

What he said for me as well.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...