VOGONS


Speedy3D support in DOSBox

Topic actions

Reply 40 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

Rendition boards appear to generate an interrupt on IRQ 0x0A, (V2000) or 0x0B (V1000) (at least the ones I've seen) which are listed as:

INT 0A - IRQ2 - EGA VERTICAL RETRACE ................................ ................................ ................................ ................................ ......................... 14
INT 0A - internal - INVALID TASK STATE SEGMENT (80286 protected-mode) ....

OR

INT 0B - IRQ3 - COM2 INTERRUPT ................................ ................................ ................................ ................................ ................................ ........14
INT 0B - internal - NOT PRESENT (80286 protected-mode) ..

I'm guessing it's the former (out of the first two or the second two). But how do you tell them apart, an x86 one from a 286 one?

I'm guessing these are the ports because PCI hardware register 0x3C (lowest 8 bits listed as Interrupt in the V2200 spec sheet).

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 41 of 76, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

It's hard to know exactly what you refer to: IRQ or INT. FYI, IRQ numbers are generally noted in decimal, INT numbers in hex.

EGA cards (and apparently a very few VGA cards) generate IRQ 9 on vertical retrace, which is INT 0x71, and the BIOS handler for that interrupt calls INT 0x0A (cascade from IRQ 9 to IRQ 2 handler).

Reply 42 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

Rendition boards appear to use irq 10 or 11.

They can be configured to generate an interrupt on fifo/dma transfers completing. That's what I would like to implement.

Thanks. I'll generate an interrupt. I guess the sound blaster code should have an example. I don't know whether verite boards returned proprietary parameters. I can find out I guess.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 43 of 76, by robertmo3

User metadata
Rank Member
Rank
Member

Rendition boards should be able to use any irq that the bios or os assignes to them: that can be also forced in bios or os. It should be any assignable irq: 3,4,5,7,9,10,11,12,14,15. Maybe even irq6 on later boards without floppy controller.

Reply 44 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

Ok, makes sense.

I don't know how Dosbox would set about assigning them. I guess they're manually assigned.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 45 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

[EDIT] Ignore this. I had core auto set.[/EDIT]
Another execution trace question:

00068C4A  mov  eax,[0018B42C]             [illegal]              EAX:00330001 EBX:000C0A6F ECX:00000001 EDX:00000001 ESI:00005A43 EDI:001CB424 EBP:001CB42D ESP:001CB2C4 DS:00AF 
00069B32 add esp,0018 EAX:FFFFFFFF EBX:000C0A6F ECX:00000001 EDX:00000001 ESI:00005A43 EDI:001CB410 EBP:00000007 ESP:001CB37C DS:00AF
00069B32 add esp,0018 EAX:FFFFFFFF EBX:000C0A6F ECX:00000001 EDX:00000001 ESI:00005A43 EDI:001CB410 EBP:00000007 ESP:001CB37C DS:00AF
00069C44 mov eax,[0018B42C] ds:[0018B42C]=0000000C EAX:FFFFFFFF EBX:000C0A6F ECX:00000001 EDX:00000001 ESI:00005A43 EDI:001CB410 EBP:00000007 ESP:001CB394 DS:00AF
0006990B mov [0018B42C],eax ds:[0018B42C]=0000000C EAX:00000C1E EBX:000C0A6F ECX:00000001 EDX:00000001 ESI:00005A43 EDI:001CB410 EBP:00000007 ESP:001CB394 DS:00AF

This address [0018B42C] . The contents of it go from being undefined to 0x0000000C.

Is that a default initialisation value for unused memory?

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 46 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

Isn't 000DEC10 an EMS386 address?

test byte [000DEC10],01         ds:[000DEC10]=B3A43003

vQuake expects this to be 0.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 47 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

1) Is there any way to access a flat 32 bit linear address?

An emulated hardware register has an address value used for DMA transfers, but I'm not entirely sure how to use the value.

I would guess it's a flat 32 bit address and nothing to do with the CPU memory manager/paging.

2) I guess going through all available pages and computing a flat address for each and checking to see if it's in range would work.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 48 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

Dosbox has gone weird. I get a prompt "Dosbox SVN Shell" and the conf file is ignored, despite what the debug window says. The mount command produces errors:

mount d c:\dos

It produces syntax errors. The folder c:\dos does exist. It just appears to be unable to see it.

The Z directory doesn't appear to contain command.com

[EDIT] Nm. I enabled a bounds check on MemWriteBlock which messed things up.

Attachments

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 49 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

Another question:

Is there any way to detect if the app is running in 32 bit protected mode? I think some of the mem transfer addresses work as PhysPts for some apps but not for others. vQuake for instance has addresses like this 0xf0001323 and crashes dosbox no matter how I try to accesss memory. Others like ICR2 use stuff in the 1 MB segment and appears to work treating the pointers as PhysPts, unless I'm missing something.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 52 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

I've created a project on sourceforge: dosbox-rendition,. I haven't committed anything other than the initial bit.Does it need to be directly forked off the dosbox project? If I could I would actually prefer to fork it directly?

I have the ICR2 intro up and running without keyboard+mouse input.: https://youtu.be/3o5LeUp8F8Q. None of other games work at the mo.

Do you have any pointers as to how interactivity can be added? I don't seem to be able to find the glidos dosbox source.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 53 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

Dosbox-Rendition is open source. It's based on dosbox.

RReady the wrapper is closed source.

Glidos directly integrates glide overlay files from 3dfx (made open source by 3dfx in 2001) and functions as a single unit. Glidos doesn't need extra code to inject keyboard/mouse input into because it's running in the same window.

Rready and it's launcher RLauncher are closed source. Rlauncher handles the remote windowing for dosbox-rendition. dosbox-rendition sends Verite FIFO commands and mem writes and requests mem reads from RLauncher via a named pipe (like a socket). Keyboard+Mouse input goes to RLauncher. I need a method of pumping KBM input from the RLauncher window into Dosbox-Rendition.

GPL2 requires all software that directly interfaces with such software, even using global shared memory (described as 'shared address space') , or as a dll/libray to be open source as well. I can't violate the license. GPL2 software can't be directly enmeshed in any form with closed source stuff.

Glidos including the voodoo emulator are fully open source. So it has the luxury of using the same window and not having to implement any additional keyboard logic. Since the window is the same it's all automatically handled.

Last edited by DosFreak on 2024-04-03, 17:12. Edited 1 time in total.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 54 of 76, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

make dosbox-rendition is just only wants verite.dll and rredline.dll , no problem here, its can be what ever license it was, you can run it with original rendition card or with other open source wrapper, or you can use non-free closed source wrapper.

EDIT: i am weak of understanding licenses, but i see to many projects as Robertmo3 described

Last edited by RaVeN-05 on 2024-04-03, 12:19. Edited 1 time in total.

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 55 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

That's different. The games are being run within dosbox as input data. The game is like a file being opened by an open source text editor. The file doesn't have to be open source.

Redline.dll and verite.dll would actually become part of dosbox and it wouldn't function without them. They would become part of it.

The two dlls were part of the operating system and I could probably get away with it. But should the fsf sue me, they could argue they haven't been part of an os since win98 and possibly winme.

You're right in that system dlls are exempt.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 56 of 76, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie

Please don't take advice from robertmo.

If you're making changes to DOSBox to make it rely directly on a closed source product (whether it runs as part of the same process or not), you won't legally be able to distribute that build of DOSBox to anyone else, neither as source code nor compiled. Unless you are also willing to supply the source code for the closed source component on demand.

You can do whatever you want with it privately - that's why companies are free to use/modify GPL software as long as it doesn't involve distribution to others.

Reply 57 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

You can as long as the closed source component isn't part of "shared process space."

They can talk via a service like a socket. For instance an open source browser can use ms exchange through the browser.

There's just bunch of 'relatively' loosely coupled components. dosbox-Rendition is like that. You can in fact, at least theoretically play the game over a network. I've currently hardcoded the machine name to be. (local machine).

If dosbox-rendition is distributed with rready it has to be shipped with the gpl 2.0 license. In any case I don't have to distribute dosbox with it. Rready doesn't ship with any 3rd party software not even open source. The freeware release can download them from public servers and the paid version comes with public download links.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda

Reply 58 of 76, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
sharangad wrote on 2024-04-03, 15:37:

You can as long as the closed source component isn't part of "shared process space."

No, you can't. Not if the closed source component is essential to the operation, i.e. the main "product" will not function without it.

They can talk via a service like a socket. For instance an open source browser can use ms exchange through the browser.

That is a case of an "interface". The browser has no knowledge of what it is talking to, any more than when it fetches a webpage. It doesn't depend on being specifically able to talk to Exchange.

There's just bunch of 'relatively' loosely coupled components. dosbox-Rendition is like that. You can in fact, at least theoretically play the game over a network. I've actually hardcoded the machine name to be. (local machine).

If you start up dosbox-Rendition and it refuses to function because certain parts of a closed source product aren't found, that's a problem. You've made DOSBox dependant on them so they are considered part of it. Passing the buck by saying "download them from XYZ" doesn't resolve you from responsibility.

It seems very clear that you want to bundle this modified DOSBox into the product you're already selling, that simply isn't going to fly if you're not going to make the source code available.

Last edited by jmarsh on 2024-04-03, 15:55. Edited 1 time in total.

Reply 59 of 76, by sharangad

User metadata
Rank Oldbie
Rank
Oldbie

Dosbox rendition will function without RReady as dosbox. It just can't run rendition games. You can pretty much play or run anything else.

When running Rendition games, dosbox streams the raw data meant for a Verité board over the pipe and accepts keyboard +mouse from the other end. In all other respects it functions as a regular dosbox.

Last edited by sharangad on 2024-04-03, 16:14. Edited 1 time in total.

Developer of RReady - Rendition Verité Wrapper.
https://www.youtube.com/@sharangadayananda