Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New not working system & software list: Sega AI #11747

Merged
merged 52 commits into from
Jan 23, 2024
Merged

Conversation

wilbertpol
Copy link
Contributor

@wilbertpol wilbertpol commented Nov 15, 2023

New systems marked not working

Sega AI [Chris Covell, Fabio Priuli, Wilbert Pol, smspower, Game Preservation Society]

segaai.xml: Added 24 items, 14 working.

New working software list items

Alice World [Chris Covell]
Robinson Land [Chris Covell]
Cosmic Train [Chris Covell]
Cinderella Labyrinth [Chris Covell]
Gulliver Pocket [Chris Covell]
Mozart Academy [Chris Covell]
Arabian Night [Chris Covell]
Andersen Dream [Chris Covell]
Ocean Fantasy [Chris Covell]
Columbus Map [Chris Covell]
Runrun Music [Chris Covell]
Tantan Rhythm [Chris Covell]
Ranran Melody [Chris Covell]
Pinpon Numbers [smspower, Charles McDonald]
Okeiko Hanamaru Aiueo [smspower, Charles McDonald]
Waku Waku ABC to 123 [smspower, Charles McDonald]
Henshin Kanji [smspower, Charles McDonald]

New software list items marked not working

Alice World (tape, older) [smspower]
Robinson Land (tape, older) [smspower]
Cosmic Train (tape, older) [smspower]
Cinderella Labyrinth (tape, older) [smspower]
Gulliver Pocket (tape, older) [smspower]
Mozart Academy (tape, older) [smspower]
Arabian Night (tape, older) [smspower]
Andersen Dream (tape, older) [smspower]
Ocean Fantasy (tape, older) [smspower]
Columbus Map (tape, older) [smspower]
Pinpon Music Rhythm [smspower, Charles McDonald]
Pinpon Music Melody [smspower, Charles McDonald]
Eigo de Ohanashi - English Wonder School: Folk & Fairy Tales [Chris Covell]
Eigo de Game - English Wonder School: Popo's Adventure [Chris Covell]
AI Enikki [Chris Covell]
AI Enikki (1986) [smspower, Charles McDonald]

@wilbertpol
Copy link
Contributor Author

Keeping this as draft until (system) software surfaces.

@mamehaze
Copy link
Contributor

mamehaze commented Nov 15, 2023

Keeping this as draft until (system) software surfaces.

If it's "Game Preservation Society" then it won't, those people are trolls, hoarders, and timewasters of the worst kind, even acknowledging them makes me feel dirty. The amount of harm they do is difficult to comprehend, an absolutely disgraceful use of the 'preservation' label.

There are people looking to buy licenses for games / revisions who still can't access them thanks to that group, thus causing said stuff to never see legitimate commercial release as licensed commercial release depends on proof of viability that is impossible with hoarded media. cough DECO cough

@ocornut
Copy link

ocornut commented Nov 15, 2023

I own all the software listed above, they are mine, and I fully intend to release them in upcoming weeks or months(the same way I released nearly a thousand dumps on smspower so far if you need some evidence). My general intent was: I believe this is a pretty cool system which could receive some headlines, and I'd like to reorganize a nice release (ideally synchronized with emulation support) so people can actually toy with them when this surfaces. This is why I thought it would be nicer to not release the dumps without emulation support. In the meanwhile I'll share the dumps to whoever wants to contribute to moving this forward.

I have also just obtained 10 new Sega AI software last week, which appears to be variations of existing software, and which I haven't dumped yet.

(I disagree with your stance on GPS, i think they are operating at a different level that western groups have been operating, they've been doing other very useful stuff, and the legal situation in Japan is very different. But it's a different story/topic which is not worth discussing here. I am also aware they released more stuff than you'd imagine but could't put their name on it).

@mamehaze
Copy link
Contributor

mamehaze commented Nov 15, 2023

Well my only experience with them is them demanding credit for 'verifying' things once other people have spent a lot of time and money repeating the work. Meanwhile they've put a halt to a good number of legitimate ventures due to their stance, and the material they have being unavailable to the wider public for viability assessment by those who have the opportunity to purchase licenses from current IP holders.

The industry would be a better place without them in my opinion, but we'll just have to agree to disagree. I no longer have time for them.

@ocornut
Copy link

ocornut commented Nov 15, 2023

I am the one who asked wilbert to credit them, because they helped meaningfully for it, but arguably my demand was ambiguous and I didn't expect them to be listed 1st in that list. If I have to be fair (according to time invested by every party) I would suggest list them last in that list of 5 (i was actually about to email wilbert for that). Chris Covell deserves lot of credits for initial HW hacking and dumping (without damaging the system). And both emulation authors too.

@wilbertpol
Copy link
Contributor Author

Thanks, I have updated the software list to use the new overlays.

@ocornut
Copy link

ocornut commented Jan 14, 2024

Added all scanned artworks to smspower.
Main links
https://www.smspower.org/Tags/SegaAI
https://www.smspower.org/Games-Releases/AI-JP

Would MAME policy allow merging code today given the promise we will publish all roms synchronized to MAME release day? (well and technically you have my permission to share/publish what I submitted on that release day too)

It gives me some time to prepare the article.

I did some renaming in my databases:

Old
Eigo de Game: Popo's Adventure (えいごでげーむ: Popo's Adventure)
New
Popo's Adventure - Eigo de Game (Popo's Adventure - えいごでげーむ)

Old
Eigo de Ohanashi: Folk & Fairy Tales (えいごでおはなし: Folk & Fairy Tales)
New
Folk & Fairy Tales - Eigo de Ohanashi (Folk & Fairy Tales: えいごでおはなし

The packaging are a bit inconsistent and difficult to make sense of. The previous names were based on idea the mycard themselves only spelled out えいごでげーむ and えいごでおはなし, so it was the common name across box front/side/back, manual, and cards. But it's very clear that Popo's Adventure and Folk & Fairy Tales are the larger and more prominent names on packaging front and side and manual.

@mamehaze
Copy link
Contributor

mamehaze commented Jan 14, 2024

Would MAME policy allow merging code today given the promise we will publish all roms synchronized to MAME release day?

No. We've been burned like that before, by the kind of people you're working with.

@ocornut
Copy link

ocornut commented Jan 14, 2024

Well you already have the roms and a permission to release them that day.

Alright then, that actually lowers pressure on me to have to synchronize anything properly. I'll work at my own pace then.

@ocornut
Copy link

ocornut commented Jan 14, 2024

(Reposting you as edited your answer to clarify it)

We've been burned like that before, by the kind of people you're working with.

You are the kind of people I'm working with. As in, I haven't worked or talked with anyone else than the people on this thread (apart from sharing this with another emulator author) since this was opened.

You already have the roms and a permission to release them that day, so being principled/nitpicky on a zero-risk situation, which turn compromise the overall release-day quality (I understand MAME aims to be a preservation project above an "allowing people to play software" project so the difference doesn't matter to the project). It feels that you only want to make this harder and lesser-impact because I am friend with someone you dislike who several years ago helped me with it.

Alright then, that actually lowers pressure on me to have to synchronize anything properly. I'll work at my own pace then and will soon release all contents along with a pre-built MAME Windows binaries available for convenience + link to this thread, and you can merge whenever it works for the team. With some luck I'll be able to do it before next release window, since I now have less heart into making it very nice.

I appreciate MAME and the work done here and hoping this will be nicely released and settled soon.
Thanks for your time.

@happppp
Copy link
Member

happppp commented Jan 14, 2024

Next MAME release is Jan 31st if it goes according to plan. It's up to @wilbertpol whether to merge this PR now or later, I only see a small issue mentioned remaining about the .lay file which should be easy to resolve.

@mamehaze
Copy link
Contributor

Well if you've already sent the ROMs to other people, then essentially you have already published / released them, they're already public, just not announced on your site. That's a little different.

@ocornut
Copy link

ocornut commented Jan 14, 2024

  1. Is the cassette rewinded automatically by the system when it tries to boot from cassette?

While reading some older posts by Chris Covell I found this mention:

"The games/stories with the cassette are rather fun to play, with voice clips streamed from tape, and sometimes spoken by the speech synthesizer... but clearly this computer was screaming out for random access media for sound, like CD or solid-state ROMs. The tape sometimes seeks back and forth for 5-15 seconds for the right voice clip, while the game and player (kids) wait. :-)"

Which implies that the system can control tape motor and seek, if this wasn't clear before.

src/mame/sega/segaai.cpp Outdated Show resolved Hide resolved
@ocornut
Copy link

ocornut commented Jan 20, 2024

While writing the article and I reading Chris old posts I realized that I don't recall hearing full voices sentences.
There are two voice ROMs in the system MPR-7619 contains individual samples from Japanese language (46-ish sound) and MPR-7620 contains full words and sentences (such as "Please insert next cassette", "Cannot read this cassette", "Please choose what you prefer", "Please plug in the keyboard", "Please press Return", "Please select a word", etc.). It's pretty compact: there's about 52 seconds of audio data per ROM.

You can hear them in this audio playback of ROM data:
AI Voice Roms audio playback.zip

Whereas e.g. Arabian Night clearly use the former, I don't recall hearing any of the later ROM, so wondered if many something is misplugged in the emulation..

Chris original message:
_"And I managed to dump the ADPCM ROMs for the PD7759. After consulting with Kevin Horton, we confirmed the only feasible way to dump these ROMs would be to disable that address latch IC (74LS373), so I cut pin 1 of that IC and soldered it back after dumping.

The Sega ROMs are 128 KB each, with A16 taking the place of the usual /OE pin of a 27512 EPROM. The Sega 315-5201 mapper controls the 7759 master/slave mode, as well as which ROM's data output gets enabled when a DRQ pulse is sent by the 7759. I hope I can figure out the mapper's behaviour in more detail, but for now, port $B bit 0 controls master/slave, and at least bit 1 chooses the upper voice ROM.

Hopefully these ROM dumps are correct; I rechecked them about 2 times, and the data seems to be fine. It's NEC's own ADPCM format, which I do not know, but byte 0 in the ROM has the total number of voice phrases minus 1, and then there's a directory of 2-byte little-endian addresses for each sample starting at byte 5 in the ROM. (These addresses need to be shifted left by one in order to get proper pointers inside the ROM.)

I also took recordings of all 256 commands to the 7759. Of course, some of them have no phrase data, but they give a good idea of the sound quality of decoded ADPCM, as well as the linear mapping of the ROMs' directories to the command values. "_

And here the associated wiring he made:
ai_speech_wiring

@wilbertpol
Copy link
Contributor Author

The Sega ROMs are 128 KB each, with A16 taking the place of the usual /OE pin of a 27512 EPROM. The Sega 315-5201 mapper controls the 7759 master/slave mode, as well as which ROM's data output gets enabled when a DRQ pulse is sent by the 7759. I hope I can figure out the mapper's behaviour in more detail, but for now, port $B bit 0 controls master/slave, and at least bit 1 chooses the upper voice ROM.

That is how I am using those bits in the upd7759_ctrl_w method. So I would have expected those voices to work.

Do you have an example of when those voices should be played?

@wilbertpol
Copy link
Contributor Author

Which implies that the system can control tape motor and seek, if this wasn't clear before.

Yes, I had already noted that in the todo section regarding the cassette interface.

@wilbertpol wilbertpol marked this pull request as ready for review January 21, 2024 20:00
@cuavas
Copy link
Member

cuavas commented Jan 22, 2024

@wilbertpol can you adjust the calculation in the layout script to make the pen cursor square? This comment:

If you want the cursor to not be squashed, you need to consider the aspect ratio of the thing you’re referencing it to. If you want the size to be based on the width divided by 16, you need to adjust the height factor by 4:2.8, or 10:7. Something like curheight = lbounds.height * 5 / 56 if I’m doing the mental arithmetic correctly.

@rb6502 rb6502 merged commit 245b399 into mamedev:master Jan 23, 2024
6 checks passed
@ocornut
Copy link

ocornut commented Jan 23, 2024

Wonderful, thank you all!
I finished new scans and working on article, aiming to release the dumps before end of the month, if anyone doesn't have access to drive you can reach to me.

@ocornut
Copy link

ocornut commented Jan 24, 2024

Do you have an example of when those voices should be played?

I don't, I tried Popo's Adventure on the HW and was surprised to not hear those. Maybe emulation is right and they are under-used by software. I'll let you know if I find some.

I'll be focusing on the article in my avail time, and will take a day off if needed. Thanks everyone involved!

  1. Would it be of use to create an overlay that's a photo of the empty, naked touch section?
    Something like: (preferably without the distortion, that's not my photo)
    ai_touchpad_114

Notably because some of the writing software use that section but without an overlay.
If there is fair-use/legal way to create one bundled in MAME i'd create you under whichever license you see fit.

  1. My other suggestion is to apply the renaming mentioned there:
    New not working system & software list: Sega AI #11747 (comment)

@ocornut
Copy link

ocornut commented Jan 26, 2024

(1)
KailoKyra looked at some tape data dumps and suggested it was FSK encoding at a rather high debit (possibly ~440 bytes/second out of theoretical 1.2 kb/second advertised by the 9600bps specs). Due to the high frequently he suggested it might be facilitating for the work that I redump them as 96 Khz (instead of 48 Khz - will need to order new hardware as my line in is capped to 48 Khz), and increase volume for data track (the data tracks are generally using 60%-ish of the volume range which I choose to avoid the voice/music track clipping).

Comparison of a CPC tape with Alice World (first AI tape):
image

(2)
This flyer (from SukaSega, not mine) although lowish resolution shows the same Tape Version boxes as the one I have and it is very clear from the screenshot they are different software than the Card version.
Flyer Kumon Wonder School - B - 19870905 - 04

e.g. Alice World tape vs card
image
AliceWorld-AI-1988

e.g. Andersen Dream tape vs card
image
AndersenDream-AI-1988

e.g. Cinderella Labyrinth tape vs card
image
CinderellaLabyrinth-AI-1988

Etc. Those are presumably the unemulated versions we have on Tape but yet to be confirmed and my AI Tape drive is broken.

It also imply different title romanization at the japanese title (Alice World is Alice's World) which we can take care of later.

@ocornut
Copy link

ocornut commented Jan 26, 2024

The Sega ROMs are 128 KB each, with A16 taking the place of the usual /OE pin of a 27512 EPROM. The Sega 315-5201 mapper controls the 7759 master/slave mode, as well as which ROM's data output gets enabled when a DRQ pulse is sent by the 7759. I hope I can figure out the mapper's behaviour in more detail, but for now, port $B bit 0 controls master/slave, and at least bit 1 chooses the upper voice ROM.

That is how I am using those bits in the upd7759_ctrl_w method. So I would have expected those voices to work.

Do you have an example of when those voices should be played?

Ah OK I realized what was the bug.
In many games, take for example Arabian Night, pressing はい (Hai) or いいえ (iie) in current MAME would play "Zero" and "Ichi" (one) sound sample, which I thought was weird.
And then I realized that in MPR-7619 (you can listen the the MP3) the first sample in the index is "Zero" second sample is "One".
And in MPR-7620 the first sample in "Hai" and the second sample is "iie"

So that confirm that for some reason samples from the first are always used instead when trying to access sample from the second one.

Other emulation note:

  • The soundbox is mandatory for Pinpon Music Rhythm, but it hangs after the bumper screen so we don't need title screen.
  • For all three of Pinpon Music series, no audio is heard when using the soundbox.

@cuavas
Copy link
Member

cuavas commented Jan 28, 2024

Description doesn’t match the content. The two AI Enikki titles are marked working in the actual content but listed as not working in the PR description. Which is it supposed to be?

@ocornut
Copy link

ocornut commented Jan 28, 2024

They are working afaik.

The other marked non-working in PR first message are indeed either not working wither have big issue (missing audio and crash in the pinpon games, missing tape support for others).

(One minor niggle in the DB is the overlay file for ai enikki 1986 should be used for both versions and could be called “ai enikki.jpg”)

@cuavas
Copy link
Member

cuavas commented Jan 28, 2024

They are working.

Thanks. It’s a big two-month release, so I appreciate the prompt response.

MooglyGuy pushed a commit to MooglyGuy/mame that referenced this pull request Jan 28, 2024
* bus/segaai: Rename device_segaai_card_interface to segaai_card_interface
* bus/segaai: Rename device_segaai_exp_interface to segaai_exp_interface

* hash/segaai.xml: Add barcode for several titles.
* hash/segaai.xml: Merge eigooha1 and eigooha2 into eigoohan, and eigogam1 and eigogam2 into eigogame.
* hash/segaai.xml: Update description for Eigo de Ohanashi and Eigo de Game.
* hash/segaai.xml: Add notes to Pinpon Music Rhythm and Melody.
* hash/segaai.xml: Merge Okeiko Aiueo and Hanamaru Aiueo into a single software item.
* hash/segaai.xml: Swapped checksums for Okeiko Aiueo and Hanamaru Aiueo and updated some notes.
* hash/segaai.xml: Added and replaced some overlays. Added placeholders for some older revisions released on cassette.
* hash/segaai.xml: Add cassette dumps of Alice World, Robinson Land, and Cosmis Train.
* hash/segaai.xml: Add dumps of several older cassette versions.
* hash/segaai.xml: Add/update serial, alt_title, and barcodes for cassette releases.
* hash/segaai.xml: Use improved overlay scans.

* layout/segaai.lay: Display clickable area when no overlay is present.
* layout/segaai.lay: Make cursor square.

* sega/segaai.cpp: Update old driver.
* sega/segaai.cpp: Let cards and expansions install themselves.
* sega/segaai.cpp: Adjust upd7759 sound level.
* sega/segaai.cpp: Mark cassette as stereo.
* sega/segaai.cpp: Only output the left channel from the cassette player.
* sega/segaai.cpp: Set the cassette channel to use for data input.
* sega/segaai.cpp: Add upd7759 busy signal to input port 4.
@ocornut
Copy link

ocornut commented Jan 29, 2024

@ocornut
Copy link

ocornut commented Jan 31, 2024

I haven't 100% completed my work/article on this, but there are documents and infos about the system at:
https://www.smspower.org/SegaAI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants