Dream emulator features

Struggling with Fuse or trying to find an emulator with a specific feature. Ask your questions here.
User avatar
Turtle_Quality
Manic Miner
Posts: 506
Joined: Fri Dec 07, 2018 10:19 pm

Dream emulator features

Post by Turtle_Quality »

Are any of these already existing ? Have you your own dream emulator features ? I'm trying to keep them vaguely achievable

Save setup / high score table

Retro arch lets you automatically save state, so you can return to exactly where you were. And of course most emulators would let you save a snap. But if you could save the area where, say the high score table and/or redefined keys are, and then have that load by default with the game, you still see the loading screen at start. Maybe a POK file fits the bill, if the emulator could be set to update that POK file on exit.

Further to this, if a web based emulator used this for a high score table, there could be (for instance) a monthly Lunar Jetman online score competition.


Rewind

Maybe I've missed an emulator/debugger that already does this, but usually by the time I see some odd/wrong behaviour in my code it's too late to see how it got there - especially with intermittent errors. The option to rewind a few seconds and then single step forward with breakpoints would be extremely helpful


Online multi-play, assuming this would only work with a web based emulator

Ok I get that with action games, lag is going to make it next to impossible. But surely with turn based games, or management games like CRL's Formula 1, it could be feasible for several people to connect to the same emulated session ?
Definition of loop : see loop
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2641
Joined: Mon Nov 13, 2017 3:16 pm

Re: Dream emulator features

Post by Ast A. Moore »

Turtle_Quality wrote: Tue Sep 21, 2021 11:48 pm The option to rewind a few seconds and then single step forward with breakpoints would be extremely helpful
RZX?
Every man should plant a tree, build a house, and write a ZX Spectrum game.

Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
User avatar
TMD2003
Rick Dangerous
Posts: 2047
Joined: Fri Apr 10, 2020 9:23 am
Location: Airstrip One
Contact:

Re: Dream emulator features

Post by TMD2003 »

(1) ULAplus;
(2) Ability to define either left shift / right shift or both shifts / both CTRLs as Caps Shift / Symbol Shift;
(3) Every single disc or disc-adjacent format known to Spectrumkind enabled, including the Rotronics Wafadrive (for which there is only one emulator, RealSpectrum, and it's ancient);
(4) ZX81 and ZX80 in addition to all the Spectrum models, and I don't mean via Paul Farrow's ROM cartridges (although I have a use for those);
(5) Tunable colour palette so that all the standard colours and the ULAplus colour levels can be adjusted to how I think they're supposed to be (i.e. C0/FF intensity for the standard colours);
(6) Built-in Z80 Assembler, which as far I know only Spin has.
Spectribution: Dr. Jim's Sinclair computing pages.
Features my own programs, modified type-ins, RZXs, character sets & UDGs, and QL type-ins... so far!
User avatar
Bubu
Manic Miner
Posts: 542
Joined: Fri Apr 02, 2021 8:24 pm
Location: Spain

Re: Dream emulator features

Post by Bubu »

My dream emulator feature is this: an incorporated assemnbler editor, so I can put a breakpoint into the code and the emulator stops just there, and showing the value of the registers and so on. So I'm more interested in developing than in playing. For playing I've got Spectaculator that is for me the best one.

Ah, I forgot, I'd love an emulator to have a XML file where I can configure the keys for each game:

Code: Select all

<game title=Horace Goes skiing>
<key code=V_Q>key_up</key>
<key_code=V_Z>key_down</key>
...
</game>
and so I can play in my arcade cabinet. I know that I can do that with Autohotkey, but I'd like and emulator to incorpore that feature.
If something works, don't touch it !!!! at all !!!
User avatar
Juan F. Ramirez
Bugaboo
Posts: 5147
Joined: Tue Nov 14, 2017 6:55 am
Location: Málaga, Spain

Re: Dream emulator features

Post by Juan F. Ramirez »

A 'what am I going to play today?' option. From a folder of game files, the emulator selects randomly a game.
User avatar
Stefan
Manic Miner
Posts: 822
Joined: Mon Nov 13, 2017 9:51 pm
Location: Belgium
Contact:

Re: Dream emulator features

Post by Stefan »

Turtle_Quality wrote: Tue Sep 21, 2021 11:48 pm Rewind

Maybe I've missed an emulator/debugger that already does this, but usually by the time I see some odd/wrong behaviour in my code it's too late to see how it got there - especially with intermittent errors. The option to rewind a few seconds and then single step forward with breakpoints would be extremely helpful
TommyGun has this, ingenious feature IMHO - although I must admit to having never used it since I'm more into crashing SimCoupe.
User avatar
evilpaul
Manic Miner
Posts: 244
Joined: Tue Jul 28, 2020 8:04 am
Location: Espoo, Finland
Contact:

Re: Dream emulator features

Post by evilpaul »

Turtle_Quality wrote: Tue Sep 21, 2021 11:48 pm Rewind

Maybe I've missed an emulator/debugger that already does this, but usually by the time I see some odd/wrong behaviour in my code it's too late to see how it got there - especially with intermittent errors. The option to rewind a few seconds and then single step forward with breakpoints would be extremely helpful
EmuZWin does this and has an excellent debugger in general, but maybe isn't the easiest emulator to use. Haven't used it for years, but back when I was running Windows I would use Spin for everyday development, and then EmuZWin if a bug got nasty.

Other features that I would love to be able to use direct from my code:
- Trigger a breakpoint
- Write to a terminal window (for writing debug info)
- Reset/read tick counter(s) (for profiling)
These could be done using special IO ports on the emulator - hidden behind a toggle of course.
User avatar
Turtle_Quality
Manic Miner
Posts: 506
Joined: Fri Dec 07, 2018 10:19 pm

Re: Dream emulator features

Post by Turtle_Quality »

evilpaul wrote: Wed Sep 22, 2021 7:11 am Other features that I would love to be able to use direct from my code:
- Trigger a breakpoint
- Write to a terminal window (for writing debug info)
- Reset/read tick counter(s) (for profiling)
These could be done using special IO ports on the emulator - hidden behind a toggle of course.

I use Zeus for developing and debugging, it's got a limited emulator but then you can follow your source code, it does allow t state profiling and writing debug info to the terminal, I just haven't worked out how to use them properly yet.

For [mention]TMD2003[/mention] and [mention]Bubu[/mention] , for assembler / emulator / debugger the options I know of are
Spin
Specemu
Retro Virtual Machine
Zeus (not a great emulator but nice debugger)
SpecNetIde - I think like Zeus this is a development system with built in emulator

With most of the above there is limited or no documents for using the assembler, you have to fish around the forums for bits of info. I'm planning to get more info together on assembler / debugger / emulators and their options.
Definition of loop : see loop
User avatar
bluespikey
Manic Miner
Posts: 963
Joined: Tue Jun 30, 2020 3:54 pm

Re: Dream emulator features

Post by bluespikey »

Hammering out left and right inputs as fast as the interrupts will allow to beat track and field games.

Daley Thomsons needs left-down,right-down repeatedly to work.
Combat School needs left-down,left-up,right-down,right-up repeatedly to work.
I'm sure theres others that count either side repeatedly.
Ralf
Rick Dangerous
Posts: 2297
Joined: Mon Nov 13, 2017 11:59 am
Location: Poland

Re: Dream emulator features

Post by Ralf »

My ideal emulator would be a mix between existing ones: Spectaculator and Spin and some other tools.

From Spectaculator I would take the friendly interface and stability.

From Spin the advanced debugger (conditional breakpoints etc.) and being able to slow down a game
below 100% (I miss it terribly in Spectaculator).

From EmuZwin I would take GUI interface for Tr-Dos. You can run files there by clicking them, watch occupied and free
sectors on the disk, it's really useful if you want to do something with Russian programs.

And I would add similar GUI for the tape - being able to move, rename, delete, preview and edit blocks on the tape.
Now I'm using one of Claus Jahn's utilities for it.

I would add a small feature that isn't anywhere - being able to point to a screen with a cursor and get graphics and
attribute memory address
Alone Coder
Manic Miner
Posts: 401
Joined: Fri Jan 03, 2020 10:00 am

Re: Dream emulator features

Post by Alone Coder »

1) ATM-Turbo / ZX Evo baseconf emulation (from Unreal Speccy) with DDp's palette (from Xpeccy)
2) NeoGS and TurboSound FM emulation (from Unreal Speccy)
3) 48K, 128K, +3, Timex emulation (from Fuse)
4) accurate PAL artifacts filter (made by NEO SPECTRUMAN)
5) Turbo mode emulation (the easiest method is a coefficient to T-states per command)
6) full snapshot, not just 128K
7) full keyboard (as in Unreal Speccy), 8-bit kempston (as in Xpeccy), mouse wheel (as in Unreal Speccy, but corrected direction - Unreal Speccy has it wrong)
8) Debugger from Unreal Speccy, but with label import NOT linked to pages and breakpoints LINKED to pages (it's crucial for NedoOS debugging), and with long labels
9) address/register logging for save and rewind
10) memory usage logging (Unreal Speccy can only show it on screen, not save) with execution counters for profiling
11) should work FAST for "numlock" speedup feature
12) no install, just files and user edited ini file (can be also corrected from the GUI)
13) open source with full instructions how to compile (to add test features) and with FREE license (no GPL or other virus licenses)

All this is possible. Having an online version is a dream...

Points 1 to 7 also hold for an ideal Android emulator. The existing ones are just playthings with little compatibility.
User avatar
evilpaul
Manic Miner
Posts: 244
Joined: Tue Jul 28, 2020 8:04 am
Location: Espoo, Finland
Contact:

Re: Dream emulator features

Post by evilpaul »

Alone Coder wrote: Wed Sep 22, 2021 11:48 am Big list..
Nice list. Reminded me of another feature that EmuZwin debugger (and no doubt others) have - a 256x256 array view of memory, one cell per byte, that shows whenever memory is written to (shown as red) or read from (shown as green). Combine that with the rewind feature and this would have saved me hours of trying to track down a memory stomping bug that I had a couple of days ago.. if only I was on Windows and could run EnuZwin :D
User avatar
Turtle_Quality
Manic Miner
Posts: 506
Joined: Fri Dec 07, 2018 10:19 pm

Re: Dream emulator features

Post by Turtle_Quality »

evilpaul wrote: Wed Sep 22, 2021 11:58 am
Alone Coder wrote: Wed Sep 22, 2021 11:48 am Big list..
Nice list. Reminded me of another feature that EmuZwin debugger (and no doubt others) have - a 256x256 array view of memory, one cell per byte, that shows whenever memory is written to (shown as red) or read from (shown as green). Combine that with the rewind feature and this would have saved me hours of trying to track down a memory stomping bug that I had a couple of days ago.. if only I was on Windows and could run EnuZwin :D
Zeus can tell you which instruction last read or wrote to an address which has help me locate some surprising bugs. You can also point to screen to find the pixel and attr address which [mention]Ralf[/mention] was looking for. I think it was Retro Virtual Machine that also shows you where the raster is pointing to when single stepping which would be very handy.

In mentioning all in one assembler/emulator/debuggers earlier I forgot to mention
asm80 (online emulator)
Emuzwin
ZXSpectrum4.Net

Klive was going to do this, not sure if it was finished
Definition of loop : see loop
User avatar
Bedazzle
Manic Miner
Posts: 306
Joined: Sun Mar 24, 2019 9:03 am

Re: Dream emulator features

Post by Bedazzle »

TMD2003 wrote: Wed Sep 22, 2021 12:18 am (6) Built-in Z80 Assembler, which as far I know only Spin has.
EmuZWin
User avatar
MatGubbins
Dynamite Dan
Posts: 1239
Joined: Mon Nov 13, 2017 11:45 am
Location: Kent, UK

Re: Dream emulator features

Post by MatGubbins »

Another big push for EmuZWin.
Helpful debugger - yes
Built in assembler yes
Display of memory as graphics - yes
Rewind of time to alter the future - oh yes! Test for bugs, check that the program is running as it should.
Can I leave the Debugger/assembler/memory display screen open when using the emulator? Yes!!!!!

Yes, it does run best on a Windows XP system - so dig out that Pentium 4 laptop with a couple of gig ram and use it on there.
I run it on my very low end Samsung N130 Netbook with a single core Atom N270, 2gig ram plus Windows XP and it suits me fine.
User avatar
Mort
Microbot
Posts: 190
Joined: Thu Jan 17, 2019 10:03 am
Location: Kent , England
Contact:

Re: Dream emulator features

Post by Mort »

Having a front end that allows you to select the game with access to the artwork and instructions With a virtual tape showing playing the tzx with the cassette label mapped to it ;-)

So woud look a bit like a bookshelf , click on the game, shows main inlay , click again to see the back , then use game to pull tape out to picture of Tape machine running.

Could even have a virtual WHSmiths to walk around for games that are not in the library ;-)
Scanner extraordinaire, 1000`s of magazines and Software from the 8 and 16 bit era now up on internet archive in lovely 600dpi.
Donations are welcome of items to scan that are no longer needed ;)
Gooeyblob
Drutt
Posts: 32
Joined: Sun Nov 08, 2020 4:11 pm

Re: Dream emulator features

Post by Gooeyblob »

Turtle_Quality wrote: Tue Sep 21, 2021 11:48 pm Are any of these already existing ? Have you your own dream emulator features ? I'm trying to keep them vaguely achievable

Save setup / high score table
Not ideal but Antstream saves the scores and has a high score table, has three hundred odd spectrum games.
User avatar
Turtle_Quality
Manic Miner
Posts: 506
Joined: Fri Dec 07, 2018 10:19 pm

Re: Dream emulator features

Post by Turtle_Quality »

Mort wrote: Wed Sep 22, 2021 3:32 pm Having a front end that allows you to select the game with access to the artwork and instructions With a virtual tape showing playing the tzx with the cassette label mapped to it ;-)

So woud look a bit like a bookshelf , click on the game, shows main inlay , click again to see the back , then use game to pull tape out to picture of Tape machine running.

Could even have a virtual WHSmiths to walk around for games that are not in the library ;-)
With Sam Fox Strip Poker on the top shelf, naturally
Definition of loop : see loop
catmeows
Manic Miner
Posts: 718
Joined: Tue May 28, 2019 12:02 pm
Location: Prague

Re: Dream emulator features

Post by catmeows »

What I miss is support for Didaktik Gama and Didaktik M.
Didaktik Gama uses original ULA, just adds another 32KB and 8255 IO. There is small library of modded games that uses the additional memory. This is probably easier task.
Didaktik M use custom ULA with different timing and single octet of 64KB chips - all contended. I think Z80 runs on 4MHz to mitigate slower memory access. It is probably quite challenging task to emulate it properly.
Proud owner of Didaktik M
marenja
Microbot
Posts: 109
Joined: Sun Dec 26, 2021 4:15 pm

Re: Dream emulator features

Post by marenja »

A button to quick change emulation speed. Can be used to change speed in a small range 5-10-15-20%.

Modern emulators are capable to change speed but using menu and not buttons. Some f them change speed with slider which is not precise. InkSpector hangs for 3 seconds before it displays options window.

Usage scenarios can be like this. You play a game with usual speed 100% but then you reach a difficult place, then press a button and continue with 85% of original Spectrum. And you press button to return 100% speed when you have passed that hard place. You play with speeds 100% and 85% and switch between them with a single keypress.

Other case is when you need to speed up game for a short time at level endings or when you have to move for a long distance without enemies. In this case you play with 100% and 120% or similar value.

Scenarios above are possible with a speed change binded to single key or different keys. Single key can be better in some cases. Ideal case for me will be 3 keys with 3 possible speed values - and ANY speed value can be chosen for them, e.g. the case is possible when NONE of 3 values is 100% of Spectrum.

E.g. "default" speed is 95%, and others are 90% and 80% - for hard games.
"Default" is 100% and others are 120% and 150% when you need increased speed.
"Default" is 100% or any you like, others are 80% for hard places and 120% for easy ones.
"Default" is 150% for slow games, others are 160% and 180%
Inky
Dizzy
Posts: 95
Joined: Tue Dec 10, 2019 10:05 pm
Location: Sheffield, UK

Re: Dream emulator features

Post by Inky »

marenja wrote: Thu Apr 13, 2023 10:02 am InkSpector hangs for 3 seconds before it displays options window.

Usage scenarios can be like this. You play a game with usual speed 100% but then you reach a difficult place, then press a button and continue with 85% of original Spectrum. And you press button to return 100% speed when you have passed that hard place. You play with speeds 100% and 85% and switch between them with a single keypress.
3 seconds is a long time! Inkspector hasn't hung, but is populating all of the drop-down lists, etc, for all of the options pages and then sizes them all so it all fits properly. It takes about half a second on my 10 year old system, but I'll see if I can reduce the time taken for 2.0.6 (it's too late for 2.0.5 as it's ready to go).

Toggling the machine speed between 100% and 85% is already doable, and is exactly the type of thing I hope people will use Snippets for (once I've got the documentation finished!). In the meantime, assign the following code to a snippet of your choice. If you assign it to Snippet 1 the hot key will be Alt-1. If Snippet 2, Alt-2, etc. If you don't want the on-screen feedback delete the second line, or comment it out with -- at the start.

Code: Select all

new_speed = inks.set_speed(inks.get_speed() == 100 and 85 or 100)
inks.add_message_for_user("Speed set to "..new_speed, inks.msg_type.info, 1)
Inky.
dfzx
Manic Miner
Posts: 688
Joined: Mon Nov 13, 2017 6:55 pm
Location: New Forest, UK
Contact:

Re: Dream emulator features

Post by dfzx »

marenja wrote: Thu Apr 13, 2023 10:02 am A button to quick change emulation speed. Can be used to change speed in a small range 5-10-15-20%.
From the toolbar I added to my personal build of Fuse:

Image

Hovering over it and rolling the mouse wheel increases or decreases the speed quickly.

(The Reset button is actually a toggle. It switches between 100% and the value last set.)
Last edited by dfzx on Thu Apr 13, 2023 12:25 pm, edited 2 times in total.
Derek Fountain, author of the ZX Spectrum C Programmer's Getting Started Guide and various open source games, hardware and other projects, including an IF1 and ZX Microdrive emulator.
Nienn Heskil
Microbot
Posts: 134
Joined: Tue Jun 09, 2020 6:14 am
Contact:

Re: Dream emulator features

Post by Nienn Heskil »

I'd go with UnrealSpeccy that supports scaling in a normal, sane way with ANY screen resolution. The picture should take the entire available screen space period, without stupid black borders where there clearly should be none. Variable border/screen ratio you can set freely, and of course the debugger window should scale just as well.

USP has some of these things right (at least you can make it fullscreen there), but otherwise it's a cut-down version without the debugger and much more, and the way they handle the file menus etc on the PC is cringe af.
marenja
Microbot
Posts: 109
Joined: Sun Dec 26, 2021 4:15 pm

Re: Dream emulator features

Post by marenja »

Inky wrote: Thu Apr 13, 2023 12:20 pm Toggling the machine speed between 100% and 85% is already doable
Thanks a lot. It works and I have written a simple script to toggle speed.

Code: Select all

if(inks.get_speed() ~= 100)
then
inks.set_speed(100)
else
inks.set_speed(85)
end
User avatar
stupidget
Dynamite Dan
Posts: 1648
Joined: Wed Jan 24, 2018 2:09 pm
Location: Sunny Wolverhampton

Re: Dream emulator features

Post by stupidget »

I’d like to be able to cut ‘n paste type-ins into an emulator to then be able to mess about with them.

I’d also like an easy way to enter pokes with the Emulator possibly running a scan of a tap/SNA/tzx file and giving a list of potential pokes. As you can probably tell I have no idea how pokes work so this is probably not possible at all :D
Post Reply