Sonic and Sega Retro Message Board: "Neto Boot Loader" Loader for ATGames and TecToy Mega Drive 17 - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
  • 2 Pages +
  • 1
  • 2
    Locked
    Locked Forum

"Neto Boot Loader" Loader for ATGames and TecToy Mega Drive 17 Improves sound and add some features

#1 User is offline Esrael 

Posted 22 January 2018 - 08:37 AM

  • Posts: 186
  • Joined: 24-July 03
  • Gender:Male
  • Location:Brazil, São Paulo, Guarulhos
  • Project:Neto Assembler Editor / Sonic 2 Delta / Neto Boot Loader
Recently i had posted a response to this topic I picked up the Sega Genesis Classic Game Console with the 80 built in, but I think this deserves its own topic.

Whats is "Neto Boot Loader"?

"Neto Boot Loader" is an alternative loader which I have developed to be used in new Mega Drive Tec Toy, which improves sound quality, fixes some bug in games and if you have a compatible SD Card can enable save feature for some S-RAM based games.

Since the new Mega Drive uses the same RedKid 2500 processor which was and still is used in a lot of ATGames consoles, these features are applicable to these consoles too.

How to install:
-Create a directory "TECTOY" in Root dir of your SD CARD;
-Inside "TECTOY" directory, create four others directories "DATA", "ROM", "SAVE" and "SYS" (this one is only required by the new Mega Drive).
-Inside the "ROM" folder create up to 16 directories whit any name and inside these dirs place up to 99 ROMs.

After setting up your SD Card structure copy the "MDI.BIN" file to "GAME" dir or "TECTOY\SYS" if you own the new Mega Drive.

For save game feature, I strongly recommend placing all games in same dir, since the Loader uses 8x3 filename to generating "SAVE" files and placing the ROM games in distinct directory can generate the same 8x3 filename and you will have "SAVE" files overwriten by the last played game.


Using Save Feature:

-After playing a compatible game ( http://www.neto-game...oot_loader_sram ) press menu (reset on some models) button quickly (avoid holding menu button for a long time, this can corrupt SRAM), reload "Neto Boot Loader" and wait for the SRAM content to be saved on SD (you will see a counter running up to 0x00004000 over my name "NETO") and you can turn off or continue playing.


For anyone interested in Neto Boot Loader i have made a dedicated page ( http://www.neto-game...boot_loader.php ) for the project where you can find some details about features, and some instructions of usage. The page is in Portuguese Brazil, but has some pictures which can show all features.
There is a built-in debugger where you can try other settings for processor Red Kid 2500.
To Access "Debug Mode" during message "Inicializando Neto MD-DOS..." press "A", Then select a Game normally, after game is loaded to SD-RAM and before run you will be directed to debug screen.
In debug press "START" to Access Programming Mode and then use:
A - To select parameter
B - To increase high Byte
C - To increase low Byte
D Pad - To increase / decrease Low and High Byte.
"A+Start" to apply Settings and Start Game
The debug mode was developed to allow advanced users testing and reporting the best settings found and can be used for future updates.
The debug mode can be used to adjust other games which can have problems like slow Music. Changing parameter FM SP: can fix this.
Notices:
In portable versions the debug mode only works when connected to a TV set.
Since the debug mode change some processor parameters, setting wrong parameters can hang the system, just press reset and try again.

Known compatible versions:
0 1152 2010/03/22
0 165 2011/10/26 13:14:47
0 497 2013/03/04
0 894 2017/05/22 17:08:41


Best regards.
-------------------
Neto
This post has been edited by Esrael: 22 January 2018 - 01:07 PM

#2 User is offline Overlord 

Posted 22 January 2018 - 02:54 PM

  • Substitute Meerkovo IT Chief
  • Posts: 17058
  • Joined: 12-January 03
  • Gender:Male
  • Location:Berkshire, England
  • Project:VGDB
  • Wiki edits:3,204
Has to be said again - thank you for making these units more usable.

#3 User is offline RGamer2009 

Posted 28 January 2018 - 10:51 AM

  • True Blue
  • Posts: 2565
  • Joined: 27-November 08
  • Gender:Male
  • Location:Wherever life takes me...
  • Wiki edits:3,086
Since this is the official topic for the Bootloader now...


I have noticed some audio issues in a few games, and graphic/gameplay issues in others.

For audio, running Sonic Spinball on the SD with the loader corrects the sound, but speeds it up way faster than normal. The Little Mermaid on Genesis has a weird audio issue with one instrument that should not be there.

Sonic Megamix 3.0 runs, but can crash at any time and has various graphical glitching. Also some platforms don't behave properly, like bridges or platforms, they turn the character at a odd angle and push them off, making them impossible to stand on.

Sonic 3D Blast Director's Cut works...until you reach the bonus stage. The game crashes upon entering one.


Thanks again for all your hard work, Esrael!
This post has been edited by RGamer2009: 28 January 2018 - 10:54 AM

#4 User is offline Esrael 

Posted 01 February 2018 - 05:37 PM

  • Posts: 186
  • Joined: 24-July 03
  • Gender:Male
  • Location:Brazil, São Paulo, Guarulhos
  • Project:Neto Assembler Editor / Sonic 2 Delta / Neto Boot Loader

View PostRGamer2009, on 28 January 2018 - 10:51 AM, said:

Since this is the official topic for the Bootloader now...


I have noticed some audio issues in a few games, and graphic/gameplay issues in others.

For audio, running Sonic Spinball on the SD with the loader corrects the sound, but speeds it up way faster than normal. The Little Mermaid on Genesis has a weird audio issue with one instrument that should not be there.

Sonic Megamix 3.0 runs, but can crash at any time and has various graphical glitching. Also some platforms don't behave properly, like bridges or platforms, they turn the character at a odd angle and push them off, making them impossible to stand on.

Sonic 3D Blast Director's Cut works...until you reach the bonus stage. The game crashes upon entering one.


Thanks again for all your hard work, Esrael!


Thanks, for reporting.

Supporting hacks is hard because they can use tricks which can work in emulator and fails on real hardware. I remember when I tried running Sonic 2 Delta first time in the old Mega Drive and get a lot of crashs due to some invalid processor comnands and access.

For Sonic 3D Blast I am trying to fix the Special Stage issue.

For Sonic Spinball I will verify, but you can try fix this by running Debug Mode and change Parameter FMSP, and if get a better value, post here and it can be added in future release.

Don't forget verifying the official page for latest release. The current release has more games with SRAM support.
http://www.neto-game...boot_loader.php


Best regards.
-------------------
Neto
This post has been edited by Esrael: 01 February 2018 - 06:02 PM

#5 User is offline RGamer2009 

Posted 25 March 2018 - 05:13 PM

  • True Blue
  • Posts: 2565
  • Joined: 27-November 08
  • Gender:Male
  • Location:Wherever life takes me...
  • Wiki edits:3,086
Hello again, I see the Boot Loader has been updated a lot since we last spoke.

I put together a small document of things I have noticed regarding various games and hacks.

I hope it can be useful - http://www.mediafire...Hack+Issues.doc

Also I am just wondering, since the Master System games can run on the Genesis with Passthrough, could MS roms work through the Boot Loader? It would greatly extend the amount of games that could be played on it.
This post has been edited by RGamer2009: 27 March 2018 - 09:27 PM

#6 User is offline Esrael 

Posted 31 March 2018 - 09:14 PM

  • Posts: 186
  • Joined: 24-July 03
  • Gender:Male
  • Location:Brazil, São Paulo, Guarulhos
  • Project:Neto Assembler Editor / Sonic 2 Delta / Neto Boot Loader

View PostRGamer2009, on 25 March 2018 - 05:13 PM, said:

Hello again, I see the Boot Loader has been updated a lot since we last spoke.

I put together a small document of things I have noticed regarding various games and hacks.

I hope it can be useful - http://www.mediafire...Hack+Issues.doc

Also I am just wondering, since the Master System games can run on the Genesis with Passthrough, could MS roms work through the Boot Loader? It would greatly extend the amount of games that could be played on it.


Thanks for reporting.

If you have a Facebook account, you can follow me to receive notifications about latest updates.

Yesterday, was released a new version which include fixes to more games.

The latest versions includes a fixes to old issue with "Contra Hard Corps" game were scrollings fail. This was caused by a wrong setting in RedKid, which was fixed by the "Neto Boot Loader".

For SMS Games, the mode 4 is required, but I can't find a way to enable or if Redkid support this mode.

The Cave Story is still in development and fixes is done by fixing/changing game code in real time. Doing this to a current in development game will fail in code shifting due to new builds.


Best Regards:
---------------
Neto.

#7 User is offline Lanzer 

Posted 05 April 2018 - 08:25 PM

  • The saber calls for its master...
  • Posts: 6831
  • Joined: 27-February 09
  • Gender:Male
  • Location:Glendale, AZ
  • Project:Doing Stuff.
  • Wiki edits:1
I got this thing at a thrift store. emulation runs fine but the sound is a garbled up mess.

Your boot loader works for this unit correct? are the instructions the same?

#8 User is offline RGamer2009 

Posted 05 April 2018 - 08:43 PM

  • True Blue
  • Posts: 2565
  • Joined: 27-November 08
  • Gender:Male
  • Location:Wherever life takes me...
  • Wiki edits:3,086
My unit is almost identical to yours, and runs the loader fine. Just make sure its set up properly on the SD card and you will be good to go.

Follow the step by step instructions (With pictures!) on the website here:
http://www.neto-game...boot_loader.php
This post has been edited by RGamer2009: 05 April 2018 - 08:44 PM

#9 User is offline BigEvilCorporation 

Posted 22 April 2018 - 08:09 AM

  • Posts: 29
  • Joined: 17-July 16
  • Gender:Male
  • Location:UK
  • Project:Tanglewood
Hi! I did some of my own research on this thing (and the Flashback, too) before discovering this post, so I thought I'd share my findings:

https://bigevilcorpo...games-firecore/
https://bigevilcorpo...ames-flashback/

This is mostly geared towards homebrew developers and ROM hackers to make their games compatible with these two machines (without the end user needing to modify their devices) but perhaps there's some titbits of info in there to help with the firmware efforts.

I plan to install Neto Bootloader on my own device and see if there's anything I've missed, too!

#10 User is offline Overlord 

Posted 22 April 2018 - 01:06 PM

  • Substitute Meerkovo IT Chief
  • Posts: 17058
  • Joined: 12-January 03
  • Gender:Male
  • Location:Berkshire, England
  • Project:VGDB
  • Wiki edits:3,204
While we're talking about Tanglewood, thank you for looking into a way to determine you're on this thing and to try and fix the broken sound remotely - regular users likely will never see the Neto firmware.

#11 User is offline Esrael 

Posted 23 April 2018 - 06:18 PM

  • Posts: 186
  • Joined: 24-July 03
  • Gender:Male
  • Location:Brazil, São Paulo, Guarulhos
  • Project:Neto Assembler Editor / Sonic 2 Delta / Neto Boot Loader

View PostBigEvilCorporation, on 22 April 2018 - 08:09 AM, said:

Hi! I did some of my own research on this thing (and the Flashback, too) before discovering this post, so I thought I'd share my findings:

https://bigevilcorpo...games-firecore/
https://bigevilcorpo...ames-flashback/

This is mostly geared towards homebrew developers and ROM hackers to make their games compatible with these two machines (without the end user needing to modify their devices) but perhaps there's some titbits of info in there to help with the firmware efforts.

I plan to install Neto Bootloader on my own device and see if there's anything I've missed, too!


Here is the some info about Red Kid 2500 Addresses:
$00000000 - (0004) Normal Mode / (0017) Redkid Programming Mode

$00B00012 - Z80 Clock
$00B00018 - PSG Clock
$00B0001A - M68K Clock

$00B00202 - SD Card Bus Request
$00B00248 - SD Card Data Port Status
$00B00300 - SD Card Data Port

$00B01000 - Display / TV Color System
$00B01006 - TV Sub carrier Tunning
$00B0100A - Jump Control
$00B0100C - Game PAL Bit
$00B01018 - TV Vertical Pos
$00B0101E - Game Export Bit / VDP Scroll Setting
$00B01028 - M68K Offset
$00B0103C - SDRAM Offset
$00B01054 - Yamaha Clock / FM SP

The Best values are:
$0607 - $00B00012 - Z80 Clock
$0003 - $00B0001A - M68K Clock (27 Mhz / 3 ) = 9 MHz
$0077 - $00B00018 - PSG Clock
$2620 - $00B01054 - FM SP / Some games run better with other values ( Out Run -> $2616, Comix Zone $261B ).


$00B01000 - Display / TV Color System
$03A0 - LCD Mode ( Portable Models )
$0425 - PAL-M Sub Carrier
$04A0 - NTSC Sub carrier
$04A6 - Pal Sub Carrier

$00B01006 - TV Sub carrier Tunning - Best Settings
$0000 - For NTSC And PAL-M
$0020 - For PAL

$00B01018 - TV Vertical Pos
$0015 - Internal LCD
$001C - For NTSC And PAL-M
$0035 - For PAL

$00B0101E: ( Export Bit / Some VDP control )
Bit 0 - Controls VDP - This bit came enabled by default which cause the Contra Hard Corps scrolling Bug.
Bit 2 - Controls Export - 0 Export / 1 Local.

$00B0100C - Game PAL bit
Bit 2 - 0 NTSC / 1 PAL.


For Cartridge only version I have made a beta firmware for Everdrive. In This vídeo ( https://youtu.be/391Jx_-uC2s ) you can see a chinese clone with Everdrive X3 running with my custom firmware.

Best Regards.
-----------------
Neto
This post has been edited by Esrael: 23 April 2018 - 06:21 PM

#12 User is offline BigEvilCorporation 

Posted 24 April 2018 - 08:41 AM

  • Posts: 29
  • Joined: 17-July 16
  • Gender:Male
  • Location:UK
  • Project:Tanglewood

View PostEsrael, on 23 April 2018 - 06:18 PM, said:

...


Excellent, thank you! I've just taken delivery of one of the handheld versions, too. I'll try those recommended values and see if they're any better than mine.

Were you able to determine a safe way to test if a game is running on one of the affected versions? Reading from any of the $BXXXXX addresses on real hardware hangs it. I'm going to try DMA-ing from those areas to see if it's a little more lenient. Writing to the latch at $00000000 and reading back again just gives the first word of the stack vector (seems to allow for writing but not reading from that address).
This post has been edited by BigEvilCorporation: 24 April 2018 - 08:43 AM

#13 User is offline Esrael 

Posted 24 April 2018 - 09:51 AM

  • Posts: 186
  • Joined: 24-July 03
  • Gender:Male
  • Location:Brazil, São Paulo, Guarulhos
  • Project:Neto Assembler Editor / Sonic 2 Delta / Neto Boot Loader

View PostBigEvilCorporation, on 24 April 2018 - 08:41 AM, said:

View PostEsrael, on 23 April 2018 - 06:18 PM, said:

...


Excellent, thank you! I've just taken delivery of one of the handheld versions, too. I'll try those recommended values and see if they're any better than mine.

Were you able to determine a safe way to test if a game is running on one of the affected versions? Reading from any of the $BXXXXX addresses on real hardware hangs it. I'm going to try DMA-ing from those areas to see if it's a little more lenient. Writing to the latch at $00000000 and reading back again just gives the first word of the stack vector (seems to allow for writing but not reading from that address).


I've got this issue too. When running my hex debug on Real Hadware can't past from $Axxxxx adresses without hanging it. The way which I use is checking regular RAM area adresses. Theses ATGames run some code from main RAM and don't clear them all before running a game. During startup of "Neto Boot Loader" I do the folowing check to RAM:

                cmpi.l  #Jump_Control, (M68K_Ram_Start+$8C28)
                bne.s   Clear_RAM
                cmpi.l  #M68K_Clock, (M68K_Ram_Start+$8EBA)
                bne.s   Clear_RAM
                cmpi.l  #Z80_Clock, (M68K_Ram_Start+$8EC2)
                bne.s   Clear_RAM         
                move.w  #Console_New_MD, D3      
Clear_RAM:    



If all of them return true, then Mega Drive 2017 was found and I can check Cartridge SLOT.

The main issue with these ATGames consoles which uses the Offset $00000000 as some input setting is with some games which has bugs in code which try to write at $00000000. The Lion King has a bug in the level "The Stampede" where the games try to write to offset $00000000, whichs puts Red Kid in wrong Status and messes up the sound engine. When running from SDRAM, i have made a patch in real time to fix the code where the game try to write in to $0000000, but in cartridge for obvious reason this can't be done and the game messes up after the level "The Stampede".


The other issue is SDRAM access. When running a game from SDRAM some VDP Access requires a Z80 bus request or you will get garbled graphics and the games eventually crashes. Eg:
move.w #$8174, ($FFC00004)

Doing this command through cartridge port is fine, but doing this same command through SDRAM sometimes fail if Z80 bus is not resquested before.

Doing This:
  move.w  #$0100, (Z80_Bus_Request)                    ; $00A11100 
  move.w  #$8174, ($FFC00004)
  move.w  #$0000, (Z80_Bus_Request)                    ; $00A11100 


is sufficiente to Allow game not crashing when running from SDRAM.

Most of games run fine through Neto Boot Loader, because I am doing patches in real time adding these z80 requests when running from SDRAM.

Best Regards.
-----------------
Neto

#14 User is offline BigEvilCorporation 

Posted 24 April 2018 - 10:01 AM

  • Posts: 29
  • Joined: 17-July 16
  • Gender:Male
  • Location:UK
  • Project:Tanglewood

View PostEsrael, on 24 April 2018 - 09:51 AM, said:

View PostBigEvilCorporation, on 24 April 2018 - 08:41 AM, said:

View PostEsrael, on 23 April 2018 - 06:18 PM, said:

...


Excellent, thank you! I've just taken delivery of one of the handheld versions, too. I'll try those recommended values and see if they're any better than mine.

Were you able to determine a safe way to test if a game is running on one of the affected versions? Reading from any of the $BXXXXX addresses on real hardware hangs it. I'm going to try DMA-ing from those areas to see if it's a little more lenient. Writing to the latch at $00000000 and reading back again just gives the first word of the stack vector (seems to allow for writing but not reading from that address).


I've got this issue too. When running my hex debug on Real Hadware can't past from $Axxxxx adresses without hanging it. The way which I use is checking regular RAM area adresses. Theses ATGames run some code from main RAM and don't clear them all before running a game. During startup of "Neto Boot Loader" I do the folowing check to RAM:

                cmpi.l  #Jump_Control, (M68K_Ram_Start+$8C28)
                bne.s   Clear_RAM
                cmpi.l  #M68K_Clock, (M68K_Ram_Start+$8EBA)
                bne.s   Clear_RAM
                cmpi.l  #Z80_Clock, (M68K_Ram_Start+$8EC2)
                bne.s   Clear_RAM         
                move.w  #Console_New_MD, D3      
Clear_RAM:    



If all of them return true, then Mega Drive 2017 was found and I can check Cartridge SLOT.

The main issue with these ATGames consoles which uses the Offset $00000000 as some input setting is with some games which has bugs in code which try to write at $00000000. The Lion King has a bug in the level "The Stampede" where the games try to write to offset $00000000, whichs puts Red Kid in wrong Status and messes up the sound engine. When running from SDRAM, i have made a patch in real time to fix the code where the game try to write in to $0000000, but in cartridge for obvious reason this can't be done and the game messes up after the level "The Stampede".


The other issue is SDRAM access. When running a game from SDRAM some VDP Access requires a Z80 bus request or you will get garbled graphics and the games eventually crashes. Eg:
move.w #$8174, ($FFC00004)

Doing this command through cartridge port is fine, but doing this same command through SDRAM sometimes fail if Z80 bus is not resquested before.

Doing This:
  move.w  #$0100, (Z80_Bus_Request)                    ; $00A11100 
  move.w  #$8174, ($FFC00004)
  move.w  #$0000, (Z80_Bus_Request)                    ; $00A11100 


is sufficiente to Allow game not crashing when running from SDRAM.

Most of games run fine through Neto Boot Loader, because I am doing patches in real time adding these z80 requests when running from SDRAM.

Best Regards.
-----------------
Neto


Superb, thank you!

I've also been doing some investigation of the Flashback console, if you're interested. So far I've discovered that the Z80 doesn't emulate the LD IYH instruction, and requires the whole IY register to be patched. Thankfully this was only used once in my whole codebase (but that one place caused no sound from my game at all, since it was setting the upper $40 base address for accessing the YM). It also doesn't emulate SSG-EG, again...

#15 User is offline Esrael 

Posted 24 April 2018 - 10:38 AM

  • Posts: 186
  • Joined: 24-July 03
  • Gender:Male
  • Location:Brazil, São Paulo, Guarulhos
  • Project:Neto Assembler Editor / Sonic 2 Delta / Neto Boot Loader

View PostBigEvilCorporation, on 24 April 2018 - 10:01 AM, said:


Superb, thank you!

I've also been doing some investigation of the Flashback console, if you're interested. So far I've discovered that the Z80 doesn't emulate the LD IYH instruction, and requires the whole IY register to be patched. Thankfully this was only used once in my whole codebase (but that one place caused no sound from my game at all, since it was setting the upper $40 base address for accessing the YM). It also doesn't emulate SSG-EG, again...



Thanks, I don't have Flashback version, but these findings are interesting and I will follow yours research.

Best Regards.
-----------------
Neto

  • 2 Pages +
  • 1
  • 2
    Locked
    Locked Forum

2 User(s) are reading this topic
0 members, 2 guests, 0 anonymous users