Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei PCB

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.
zxbdragon
Posts: 508
Joined: Mon Dec 12, 2011 8:15 pm

Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei PCB

Post by zxbdragon »

Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei

CTC-01
3920
You do not have the required permissions to view the files attached to this post.
User avatar
aquasnake
Posts: 672
Joined: Fri Sep 13, 2019 11:22 pm

Re: Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei PCB

Post by aquasnake »

科統實業股份有限公司

Co Tung Co.

Maybe another variant of mapper #417, and with an M2 based countdown countor
User avatar
krzysiobal
Posts: 1222
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland

Re: Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei PCB

Post by krzysiobal »

I would guess for something like that, though I am not sure about the 74138 input bits (A/B/C).
You do not have the required permissions to view the files attached to this post.
Image My website: http://krzysiobal.com | Image My NES/FC flashcart: http://krzysiocart.com
User avatar
aquasnake
Posts: 672
Joined: Fri Sep 13, 2019 11:22 pm

Re: Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei PCB

Post by aquasnake »


https://forums.nesdev.org/viewtopic.php?f=28&t=12288


similar to this board: Mapper #??? - pirate Nekketsu Monogatari
zxbdragon
Posts: 508
Joined: Mon Dec 12, 2011 8:15 pm

Re: Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei PCB

Post by zxbdragon »

aquasnake wrote: Thu Nov 14, 2024 10:30 am
https://forums.nesdev.org/viewtopic.php?f=28&t=12288


similar to this board: Mapper #??? - pirate Nekketsu Monogatari
this board not like pirate Nekketsu Monogatari,


Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei (J) [p1]
PCB:3920
Map(0x8EF0U, CHR_SWAP_1K_0);
Map(0x8EF1U, CHR_SWAP_1K_1);
Map(0x8EF2U, CHR_SWAP_1K_2);
Map(0x8EF3U, CHR_SWAP_1K_3);
Map(0x8EF4U, CHR_SWAP_1K_4);
Map(0x8EF5U, CHR_SWAP_1K_5);
Map(0x8EF6U, CHR_SWAP_1K_6);
Map(0x8EF7U, CHR_SWAP_1K_7);
Map(0x8EF8U, PRG_SWAP_16K_0);
Map(0x8EF9U, NMT_SWAP_VH01);
//Map(0x8EFAU, 0x8EFFU, NOP_POKE);??

Map(0x8EE0U, &Btl3920::Poke_F000); IRQ enable or latch?
Map(0x8EFCU, &Btl3920::Poke_F000); IRQ disable?

Mapper 159 ,IRQ Change
User avatar
krzysiobal
Posts: 1222
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland

Re: Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei PCB

Post by krzysiobal »

zxbdragon wrote: Thu Nov 14, 2024 7:41 pm
aquasnake wrote: Thu Nov 14, 2024 10:30 am
https://forums.nesdev.org/viewtopic.php?f=28&t=12288


similar to this board: Mapper #??? - pirate Nekketsu Monogatari
this board not like pirate Nekketsu Monogatari,


Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei (J) [p1]
PCB:3920
Map(0x8EF0U, CHR_SWAP_1K_0);
Map(0x8EF1U, CHR_SWAP_1K_1);
Map(0x8EF2U, CHR_SWAP_1K_2);
Map(0x8EF3U, CHR_SWAP_1K_3);
Map(0x8EF4U, CHR_SWAP_1K_4);
Map(0x8EF5U, CHR_SWAP_1K_5);
Map(0x8EF6U, CHR_SWAP_1K_6);
Map(0x8EF7U, CHR_SWAP_1K_7);
Map(0x8EF8U, PRG_SWAP_16K_0);
Map(0x8EF9U, NMT_SWAP_VH01);
//Map(0x8EFAU, 0x8EFFU, NOP_POKE);??

Map(0x8EE0U, &Btl3920::Poke_F000); IRQ enable or latch?
Map(0x8EFCU, &Btl3920::Poke_F000); IRQ disable?

Mapper 159 ,IRQ Change
If there is something similar, it is rather this Dragon Ball:
http://raspberrypi/carts/?action=view&id=94

But I doubt your cartridge uses the same addressess for all regsiters like original mapper 16 rom.
One 74138 cannot decode everything over the same addresses. Dragon Ball required 74139+74138.
There need to be 4 byte gap between CHR1 $000-$0fff, CHR2 $1000-$1fff, PRG, IRQ and Mirroring regsiter.

Also mirroring seem to be switched only between H and 1ScA.
Image My website: http://krzysiobal.com | Image My NES/FC flashcart: http://krzysiocart.com
User avatar
aquasnake
Posts: 672
Joined: Fri Sep 13, 2019 11:22 pm

Re: Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei PCB

Post by aquasnake »

According to the circuit diagram, I wrote the verilog logic roughly, maybe there are errors.

In fact, it is very similar to pirate Nekketsu Monogatari

prg mode is 16K+fixed 16K mode, so the remaining 3 prg bank registers are ignored

mirroring modes are different also

The IRQ counter takes 2048 as the prescalar, and then sets the 4-bit counter, so it can be assumed that only the high bits need to be set: [14:11]

Code: Select all

				// Mapper #??? - pirate Sakigake!! Otoko Juku
				begin
					irq_cpu_cd_enabled = 1;
					casez (cpu_addr_in[4:0]) // casez (cpu_addr_in[6:4], cpu_addr_in[1:0]) ???
						5'b000??: prg_bank_a[4:1] = cpu_data_in[3:0];
						5'b10000: chr_bank_a = cpu_data_in;
						5'b10001: chr_bank_b = cpu_data_in;
						5'b10010: chr_bank_c = cpu_data_in;
						5'b10011: chr_bank_d = cpu_data_in;
						5'b10100: chr_bank_e = cpu_data_in;
						5'b10101: chr_bank_f = cpu_data_in;
						5'b10110: chr_bank_g = cpu_data_in;
						5'b10111: chr_bank_h = cpu_data_in;
						5'b110??: mirroring[1:0] = {cpu_data_in[0], 1'b1};
						5'b111??: begin
							irq_cpu_control[0] = cpu_data_in[0]; // IRQ enable
							irq_cpu_counter[14:11] = cpu_data_in[7:4]; // IRQ reload
							irq_cpu_counter[10:0] = 0;
							irq_cpu_out = 0; // IRQ ack
						end
					endcase
				end

Code: Select all

				// Mapper #??? - pirate Nekketsu Monogatari
				begin
					irq_cpu_cu_enabled = 1;
					casez (cpu_addr_in[6:4], cpu_addr_in[1:0])
						5'b00000: prg_bank_a[4:0] = cpu_data_in[4:0];
						5'b00001: prg_bank_c[4:0] = cpu_data_in[4:0];
						5'b00010: prg_bank_b[4:0] = cpu_data_in[4:0];
						5'b00100: chr_bank_a = cpu_data_in;
						5'b00101: chr_bank_b = cpu_data_in;
						5'b00110: chr_bank_c = cpu_data_in;
						5'b00111: chr_bank_d = cpu_data_in;
						5'b01000: chr_bank_e = cpu_data_in;
						5'b01001: chr_bank_f = cpu_data_in;
						5'b01010: chr_bank_g = cpu_data_in;
						5'b01011: chr_bank_h = cpu_data_in;
						5'b011??: begin
							irq_cpu_control[0] = cpu_data_in[0]; // IRQ enable
							irq_cpu_out = 0; // IRQ ack
						end
						5'b100??: irq_cpu_counter[7:0] = cpu_data_in; // IRQ reload low
						5'b101??: irq_cpu_counter[15:8] = cpu_data_in; // IRQ reload high
					endcase
				end

User avatar
aquasnake
Posts: 672
Joined: Fri Sep 13, 2019 11:22 pm

Re: Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei PCB

Post by aquasnake »

The TTL implemented mapper #16 looks like this:

Image


Here is the mapper #417 pirate cart, which is more like?
Image
The pirates are very smart, they like to use the cd4020 to simplify the IRQ counter design, the game's IRQ timer is coarse, and does not need to be accurate to each M2 cycle, and the fixed value of the exponent of 2 is used for the prescaler, which can save a few 74ls191s
zxbdragon
Posts: 508
Joined: Mon Dec 12, 2011 8:15 pm

Re: Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei PCB

Post by zxbdragon »

aquasnake wrote: Fri Nov 15, 2024 4:50 am The TTL implemented mapper #16 looks like this:

Image


Here is the mapper #417 pirate cart, which is more like?
Image
The pirates are very smart, they like to use the cd4020 to simplify the IRQ counter design, the game's IRQ timer is coarse, and does not need to be accurate to each M2 cycle, and the fixed value of the exponent of 2 is used for the prescaler, which can save a few 74ls191s
dragon ball 3 rom data is original
zxbdragon
Posts: 508
Joined: Mon Dec 12, 2011 8:15 pm

Re: Sakigake!! Otoko Juku - Shippuu Ichi Gou Sei PCB

Post by zxbdragon »

aquasnake wrote: Fri Nov 15, 2024 2:13 am According to the circuit diagram, I wrote the verilog logic roughly, maybe there are errors.

In fact, it is very similar to pirate Nekketsu Monogatari

prg mode is 16K+fixed 16K mode, so the remaining 3 prg bank registers are ignored

mirroring modes are different also

The IRQ counter takes 2048 as the prescalar, and then sets the 4-bit counter, so it can be assumed that only the high bits need to be set: [14:11]

Code: Select all

				// Mapper #??? - pirate Sakigake!! Otoko Juku
				begin
					irq_cpu_cd_enabled = 1;
					casez (cpu_addr_in[4:0]) // casez (cpu_addr_in[6:4], cpu_addr_in[1:0]) ???
						5'b000??: prg_bank_a[4:1] = cpu_data_in[3:0];
						5'b10000: chr_bank_a = cpu_data_in;
						5'b10001: chr_bank_b = cpu_data_in;
						5'b10010: chr_bank_c = cpu_data_in;
						5'b10011: chr_bank_d = cpu_data_in;
						5'b10100: chr_bank_e = cpu_data_in;
						5'b10101: chr_bank_f = cpu_data_in;
						5'b10110: chr_bank_g = cpu_data_in;
						5'b10111: chr_bank_h = cpu_data_in;
						5'b110??: mirroring[1:0] = {cpu_data_in[0], 1'b1};
						5'b111??: begin
							irq_cpu_control[0] = cpu_data_in[0]; // IRQ enable
							irq_cpu_counter[14:11] = cpu_data_in[7:4]; // IRQ reload
							irq_cpu_counter[10:0] = 0;
							irq_cpu_out = 0; // IRQ ack
						end
					endcase
				end

Code: Select all

				// Mapper #??? - pirate Nekketsu Monogatari
				begin
					irq_cpu_cu_enabled = 1;
					casez (cpu_addr_in[6:4], cpu_addr_in[1:0])
						5'b00000: prg_bank_a[4:0] = cpu_data_in[4:0];
						5'b00001: prg_bank_c[4:0] = cpu_data_in[4:0];
						5'b00010: prg_bank_b[4:0] = cpu_data_in[4:0];
						5'b00100: chr_bank_a = cpu_data_in;
						5'b00101: chr_bank_b = cpu_data_in;
						5'b00110: chr_bank_c = cpu_data_in;
						5'b00111: chr_bank_d = cpu_data_in;
						5'b01000: chr_bank_e = cpu_data_in;
						5'b01001: chr_bank_f = cpu_data_in;
						5'b01010: chr_bank_g = cpu_data_in;
						5'b01011: chr_bank_h = cpu_data_in;
						5'b011??: begin
							irq_cpu_control[0] = cpu_data_in[0]; // IRQ enable
							irq_cpu_out = 0; // IRQ ack
						end
						5'b100??: irq_cpu_counter[7:0] = cpu_data_in; // IRQ reload low
						5'b101??: irq_cpu_counter[15:8] = cpu_data_in; // IRQ reload high
					endcase
				end

It seems incorrect; the simulation based on your description was not successful.

Mod note: The discussion continues in Chinese in this topic