Jump to content

a78psd - ProSystem save state file analyser


Recommended Posts

Find attached a little Windows 2000/XP utility for analysing the contents of the ProSystem emulator *.sav files.




The utility will display the following information :-


- ROM image digest.

- Some TIA registers (as specified in the original Atari 7800 development kit).

- All MARIA registers.

- All 6502 processor registers A, X, Y, P, PC, S.

- Bank switch select register.

- All Zero Page (ZP) memory locations from $0040 to $00FF inclusive.

- All stack page memory locations from $0140 to $01FF inclusive.

- All memory from $0000 to $3FFF.

- Memory from $4000 to $7FFF (if it exists in the save state file).

- An analysis of the Display List List (DL) and Display List (DL) entries for each zone.


The analysis of the Display List List entries and Display List "headers" will display :-


For each DLL found :

- Video scan line the DLL entry will be displayed on.

- DLL entry start address.

- Value of each byte that makes up 3 byte DLL entry.

- The state of DLI, H16, H8 and OFFSET.

- The start address of the "zone" DL headers.


For each DL entry found in the "zone" :

- Header size in bytes.

- Header contents.

- Data payload ADDRESS.

- PALETTE and WIDTH (in bytes).

- WM and IND (5 byte entries only).



Some error checking is carried out for valid combinations of bits, valid payload addresses etc.


The total number of MARIA cycles used to display the "headers" found is displayed on a per zone basis. This value does not include the values for DMA start-up etc.


The analysis continues until the maximum number of NTSC video lines have been accounted for. Then the PAL video lines will be accounted for. Because the utility doesn't know if its a PAL DLL or an NTSC DLL it may generate erroneous results in the video lines between NTSC ending and PAL ending.


As a side note its quite interesting to analyse the games released back in the day to see how much they pushed MARIA or not :ponder: :lol:.


As always, comments and suggestions welcome.

Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...

I have a question... I see this message on some games towards the end of the screens scanlines..


Zone's Display List starts at : 0x85DA (Warning - Zone DL start address is not in valid RAM)


So my question is.. what does the Maria do when it is given bad addresses like these? Nothing. Or does it wrap the address?



Link to comment
Share on other sites

It is interpreted as junk from what I can see. The utility can't tell if the save game state is from a PAL game so it keeps parsing the Display List List (DLL) until it has reached the required number of PAL scan lines (even though the game could be NTSC). I could add a database and scan the MD5 for matches but my main use of the utility is for new games and not the legacy ones.

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.

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.

  • Recently Browsing   0 members

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