Jump to content
IGNORED

GROM emulated v. real cartridge


hloberg

Recommended Posts

I played the cartridge version of Parsec and the GROM emulator version (off my CF7) last night and the real cartridge 'seemed' slightly more responsive. Was that true or am I just seeing things? IS there any difference between the two.

 

i have several version of parsec on my web site DataBase Section Download (bottom of the page)... maybe could you try them if there are some differences from yours ? >>HERE<< ;)

Link to comment
Share on other sites

yes, in both cases.

my general question is there a difference between the cart use of GROM and the emulated use of GROM.

how does the GROM emulators work?

Try it without the speech.

 

There should not be much of a different the GROM emulator all it does it make a few changes in pointers to cause the actual console rom to fetch opcodes from ram instead of grom.

 

But when you have speech, the way it handles the bus, it shutdowns outside access, freezing the 32k ram from being able to send new opcodes, so on parsec you get periods of frozen flow.

Link to comment
Share on other sites

Try it without the speech.

 

There should not be much of a different the GROM emulator all it does it make a few changes in pointers to cause the actual console rom to fetch opcodes from ram instead of grom.

 

But when you have speech, the way it handles the bus, it shutdowns outside access, freezing the 32k ram from being able to send new opcodes, so on parsec you get periods of frozen flow.

Interesting. I never knew that about the speech. so if the emulated GROM has speech then it will have problems access the new opcodes? Is this only when the speech is accessed?

Link to comment
Share on other sites

Interesting. I never knew that about the speech. so if the emulated GROM has speech then it will have problems access the new opcodes? Is this only when the speech is accessed?

Yep, anything to right of speech bus has a large delay before it can operate again, mainly the 32k ram, disk controller, rs232 interface, stuff like that.

 

Internal console ram, video, grom, cartridge port does not have that problem.

 

So emulated groms in 32k ram will have a bit of problem while speech is playing, parsec even more so as it is custom speech, needing a flow of speech data, instead of words from prerecorded library.

  • Like 1
Link to comment
Share on other sites

Do these programs come with an embedded GPL emulator, or are they using (somehow) the GPL virtual machine in the console ROMs? If the former, then that would be running on the 8-bit bus, whereas the GPL VM in the console is on a pure 16-bit, 0 wait-state bus.

Link to comment
Share on other sites

I've always wondered this myself. I have a copy of Parsec on a floppy that loads into 32K memory, so I just assumed the game was originally written in Assembly, not GPL. I didn't even think there was a way of emulating or running GPL code from main memory. I always thought it REQUIRED a GROM-port mapped memory space. I'd be interested in more of the technical details on how this was pulled off.

Link to comment
Share on other sites

What I understand the GPL is laid out into the 32k mem area then the GPL VM is redirected to point to that memory as if it's GPL memory. How it does that?????

Gary, Tursi, anyone want to give us a mini lesson on the subject? :?

Edited by hloberg
Link to comment
Share on other sites

There should not be much of a different the GROM emulator all it does it make a few changes in pointers to cause the actual console rom to fetch opcodes from ram instead of grom.

 

I would have thought you would have to run a modified version of the interpreter in RAM, at least of the main loop. How else would you deal with the fact that GROMs automatically return the next byte with every read? Making the interpreter read from VDP RAM would probably be easier since it behaves pretty much like a GROM. Looking at the code, the interpreter seems to be reading everything from an address stored in R13, which is usually the GROM read data address.

Link to comment
Share on other sites

I would have thought you would have to run a modified version of the interpreter in RAM, at least of the main loop. How else would you deal with the fact that GROMs automatically return the next byte with every read? Making the interpreter read from VDP RAM would probably be easier since it behaves pretty much like a GROM. Looking at the code, the interpreter seems to be reading everything from an address stored in R13, which is usually the GROM read data address.

There is two versions out there by Barry Boone, one is full but code runs slower, and one is fast using the console rom but not as compatible:

 

You may have seen my disk based GPL interpreter floating around too. 13-14 sectors in size for the "fast" one which was 95% compatible with most dumped GROM's. The other was 33 sectors and was a full blown GPL interpreter, but it ran slow due to all the code running from 8 bit memory. It was however 99% compatible with dumped GROM carts. The fast version hopped in and out of the console ROM which sped things up a lot. It was the experience of doing this code that later led to the creation of EXEC for the Geneve.

In this thread you there is attached another version of the code:

 

http://atariage.com/forums/topic/159291-gpl-interpreter-emulator-assembly-re-write/

 

Someplace around here is the full version, and I think there is commented version somewhere in my archives stored away.

Link to comment
Share on other sites

What I understand the GPL is laid out into the 32k mem area then the GPL VM is redirected to point to that memory as if it's GPL memory. How it does that?????

Gary, Tursi, anyone want to give us a mini lesson on the subject? :?

 

Tursi always wondered this one too ;)

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