Jump to content
IGNORED

Altirra 2.80 released


phaeron

Recommended Posts

There is a bug in Altirra with ANTIC palette emulation. Real hardware is ignoring the least significant bit when interpreting color indices in color map (leads to 128 palette entries being used effectively), whereas the emulation software takes it into account (complete set of 256 entries is used). Notice the top panel colors.

 

Altirra:

 

 

 

Real HW:

 

 

 

Huh?

 

Altirra does mask off the LSB in the color registers, and in any case that's the LSB0 of luminance, which wouldn't cause a difference between brown and white...?

Link to comment
Share on other sites

 

Huh?

 

Altirra does mask off the LSB in the color registers, and in any case that's the LSB0 of luminance, which wouldn't cause a difference between brown and white...?

 

If I set VBXE color palette (#1) like this:

 

#0 black

#1 yellow

#2 white

#3 brown

#4 green

 

and reference its entries through color map like this (#1,#2,#3,#4) for PF1, Altirra will show these color accordingly (yellow, white, brown, green), whereas it should not, according to your statement. It should show black (masked off from #1), white, white (masked off from #3), green. Real HW is indeed doing the masking. Altirra does not. Everythings gets corrected when I set up an extended palette and index colors with even numbers: #2, #4, #6, # 8.

 

#0 black

#1 black (not used, due to masking off)

#2 yelow

#3 yellow (not used)

#4 white

#5 white (not used)

#6 brown

#7 brown (not used)

#8 green

#9 green (not used)

Edited by Marek Konopka
Link to comment
Share on other sites

 

Really? I thought it was more than obvious.

 

Why it would be obvious he was talking about VBXE at all? He said specifically it was a bug in the ANTIC emulation. And even if the OP (or you) initially thought it was obvious, it should have been very clear after Phaeron's reply that it is really not so.

Link to comment
Share on other sites

Why it would be obvious he was talking about VBXE at all? He said specifically it was a bug in the ANTIC emulation. And even if the OP (or you) initially thought it was obvious, it should have been very clear after Phaeron's reply that it is really not so.

 

It was obvious because of the screenshots from a game that's been talked about on these forums for years now. Does that look like something from a stock machine?

 

And I'll guarantee I'm not alone in knowing it was VBXE.

Link to comment
Share on other sites

 

It was obvious because of the screenshots from a game that's been talked about on these forums for years now. Does that look like something from a stock machine?

And I'll guarantee I'm not alone in knowing it was VBXE.

 

I have no idea about that game. And I can guarantee I'm not the only one. Just look at the replies to the OP.

 

Link to comment
Share on other sites

I have no idea about that game.

 

I can see that, but surely the 8-color background over the majority of the screen should at least raise an eyebrow.

 

 

And I can guarantee I'm not the only one. Just look at the replies to the OP.

 

I never said or implied that you're the only one.

 

You said, "I think none of us understood you were talking about something related to VBXE."

 

Your assumption is false.

Edited by MrFish
Link to comment
Share on other sites

 

You said, "I think none of us understood you were talking about something related to VBXE."

Your assumption is false.

 

Man, you like to beat things to death. I stand corrected. I should have used a different term. So? It doesn't change the main point that the OP should elaborate and describe exactly the situation.

 

I'm sure the OP didn't mean bad. But reporting bugs without providing all the details is somewhat selfish towards the developer. It is in a way, asking the developer to make the work that you should do. Again, I'm not saying the OP did that intentionally.

 

Edit: Sorry, I posted together with last Marek's post.

Edited by ijor
Link to comment
Share on other sites

Man, you like to beat things to death. I stand corrected. I should have used a different term. So? It doesn't change the main point that the OP should elaborate and describe exactly the situation.

 

"Beat things to death", because I justify my statements to your replies? This is a selfish attitude when you've made just as many posts in justifying your own position.

 

 

I'm sure the OP didn't mean bad. But reporting bugs without providing all the details is somewhat selfish towards the developer. It is in a way, asking the developer to make the work that you should do. Again, I'm not saying the OP did that intentionally.

 

I think this was answered in Marek's last post.

 

I agree about bug reporting. I'm just saying his initial post wasn't so unclear as you seemed to make it.

Link to comment
Share on other sites

I think he's referring to VBXE colour maps when being used as cell-based override for PF colours.

Normally PFx registers will only index to even palette entries if the xcolor control bit isn't set, this allows 128 colours.

 

So possibly this setting is incorrectly restricting colour maps by masking off the lsb of the index supplied by it?

Link to comment
Share on other sites

I think he's referring to VBXE colour maps when being used as cell-based override for PF colours.

Normally PFx registers will only index to even palette entries if the xcolor control bit isn't set, this allows 128 colours.

 

So possibly this setting is incorrectly restricting colour maps by masking off the lsb of the index supplied by it?

 

Can not say VBXE is doing something wrong. It simply masks off the LSB bit. Altirra is not following it.

 

Part of XDL List:

 

dta b(vbxe.EXdlc.RPTL + vbxe.EXdlc.MAP_ON, vbxe.EXdlc.MAPADR + vbxe.EXdlc.MAPPAR + vbxe.EXdlc.ATT) // enable properties
dta b(CHAR_HEIGHT - 1) // number of repetitions
dta t(VbxePanelColorMapAdr) // attribute map address
dta a(0) // attribute map step
dta b(0, 0, PANEL_VBXE_COLOR_MAP_ENTRY_WIDTH - 1, PANEL_VBXE_COLOR_MAP_ENTRY_HEIGHT - 1) // hscroll, vscroll, cm width, cp height
dta b(vbxe.EXdl.OV_WIDTH_NARROW, 0) // narrow ov/am, main priority = 0
StatisticsPanelVbxeColorMap:
StatisticsPanelVbxeColorMapBegin:
.rept 2
dta b(0, 2, 0, %01000000) // even entries are fine
.endr
.rept 2
dta b(0, 4, 0, %01000000) // even entries are fine
.endr
.rept 2
dta b(0, 6, 0, %01000000) // even entries are fine
.endr
.rept 2
dta b(0, 8, 0, %01000000) // even entries are fine
.endr
StatisticsPanelVbxeColorMapEnd:

 

If I use indices from 0..4 Real HW will mask-off the LSB and show wrong colors. Had to use even entries (0, 2, 4, 6, 8 )

 

I haven't touched the xcolor bit in VIDEO_CONTROL register. Wasn't aware of its existence. Thanks for the tip - I will use this one.

Anyway, it's worth fixing the issue on the emulation side.

Edited by Marek Konopka
  • Like 1
Link to comment
Share on other sites

 

Might as well be with the limited number of uses of it, at least this RickD game seems to use it.....Such a shame as its a lovely piece of hardware...

 

Agreed. If I still had real hardware I would consider it a mandatory purchase. As it is, I use it in Altirra and love it.

Link to comment
Share on other sites

Update:

http://www.virtualdub.org/beta/Altirra-2.90-test30.zip

http://www.virtualdub.org/beta/Altirra-2.90-test30-src.zip

 

Adds emulation support for the Percom RFD-40S1 drive, of the series that introduced the famous Percom configuration block. This is a 6809-based drive, so it was a bit interesting getting a new 6809 core up and running. The 6809 has a clean and powerful instruction set, but many instructions take a few too many clocks than they should... the most egregious being TFR A,B taking 6 cycles. The Percom firmware is written straightforwardly, though I suspect they could have saved quite a few clock cycles and bytes -- everything from unnecessarily long branches, LBSR+RTS pairs, PC-relative everywhere, etc. Some odds and ends about this drive:

  • Like the ATR8000, the hardware appears to support for 2MHz FDC clock for 8" drives, but the firmware doesn't use it.
  • Also like the ATR8000, the RFD-40S1 takes too long to initialize if turned on at the same time as the computer due to recalibrating four drives. Soft-reset the computer in order to work around this.
  • Unlike the ATR8000, the RFD-40S1 can have its drive IDs changed, and it can go as high as D8: with the internal jumper.
  • The drive does support automatic density switching, but only for sector 1 on D1:. First drive won't even work if it's above D1:, it literally has to be drive ID $31. Not sure why it wasn't allowed on any other drive IDs....
  • This is the only drive I've seen that physically can't do high-speed operation even with custom firmware. It uses a UART instead of bit-banged SIO and the clock is hardwired to 19,200 baud. The drive firmware doesn't use interrupts for anything other than FDC interrupt and timeout and polls for SIO anyway, so I'm not sure why they didn't just bit-bang like everyone else and save a chip.
  • The NMI has an unusual one-shot on it for read/write timeout instead of a fake-index-pulse based timeout that the RIOT-based drives use. I couldn't determine the time constant for this one-shot circuit, so I guessed.
  • The jsobola schematic has several apparent errors in it: IRQ wired to UART chip select, UART clock lines tied together, FDC clock control lines seem crossed....

 

Other changes:

  • Fixed disk rotational position not being reset properly on a cold reset, causing the disk position to be randomized. It is now deterministic.
  • Fixed the heat-map based uninitialized effective address trap being active whenever the heat map was enabled, even if the EA trap was disabled.
  • Added .logopen and .logclose commands to the debugger.
  • Fixed crash when examining memory in the debugger in 800 mode with separate I/O bus mode enabled.
  • Fixed xcolor bit in VBXE not affecting colors in the attribute map.
  • Added option for keys double-mapped between the keyboard and input maps to be received by both, instead of only by the input map.

 

I meant ANTIC palette emulation with regards to VBXE color map. Should have stated that explicitly, Though mentioned implicitly by saying "color map".

 

Sorry, yeah, this wasn't clear to me either -- please note if you're talking about VBXE specific issues. Also, ANTIC isn't involved with palettes -- that's GTIA/VBXE's job -- and color map is typically synonymous with palette. The map you're talking about in VBXE is typically called the attribute map. I did find and fix a bug where the VBXE emulation was not masking off the LSB in the attribute map colors if xcolor=0.

 

  • Like 8
Link to comment
Share on other sites

Can I request you bolt the kitchen sink on to Altirra, it seems to do every thing else :)

 

Thanks Avery, the force is strong in you...

 

Actually there's one totally ear candy thing, all these wonderful drives, could at some point if people provide decent samples get their own individual mech sounds ?

 

That is IF they sound any different, I personally only had Atari modified drives so apart from the step being faster they sounded all the same?

 

And IF they do have sounds would the inclusion of the sounds make the exe bigger than you want?

 

Again, this is all pure 'what if' and not an actual request, emulation / compatibility completeness always trump trivial stuff and of course whatever spare time you have trumps all this.

 

Oh and here's a link kindly found by Timothy Kline to what seems the eprom needed for the Percom emulation, to save you looking.

 

http://blog.3b2.sk/igi/post/ATARI-floppy-disk-drive-PERCOM-RFD-40S1.aspx

Edited by Mclaneinc
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

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