You are not logged in.
Lost Password?


Register To Post



 Bottom   Previous Topic   Next Topic

#111
Re: PVB Emulator & Fundraiser
Posted on: 3/2 3:41
Virtual Freak
Joined 1/27
68 Posts
So I'm seeing the jar file, and I just realized this for windows is Java based right?

Historically Java has been a big bullseye for virus makers and other trolls. Has it become more secure to feel safer installing that again to take part in using this program or in the future will it use something other than java?

I've not had it installed in years and only then for Micropolis for Windows. This looks like a fantastic program, wholly not the pain in the ass mess that is mednafen.
Top

#112
Re: PVB Emulator & Fundraiser
Posted on: 3/3 18:08
VUE(xpert)
Joined 2012/12/4
417 Posts
CoderLong Time User (6 Years)
Quote:

VmprHntrD wrote:
So I'm seeing the jar file, and I just realized this for windows is Java based right?

.jar is a self-contained Java program, though it doesn't necessarily need to be used with Windows. Since Java is available for so many operating systems, the idea is that a .jar should be useful just about anywhere.

Quote:

VmprHntrD wrote:
Historically Java has been a big bullseye for virus makers and other trolls. Has it become more secure to feel safer installing that again to take part in using this program or in the future will it use something other than java?

Any malware will attempt to target as large a user base as possible, so the most popular platforms tend to get targeted. This includes Microsoft Windows, Apple iOS and to an extent Java. However, the vast majority of Java malware has targeted people running Java as a web browser plugin, whereas this emulator project is designed to work as a standalone application.

It's absolutely possible for a .jar itself to be malicious, so if you're not comfortable taking that risk, then you shouldn't. An alternative would be to set up a bare-bones virtual machine running something like Linux where you can load up the Java software in a safe, sandboxed environment.

Quote:

VmprHntrD wrote:
This looks like a fantastic program, wholly not the pain in the ass mess that is mednafen.

I appreciate the sentiment. (-:

Mednafen does work well enough as an emulator, so I try to refrain from unnecessarily bashing it, but nonetheless it is one of my go-to examples of difficult user interface design. One of my major goals for the PVB emulator was to make sure all of its features were easy to use, even without reading a manual, so it means a lot that you took notice of that.
Top

#113
Re: PVB Emulator & Fundraiser
Posted on: 3/4 16:49
Virtual Freak
Joined 1/27
68 Posts
Thanks for the replies, starting bottom first.

I don't care to outright bash it either, but as you said, it's also my example of least user friendly tool ever as it's so bad even GUIs others make are hair pulling annoyances. Yet a larger reason is I've seen multiple stories where it won't run a homebrewed game correctly that will on actual hardware with a flashboy plus kit. To me that says it's fundamentally flawed and should kind of be discounted if you want accuracy.


I haven't run Java on a PC in probably 5-10 years because at a height of it when Java was all over including used to drive mobile phone games and apps it was a huge virus magnet. If you had it running, as you said tied to the browser, it was an insant back door to getting hosed. I didn't like the liability so I backed off it. I would imagine a lite install with no access to the browsers with manual updates allowed only would be relatively safe.

I've just been very interested in this project reading about it, and also wondering if more is covered up in that closed off VUE section too only invited people I imagine have access to.
Top

#114
Re: PVB Emulator & Fundraiser
Posted on: 3/4 23:54
VUE(xpert)
Joined 2012/12/4
417 Posts
CoderLong Time User (6 Years)
Show of hands, who expected another "Workshop" test ROM? Ah good, everyone. Glad to see it.

Open in new window

Attached to this post is Bit String Workshop, useful for testing the bit string instructions in new and unusual ways.

The top section is the user-configurable part. Move the cursor around with the left D-pad and use up and down on the right D-pad to change values. When you press the Start button, the selected instruction with the current register settings and RAM contents will be invoked, displaying the result in the bottom section.

In the big list of bits, the bus address 05000000 is the location of what is visible on-screen. Each line is 32 bits--one full word--with the least-significant bit on the left.

When the Timer field is set to some non-zero value when Start is pressed, it is used as the counter value on the timer with a 20 ΅s tick interval. When the timer hits zero, it fires an interrupt that will abort any active bit string instruction, then return early so you can see the state of the registers when the interrupt was raised.

The reason there are six rows of bits for what is ostensibly a fairly simple procedure is because of a tricky buffering behavior the CPU exhibits when processing arithmetic strings. The screenshot shows the output that the hardware gives, and I wasn't able to find any other emulator that produces the correct result. PVB gets to be the first. (-:

The tech scroll document has been updated accordingly.

Attach file:


vb bitstring_workshop.vb Size: 16.00 KB; Hits: 17

png  BitStringWorkshop.png (1.44 KB)
3060_5c7da9a8118fb.png 384X224 px
Top

#115
Re: PVB Emulator & Fundraiser
Posted on: 3/5 18:26
Virtual Freak
Joined 1/27
68 Posts
Maybe I'm missing something, but I did a basic java install from their homepage and then clicked on your latest jar file, selecting any padded or unpadded game and it doesn't do anything but a black box.

I'm kind of curious about this like if I'm missing some setup or button press that's needed.
Top

#116
Re: PVB Emulator & Fundraiser
Posted on: 3/5 19:02
VUE(xpert)
Joined 2012/12/4
417 Posts
CoderLong Time User (6 Years)
You're not wrong: the UI needs some work. Emulator operations are controlled with keyboard commands:

Emulation Commands
F5 - Run/Pause
F6 - Frame advance
F10 - Step Over
F11 - Step

When running, only the Pause command will be carried out.

Application Commands
Ctrl+3 - Cycles between color modes
Ctrl+B - In disassembler toggles the bytes column
Ctrl+G - In disassembler or hex editor prompts an address
Ctrl+P - In disassembler or hex editor seeks to PC

Controller Input
F - A button
D - B button
S - Start button
A - Select button
E - L button
R - R button
Up Arrow - Left D-pad up
Left Arrow - Left D-pad left
Down Arrow - Left D-pad down
Right Arrow - Left D-pad right
I - Right D-pad up
J - Right D-pad left
K - Right D-pad down
L - Right D-pad right
Edited by Guy Perfect on 2019/3/5 19:19
Top

#117
Re: PVB Emulator & Fundraiser
Posted on: 3/5 19:04
Virtual Freak
Joined 2017/6/24
USA
62 Posts
Long Time User (1 Year)
Quote:

VmprHntrD wrote:
Maybe I'm missing something, but I did a basic java install from their homepage and then clicked on your latest jar file, selecting any padded or unpadded game and it doesn't do anything but a black box.

I'm kind of curious about this like if I'm missing some setup or button press that's needed.


Press F5 to start the game/ROM.
Top

#118
Re: PVB Emulator & Fundraiser
Posted on: 3/6 6:02
Virtual Freak
Joined 1/27
68 Posts
Ok that explains it. I must have missed that somewhere in this thread or elsewhere about the setup. I know it's early, but kind of surprised the L and R d-pads are like swapped on the keyboard as that could get weird in a few games.

I'll have to fire it up again see what happens in a few games.
Top

#119
Re: PVB Emulator & Fundraiser
Posted on: 3/6 20:09
VUE(xpert)
Joined 2012/12/4
417 Posts
CoderLong Time User (6 Years)
This beast keeps getting closer and closer to completion. Another update, another attached build:

New Features
• Bit string instructions are now implemented
• The wait controller is now implemented
• Illegal instructions now display in the disassembler as ---
• Added disassembler comments for remaining hardware component registers

Code Changes
• Researched and implemented correct timing for DPBSY and SBOUT
• Breakpoints interface moved into Debugger package where it belongs
• Deleting a breakpoint will now select the next available breakpoint in the list
• Tweaked timing code to always refresh between frames
• Tweaked read and write CPU cycle counts
• The Console window now displays images with a one-frame delay, as the hardware does, in order to facilitate slower software rendering

Bug Fixes
• Interrupt handling now correctly sets interrupt masking level
• Corrected a read bit in SCR that prevented Mario Clash from reading input
• Writing into frame buffer memory will now be visible in the Console window
• Corrected disassembler treating illegal opcodes as bit strings
• Clicking in the list of breakpoints now commits any breakpoint edits
• Disassembler comments for interrupts should now appear even without a breakpoint
• Logical Not (! operator) in Condition and Goto now works properly when used on boolean and integer values

An edit to the number of CPU cycles taken by bus accesses seems to have improved performance across the board. Apparently Java wasn't the problem so much as the simulated CPU was too slow, and now most games run full-speed on my workstation. Waterworld, which was previously so choppy as to be unplayable, now runs smoothly, and the mysterious flickering in Mario's Tennis has stopped as well.

Red Alarm does not boot in this build. It seems to be especially sensitive to system timings, and when I do get it to run, some frames exhibit errors like blank contents or failure to clear the previous frame. It will take some research, as it does depend on WRAM and VRAM bus access latency, so until further notice the emulator will not have 100% compatibility with commercial games.

The sacred tech scroll now documents the display timings, the hardware component memory map, further details on bit string instructions and even the communication port. I wasn't able to have link support ready to go in time for this update, so I guess you know what to expect next time. (-:

Attach file:


jar pvbemu_20190306.jar Size: 298.48 KB; Hits: 27
Top

#120
Re: PVB Emulator & Fundraiser
Posted on: 3/14 1:18
VUE(xpert)
Joined 2012/12/4
417 Posts
CoderLong Time User (6 Years)
No build this week, but there's plenty news about updates. Part of what's taking so long is a management shuffle at work resulting in an unusually heavy workload, and part of it is... well, let's find out!

For starters, the link implementation is all set up and works just fine. I was able to test it with a truly terrifying hack-n-slash second Console window:

Open in new window

The "Communication Workshop" program in the screenshot can be found attached to yonder post, but since I can probably count on one hand the number of people who can make effective use of it, there's not much incentive for anyone to go grab it. But it does indeed work correctly, which is the important part.

As may be apparent, the main application window needs to be adjusted in order to properly present two linked simulations to the user. I decided to take the opportunity to redesign the main window entirely, fixing various usability problems along the way and introducing my vision of the final application UI.
__________

Many Hats

The next build introduces a new application paradigm: presentation is split into two modes depending on the user's preferences. In Game Mode, the top-level window is only the menu bar and video display, and in Debug Mode, the MDI that has been used up until now will be used. Debug mode is toggled on and off in the File menu.

Open in new window

In Game Mode, the File menu has these options. Most should be pretty self-explanatory, though New Window will produce another top-level main window with all the same features. This is what will enable link play, as we'll see in a bit.

Open in new window

In Debug Mode, the File menu becomes slightly different as it adds options for ROM file management as well as individual control over SRAM (in Game Mode, SRAM is automatic using the ROM filename). Modifications made to ROMs in the hex editor or, eventually, the assembler can be saved as new files for ease of development. ROMs and SRAM can also be resized.

Open in new window

The new Emulation menu brings options that were previously known only to the monks of the mountain who study such things. All of the old keyboard commands will continue to function, but now every command available becomes more accessible thanks to being visible on-screen. Step and Step Over are hidden in Game Mode, since they're not useful there.

The Link sub-menu brings up a list of additional windows, allowing the user to select one to associate as a communication peer. This is where the New Window option from the File menu comes in handy.

Open in new window

All of the settings will actually be accessible from a single window, but the Settings menu has some common options to help the user get to where they need to go without excessive navigation of the menus. Input, Video and Audio all bring up a new Settings window, but they each automatically select the appropriate tab/page. The Settings item simply shows the Settings window in its most recent state.

Additional settings--such as localization/language, disassembler configuration and the eventual native implementation selector--will also be in the Settings window, but simply not have shortcuts in the Settings drop-down menu itself.

Open in new window

The Debug menu should be familiar, as it's the same as the Window menu up until this point. The entire menu is hidden in Game mode.
__________

While most of the menu items are right-this-second unimplemented, I was still able to get a decent chunk done over the week despite the activity at work...

Anyone familiar with the source code layout will find that App has been broken free of its connotation with the main application interface, and a new class MainWindow was introduced. App functions mainly as a window manager, but also houses the global configuration accessible through the Settings menu.

The code that drives localization of on-screen control messages has also been updated to add some more flexibility that wasn't there before. The new features will benefit messages that require substitutions, such as the main window title and the Breakpoints window error message. With the new improvements, 100% of the strings are now fully localized and can be swapped out with a new localization file at runtime. An associate of mine has agreed to do a Japanese translation when the time comes, so it won't just be US English through the end of time.

What I'm currently working on involves input from the user. All of the keyboard bindings are about to be user-configurable, which includes things like "F5 to run/pause" and "D is the B Button". It's being set up to eventually support controller/joystick input as well, although that will require native modules to pull off.

Attach file:



png  Linked.png (13.23 KB)
3060_5c8996e9ef8a3.png 786X593 px

png  File1.png (6.14 KB)
3060_5c8997ab60d3f.png 255X217 px

png  File2.png (6.27 KB)
3060_5c89986bddcca.png 255X238 px

png  Emulation.png (5.24 KB)
3060_5c8998e15d818.png 196X239 px

png  Settings.png (4.45 KB)
3060_5c89998ec5ee0.png 222X186 px

png  Debug.png (5.64 KB)
3060_5c899b0962d4a.png 277X257 px
Top

 Top   Previous Topic   Next Topic


Register To Post