VOGONS


Reply 21 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

I released the seventh version of pcbi.

- Trigger pcem mouse grab from within pcbi by double clicking the monitor screen. Good for immersion. Specific to linux.
- Environment backdrop. Select an image to be shown on a plane behind the computer for extra immersion. The illusion is fragile in this simplistic implementation but the potential is clear.
- Higher quality crt screen. Includes a subtle black border. Sloppily uses many triangles but runs ok anyway on my mid end machine.
- Drive indicator lights work again.

huane.png
Playing quake in someone's bedroom.

Reply 22 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

I released an update to the seventh version of pcbi.

- Windows port.
- Fixed incorrect direction of comparison in an assert that would trip on 32-bit platforms.
- Some ui tweaks.

wine.png
Pcbi in wine.

Last edited by vvbee on 2018-03-05, 06:44. Edited 1 time in total.

Reply 23 of 43, by leileilol

User metadata
Rank l33t++
Rank
l33t++

It works!

I get a lot of "possible infinite loop" when playing something using VGA 640x480

also a little annoying i can only control the emulator with the headless window hovering above a corner.

noticed the awe32 on the bottom-most ISA slot clips through the monitor

Saving the config file and reloading it seems to mangle the paths for the drive images

(kinda wish the voodoo screen filter were allowed)

apsosig.png
long live PCem

Reply 24 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Cool.

The infinite loop message probably comes from k_monitor.cpp on line 290 if it fires more than once per couple of seconds. The loop asks for a microsecond pause as a leftover from using usleep() and on my system it doesn't return very quickly. Just increase the loop count or timer there if it gets annoying. I'll look to do a better implementation for the next version.

The sound card clipping into the monitor I've ignored since it only affects the awe. The awe is an outlier in size so I suspect it needs a better solution than just moving the motherboard further away from the monitor.

Ideally the pcem window wouldn't be needed visible for mouse grab but I don't know if it's possible. There may be a special type of window in sdl that can be tucked away while still receiving focus.

I've noted some general issues with drive paths in saving. At the moment the save code is a hack that just gets by. I want to write it proper at some point but first I'm passively waiting to come up with a good way to assign components unique ids without having to do it manually.

Specific toggles for components like the screen filter options and sound card ports are mainly a matter of integrating them into the ui without cluttering it. It's very possible, probably through a right-click menu over the component. This needs a rewrite of the save code too. At the moment the options can be manually changed in k_hardware_list.cpp, you'll recognize the pcem string for it there.

Reply 25 of 43, by leileilol

User metadata
Rank l33t++
Rank
l33t++

The Voodoo doesn't really have a hardware-based filter toggle and environment variables (i.e. SET_24BPP etc) can turn it off, so i'd default the filter to on. It's only really off because it used to be much slower and my v12 filter commit sped it up quite a bunch. Right now my workaround is to pop open the headerless PCem's machine window and check it back on and reset.

A way to shove ram into the AWE32 dynamically could be cool though, and maybe 3d speakers taking in the sound from the emulator in a similar case with the video while having support for tone/bass/etc knobs on some of them and maybe physics-based emulation so you can potentially snap the pins on the cpu and lose the ability to use that cpu forever and a simulated auction minigame where you have to use virtual emulated currency to snipe ridiculously high auctions

apsosig.png
long live PCem

Reply 26 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

The code from the linux tarball will build in windows so the options for now can be set more permanently that way.

The connector code is generic so ram will go into the awe32 so long as you've defined its connector and made appropriate 3d models for it. Problem (or hinderance) is there's no documentation on how to do that at the moment. You might also convert the component structure in k_computer.cpp from a list into a tree for it to handle components on components on components.

I looked into getting the pcem window out of sight while having mouse grab but no full solution came out. On linux you can move the pcem window behind the pcbi window, set the pcbi window to be always on top and engage pcem's mouse lock by double clicking the monitor in pcbi. The pcem window will stay hidden and the mouse and keyboard get passed to it, but the mouse buttons don't. Either something is still trapping them or pcem intercepts them in some way that's incompatible with this setup.

The pcem window isn't much an issue in linux anyway since it's quite small. In windows the pcem menu bar would get in the way of the cursor and prevent mouse lock so the window had to be made larger. Hiding the menu bar there would be a start but I couldn't immediately find a way for it.

Reply 28 of 43, by SquallStrife

User metadata
Rank l33t
Rank
l33t

In the meantime, this has come along, and has VR support:

http://www.emuvr.net/

Not as detailed as PCbi, but uses the RetroArch backend, which has a DOSBox core.

VogonsDrivers.com | Link | News Thread

Reply 29 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

In the meantime? I've been using pcbi as is.

The emuvr site's design is pretty hard on the eyes, but according to their patreon, they're making money off it, so that's good. I think their aim is a bit different from pcbi's, though.

Reply 30 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

There's been growing interest in this program lately, so it's time for a new version.

PCbi 0.13.0 brings in some tweaks here and there; most notably components (like video cards, CPUs, etc.) are now provided in a simple ASCII format, so you can create and add new ones more easily. Instructions and tools for modding will be provided a bit later. You can share new components with other people via pull requests toward https://github.com/leikareipa/pcbi-content/tr … ster/components.

A PCbi 0.13.0 binary for Windows is available at https://github.com/leikareipa/pcbi-content/releases/. A Linux version will be available in that repo, later, as will a PCbi user's guide.

Version 0.13.0 of PCbi uses PCem 13.1 - support for newer versions of PCem may be added later, e.g. PCbi 0.16.0 will be for PCem 16.

As the major version number 0 suggests, this release is pre-1.0 and so is expected to contain inconsistencies and bugs that you should report either here or on GitHub.

Save files made with previous versions of PCbi are no longer compatible with this and newer versions of the program.

A video demonstrating PCbi 0.13.0 under Linux is at https://www.youtube.com/watch?v=4Xh8L9PbXeM.

linux-1.png

Reply 31 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Version 0.14.0 updates PCem support to v14 and fixes a few bugs from 0.13.0:
- Adopts PCem 14
- Fixes drive image filename not getting reset when the drive is removed
- Fixes activating PCem mouse grab via double-clicking on PCbi monitor
- Uses * instead of *.* for "All files" in file selection dialogs, so files without a suffix can be selected

Currently, the Linux (Ubuntu 18.04) binaries for 0.14.0 are available at https://github.com/leikareipa/pcbi-content/releases.

The Linux version of PCbi has the following benefits over Windows:
- Activate PCem's mouse grab by double-clicking on PCbi's monitor screen (requires xdotool to be installed)
- Share folders to PCem (requires genisoimage to be installed)
- The headless PCem window is less intrusive
- More convenient for me to distribute

The plan is to incrementally add support for newer versions of PCem but so that only one version of PCbi is maintained. So if PCbi 0.15.0 (PCem 15 only) is next, PCbi 0.14.0 (PCem 14 only) won't receive further updates but is there for whoever is stuck with that version of PCem.

Reply 32 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Version 0.16.0 catches up with PCem 16:
- Adopts PCem 16
- Warns the user if it can't find a component when loading a save file, rather than terminating with an assertion
- Updates CPU components' PCem IDs
- Removes a few CPUs that don't seem to be supported by PCem anymore

Earlier, version 0.15.0:
- Adopts PCem 15
- Fixes drive disk image button's tooltip not resetting when the drive is reset

Binaries are available from the GitHub link in the previous post. Right now it's exclusively for Linux, but I'll put out a Windows binary when I get around to setting up the build environment.

Next up would be adding a bunch of new components.

Reply 34 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie
SarahWalker wrote on 2020-05-09, 06:53:
vvbee wrote on 2020-05-09, 06:10:

- Removes a few CPUs that don't seem to be supported by PCem anymore

I don't remember removing any. Which CPUs are causing problems?

Actually that's on me, it's been a few years since I went through these and have forgotten a bunch. I took a quick look at cpu_tables.c, didn't see the WinChip 225 listed with the other WinChips and thought it wasn't included anymore, but I see now that it's still there, just under the Super Socket 7 ones. The Cyrix 6x86MX 300-400 didn't look included anymore either, but it seems the MII is more or less the same thing.

Reply 35 of 43, by leileilol

User metadata
Rank l33t++
Rank
l33t++

My patch changed some/promoted some to be on a new SS7 list because I couldn't find non-IBM 6x86MXs of that high PR rating at the time and Cyrix's own motherboard compatibility lists seems to prefer SS7 boards for their higher clocked M II line, and generally peaks at PR266 for their non-IBM 6x86MX line. The IBM 6x86s seemingly share IDs with the M II so I went with that (and didn't want to make a list with long "IBM 6x86MX PR### / M II-###" names or make a whole IBM CPU vendor for it). What helped formulate this patch was the addition of a new enough Super 7 board that would distinguish the later 6x86MX variants as the Cyrix list was developed more from what the HOT-433 would report.

I'm sure a Cyrix lover here is ready to slap me with a rare engineering sample of a M II 533, a Cyrix-branded 6x86MX PR300, or a Jedi any minute now.....

apsosig.png
long live PCem

Reply 36 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Version 0.16.1:
- Uses the correct PCem CPU IDs across all of PCbi's supported motherboard models
- Components: Adds a couple of WinChip CPUs
- Components: Updates the visual style of the Intel Premiere/PCI motherboard
- Renames monitor smoothing filters to "Smooth" and "Crisp" (and makes "Smooth" the default)
- Uses a pointing cursor when the mouse hovers over a button

The Linux binaries are available from https://github.com/leikareipa/pcbi-content/releases.

Documentation for creating new PCbi components is now available at https://github.com/leikareipa/pcbi-content/tree/master/docs.

A web app to generate PCbi's .component files from OBJ models is now available at http://www.tarpeeksihyvaesoft.com/pcbi/obj2component/. Includes a lo-fi render preview. A reverse tool, component2obj, might be made at some point.

Reply 37 of 43, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

This is REALLY cool.

I'd love to have a frontend like this for MAME someday, especially for its computers. We don't quite have the configurability of PCem yet for PCs tho, but it's getting closer.

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 38 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie
Stiletto wrote on 2020-05-15, 07:02:

This is REALLY cool.

I'd love to have a frontend like this for MAME someday, especially for its computers. We don't quite have the configurability of PCem yet for PCs tho, but it's getting closer.

It took about two weeks of work to have a working prototype of PCbi, which included setting up a custom software renderer, learning and implementing memory sharing, digging into PCem's code to hook it up, creating a connector scheme for plugging/rotating components onto other components, learning rudimentary Blender skills, making a bunch up 3d models, figuring out the dimensions of various components and connectors to translate that into a 3d modeling scheme, etc. The connector system was even more extendable than it is now - you could plug e.g. individual memory chips onto video cards' expansion sockets.

A bunch of work, but if someone wants to do it, MAME can begin to have it in not too many weeks as well, or a couple of months for a less hasty system.

Reply 39 of 43, by vvbee

User metadata
Rank Oldbie
Rank
Oldbie

Version 0.16.2:
- Tweaks the UI here and there
- Disallows connecting Super Socket 7 CPUs into Socket 7 sockets
- Components: Adds a SiS 496 Socket 2 motherboard
- Components: Adds a VIA MVP3 Super Socket 7 motherboard
- Components: Tweaks the visuals of all motherboards
- Components: Adds a number of AMD K6 and K6-2 CPUs
- Components: Adds IDT WinChip 2A CPUs
- Components: Adds a few Intel Pentium OverDrive MMX CPUs
- Components: Removes Intel Pentium Mobile CPUs
- Components: Removes the Gravis UltraSound and Creative Sound Blaster Pro 2 sound cards

linux-1.png
linux-2.png