Login
Search for:


Previous | Next

From: Rachy (all posts)
Date: 1998-09-15
Subject: Snapshot files for emulators
Ahojka!

About a week ago an idea formed in my mind: let's give the feature of snapshot saving/loading to my emulator.
What that means? Easy: if you know Spectrum emulators, there is an exact snapshot format for saving of just running program. (That was because of Spectrum is not able to save programs in a usable format.)
But there also a nice "side-effect": you are able to save games on play, which can not be saved in other way!

Ok, why I wrote this letter: I would like introduce a snapshot format for the Plus/4 emulators, but I think it is better to dicuss about the format because of portability.
I would like publish this format too, of course. (An other way to exchange programs between emulators, and platforms.)

So, what I planned:


Snapshot file for the Commodore Plus/4 emulators

File extension: .P4S (Came from Plus/4 Snapshot)

All word sized values is in low-high order (low byte/high byte).
Internal format:

0-7 Watermark: 7 byte of ASCII characters and a version number,
like 50 4C 34 53 4E 41 50 31 "PL4SNAP1"

8-14 Registers: 7 byte of registers, 1 byte each except PC, which
is 2 bytes long: PC,A,X,Y,SR,SP

15-23 TED special: 9 bytes of special values, required by proper TED
emulation. These values come from the pre-snapshot
working of TED, could not be got from other
sources. (Eg. from TED register map.)

HIGHRAM - 1 byte, boolean: high memory area is RAM
if TRUE (means non-zero)

ACTRASTLINE - 2 bytes, word: actual drawed raster
line (real address on screen!) for
line-based emulations

TIMER1_MAX - 2 bytes, word: maximal value of Timer1
($FF00-FF01)

TIMER1_STOP - 1 byte, boolean: Timer1 ($FF00-
$FF01) stopped if TRUE (non-zero)

TIMER2_STOP - 1 byte, boolean: Timer2 ($FF02-
$FF03) stopped if TRUE (non-zero)

TIMER3_STOP - 1 byte, boolean: Timer3 ($FF04-
$FF05) stopped if TRUE (non-zero)

24-65559 RAM dump: 65536 byte of actual RAM. This part contains the
values of TED registers on their positions. (Eg.
$FF19 on position of $FF19+24 etc...)




That's all. Comments are welcome.

Bye:
Rajnai Almos

+---------------------------=%%&##########&%%=-------------------------+
| Rachy of Bi0Hazard | Only Amiga makes it |TankcsapdaMeta| F0NT! |
|e-mail: racs@fs2.bdtf.hu | possible! |llicaHelloween| Editor|
+-----ICQ:-16342960---------=%%&##########&%%=-------------------------+

Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon