#Sega Saturn

1 messages · Page 87 of 1

lofty spire
#

OG Saturn lightguns work by reading the cathode ray projecting pixels onto the television (if my understanding is correct) so you will need a CRT yeah

kind bough
#

Yep, ElectronAsh added support 🙂

wise brook
#

yes, snac allows controllers to work as originally intended.

what you can now do, in addition, is use “virtual lightguns” like a Wiimote, Guncon2, gun4ir (my beloved), guncon 3, open fire etc etc

#

whut happened to bomberman? i thought they were all working great

mortal mist
#

That's all

muted cradle
#

Screen flipping like on PSX would still be nice. For the TATE STGs

rich violet
rotund steeple
#

Isn't "Dual SDRAM "related to the amount of modules on the Ram bar itself? There are ones with 4, which aren't compatible enough.

#

if you mean this from the readme "Dual SDRAM modules is recommended for better compatibility."

rich violet
#

It means 2 ram modules, one where it's green, one where it's red

#

Anyway, I was asking about this comment:

#

Any idea about saturn lightgun support on the saturn llapi or this is something srg320 has to add first?

ripe valley
#

saturn lightgun support on the saturn llapi >> Does onthewaveagain need to update the core on the LLAPI repository ?

thorn pagoda
#

TIL llapi can do lightguns, that's neat

lofty spire
#

oh does gun4ir work for the Saturn core? forget the Sinden, gonna try and grab one of those... once i can afford one lol

thorn pagoda
#

yeah or retroshooter or openfire

#

any lightgun generally supported by mister now works in the saturn core basically

lofty spire
#

sick

wise brook
#

Saturn Main fix!

#

only for Radiant

#

i had suspected that this might have been needed for Time Gal & Ninja Hayate, but perhaps this is still an unsolved problem

thorn pagoda
#

probably worth testing you never know

green basin
#

lightgun support is for joypad style guns? not ones in mouse/keyboard mode?

thorn pagoda
#

either

#

well, assuming mister supports it, it supports some of both kind

green basin
#

calibrated mine in core as mouse mode but it the range of movement was tiny before it hit the edges

thorn pagoda
#

does it work ok in other cores?

green basin
#

yea

thorn pagoda
#

what gun is it

ripe valley
#

For Time Gal & Ninja Hayate, we don't know at the moment.
Like for the WWE sound issue too.

green basin
#

calibration looks correct in core... but the mouse moves so fast i only have about a 2x2" box of movement in center of screen while the cursor hits the edges

#

its a blamcon

thorn pagoda
#

have you retried calibration?

green basin
#

yea... resolution is 1080p, lightgun only for crt?

#

so calibration shows expected #'s for each edge

thorn pagoda
#

should work the same as any other core with lightgun support now

#

yeah sometimes calibration can just go haywire and redoing it fixes it

#

just want to rule out the simple things

green basin
#

i redid calibration in main menu as well as saturn core last night thinking something was off

thorn pagoda
#

fair

#

the crosshair and the actual shot position are both affected the same?

green basin
#

no there is a difference... as it moves from center of screen it accelerates away from the sight

thorn pagoda
#

horizontal and vertical affected the same?

green basin
#

yea all directions... dead center is dead on... move an inch any direction and that crosshair is already at the edge

thorn pagoda
#

any deadzones you can't reach at all?

ripe valley
#

srg320 will need some help on Time Gal and Ninja Hayate from us, users and testers.
Could you review that issue ticket when you have some time ? @rich violet and/or @mortal mist ?
I can't do it rght now, I'm moving out first hour tomorrow and my MiSTer systems are already inside their boxes.
Thanks.
https://github.com/MiSTer-devel/Saturn_MiSTer/issues/113

GitHub

After selecting START GAME on the main menu and the first animation on the two games of the collection, we have only a black screen with some score and remaining lives informations.

green basin
#

you could technically play fine if you make little tiny moves inside that little 2x2 box in middle of screen

thorn pagoda
#

not really how you want to play lightgun games though 😄

green basin
#

you would just have to follow the crosshairs instead of the sight

#

right lol

mortal mist
green basin
#

thought maybe mouse tracking might be off but if others using it fine ill have to go look deeper in my lg settings

thorn pagoda
#

cool thanks for playing 20 questions. congrats you have something completely new ! sorry i have no ideas other than reconfirm its working in other cores maybe

#

i dont think anyone else has tried blamcon so far

ripe valley
#

Anyway, I'm leaving for some weeks, I will try to say hi and/or be back within the end of the month, depending on the evolution of my personal situation.
Good luck everyone here, see you soon.

green basin
#

they can be switched to joypad mode so ill try that later and see if its any different

thorn pagoda
#

oddly enough most of the development was done with a mouse even

thorn pagoda
#

joypad may fair better, its kinda preferred on mister i think

green basin
#

anyone post results using gun4ir on core... these functionally should be the same

thorn pagoda
#

though the og retroshooter is mouse only and someone confirmed that works

#

doesn't gun4ir have a joystick mode they use now?

green basin
#

probably... i think they can use either or as well

thorn pagoda
#

calibrating it ingame doesn't help does it?

green basin
#

light gun in nes core was working fine last night... just no go in saturn... they use different stuff?

#

oh maybe ill try that later... virtual cop need in game calibration?

thorn pagoda
#

yeah if it works on nes it should be working on saturn too

#

yeah its "gun calibration" in the options

green basin
#

ill check it out... was stumped last night

thorn pagoda
#

i'd use VC2 because it works a bit more clearly... if you use VC1 read the onscreen instructions really carefully

#

thats helped with some issues in the past but idk about this one because yours seems unique

green basin
#

ill do some more testing and try to figure out whats going on... calibration in mister and core looked normal so didn't dig any deeper

thorn pagoda
#

even if that works it doesn't mean there isn't an issue so cheers for reporting

green basin
#

good to know other lg's using mouse are working

rich violet
#

@ripe valley I'll also look into it tomorrow! Hope everything goes smoothly with your move!

muted cradle
rich violet
winter phoenix
#

yeah that homebrew team specializes in making 12-player Saturn games, they've made a few now

copper furnace
mortal mist
#

Are you using chd ? bin/cue ?

median tartan
copper furnace
mortal mist
#

Your image has multiple bin files ?

copper furnace
mortal mist
#

no

#

change extension

#

boot.rom

#

no boot.rom.bin

copper furnace
mortal mist
#

ok

#

will check

copper furnace
noble escarp
median tartan
#

the mister max is 6 for the reason stated above.

noble escarp
# thorn pagoda either

I believe that only gamepad style lightguns will work. At least that what sorg said back when I was trying to add support.

noble escarp
median tartan
noble escarp
#

Yeap. Just abusing the protocol XD

median tartan
noble escarp
#

Hardware

#

It's just a proof of concept.
Hardware connects to the saturn and identify itself as a 12 port multitap.
Input on that hardware uses a usb hub

#

So, various usb controllers > saturn

wise brook
#

aaaaaaaaaaaaaaaaaaaaaaaaaaaa

#

had my saturn core utterly freaking out on me

noble escarp
#

And I still need to do this: Connect two (6p) multitaps into my adapter, and it could output as a single 12p multitap

median tartan
#

Interesting but unless it's reproduceable, we're stuck at 6.

noble escarp
#

This could be a solution for using snac on the core and have 12p support

wise brook
#

turned out i’d made too many mapping adjustments on the same controllers and it was causing the core to freeze, fail and unable to open the osd

#

so i went into the mister directory, sorted everything by date, and deleted a few recent controller config files

#

immediately everything worked again

#

shame I didn’t figure that out for 20 minutes and was instead restarting and power cycling the machine with different controllers plugged in, wifi and bluetooth connected etc etc

clear condor
rich violet
#

Saturn Bomberman is 10 player max

noble escarp
#

And it was the only game tested... No idea if the device works with more/all games

inner kayak
#

@ripe valley tried to send you a DM. let me know if you have a ko-fi or similar setup, I'd like to help you land softly if I can ❤️

cunning citrus
#

Even the Genesis core have a few 8 players games, can't even 2 two multitaps at the same time on it.

untold cloud
#

No problem at all. I haven't done a huge amount of testing either. lol

#

Gonna try to fix the right-hand side Offscreen thing now, and Interlaced mode.

undone oyster
#

Good luck Ash

untold cloud
#
// Interlaced mode seems to change how the pixel clock or CE_PIX works?
// This was mapping the Lightgun to only the left half of the screen. EA
//
wire [9:0] hcnt = (INTERLACE) ? hcnt_int[9:1] : hcnt_int;
#

hcnt_int, increments the same way as before.

#

It seems like in Interlaced mode, it changes the pixel clock, or how CE_PIX is driven.

#

A bit strange that it would do something in the horiz direction.

#

Trying to visualize how that works, regarding displaying two separate fields, vs the pixel clock timing.

#

Can only really be that it's incrementing hcnt twice as fast, vs prog-scan?

#

Anyway, we'll see. Just ditching the LSB bit of hcnt_int, in Interlaced mode.

#

hcnt then stays as what it uses for the aiming, and for drawing the crosshairs.

#

This is me, trying to be more succinct, btw. lol

#

The other fix was hopefully just this...

#
offscreen <= !lg_x[8:1] || lg_x >= (screen_width-4) || !lg_y[7:1] || lg_y >= (vtotal-1'd1);
#

It was (screen_width-2) before.

#

This should ensure that the check for offscreen is looking at lg_x = 1 to 348.

#

(since the max X value when using joystick X, will be 349)

#

This will unfortunately have a couple of pixels at the right-hand edge which can't be reached with the LG.

#

But it's the only neat way of doing the mapping atm. I might try using a divider later.

#

351 / 255 = 96

wise brook
#

they would have been lost in the overscan area under any normal circumstances tho i would imagine?

untold cloud
#

Since that's an even integer, there might be a way to do this, and get it closer to the right-hand edge.

#

It's only a few pixels away, though.

#

Probably, on a CRT, at least.

#

I can't imagine many people needing to aim at stuff within the last few pixels on the edge, but who knows. lol

#

One other way, is just to add an offset, so it has a similar number of "unused" pixels at the left and right edges.

rich violet
#

That sounds cleaner?

undone oyster
#

Whichever is easier for you Ash 🙂

untold cloud
#

This is where I struggle with that maths.

#

I realize that doing this mapping, is likely never going to be perfectly "smooth" as the target traverses the screen.

#

Working with integers, and weird scaling.

#

But there might be a neater way. Not sure.

#

It has to map 0-255 to the range of 0-351.

#

Or 0-255 to 0-319, in the lower-res mode.

#

Doesn't work the same for the Mouse, as that uses relative positioning, to it will end up silky smooth.

#

But for joystick X mapping, this is what I have atm...

#
if (HRES[0]) lg_x <= j_x + (j_x >> 2) + (j_x >> 3);    // Map 0-255 to 352-wide res. (actually 0-349)
else lg_x <= j_x + (j_x >> 2);                // Map 0-255 to 320-side res. (actually 0-318)
#

Equivalent of...

#
lg_x = j_x + (j_x / 4) + (j_x / 8);
#

j_x is the incoming 0-255 (max) range.

#

lg_x is ofc the lightgun X range.

#

So, atm, with Joystick X, the max value of lg_x becomes 255 + 63 + 31 = 349.

rich violet
#

And that makes the last 3 pixels on the right unreachable?

untold cloud
#

I guess it's never going to be perfectly linear.

#

Yeah.

#

Could just add an offset of 1, then it would be two pixels on either side.

undone oyster
#

That could work 🙂

untold cloud
#

Yep, then the check of offscreen would be <2 or >349.

rich violet
#

If there's a combination of shifts and adds that gives slightly more than the target, would that work better? (Instead of slightly less)

untold cloud
#

Or maybe < 3 or > 348. Dunno. lol

kindred sundial
#

Whoa I don’t look at this thread for a few days and now lightgun emulation is supported! Thank you sooooo much @untold cloud definitely will be messing with this the next few days

#

I have a guncon2 so can get some crt testing in if it will be helpful at all

rich violet
#

Ooh, @untold cloud how's this:

#

i.e. add another one shifted by 6

#

Program returned: 0
Program stdout
352

#

Scales perfectly to 0-352

#

I suppose that because 352 is more than 255, there are going to be columns of unreachable pixels all across the screen

#

Maybe that's why some kind of smoothing might be good. I think someone mentioned another core has that

untold cloud
#

It only affects Lightguns which use USB, and get mapped as an analog Joystick, or a Mouse.

clear condor
#

I don't think there are any 1-pixel-wide guys in Virtua Cop to worry about

untold cloud
#

In theory, the Lightguns that use SNAC / CRT beam timing, should already be pretty much spot-on.

untold cloud
clear condor
untold cloud
#

@rich violet It would at least let it reach the last few pixels.

#

Although the offscreen thing would need to be quite close to the edge, it should be a bit better.

#

I don't know where on the screen the non-linear "jumps" would occur, but there's no way to avoid that.

clear condor
untold cloud
#

We have hit a bit of a problem atm.

#

This is the latest core.

#

The ONLY things I changed, were the two tiny fixes for the Lightgun thing.

#

This is the singleSDRAM version of the Quartus project.

#

I have no idea where else we could save a bit of logic.

#

ALSA (Linux audio -> FPGA routing) is already disabled.

#

The audio out module (analog and HDMI) is using around 2,000 LEs, though.

#

(out of 110,000)

#

Likely mainly for the filtering stuff, which smooths out crusty audio somewhat.

#

Or, basically for sample-rate conversion to 48K or 96K.

#

Actually, there is one place where quite a bit of logic can be saved...

#

But... when I tested it years ago Sorg rejected the idea.

#

The are TWO instances of the OSD module used on MiSTer.

#

One for VGA/RGB, and one for HDMI.

#

It's totally doable to merge most of the logic, and only use one 4KB buffer for the pixels.

#

(ie. even with different pixel clock rates for RGB vs HDMI.)

#

But, it meant that the OSD for both VGA/RGB, and for HDMI, would always display the same stuff.

#

The only time I can think of where a different message is displayed on each, is the "Linux Framebuffer active - please switch to HDMI, or use vga_scaler=1 in the INI file) thing.

#

I don't really understand why that couldn't be merged.

#

Since, via HDMI, you would be seeing the Linux framebuffer anyway.

#

And via VGA, it would force the OSD output, to display that message.

#

I guess it would also mean that when you bring up the OSD on HDMI, it would display that same message, so there is that.

#

Also totally possible to do a very trimmed down thing, just to display a fixed message via VGA.

#

Like, using the smaller message box that appears at the top-left.

#

The OSD module currently uses around 531 ALMs for HDMI, and 467 ALMs for VGA/RGB.

#

Which is around 1,393 Logic Elements for HDMI, and 1,225 Logic Elements for VGA/RGB.

#

That's 1.26% and 1.11% of the FPGA, respectively.

#

And yep, plus 4KB of on-chip mem, for each OSD.

#

(which is the pixel buffer. Literally just 1BPP buffer of the pixels you see on-screen, for the menu.)

#

OK, not saving a huge amount there, but still. lol

#

The ASCAL scaler uses 2,312 ALMs, so 6,068 LEs.

#

Which is around 5.51% of the FPGA.

#

And ASCAL is amazing, and efficiently-coded. I don't think there's much to be saved there.

#

Scanlines module = 25.3 ALMS, so 66.4 LEs.

#

Shadowmask = 127.3 ALMS, so 334.12 LEs.

#

Video freak (does the Aspect Ratio scaling stuff) = 318.1 ALMS, or 834.9 LEs.

#

Each Lightgun module: 140.6 and 150.9 LEs.

#

No idea why each would be different, tbh. lol

#

Some optimization that Quartus is doing.

#

So that would be around 369 and 396 LEs, respectively.

#

Which is obv more than scanlines, and a bit more than shadowmask, but yeah.

#

STVIO, currently only 28.7 ALMS, or 75.3 LEs.

#

I don't expect STVIO to increase much. And... it can't anyway. lol

#

yc_out (Luma/Chroma, for S-Vid or Composite output) = 246.3 ALMs, so 646.45 LEs.

#

No idea where else in the Saturn core itself that could be trimmed down.

#

That also looks very efficiently-written.

#
`define MISTER_DISABLE_YC 1
#

How Y/C gets applied to the final core output...

#
assign {vga_o, vga_hs, vga_vs, vga_cs, vga_de } = ~yc_en ? {vga_o_t, vga_hs_t, vga_vs_t, vga_cs_t, vga_de_t } :
                                                           {yc_o, yc_hs, yc_vs, yc_cs, yc_de };
#

The ? is like an "IF", and the : is like an "ELSE".

#

IF true, then assign the first thing, else assign this.

#

So when yc_en is NOT true (ie. when it's Low), it applies the VGA/RGB and Sync stuff directly.

#

Else, (yc_en is High), it applies the YC stuff to the output.

#

Alternatively, we accept that we're nearing Peak MiSTer now. lol

#

Or Peak DE10 / DE10 Clone, I should say.

#

MiSTer itself, has nowhere reached the limit yet, for future boards.

#

vga_out module, is for RGB -> Component conversion.

#

Could maybe have had a more descriptive name, tbh. lol

thorn pagoda
#

PSX core simplified the crosshair to save on resorces iirc

#

one style only, on/off

untold cloud
#

I can't imagine that saving much at all?

#

Crosshair is pretty much this...

thorn pagoda
#

yeah idk, someone went to the effort though heh

untold cloud
#
            x  <= lg_x;
            y  <= lg_y;
            xm <= lg_x - cross_sz;
            xp <= lg_x + cross_sz;
            ym <= lg_y - cross_sz;
            yp <= lg_y + cross_sz;

    draw <= (((SIZE[1] || ($signed(hcnt) >= $signed(xm) && hcnt <= xp)) && y == vcnt) || 
             ((SIZE[1] || ($signed(vcnt) >= $signed(ym) && vcnt <= yp)) && x == hcnt));
#

Two subtracts, two adders, four signed compares, a couple of ANDs, and three ORs.

thorn pagoda
#

is it failing to build even without signaltap etc?

untold cloud
#

Some other stuff in the Lightgun module could probably be trimmed.

#

Even without SignalTap.

thorn pagoda
#

dang

untold cloud
#

This is the raw untouched latest core, with only the two tiny changes to the Lightgun module.

#

Trying again atm, with YC disabled.

#

YC seems neat, and it was a ton of work, but I haven't tested it myself yet.

thorn pagoda
#

everyone was super concerned about resources on psx core so the lightgun module for it was made as lightweight as possible, maybe some ideas there if you get stuck

untold cloud
#

tbh, I was always in the camp of building my own RGB SCART cables, since I was about 12. lol

#

As I never liked the dot crawl on typical Composite computers / consoles.

#

S-Video tended to look a LOT sharper, and pretty much eliminated dot crawl on my Ferguson TV in the 90s.

#

It was especially good for N64.

thorn pagoda
#

Y/C enables svideo too

untold cloud
#

Yep.

#

Almost the same, just Composite combines them. 😉

#

Well, I guess the Chroma modulates the Luma with Composite, hence the dot crawl.

#

(if they are not in-sync.)

#

But it can be combined passively, too.

#

I do wonder how many people actually use Component output, too.

#

I would think far more people in the US / Canadialand, than in Europe.

#

Not sure if Component was as popular in Asia and elsewhere, but probably.

thorn pagoda
#

yeah everyone on a crt outside europe is on component

untold cloud
#

I know Australia had SCART, but don't know if it was as widespread as in Europe/UK.

#

Or did Australia have SCART? Possibly not too often. lol

#

I'm sure they used the PAL colour standard, at least.

thorn pagoda
#

australia is pal but uses component its weird lol

untold cloud
#

Yeah.

#

Makes sense, it was mostly a Euro thing.

glass rain
untold cloud
#

And Japan has "SCART", but they decided to make it have a super wrong pinout.

glass rain
#

Component wasn’t super common when mass market dvd players hit the scene so a lot of folks who upgraded TVs around that time went with svid

thorn pagoda
#

i'd probably say drop Gamma before Y/C but its a wider discussion at that point. may be better to make a PR and be like "i need this but it wont fit please help"

untold cloud
glass rain
#

🫤

untold cloud
#

I was told on YT comments once, that I was overreacting, with my warning about doing RGB-mods on CRT TVs.

thorn pagoda
#

sorry yeah i meant until recently added Y/C everyone was using component

untold cloud
#

Most people seem unaware of the very insidious risk of doing the mod on a hot-chassis CRT.

#

'cos, you could even do the mod, and seemingly find no problem after plugging it into a console.

#

When the console doesn't have a direct path back to Mains earth.

thorn pagoda
#

stop reading youtube comments

untold cloud
#

The next day, you could be grabbing the shielding of the RGB cable, and touch a radiator or something, and get a LETHAL shock. 😮

#

It was actually the YT channel owner, who said "That type of CRT TV aren't common any more".

#

... this was on... a RETRO tech channel. sigh

#

You know... people who go out of their way, to find OLD CRT TVs. lol

#

They were using Hot Chassis style TVs in the US well into the 90s.

#

Even after I explained it, some people still didn't get what the danger was, which is even more scary.

#

Basically, on almost all of those TVs, the only thing between you and a severe electric shock, is an isolation block between the TV tuner, and external socket.

thorn pagoda
#

you can't explain things to the kinds of people who write youtube comments

untold cloud
#

And they tend not to have conductive buttons on the front either.

untold cloud
#

At least Joe Reddifer appreciated my post, and actually pinned it.

#

Oh, and the other channel who left a reply (this was a while ago)...

#

While he was doing the RGB mod, and trying to find the correct inputs on the Jungle chip...

#

He was wetting his thumb, and using that to find the pins on the board. 😮 lol

#

I mean, I've done similar stuff in the past, when fixing my own stuff, when I knew which parts of the board were safe (ish) to touch.

#

But then I wasn't the one doing a fecking YT GUIDE on it.

glass rain
#

Works better if you brine your thumb first, I hear

untold cloud
#

Brine, yep. Hotdog water.

#

(Great, now I have Limp Bizkit songs in my head)

#

Saw them live for the first time last year, btw. It was great. lol

#

#offtopic #dontcare

#

Core still complining. 28 minutes in.

#

I want an (affordable) Intel Agilex board.

#

I really want to see how much faster a typical complex core could run on it.

#

Can't even find pricing for the chips atm.

glass rain
#

“Call for pricing” aka You Can’t Afford This Item

untold cloud
#

Core compiled.

#

35 mins, 45 seconds.

#

On a poor lowly stock Ryzen 3700X, with 16GB.

#

98% FPGA used.

#

Only change was, the two minor tweaks to the Lightgun module, and disabling YC output.

#

(plus ALSA, which was disabled before the PR)

#

If somebody could give that a quick test, either with a joystick analog stick, or mapping a USB lightgun to it. 😉

#

I still don't have a proper joypad hooked up atm. I only ever had the Xbox Series controller, but no spare BT dongle atm.

#

Don't think I even have a Dual Shock, but obv that wouldn't work on the Saturn core via SNAC.

#

I have an Adaptoid somewhere, which would allow for N64 joypads via USB.

#

With the mouse, the offscreen thing seems to be fine, tbh.

#

It does go "offscreen" a few pixels before the top, right, bottom, left sides, but that's fine.

#

ie. the Crosshair will disappear, when it goes outside the edges.

#

Erm, where were the Saturn Lightgun games that use Interlaced again?

#

I never played most of these games before, aside from Virtua Cop on PC, and HOTD2 on DC.

#

You know what - I honestly think the offscreen detection is OK as-is now.

#

On the left-hand side, the crosshair goes off (offscreen), one pixel after the left part of the crosshair touches the edge of the image.

#

On the right-hand side, it's just one extra pixel to go.

#

So there would be no point adding the "bias" of 1 pixel.

#

This is via USB mouse, but the offscreen detection should in theory by the same for LG's that map to analog Joystick.

#

I need to find a joypad with analog stick...

autumn crest
untold cloud
#

Unless anyone remembers if main MiSTer can map the Mouse to an analog stick? lol

#

Oh, actually. Maybe it can, in the main menu core.

#

Don't think there is a way to map a Mouse as an analog joystick on MiSTer, at least not easily.

#

And they are two separate things, when it comes to how the core "sees" them.

#

Gonna charge the ol' Xbox Series controller.

#

Bluetooth pairing seemed to work fine.

#

I was expecting some problems, tbh, as it was a bit flaky, the last time I used it.

#

I take it back - not working yet.

#

hmm

#

Light on the Xbox (Series S/X) controller went to solid white, after using the Pairing button on the main menu core.

#

As soon as I loaded the Saturn core, the light started flashing again.

#

Left analog stick, and DPAD works fine in the Input Tester core, and the light is solid-white.

#

It's when I load the Saturn core (from SignalTap) that it has a problem.

#

I'll try loading as an RBF, from the SD card...

#

Mostly working now.

#

For some reason, it didn't latch on to the BT pairing at first.

#

But I did load from RBF this time, instead of from SOF / USB Blaster.

#

The joystick mapping to the Lightgun cursor is... not smooth. lol

#

Fair enough, the offscreen thing is a few pixels away from the right-hand edge.

#

But it's by no means terrible.

#

I don't even think most people would notice.

#

Left-hand side, and Top/Bottom are fine.

#

Since I only have the one joypad connected, I have to map the LG to Pad 1...

#

Can't currently have a Virt Lightgun on Port 2, but using the Joy 1 control.

#

Which could be done, but awkward to implement on the menu.

#

Gonna rename Pad 1 and Pad 2 to Port 1 / Port 2.

#

Same for the SNAC option.

#

'cos it won't just be a "Pad" that can be connected. 😉

#

This close to the left edge, before going “offscreen”…

#

And this close to the right edge…

#

Which I personally think is fine.

#

Can't even reach the very corners of the screen when using the Xbox Series thumbstick anyway. lol

tacit viper
#

Anyone know if the Retroshooter guns work on the Saturn core?

untold cloud
#

Ironically, I don't own any USB light guns atm, aside from the weird bare-PCB thing I got on AliExpress. lol

#

#1046941029296779344 message

#

But you'll probably have to run update_all, to fetch the latest main MiSTer prog, if you haven't run update in a while.

#

wickerwaka added the VID/PID detection, and other stuff, for the retroshooter guns in the main MiSTer app code.

#

There might be another slight issue with Virt Lightguns then atm...

#

If you only have a single USB lightgun hooked up (or actual joypad, or mouse), it would be mapped to Player 1.

#

So you'd have to enable it on Port 1, in the Saturn core.

#

Because there's currently no way to map the "Player 1" (single joypad / single lightgun) controls to a Virt Lightgun on Port 2, if that makes sense.

#

I'm not sure if that's an issue for certain games, or if it's fine to have the Lightgun on Port 1, and a Digital pad (or whatever you want) on Port 2?

#

Thumbstick on the Xbox Series pad sucks for smoothness, btw.

#

It looks like the update rate isn't especially fast, and the thumbstick itself is just not that great.

#

Granted, the controller I'm using was second-hand on eBay. lol

#

It looks very much like it's only updating the aiming on every-other frame?

tacit viper
#

Are you in the USA Ash?

untold cloud
#

I'm in the UK, down in Mordor.

tacit viper
#

I wouldnt mind lending you a set of retroshooters for dev

#

ah ok

#

the mail system in the US is a mess, wouldn't want to try shipping overseas atm

untold cloud
#

I seriously do appreciate the offer, though. 😉

#

ジェイ (Jay?) has also kindly offered to send me a GunCon (2 or 3) soon. 😉

#

I might also have another play with that AliExpress lightgun thing.

#

But it had non-standard HID packets, which I had to write a small Windows prog for, to map it as an analog joystick.

#

Even then, the "center" aim was when the gun was pointed at the USB emitter thing, and I didn't manage to correct that.

#

Maybe I should have tried to get my own version finished. I have the PCBs here, and most of the parts.

#

That would have been a fully-wireless solution for a Lightgun with only one emitter module, that sat above or below the screen.

#

With quite low-latency, as it doesn't rely on a camera module etc.

#

I don't think I'm gonna mess with the offscreen thing. I think it's fine now.

#

It's only two pixels less on the right-hand edge, and the crosshair almost touches the edge before it disappears.

#

Need to test an Interlaced game, before I submit the PR.

#

Oh, if it was only the Title screen on Scud, then that's not too bad...

#

#1046941029296779344 message

#

Gonna test that.

tacit viper
#

Nice, will test out the reapers this weekend with it

#

Ash you have been great to the community, if you have a patreon I wouldn't mind subbing for a month or so or throw a one-time donation. Just let me know.

untold cloud
#

Thanks.

#

But I've never had a Patreon, etc.

#

I don't mind working on some of this stuff occasionally.

#

It's just longer-term, it gets a bit stressful. lol

#

Full disclosure: I made a bit on sales of JAMMIX before, though.

#

At the time, I did most of the design, and most of the parts ordering.

#

Having never dealt with things like Alibaba sellers before, and since it wasn't my investment, it was one of THE most stressful things I'd ever done.

#

It was worth it in the end, and got a lot easier after, but yeah.

tacit viper
#

Well at least youre learning a bunch of cool stuff

#

I wish I had the time to do it

untold cloud
#

@kind bough Title screen on Scud seems OK now, just the thumbstick on the Xbox Series pad for testing.

tacit viper
#

I actually can code but I just don't have any time, barely have time to even play around with the games I got atm.

untold cloud
#

One of the biggest challenges of working on cores, honestly, is the amount of time it takes for Quartus compiles. lol

#

You can test a huge amount of stuff in a sim, but it's never quite the same as testing on hardware.

tacit viper
#

Yeah when I used to play around with compiling and making 3d models I had a dedicated machine

untold cloud
#

As it can have a few quirks, due to marginal timings, or having to use IP blocks on the real FPGA, for things like PLLs, and BRAM blocks.

#

I used to mess with 3DS Max, Lightwave, TrueSpace, and Maya etc., a lot.

#

Never did render anything that looked even close to nice, but it was fun.

#

I haven't touched any of that in probably 15 years, aside from loading up Blender again recently.

#

I even bought an SGI O2 and Octane, around 2007.

tacit viper
#

Nice, Maya here

untold cloud
#

The Octane was VERY heavy. lol

tacit viper
#

started with 3DS Max

untold cloud
#

I loved using Maya.

tacit viper
#

I want to learn Blender but no time 😦

untold cloud
#

3DS Max was quite good, but Maya just felt more "right", once I learned the basic keyb or mouse shortcuts for selecting verts, edges, sides, etc.

#

The Octane only had the simple SI (Solid Impact) gfx card, though, so it kinda sucked.

tacit viper
#

Remember when you had Maya and SoftImage?

untold cloud
#

After thinking about the fact that the PC sat next to it (probably my Q6600 back then) was about 20 times faster, I eventually sold both SGI machines.

#

Yeah.

tacit viper
#

The 3d modeling wars, lol

untold cloud
#

I remember it used to be called Alias PowerAnimator or something, back when they used it for some effects on Independence Day. hehe

tacit viper
#

yup

#

and Jurassic Park

#

really cool stuff

#

Oh man my save for Princess crown is gone on the new version cryclops

untold cloud
#

@kind bough For some reason, Scud doesn't want to enter the game itself.

#

If you hit Start (on the Virt Lightgun / joypad), it will highlight "Next" in white.

#

Then if you hit Start again, it briefly shows the number of Players screen, but returns to the first screen?

#

This could be one of the games that doesn't like the Digital pad on Port 2, when the LG is on Port 1?

#

Title screen looks especially high-res, btw.

#

Not just vertically, but horizontally, which would explain the broken LG mapping before.

#

git push done.

#

But I won't do the PR yet, until more testing is done.

#

The music on Scud is doing my head in. lol

#

Scud seems quite broken?

#

Can't get into the game.

#

Gonna try Virt LG on port 1, and reload the game.

#

Nope.

#

Scud broke (tm)

#

Even with just the Virt LG on Port 1, and Port 2 turned off.

#

Suddenly remembering that Mario 64 is quite a bit harder to play, on anything other than an N64 controller.

#

Even using the Left trigger on the Xbox S/X joypad isn't great for Z.

#

I died TWICE, on the first Bob-omg Dog thing. lol

#

N64 is amazing.

#

I still can't believe it's a thing.

#

And I don't care what anyone says - it feels different to a typical software emulator, even on an LCD.

#

It might be 80% placebo, but oh well. lol

#

I forgot the Rumble works on N64, too. Nice.

quick sorrel
untold cloud
#

It's so weird. lol

#

It's been quite a while since I played N64, and even Diddy Kong Racing is harder on this controller.

#

Just the fact that the Z button on a shoulder trigger takes longer to press down.

#

I could assign it to the L button instead, but yeah.

#

And the joystick deadzone, the difference in the shape of the "gate" around the joystick, all sorts.

tacit viper
#

dude

#

I went down n64 hell last weekend

#

You simply cannot play n64 without an OG controller

untold cloud
#

I was never a joypad aficionado, but it's definitely important, for the best experience.

#

Yeah, I'll have to find that Adaptoid soon, and leave it hooked up.

tacit viper
#

My reflex adapter came in so I can use my OG controller, was so excited. Previously using a Tribute and a Brawler.

untold cloud
#

Oh, it does support SNAC on N64. That's even easier.

#

And it's 3V3, so you don't even need the voltage conversion.

#

Just chopping up an N64 extension lead should be enough, with a 3V3 reg to power it.

#

(Disclaimer: other "official" adapters exist. lol)

quick sorrel
#

Official N64 to USB?

untold cloud
#

Even the way I used to use the C buttons on the N64 pad is very different, ofc.

#

I used to do a muscle-memory thing in some games, where I instinctively had my pointy finger at a weird angle to the button(s).

#

I also used to do the shivver trick, on games like Mario Party.

#

ie. to hit the button very rapidly, I would tense up the muscles in my arm, and trigger button very fast, with minimal travel time.

untold cloud
#

But since the core supports SNAC as well, I'll just make up a cable for it.

quick sorrel
#

Oh that rings a bell.

untold cloud
#

The SNAC/USERIO port no longer has a 3V3 pin, I don't think. So any 3V3 controllers need a voltage reg from 5V.

#

I was probably one of the first people to realize (around 2001), that you can simply solder a wire inside the Rumble Pak, to bypass the need for batteries. lol

quick sorrel
#

I’ve got a few old console to usb adapters that either MiSTer or Windows pick up.

untold cloud
#

I can sort of see why they didn't want to power the Rumble Pak from the N64.

untold cloud
#

Due to worries of back-emf, and the big gulps of current it could take, especially with four going at once.

quick sorrel
#

Ah

#

For single user or player it should be fine tho

#

At that voltage

untold cloud
#

It is always a small worry, without better filtering on the line, that the Back-EMF from the motor windings (and arcing on the brushes) could inject noise back into the main 3V3 rail, and that's what 95% of the N64 runs on.

#

Or even cause enough of a voltage dip (with more Rumble Paks working at the same time) to crash the system.

#

But the 3V3 rail from the PSU had a fair bit of margin, so it always worked fine for us.

#

Even on Goldeneye, with everyone firing at once, with the huge slow-down. lol

#

All I do know is, the N64 joypads are definitely 3V3, so you'd need a voltage reg when hooking up to SNAC.

#

But no real need for voltage translation on the Data line, imo.

#

The MiSTer IO Boards have 100R series resistors between the FPGA pins and SNAC port, which offers quite a bit of protection.

#

(along with the clamp diode on every FPGA IO pin.)

#

I'm sure plenty of people have forgotten to plug in the voltage translation board to SNAC, when using the older style adapters, and a 5V joypad.

#

And although it's not ideal, I don't think I heard anyone frying an FPGA IO pin so far?

#

Hey, you did ask. 😛

inner token
#

I used a voltage reg to drop the 5v down. It kind of depends on your io board if you have 3v3 or not on user port

untold cloud
#

Yeah.

#

A lot of the newer ones, wait.. what? lol

#

Oh yeah, the very old ones did.

#

Man, I totally forgot that was a thing.

#

There's rarely something on MiSTer as confusing as the mapping between the USERIO / SNAC port, the USB 3.0 pin numbers, the FPGA IO pins, and the USERIO[6:0] bus.

#

Even more so, when the main TX and RX pairs are swapped, in a typical USB 3.0 cable.

#

That caused us SO much grief in the past.

inner token
#

yeah old ones had 5v, and 3v3. then 6.1 io board had a jumper for 3v3/io then newer ones that pin is just used for io

#

yeah the male to male cables swap pins around. male to female don't

untold cloud
#

I had to add a cheat sheet to the JAMMIX schematic in the end.

#

And it probably still has some wrong assumptions in the notes, but as long as the pinout was correct in the end.

#

JAMMIX has no voltage translation for the SNAC port, for very good reason...

#

It has the resistors, of course. Same as the standard IO Board.

#

It's meant to replicate the original IO Board closely, for the best compatibility.

#

Just the 100R resistor alone, does a huge amount to protect the FPGA against ESD, and 5V.

inner token
#

really old io boards don't even have the pullups. I have one that doesn't, 5.3 or something

untold cloud
#

eg. Say the max voltage on the FPGA pin is 4 Volts (3V3, plus the VCC clamp diode of about 0.7V).

#

Then it's only a 1V drop, from 5V.

#

Via the 100R resistor, that limits the current to the IO pin, to around 10mA.

#

Or something. lol

untold cloud
#

I think because CMOS etc. tends to float "high" when left floating.

#

Or at least more often than not.

#

And because of the whole open-drain thing.

#

Sorry, I know this is quite off-topic for Saturn again, but it's quiet on here atm.

safe trail
#

I have never seen pull-downs on any CMOS - only pull-ups, but TTL and NMOS (older technologies) are somewhat more likely to use pull-downs

green basin
#

Are cords from lg in mouse mode being translated to the cords the core is using or is it just moving from current position

#

Im asuming a lightgun is providing a location where a standard mouse really wouldn't know where its at?

untold cloud
#

It's a good point. I'm not entirely sure how that whole calibration works.

#

You would think it would move off the end of the scale, when in mouse mode.

#

I guess it doesn't, though. It likely always returns to the same area, as long as the mouse X/Y values don't wrap, etc.

#

Otherwise it wouldn't work at all for Lightguns. It would go out-of-whack as soon as the crosshair left the edges of the screen, or went past the range of the internal Mouse X/Y values.

#

I just tested the core, after adding 1 to the joystick X thing, to try to get the same number of pixels at the Left/Right edges.

But I forgot to tweak the actual offscreen thing, which only ditches the LSB bit (so would only check for <1 not < 2.)

#

I think the offscreen fine as it was earlier, so I'll just leave it like that.

#

It just means it's a couple of pixels from touching the right-hand edge, before it goes "offscreen".

green basin
#

Yea im not entirely sure what a lightgun in mouse mode provides vs on in joypad.... but lightguns seem to always know where the cursor should be

untold cloud
#

(which basically inhibits the Sensor high signal going to VDP2, which emulates how a "real" lightgun would stop detecting light from the CRT.)

#

What I can say is, Mouse mode seems a lot smoother than joystick mode, at least when using the Thumbstick on the Xbox S/X joypad.

green basin
#

I do know in the calibration i get the same numbers for each edge in mouse and joypad modes

untold cloud
#

Which could just be the mapping, but it also feels like it's only polling the joystick postion every-other frame.

(which wouldn't be down to the core itself doing the polling, as such. The core only sees the X/Y values latched into VDP2 H/V counter, based on the timing from the Lightgun module.)

#

Yep, the range of values across the screen is always the horizontal res.

#

But it has to map the incoming 0-255, from either the joystick or mouse, to that res.

#

(and the horiz res can either be 320 or 352 on Saturn.)

#

Or apparently a fair bit higher on games that use interlaced. Seems like they can have twice the horiz res, as well as more lines?

#

Definitely looks like the Xbox pad update rate sucks.

#

As it really can't be the fault of the core itself, otherwise the mouse polling would look jerky, too.

green basin
#

So it needs to convert its n bit x/y down to the resolution?

untold cloud
#

Yep, the values sent from the main MiSTer app on the ARM side, are mostly only 8-bit on the FPGA side.

#

And usually signed numbers...

#
    // analog -127..+127, Y: [15:8], X: [7:0]
    output reg [15:0] joystick_l_analog_0,
    output reg [15:0] joystick_l_analog_1,
green basin
#

Hid descriptors have the ranges listed for each gun type

untold cloud
#
    // paddle 0..255
    output reg  [7:0] paddle_0,
    output reg  [7:0] paddle_1,
#
    // spinner [7:0] -128..+127, [8] - toggle with every update
    output reg  [8:0] spinner_0,
    output reg  [8:0] spinner_1,
#

The main MiSTer app on ARM Linux handles the HID value to core conversion stuff.

green basin
#

Ah

untold cloud
#

It wouldn't be too hard to increase the X/Y resolution on the core.

But then the marjority of cores have quite low video resolution, so it wouldn't help smooth things much.

#

Would have been nice if they were even 9-bit or 10-bit, but it's not super critical, imo.

#

Although it would have made the mapping easier. lol

#

The lightgun module converts the signed values to unsigned, as a first step...

#
wire [8:0] j_x = {~JOY_X[7], JOY_X[6:0]};
wire [8:0] j_y = {~JOY_Y[7], JOY_Y[6:0]};
#

So, just inverts the sign bit.

#

So then the range is 0-255.

#

And it adds an extra MSB bit, so when using signed calcs later on, those incoming values always "appear" as positive.

#

The Mouse mode is a bit different.

#
wire [10:0] new_x = {lg_x[9],lg_x} + {{3{MOUSE[4]}},MOUSE[15:8]};
wire [9:0]  new_y = {lg_y[8],lg_y} - {{2{MOUSE[5]}},MOUSE[23:16]};
#

And it hurts my brain, even glancing at that.

#
    // [24] - toggles with every event
    output reg [24:0] ps2_mouse = 0,
#

ps2_mouse is basically a custom bus, that the main MiSTer app writes to.

#

I guess bits [15:8] for X delta, and bits [23:16] as Y delta.

#

And bit [24] toggles on each update, so whenever you move the mouse.

#

The Lightgun only latches a new value (from new_x and new_y) on each toggle.

#
    old_ms <= MOUSE[24];
    if(MOUSE_XY) begin
        if(old_ms ^ MOUSE[24]) begin
            if(new_x[10]) lg_x <= 0;
            else if(new_x >= screen_width-1) lg_x <= screen_width-1;        // If Mouse X >= screen_width, limit (lg_x) to the screen width.
            else lg_x <= new_x[8:0];

            if(new_y[9]) lg_y <= 0;
            else if(new_y > vtotal) lg_y <= vtotal;
            else lg_y <= new_y[8:0];
        end
    end
green basin
#

So the 32767 range is getting broken down to 8bit value before it gets to the core?

untold cloud
#

Yip, in the main MiSTer code, on the ARM Linux side.

#

But then the mouse movements are relative anyway.

#

So the delta values just denote the speed, vs the last position, sort of.

#

So if you move the mouse VERY fast, the delta values will be larger.

#

So don't really need that many bits for the Mouse.

green basin
#

Thats the thing though... a light gun even in mouse mode should be acting differently than an actual mouse

untold cloud
#

But for joysticks, even if the joystick can do 10-bit XY in the HID descriptor, it gets reduced to 8-bit before sending to the core.

#

Not sure, but maybe a LG in mouse mode wouldn't have delta values larger than 1 ?

#

But would maybe update more often than a typical mouse? EDIT: Nah, probably not.

#

With older USB 1.0 stuff, or USB 2.0 low-speed, the max update rate for USB packets is 1ms (1,000 Hz) anyway.

#

USB 2.0 High-speed is needed, to get 125us (8,000 Hz) updates, IIRC.

#

Put it this way, when testing the LG stuff with an actual USB mouse, it feels silky smooth, and very low-latency.

#

I think it's just the thumbsticks on my Xbox pad that suck. lol

#

Or maybe the cheap BT dongle, or both.

#

I just realized what it is...

#

It is just the mapping thing.

green basin
#

It would be pointless to even designate a lightgun in mouse mode if it acted like a mouse. It should act like a lightgun but communicate the way a mouse does, the nes core might have clues

untold cloud
#

When moving the stick vertically, it's quite smooth.

#

Because the Saturn usually has 256 lines, or less, the Y mapping is direct.

#

(ignorring interlaced for now, as my brain hurts. lol)

#

But for the X direction, our weird mapping does make it a bit jittery.

#

It's not terrible, by any means, just noticeable when the Crosshair is enabled.

untold cloud
pearl harbor
# untold cloud

Just tried this build out and the off-screen reload works on all four sides now perfectly! As far as lightgun aiming goes, I think this is the winner.

untold cloud
#

Oh, I see what you mean - it doesn't work quite like a Mouse, no.

#

ie. it's not like when you move the gun, it nudges the cursor around.

#

Well, it does, but you know what I mean. lol

untold cloud
#

Quartus just randomly crashed again during compilation, which is another thing which makes this stuff hard to work on.

#

And it had no real rhyme-nor-reason for doing so. All I did was remove the +1 that I added to the joystick X stuff earlier.

#

Which is back how it was in the RBF I posted, but Quartus still decided to crash.

#

It could be sometimes due to the fact that I powered MiSTer off then on again, without closing the SignalTap window first.

#

The USB Blaster drivers don't always like that.

#

(I didn't have SignalTap itself enabled in the core, I was just using that window to upload the SOF to the FPGA.)

#

Sorry I'm so overly-wordy, btw. But I think some of the detail might be important.

untold cloud
#

But I think I'll leave it alone now, or I'l end up breaking it again.

pearl harbor
untold cloud
#

Trying it with the conversion by tlsa...

#

#1046941029296779344 message

#

Which may or may not look a bit smoother in the X direction. I'll just have to try it.

#

I tweaked the offscreen stuff to match.

#
if (HRES[0]) lg_x <= j_x + (j_x >> 2) + (j_x >> 3) + (j_x >> 6);    // Map 0-255 to 352-wide res.
else lg_x <= j_x + (j_x >> 2);                                      // Map 0-255 to 320-side res.
#

lg_x (actually 0-352, but close enough)

#

lg_y (actually 0-318, but close enough)

#

And Y shouldn't matter, as long as the incoming Y range can go beyond the max vertical res of the core.

#

This is never going to look silky-smooth in the X direction, is it. lol

#

It will always have to kind of "skip" multiple pixels, every few steps.

#

The only way to get it smoother, is if the incoming joystick values were 9-bits.

kind bough
#

I havnt tried it again with latest core, but setting P2 to a gun also let me load into a game

untold cloud
#

Ahh. OK.

#

I thought I'd tried LG on both ports earlier, but maybe not.

kind bough
#

happy to test whatever tonight after work

untold cloud
#

Thanks.

#

Trying one last compile for tonight, with the slightly wider X range for joystick mode.

#

Then I need to try to sleep (again), as I have an MRI scan tomorrow.

#

Head and neck, just to check things out, after the few times I had leg weakness etc. the past couple of years.

#

I told them I think it has a lot to do with me slouching in bed, watching YouTube for 12 hours a day, or programming. lol

kind bough
#

dang, all the best dude

untold cloud
#

But, at the time, mainly my not-so-good diet, and lack of exercise, causing lack of Folic Acid.

#

At least now if/when the symptoms start, I just start on Folic again for a few weeks. Just not a super high dose. 2-3 mg a day is OK, short-term

#

Not a medical doctor. ^

#

Thanks. I'm kind of intrigued tbh, to see if they find anything at all.

#

And lucky I'm not generally claustrophobic, but I'd never go caving.

#

Spelunking is my idea of a nightmare. lol

kind bough
#

yeah i see those folks who go cave diving, squashing through tiny gaps

#

ill take an MRI over that anyday

green basin
#

The lightgun support looks good in this core on blamcons, they need to be in gamepad mode

quick sorrel
thorn pagoda
#

its the front-left button and push the stick right for a few seconds, middle led should light yellow to indicate joystick mode

glass rain
#

The older retroshooter guns work in mouse+kb mode, I wonder what they changed with the reapers

marble laurel
rich violet
#

Ooh, cool, another Saturnday

undone oyster
#

Yeah getting same issue with SCUD can get off first menu then when trying to pick 1 player it kicks back to first menu using GCon3

rich violet
#

I think it's because the core is so big now and it didn't fit

#

#9 1062.3 Error (170012): Fitter requires 4192 LABs to implement the design, but the device contains only 4191 LABs

mortal mist
#

yeah, fat core 🙂

rich violet
#

Only the dual ram build succeed: #unstable-nightlies message

mortal mist
#

we can handle it

mortal mist
ancient surge
#

Can we remove the debugging tools to save a tiny bit of space?

tall radish
#

what makes the dual ram builds smaller? if anything i expected it to be larger

marble laurel
#

It seems I go further than autobuild for 1SDRAM (still compilation in progress)

Info (11798): Fitter preparation operations ending: elapsed time is 00:06:17
Info (170189): Fitter placement preparation operations beginning
Info (14951): The Fitter is using Advanced Physical Optimization.
Info (170190): Fitter placement preparation operations ending: elapsed time is 00:07:45
Info (170191): Fitter placement operations beginning

thorn pagoda
ancient surge
tall radish
#

ah yes, i forgot

#

damn, if that’s enough to make it not fit on the fpga, then it really is pushing the limits huh

tawny forge
#

Move your assignments, b*atches elmorise

marble laurel
#

the compilation is finished

hardy lodge
#

Seeing as these cores kinda get too fat for the fpga, how close is it to being finished?

thorn pagoda
#

i think we're feature complete now so just bugs left to fix

#

but it is incredibly full at this point, i hope srg320 has some space optimizations in his back pocket

mortal mist
#

there aren't many bugs left

thorn pagoda
#

yeah and not all bug fixes take up more space, sometimes even less

wise brook
#

Sega Saturn being the most silicon of any hardware the MiSTer project recreates is cool

thorn pagoda
#

its quite amazing that the n64 core can actually be smaller

#

n64 core dropped gamma to make space, worst case saturn may have to do the same - it frees up a fair chunk iirc

upper dust
#

Question on multi-disc saves.
Was helping someone with Policenauts to get the "Insert Disc 2" at the end of the first disc to work and noticed that the core makes saves per disc, even when they are contained in a shared parent folder.
Was able to get the save to load, but had to duplicate the disc 1 save and rename it to the disc 2 file value, and it required a reset (or booting straight from disc 2).
Is this intended, or a quirk of Policenauts?

thorn pagoda
#

thats weird, it should make saves per folder

upper dust
#

I thought so too

thorn pagoda
#

the 3 chds are in a parent folder named "Policenauts (JP) (US)" ?

upper dust
thorn pagoda
#

yeah thats a bug

upper dust
#

If I delete the CD2 save, booted into Disc 2, and opened the OSD it would make a new save for CD2

thorn pagoda
#

assuming those saves were made by launching that chd from that folder

upper dust
#

correct - it was generating saves per disc, not per parent folder

#

If I renamed the save to the parent folder, it still generated them per disc

ripe valley
#

It's not a bug, it seeks (Disc 1), (Disc 2)...

#

Not " - CD 1"...

thorn pagoda
#

yeah but thats unlike any other core on mister

glass rain
#

So, eg, (JP) (US) (Disc 1)?

ripe valley
#

Yep.

glass rain
#

Making a mental note of this

ripe valley
#

Should work alright with that naming.

thorn pagoda
#

the norm is save per-folder, i'm not sure why saturns behaving differently

ripe valley
#

It saves per folder.

#

Just name your files with (Disc 1) and such, not anything else.

thorn pagoda
#

i'm just saying that is unusual, no other core has that requirement

upper dust
#

Might need to add that to the github page then

marble laurel
#

for PSX it generates just one memory card file per directory

thorn pagoda
#

like on PSX you get weird cases - RE2 for example has 2 discs but they are named Claire and Leon, still shares saves

tall radish
#

what are some bugs still left to fix in the saturn core? the only ones i know of are the graphical anomalies in the battle garegga options menu, and the missing chunk in the biometal gust title screen

#

was grandia ever fixed?

mortal mist
#

Battle garegga is fixed

#

Grandia works fine on dualsdram

#

it's always nice when EVERYTHING works well, but I accept that , not everything will work 100% by some limitations that de10nano imposes on us. I can live with that 🙂 core is amazing , works very very well

#

We recently added some nice features to core. I think we are nearing the end of this long beautiful adventure

#

PSX core still a few bugs, but that doesn't mean people aren't having fun with it 🙂

#

we will probably get new fpga hardware in the future on which a lot of things can be improved

ripe valley
#

The core is in impressive state now, the final issues are so much important at the moment.
In terms of general compatibility.
On-par with the PSX and N64 cores.

upper dust
#

Got the saves working btw - thanks Zet

coarse tokenBOT
#
if ((p1 = strstr(buf, "disc")) != 0 || (p1 = strstr(buf, "Disc")) != 0 || (p1 = strstr(buf, "DISC")) != 0)
if (!(user_io_status_get("[63]"))) psx_mount_save(last_dir);
ripe valley
#

You're welcome. @upper dust

hard reef
ripe valley
#

The core behaves like that since... 2 years, maybe.

upper dust
#

the save does use the parent folder, but it seeks the for (Disc 2)

hard reef
#

Seems odd for that to be inconsistent

upper dust
#

this loads the save at the end of disc 1, when I load Policenauts (JP) (US) (Disc 2).chd

ripe valley
#

I never paid attention to it, because I usually forget that people don't use Redump style dumps for their games.
So I never saw any possible inconsistency here, srg320 did this logic for a possible reason, but I don't know why.

#

Either way, the core is in good hands.
We have srg320 and we are here to test and evaluate things if necessary.
I'll be gone for at least 2-3 weeks from the next hour, with no obvious internet connection.

Good luck, and don't forget to enjoy your games.

#

Bye bye.

rich violet
#

From a quick look at the code, it looks like "disc", "Disc", or "DISC" is required. The brackets are optional

coarse tokenBOT
#
if ((p1 = strstr(buf, "disc")) != 0 || (p1 = strstr(buf, "Disc")) != 0 || (p1 = strstr(buf, "DISC")) != 0)
hard reef
#

Thanks for all the work @ripe valley

wise brook
#

gonna miss you, look after yourself, be well and enjoy the fruits of your labor

wise brook
#

right, so it i now my moral duty to start testing those 2 games with the loading issues

upbeat drum
#

is there a working st-v rom? my st-v roms are all zip, no .bin file within. i have also the bios files i am not able to start a game. need a littel hint

#

i see error on cartridge...

upbeat drum
#

oh thanks i check this

#

i think it doesnt like my roms. with rename it to .bin it tries to start but with error ...improper...

pearl harbor
tender axle
next bronze
inner kayak
#

I learned it’s a very young Pointer Sisters singing that song. It was fucking wild learning how to count the music, which is incredibly modern and harmonically has bizarre mode changes

#

it’s like Zappa’s Sesame Street

hallow fossil
#

Something that might be useful on the S-TV testing sheet is a column noting if the board had additional hardware on it, I know when I skimmed system16 several listing things like daughter boards with sound chips, i.e. flag the ones that definitely won't run (properly) in the current core

visual grove
#

Really just that Batman sound board and then a bunch of weird crap you’d never play on mister I think

warped saddle
#

batman, a bunch of camera/printer games and one that was like a mallet game or something

hallow fossil
#

One needs a different CD drive/format, right?

warped saddle
#

oh yeah, I think so. I can't remember if that's the only thing different about that game

#

oh right

#

it was sport fishing

#

which apparently uses a custom bios, a cdrom controller board AND an mpeg decoder board

#

also this game lol

visual grove
ancient fractal
coarse tokenBOT
#
//GAME YEAR, NAME,     PARENT,  MACH,     INP,      STATE,       INIT,            MONITOR
naive whale
frail token
#

I just saw the news

#

I can't believe we finally moved the assignment

mortal mist
#

hope everything works ok, let me know 🙂

#
  • composite blend added
wise brook
#

nice, gonna have to try your 5x crop feature too

mortal mist
#

composite on/off

hearty marten
#

That’s so awesome. You can really see it in the windows

#

Surely there must be barely any room left for extra features? 😄

mortal mist
#

I still have some ideas 😄

celest lake
#

wait...wait...wait....are we saying the saturn core is "done"?

#

is srg going to split stv off into its own thing

hearty marten
celest lake
#

Zet is gone for now. In their absence, Kuba is the new SRG whisperer

#

congratulations, Kuba

mortal mist
#

for me it's good fun and I'm glad someone can find it all useful

hearty marten
#

(With all due respect to Kuba)

#

But seriously that composite blend looks chefkiss

warped saddle
#

if srg is serious about ST-V I don't think he'll have a choice but to split the core

eternal mantle
#

Any chance for a Saroo like fast loading option to be implemented on the core?

dense sundial
#

Oh my gosh composite blend is here!

#

Thank you!

wise brook
#

huh, what am i doing wrong that 5x doesn’t just kick in?

hearty marten
#

Turn off integer scaling, perhaps?

mortal mist
#

yes, vscale must be set to 0

wise brook
#

looking in my ini

mortal mist
#

5x Vertical Crop (1080p only)

Note: this feature only works if your output resolution in your MiSTer.ini is set to a 1080p option!!

wise brook
#

i’ve tried a few different ones now

mortal mist
#

fit screen height

wise brook
#

yeah, odd still not doing anything

mortal mist
#

cold boot

hearty marten
#

Also make sure the aspect ratio stuff in the core isn’t set to one of the v integer options either

mortal mist
#

didn't you set something separately for saturn itself ?

wise brook
#

just set it back to full screen, cold rebooted

mortal mist
#

didn't you set something separately for saturn itself ?

#

[saturn]

#

vscale_mode=1

wise brook
hearty marten
#

If in doubt, nuke the ini 😅

wise brook
#

got it

#

vscale_boarder was set to 2

mortal mist
#

; Logic utilization (in ALMs) ; 41,291 / 41,910 ( 99 % )

#

still some place 😄

hearty marten
#

Better save something for bug fixes…

#

Or framework updates

mortal mist
#

I think srg will do a cleanup in the code

wise brook
#

Saturn has answered the age old question of “what would happen if you used 100% of your brain”

mortal mist
#

DS version if anyone needs

#

thanks for testing

#

goodnight 👋

thorn pagoda
#

nice on kuba

pearl harbor
#

Why does everyone here have to be so danged awesome!? Every day there is a fun new core version to test!

acoustic temple
#

Is 3-4 player Multitap supposed on this core?

#

Wanted to play some bomberman fight with friends

wise brook
#

you’d need a snac adapter

#

then you can use a blueretro to pair 6 wireless controllers

#

then one controller in the virtual port 2

#

so 7 for now

acoustic temple
#

What in tarnation

dense sundial
#

I was kinda wondering how blueretro fare

topaz tartan
kind bough
#

Ash's latest test build #1046941029296779344 message fixes USB lightguns with 480i games 🙂
Scud's title and calibration screens working as expected with my GC3

Scud really does seem to only be happy if P2 is set to Virt LGun. Any other setting and the game's main menu just loops back to the beginning

#

I can reload to the right of screen, but I could under Saturn_DualSDRAM_unstable_20250207_11d31c.rbf also

kind bough
#

Aim seems really good on saturn, matches OSD crosshair towards the horizontal edges of the screen
PSX guncon games have the actual shot diverge from the OSD crosshair (in core and duckstation) https://imgur.com/a/a0g3dev

clear condor
#

I believe this is actually detectable on real hardware

proven spade
#

I'm using the GC2 and the actual shots are quite a bit to left of the OSD cursor. I tried calibration but doesn't seem to do anything. (Tested this with policenauts)
I've also tested virtual cop 1 & 2. got the same aim issue but also pulling the trigger only shoots 30% of the time the 70% it just reloads (not sure if its a keybinding issue or a core issue with mapping)
Tested with the Saturn_unstable_SingleSDRAM_LightGun_fix_EA core

kind bough
#

its still off in virtua cop after entering calibration screen, pressing start, and shooting at the centre?

#

mines off to the left by a fair bit but calibration works well, GC3 not a real lightgun here

#

the OSD crosshair tracks accurately?

#

Sounds like the mappings OK if you can start a game and shoot at all (trigger mapped to A, another button on gun mapped to start)
The gun reloading instead of shooting sounds like its not seeing the screen, thinking you're firing off-screen
TV brightness or calibrating in OSD (f10) maybe, not too sure

proven spade
kind bough
#

odd, if OSD tracks OK then it should just be in-game calibration left

#

a mate has my single sdram mister atm so cant test it here

proven spade
#

rip, ill try mess around with cal setting. tested the psx core works perfectly

hollow quiver
#

Has anyone had success with the Princess Crown translation? I did all the things but it won't load on the core. sadge

proven spade
kindred sundial
supple vine
#

Shouldn't it be possible to connect an original Saturn Multitap to SNAC for 4 players via SNAC, then use USB controllers for another 6 for a total of 10 players?

winter phoenix
# supple vine Shouldn't it be possible to connect an original Saturn Multitap to SNAC for 4 pl...

The Saturn “multitap” actually supports six players, not four (it’s officially called the 6Player Multi-player Adaptor) https://segaretro.org/6Player

Sega Retro

The 6Player, called the Multi Terminal 6 (マルチターミナル6) in Japan and 6-Player Adaptor in PAL regions, is an accessory for the Sega Saturn that adds five controller ports to the system, thus allowing more users to play simultaneously in compatible games.

hollow quiver
#

princess crown is now working Evil_Clown

muted cradle
#

Without SNAC only 2 player are possible with the core?

mortal mist
#

Saturn: fix the start of the track in the TOC, recalculate the CD cycle time when file access is delayed

river wing
#

In Daytona USA (using current latest unstable core, for example) there are those "clicks" during loading (between BIOS and first demo, for example), that seem similar to those that could be hear when the core's audio DSP was still being developed.
Do you know if these "clicks" are also there on real hardware?

zealous karma
mortal mist
zealous karma
#

thanks for all your efforts Kuba

mortal mist
#

I have interesting results

#

41,409 / 41,910 ( 99 % ) single build

#

with composite blend 41,292 / 41,910 ( 99 % )

#

I think I will make a PR, perhaps the srg will reject it

ancient surge
sacred goblet
proven spade
mortal mist
#

it's good for transparency effects

thorn pagoda
#

how did you implement it kuba?

#

same as on megadrive?

mortal mist
#

yes, cofi module

thorn pagoda
#

possibly it would be more efficiently implemented somewhere in the scaler

#

but then it wouldn't work for rgb scart out so maybe not\

mortal mist
#

yes

#

best to adopt proven solutions 🙂

#

ok merged 😄

marble laurel
onyx gulch
#

@warped saddle & @mortal mist , I've checked all the ST-V MRAs and I've done a full list of all the missing MRAs according to the latest MAME 0.274 set if it can help:

mortal mist
#

Thanks!

sacred goblet
#

The last unstable bluid need the unstable mister main too ?

wise brook
#

nah, but no reason not too

high bramble
#

Has anyone tried the 'EX' (graphical enhancement) version of the v0.8.5 English patch for Princess Crown on the Saturn core?

ancient fractal
#

My impression was that it horizontally (maybe also vertically) expanded the viewport, which is something that I think never should be done without a huge amount of testing, and possibly hacking bg maps and scenario scripts to make sure you never see something unintended.

#

With Symphony of the Night you get lots of unintended bad side-effects with the similar hack applied

#

But maybe there are other changes in the EX version?

high bramble
#

Apparently there are other 'UI and QoL improvements' in the 'EX' patch, but was more curious to know if anyone had encountered issues with the 'increased viewport' portion of it.

#

Thanks.

wise brook
#

woo! small bug found!

#

after losing in Fighters Megamix

#

the background disappears behind this blue image, but it comes back if you disable VDP2 sprite

#

will check to see if this happens on original hardware

#

because if i see another “bug report” for a non issue i’ll go craycray

wise brook
#

happens again whenever returning to menu, like when finishing practice mode, beating one of the arcade rivals routes

tacit viper
#

checking mine

#

dual ram?

#

Bug confirmed on latest unstable nightly dual ram

wise brook
#

prolly related to the sprite later fixes srg did for Astal

tacit viper
#

Good find

#

Did you check the other VF games?

mortal mist
wise brook
#

not yet, was play Cop 1/2 with my bro-in-law beforehand

#

niece loves it too! at age 4 she scored her first kill… of a civilian

burnt matrix
#

pins also updated

mortal mist
#

20250201 build

tacit viper
#

Yup, using latest too

wise brook
#

so from my testing, turning off vdp2 sprite puts the menu back as the “top layer”

but when you get into a game you get no characters/stage elements until that layer is turned back on

#

so it’s likely just a layering priority issue

#

maybe some mode where it should turn itself off isn’t kicking in

mortal mist
#

I'm trying to find a build from when it started, I'll try to find the cause

ancient surge
#

Does this also affect Fighting Vipers?

wise brook
#

can’t fire up any other fighters rn, will check them all, especially anything by or running on AM2 tech

mortal mist
#

the error first appeared in core 20250126

wise brook
#

so likely the graduation function?

mortal mist
#

yeah

ancient surge
#

I figured if it affects Fighters MegaMix, then it should also affect Fighting Vipers too. They share a lot of the same code, so typically one problem also effects the other.

mortal mist
#

to rule it out

#

but I'm betting on the gradient

#

I have to wait for the end of compilation

tacit viper
#

ill check a few

#

do you always have to load the bios file on the core before lolading a game?

#

mine never seems to remember it

mortal mist
#

rename it to boot.rom

tacit viper
#

ah derp

tacit viper
#

VF2 is good

#

checking FV

#

FV broken!

#

Go into training, exit training same thing as mega mix

burnt matrix
#

Stop breaking games, tryna enjoy a core over here

trim nimbus
#

Didn’t you promise the person who found the most bugs a qa version of doom dark ages?

supple vine
#

I played Virtua Cop on the core with a mouse yesterday. Also kinda... fun 🙂

tacit viper
#

Primal rage also doing something weird. Go into training, play a match and leave it adds a bunch of garbage to screen. I'll go see if official Saturn does that but I don't remember it doing it.

mortal mist
#

it's overscan area , but who knows

#

on a crt not to be seen

tacit viper
#

ah that is prob it, good catch

mortal mist
#

That's why I wanted to do horizontal crop

burnt matrix
#

I just played Sega Rally yesterday with @mortal mist ‘s composite patch and it was perfection. chefkiss

mortal mist
#

composite blending even on crt with rgb looks nice

#

for a long time I had hoped that there would be a place in the fpga for the implementation of this

mortal mist
warped saddle
# onyx gulch

I generated off the mame software list, since that's the only place there's a queryable attribute that indicates hwo the roms are loaded. looking at that list almost all of them won't work due to requiring extra hardware

mortal mist
#

great to hear 🙂

wise brook
polar mountain
#

Whenever I see Elevator Action Returns my brain floods with endorphins.

pallid pier
copper furnace
#

Here the soundtracks have "moved forward" a bit

wise brook
wise brook
#

Here’s me about to start testing time gal only to find it was indeed main fix and SRG has already found it

mortal mist
wise brook
mortal mist
#

If you don't have time, I can do it

#

ok it's time for a beer and a movie , have a great evening everyone!

burnt matrix
#

Ok I figured it out: Sega Saturn is awesome because the fans are awesome. It’s cool fans that got me into the system and it’s cool fans that keep me enthralled by it. What an awesome console!

celest lake
#

happy to have you back, buddy

mortal mist
#

Thank You❤️

wise brook
#

@pallid pier @tacit viper it’s logged now, thanks for looking at the games

copper furnace
#

Also, in the game Die Hard Arcade, during the demo, in the scene where the main antagonist talks on the radio/phone, you can notice "black pixels"

mortal mist
#

It's not a bug

river wing
#

@mortal mist Can you try Daytona USA on original hardware and tell me if it has audio "pops" during loading? Between the BIOS and the first demo, most noticeably

mortal mist
#

Yes , i hear" blup"

#

In core

#

Need to check on saturn