Re: Grayskull on APF Imagination Machine
Golden Child
03/16/25 07:08 PM
I was puzzled why some cassettes like Ferzerx wouldn't load. I ended up writing the world's worst cassette parser, dumping samples from audacity and seeing if I could parse raw samples with plain old lua. Since the sample rate is 11025, if I count the number of samples that are above zero, less than 4 should be a zero and greater than that should be a 1 with a single zero ending the all 1's intro.
70541 6.3982766439909 5 1
70552 6.3992743764172 6 1
70562 6.4001814058957 3 0
70572 6.4010884353741 1 0
70595 6.4031746031746 1 0
70606 6.4041723356009 3 0
70617 6.4051700680272 3 0
70629 6.4062585034014 4 1
70640 6.4072562358277 4 1
70651 6.408253968254 4 1
BYTE=00001111
70662 6.4092517006803 5 1
70674 6.4103401360544 6 1
70685 6.4113378684807 6 1
70696 6.412335600907 6 1
70707 6.4133333333333 6 1
70718 6.4143310657596 6 1
70729 6.4153287981859 6 1
70740 6.4163265306122 6 1
BYTE=11111111
70751 6.4173242630385 6 1
70762 6.4183219954649 6 1
What I discovered with ferzerx is that it is picking up a stray zero within the lead-in (which should be all ones). If I cut the first 7 seconds of the audio in audacity, it loads perfectly. ![[Linked Image from i.imgur.com]](https://i.imgur.com/AxsKtmj.png) Going to try this technique with some other cassettes that won't load. That may explain why it would load if you delayed pressing enter for a few seconds after starting a CLOAD. I would always hit enter first, then hit F2 to start up the cassette, so I was always starting from the beginning.
8
885
Read More
|
|
Re: New dumps
Kale
03/15/25 07:05 PM
Managed to work-around: it's hard fixing in code a r/w to the DDC connection at $e2, which was also NOP-ed by the southbridge implementations for no reason. S3 configuration strapping itself should really be card responsibility, but that's for another day ...
867
1,193,789
Read More
|
|
Re: New dumps
Kale
03/13/25 10:55 PM
S600DX should be a ViRGE/DX with bog standard subvendor ID (53338a01). Should be a very basic fit-in.
867
1,193,789
Read More
|
|
Re: Is -listxml supposed to add all dependent machines
AJR
03/11/25 11:19 PM
-listxml for drivers is inconsistent with -listxml for devices in this behavior. The former outputs <machine> tags for not just all slot options but the subdevices belonging to those options as well, plus <device_ref> tags for all of those. The latter doesn't even output <machine> tags for ordinary subdevices, just <device_ref> tags.
4
315
Read More
|
|
Is -listxml supposed to add all dependent machines
Bletch
03/11/25 09:44 PM
I ran the following command line: mame -listxml coco_ide | grep idehd And got the following results:
<slotoption name="hdd" devname="idehd" default="yes"/>
<slotoption name="hdd" devname="idehd"/>
What I do not see is:
<machine name="idehd" sourcefile="devices/bus/ata/hdd.cpp" isdevice="yes" runnable="no">
Am I correct to be expecting -listxml to be smart enough to add idehd to the list of devices to be returned?
4
315
Read More
|
|
Re: Grayskull on APF Imagination Machine
Pernod
03/10/25 10:49 PM
so in src/mame/apf/apf.cpp I added it and it works!
CASSETTE(config, m_cass);
m_cass->set_formats(apf_cassette_formats);
m_cass->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_DISABLED);
m_cass->add_route(ALL_OUTPUTS, "mono", 0.15);
m_cass->set_interface("apf_cass");
m_cass->set_stereo();
m_cass->set_channel(0);
m_cass->add_route(1, "mono", 0.70);
I hear audio for spacedst, ferzerx (game doesn't load), and zap. Can't say that it's high fidelity, as the cassette wav sampling rate isn't very high. For a mono cassette, there's just the normal modem-sounding noises. Probably would be better to hear it if I raised it up to 1.0. (or possibly 11) Try removing m_cass->add_route(ALL_OUTPUTS, "mono", 0.15);
8
885
Read More
|
|
Re: Grayskull on APF Imagination Machine
Golden Child
03/10/25 10:14 PM
so in src/mame/apf/apf.cpp I added it and it works!
CASSETTE(config, m_cass);
m_cass->set_formats(apf_cassette_formats);
m_cass->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_DISABLED);
m_cass->add_route(ALL_OUTPUTS, "mono", 0.15);
m_cass->set_interface("apf_cass");
m_cass->set_stereo();
m_cass->set_channel(0);
m_cass->add_route(1, "mono", 0.70);
I hear audio for spacedst, ferzerx (game doesn't load), and zap. Can't say that it's high fidelity, as the cassette wav sampling rate isn't very high. For a mono cassette, there's just the normal modem-sounding noises. Probably would be better to hear it if I raised it up to 1.0. (or possibly 11)
8
885
Read More
|
|
Re: Grayskull on APF Imagination Machine
Pernod
03/10/25 08:29 PM
An audio / cassette question: on the spacedst cassette, there's an audio track on the right channel. Is there any way to get mame to play the audio cassette track while it's loading? I've worked on a machine that does something similar but never had a stereo cassette image to test with. I believe you can do the following:
m_cassette->set_stereo();
m_cassette->set_channel(0);
m_cassette->add_route(1, "mono", 0.70);
So this is telling the cassette interface to expect stereo audio, where channel 0 is handled as data and channel 1 routed to the speaker "mono". I'd be interested in knowing if this works, and what happens when a mono data only cassette is loaded.
8
885
Read More
|
|
Grayskull on APF Imagination Machine
Golden Child
03/10/25 08:42 AM
I was watching a video of the Imagination Machine and a game called Grayskull caught my eye. Attempting to run it in mame didn't work. For some reason, the cassette wouldn't load properly. Changing some code to:
uint8_t apf_state::pia1_portb_r()
{
uint8_t data = m_portb;
if (m_cass->input() > 0.1) // old value was very small, setting to 0.1 seems to ignore a bunch of noise
data |= 0x80;
return data;
}
Now I can get gskull to load, but it looks bad: ![[Linked Image from i.imgur.com]](https://i.imgur.com/lDSBbMf.png) so if you comment out the hack to change the offset, it looks ok.
uint8_t apf_state::videoram_r(offs_t offset)
{
if (BIT(m_pad_data, 7)) // AG line
{
// Need the cpu and crtc to be locked together for proper graphics
// This is a hack to fix Rocket Patrol and Blackjack
// if (BIT(m_pad_data, 6) && !m_has_cart_ram)
// offset -= 0x400;
// This is a hack to fix Space Destroyer
if (BIT(m_pad_data, 6) && m_has_cart_ram)
![[Linked Image from i.imgur.com]](https://i.imgur.com/Y1ktXtl.png) but for some reason, turning on artifacts causes anything colored green to disappear: ![[Linked Image from i.imgur.com]](https://i.imgur.com/VOmJTNe.png) This is a particularly hard game, the countdown timer is unforgiving. Setting b@bec5=1 will nop the subtraction of the counter So if you want to try it, ./mame apfimag basic -cass gskull enter will clear the basic startup screen ] is the enter key, CTRL+] will type CLOAD, then hit ] for enter, wait 1 second, then hit ] for enter again, hit scroll lock to enable the mame ui, then F2 to start up the tape, hit pgdown to make it fast, then once the tape loads, type RUN then ] and it should run.
8
885
Read More
|
|
Re: device parent roms question
R. Belmont
03/09/25 12:20 PM
Files that are actually used by both can be in the parent, files that are specific to the child device should be in the child device's zip. (If no files are shared, there generally shouldn't be a parent/child relationship).
3
230
Read More
|
|
device parent roms question
Golden Child
03/09/25 03:27 AM
So if you have a parent device (EPSON_FX80) and a derived class (EPSON_JX80) and you use parent_rom_device_type(), then mame will also search the parent rom zip file for the roms of the jx80.
So then I could keep all of the roms for the parent and the derived class in a single file epson_fx80.zip instead of having two separate zip files epson_fx80.zip and epson_jx80.zip.
Am I understanding that correctly?
static auto parent_rom_device_type() { return &EPSON_FX80; }
3
230
Read More
|
|
2 members (judge, 1 invisible),
225
guests, and
4
robots. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,344
Posts122,329
Members5,077
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|