Code Monkey home page Code Monkey logo

ao486_mister's People

Contributors

alexoughton avatar alfishe avatar birdybro avatar chrisdeadman avatar decod81 avatar electronash avatar flynnsbit avatar gtaylormb avatar kblood avatar kitrinx avatar lroby74 avatar maikmerten avatar nanoant avatar p2mate avatar robertpeip avatar segasnatcher avatar sorgelig avatar spark2k06 avatar torinde avatar user7182 avatar vpelletier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ao486_mister's Issues

Distorted Sound

Last update (January 7 2021) has a problem with sound. The volume output is so high, it is very distorted. Lowering it from menu does not solve the issue.

Sound was a bit distorted in previous releases, but not so noticeable.

sync with newest bochs rom

There's been a couple of newer releases of bochs since boot0 and boot1 was updated. Could you resync with them?

[dev branch] [issue] [feature request] CPU speed settings

Some users (myself included) have an issue with ao486 freezing at 100mhz, and, some games require a slower speed to properly detect sound hardware, but, can run at higher speed, after. This is a known issue, on real hardware, so, i'm not asking for anything to be done with that , but, when i pass 100 to get back to 30, it will usually freeze, one of the suggested fixes, from back in the day was to use the turbo button that existed on many computers, back then, to slow down the cpu until sound hardware is initialized, and once again to return to normal speed. so, was thinking, a turbo button could be added, that would allow the user to pick 2 speeds one high and one low to switch between, when pressed. This would allow someone with issues at 100mhz to use 90 as the high speed, and allow others to use 100, and avoid passing 100mhz, and risk freezing the system.

Variable vsync not working

As of the 20200814 build, variable vsync is not working correctly. I have 2 monitors that worked with the last dev build, but this new build does not work. I get 'NO SIGNAL' messages on both monitors.

Prince of Persia freezes at end of 1st level when door opens with Sound Blaster configured

With Sound Blaster configured as sound device Prince of Persia always freezes as the end of level one after you activate the switch to open the door. Once the door is fully open the game freezes and the door opening sound effect loops indefinitely.

This is on DOS 6.22 with the recommended Sound Blaster 2.0 bundle driver. I have confirmed this occurs with Prince of Persia version 1.0, 1.3 and 1.4. If sound device is changed to Ad Lib (or PC Speaker) it will not freeze and you can proceed to level 2.

Windows 98 freezes on boot

I've tried Windows 98 first edition and second edition, and both freeze on boot. The installation finishes, and the system begins booting into the OS (with the moving colored strip on the bottom), but during that process, the moving strip eventually freezes and the OS stops responding to input.

If I press escape to show the text behind the boot graphic before it hits that point, it freezes on a blinking cursor instead, with no error message. However, if I wait until it freezes to press escape, it stays on the frozen boot graphic.

This happens on ao486 20200814 and 20200816, with the new boot0.rom and ET4000 boot1.rom. Both versions of the OS were installed by first booting from a boot floppy in VirtualBox to copy the setup files from the CD to the hard drive, and then transferring the image to MiSTer, where it was installed with:

setup /is /nm

Feature request: 4.77 Mhz

Hi there,

since you are currently actively developing the ao486 right now, can you implement a "Turbo Button" for very old games which reduce the speed to 4.77Mhz?

That would be usefull. Thank you.

[BIOS] Sierra adventure game interpreter text corruption Kq1 kq2 kq3 sq1 sq2

It's a known issue with Sierra AGI that is manifesting on the AO486 + MiSTer.

If it helps, from other sources this is the info (not sure if related) I got:

"That happens when your ROM BIOS does not have the standard 8x8 font stored at F000:FA6E".

"Because AGI games use the BIOS to display white-on-black text, which will always use the correct font data. But for black-on-white text, AGI writes the font pattern data to video memory by itself, because some BIOSes don't to that properly. And in doing so, AGI assumes that the font data exists at the same location where it existed in the original 1981 PC BIOS, which is F000:FA6E.

If your AGI version is 2.912 or higher, try running the game with the command-line option "-s -v", as in e.g. "sq2 -s -v". That will run the game in IBM PS/2 mode, where the game (I think) will use a different routine to print text."

Screenshot (Spanish DOS 6.22 version):

sierra_agi_mister

[Input] Keyboard stop working after a few seconds playing Livingstone Supongo

MiSTer v200705
AO486 c200510
128Mb
HDMI
DOS 6.22

This is happening on a quite old game from the Spanish company "Opera Soft" 1986, Livingstone Supongo.

After a few seconds playing (if you don't use your keyboard everything will stay OK), the keyboard will stop working. Tested with two different mechanical keyboards: IBM Model M and Logitech.

The game will continue normally but any input won't be detected and you must reset the machine.

XMSDSK conflicts and crashes DOS4GW (DOOM) if set over 15168 size.

Platform: Dos 7.1 (Win98SE DOS only)

Memory Config: HIMEM with HIRAM v1.9a (EXCLUDE=CE00-CFFF set)

Best game to test: Doom 1.9 with DOS4GW used as the extender (note using DOS32A works around the issue, but requires manual game changes which are not necessary on real hardware. Could this be a symptom of the problem we are seeing with DOS4GW compatibility on the core?)

Issue: Depending on the size of the XMSDSK you set, you can cause different issues with DOS4GW and doom (assume others but not tested) Examples are Doom locking up the core when exiting (anything over 17000), locking the core when starting (15170) , Causing a general protection fault with DOS4GW (15500), or scrambling the video screen with asci characters (16000)

Configurations: XMSDSK y: 15168 /y functions property any numbers referenced above will exhibit the errors or locking of the core based on the memory consumed by xmsdsk.

Images and video demo of the issue:
https://www.youtube.com/watch?v=XLJ8iE5u_zM
gpf
scramble

Example VHD for testing, use HIRAM and edit the autoexec.bat to remove the REMed entry for XMSDSK with the appropriate value.
IDE 0-0 BOOT-DOS98.zip

Shareware doom: doom19s.zip

Poor system pll clock speed ~50Mhz

I did a clean build in 19.1 and ended up with the pll_0 outclock0 violating timing by about 8ns. I'm going to look into the failing paths. It could have been a poor run (got to love quartus). I was wondering if anyone has hit this before or has recommendations.

Interest in Tandy/PC Jr. 3 voice sound?

Before SoundBlaster became the prevalent standard for enhanced PC audio, machines such as the IBM PCjr and the Tandy line of PC-compatibles introduced 3-voice sound based on the Texas Instruments SN76489 programmable sound generator. This simple sound generator features three square-wave channels and one noise channel.

This sound standard was supported mostly by games ranging from the mid-to-late 1980s, for instance, by adventures from Sierra (e.g. Space Quest) and Lucas Arts (e.g Monkey Island). The sound of this device is very "chippy" - have a listen to e.g. https://www.youtube.com/watch?v=fyVlPjJWdxs&t=1332s

I happen to have written a compact implementation of the SN76489 a while back for my own nefarious purposes (https://github.com/maikmerten/spu32/blob/master/audio/sn76489_wb8.v) with a permissive license (MIT, but as author I can relicense to any license fitting for MiSTer) that should be easy to adapt to the ao486 SoC.

I estimate the resource usage to be around 300 logic cells, one write-only I/O port (0C0h), no interrupts, no DMA. For an ao486-newbie like myself this might be among the more manageable features to contribute. Given that in the DOS retro gaming community there's some interest in Tandy-sound ISA extension cards such as https://www.lo-tech.co.uk/wiki/Lo-tech_Tandy_Compatible_Sound_Adapter, I wonder if this is of interest for ao486 as well.

I'm aware that resource utilization of the FPGA device is already high and I assume that Tandy 3-voice sound support is not a commonly asked feature. Thus I'm interested in the opinions of the core developers before actually diving into integrating this into ao486. Also, it might happen that I have to ask some questions on how to glue the SN76489 into place (e.g., address decoding and where to mix the PCM samples into the other sound sources).

Very few games have too fast music regardless of MHz setting

Thank you for this amazing core that has kept me up late almost every night for two weeks testing and enjoying games like 4D Sports Driving, and other things like After Dark 4.0 and Johnny Castaway screensavers on Windows 95 👍

Some games I tested like

  • Lode Runner Returns
  • Warlords 2

play their fm music super fast, like 10 times too fast, regardless of MHz core setting.

I tried both Soundblaster and Adlib music settings, and OPL2 and OPL3, no change.

It is only those games out of 105 I tested, so no big deal.

MIDI playing completely wrong in Windows 95 (maybe 9x)

As for version 20210109 (and couple of previous releases), MIDI files plays completely wrong in Windows 95. In DOS MIDI work as it should. Some notes are not playing, some are wrong. Timings are off.
I'm using default PnP configulation of the sound adapter.

Mouse driver says "Mouse reset returned <hex> (should be ack)"

On both MS-DOS 6.22, with some random mouse.com driver, and when installing Windows 95 (original release), I've seen the following error:

Mouse reset returned { hex } (should be ack)

It doesn't happen on every boot - maybe about one in four. Rebooting the core from the F12 menu seems to fix it. { hex } is a random hex byte - it seems to vary.

Allow change of soundblaster IRQ?

Some old games don't play well with the default soundblaster irq. For example, on real PC, Per.Oxyd is slow, 30 FPS, with default soundblaster irq 5. It shows the same behavior in dosbox. But it is fast, 60 FPS, when using irq 7.

Is it possible to make the irq setting configurable as a core option?

[VGA] Off-set "sprites" and dirty trails on Budokan, Capitan Trueno

MiSTer v200705
AO486 c200510
128Mb
HDMI
DOS 6.22

The game is working well but there are some bad positioning regarding sprites. Have a look at the combat screenshot, the images and animations are right but in an incorrect coordinate.

In the same game -> "main menu" (screenshot 2). This problem leaves some dirt when you move around.

budokan_mister_1
budokan2

The game seems to work OK on "real" hardware and Dosbox.

real mode interrupt vector has been modified (warning message when exiting games)

I fixed some games thanks to Dos32A.

So After patching them with
sb -r GAME.exe

The games that crashed now don't crash but show (on dos/32A):
"real mode interrupt vector has been modified: INT 00h"
"real mode interrupt vector has been modified: INT 1Fh"
"real mode interrupt vector has been modified: INT 22h"

it might be a clue for games crashes?

No VGA output?

ao486 v190308

I connected to a Dell CRT monitor to the VGA port on the IO board. This monitor works fine in DOS games on a PC. It work on the menu and other low res cores when I enable the 'forced_scandoubler' option. Once the load the ao486 core it the monitor loses signal. I even tried with the 'forced_scandoubler' off and it was the same result once the core was loaded

One UK key is not recognised

I just installed this core for the first time today and found that an important key on the UK keyboard is not working!
It's the \ key (to the left of Z).
Important as that is the backslash for entering paths in DOS!

I have checked, the keyboard works fine on other computers.

It may be a core specific issue or related to the MiSTer in general, I do not know at this point.

VGA Hardware scrolling issues

Thanks a lot for this amazing core, I tested a lot of programs and games, and it works really well:

Some games that (I think) use the VGA horizontal hardware panning/scrolling, are very jerky.

You can check the jerky scrolling in these:
-Supaplex (when going to config menu and back).
-Prehistorik II (loading screen and world map).
-Double Dragon 3 (menu intro).

Thanks.

Feature Request: Mapper command to allow for on the fly per game Joystick button to keyboard mapping

Similar to sysctl and imgset control from AO486, request is to allow for passing a config for joystick button to keyboard mapping on the fly. Example file attached that is used with DOSBox but could be any structure as long as a dos command can pass mapping per button to keyboard keys. This does not need to be saved as it will be passed by the DOS Launcher scripts for each game and can reset on core reset/restart. As long as a command can be run, I can integrate the command into the launch script for all dos games.

Allowing for sending either commands or a file that sets the "Button/Key remap for game" option in the core would work perfectly.
image

Example:
mapper.txt

If we had this type of command we could:
On boot/on launch of Total DOS Launcher for AO486:
Send command to map joystick buttons to U/D/L/R PgUP/PgDwn/ Enter and esc to allow for full Launcher control with a Joystick.

Once a game is selected a launch script for that game is run (1_START.BAT). Inside the 1_START.BAT batch:
Change Joystick to Keyboard map to assign the appropriate keyboard keys to a joystick button.
This will allow for most dos games to be controlled using a joystick even if they do not support joystick commands.

Saving this mapping is not necessary as the launcher can reset it or it can be run on a per game basis. (similar to imgset)

Multi config

Hello

It would be great to be able to save several configurations like the Minimig core

self-modifying code isn't executed properly

For example, consider the following code snippet:

  inc byte ptr setvalue+1
setvalue:
  mov al, 0

The first instruction is supposed to change the second one from "mov al, 0" to "mov al, 1", but ao486 still executes the original "mov al, 0" instruction. The modified instruction is only executed if there are a lot of other instructions inbetween (I need at least 41 nops in my test here, but this might be dependent on the alignment of the code in memory).

Normally, I wouldn't care much, but unfortunately, this affects some real-world software. For example, every program that's compiled with Turbo Pascal 7.0 crashes when using the Intr function of the standard DOS unit. This is because that function can be used to call an arbitrary interrupt, but x86 doesn't have a int r/m8 instruction, just int imm8. So the runtime code contains an int 0 instruction that's patched with the specific interrupt number that is going to be called. However, ao486 still executes the int 0, which is the "division by zero" interrupt, and hence the program terminates due to a division by zero that never happened.

Note that int call patching does work if EMM386's EMS emulation is used, so paging or protection help in that specific case; however, the simple mov instruction patching example above behaves identically regardless of which mode the CPU is in.

Can't use floppy disks with Windows 3.1/95

Whenever I try to access a floppy drive in Windows 95 or 3.1, the entire OS locks up. A similar thing happens in DOS after I've run and quit Windows 3.1, so the only way I seem to be able to use floppy disks with the core is to run DOS and do what I need to with floppies before loading Windows.

However, this is very cumbersome, especially since some applications assume that they're being installed from a floppy disk even if the install files are already on the hard drive, and as soon as they access A: to read the files they expect to be there, the system freezes.

In case it's relevant, I'm using PC DOS 2000 and PC DOS 7.1 with Windows 3.1, and the original Windows 95 release (not OSR2 or later). Is there a better workaround here than booting into DOS, copying contents of a disk to the hard drive, and then trying to use the files from Windows?

Feature request: LPC (Low Pin Count) bus interface

From what I have understood, it is not possible for an ISA bus to be wired up directly to the MiSTer for the same reason as why it cannot support physical cartridges with the game console cores that are available for it, namely due to the shortage of available GPIO pins on the DE10-Nano board.

However, there exists a more recent bus standard created by Intel, called the Low Pin Count (LPC) bus. This bus is only 4 bits wide and would require a considerably lower number of GPIO pins to implement in a MiSTer with the ao486 core. To quote the Wikipedia article:

An integrated circuit using LPC will need 30 to 72 fewer pins than its ISA equivalent.

The LPC bus is designed to be software-compatible with the classic ISA bus, and it offers comparable throughput, even though it has only one fourth of the bus width. This is accomplished by running the LPC bus at 33 MHz, roughly 4 times the clock frequency of ISA (8MHz).

The reason why I'm requesting LPC support in the MiSTer is because there have been some interesting discussions on-line lately by people who are looking into designing some kind of LPC-to-ISA adapter, which would allow actual ISA cards (most interestingly sound cards) to be interfaced with newer LPC-enabled systems lacking an ISA bus. See these links, for instance:

Alternatively, it might for instance be possible to develop a variant of an open source ISA sound card such as the Snark Barker, but with an LPC interface that wouldn't even require an ISA adapter.

Many motherboards unfortunately only have a partial implementation of the LPC bus, just enough to be able to interface the Trusted Platform Module (TPM) with it. Most crucially, support for the LDRQ# signal is often omitted from such implementations, making it impossible (or at least much more complicated) to interface a Sound Blaster compatible sound card with those.

However, in a complete implementation of the LPC spec that includes support for LDRQ#, legacy DMA support is available. That should allow a DOS-era sound card to be made to work with it, through a proper adapter or bridge solution.

Not having to implement a full-fledged Sound Blaster compatible sound solution would free up quite a bit of FPGA real-estate, which is a big deal, preventing the necessity of certain trade-offs like the one proposed here for proper VGA hardware scrolling support: #10 (comment)

Also, many users would prefer to the use of an actual sound card to a software approximation.

Since people are already looking into appropriating the LPC bus for a Sound Blaster compatible hardware solution on modern motherboards anyway, why not piggy-back on that effort by adding a (complete) LPC implementation to MiSTer+ao486?

It would also enable developers of such LPC sound cards or LPC/ISA-adapters to use MiSTer+ao486 as a development/testing platform for that.

Thanks for considering this.

MIDI/MUNT operation not working properly.

Tested with several Sierra games previously working using MT-32 emulation.. With the new AO486 core, the only sound after game initialization is a faint bass droning sound with perhaps a few familiar notes being played intermittently.

Backroad Racers Freezes on Joystick Calibration

Doesn't matter if a joystick is connected or not, it locks up the second it hits the screen. I've tried all the joystick types, lowering speed and turning off the caches (game crashes during intro movie). I've also tried the keyboard as joystick hotkey and redefining the buttons after.

The game supports using a keyboard but MiSTer reports a joystick is hooked up even if none are synced.

As a test I loaded the game in dosbox and with a controller not connected it doesn't show the calibration screen, but if I hook up a joystick or force dosbox to think that one is connected the calibration screen shows up and is skippable by hitting a key on the keyboard.

A 'none' option in the core would allow the game to be played and might make some other games with joystick issues playable too.

AO486 CD Mounting using BIN/CUE or IMG/CUE bug and workaround found.

Some CD's were not mounting when a combination of either BIN/CUE or IMG/CUE was used for mounting the CD. You would get a general failure when trying to use the drive mounted. One work around was to rename either the .bin or the .img file to a .ISO file and mount that file instead. That worked.
I found another way that I hope gives some better insights into the bug.

If you have a CUE file that does not have an audio track with it, the mounting seems to fail. If you add a dummy audio track then that cd will mount successfully and you can read it from within AO486:

Example:

Change this CUE sheet:

FILE "swtiecd.bin" BINARY
   TRACK 01 MODE1/2352
      INDEX 01 00:00:00

and now add a dummy audio track below it

FILE "swtiecd.bin" BINARY
   TRACK 01 MODE1/2352
      INDEX 01 00:00:00
   TRACK 02 AUDIO
      INDEX 01 00:00:01

Now re-mount the .cue file and the CD will load and read.

Ultima 7 Part 2 Serpent Isle crashes at startup

Ultima 7 Part 2 is closely related to the similarly named Ultima 7 the Black Gate. The latter runs without issue on the MiSTer but not so for the Serpent Isle. I used multiple releases of the same game, with and without expansion packs, but all show the same symptoms. Upon startup the screen flickers into VGA 320x200x256 mode and then drops back to the DOS prompt. No error message at all.

Retrying the same action does give an error about the extended memory being 0, which is obviously not really true but probably a symptom of the problem.

The Ultima 7 games are a good compatibility test for this core because they are extremely taxing on memory management and CPU modes.

The successor to Ultima 7, Ultima 8, once again runs just fine. So I think this particular case is touching a small incompatibility somewhere.

IBM OS/2, OS/2 Warp, eCommStation 2.1 2.2, Hang on boot (1S506 issues)

When booting OS/2 (any version) or eCommStation, AO486 will hang on loading the IBM1S506.ADD driver. Replacing that driver with the newer DANIS506.ADD file will result in the same issue. Also the IBMFLP1.ADD will also lock up and no continue unless you REM it out of the config.sys. Without floppy or HD, OS/2 cannot load.
Tested:
Dani506.ADD version 1.08.15
IBM1S506.ADD v9.32, 10.32, 10.161

OS Tested:
IBM OS2 2.0
IBM OS2 Warp 3.0 (Bluebox edition)
IBM OS2 Warp 4.0
eComStation 2.1 Retail
eComStation 2.2 beta

There is a reference to the BOCHs bios causing issues and people were able to solve by switching to the Asus P_I-P6NP5.zip custom bios. This is a 128K bios that I could not get loaded. Are any other bios files supported besides the Plex/Bochs one?

BOCHs can load the image successfully for the above OSs with either their latest non-legacy bios or the ASUS bios referenced above.

https://sourceforge.net/p/bochs/mailman/message/13396033/

Video Example:https://www.youtube.com/watch?v=-zHtGMZS-LI&feature=youtu.be
VHD 1: both IBM1FLPY.ADD and IBM1S506.ADD left in config.sys
VHD 2: both REMed out, Can't boot -- no disk
VHD3: rem'ed out IBM1FLP1.ADD only, locks on IBM1S506.ADD
VHD4: eCommStation 2.2, AiR-Boot, Volume is detected, Dani and IBM1506 will lock up if not REMed out.

Rusty (game) has graphical corruption

ao486 v190308

There's graphical corruption in the lightening strikes at the beginning of the intro, as well as in other points in the intro, and the cutscene with the villagers and text when you start a new game. Possibly other corruption too but did not extensively test.

Game runs fine on real hardware, though requires dosvfont on English DOS (there's a pre-'patched' version on the internet intended for dosbox, but also works on a real DOS PC).

Distorted sound

Last update (January 7 2021) has a problem with sound. The volume output is so high, it is very distorted. Lowering it from menu does not solve the issue.

Sound was a bit distorted in previous releases, but not so noticeable.

MidiLink Remote/TCP not working in ao486_20210103

Hi!

I'm trying to use the Remote/TCP feature of MidiLink with ao486.

It seems that the latest version broke something, since I'm unable to get any communication with MIDI/Remote/TCP. Console and PPP works fine.

It took me a while to figure out how to configure it properly, since the GUI doesn't allow selecting any baudrates other than 31250:

image

However, I figured out that the default TCP baudrate is actually 115200, and the serial port is initialized correctly:

Setting /dev/ttyS1 to 115200 baud.

After a bit of head scratching, I downgraded ao486 to 20201106, and the TCP connection simply started working.

To illustrate how I'm testing this, here's screenshots of bananacom in action:

ao486_20201106-midilink-tcp
ao486_20201106 (previous release)

ao486_20210103-midilink-tcp
ao486_20210103 (current release)

ao486_20210103-midilink-tcp.log

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.