ZX ULAX emulator

Struggling with Fuse or trying to find an emulator with a specific feature. Ask your questions here.
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: ZX ULAX emulator

Post by Pegaz »

Yes, you're right, I need to make some corrections and there's still room for improvements, but I think I'm close to making some decent combination.
Of course, it would be great if you could do a multicolor main sprite, modeled on a c64 color scheme, or whatever you consider appropriate.
I already like the way everything looks and this would be a great bonus for the overall look of the game.
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

Re: ZX ULAX emulator

Post by Lethargeek »

Pegaz wrote: Sun Jan 19, 2020 5:43 pm it would be great if you could do a multicolor main sprite, modeled on a c64 color scheme, or whatever you consider appropriate.
I'm a bit busy now, but you can try it yourself - i replaced dux in the cloud. Now it allows full repaint for sprites.

locate the sprite you want to alter with Xpeccy sprite finder or other tool
all the sprite gfx is between #E1BE...#F9CE in the page#0 so corresponding dux addresses are 8021BE...8039CE
(each dux address is for 8 pixels like the corresponding zx byte)

then you can use tags like this:

80XXXX FFFC ink paper ; - this affects the rest of this one sprite, so locate the real 1st byte address of it

and/or repaint some pixels with any colors in GRB555 format:

80XXXX p7 p6 p5 p4 p3 p2 p1 p0

8001 & 8000 are special ink/paper codes affected by the FFFC-tag colors
(or affected by the default colors selected for all the sprites set in the dux code)
initially all the unaltered graphics is naturally made of these two values

you don't need to give adjacent addresses, just continue the pixel stream after p0
also you can use negative numbers to skip any number of pixels like this:

80XXXX p7 -2 p4

to avoid problems, please use common paper color for all the sprites (preferably black or 8000)
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: ZX ULAX emulator

Post by Pegaz »

Thanks, I hope I can manage.
This seems a little more complicated now, but I still think it's going to be fun...
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: ZX ULAX emulator

Post by Pegaz »

@Lethargeek

I'm trying to do what you wrote but I'm having trouble locating the sprite data.
This Xspeccy is some hard core emulator, I am not even able to install proper tr-dos configuration, also its sprite finder is not very clear how to use it.
When you have time, can you please write small step-by-step instructions with an example (eg. for main sprite in Heartland) to help me understand this recoloring porocess, more easily.
Btw, I really like this Heartland 128k remix, with AY music taken from the Amstrad version.
The original great Odin beeper tune is still present in the main menu and the AY tune is played constantly throughout the game.
I only found trd and scl format on zx-pk, so I made a tzx version, which works fine on standard 128k models.
Here's the link:
https://gofile.io/?c=PrODNH
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

Re: ZX ULAX emulator

Post by Lethargeek »

[mention]Pegaz[/mention], you just need to load the snapshot to find the graphics, no need to mess with configurations
(btw do not use the latest Xpeccy build as the author broke snapshots incidentally, use ones from 2019 instead)))

I don't get what could be unclear about the sprite finder, as it has only a very few controls:

- page number for #C000-#FFFF area - as i said earlier it should be 0
- address input field - again, i said before sprite gfx starts at #E1BE, so put it there
- sprite width - play with it until you see the sprite properly (it will be 4)
- column height - leave it at max 32
- inversion and grid checkboxes - to understand better where the sprite ends
( one square is 8x8 pixels (bits) just as the one attribute tile)
( usually even the sprite height is fit to the nearest 8th row)
- ZX screen view - you don't need it for finding sprites

slider (or mouse wheel) moves 8 pixel rows up and down, and you see the address changing
arrows & pgup/pgdn change address by different amounts (if the cursor is in the address field)

if you list down and see sprites becoming distorted - adjust the width
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: ZX ULAX emulator

Post by Pegaz »

Ok, thanks for the clarification, I'll try with some older Xspeccy version, too.
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: ZX ULAX emulator

Post by Pegaz »

Ok, the extra info was helpful, I was able to recolor main sprite, so far just in two colors, for testing purposes only.
Next, I should practice recoloring individual pixels as soon as I find more time to do so.
I generally like the whole technique, it takes effort and time to test different combinations, but it's still fun.
Heartland is particularly interesting for recoloring, so I will continue to experiment with it and when I'm happy with the result I'll post here.
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

Re: ZX ULAX emulator

Post by Lethargeek »

the main thing, first set the one dominant color of the sprite (or a big "strip" portion of the sprite) and then edit just those different pixels only
it's more convenient and much faster, although not always possible
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

usability update

Post by Lethargeek »

new emulator version (public beta 8) - same links on the 1st page

since 100% reliable loader detection is impossible (and the tap support was partially broken in the last version) tape autostop is removed and replaced with the autopause system. This means, if the #FE port is read in a strange pattern while tape is through the data block, emulator will be paused for the user to decide if the tape has to be stopped. In short, when it happens, press normal (un)pause key to continue loading or press space to stop tape, disable frame skipping (if it's enabled) and unpause. Look into the emuL-info.txt for more details.

also added quicksaving for emulated disks in different formats (LAlt/RAlt+F8/F9 keys)

game pack update is coming soon...
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

bugfix

Post by Lethargeek »

...and of course a nasty bug was found right after the release :evil:

(register R wasn't properly corrected after HALT state)

so grab the new public beta 9 asap
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

i/o compatibility and game pack update

Post by Lethargeek »

public beta 10 - better i/o compatibility with old pentagon software abusing partial port address decode + some small fixes

game pack updated as well: added Curro Jimenez, Poseidon, Transformers, Wheelie (and moved Heartland there too)

same links on the 1st page as usual
Eugene C.
Drutt
Posts: 28
Joined: Wed Jul 17, 2019 2:47 pm

Re: ZX ULAX emulator

Post by Eugene C. »

Can you add "Shinobi"? It is unplayable with bullets that blend in with the screen. :mrgreen:
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

Re: ZX ULAX emulator

Post by Lethargeek »

will look into it after i'm done with Nightbreed and Forgotten Worlds
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

better disk emulation

Post by Lethargeek »

public beta 11 - mostly disk-related improvements

beta-disk emulation is still far from perfect (and never was intended to be)
but now more custom loaders and correct (re)formatting should work

please tell me if you find some disk image not working properly
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

game pack update and kinda bugfix

Post by Lethargeek »

public beta 12 - some Pentagon system software didn't work with ROMCS changes introduced in the last version and i wasn't sure it's all the same in every clone so made it a parameter in the ini (it won't hurt in any case anyway)

also added two big multiload games in the game pack: Forgotten Worlds and Nightbreed+ disk mods

note that Forgotten worlds is the new release extensively bugfixed by several people from zx-pk.ru (including me)
and before this day, there was no proper playable critical bug free 128k version! 8-)

Enjoy!
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

port logging & sna sound

Post by Lethargeek »

public beta 13

Some more beta-disk emulation improvements (mostly making a difference with the demos only, but why not)

Loading a sna won't reset AY by default now - useful for quickloads in those games not updating all AY registers for a long time (this led to missing in-game music after a quickload in the Heartland mod for example). You can change this behaviour in the ini. Also the system reset (Home key) will reset AY as before if you need it just sometime.

Added masked I/O logging - to use it, make a dux file with one string like: "7FFFFF imask0 imask1 omask0 omask1"
first 2 masks are for input, next 2 masks for output; for mask0, ZERO bits that need to be 0; for mask1, SET bits that need to be 1
for example: "7FFFFF FFFE BFFE FFFE 00FE" - this will log all BFFE reads and all writes to ??FE
(the default mask values are "FFFF 0 FFFF 0", so no port can satisfy these conditions)

start the emulator with the emuL.bat file (or redirect output to a file or give it a name of the log file as a parameter)
load the dux file with the PgDn key as usual to parse it, then press Insert to turn logging on and off whenever you need it
output format is: "i|o ADDRESS <|> PORT : RAMpage ROMpage : BYTE", very similar to the older memory logging
however, unlike memory, this will register every suitable port access each time, and the log file may grow very fast - so beware!
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

game pack update

Post by Lethargeek »

Thanatos was always one of my favourite games. In addition to great graphics and game play very good job was done on keeping the color clash to a minimum (except when approaching the city walls for a brief time). Still i felt it could benefit from being a little "tidier" and with some colors added and/or replaced (buildings being green always looked a little weird to me). So here's the result. Also note the snapshot here is modded - the original buffer-to-screen transfer was replaced with faster code writing "behind the beam" to improve the video quality even more. And with the great recent MAC's picture replacing the original title screen to boot! ;)

Also two of the older dux files for Academy+ (later levels palettes) and Dizzy-7 remake (one overlooked item) were fixed.
Eugene C.
Drutt
Posts: 28
Joined: Wed Jul 17, 2019 2:47 pm

Re: ZX ULAX emulator

Post by Eugene C. »

I hope for GnG and Shinobi.
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

Re: ZX ULAX emulator

Post by Lethargeek »

The 1st level of Shinobi was easy, just uploaded it in the same cloud folder so you can check it. But the game is a multiload and positions of the same sprite routines don't match between the levels. So it will need either a separate static dux driver for the each level manually loaded by the player at the right time (very inconvenient) or a tricky universal dynamic driver as with Nightbreed (and that's not fast to match several code branches and make several dynamic pages for them; and won't work for the bosses made of background tiles, these need to be recolored pixel-by-pixel). And in either case i need snapshots for the each level first.

As for GnG, i'm yet to decide which of the available versions is less buggy to choose it.
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

game pack update!

Post by Lethargeek »

yet two more games - Interchange and Elven Warrior (and now more than 70 in total)
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

double update

Post by Lethargeek »

public beta 14

Added floating bus aka "port #FF". Note it's absent on the real Pentagon but why not if it allows to run more games. It is off by default in the ini and has nothing to do with the ULAX itself (it reads original Spectrum attrs).

More importantly, build options were tweaked and optimized, as a result there is less CPU load overall and especially in adapturbo, frame skipping mode is faster, and there should be less sound crackling with shorter lag. But just in case something goes wrong, keep the older version for a while.

Also small update for the game pack - very old blade warrior colorization was improved, now with proper separate colors for the each sprite.
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

game pack update

Post by Lethargeek »

3 new games - black&white, dingo and gimmick! yumetaro odyssey

(for the last one the colorization also fixes some gfx glitches of the original)
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

game pack update

Post by Lethargeek »

two new games for the 1st of may - Outcast & Intensity

(as suspected, the 2nd one turned out to be a lot more fun when you can really tell what's going on on the screen) :)
User avatar
PeterJ
Site Admin
Posts: 6877
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: ZX ULAX emulator

Post by PeterJ »

I'm struggling to download [mention]Lethargeek[/mention]:

I click on the download links (avoiding the adverts for very attractive young Russian ladies who are apparently looking for a husband in London), and it takes me to a Dropbox style site. I click on the Download link (Dark blue Button) but nothing seems to happen.

Image

Could someone who has downloaded the latest versions share them via Google Drive or Dropbox?

Many thanks.
User avatar
Lethargeek
Manic Miner
Posts: 743
Joined: Wed Dec 11, 2019 6:47 am

Re: ZX ULAX emulator

Post by Lethargeek »

[mention]PeterJ[/mention], you did everything right, maybe something is blocking it on your pc

alternatively try getting it from the folder:
https://cloud.mail.ru/public/3Rzu/33GtNmUof
(right-click on the file, then select download)

also there's a google drive mirror:
https://drive.google.com/drive/folders/ ... 0pPUWFNZrm
however it's maintained by another person and not updated yet
but it will be there eventually, check it sometime
Post Reply