English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 18 November 2020, 06:35   #1
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,200
HRT mon+WHDLoad slave=suspend&resume?

I was wondering if cutting some code out of HRT Mon to save the state of an Amiga from inside a WHDLoad slave is feasable. If so, are there any other WHDLoad slaves that use GPL code?
Samurai_Crow is offline  
Old 18 November 2020, 07:35   #2
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,369
problem is

- absolute memory allocation if game uses expansion memory (which is non chip)
- write-only register values (ex: $dff080 copper list start) need to be snooped, this require an MMU (SNOOP mode) but slows down games (except on winuae, which is not the point)

I had done this feature in JST but that required that the slave coder registers copperlist location & other stuff sometimes. And copperlist location may change depending on the game state (menu, level 1, loading...). I remember that some JST slaves had this feature implemented (Desert Strike).

So it's a tough one if you want to make that generic.

I don't know how HRTMon interrupts & resumes the display but I'm pretty sure it's not using/changing the copperlist at all (because it cannot know its location for sure). It's just stopping all copper DMA and setting bitplane pointers & colors manually (in some rare cases, games don't like being interrupted by hrt because their copperlists lack some registers, which are just set at start of the game, and hrtmon overwrites them)
jotd is offline  
Old 18 November 2020, 16:12   #3
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,200
Thanks for the information!
Samurai_Crow is offline  
Old 19 November 2020, 14:12   #4
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,836
I guess you can fetch the all memory for copperlist and code that set it and propose a choice if many are found or use a dictionary of all known games copperlist
kamelito is offline  
Old 19 November 2020, 15:08   #5
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,200
Quote:
Originally Posted by kamelito View Post
I guess you can fetch the all memory for copperlist and code that set it and propose a choice if many are found or use a dictionary of all known games copperlist
Or just change part of the chipset in the FPGA.
Samurai_Crow is offline  
Old 19 November 2020, 19:37   #6
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,369
copperlist scan is completely heuristic and sometimes doesn't work at all...
dict of games copperlist: okay but that's a huge work: different versions, and sometimes memory allocation that changes addresses...

modifying chipset to be able to read values in write-only registers would work, but in that case it's not going to work on a real amiga, where it's really useful (on emulators it's not needed, and developping this feature only for FPGA is a big no no if you ask me)
jotd is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Hrt-Mon refresh in Tracer broken StingRay support.WinUAE 10 07 December 2015 22:21
Generic WHDLOAD slave Gaula92 project.WHDLoad 15 08 March 2013 02:07
WHDload ASM Slave Retro1234 Coders. General 21 27 October 2008 13:20
chessmaster whdload slave pbareges support.Games 1 27 September 2006 22:44
Whdload wish: HD suspend at game start Jerry project.WHDLoad 15 16 May 2005 10:09

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 21:26.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.08347 seconds with 13 queries