mister-devel / ao486_mister Goto Github PK
View Code? Open in Web Editor NEWao486 port for MiSTer
License: Other
ao486 port for MiSTer
License: Other
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.
There's been a couple of newer releases of bochs since boot0 and boot1 was updated. Could you resync with them?
No one seems to be able to read the FAQ. It would be SO helpful from a support perspective to add a hint on the "SELECT" VHD/CD screens that just says something like *Backspace key to unmount"
The Win+F12 combination doesn't work anymore for me on version Release 20200922.
It works ok with previous versions.
Thanks
Francesco
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.
Lemmings 2 will not boot with L1 set. Disable it to fix. If you re-enable while it game it will hang until you disable it. sorry wrong GH issues page
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.
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.
When you release the Up, Down, Left or Right key the player's ship wants to keep moving down.
This started after build ao486_20200814.rbf
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
Worked in prior public release (before the first cache changes) - joystick not recognized at all now (even during manual calibration)
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.
Hello,
Do you have tried porting Frix over MiSTer ?
It is a development of ao486 without the Altera Nios II processor
http://www.arch.cs.titech.ac.jp/a/Frix/
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):
Second Reality by Future Crew seems to have weird timing issues that pushes the sound/video out of sync. Also some sections flat out do not render.
Demo can be obtained here, along with a video of running correctly https://archive.org/details/FutureCrewSecondReality
Appreciate that demos tend to push the envelope with regards to hardware, but thought it worth reporting none the less (given that all I use this core is for demos!)
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.
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
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
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.
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).
When I mount a .vhd >8 Gigabytes, it only shows up as 8 GB size in boot screen messages. Reading some data from it results in read errors (abort, retry, ignore message). Some other data can be read. I suspect it is data beyond 8 GB that is not read correctly.
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
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.
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.
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.
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?
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.
The game seems to work OK on "real" hardware and Dosbox.
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?
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
After the update from August 16th 2020 the Joystick is finally detected in Tie Fighter CD but it isn't responding to any button press. It works fine in X-Wing and Tie Figher.
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.
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.
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.
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)
Cymbals and snares are not audible on the current build.
The best example I have of this is Super Solvers: Treasure Cove
Here is how it should sound. https://www.youtube.com/watch?v=GhHqGp_tmBc
compared to
audiotest.zip
I am using the default settings A220 I5 D1 T4. The same issue was prior to installing SBPro driver on the image.
This seems similar to the issue reported in this thread.
https://misterfpga.org/viewtopic.php?f=13&t=1125
Hello
It would be great to be able to save several configurations like the Minimig core
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 nop
s 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.
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?
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.
In Hugo's House of Horrors 1,2, or 3 the typed text and menu flash repeatedly. Perhaps memory related but unsure. Posting this bug as it may help to track down others since it is easy to reproduce.
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.
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.
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 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.
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.
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).
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.
With the last Release 20200705, change Fonts don´t work.
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:
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 (previous release)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.