Re: [hatari-devel] EKO system regression |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
Could another approach be to add an "advanced" section in the Hatari GUI
parameters ?
Something like "use the cardridge port" if checked and "use the gemdos
HD" if not or something like that.
I second Nicolas : many people will use hatari to look at demos, games
and/or use old tools.
And a demo like EKO System is a master piece of code for the falcon.
It would be bad to loose it for a new option, any good and useful it is.
It's only my 5 cents to the question.
Regards
Laurent
Le 06/10/2019 à 10:59, Nicolas Pomarède a écrit :
Le 06/10/2019 à 10:06, Thorsten Otto a écrit :
On Sonntag, 6. Oktober 2019 09:47:08 CEST Thomas Huth wrote:
Opinions?
I would do the chaining again as before. Demos are certainly not the
only
programs that redirect the gemdos vector, and you'll never know whats
they are
trying to achieve. The safest way should be to catch only the calls
that would
otherwise go to the ROM, by putting your routine at the end of the
chain.
If you don't want to put the code in the cartridge again: another
option would
be to insert your illegal opcode directly in the ROM, at the start of
the
gemdos dispatcher there. The addresses of all tos versions should be
known,
only problem is that they not only depend on the TOS version, but
also on the
TOS language.
Hi
I'm not sure it's required to add some illegal opcode or patch the
ROM. Maybe another solution could be to add code in the exception()
generic handler :
when an exception occurs, check its number to see if it's the number
for trap 1, 13 or 14 for example. Then check if the resulting
exception vector is located in rom or not.
if it's located in rom, call the C code to intercept HD emulation,
else don't do know anything special.
of course, one problem happens if a program change trap 1 vector to
point to another location in ROM instead of the "official" trap 1
vector ; in that case this would call the HD emulation, which would be
wrong.
All that put together, maybe the safest way would be build a list of
all known tos and for each tos to store in that list the address in
rom of the handler for trap 1, 13, 14 or any other handler we could
want to patch (line A ?).
This list could also contain an MD5 of each ROM so that Hatari could
confirm a ROM is genuine or not.
There're several language varations for each version, but in the end
maybe it's only 30-40 ROM, which is not that much and the list if
finite (this is for atari's tos, emutos can certainly be handled in
some ways)
what do you think ?
In the end, I think it would be really important if the HD code could
become "stealth" and no game or demo refuse to start when HD emulation
is ON (which is the case for several protections)
Nicolas