Looking for hardware documentation...

Started by Gregounet, March 27, 2024, 02:49:35 PM

Previous topic - Next topic

Gregounet

Hi everyone,

let me please first introduce myself:


Grégoire, from France, Auvergne & Paris.

I'm new to Videopac world, so please forgive me I if I sometimes ask stupid questions as I'll probably do right now. Also please forgive me for my sometimes poor english speaking.

I had a C52 many many decades ago. That's how everything started for me. After I had a Sega SC3000H and later a PC 286... That's probably which decided me to later become a computer enginner.

When not playing with computers I mainly ride or fix old italian motorbikes, mainly Guzzis and Lambrettas, but it's another story ;-)


So, I have a pure newbie question. It has probably been asked (and answered...) many times (and I promise I searched first before asking !) but I'll ask anyway:


Currently playing with Arduinos, I would like porting o2em to the ATmega series.

But I'm really confused understanding lot of things about its hardware architecture. In fact I lack a good documentation about it.

All I was currently ablo to find are documentations about Intel's 8048 and 8245. That's a good start but it doesn't tell me everything about memory mappings both for BIOS & program ROM and external "VDC" RAM mapping. Of course I tried googling (in fact mainly "duckduck-ing") but most of the time I get a link to:

http://soeren.informationstheater.de/

Which doesn't live no more :-(

Sure the information it contained stil can be found somewhere but wasn't able to find it...

Without this documentation I need to read all the o2em (in fact I use o2em2-1.5 as a basis for this) related-code, trying to reverse-engineer this C code to some useful information tips. That's what I've been doing since two days but it's painful and not really easy.


Thanx in advance

G.
 

Spacemonster

Hi Grégoire,

Welcome to this forum! Unfortunately I can not help you with the documentation. However, to find information from websites that do not exist anymore you can try web.archive.org. So give this a try:

https://web.archive.org/web/20070629054948/http://soeren.informationstheater.de/Index.html

Another source could be https://rene-g7400.datatex.nl/ and https://odyssey2.info/

Good luck with your search!

Gerko
>> G7000 G7400 G7401 C7010 C7420 <<

Gregounet

Found everything I need, and much more, there:

Quote from: Spacemonster on March 27, 2024, 07:31:25 PMhttps://web.archive.org/web/20070629054948/http://soeren.informationstheater.de/Index.html

I really don't know how to thank you Spacemonster ;)

I offer you a virtual beer, cheers ! ;:) 

Spacemonster

If you like, keep us posted about your progression porting o2em to Arduino. :)
>> G7000 G7400 G7401 C7010 C7420 <<

Gregounet

Keepin' informed: currently stucked trying to understand some hardware related features:

* In some places I read about external 128 bytes RAM on the motherboard. In other places I read about 256 bytes... But when reading the 02EM code I can't find such external RAM. Chip is there on the circuit diagrams (6810 = 128 bytes RAM). Does someone have any clue regarding this ?

* I can't figure how the hell is this 8244/8245 working ! I'm getting lost with VBBL, EVBBL, horizontal and vertical blanking and all that jazz. As I need to fit everything in 2 kB RAM (ATmega328 AVR) I'm not able to use a bitmap struct as it is done using SDL graphic library. So I need to understand low-level working of this chip. Also 12 characters and quad addressing is a bit confusing to me...

I would like to have a look at MAME / MESS C52 emulator so perhaps it will help me understand. But the link I got to odyssey2.cpp on github is dead :-(

Currently I'm working on a "stripped" version of O2EM2-1.5 from which I removed all the "un-necessary" parts:

* VPP compatibility
* The Voice
* Sounds
* Joystick & keyboard support
* game savings
* interlaced video mode
* megacart, ROM > 2kB, etc...

I just succeeded in compiling and running it, but without any video support ;-(

But I'm now able to run the 8048 emulation and displaying some processing in text debug mode...


You cannot view this attachment.


I agree that's not really impressive so far but I hope it's a good start  ;-p

It's a long way...

manopac

vmachine.c:
Byte extRAM[256];

thats where you find the external RAM in o2em ;-)
sex, lies, and videopac

Gregounet

Quote from: manopac on March 30, 2024, 02:04:52 PMvmachine.c:
Byte extRAM[256];

thats where you find the external RAM in o2em ;-)

Thx Manopac !

Found it this nite ,-)

Was looking for "ram" instead of "RAM". I try to always use lower case for C variables & functions...

But it's 256 bytes large while on the circuits schematics it seems to nonly be 128.

 ;:)

Gregounet

Slowly getting things done  ;:)

You cannot view this attachment.

Currently fighting hard with Alien Invaders: don't know why the main enemy sprite is soooooo... hoooorrrrible  :o

You cannot view this attachment.

Tried about ten different ROMs, and that's the only one which causes me problem displaying sprites. So, instead of working on collision detection I'm currently wastin' too much time trying to solve this  >:(

You cannot view this attachment.

Gregounet

Hi folks,

I was able to play Munchkin yesterday evening using my small ArduinoS.

ArduinoS: cause I finally decided to run it on a more powerful than Uno one MKR 1010 WiFi board with 32-bit CPU. But I kept the Uno to perform analog joystick data processing just for the fun ;:)



Of course there's still a lot of work to be done on this program. Currently there's no sound, no keyboard (just a small keypad to be able to launch the games), no support for 8k ROMs, etc, etc.



I also need to rewrite some code performing collisions detection. Original one from O2EM was using to much memory so I had to rewrite it. My version is using far less RAM but instead taking too much time to compute. I have some ideas regarding how to make things go faster but need to find time for working on this.

It was my first video, made with my smartphone, so it's just a quick preview, please apologize for bad quality: