Jump to content
IGNORED

Classic99 Updates


Tursi

Recommended Posts

10 hours ago, arcadeshopper said:

@Tursi did something happen to memory configurations?

 

sams is greyed out, and i see no way to disable memory or am I confused

 

image.png.4a534c6d3809ddf4f4cf5b315983cc4f.png

There has never been a way to disable memory, and even when the SAMS interface was enabled, it was ignored, so I disabled it. ;)

 

If you want a system that appears not to have 32k, you have to load some ROM over the 32k space. Hacky, but works.

 

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

There has never been a way to disable memory, and even when the SAMS interface was enabled, it was ignored, so I disabled it. [emoji6]
 
If you want a system that appears not to have 32k, you have to load some ROM over the 32k space. Hacky, but works.
 
I never ignored Sams

I guess I remembered wrong about memory

Sent from my Pixel 6 Pro using Tapatalk

  • Like 1
Link to comment
Share on other sites

It would be nice to be able to toggle 32K Memory Expansion (etc.). I've been trying to limit myself to console only - no expansions, so being able to "test" would be nice. I'm considering moving beyond "my limitation", since it, in many cases (/most cases), appears to be walking across the bridge after water.
☺️
 
Emulation of FinalGROM would be huge.
?
 

Link to comment
Share on other sites

12 hours ago, sometimes99er said:

It would be nice to be able to toggle 32K Memory Expansion (etc.). I've been trying to limit myself to console only - no expansions, so being able to "test" would be nice. I'm considering moving beyond "my limitation", since it, in many cases (/most cases), appears to be walking across the bridge after water.
☺️
 
Emulation of FinalGROM would be huge.
?
 

Yeah, it's in the V4 plan. No hardware is hard coded there. It's just been a stupid year, between giving up my career and changing countries, and I got nothing useful done. It's also hard to work on V4 when /I/ don't need any of its features. ;)

 

You can always set up a user-cart with the setup you need. By loading ROM overtop of the RAM space, there is in essence no memory expansion. I've loaded dummy files, other ROMs, even the Classic99 binary itself. ;) For instance, I made this one today:

[usercart59]
name="RXB202e with no RAM"
rom0=*|0|0|D:\classic99\MODS\RXB 202E\RXB Classic99\RXB2020C.bin
rom1=*|0|0|D:\classic99\MODS\RXB 202E\RXB Classic99\RXB2020D.bin
rom2=*|0|0|D:\classic99\MODS\RXB 202E\RXB Classic99\RXB2020G.bin
; replace RAM space with ROMs so there's no 32k (this is just a randomly chosen 8k ROM)
rom3=C|2000|2000|D:\classic99\MODS\64x64c.bin
rom4=C|A000|2000|D:\classic99\MODS\64x64c.bin
rom5=C|C000|2000|D:\classic99\MODS\64x64c.bin
rom6=C|E000|2000|D:\classic99\MODS\64x64c.bin

As for the FinalGROM - what would I be emulating? I'm not interested from the boot menu standpoint, but if you need to use some of its runtime features, I could do a simulation along the lines of the unsupported TIPI sim ;)

 

  • Like 3
Link to comment
Share on other sites

17 hours ago, Tursi said:

You can always set up a user-cart with the setup you need. By loading ROM overtop of the RAM space, there is in essence no memory expansion.

Excellent. That will do. ?

17 hours ago, Tursi said:

As for the FinalGROM - what would I be emulating?

I was mostly thinking of the advanced RAM mode. Again I should probably just start using the 32K RAM Expansion instead. ?

 
ref.: https://endlos99.github.io/finalgrom99/
Advanced Modes
 
Most legacy cartridge images and homebrew programs will run as-is on the FinalGROM 99. This includes games, educational programs, tools, and programming languages.

But the FinalGROM 99 also offers two advanced modes that emulate advanced cartridge types that did not exist previously:

[R] RAM Mode: provides up to 512 KB of ROM and 512 KB of RAM
[G] GRAM Mode: turns occupied GROM into writable GRAM
[X] RAM/GRAM Mode: provides both RAM and GRAM
To enable one of these modes for a specific image, put character R, G or X at image offset 3, also known as "reserved" byte. For legacy images, you may use a Hex Editor to modify the fourth byte.

 
In RAM Mode, each 8 KB bank is split into a ROM half-bank >6000->6fff and a RAM half-bank >7000-7fff. The RAM may be freely written to, but it is not battery-backed and will be lost on power down or cart reset. ROM half-banks are switched by writing to >60xx, and RAM half-banks are switched independently by writing to >68xx. Intermediate bits are again ignored. Note that writing to >7xxx will not switch banks but update the RAM at that location.

You can preset the RAM by putting the desired values in the upper half banks of your image. Only occupied banks contain RAM, so if you load a 4 bank image, you'll have 4 * 4 KB = 16 KB of RAM available.
 

  • Like 4
  • Thanks 1
Link to comment
Share on other sites

16 minutes ago, oddemann said:

How hard would it be to make a mode that makes all colours into a gray scale. From black to white in 13 steps? I think that using such a mode/colour pallet would make for cool games and the pictures would be very good. Much easier to make stuff look "3D".

There's a method that's very do-able actually, and it can be done in seconds.  Just select TV mode from the video options and turn your saturation down to zero.  

  • Like 5
Link to comment
Share on other sites

24 minutes ago, oddemann said:

How hard would it be to make a mode that makes all colours into a gray scale. From black to white in 13 steps? I think that using such a mode/colour pallet would make for cool games and the pictures would be very good. Much easier to make stuff look "3D".

You can tweak the palette on an F18A, before loading or follow the source code and embed the palette edit in your own software. 

  • Like 2
Link to comment
Share on other sites

4 hours ago, oddemann said:

Sure, but it would not be reliable, I think!

I'm not sure if reliable is the word you meant, it would be completely reliable, and it's doable on hardware as well. Of course, the grays would not be evenly spaced. You end up with something like this:

Sorted...
----------

1 - Black		0
4 - Dk Blue		5.553
6 - Dk Red		7.278
C - Dk Green		7.283
5 - Lt Blue		7.325
8 - Med Red		7.876
D - Magenta		7.891
2 - Med Green		7.984
9 - Lt Red		9.278
3 - Lt Green		9.810
7 - Cyan		11.124
A - Dk Yellow		11.273
E - Grey		12
B - Lt Yellow		12.501
F - White		15

The F18A approach as mentioned would let you set any palette you like... and is also already in the emulator. You can get very good results with a grey palette. :)

 

  • Like 3
Link to comment
Share on other sites

Classic99 400 Alpha

 

Yes, I finally sat back down and put this much together. It's not useful yet, but it runs the console with the demonstration cart.

 

 

This one is of course an odd case. Compatibility is not really too big a concern. Bugs will arise, but the individual bits of hardware are coming from Classic99 3xx, which is pretty battle tested. But this gives the new architecture I was hoping for, which allows much better isolation of hardware components, which in turn should make it easier to expand and the like... once I figure out the configuration interface.

 

In addition, it's based on Allegro again, just like the original DOS version. In theory, this allows ports to Linux, Mac, and Android. I have not even considered attempting that.

 

Anyway, this is NOT USEFUL yet. There's no way to load or save anything. You get the bare console with DEMONSTRATION plugged in, and from the command line you can select 1979, 1981 or 1983 versions.

 

I am not certain the future of this codebase. I have to admit, I like it a bit more than I did a few days ago, now that it's working. It feels a lot less hacky. Some of the advanced features of Classic99 3xx will be difficult to make work well with this isolated component model, but I've got some code in there that makes a lot of it more feasible. At the very least, 3xx will continue to see bug fixes and the like till 4xx is a little more capable, but that could take a long time.

 

I didn't set the flags for XP... likely this version will be Windows 7 and up. Visual Studio keeps warning me that XP support is going away.

 

Download and github here:

https://github.com/tursilion/Classic99v4

 

Grab from the 'dist' folder as always.

 

I'm considering this adequate to strike it from my tasklist though ;)

 

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

1 hour ago, Tursi said:

I didn't set the flags for XP... likely this version will be Windows 7 and up. Visual Studio keeps warning me that XP support is going away.

Visual Studio can suck it.  A lot of people are using old, cheap laptops running XP for emulation.  Granted, they might be able to run Windows 7, but that means a whole ridiculous (and pricey) process for people who just want a cheap machine to run old school emulation.

  • Like 6
Link to comment
Share on other sites

7 hours ago, OLD CS1 said:

Visual Studio can suck it.  A lot of people are using old, cheap laptops running XP for emulation.  Granted, they might be able to run Windows 7, but that means a whole ridiculous (and pricey) process for people who just want a cheap machine to run old school emulation.

Perhaps, but sounds like a personal problem to me. Classic99's goal is not a cheap emulation machine. Dropping XP has been on the TODO list for years because I have to keep avoiding newer APIs to keep it compatible. There's no need to forward port that requirement to a whole new architecture.

 

That's never been Classic99's purpose. In fact, one of the very first reviews of Classic99 called it "ridiculous" that it listed a Pentium 2 as the preferred CPU for full performance. The fact that that requirement barely nudged since then is irrelevant! ;)

 

But then, since it's Allegro based now, I've no idea if it'll play nice with XP or uses the newer APIs. I've been searching and nothing actually says. May check at some point. I did find a post where I was apologizing that it no longer worked on 95, but required 98. ;)

 

  • Like 4
  • Thanks 1
Link to comment
Share on other sites

WELL! I never!!  :D  Nah, really more a stab at Visual Studio.  If the natural evolution of Classic99 requires dropping XP, then I hold no grudge for doing so and full speed ahead.  I would only begrudge VS being unfair... you know, supporting building programs for an operating system that went out of support, what, eight years ago??

  • Like 2
  • Haha 1
Link to comment
Share on other sites

I've said it several times on Zoom, but I can't express my gratitude enough. The debugger in Classic99 3.99.xxx is a gamechanger. 

 

I've spent the last month narrowing in on a bug in my code. I write in gcc mostly, and the assembly complexity varies.. I was corrupting r13 (in a well intentioned assembly routine that tries to preserve it), but depending on the complexity of my calling example, it may not have cared. So simple examples worked great and only my real world complex example exposed the issue. I doubt I could have found this with code-reading... as I tried, but the comments in my code claimed to be doing the right thing (just 2 lines too late). Nothing I've produced would exist without this debugger.

 

My favorite features in no particular order:

 

- VDP read/write access breakpoints

- custom DSR ROM loading

- custom cartridge definition

- sams page logging

- single stepping

- future instruction disassembly

 

Thank you @Tursi

  • Like 7
  • Thanks 1
Link to comment
Share on other sites

On 12/22/2021 at 4:40 PM, OLD CS1 said:

WELL! I never!!  :D  Nah, really more a stab at Visual Studio.  If the natural evolution of Classic99 requires dropping XP, then I hold no grudge for doing so and full speed ahead.  I would only begrudge VS being unfair... you know, supporting building programs for an operating system that went out of support, what, eight years ago??

hehe, oh, and I took it as such! I still like the idea of supporting XP. But the low level APIs are out of my hands now, and at the whim of open source software. So whether it works depends on how many eager beavers are on that team. ;)

 

It caught my eye only cause I've never seen Visual Studio make such a warning before. You may have been forced to write convoluted code, manually load DLLs and such, but you were always able to /compile/ for older architectures before...

 

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